diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 141641a80e..b875d9b2dc 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@umbraco-cms/backoffice", - "version": "14.0.0--preview008", + "version": "14.0.0--beta001", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@umbraco-cms/backoffice", - "version": "14.0.0--preview008", + "version": "14.0.0--beta001", "license": "MIT", "dependencies": { "@openid/appauth": "^1.3.1", @@ -62,7 +62,7 @@ "glob": "^10.3.10", "lucide-static": "^0.290.0", "msw": "^1.3.2", - "openapi-typescript-codegen": "^0.27.0", + "openapi-typescript-codegen": "0.25.0", "playwright-msw": "^3.0.1", "prettier": "3.0.3", "react": "^18.2.0", @@ -132,22 +132,15 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz", - "integrity": "sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", "dev": true, "dependencies": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.11", - "@types/lodash.clonedeep": "^4.5.7", - "js-yaml": "^4.1.0", - "lodash.clonedeep": "^4.5.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/philsturgeon" + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" } }, "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { @@ -6194,15 +6187,6 @@ "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", "dev": true }, - "node_modules/@types/lodash.clonedeep": { - "version": "4.5.9", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz", - "integrity": "sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==", - "dev": true, - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/mdast": { "version": "3.0.15", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", @@ -9373,6 +9357,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -14173,6 +14163,19 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "node_modules/json-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", + "deprecated": "Please switch to @apidevtools/json-schema-ref-parser", + "dev": true, + "dependencies": { + "@apidevtools/json-schema-ref-parser": "9.0.9" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -14560,12 +14563,6 @@ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -16429,16 +16426,16 @@ } }, "node_modules/openapi-typescript-codegen": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/openapi-typescript-codegen/-/openapi-typescript-codegen-0.27.0.tgz", - "integrity": "sha512-QyQEod/vuel3zfnTRC3GgmYsqLPSBzB2OL4ojMYjO9hJmfYW02T+7tbQWEnuqWdhh2KSOBf3L8h59vLStr6vwA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/openapi-typescript-codegen/-/openapi-typescript-codegen-0.25.0.tgz", + "integrity": "sha512-nN/TnIcGbP58qYgwEEy5FrAAjePcYgfMaCe3tsmYyTgI3v4RR9v8os14L+LEWDvV50+CmqiyTzRkKKtJeb6Ybg==", "dev": true, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^10.1.0", "camelcase": "^6.3.0", - "commander": "^11.1.0", - "fs-extra": "^11.2.0", - "handlebars": "^4.7.8" + "commander": "^11.0.0", + "fs-extra": "^11.1.1", + "handlebars": "^4.7.7", + "json-schema-ref-parser": "^9.0.9" }, "bin": { "openapi": "bin/index.js" diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index cebf52b865..a5dee3f1d1 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -1,7 +1,7 @@ { "name": "@umbraco-cms/backoffice", "license": "MIT", - "version": "14.0.0--preview008", + "version": "14.0.0--beta001", "type": "module", "exports": { ".": null, @@ -212,7 +212,7 @@ "glob": "^10.3.10", "lucide-static": "^0.290.0", "msw": "^1.3.2", - "openapi-typescript-codegen": "^0.27.0", + "openapi-typescript-codegen": "0.25.0", "playwright-msw": "^3.0.1", "prettier": "3.0.3", "react": "^18.2.0", diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/CancelablePromise.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/CancelablePromise.ts index eb02246c31..55fef85172 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/CancelablePromise.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/CancelablePromise.ts @@ -51,7 +51,7 @@ export class CancelablePromise implements Promise { return; } this.#isResolved = true; - if (this.#resolve) this.#resolve(value); + this.#resolve?.(value); }; const onReject = (reason?: any): void => { @@ -59,7 +59,7 @@ export class CancelablePromise implements Promise { return; } this.#isRejected = true; - if (this.#reject) this.#reject(reason); + this.#reject?.(reason); }; const onCancel = (cancelHandler: () => void): void => { @@ -122,7 +122,7 @@ export class CancelablePromise implements Promise { } } this.#cancelHandlers.length = 0; - if (this.#reject) this.#reject(new CancelError('Request aborted')); + this.#reject?.(new CancelError('Request aborted')); } public get isCancelled(): boolean { diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/request.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/request.ts index 2201a0e692..b018a07cae 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/request.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/core/request.ts @@ -137,12 +137,10 @@ export const resolve = async (options: ApiRequestOptions, resolver?: T | Reso }; export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => { - const [token, username, password, additionalHeaders] = await Promise.all([ - resolve(options, config.TOKEN), - resolve(options, config.USERNAME), - resolve(options, config.PASSWORD), - resolve(options, config.HEADERS), - ]); + const token = await resolve(options, config.TOKEN); + const username = await resolve(options, config.USERNAME); + const password = await resolve(options, config.PASSWORD); + const additionalHeaders = await resolve(options, config.HEADERS); const headers = Object.entries({ Accept: 'application/json', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedContentTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedContentTypeModel.ts index 9a7f1df8e2..c7197ce531 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedContentTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedContentTypeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type AllowedContentTypeModel = { id: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedDocumentTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedDocumentTypeModel.ts index 4c632ae624..1762891713 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedDocumentTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedDocumentTypeModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AllowedContentTypeModel } from './AllowedContentTypeModel'; + export type AllowedDocumentTypeModel = AllowedContentTypeModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedMediaTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedMediaTypeModel.ts index 9a54097038..49ce218c3a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedMediaTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedMediaTypeModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AllowedContentTypeModel } from './AllowedContentTypeModel'; + export type AllowedMediaTypeModel = AllowedContentTypeModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts index 8a61d388fc..31ec64b2dc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AuditLogEntityModel } from './AuditLogEntityModel'; import type { AuditTypeModel } from './AuditTypeModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type AuditLogBaseModel = { user: ReferenceByIdModel; entity?: AuditLogEntityModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogEntityModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogEntityModel.ts index 92c84fcd25..87e3a30ea8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogEntityModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogEntityModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type AuditLogEntityModel = { id?: string | null; type?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts index 484a30628f..4ecddd6605 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AuditLogBaseModel } from './AuditLogBaseModel'; + export type AuditLogResponseModel = AuditLogBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts index 5374b56e5c..2ee1c4acc5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AuditLogBaseModel } from './AuditLogBaseModel'; + export type AuditLogWithUsernameResponseModel = (AuditLogBaseModel & { userName?: string | null; userAvatars: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditTypeModel.ts index ce386be870..32de956501 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditTypeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum AuditTypeModel { NEW = 'New', SAVE = 'Save', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts index 18b2ea7e9d..43625c7194 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type AvailableContentTypeCompositionResponseModelBaseModel = { id: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts index d5bacfdf60..4b89e8a211 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AvailableContentTypeCompositionResponseModelBaseModel } from './AvailableContentTypeCompositionResponseModelBaseModel'; + export type AvailableDocumentTypeCompositionResponseModel = AvailableContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts index 673695ae83..fc784a2174 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AvailableContentTypeCompositionResponseModelBaseModel } from './AvailableContentTypeCompositionResponseModelBaseModel'; + export type AvailableMediaTypeCompositionResponseModel = AvailableContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMemberTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMemberTypeCompositionResponseModel.ts index 31030daa82..83e8fab554 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMemberTypeCompositionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMemberTypeCompositionResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AvailableContentTypeCompositionResponseModelBaseModel } from './AvailableContentTypeCompositionResponseModelBaseModel'; + export type AvailableMemberTypeCompositionResponseModel = AvailableContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordCurrentUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordCurrentUserRequestModel.ts index 14a0f18a2f..bee5d23a50 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordCurrentUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordCurrentUserRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ChangePasswordUserRequestModel } from './ChangePasswordUserRequestModel'; + export type ChangePasswordCurrentUserRequestModel = (ChangePasswordUserRequestModel & { oldPassword?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts index b524b9ed4d..19eba5db1a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ChangePasswordUserRequestModel = { newPassword: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CompositionTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CompositionTypeModel.ts index f35f1a804f..63dfdae1e6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CompositionTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CompositionTypeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum CompositionTypeModel { COMPOSITION = 'Composition', INHERITANCE = 'Inheritance', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts index ae6f30406f..1df32f48de 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TelemetryLevelModel } from './TelemetryLevelModel'; + export type ConsentLevelPresentationModel = { level: TelemetryLevelModel; description: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentCollectionResponseModelBaseDocumentValueModelDocumentVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentCollectionResponseModelBaseDocumentValueModelDocumentVariantResponseModel.ts index 58129855cd..c3a8073181 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentCollectionResponseModelBaseDocumentValueModelDocumentVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentCollectionResponseModelBaseDocumentValueModelDocumentVariantResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentValueModel } from './DocumentValueModel'; import type { DocumentVariantResponseModel } from './DocumentVariantResponseModel'; + export type ContentCollectionResponseModelBaseDocumentValueModelDocumentVariantResponseModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentCollectionResponseModelBaseMediaValueModelMediaVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentCollectionResponseModelBaseMediaValueModelMediaVariantResponseModel.ts index 6e0760e1b2..b9da60ae41 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentCollectionResponseModelBaseMediaValueModelMediaVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentCollectionResponseModelBaseMediaValueModelMediaVariantResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaValueModel } from './MediaValueModel'; import type { MediaVariantResponseModel } from './MediaVariantResponseModel'; + export type ContentCollectionResponseModelBaseMediaValueModelMediaVariantResponseModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts index aded63ff93..e248810d0d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentValueModel } from './DocumentValueModel'; import type { DocumentVariantResponseModel } from './DocumentVariantResponseModel'; + export type ContentForDocumentResponseModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMediaResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMediaResponseModel.ts index 1b90f1feb6..5f4b42be51 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMediaResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMediaResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaValueModel } from './MediaValueModel'; import type { MediaVariantResponseModel } from './MediaVariantResponseModel'; + export type ContentForMediaResponseModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMemberResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMemberResponseModel.ts index f95f91dbe3..26b6266dfe 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMemberResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMemberResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberValueModel } from './MemberValueModel'; import type { MemberVariantResponseModel } from './MemberVariantResponseModel'; + export type ContentForMemberResponseModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts index 78d80106b4..b2e1c8d529 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type ContentTreeItemResponseModel = { type: string; hasChildren: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupBaseModel.ts index 47e8e21a7f..6ab4fb9195 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ContentTypeCleanupBaseModel = { preventCleanup: boolean; keepAllVersionsNewerThanDays?: number | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCollectionReferenceResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCollectionReferenceResponseModelBaseModel.ts index 6fcd309457..26866fcb40 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCollectionReferenceResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCollectionReferenceResponseModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ContentTypeCollectionReferenceResponseModelBaseModel = { id: string; alias: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts index c880dfabd9..542c1c8653 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ContentTypeCompositionRequestModelBaseModel = { id?: string | null; currentPropertyAliases: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts index dee543f76f..8de2c0f47e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ContentTypeCompositionResponseModelBaseModel = { id: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts index 9ed3ba899e..b89c790244 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentTypePropertyTypeContainerResponseModel } from './DocumentTypePropertyTypeContainerResponseModel'; import type { DocumentTypePropertyTypeResponseModel } from './DocumentTypePropertyTypeResponseModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type ContentTypeForDocumentTypeResponseModel = { alias: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts index 550ab8c5f6..16d6ad3480 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaTypePropertyTypeContainerResponseModel } from './MediaTypePropertyTypeContainerResponseModel'; import type { MediaTypePropertyTypeResponseModel } from './MediaTypePropertyTypeResponseModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type ContentTypeForMediaTypeResponseModel = { alias: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMemberTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMemberTypeResponseModel.ts index fb617d66ba..cb0ad99ab8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMemberTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMemberTypeResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberTypePropertyTypeContainerResponseModel } from './MemberTypePropertyTypeContainerResponseModel'; import type { MemberTypePropertyTypeResponseModel } from './MemberTypePropertyTypeResponseModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type ContentTypeForMemberTypeResponseModel = { alias: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts index e440193fd9..af8e13c191 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type ContentTypeReferenceResponseModelBaseModel = { id: string; icon: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoBaseModel.ts index 7f018e7403..aac3c51da0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ContentUrlInfoBaseModel = { culture?: string | null; url: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts index 43882f1008..44660e907d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CopyDataTypeRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts index 30215d8546..828849c9ac 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CopyDocumentRequestModel = { target?: ReferenceByIdModel | null; relateToOriginal: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts index 38bef98d99..346920d256 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CopyDocumentTypeRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts index c5d85d0aee..943722db52 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CopyMediaTypeRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts index 5b71f22dbd..b8ab5e9b48 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentValueModel } from './DocumentValueModel'; import type { DocumentVariantRequestModel } from './DocumentVariantRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateContentForDocumentRequestModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts index 6ec3eceedb..252171141b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaValueModel } from './MediaValueModel'; import type { MediaVariantRequestModel } from './MediaVariantRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateContentForMediaRequestModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMemberRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMemberRequestModel.ts index 8f3dcf0309..db059bcee8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMemberRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMemberRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberValueModel } from './MemberValueModel'; import type { MemberVariantRequestModel } from './MemberVariantRequestModel'; + export type CreateContentForMemberRequestModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts index 3aed2c3b56..408026829b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateDocumentTypePropertyTypeContainerRequestModel } from './CreateDocumentTypePropertyTypeContainerRequestModel'; import type { CreateDocumentTypePropertyTypeRequestModel } from './CreateDocumentTypePropertyTypeRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateContentTypeForDocumentTypeRequestModel = { alias: string; name: string; @@ -18,6 +20,6 @@ export type CreateContentTypeForDocumentTypeRequestModel = { properties: Array; containers: Array; id?: string | null; - folder?: ReferenceByIdModel | null; + parent?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts index 637cb87277..64b44f6d95 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateMediaTypePropertyTypeContainerRequestModel } from './CreateMediaTypePropertyTypeContainerRequestModel'; import type { CreateMediaTypePropertyTypeRequestModel } from './CreateMediaTypePropertyTypeRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateContentTypeForMediaTypeRequestModel = { alias: string; name: string; @@ -18,6 +20,6 @@ export type CreateContentTypeForMediaTypeRequestModel = { properties: Array; containers: Array; id?: string | null; - folder?: ReferenceByIdModel | null; + parent?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMemberTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMemberTypeRequestModel.ts index aab91448b5..103e02ebf5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMemberTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMemberTypeRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateMemberTypePropertyTypeContainerRequestModel } from './CreateMemberTypePropertyTypeContainerRequestModel'; import type { CreateMemberTypePropertyTypeRequestModel } from './CreateMemberTypePropertyTypeRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateContentTypeForMemberTypeRequestModel = { alias: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts index ba44563f73..7d883cdd2e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateDataTypeRequestModel = (DataTypeModelBaseModel & { id?: string | null; parent?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts index acab226651..772bbe9762 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateDictionaryItemRequestModel = (DictionaryItemModelBaseModel & { id?: string | null; parent?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts index 035d9febc7..72400483f3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateContentForDocumentRequestModel } from './CreateContentForDocumentRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateDocumentRequestModel = (CreateContentForDocumentRequestModel & { documentType: ReferenceByIdModel; template?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts index 9b462a6d78..75695a9551 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type CreateDocumentTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts index 08304109be..49c3e3cf95 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type CreateDocumentTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts index 9a68057bb5..7d861190b2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts @@ -2,11 +2,13 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateContentTypeForDocumentTypeRequestModel } from './CreateContentTypeForDocumentTypeRequestModel'; import type { DocumentTypeCleanupModel } from './DocumentTypeCleanupModel'; import type { DocumentTypeCompositionModel } from './DocumentTypeCompositionModel'; import type { DocumentTypeSortModel } from './DocumentTypeSortModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateDocumentTypeRequestModel = (CreateContentTypeForDocumentTypeRequestModel & { allowedTemplates: Array; defaultTemplate?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts index 4cbe2c420d..6851e3a039 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FolderModelBaseModel } from './FolderModelBaseModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateFolderRequestModel = (FolderModelBaseModel & { id?: string | null; parent?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts index 5e139fafe9..dbc957ff82 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { VerifyInviteUserRequestModel } from './VerifyInviteUserRequestModel'; + export type CreateInitialPasswordUserRequestModel = (VerifyInviteUserRequestModel & { password: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts index d6f4547207..456b4e4b83 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; + export type CreateLanguageRequestModel = (LanguageModelBaseModel & { isoCode: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts index c9314350d5..937dcab69f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateContentForMediaRequestModel } from './CreateContentForMediaRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateMediaRequestModel = (CreateContentForMediaRequestModel & { mediaType: ReferenceByIdModel; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts index 5858b157fc..8fea33fee6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type CreateMediaTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts index 0abac014ab..344b1852fb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type CreateMediaTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts index 37d19b4082..9db4ac7433 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts @@ -2,10 +2,12 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateContentTypeForMediaTypeRequestModel } from './CreateContentTypeForMediaTypeRequestModel'; import type { MediaTypeCompositionModel } from './MediaTypeCompositionModel'; import type { MediaTypeSortModel } from './MediaTypeSortModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateMediaTypeRequestModel = (CreateContentTypeForMediaTypeRequestModel & { allowedMediaTypes: Array; compositions: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberGroupRequestModel.ts index 2cbc243e9d..3020dc0fcb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberGroupRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberGroupRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberGroupPresentationBaseModel } from './MemberGroupPresentationBaseModel'; + export type CreateMemberGroupRequestModel = (MemberGroupPresentationBaseModel & { id?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberRequestModel.ts index 510f673f86..0034877615 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateContentForMemberRequestModel } from './CreateContentForMemberRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CreateMemberRequestModel = (CreateContentForMemberRequestModel & { email: string; username: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypePropertyTypeContainerRequestModel.ts index f2cc5ae3a3..baa52684a6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypePropertyTypeContainerRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type CreateMemberTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypePropertyTypeRequestModel.ts index 383bab4ce1..f21270fdb9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypePropertyTypeRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type CreateMemberTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypeRequestModel.ts index cf9d1ca454..5f7dc8d783 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMemberTypeRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateContentTypeForMemberTypeRequestModel } from './CreateContentTypeForMemberTypeRequestModel'; import type { MemberTypeCompositionModel } from './MemberTypeCompositionModel'; + export type CreateMemberTypeRequestModel = (CreateContentTypeForMemberTypeRequestModel & { compositions: Array; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts index e40a3c31fe..73977ee1aa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PackageModelBaseModel } from './PackageModelBaseModel'; + export type CreatePackageRequestModel = PackageModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewFolderRequestModel.ts index 464ab58587..fd1a8dbe23 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewFolderRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewFolderRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemCreateRequestModelBaseModel } from './FileSystemCreateRequestModelBaseModel'; + export type CreatePartialViewFolderRequestModel = FileSystemCreateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts index 5eed02354c..ce26671883 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileCreateRequestModelBaseModel } from './FileSystemFileCreateRequestModelBaseModel'; + export type CreatePartialViewRequestModel = FileSystemFileCreateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts index 69327a5d44..bc558b9331 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; + export type CreateRelationTypeRequestModel = (RelationTypeBaseModel & { id?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptFolderRequestModel.ts index 4271e58017..4972e3c270 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptFolderRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptFolderRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemCreateRequestModelBaseModel } from './FileSystemCreateRequestModelBaseModel'; + export type CreateScriptFolderRequestModel = FileSystemCreateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts index 09090ed83f..999ca5c0d3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileCreateRequestModelBaseModel } from './FileSystemFileCreateRequestModelBaseModel'; + export type CreateScriptRequestModel = FileSystemFileCreateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetFolderRequestModel.ts index 87848f0b92..3b901eff6e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetFolderRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetFolderRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemCreateRequestModelBaseModel } from './FileSystemCreateRequestModelBaseModel'; + export type CreateStylesheetFolderRequestModel = FileSystemCreateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts index 1c94344f3b..f682637920 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileCreateRequestModelBaseModel } from './FileSystemFileCreateRequestModelBaseModel'; + export type CreateStylesheetRequestModel = FileSystemFileCreateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts index 2497ef4342..6f72bd38a3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TemplateModelBaseModel } from './TemplateModelBaseModel'; + export type CreateTemplateRequestModel = (TemplateModelBaseModel & { id?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts index bcab0dafd9..1cceb76e9a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserGroupBaseModel } from './UserGroupBaseModel'; + export type CreateUserGroupRequestModel = UserGroupBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts index 152bdce07a..f222dc6861 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; + export type CreateUserRequestModel = (UserPresentationBaseModel & { id?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateWebhookRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateWebhookRequestModel.ts index 625266a277..5efdacf129 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateWebhookRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateWebhookRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { WebhookModelBaseModel } from './WebhookModelBaseModel'; + export type CreateWebhookRequestModel = (WebhookModelBaseModel & { id?: string | null; events: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureAndScheduleRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureAndScheduleRequestModel.ts index 47096257a0..8ebf39abe3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureAndScheduleRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureAndScheduleRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ScheduleRequestModel } from './ScheduleRequestModel'; + export type CultureAndScheduleRequestModel = { culture?: string | null; schedule?: ScheduleRequestModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts index c27e8c0cea..3bb48f8923 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type CultureReponseModel = { name: string; englishName: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts index cb0687a7fe..4b398efa9d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + export type CurrenUserConfigurationResponseModel = { keepUserLoggedIn: boolean; usernameIsEmail: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts index fc58697442..986c653af0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentPermissionPresentationModel } from './DocumentPermissionPresentationModel'; import type { UnknownTypePermissionPresentationModel } from './UnknownTypePermissionPresentationModel'; + export type CurrentUserResponseModel = { id: string; email: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeChangeModeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeChangeModeModel.ts index 9fee66e0e2..fe470165fb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeChangeModeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeChangeModeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum DataTypeChangeModeModel { TRUE = 'True', FALSE = 'False', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts index df13a523e0..bdf9f4f741 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type DataTypeItemResponseModel = (NamedItemResponseModelBaseModel & { editorUiAlias?: string | null; isDeletable: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts index 38d0b5d54c..7c3a1d770a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypePropertyPresentationModel } from './DataTypePropertyPresentationModel'; + export type DataTypeModelBaseModel = { name: string; editorAlias: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts index 8d14761e4a..5c6f1bf9a5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DataTypePropertyPresentationModel = { alias: string; value?: any; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts index ff06392b3f..34599f578a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DataTypePropertyReferenceModel = { name: string; alias: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts index eb37101927..60b4ebf070 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypePropertyReferenceModel } from './DataTypePropertyReferenceModel'; + export type DataTypeReferenceResponseModel = { id: string; type: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts index 5aed146369..2f4e18ad3c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts @@ -2,11 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; -import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type DataTypeResponseModel = (DataTypeModelBaseModel & { id: string; - parent?: ReferenceByIdModel | null; isDeletable: boolean; canIgnoreStartNodes: boolean; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts index d0e55b3931..b52e27e07f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; + export type DataTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { editorUiAlias?: string | null; isDeletable: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallPresentationModel.ts index a9ec37ff70..2637a7496d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DatabaseInstallPresentationModel = { id: string; providerName: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallRequestModel.ts index 9fe97b58c2..ad3537567e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DatabaseInstallPresentationModel } from './DatabaseInstallPresentationModel'; + export type DatabaseInstallRequestModel = DatabaseInstallPresentationModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts index 1825ca0eaf..219b792647 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DatabaseSettingsPresentationModel = { id: string; sortOrder: number; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatatypeConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatatypeConfigurationResponseModel.ts index 1084a9e0c7..86aa086f3f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatatypeConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatatypeConfigurationResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypeChangeModeModel } from './DataTypeChangeModeModel'; + export type DatatypeConfigurationResponseModel = { canBeChanged: DataTypeChangeModeModel; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts index 1b25fc970a..6942407664 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DeleteUserGroupsRequestModel = { userGroupIds: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts index b805167967..c6f210a95c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DeleteUsersRequestModel = { userIds: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts index 73d7df2fe2..38f73f486d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type DictionaryItemItemResponseModel = NamedItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts index a109fb9244..3ab80babb0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DictionaryItemTranslationModel } from './DictionaryItemTranslationModel'; + export type DictionaryItemModelBaseModel = { name: string; translations: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts index 3eb4a71057..54a63654cf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; + export type DictionaryItemResponseModel = (DictionaryItemModelBaseModel & { id: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts index c9d79ffa92..2016bf3674 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DictionaryItemTranslationModel = { isoCode: string; translation: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts index 2e223283ad..c703cb41b3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type DictionaryOverviewResponseModel = { name?: string | null; id: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DirectionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DirectionModel.ts index 584b2939ad..7073765f71 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DirectionModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DirectionModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum DirectionModel { ASCENDING = 'Ascending', DESCENDING = 'Descending', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts index 96e6a43185..d761f29549 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DisableUserRequestModel = { userIds: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts index 2fe40c11a5..e894f9e29f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type DocumentBlueprintResponseModel = NamedItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts index 48a50a12c3..6c1c09490f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; import type { NamedEntityTreeItemResponseModel } from './NamedEntityTreeItemResponseModel'; + export type DocumentBlueprintTreeItemResponseModel = (NamedEntityTreeItemResponseModel & { documentType: DocumentTypeReferenceResponseModel; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentCollectionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentCollectionResponseModel.ts index 246dc24fed..49b0b794b6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentCollectionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentCollectionResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentCollectionResponseModelBaseDocumentValueModelDocumentVariantResponseModel } from './ContentCollectionResponseModelBaseDocumentValueModelDocumentVariantResponseModel'; import type { DocumentTypeCollectionReferenceResponseModel } from './DocumentTypeCollectionReferenceResponseModel'; + export type DocumentCollectionResponseModel = (ContentCollectionResponseModelBaseDocumentValueModelDocumentVariantResponseModel & { documentType: DocumentTypeCollectionReferenceResponseModel; updater?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentConfigurationResponseModel.ts index deeaed5c49..1ae7481c5c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentConfigurationResponseModel.ts @@ -2,10 +2,12 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DocumentConfigurationResponseModel = { sanitizeTinyMce: boolean; disableDeleteWhenReferenced: boolean; disableUnpublishWhenReferenced: boolean; allowEditInvariantFromNonDefault: boolean; + allowNonExistingSegmentsCreation: boolean; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts index 91e37fbd78..80630f509d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; import type { DocumentVariantItemResponseModel } from './DocumentVariantItemResponseModel'; import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; + export type DocumentItemResponseModel = (ItemResponseModelBaseModel & { isTrashed: boolean; isProtected: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts index ad4e35ec41..72e7e8629d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DocumentNotificationResponseModel = { actionId: string; subscribed: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentPermissionPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentPermissionPresentationModel.ts index 885d13e5f9..420b96ec34 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentPermissionPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentPermissionPresentationModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type DocumentPermissionPresentationModel = { $type: string; document: ReferenceByIdModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts index 6b803b5c52..c594d375b0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; import type { DocumentVariantItemResponseModel } from './DocumentVariantItemResponseModel'; import type { RecycleBinItemResponseModelBaseModel } from './RecycleBinItemResponseModelBaseModel'; + export type DocumentRecycleBinItemResponseModel = (RecycleBinItemResponseModelBaseModel & { documentType: DocumentTypeReferenceResponseModel; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts index c4cab191c2..a5c3e3420e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts @@ -2,10 +2,12 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentForDocumentResponseModel } from './ContentForDocumentResponseModel'; import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; import type { DocumentUrlInfoModel } from './DocumentUrlInfoModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type DocumentResponseModel = (ContentForDocumentResponseModel & { urls: Array; template?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts index f193255f92..3f202d48c6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseModel'; import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; import type { DocumentVariantItemResponseModel } from './DocumentVariantItemResponseModel'; + export type DocumentTreeItemResponseModel = (ContentTreeItemResponseModel & { isProtected: boolean; documentType: DocumentTypeReferenceResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCleanupModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCleanupModel.ts index ff6ab99ce2..08eae47a4c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCleanupModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCleanupModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCleanupBaseModel } from './ContentTypeCleanupBaseModel'; + export type DocumentTypeCleanupModel = ContentTypeCleanupBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCollectionReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCollectionReferenceResponseModel.ts index 1e603541eb..b934c7618f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCollectionReferenceResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCollectionReferenceResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCollectionReferenceResponseModelBaseModel } from './ContentTypeCollectionReferenceResponseModelBaseModel'; + export type DocumentTypeCollectionReferenceResponseModel = ContentTypeCollectionReferenceResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionModel.ts index e0cbebf8c5..5cb10be1d0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CompositionTypeModel } from './CompositionTypeModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type DocumentTypeCompositionModel = { documentType: ReferenceByIdModel; compositionType: CompositionTypeModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts index 991a565742..344d632776 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCompositionRequestModelBaseModel } from './ContentTypeCompositionRequestModelBaseModel'; + export type DocumentTypeCompositionRequestModel = (ContentTypeCompositionRequestModelBaseModel & { isElement: boolean; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts index 1c34245949..0377d10c3c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCompositionResponseModelBaseModel } from './ContentTypeCompositionResponseModelBaseModel'; + export type DocumentTypeCompositionResponseModel = ContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeConfigurationResponseModel.ts index 80ddec0d14..a0ad32119c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeConfigurationResponseModel.ts @@ -2,9 +2,12 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypeChangeModeModel } from './DataTypeChangeModeModel'; + export type DocumentTypeConfigurationResponseModel = { dataTypesCanBeChanged: DataTypeChangeModeModel; disableTemplates: boolean; + useSegments: boolean; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts index f4b82947e0..1ed148dec1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type DocumentTypeItemResponseModel = (NamedItemResponseModelBaseModel & { isElement: boolean; icon?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts index a57b1a8741..f6a57aa6c7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type DocumentTypePropertyTypeContainerResponseModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts index f9b97eff53..14837ade42 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type DocumentTypePropertyTypeResponseModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeReferenceResponseModel.ts index 8143f0e27e..1ce7ab1db8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeReferenceResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeReferenceResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeReferenceResponseModelBaseModel } from './ContentTypeReferenceResponseModelBaseModel'; + export type DocumentTypeReferenceResponseModel = ContentTypeReferenceResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts index aed42086bb..320974edee 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts @@ -2,11 +2,13 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeForDocumentTypeResponseModel } from './ContentTypeForDocumentTypeResponseModel'; import type { DocumentTypeCleanupModel } from './DocumentTypeCleanupModel'; import type { DocumentTypeCompositionModel } from './DocumentTypeCompositionModel'; import type { DocumentTypeSortModel } from './DocumentTypeSortModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type DocumentTypeResponseModel = (ContentTypeForDocumentTypeResponseModel & { allowedTemplates: Array; defaultTemplate?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeSortModel.ts index b4da1e2c09..82dfba4614 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeSortModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeSortModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type DocumentTypeSortModel = { documentType: ReferenceByIdModel; sortOrder: number; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts index e8afc1bbec..cb9a379165 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; + export type DocumentTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { isElement: boolean; icon: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentUrlInfoModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentUrlInfoModel.ts index 003080b29b..62d36438ef 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentUrlInfoModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentUrlInfoModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentUrlInfoBaseModel } from './ContentUrlInfoBaseModel'; + export type DocumentUrlInfoModel = ContentUrlInfoBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts index caa4bf7c88..d97801007c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ValueModelBaseModel } from './ValueModelBaseModel'; + export type DocumentValueModel = ValueModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantItemResponseModel.ts index 4ea2a76084..cf73b0299c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantItemResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentVariantStateModel } from './DocumentVariantStateModel'; import type { VariantItemResponseModelBaseModel } from './VariantItemResponseModelBaseModel'; + export type DocumentVariantItemResponseModel = (VariantItemResponseModelBaseModel & { state: DocumentVariantStateModel; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts index 5561b58691..4d79c4109a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { VariantModelBaseModel } from './VariantModelBaseModel'; + export type DocumentVariantRequestModel = VariantModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts index 4c11fb1524..4325188f65 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentVariantStateModel } from './DocumentVariantStateModel'; import type { VariantResponseModelBaseModel } from './VariantResponseModelBaseModel'; + export type DocumentVariantResponseModel = (VariantResponseModelBaseModel & { state: DocumentVariantStateModel; publishDate?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantStateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantStateModel.ts index 27296ef196..eb4077b844 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantStateModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantStateModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum DocumentVariantStateModel { NOT_CREATED = 'NotCreated', DRAFT = 'Draft', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts index bb303bb13c..497ce2ae8e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DomainPresentationModel = { domainName: string; isoCode: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts index ef02c84ed3..193e811957 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DomainPresentationModel } from './DomainPresentationModel'; + export type DomainsPresentationModelBaseModel = { defaultIsoCode?: string | null; domains: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts index 244badd5a8..f8d8a1ff18 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DomainsPresentationModelBaseModel } from './DomainsPresentationModelBaseModel'; + export type DomainsResponseModel = DomainsPresentationModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts index 65366c8e70..0bef115133 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type DynamicRootContextRequestModel = { id?: string | null; parent: ReferenceByIdModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts index f858e561c4..4d882670e7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DynamicRootQueryOriginRequestModel = { alias: string; id?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts index 92815884ed..429c72a4d4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DynamicRootQueryOriginRequestModel } from './DynamicRootQueryOriginRequestModel'; import type { DynamicRootQueryStepRequestModel } from './DynamicRootQueryStepRequestModel'; + export type DynamicRootQueryRequestModel = { origin: DynamicRootQueryOriginRequestModel; steps: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts index d66c43b825..fad5ca362e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DynamicRootQueryStepRequestModel = { alias: string; documentTypeIds: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts index a48e441ab3..14d3647bc1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DynamicRootContextRequestModel } from './DynamicRootContextRequestModel'; import type { DynamicRootQueryRequestModel } from './DynamicRootQueryRequestModel'; + export type DynamicRootRequestModel = { context: DynamicRootContextRequestModel; query: DynamicRootQueryRequestModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts index 55f24069ca..da6a956c7b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type DynamicRootResponseModel = { roots: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableTwoFactorRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableTwoFactorRequestModel.ts index d15118dab1..7c49e5b473 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableTwoFactorRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableTwoFactorRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type EnableTwoFactorRequestModel = { code: string; secret: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts index 1403d38aee..149c8cb3b7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type EnableUserRequestModel = { userIds: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts index d6c5faaf5e..d14eb5cc31 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { TreeItemPresentationModel } from './TreeItemPresentationModel'; + export type EntityTreeItemResponseModel = (TreeItemPresentationModel & { id: string; parent?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EventMessageTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EventMessageTypeModel.ts index 844d739c6c..07e96dbc24 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EventMessageTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EventMessageTypeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum EventMessageTypeModel { DEFAULT = 'Default', INFO = 'Info', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts index c701dccbd4..5a39dbab7c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type FieldPresentationModel = { name: string; values: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemCreateRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemCreateRequestModelBaseModel.ts index 5e5e12cd3f..68a90eeeb1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemCreateRequestModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemCreateRequestModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFolderModel } from './FileSystemFolderModel'; + export type FileSystemCreateRequestModelBaseModel = { name: string; parent?: FileSystemFolderModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileCreateRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileCreateRequestModelBaseModel.ts index 158635c345..5b9eb3d4cf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileCreateRequestModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileCreateRequestModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFolderModel } from './FileSystemFolderModel'; + export type FileSystemFileCreateRequestModelBaseModel = { name: string; parent?: FileSystemFolderModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileResponseModelBaseModel.ts index 40e67a986e..59c8bb0c08 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileResponseModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFolderModel } from './FileSystemFolderModel'; + export type FileSystemFileResponseModelBaseModel = { path: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileUpdateRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileUpdateRequestModelBaseModel.ts index 301126ebd5..44ec79a002 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileUpdateRequestModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileUpdateRequestModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type FileSystemFileUpdateRequestModelBaseModel = { content: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFolderModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFolderModel.ts index fc54fa6f59..90964c53e9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFolderModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFolderModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemItemViewModelBaseModel } from './FileSystemItemViewModelBaseModel'; + export type FileSystemFolderModel = FileSystemItemViewModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemResponseModelBaseModel.ts index 2886d31e5d..6cc0280bfa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemResponseModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFolderModel } from './FileSystemFolderModel'; + export type FileSystemItemResponseModelBaseModel = { path: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemViewModelBaseModel.ts index d74ef9c407..d0153d4763 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemViewModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemViewModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type FileSystemItemViewModelBaseModel = { path: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemRenameRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemRenameRequestModelBaseModel.ts index 45c4fa4ee1..bc4534ef58 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemRenameRequestModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemRenameRequestModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type FileSystemRenameRequestModelBaseModel = { name: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemResponseModelBaseModel.ts index cf036f6ffa..7d72ab674f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemResponseModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFolderModel } from './FileSystemFolderModel'; + export type FileSystemResponseModelBaseModel = { path: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts index 19e2924048..00ca2f7dc8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFolderModel } from './FileSystemFolderModel'; import type { TreeItemPresentationModel } from './TreeItemPresentationModel'; + export type FileSystemTreeItemPresentationModel = (TreeItemPresentationModel & { name: string; path: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts index 99046e4afb..3d9275f495 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type FolderModelBaseModel = { name: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts index 087e18ec17..3f544cb3e2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts @@ -2,10 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FolderModelBaseModel } from './FolderModelBaseModel'; -import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type FolderResponseModel = (FolderModelBaseModel & { id: string; - parent?: ReferenceByIdModel | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts index 03a6c91944..0d2e87e29c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedEntityTreeItemResponseModel } from './NamedEntityTreeItemResponseModel'; + export type FolderTreeItemResponseModel = (NamedEntityTreeItemResponseModel & { isFolder: boolean; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts index fc0f6ca6c0..cb170177ff 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type HealthCheckActionRequestModel = { healthCheck: ReferenceByIdModel; alias?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts index 7f923c2bff..0fbcac06b9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type HealthCheckGroupPresentationBaseModel = { name: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts index 8e33800237..cdeff24d9a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HealthCheckGroupPresentationBaseModel } from './HealthCheckGroupPresentationBaseModel'; import type { HealthCheckModel } from './HealthCheckModel'; + export type HealthCheckGroupPresentationModel = (HealthCheckGroupPresentationBaseModel & { checks: Array; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts index 17cf154097..4754ba19da 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HealthCheckGroupPresentationBaseModel } from './HealthCheckGroupPresentationBaseModel'; + export type HealthCheckGroupResponseModel = HealthCheckGroupPresentationBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts index d59769926e..f2822cccbe 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HealthCheckWithResultPresentationModel } from './HealthCheckWithResultPresentationModel'; + export type HealthCheckGroupWithResultResponseModel = { checks: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts index 41000f60d8..420710c538 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HealthCheckModelBaseModel } from './HealthCheckModelBaseModel'; + export type HealthCheckModel = (HealthCheckModelBaseModel & { name: string; description?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts index b91261eded..0721373257 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type HealthCheckModelBaseModel = { id: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts index 9adda511f6..036976ee4e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HealthCheckActionRequestModel } from './HealthCheckActionRequestModel'; import type { StatusResultTypeModel } from './StatusResultTypeModel'; + export type HealthCheckResultResponseModel = { message: string; resultType: StatusResultTypeModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts index cd1e38a187..c9e64a9b6c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HealthCheckModelBaseModel } from './HealthCheckModelBaseModel'; import type { HealthCheckResultResponseModel } from './HealthCheckResultResponseModel'; + export type HealthCheckWithResultPresentationModel = (HealthCheckModelBaseModel & { results?: Array | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthStatusModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthStatusModel.ts index 8c4cd1222d..2bbbc0ecf3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthStatusModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthStatusModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum HealthStatusModel { HEALTHY = 'Healthy', UNHEALTHY = 'Unhealthy', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts index d245f427d9..d5d81e8935 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type HelpPageResponseModel = { name?: string | null; description?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts index f377ce14ff..13e5557845 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type ImportDictionaryRequestModel = { temporaryFile: ReferenceByIdModel; parent?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts index daaed62ed5..8c957644e5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HealthStatusModel } from './HealthStatusModel'; + export type IndexResponseModel = { name: string; healthStatus: HealthStatusModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallRequestModel.ts index cce935eaf4..7e1cbeeea5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallRequestModel.ts @@ -2,10 +2,12 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DatabaseInstallPresentationModel } from './DatabaseInstallPresentationModel'; import type { DatabaseInstallRequestModel } from './DatabaseInstallRequestModel'; import type { TelemetryLevelModel } from './TelemetryLevelModel'; import type { UserInstallPresentationModel } from './UserInstallPresentationModel'; + export type InstallRequestModel = { user: UserInstallPresentationModel; database: (DatabaseInstallPresentationModel | DatabaseInstallRequestModel); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts index a3727b995a..f9bef5cad6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DatabaseSettingsPresentationModel } from './DatabaseSettingsPresentationModel'; import type { UserSettingsPresentationModel } from './UserSettingsPresentationModel'; + export type InstallSettingsResponseModel = { user: UserSettingsPresentationModel; databases: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts index 39c56f43e9..2d27ef9b07 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CreateUserRequestModel } from './CreateUserRequestModel'; + export type InviteUserRequestModel = (CreateUserRequestModel & { message?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemReferenceByIdResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemReferenceByIdResponseModel.ts index 44dfa126d4..94a2eb42bc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemReferenceByIdResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemReferenceByIdResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ItemReferenceByIdResponseModel = { id: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts index 98131c6df8..28b7c0e199 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ItemResponseModelBaseModel = { id: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts index e9c553b578..e5ef68e040 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ItemSortingRequestModel = { id: string; sortOrder: number; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts index a46b100d09..f503073ca4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type LanguageItemResponseModel = { name: string; isoCode: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts index 09567fc8d1..f05063ce04 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type LanguageModelBaseModel = { name: string; isDefault: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts index 129a7da8b4..26700efd0d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; + export type LanguageResponseModel = (LanguageModelBaseModel & { isoCode: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts index d5825eb8ee..ed7be18fd3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type LinkedLoginModel = { providerName: string; providerKey: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts index 0ade9f63be..49f3947868 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LinkedLoginModel } from './LinkedLoginModel'; + export type LinkedLoginsRequestModel = { linkedLogins: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts index 525b886faf..d1d988ec8f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type LogLevelCountsReponseModel = { information: number; debug: number; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelModel.ts index b93b38f83b..7de81d185c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum LogLevelModel { VERBOSE = 'Verbose', DEBUG = 'Debug', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts index 16c859e45d..de18608397 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type LogMessagePropertyPresentationModel = { name: string; value?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts index 7117aab625..9a219c4245 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LogLevelModel } from './LogLevelModel'; import type { LogMessagePropertyPresentationModel } from './LogMessagePropertyPresentationModel'; + export type LogMessageResponseModel = { timestamp: string; level: LogLevelModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts index 84eaeefa41..90ef6d4318 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type LogTemplateResponseModel = { messageTemplate?: string | null; count: number; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts index ceb700a84e..3c1f88ffd2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LogLevelModel } from './LogLevelModel'; + export type LoggerResponseModel = { name: string; level: LogLevelModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaCollectionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaCollectionResponseModel.ts index 66781e382a..a28f2123e6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaCollectionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaCollectionResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentCollectionResponseModelBaseMediaValueModelMediaVariantResponseModel } from './ContentCollectionResponseModelBaseMediaValueModelMediaVariantResponseModel'; import type { MediaTypeCollectionReferenceResponseModel } from './MediaTypeCollectionReferenceResponseModel'; + export type MediaCollectionResponseModel = (ContentCollectionResponseModelBaseMediaValueModelMediaVariantResponseModel & { mediaType: MediaTypeCollectionReferenceResponseModel; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaConfigurationResponseModel.ts index 9230d756e8..fbe7b748eb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaConfigurationResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type MediaConfigurationResponseModel = { disableDeleteWhenReferenced: boolean; disableUnpublishWhenReferenced: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts index e512f0b93e..ec38113736 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; import type { MediaTypeReferenceResponseModel } from './MediaTypeReferenceResponseModel'; import type { VariantItemResponseModel } from './VariantItemResponseModel'; + export type MediaItemResponseModel = (ItemResponseModelBaseModel & { isTrashed: boolean; mediaType: MediaTypeReferenceResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaRecycleBinItemResponseModel.ts index 942fdccfe2..56467ffbc9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaRecycleBinItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaRecycleBinItemResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaTypeReferenceResponseModel } from './MediaTypeReferenceResponseModel'; import type { RecycleBinItemResponseModelBaseModel } from './RecycleBinItemResponseModelBaseModel'; import type { VariantItemResponseModel } from './VariantItemResponseModel'; + export type MediaRecycleBinItemResponseModel = (RecycleBinItemResponseModelBaseModel & { mediaType: MediaTypeReferenceResponseModel; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaResponseModel.ts index 954b57e52e..bdc16174e0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentForMediaResponseModel } from './ContentForMediaResponseModel'; import type { MediaTypeReferenceResponseModel } from './MediaTypeReferenceResponseModel'; import type { MediaUrlInfoModel } from './MediaUrlInfoModel'; + export type MediaResponseModel = (ContentForMediaResponseModel & { urls: Array; isTrashed: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts index 912696d8ff..24c7fad8f2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseModel'; import type { MediaTypeReferenceResponseModel } from './MediaTypeReferenceResponseModel'; import type { VariantItemResponseModel } from './VariantItemResponseModel'; + export type MediaTreeItemResponseModel = (ContentTreeItemResponseModel & { mediaType: MediaTypeReferenceResponseModel; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCollectionReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCollectionReferenceResponseModel.ts index 9d3d587785..fa9d9718fb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCollectionReferenceResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCollectionReferenceResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCollectionReferenceResponseModelBaseModel } from './ContentTypeCollectionReferenceResponseModelBaseModel'; + export type MediaTypeCollectionReferenceResponseModel = ContentTypeCollectionReferenceResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionModel.ts index c3930cc994..26f74e7068 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CompositionTypeModel } from './CompositionTypeModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MediaTypeCompositionModel = { mediaType: ReferenceByIdModel; compositionType: CompositionTypeModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts index cc69f76f04..283f523faa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCompositionRequestModelBaseModel } from './ContentTypeCompositionRequestModelBaseModel'; + export type MediaTypeCompositionRequestModel = ContentTypeCompositionRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts index 69d7323025..3068379d6e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCompositionResponseModelBaseModel } from './ContentTypeCompositionResponseModelBaseModel'; + export type MediaTypeCompositionResponseModel = ContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts index 6c4141bb59..782e59631a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type MediaTypeItemResponseModel = (NamedItemResponseModelBaseModel & { icon?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts index ced457add1..8529996e90 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type MediaTypePropertyTypeContainerResponseModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts index ef030db72a..20a8e3efd5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type MediaTypePropertyTypeResponseModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeReferenceResponseModel.ts index 1d8715dccf..5aad862b1b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeReferenceResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeReferenceResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeReferenceResponseModelBaseModel } from './ContentTypeReferenceResponseModelBaseModel'; + export type MediaTypeReferenceResponseModel = ContentTypeReferenceResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts index 8a236f2938..a4e5cd2e89 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeForMediaTypeResponseModel } from './ContentTypeForMediaTypeResponseModel'; import type { MediaTypeCompositionModel } from './MediaTypeCompositionModel'; import type { MediaTypeSortModel } from './MediaTypeSortModel'; + export type MediaTypeResponseModel = (ContentTypeForMediaTypeResponseModel & { allowedMediaTypes: Array; compositions: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeSortModel.ts index 8f00b163be..a6305256c5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeSortModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeSortModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MediaTypeSortModel = { mediaType: ReferenceByIdModel; sortOrder: number; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts index dbbacb65a0..8455663b94 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; + export type MediaTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { icon: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaUrlInfoModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaUrlInfoModel.ts index d4ca73caf5..787169ddaf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaUrlInfoModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaUrlInfoModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentUrlInfoBaseModel } from './ContentUrlInfoBaseModel'; + export type MediaUrlInfoModel = ContentUrlInfoBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts index 3df0df1a96..c65ef62bb0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ValueModelBaseModel } from './ValueModelBaseModel'; + export type MediaValueModel = ValueModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts index c9cc0d909e..8b6bc1f2e4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { VariantModelBaseModel } from './VariantModelBaseModel'; + export type MediaVariantRequestModel = VariantModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts index 61835de996..5934131d3e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { VariantResponseModelBaseModel } from './VariantResponseModelBaseModel'; + export type MediaVariantResponseModel = VariantResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts index 5846a7888c..690f274951 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type MemberGroupItemResponseModel = NamedItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupPresentationBaseModel.ts index b85f505241..bebe62bc79 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupPresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupPresentationBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type MemberGroupPresentationBaseModel = { name: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupResponseModel.ts index 4e74a41695..67be1b3394 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberGroupPresentationBaseModel } from './MemberGroupPresentationBaseModel'; + export type MemberGroupResponseModel = (MemberGroupPresentationBaseModel & { id: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts index 15e6cab15e..4fec6f420a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; import type { MemberTypeReferenceResponseModel } from './MemberTypeReferenceResponseModel'; import type { VariantItemResponseModel } from './VariantItemResponseModel'; + export type MemberItemResponseModel = (ItemResponseModelBaseModel & { memberType: MemberTypeReferenceResponseModel; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberResponseModel.ts index a4b9c74c39..3e5680d309 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentForMemberResponseModel } from './ContentForMemberResponseModel'; import type { MemberTypeReferenceResponseModel } from './MemberTypeReferenceResponseModel'; + export type MemberResponseModel = (ContentForMemberResponseModel & { email: string; username: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionModel.ts index 255ed6d09b..f6b0c3a8fa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CompositionTypeModel } from './CompositionTypeModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MemberTypeCompositionModel = { memberType: ReferenceByIdModel; compositionType: CompositionTypeModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionRequestModel.ts index 74a801027f..4229739646 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCompositionRequestModelBaseModel } from './ContentTypeCompositionRequestModelBaseModel'; + export type MemberTypeCompositionRequestModel = ContentTypeCompositionRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionResponseModel.ts index ba3ce57594..727ed971c6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeCompositionResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeCompositionResponseModelBaseModel } from './ContentTypeCompositionResponseModelBaseModel'; + export type MemberTypeCompositionResponseModel = ContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts index a341b98c21..846b1d2159 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type MemberTypeItemResponseModel = (NamedItemResponseModelBaseModel & { icon?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypePropertyTypeContainerResponseModel.ts index 306d9de09c..35eabeb2bd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypePropertyTypeContainerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypePropertyTypeContainerResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type MemberTypePropertyTypeContainerResponseModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypePropertyTypeResponseModel.ts index fdbaf6fb71..2fb8613c85 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypePropertyTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypePropertyTypeResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type MemberTypePropertyTypeResponseModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeReferenceResponseModel.ts index 3626075f98..ae2b46be69 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeReferenceResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeReferenceResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeReferenceResponseModelBaseModel } from './ContentTypeReferenceResponseModelBaseModel'; + export type MemberTypeReferenceResponseModel = ContentTypeReferenceResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeResponseModel.ts index c304b78809..dadb181c44 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ContentTypeForMemberTypeResponseModel } from './ContentTypeForMemberTypeResponseModel'; import type { MemberTypeCompositionModel } from './MemberTypeCompositionModel'; + export type MemberTypeResponseModel = (ContentTypeForMemberTypeResponseModel & { compositions: Array; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberValueModel.ts index c16286ac53..0d2b1f9893 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberValueModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberValueModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ValueModelBaseModel } from './ValueModelBaseModel'; + export type MemberValueModel = ValueModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberVariantRequestModel.ts index 2ed7ff1b9d..63ecf05ade 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberVariantRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberVariantRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { VariantModelBaseModel } from './VariantModelBaseModel'; + export type MemberVariantRequestModel = VariantModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberVariantResponseModel.ts index 4e582dee09..015da14f9e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberVariantResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { VariantResponseModelBaseModel } from './VariantResponseModelBaseModel'; + export type MemberVariantResponseModel = VariantResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts index e62ad6ea54..d5e29920fa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ModelsModeModel } from './ModelsModeModel'; + export type ModelsBuilderResponseModel = { mode: ModelsModeModel; canGenerate: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsModeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsModeModel.ts index 8fa3532dce..42407aa100 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsModeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsModeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum ModelsModeModel { NOTHING = 'Nothing', IN_MEMORY_AUTO = 'InMemoryAuto', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts index e8c56848c0..db0b40b1ff 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveDataTypeRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts index 7c1dfd6eb1..806e676efc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveDictionaryRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts index a3734b6ec2..0dd9fe3ca0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveDocumentRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts index 0daa5d7e8f..b61b053f9d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveDocumentTypeRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts index 3b82b877ec..caea949b55 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveMediaRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts index 4a8be920c9..d3b5a7c349 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveMediaTypeRequestModel = { target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedEntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedEntityTreeItemResponseModel.ts index 047a053455..b46ea3126a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedEntityTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedEntityTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; + export type NamedEntityTreeItemResponseModel = (EntityTreeItemResponseModel & { name: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedItemResponseModelBaseModel.ts index 5440002bce..d7a2882b2c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedItemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedItemResponseModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type NamedItemResponseModelBaseModel = { id: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NoopSetupTwoFactorModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NoopSetupTwoFactorModel.ts index d004f4f4b2..f3b8fe2761 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NoopSetupTwoFactorModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NoopSetupTwoFactorModel.ts @@ -2,4 +2,5 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type NoopSetupTwoFactorModel = Record; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NotificationHeaderModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NotificationHeaderModel.ts index 7114243e98..5121f24de8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NotificationHeaderModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NotificationHeaderModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { EventMessageTypeModel } from './EventMessageTypeModel'; + export type NotificationHeaderModel = { message: string; category: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts index 2f38aafe2c..c40acbeaf2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ObjectTypeResponseModel = { name?: string | null; id: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts index 8c74aca9d4..a199ea6e61 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type OkResult = { statusCode: number; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OperatorModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OperatorModel.ts index 33e6e4a5d8..4e826935ff 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OperatorModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OperatorModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum OperatorModel { EQUALS = 'Equals', NOT_EQUALS = 'NotEquals', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts index 85e686e668..59c7d9adab 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { OutOfDateTypeModel } from './OutOfDateTypeModel'; + export type OutOfDateStatusResponseModel = { status: OutOfDateTypeModel; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateTypeModel.ts index de5d6a9946..cfe0de4908 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateTypeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum OutOfDateTypeModel { OUT_OF_DATE = 'OutOfDate', CURRENT = 'Current', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageConfigurationResponseModel.ts index a79d664557..73634e2f42 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageConfigurationResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PackageConfigurationResponseModel = { marketplaceUrl: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts index d810448edc..f5248ab237 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PackageModelBaseModel } from './PackageModelBaseModel'; + export type PackageDefinitionResponseModel = (PackageModelBaseModel & { id: string; packagePath: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts index c7f552b70d..c247a475af 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PackageManifestResponseModel = { name: string; version?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts index 0fdf07fb7e..fa38491d4b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PackageMigrationStatusResponseModel = { packageName: string; hasPendingMigrations: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts index 13f68a6bef..71ee36a68b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PackageModelBaseModel = { name: string; contentNodeId?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedDocumentTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedDocumentTypeModel.ts index 2ba1358717..f0df413068 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedDocumentTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedDocumentTypeModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AllowedDocumentTypeModel } from './AllowedDocumentTypeModel'; + export type PagedAllowedDocumentTypeModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedMediaTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedMediaTypeModel.ts index 94c4acee09..48ca45fd60 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedMediaTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedMediaTypeModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AllowedMediaTypeModel } from './AllowedMediaTypeModel'; + export type PagedAllowedMediaTypeModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts index fc06ed0443..9dcaf0c733 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AuditLogResponseModel } from './AuditLogResponseModel'; + export type PagedAuditLogResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts index 53cc1b0ce7..5ff9186405 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { AuditLogWithUsernameResponseModel } from './AuditLogWithUsernameResponseModel'; + export type PagedAuditLogWithUsernameResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts index 0dca860fc4..437ec404fa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CultureReponseModel } from './CultureReponseModel'; + export type PagedCultureReponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts index e11d513028..fd81a53b86 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypeTreeItemResponseModel } from './DataTypeTreeItemResponseModel'; + export type PagedDataTypeTreeItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts index dbbd318c5d..7ce857aa31 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DictionaryOverviewResponseModel } from './DictionaryOverviewResponseModel'; + export type PagedDictionaryOverviewResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts index 0f13010cf9..9bf8a5c863 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentBlueprintTreeItemResponseModel } from './DocumentBlueprintTreeItemResponseModel'; + export type PagedDocumentBlueprintTreeItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentCollectionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentCollectionResponseModel.ts index 219931b979..b3b1a29bed 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentCollectionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentCollectionResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentCollectionResponseModel } from './DocumentCollectionResponseModel'; + export type PagedDocumentCollectionResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentRecycleBinItemResponseModel.ts index 53554e866a..1a6958d31f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentRecycleBinItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentRecycleBinItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentRecycleBinItemResponseModel } from './DocumentRecycleBinItemResponseModel'; + export type PagedDocumentRecycleBinItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts index e35bf3d18c..2399cfc00c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentTreeItemResponseModel } from './DocumentTreeItemResponseModel'; + export type PagedDocumentTreeItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts index c9f24419b0..4f40e9efe9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentTypeTreeItemResponseModel } from './DocumentTypeTreeItemResponseModel'; + export type PagedDocumentTypeTreeItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts index 4a0c21fe21..443c23df29 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemTreeItemPresentationModel } from './FileSystemTreeItemPresentationModel'; + export type PagedFileSystemTreeItemPresentationModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts index 1d91cfc0db..d93685d9d4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HealthCheckGroupResponseModel } from './HealthCheckGroupResponseModel'; + export type PagedHealthCheckGroupResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts index 7756b18a70..04c50d6e85 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { HelpPageResponseModel } from './HelpPageResponseModel'; + export type PagedHelpPageResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts index 670fb8c416..7c0c4638c3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { IndexResponseModel } from './IndexResponseModel'; + export type PagedIndexResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts index ed465d10b2..37fe3d3913 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LanguageResponseModel } from './LanguageResponseModel'; + export type PagedLanguageResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts index 02dc9e3e7f..cf4fc66449 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LogMessageResponseModel } from './LogMessageResponseModel'; + export type PagedLogMessageResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts index a9f9efa97f..291011a872 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LogTemplateResponseModel } from './LogTemplateResponseModel'; + export type PagedLogTemplateResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts index 1715a69022..77083fc931 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LoggerResponseModel } from './LoggerResponseModel'; + export type PagedLoggerResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaCollectionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaCollectionResponseModel.ts index 765e28611a..3859caa0cb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaCollectionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaCollectionResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaCollectionResponseModel } from './MediaCollectionResponseModel'; + export type PagedMediaCollectionResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaRecycleBinItemResponseModel.ts index 24527a4d89..1918188011 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaRecycleBinItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaRecycleBinItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaRecycleBinItemResponseModel } from './MediaRecycleBinItemResponseModel'; + export type PagedMediaRecycleBinItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts index 1c88346168..864dce738f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaTreeItemResponseModel } from './MediaTreeItemResponseModel'; + export type PagedMediaTreeItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts index cf5c1363f3..d22af1c59c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaTypeTreeItemResponseModel } from './MediaTypeTreeItemResponseModel'; + export type PagedMediaTypeTreeItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMemberGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMemberGroupResponseModel.ts index 99ffd55a7d..81fee9d58f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMemberGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMemberGroupResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberGroupResponseModel } from './MemberGroupResponseModel'; + export type PagedMemberGroupResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMemberResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMemberResponseModel.ts index 2c771fa314..06cea577ab 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMemberResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMemberResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberResponseModel } from './MemberResponseModel'; + export type PagedMemberResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedNamedEntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedNamedEntityTreeItemResponseModel.ts index 7af89e52d7..8af4c598e0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedNamedEntityTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedNamedEntityTreeItemResponseModel.ts @@ -2,12 +2,14 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypeTreeItemResponseModel } from './DataTypeTreeItemResponseModel'; import type { DocumentBlueprintTreeItemResponseModel } from './DocumentBlueprintTreeItemResponseModel'; import type { DocumentTypeTreeItemResponseModel } from './DocumentTypeTreeItemResponseModel'; import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; import type { MediaTypeTreeItemResponseModel } from './MediaTypeTreeItemResponseModel'; import type { NamedEntityTreeItemResponseModel } from './NamedEntityTreeItemResponseModel'; + export type PagedNamedEntityTreeItemResponseModel = { total: number; items: Array<(NamedEntityTreeItemResponseModel | DataTypeTreeItemResponseModel | DocumentBlueprintTreeItemResponseModel | DocumentTypeTreeItemResponseModel | FolderTreeItemResponseModel | MediaTypeTreeItemResponseModel)>; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts index 7143c49e25..77d8106b39 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ObjectTypeResponseModel } from './ObjectTypeResponseModel'; + export type PagedObjectTypeResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts index 0238073e84..e42eb299ee 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PackageDefinitionResponseModel } from './PackageDefinitionResponseModel'; + export type PagedPackageDefinitionResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts index 3810d742c3..aa3f4f4ced 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PackageMigrationStatusResponseModel } from './PackageMigrationStatusResponseModel'; + export type PagedPackageMigrationStatusResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPartialViewSnippetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPartialViewSnippetItemResponseModel.ts index e60816a78a..0c0746288c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPartialViewSnippetItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPartialViewSnippetItemResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PartialViewSnippetItemResponseModel } from './PartialViewSnippetItemResponseModel'; import type { PartialViewSnippetResponseModel } from './PartialViewSnippetResponseModel'; + export type PagedPartialViewSnippetItemResponseModel = { total: number; items: Array<(PartialViewSnippetItemResponseModel | PartialViewSnippetResponseModel)>; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts index ad97aa50ed..5291741485 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ProblemDetails } from './ProblemDetails'; + export type PagedProblemDetailsModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts index bc24eee16b..e749134ad3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RedirectUrlResponseModel } from './RedirectUrlResponseModel'; + export type PagedRedirectUrlResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts index 2f69811dbc..47e1960065 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RelationItemResponseModel } from './RelationItemResponseModel'; + export type PagedRelationItemResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts index ae2b947bf3..377517e398 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RelationResponseModel } from './RelationResponseModel'; + export type PagedRelationResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts index e991b8c951..8eebf10ebc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { SavedLogSearchResponseModel } from './SavedLogSearchResponseModel'; + export type PagedSavedLogSearchResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts index d27a9e097d..233891717d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { SearchResultResponseModel } from './SearchResultResponseModel'; + export type PagedSearchResultResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts index 9b89360ab1..c39bc2751e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { SearcherResponseModel } from './SearcherResponseModel'; + export type PagedSearcherResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts index 8f80724f76..3134a3ee4f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TagResponseModel } from './TagResponseModel'; + export type PagedTagResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts index d856a17be1..0bcd9b1d9a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TelemetryResponseModel } from './TelemetryResponseModel'; + export type PagedTelemetryResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts index ad7b95b186..a1bf825127 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserGroupResponseModel } from './UserGroupResponseModel'; + export type PagedUserGroupResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts index c3b6e691c8..06fbaf0d50 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserResponseModel } from './UserResponseModel'; + export type PagedUserResponseModel = { total: number; items: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewFolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewFolderResponseModel.ts index 01c0071703..b43f9b3618 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewFolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewFolderResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemResponseModelBaseModel } from './FileSystemResponseModelBaseModel'; + export type PartialViewFolderResponseModel = FileSystemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts index f0646daa2d..0e02db6975 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemItemResponseModelBaseModel } from './FileSystemItemResponseModelBaseModel'; + export type PartialViewItemResponseModel = FileSystemItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts index f21cd83725..1918d146c2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileResponseModelBaseModel } from './FileSystemFileResponseModelBaseModel'; + export type PartialViewResponseModel = FileSystemFileResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts index 8054fdf94d..0e4707e702 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PartialViewSnippetItemResponseModel = { id: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts index c29f7f8d14..5937fb3414 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PartialViewSnippetItemResponseModel } from './PartialViewSnippetItemResponseModel'; + export type PartialViewSnippetResponseModel = (PartialViewSnippetItemResponseModel & { content: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts index b63cb94b3a..090f5de3c9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PasswordConfigurationResponseModel = { minimumPasswordLength: number; requireNonLetterOrDigit: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetails.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetails.ts index e82913fb9d..d120301326 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetails.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetails.ts @@ -2,4 +2,5 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ProblemDetails = Record; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetailsBuilderModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetailsBuilderModel.ts index cc513aa084..55d0ffc1e1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetailsBuilderModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProblemDetailsBuilderModel.ts @@ -2,4 +2,5 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ProblemDetailsBuilderModel = Record; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts index d044173920..5c48e0da66 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ProfilingStatusRequestModel = { enabled: boolean; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts index acde7e1900..8717638558 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ProfilingStatusResponseModel = { enabled: boolean; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts index 93f9b0f670..f690a3f46c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PropertyTypeAppearanceModel = { labelOnTop: boolean; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts index aebf13a187..6009b9eefb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type PropertyTypeContainerModelBaseModel = { id: string; parent?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts index 43ed18a593..46d414389d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeAppearanceModel } from './PropertyTypeAppearanceModel'; import type { PropertyTypeValidationModel } from './PropertyTypeValidationModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type PropertyTypeModelBaseModel = { id: string; container?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts index f8a2b0d31a..fda613e272 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PropertyTypeValidationModel = { mandatory: boolean; mandatoryMessage?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts index 2f6b2a895b..a0aba14ef8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type PublicAccessBaseModel = { loginDocument: ReferenceByIdModel; errorDocument: ReferenceByIdModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts index 3747298131..60f518c835 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PublicAccessBaseModel } from './PublicAccessBaseModel'; + export type PublicAccessRequestModel = (PublicAccessBaseModel & { memberUserNames: Array; memberGroupNames: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts index e1a331e641..f6b2145385 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberGroupItemResponseModel } from './MemberGroupItemResponseModel'; import type { MemberItemResponseModel } from './MemberItemResponseModel'; import type { PublicAccessBaseModel } from './PublicAccessBaseModel'; + export type PublicAccessResponseModel = (PublicAccessBaseModel & { members: Array; groups: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts index cd3ba78c68..4c08971560 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { CultureAndScheduleRequestModel } from './CultureAndScheduleRequestModel'; + export type PublishDocumentRequestModel = { publishSchedules: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts index da71debd78..9796f30e5a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type PublishDocumentWithDescendantsRequestModel = { includeUnpublishedDescendants: boolean; cultures: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModelBaseModel.ts index e0b0973c91..2666184305 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModelBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ItemReferenceByIdResponseModel } from './ItemReferenceByIdResponseModel'; + export type RecycleBinItemResponseModelBaseModel = { id: string; type: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectStatusModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectStatusModel.ts index e899673f09..e304036fe7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectStatusModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectStatusModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum RedirectStatusModel { ENABLED = 'Enabled', DISABLED = 'Disabled', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts index e82b8cdf15..42fe5abf72 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type RedirectUrlResponseModel = { id: string; originalUrl: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts index 44587868f4..ee5065a2a0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RedirectStatusModel } from './RedirectStatusModel'; + export type RedirectUrlStatusResponseModel = { status: RedirectStatusModel; userIsAdmin: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ReferenceByIdModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ReferenceByIdModel.ts index 2cb12a3d06..5085db2e12 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ReferenceByIdModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ReferenceByIdModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ReferenceByIdModel = { id: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts index bc822c73bb..48a8302000 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type RelationItemResponseModel = { nodeId: string; nodeName?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts index 644459e031..af7f600b3c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type RelationResponseModel = { parentId: string; parentName?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts index b673e8d4b4..93275aa12f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type RelationTypeBaseModel = { name: string; isBidirectional: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts index 9baf8d47eb..f156f0987d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type RelationTypeItemResponseModel = NamedItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts index 8baa62c8ac..990febe8b7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; + export type RelationTypeResponseModel = (RelationTypeBaseModel & { id: string; alias?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenamePartialViewRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenamePartialViewRequestModel.ts index fd09ec2d4c..73d12f36fb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenamePartialViewRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenamePartialViewRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemRenameRequestModelBaseModel } from './FileSystemRenameRequestModelBaseModel'; + export type RenamePartialViewRequestModel = FileSystemRenameRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenameScriptRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenameScriptRequestModel.ts index 7056de826a..cb578affc0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenameScriptRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenameScriptRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemRenameRequestModelBaseModel } from './FileSystemRenameRequestModelBaseModel'; + export type RenameScriptRequestModel = FileSystemRenameRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenameStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenameStylesheetRequestModel.ts index 35829f5d47..6af9564ff7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenameStylesheetRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RenameStylesheetRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemRenameRequestModelBaseModel } from './FileSystemRenameRequestModelBaseModel'; + export type RenameStylesheetRequestModel = FileSystemRenameRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts index 12ca24bdce..4d9c0789a4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type ResendInviteUserRequestModel = { user: ReferenceByIdModel; message?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts index 88ee96365b..efe0818403 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ResetPasswordRequestModel = { email: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts index 64fff7d861..513669862d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { VerifyResetPasswordTokenRequestModel } from './VerifyResetPasswordTokenRequestModel'; + export type ResetPasswordTokenRequestModel = (VerifyResetPasswordTokenRequestModel & { password: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordUserResponseModel.ts index f095a2b347..cb45c206e7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordUserResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ResetPasswordUserResponseModel = { resetPassword?: string | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeLevelModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeLevelModel.ts index 6d22130cae..6295198db1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeLevelModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeLevelModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum RuntimeLevelModel { UNKNOWN = 'Unknown', BOOT = 'Boot', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeModeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeModeModel.ts index 5f90ed6ab9..0f8e601e95 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeModeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeModeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum RuntimeModeModel { BACKOFFICE_DEVELOPMENT = 'BackofficeDevelopment', DEVELOPMENT = 'Development', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts index 186ae0d2b5..8e8e032cf0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type SavedLogSearchPresenationBaseModel = { name: string; query: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts index 71f273cbf4..c73ea6edcf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { SavedLogSearchPresenationBaseModel } from './SavedLogSearchPresenationBaseModel'; + export type SavedLogSearchRequestModel = SavedLogSearchPresenationBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts index ec4c7dda0b..764e26b616 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { SavedLogSearchPresenationBaseModel } from './SavedLogSearchPresenationBaseModel'; + export type SavedLogSearchResponseModel = SavedLogSearchPresenationBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScheduleRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScheduleRequestModel.ts index e60d653837..59b83b94a6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScheduleRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScheduleRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ScheduleRequestModel = { publishTime?: string | null; unpublishTime?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptFolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptFolderResponseModel.ts index b2f88906c7..c1c41eee88 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptFolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptFolderResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemResponseModelBaseModel } from './FileSystemResponseModelBaseModel'; + export type ScriptFolderResponseModel = FileSystemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts index 882248cb5e..714d81db7d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemItemResponseModelBaseModel } from './FileSystemItemResponseModelBaseModel'; + export type ScriptItemResponseModel = FileSystemItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts index 4b05a21ee2..789b07ca28 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileResponseModelBaseModel } from './FileSystemFileResponseModelBaseModel'; + export type ScriptResponseModel = FileSystemFileResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts index 38e638e0b8..4e44168a7a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FieldPresentationModel } from './FieldPresentationModel'; + export type SearchResultResponseModel = { id: string; score: number; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts index ff1b602ccd..0515d91ea8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type SearcherResponseModel = { name: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts index d84b88c11e..560327a3a7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + export type SecurityConfigurationResponseModel = { passwordConfiguration: PasswordConfigurationResponseModel; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationBaseModel.ts index fe8e21ccac..0192f50c80 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ServerConfigurationItemResponseModel } from './ServerConfigurationItemResponseModel'; + export type ServerConfigurationBaseModel = { items: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts index 1d66fb72db..4e97e60583 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ServerConfigurationItemResponseModel = { name: string; data: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationResponseModel.ts index 4117abe6e3..98eb5b3d0b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ServerConfigurationResponseModel = { allowPasswordReset: boolean; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts index 2f7a04cef1..3625d63958 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RuntimeModeModel } from './RuntimeModeModel'; + export type ServerInformationResponseModel = { version: string; assemblyVersion: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts index a8e3cdc59e..2c92b763bf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RuntimeLevelModel } from './RuntimeLevelModel'; + export type ServerStatusResponseModel = { serverStatus: RuntimeLevelModel; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerTroubleshootingResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerTroubleshootingResponseModel.ts index 0380ed7987..f46e4202ff 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerTroubleshootingResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerTroubleshootingResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ServerConfigurationBaseModel } from './ServerConfigurationBaseModel'; + export type ServerTroubleshootingResponseModel = ServerConfigurationBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts index 4cac1d7a05..f9e9fd22bd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type SetAvatarRequestModel = { file: ReferenceByIdModel; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts index 63105884c1..b92400222f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TourStatusModel } from './TourStatusModel'; + export type SetTourStatusRequestModel = TourStatusModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts index 910d9ae18e..3a0561adca 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ItemSortingRequestModel } from './ItemSortingRequestModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type SortingRequestModel = { parent?: ReferenceByIdModel | null; sorting: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts index 5d93923528..2ad2984074 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemItemResponseModelBaseModel } from './FileSystemItemResponseModelBaseModel'; + export type StaticFileItemResponseModel = FileSystemItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StatusResultTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StatusResultTypeModel.ts index 838917b3f8..a12e3ec8e4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StatusResultTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StatusResultTypeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum StatusResultTypeModel { SUCCESS = 'Success', WARNING = 'Warning', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetFolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetFolderResponseModel.ts index a7fee8f3e5..3c0fda4061 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetFolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetFolderResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemResponseModelBaseModel } from './FileSystemResponseModelBaseModel'; + export type StylesheetFolderResponseModel = FileSystemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts index 8b7189afa2..c4b7d817c6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemItemResponseModelBaseModel } from './FileSystemItemResponseModelBaseModel'; + export type StylesheetItemResponseModel = FileSystemItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts index d9f92001f4..e32e8f2d74 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileResponseModelBaseModel } from './FileSystemFileResponseModelBaseModel'; + export type StylesheetResponseModel = FileSystemFileResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts index 701ae7cc98..4b2b6a2bcc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TagResponseModel = { id: string; text?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryLevelModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryLevelModel.ts index a87181dd08..cf03fe41a2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryLevelModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryLevelModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum TelemetryLevelModel { MINIMAL = 'Minimal', BASIC = 'Basic', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts index d4a4680f9e..fb7b6286a9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TelemetryLevelModel } from './TelemetryLevelModel'; + export type TelemetryRepresentationBaseModel = { telemetryLevel: TelemetryLevelModel; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts index 9519b4379d..4038ab5922 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TelemetryRepresentationBaseModel } from './TelemetryRepresentationBaseModel'; + export type TelemetryRequestModel = TelemetryRepresentationBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts index cca5b593a3..6845564be7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TelemetryRepresentationBaseModel } from './TelemetryRepresentationBaseModel'; + export type TelemetryResponseModel = TelemetryRepresentationBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateConfigurationResponseModel.ts index bcc5ba2995..1236e86306 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateConfigurationResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TemplateConfigurationResponseModel = { disabled: boolean; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts index 7a88d87663..dc6a62ed51 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type TemplateItemResponseModel = (NamedItemResponseModelBaseModel & { alias: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts index 702fa62547..788f0cfcd9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TemplateModelBaseModel = { name: string; alias: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts index cadda0494b..fa39f4da74 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { OperatorModel } from './OperatorModel'; + export type TemplateQueryExecuteFilterPresentationModel = { propertyAlias: string; constraintValue: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts index 550911fe83..5ee9d6e4e5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { TemplateQueryExecuteFilterPresentationModel } from './TemplateQueryExecuteFilterPresentationModel'; import type { TemplateQueryExecuteSortModel } from './TemplateQueryExecuteSortModel'; + export type TemplateQueryExecuteModel = { rootDocument?: ReferenceByIdModel | null; documentTypeAlias?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts index 3b3ad90254..7632a9c9a9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TemplateQueryExecuteSortModel = { propertyAlias: string; direction?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts index e41ecafdef..1b5dbb4fbd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { OperatorModel } from './OperatorModel'; import type { TemplateQueryPropertyTypeModel } from './TemplateQueryPropertyTypeModel'; + export type TemplateQueryOperatorModel = { operator: OperatorModel; applicableTypes: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts index acc080626c..7d5c5c3d80 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TemplateQueryPropertyTypeModel } from './TemplateQueryPropertyTypeModel'; + export type TemplateQueryPropertyPresentationModel = { alias: string; type: TemplateQueryPropertyTypeModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyTypeModel.ts index 9a2b33e735..cb256a6ff4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyTypeModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum TemplateQueryPropertyTypeModel { STRING = 'String', DATE_TIME = 'DateTime', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts index 6dbb3c8c25..428789e6e3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TemplateQueryResultItemPresentationModel = { icon: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts index abf8671dd0..6031658215 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TemplateQueryResultItemPresentationModel } from './TemplateQueryResultItemPresentationModel'; + export type TemplateQueryResultResponseModel = { queryExpression: string; sampleResults: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts index 0a4a11bf8a..9bbd602dfd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TemplateQueryOperatorModel } from './TemplateQueryOperatorModel'; import type { TemplateQueryPropertyPresentationModel } from './TemplateQueryPropertyPresentationModel'; + export type TemplateQuerySettingsResponseModel = { documentTypeAliases: Array; properties: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts index 93d331b1c0..dab1be928a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { TemplateModelBaseModel } from './TemplateModelBaseModel'; + export type TemplateResponseModel = (TemplateModelBaseModel & { id: string; masterTemplate?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileConfigurationResponseModel.ts index 48c6b8130f..e9c57080fd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileConfigurationResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TemporaryFileConfigurationResponseModel = { imageFileTypes: Array; disallowedUploadedFilesExtensions: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts index dd84869488..81b830ed48 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TemporaryFileResponseModel = { id: string; availableUntil?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts index 237141ba37..cc941f5b6e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TourStatusModel = { alias: string; completed: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts index 5384e8b2b1..b6e40540ce 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type TreeItemPresentationModel = { type: string; hasChildren: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnknownTypePermissionPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnknownTypePermissionPresentationModel.ts index 9afc81309c..ca089bbf6f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnknownTypePermissionPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnknownTypePermissionPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UnknownTypePermissionPresentationModel = { $type: string; verbs: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts index 0b0c9c3a5c..b3b7422b4d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UnlockUsersRequestModel = { userIds: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts index 3c9c692829..5f6a876fbf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts @@ -2,7 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UnpublishDocumentRequestModel = { - culture?: string | null; + cultures?: Array | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts index 3c788b9efa..914404a689 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentValueModel } from './DocumentValueModel'; import type { DocumentVariantRequestModel } from './DocumentVariantRequestModel'; + export type UpdateContentForDocumentRequestModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts index eb4cf49058..9abbcea7e2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaValueModel } from './MediaValueModel'; import type { MediaVariantRequestModel } from './MediaVariantRequestModel'; + export type UpdateContentForMediaRequestModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMemberRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMemberRequestModel.ts index 9d8d82ee59..e25be5f883 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMemberRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMemberRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberValueModel } from './MemberValueModel'; import type { MemberVariantRequestModel } from './MemberVariantRequestModel'; + export type UpdateContentForMemberRequestModel = { values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts index f0777fe3a7..55e6966d8c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateDocumentTypePropertyTypeContainerRequestModel } from './UpdateDocumentTypePropertyTypeContainerRequestModel'; import type { UpdateDocumentTypePropertyTypeRequestModel } from './UpdateDocumentTypePropertyTypeRequestModel'; + export type UpdateContentTypeForDocumentTypeRequestModel = { alias: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts index 12f76b22a3..6edc724854 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateMediaTypePropertyTypeContainerRequestModel } from './UpdateMediaTypePropertyTypeContainerRequestModel'; import type { UpdateMediaTypePropertyTypeRequestModel } from './UpdateMediaTypePropertyTypeRequestModel'; + export type UpdateContentTypeForMediaTypeRequestModel = { alias: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMemberTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMemberTypeRequestModel.ts index e76c33dbeb..6e32bbb080 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMemberTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMemberTypeRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateMemberTypePropertyTypeContainerRequestModel } from './UpdateMemberTypePropertyTypeContainerRequestModel'; import type { UpdateMemberTypePropertyTypeRequestModel } from './UpdateMemberTypePropertyTypeRequestModel'; + export type UpdateContentTypeForMemberTypeRequestModel = { alias: string; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts index d7d9f7f2df..635cf63785 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; + export type UpdateDataTypeRequestModel = DataTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts index ea10edc536..1348c0ca10 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; + export type UpdateDictionaryItemRequestModel = DictionaryItemModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts index 51323517dd..d8f77ed0ec 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UpdateDocumentNotificationsRequestModel = { subscribedActionIds: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts index e00eef5381..75b04656c5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateContentForDocumentRequestModel } from './UpdateContentForDocumentRequestModel'; + export type UpdateDocumentRequestModel = (UpdateContentForDocumentRequestModel & { template?: ReferenceByIdModel | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts index 871ee90ea4..a5b9b39f26 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type UpdateDocumentTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts index 01a9699d0a..ef34f46fe6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type UpdateDocumentTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts index 7e46962d5e..b7ee352bb0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts @@ -2,11 +2,13 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentTypeCleanupModel } from './DocumentTypeCleanupModel'; import type { DocumentTypeCompositionModel } from './DocumentTypeCompositionModel'; import type { DocumentTypeSortModel } from './DocumentTypeSortModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateContentTypeForDocumentTypeRequestModel } from './UpdateContentTypeForDocumentTypeRequestModel'; + export type UpdateDocumentTypeRequestModel = (UpdateContentTypeForDocumentTypeRequestModel & { allowedTemplates: Array; defaultTemplate?: ReferenceByIdModel | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts index 25f9d9ac14..2b35548f52 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DomainsPresentationModelBaseModel } from './DomainsPresentationModelBaseModel'; + export type UpdateDomainsRequestModel = DomainsPresentationModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts index 31bdf87d6a..d5efa20832 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FolderModelBaseModel } from './FolderModelBaseModel'; + export type UpdateFolderResponseModel = FolderModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts index adb874710c..9b4c7f6c2a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; + export type UpdateLanguageRequestModel = LanguageModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts index 26212a2f8d..66f8fcd3ca 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UpdateContentForMediaRequestModel } from './UpdateContentForMediaRequestModel'; + export type UpdateMediaRequestModel = UpdateContentForMediaRequestModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts index b1eaf9abd9..784c0540ad 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type UpdateMediaTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts index 55305ef0ad..01c5dca483 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type UpdateMediaTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts index 621b35e159..25341fe97d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MediaTypeCompositionModel } from './MediaTypeCompositionModel'; import type { MediaTypeSortModel } from './MediaTypeSortModel'; import type { UpdateContentTypeForMediaTypeRequestModel } from './UpdateContentTypeForMediaTypeRequestModel'; + export type UpdateMediaTypeRequestModel = (UpdateContentTypeForMediaTypeRequestModel & { allowedMediaTypes: Array; compositions: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberGroupRequestModel.ts index 9c97f36087..18b082fb02 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberGroupRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberGroupRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberGroupPresentationBaseModel } from './MemberGroupPresentationBaseModel'; + export type UpdateMemberGroupRequestModel = MemberGroupPresentationBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberRequestModel.ts index 51df61a4a6..18dc534391 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UpdateContentForMemberRequestModel } from './UpdateContentForMemberRequestModel'; + export type UpdateMemberRequestModel = (UpdateContentForMemberRequestModel & { email: string; username: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypePropertyTypeContainerRequestModel.ts index 33cfffeeb1..effedf5625 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypePropertyTypeContainerRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; + export type UpdateMemberTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypePropertyTypeRequestModel.ts index ff73314adf..1eb275e6dc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypePropertyTypeRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; + export type UpdateMemberTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypeRequestModel.ts index ddd505e53f..63655cd01a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMemberTypeRequestModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { MemberTypeCompositionModel } from './MemberTypeCompositionModel'; import type { UpdateContentTypeForMemberTypeRequestModel } from './UpdateContentTypeForMemberTypeRequestModel'; + export type UpdateMemberTypeRequestModel = (UpdateContentTypeForMemberTypeRequestModel & { compositions: Array; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts index f1c6bf6332..c77502d8d6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PackageModelBaseModel } from './PackageModelBaseModel'; + export type UpdatePackageRequestModel = (PackageModelBaseModel & { packagePath: string; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts index 6660fe2b99..74425b5145 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileUpdateRequestModelBaseModel } from './FileSystemFileUpdateRequestModelBaseModel'; + export type UpdatePartialViewRequestModel = FileSystemFileUpdateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts index 90d291e6ff..9311e54c4c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; + export type UpdateRelationTypeRequestModel = RelationTypeBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts index 066f439a17..64b5dd28d1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileUpdateRequestModelBaseModel } from './FileSystemFileUpdateRequestModelBaseModel'; + export type UpdateScriptRequestModel = FileSystemFileUpdateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts index 1100492f1e..06dd317e1f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { FileSystemFileUpdateRequestModelBaseModel } from './FileSystemFileUpdateRequestModelBaseModel'; + export type UpdateStylesheetRequestModel = FileSystemFileUpdateRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts index ab24bd492f..a4a734154c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { TemplateModelBaseModel } from './TemplateModelBaseModel'; + export type UpdateTemplateRequestModel = TemplateModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts index 61435c8378..f6f7cecb2d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserGroupBaseModel } from './UserGroupBaseModel'; + export type UpdateUserGroupRequestModel = UserGroupBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts index e56a660ace..181ce870fe 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UpdateUserGroupsOnUserRequestModel = { userIds: Array; userGroupIds: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts index 71dcdcb859..a9985bc90d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; + export type UpdateUserRequestModel = (UserPresentationBaseModel & { languageIsoCode: string; documentStartNodeIds: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateWebhookRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateWebhookRequestModel.ts index 5b6e2a378e..c4efd99c20 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateWebhookRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateWebhookRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { WebhookModelBaseModel } from './WebhookModelBaseModel'; + export type UpdateWebhookRequestModel = (WebhookModelBaseModel & { events: Array; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts index c5b54f92ed..8c003c6cc2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UpgradeSettingsResponseModel = { currentState: string; newState: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts index 4e5af7368c..03b2a5c612 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + export type UserConfigurationResponseModel = { canInviteUsers: boolean; passwordConfiguration: PasswordConfigurationResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts index bb318d02b6..12df62d966 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts @@ -2,9 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { DocumentPermissionPresentationModel } from './DocumentPermissionPresentationModel'; import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UnknownTypePermissionPresentationModel } from './UnknownTypePermissionPresentationModel'; + export type UserGroupBaseModel = { name: string; icon?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts index 680f41a44d..8ded3fdf6e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type UserGroupItemResponseModel = (NamedItemResponseModelBaseModel & { icon?: string | null; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts index 90d3d0a8b9..04526f66a1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserGroupBaseModel } from './UserGroupBaseModel'; + export type UserGroupResponseModel = (UserGroupBaseModel & { id: string; isSystemGroup: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallPresentationModel.ts index 189e947041..60841dad48 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallPresentationModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UserInstallPresentationModel = { name: string; email: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts index 67dcee788a..fbe9a652d8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + export type UserItemResponseModel = NamedItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserOrderModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserOrderModel.ts index e5c188fc03..64a7bf766e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserOrderModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserOrderModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum UserOrderModel { USER_NAME = 'UserName', LANGUAGE = 'Language', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts index e86a9d01a2..d154d2e05d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UserPermissionModel = { nodeKey: string; permissions: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts index 4cbdd751df..7dfc2edb5a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserPermissionModel } from './UserPermissionModel'; + export type UserPermissionsResponseModel = { permissions: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts index 576bd8fedc..13a3b9e8a7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UserPresentationBaseModel = { email: string; userName: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts index 0d519cacb0..87dfd902d1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; import type { UserStateModel } from './UserStateModel'; + export type UserResponseModel = (UserPresentationBaseModel & { id: string; languageIsoCode?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsPresentationModel.ts index 444bc15778..b1972008c4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsPresentationModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ConsentLevelPresentationModel } from './ConsentLevelPresentationModel'; + export type UserSettingsPresentationModel = { minCharLength: number; minNonAlphaNumericLength: number; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserStateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserStateModel.ts index 496c644452..16dc3dd79b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserStateModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserStateModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export enum UserStateModel { ACTIVE = 'Active', DISABLED = 'Disabled', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts index fd59e6ff7b..be820dec20 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { SetTourStatusRequestModel } from './SetTourStatusRequestModel'; import type { TourStatusModel } from './TourStatusModel'; + export type UserTourStatusesResponseModel = { tourStatuses: Array<(TourStatusModel | SetTourStatusRequestModel)>; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTwoFactorProviderModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTwoFactorProviderModel.ts index 4722b921c4..be0c9fc780 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTwoFactorProviderModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTwoFactorProviderModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type UserTwoFactorProviderModel = { providerName: string; isEnabledOnUser: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts index 3e55cf1c6e..6fef1698f5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type ValueModelBaseModel = { culture?: string | null; segment?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts index 090d3bddc3..803621a39c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts @@ -2,6 +2,8 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { VariantItemResponseModelBaseModel } from './VariantItemResponseModelBaseModel'; + export type VariantItemResponseModel = VariantItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModelBaseModel.ts index 44967dc3b5..955c49c60c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type VariantItemResponseModelBaseModel = { name: string; culture?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts index 1984dd3d37..fc747713b2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type VariantModelBaseModel = { culture?: string | null; segment?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts index d7f52461db..62e1eea854 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type VariantResponseModelBaseModel = { culture?: string | null; segment?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts index 90d3300b9e..99c7a000b6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type VerifyInviteUserRequestModel = { user: ReferenceByIdModel; token: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts index 7c8b8e1d5a..3796453d71 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts @@ -2,7 +2,9 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type VerifyResetPasswordTokenRequestModel = { user: ReferenceByIdModel; resetCode: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookEventResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookEventResponseModel.ts index 34c0cbf81a..100b23dbe0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookEventResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookEventResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type WebhookEventResponseModel = { eventName: string; eventType: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookItemResponseModel.ts index 6beb2ad6cf..5dd1c9094b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookItemResponseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type WebhookItemResponseModel = { enabled: boolean; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookModelBaseModel.ts index 482cfbe122..d3e579f232 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookModelBaseModel.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + export type WebhookModelBaseModel = { enabled: boolean; url: string; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookResponseModel.ts index bbb382601d..6ac0c94a39 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/WebhookResponseModel.ts @@ -2,8 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ + import type { WebhookEventResponseModel } from './WebhookEventResponseModel'; import type { WebhookModelBaseModel } from './WebhookModelBaseModel'; + export type WebhookResponseModel = (WebhookModelBaseModel & { id: string; events: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts index f629093a19..b83d457350 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts @@ -6,10 +6,13 @@ import type { AuditTypeModel } from '../models/AuditTypeModel'; import type { DirectionModel } from '../models/DirectionModel'; import type { PagedAuditLogResponseModel } from '../models/PagedAuditLogResponseModel'; import type { PagedAuditLogWithUsernameResponseModel } from '../models/PagedAuditLogWithUsernameResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class AuditLogResource { + /** * @returns PagedAuditLogWithUsernameResponseModel Success * @throws ApiError @@ -39,6 +42,7 @@ export class AuditLogResource { }, }); } + /** * @returns PagedAuditLogResponseModel Success * @throws ApiError @@ -73,6 +77,7 @@ export class AuditLogResource { }, }); } + /** * @returns PagedAuditLogResponseModel Success * @throws ApiError @@ -104,4 +109,5 @@ export class AuditLogResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts index 6b5d6d41fb..9147291447 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts @@ -3,10 +3,13 @@ /* tslint:disable */ /* eslint-disable */ import type { PagedCultureReponseModel } from '../models/PagedCultureReponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class CultureResource { + /** * @returns PagedCultureReponseModel Success * @throws ApiError @@ -30,4 +33,5 @@ export class CultureResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts index a0e0e1a325..6eb1b95c8e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts @@ -14,10 +14,13 @@ import type { MoveDataTypeRequestModel } from '../models/MoveDataTypeRequestMode import type { PagedDataTypeTreeItemResponseModel } from '../models/PagedDataTypeTreeItemResponseModel'; import type { UpdateDataTypeRequestModel } from '../models/UpdateDataTypeRequestModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class DataTypeResource { + /** * @returns string Created * @throws ApiError @@ -40,6 +43,7 @@ export class DataTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -61,6 +65,7 @@ export class DataTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -84,6 +89,7 @@ export class DataTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -111,6 +117,7 @@ export class DataTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -137,6 +144,7 @@ export class DataTypeResource { }, }); } + /** * @returns boolean Success * @throws ApiError @@ -158,6 +166,7 @@ export class DataTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -184,6 +193,7 @@ export class DataTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -205,6 +215,7 @@ export class DataTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -218,6 +229,7 @@ export class DataTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -240,6 +252,7 @@ export class DataTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -261,6 +274,7 @@ export class DataTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -284,6 +298,7 @@ export class DataTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -311,6 +326,7 @@ export class DataTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -331,6 +347,7 @@ export class DataTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -351,6 +368,7 @@ export class DataTypeResource { }, }); } + /** * @returns PagedDataTypeTreeItemResponseModel Success * @throws ApiError @@ -380,6 +398,7 @@ export class DataTypeResource { }, }); } + /** * @returns PagedDataTypeTreeItemResponseModel Success * @throws ApiError @@ -406,4 +425,5 @@ export class DataTypeResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts index d875663940..6ee347c44e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts @@ -10,10 +10,13 @@ import type { MoveDictionaryRequestModel } from '../models/MoveDictionaryRequest import type { PagedDictionaryOverviewResponseModel } from '../models/PagedDictionaryOverviewResponseModel'; import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; import type { UpdateDictionaryItemRequestModel } from '../models/UpdateDictionaryItemRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class DictionaryResource { + /** * @returns PagedDictionaryOverviewResponseModel Success * @throws ApiError @@ -40,6 +43,7 @@ export class DictionaryResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -64,6 +68,7 @@ export class DictionaryResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -85,6 +90,7 @@ export class DictionaryResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -108,6 +114,7 @@ export class DictionaryResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -136,6 +143,7 @@ export class DictionaryResource { }, }); } + /** * @returns binary Success * @throws ApiError @@ -162,6 +170,7 @@ export class DictionaryResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -189,6 +198,7 @@ export class DictionaryResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -211,6 +221,7 @@ export class DictionaryResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -231,6 +242,7 @@ export class DictionaryResource { }, }); } + /** * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError @@ -257,6 +269,7 @@ export class DictionaryResource { }, }); } + /** * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError @@ -280,4 +293,5 @@ export class DictionaryResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts index 52fd56f697..5d66330146 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts @@ -4,10 +4,13 @@ /* eslint-disable */ import type { DocumentBlueprintResponseModel } from '../models/DocumentBlueprintResponseModel'; import type { PagedDocumentBlueprintTreeItemResponseModel } from '../models/PagedDocumentBlueprintTreeItemResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class DocumentBlueprintResource { + /** * @returns any Success * @throws ApiError @@ -28,6 +31,7 @@ export class DocumentBlueprintResource { }, }); } + /** * @returns PagedDocumentBlueprintTreeItemResponseModel Success * @throws ApiError @@ -51,4 +55,5 @@ export class DocumentBlueprintResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts index 1c0e98aa6b..6cad9f1dde 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts @@ -24,10 +24,13 @@ import type { UnpublishDocumentRequestModel } from '../models/UnpublishDocumentR import type { UpdateDocumentNotificationsRequestModel } from '../models/UpdateDocumentNotificationsRequestModel'; import type { UpdateDocumentRequestModel } from '../models/UpdateDocumentRequestModel'; import type { UpdateDomainsRequestModel } from '../models/UpdateDomainsRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class DocumentResource { + /** * @returns PagedDocumentCollectionResponseModel Success * @throws ApiError @@ -73,6 +76,7 @@ export class DocumentResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -96,6 +100,7 @@ export class DocumentResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -118,6 +123,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -142,6 +148,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -170,6 +177,7 @@ export class DocumentResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -197,6 +205,7 @@ export class DocumentResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -218,6 +227,7 @@ export class DocumentResource { }, }); } + /** * @returns void * @throws ApiError @@ -245,6 +255,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -272,6 +283,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -296,6 +308,7 @@ export class DocumentResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -318,6 +331,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -344,6 +358,7 @@ export class DocumentResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -371,6 +386,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -394,6 +410,7 @@ export class DocumentResource { }, }); } + /** * @returns void * @throws ApiError @@ -416,6 +433,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -443,6 +461,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -471,6 +490,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -499,6 +519,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -527,6 +548,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -555,6 +577,7 @@ export class DocumentResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -568,6 +591,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -591,6 +615,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -614,6 +639,7 @@ export class DocumentResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -634,6 +660,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -650,6 +677,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -674,6 +702,7 @@ export class DocumentResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -697,6 +726,7 @@ export class DocumentResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -725,6 +755,7 @@ export class DocumentResource { }, }); } + /** * @returns PagedDocumentRecycleBinItemResponseModel Success * @throws ApiError @@ -751,6 +782,7 @@ export class DocumentResource { }, }); } + /** * @returns PagedDocumentRecycleBinItemResponseModel Success * @throws ApiError @@ -774,6 +806,7 @@ export class DocumentResource { }, }); } + /** * @returns PagedDocumentTreeItemResponseModel Success * @throws ApiError @@ -803,6 +836,7 @@ export class DocumentResource { }, }); } + /** * @returns PagedDocumentTreeItemResponseModel Success * @throws ApiError @@ -829,4 +863,5 @@ export class DocumentResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts index eefe7b9905..363e5c343a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts @@ -17,10 +17,13 @@ import type { PagedAllowedDocumentTypeModel } from '../models/PagedAllowedDocume import type { PagedDocumentTypeTreeItemResponseModel } from '../models/PagedDocumentTypeTreeItemResponseModel'; import type { UpdateDocumentTypeRequestModel } from '../models/UpdateDocumentTypeRequestModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class DocumentTypeResource { + /** * @returns string Created * @throws ApiError @@ -43,6 +46,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -64,6 +68,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -86,6 +91,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -113,6 +119,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns PagedAllowedDocumentTypeModel Success * @throws ApiError @@ -142,6 +149,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -164,6 +172,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -191,6 +200,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -218,6 +228,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns PagedAllowedDocumentTypeModel Success * @throws ApiError @@ -241,6 +252,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -260,6 +272,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -273,6 +286,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -295,6 +309,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -316,6 +331,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -339,6 +355,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -366,6 +383,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -386,6 +404,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns PagedDocumentTypeTreeItemResponseModel Success * @throws ApiError @@ -415,6 +434,7 @@ export class DocumentTypeResource { }, }); } + /** * @returns PagedDocumentTypeTreeItemResponseModel Success * @throws ApiError @@ -441,4 +461,5 @@ export class DocumentTypeResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts index c21fa2453d..8b91f9bf26 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts @@ -4,10 +4,13 @@ /* eslint-disable */ import type { DynamicRootRequestModel } from '../models/DynamicRootRequestModel'; import type { DynamicRootResponseModel } from '../models/DynamicRootResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class DynamicRootResource { + /** * @returns any Success * @throws ApiError @@ -27,6 +30,7 @@ export class DynamicRootResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -40,4 +44,5 @@ export class DynamicRootResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts index 52208acee1..a7ba30030a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts @@ -7,10 +7,13 @@ import type { HealthCheckGroupPresentationModel } from '../models/HealthCheckGro import type { HealthCheckGroupWithResultResponseModel } from '../models/HealthCheckGroupWithResultResponseModel'; import type { HealthCheckResultResponseModel } from '../models/HealthCheckResultResponseModel'; import type { PagedHealthCheckGroupResponseModel } from '../models/PagedHealthCheckGroupResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class HealthCheckResource { + /** * @returns PagedHealthCheckGroupResponseModel Success * @throws ApiError @@ -34,6 +37,7 @@ export class HealthCheckResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -55,6 +59,7 @@ export class HealthCheckResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -76,6 +81,7 @@ export class HealthCheckResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -96,4 +102,5 @@ export class HealthCheckResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts index 53b057bf4e..5a8f103da5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts @@ -3,10 +3,13 @@ /* tslint:disable */ /* eslint-disable */ import type { PagedHelpPageResponseModel } from '../models/PagedHelpPageResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class HelpResource { + /** * @returns PagedHelpPageResponseModel Success * @throws ApiError @@ -40,4 +43,5 @@ export class HelpResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts index 06c0a51f80..edd9f9661c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts @@ -5,10 +5,13 @@ import type { IndexResponseModel } from '../models/IndexResponseModel'; import type { OkResult } from '../models/OkResult'; import type { PagedIndexResponseModel } from '../models/PagedIndexResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class IndexerResource { + /** * @returns PagedIndexResponseModel Success * @throws ApiError @@ -32,6 +35,7 @@ export class IndexerResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -53,6 +57,7 @@ export class IndexerResource { }, }); } + /** * @returns OkResult Success * @throws ApiError @@ -76,4 +81,5 @@ export class IndexerResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts index 1c9662da1f..cb350886f7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts @@ -5,10 +5,13 @@ import type { DatabaseInstallRequestModel } from '../models/DatabaseInstallRequestModel'; import type { InstallRequestModel } from '../models/InstallRequestModel'; import type { InstallSettingsResponseModel } from '../models/InstallSettingsResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class InstallResource { + /** * @returns any Success * @throws ApiError @@ -22,6 +25,7 @@ export class InstallResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -42,6 +46,7 @@ export class InstallResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -62,4 +67,5 @@ export class InstallResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts index 8abc9e8bdb..3010b55c19 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts @@ -7,10 +7,13 @@ import type { LanguageItemResponseModel } from '../models/LanguageItemResponseMo import type { LanguageResponseModel } from '../models/LanguageResponseModel'; import type { PagedLanguageResponseModel } from '../models/PagedLanguageResponseModel'; import type { UpdateLanguageRequestModel } from '../models/UpdateLanguageRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class LanguageResource { + /** * @returns any Success * @throws ApiError @@ -31,6 +34,7 @@ export class LanguageResource { }, }); } + /** * @returns PagedLanguageResponseModel Success * @throws ApiError @@ -54,6 +58,7 @@ export class LanguageResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -76,6 +81,7 @@ export class LanguageResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -97,6 +103,7 @@ export class LanguageResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -120,6 +127,7 @@ export class LanguageResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -147,4 +155,5 @@ export class LanguageResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts index f5887bb6e6..d46fc4962a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts @@ -11,10 +11,13 @@ import type { PagedLogTemplateResponseModel } from '../models/PagedLogTemplateRe import type { PagedSavedLogSearchResponseModel } from '../models/PagedSavedLogSearchResponseModel'; import type { SavedLogSearchRequestModel } from '../models/SavedLogSearchRequestModel'; import type { SavedLogSearchResponseModel } from '../models/SavedLogSearchResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class LogViewerResource { + /** * @returns PagedLoggerResponseModel Success * @throws ApiError @@ -38,6 +41,7 @@ export class LogViewerResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -62,6 +66,7 @@ export class LogViewerResource { }, }); } + /** * @returns PagedLogMessageResponseModel Success * @throws ApiError @@ -100,6 +105,7 @@ export class LogViewerResource { }, }); } + /** * @returns PagedLogTemplateResponseModel Success * @throws ApiError @@ -130,6 +136,7 @@ export class LogViewerResource { }, }); } + /** * @returns PagedSavedLogSearchResponseModel Success * @throws ApiError @@ -153,6 +160,7 @@ export class LogViewerResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -174,6 +182,7 @@ export class LogViewerResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -195,6 +204,7 @@ export class LogViewerResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -217,6 +227,7 @@ export class LogViewerResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -241,4 +252,5 @@ export class LogViewerResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts index a6f3819345..ce2f8c2f0a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts @@ -14,10 +14,13 @@ import type { PagedMediaTreeItemResponseModel } from '../models/PagedMediaTreeIt import type { ReferenceByIdModel } from '../models/ReferenceByIdModel'; import type { SortingRequestModel } from '../models/SortingRequestModel'; import type { UpdateMediaRequestModel } from '../models/UpdateMediaRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class MediaResource { + /** * @returns PagedMediaCollectionResponseModel Success * @throws ApiError @@ -58,6 +61,7 @@ export class MediaResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -78,6 +82,7 @@ export class MediaResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -101,6 +106,7 @@ export class MediaResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -123,6 +129,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -147,6 +154,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -175,6 +183,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -202,6 +211,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -226,6 +236,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -254,6 +265,7 @@ export class MediaResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -267,6 +279,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -290,6 +303,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -313,6 +327,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -329,6 +344,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -353,6 +369,7 @@ export class MediaResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -376,6 +393,7 @@ export class MediaResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -404,6 +422,7 @@ export class MediaResource { }, }); } + /** * @returns PagedMediaRecycleBinItemResponseModel Success * @throws ApiError @@ -430,6 +449,7 @@ export class MediaResource { }, }); } + /** * @returns PagedMediaRecycleBinItemResponseModel Success * @throws ApiError @@ -453,6 +473,7 @@ export class MediaResource { }, }); } + /** * @returns PagedMediaTreeItemResponseModel Success * @throws ApiError @@ -482,6 +503,7 @@ export class MediaResource { }, }); } + /** * @returns PagedMediaTreeItemResponseModel Success * @throws ApiError @@ -508,4 +530,5 @@ export class MediaResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts index 2630fb0e45..0174e4c972 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts @@ -16,10 +16,13 @@ import type { PagedAllowedMediaTypeModel } from '../models/PagedAllowedMediaType import type { PagedMediaTypeTreeItemResponseModel } from '../models/PagedMediaTypeTreeItemResponseModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; import type { UpdateMediaTypeRequestModel } from '../models/UpdateMediaTypeRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class MediaTypeResource { + /** * @returns any Success * @throws ApiError @@ -40,6 +43,7 @@ export class MediaTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -62,6 +66,7 @@ export class MediaTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -83,6 +88,7 @@ export class MediaTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -105,6 +111,7 @@ export class MediaTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -132,6 +139,7 @@ export class MediaTypeResource { }, }); } + /** * @returns PagedAllowedMediaTypeModel Success * @throws ApiError @@ -161,6 +169,7 @@ export class MediaTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -183,6 +192,7 @@ export class MediaTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -210,6 +220,7 @@ export class MediaTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -237,6 +248,7 @@ export class MediaTypeResource { }, }); } + /** * @returns PagedAllowedMediaTypeModel Success * @throws ApiError @@ -260,6 +272,7 @@ export class MediaTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -279,6 +292,7 @@ export class MediaTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -301,6 +315,7 @@ export class MediaTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -322,6 +337,7 @@ export class MediaTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -345,6 +361,7 @@ export class MediaTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -372,6 +389,7 @@ export class MediaTypeResource { }, }); } + /** * @returns PagedMediaTypeTreeItemResponseModel Success * @throws ApiError @@ -401,6 +419,7 @@ export class MediaTypeResource { }, }); } + /** * @returns PagedMediaTypeTreeItemResponseModel Success * @throws ApiError @@ -427,4 +446,5 @@ export class MediaTypeResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts index ed6cd2e568..43af148e65 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts @@ -8,10 +8,13 @@ import type { MemberGroupResponseModel } from '../models/MemberGroupResponseMode import type { PagedMemberGroupResponseModel } from '../models/PagedMemberGroupResponseModel'; import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; import type { UpdateMemberGroupRequestModel } from '../models/UpdateMemberGroupRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class MemberGroupResource { + /** * @returns any Success * @throws ApiError @@ -32,6 +35,7 @@ export class MemberGroupResource { }, }); } + /** * @returns PagedMemberGroupResponseModel Success * @throws ApiError @@ -55,6 +59,7 @@ export class MemberGroupResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -75,6 +80,7 @@ export class MemberGroupResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -101,6 +107,7 @@ export class MemberGroupResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -124,6 +131,7 @@ export class MemberGroupResource { }, }); } + /** * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError @@ -147,4 +155,5 @@ export class MemberGroupResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts index 01d0dea2c1..e3525d0398 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts @@ -8,10 +8,13 @@ import type { MemberItemResponseModel } from '../models/MemberItemResponseModel' import type { MemberResponseModel } from '../models/MemberResponseModel'; import type { PagedMemberResponseModel } from '../models/PagedMemberResponseModel'; import type { UpdateMemberRequestModel } from '../models/UpdateMemberRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class MemberResource { + /** * @returns PagedMemberResponseModel Success * @throws ApiError @@ -48,6 +51,7 @@ export class MemberResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -68,6 +72,7 @@ export class MemberResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -90,6 +95,7 @@ export class MemberResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -111,6 +117,7 @@ export class MemberResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -134,6 +141,7 @@ export class MemberResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -161,6 +169,7 @@ export class MemberResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -188,6 +197,7 @@ export class MemberResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -210,4 +220,5 @@ export class MemberResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts index 5199144b9f..dc76389f17 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts @@ -10,10 +10,13 @@ import type { MemberTypeItemResponseModel } from '../models/MemberTypeItemRespon import type { MemberTypeResponseModel } from '../models/MemberTypeResponseModel'; import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; import type { UpdateMemberTypeRequestModel } from '../models/UpdateMemberTypeRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class MemberTypeResource { + /** * @returns any Success * @throws ApiError @@ -34,6 +37,7 @@ export class MemberTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -56,6 +60,7 @@ export class MemberTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -77,6 +82,7 @@ export class MemberTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -99,6 +105,7 @@ export class MemberTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -126,6 +133,7 @@ export class MemberTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -148,6 +156,7 @@ export class MemberTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -171,6 +180,7 @@ export class MemberTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -190,6 +200,7 @@ export class MemberTypeResource { }, }); } + /** * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError @@ -213,4 +224,5 @@ export class MemberTypeResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts index a2c4e55c86..f1d51bc3c8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ModelsBuilderResource.ts @@ -4,10 +4,13 @@ /* eslint-disable */ import type { ModelsBuilderResponseModel } from '../models/ModelsBuilderResponseModel'; import type { OutOfDateStatusResponseModel } from '../models/OutOfDateStatusResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class ModelsBuilderResource { + /** * @returns string Success * @throws ApiError @@ -23,6 +26,7 @@ export class ModelsBuilderResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -36,6 +40,7 @@ export class ModelsBuilderResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -49,4 +54,5 @@ export class ModelsBuilderResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts index 492b282c3f..e22032ecde 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts @@ -3,10 +3,13 @@ /* tslint:disable */ /* eslint-disable */ import type { PagedObjectTypeResponseModel } from '../models/PagedObjectTypeResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class ObjectTypesResource { + /** * @returns PagedObjectTypeResponseModel Success * @throws ApiError @@ -30,4 +33,5 @@ export class ObjectTypesResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts index bdd31f5661..51edb8d50c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts @@ -9,10 +9,13 @@ import type { PackageManifestResponseModel } from '../models/PackageManifestResp import type { PagedPackageDefinitionResponseModel } from '../models/PagedPackageDefinitionResponseModel'; import type { PagedPackageMigrationStatusResponseModel } from '../models/PagedPackageMigrationStatusResponseModel'; import type { UpdatePackageRequestModel } from '../models/UpdatePackageRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class PackageResource { + /** * @returns string Success * @throws ApiError @@ -36,6 +39,7 @@ export class PackageResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -49,6 +53,7 @@ export class PackageResource { }, }); } + /** * @returns PagedPackageDefinitionResponseModel Success * @throws ApiError @@ -72,6 +77,7 @@ export class PackageResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -94,6 +100,7 @@ export class PackageResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -115,6 +122,7 @@ export class PackageResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -137,6 +145,7 @@ export class PackageResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -163,6 +172,7 @@ export class PackageResource { }, }); } + /** * @returns binary Success * @throws ApiError @@ -184,6 +194,7 @@ export class PackageResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -197,6 +208,7 @@ export class PackageResource { }, }); } + /** * @returns PagedPackageMigrationStatusResponseModel Success * @throws ApiError @@ -220,4 +232,5 @@ export class PackageResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts index bd5e22d701..6c61f51aee 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts @@ -12,10 +12,13 @@ import type { PartialViewResponseModel } from '../models/PartialViewResponseMode import type { PartialViewSnippetResponseModel } from '../models/PartialViewSnippetResponseModel'; import type { RenamePartialViewRequestModel } from '../models/RenamePartialViewRequestModel'; import type { UpdatePartialViewRequestModel } from '../models/UpdatePartialViewRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class PartialViewResource { + /** * @returns any Success * @throws ApiError @@ -36,6 +39,7 @@ export class PartialViewResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -58,6 +62,7 @@ export class PartialViewResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -79,6 +84,7 @@ export class PartialViewResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -102,6 +108,7 @@ export class PartialViewResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -129,6 +136,7 @@ export class PartialViewResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -156,6 +164,7 @@ export class PartialViewResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -178,6 +187,7 @@ export class PartialViewResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -199,6 +209,7 @@ export class PartialViewResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -222,6 +233,7 @@ export class PartialViewResource { }, }); } + /** * @returns PagedPartialViewSnippetItemResponseModel Success * @throws ApiError @@ -245,6 +257,7 @@ export class PartialViewResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -266,6 +279,7 @@ export class PartialViewResource { }, }); } + /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError @@ -292,6 +306,7 @@ export class PartialViewResource { }, }); } + /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError @@ -315,4 +330,5 @@ export class PartialViewResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts index 5692d28508..f87491b48e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts @@ -5,7 +5,9 @@ import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class PreviewResource { + /** * @returns string Success * @throws ApiError @@ -20,6 +22,7 @@ export class PreviewResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -34,4 +37,5 @@ export class PreviewResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts index ffee5b8429..f2b9d345f4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts @@ -4,10 +4,13 @@ /* eslint-disable */ import type { ProfilingStatusRequestModel } from '../models/ProfilingStatusRequestModel'; import type { ProfilingStatusResponseModel } from '../models/ProfilingStatusResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class ProfilingResource { + /** * @returns any Success * @throws ApiError @@ -21,6 +24,7 @@ export class ProfilingResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -41,4 +45,5 @@ export class ProfilingResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts index 5d2bc570ce..36cf7b48cc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts @@ -5,7 +5,9 @@ import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class PropertyTypeResource { + /** * @returns boolean Success * @throws ApiError @@ -30,4 +32,5 @@ export class PropertyTypeResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts index 663db7d7c0..e3c70690bf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PublishedCacheResource.ts @@ -5,7 +5,9 @@ import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class PublishedCacheResource { + /** * @returns string Success * @throws ApiError @@ -20,6 +22,7 @@ export class PublishedCacheResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -34,6 +37,7 @@ export class PublishedCacheResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -48,6 +52,7 @@ export class PublishedCacheResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -61,4 +66,5 @@ export class PublishedCacheResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts index d9580fc6ac..cb67b21bf7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts @@ -5,10 +5,13 @@ import type { PagedRedirectUrlResponseModel } from '../models/PagedRedirectUrlResponseModel'; import type { RedirectStatusModel } from '../models/RedirectStatusModel'; import type { RedirectUrlStatusResponseModel } from '../models/RedirectUrlStatusResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class RedirectManagementResource { + /** * @returns PagedRedirectUrlResponseModel Success * @throws ApiError @@ -36,6 +39,7 @@ export class RedirectManagementResource { }, }); } + /** * @returns PagedRedirectUrlResponseModel Success * @throws ApiError @@ -64,6 +68,7 @@ export class RedirectManagementResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -85,6 +90,7 @@ export class RedirectManagementResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -98,6 +104,7 @@ export class RedirectManagementResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -119,4 +126,5 @@ export class RedirectManagementResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts index a2659668a5..76bbbb9de5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts @@ -3,10 +3,13 @@ /* tslint:disable */ /* eslint-disable */ import type { PagedRelationResponseModel } from '../models/PagedRelationResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class RelationResource { + /** * @returns PagedRelationResponseModel Success * @throws ApiError @@ -38,6 +41,7 @@ export class RelationResource { }, }); } + /** * @returns PagedRelationResponseModel Success * @throws ApiError @@ -67,4 +71,5 @@ export class RelationResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts index a875a60fa7..bcbb7f7c50 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts @@ -7,10 +7,13 @@ import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamed import type { RelationTypeItemResponseModel } from '../models/RelationTypeItemResponseModel'; import type { RelationTypeResponseModel } from '../models/RelationTypeResponseModel'; import type { UpdateRelationTypeRequestModel } from '../models/UpdateRelationTypeRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class RelationTypeResource { + /** * @returns any Success * @throws ApiError @@ -31,6 +34,7 @@ export class RelationTypeResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -52,6 +56,7 @@ export class RelationTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -73,6 +78,7 @@ export class RelationTypeResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -95,6 +101,7 @@ export class RelationTypeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -121,6 +128,7 @@ export class RelationTypeResource { }, }); } + /** * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError @@ -144,4 +152,5 @@ export class RelationTypeResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts index 0f53a89ae5..4f05cb0525 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts @@ -10,10 +10,13 @@ import type { ScriptFolderResponseModel } from '../models/ScriptFolderResponseMo import type { ScriptItemResponseModel } from '../models/ScriptItemResponseModel'; import type { ScriptResponseModel } from '../models/ScriptResponseModel'; import type { UpdateScriptRequestModel } from '../models/UpdateScriptRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class ScriptResource { + /** * @returns any Success * @throws ApiError @@ -34,6 +37,7 @@ export class ScriptResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -56,6 +60,7 @@ export class ScriptResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -77,6 +82,7 @@ export class ScriptResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -100,6 +106,7 @@ export class ScriptResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -127,6 +134,7 @@ export class ScriptResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -154,6 +162,7 @@ export class ScriptResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -176,6 +185,7 @@ export class ScriptResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -197,6 +207,7 @@ export class ScriptResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -220,6 +231,7 @@ export class ScriptResource { }, }); } + /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError @@ -246,6 +258,7 @@ export class ScriptResource { }, }); } + /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError @@ -269,4 +282,5 @@ export class ScriptResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts index d119dd4da3..ff805a23dd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts @@ -4,10 +4,13 @@ /* eslint-disable */ import type { PagedSearcherResponseModel } from '../models/PagedSearcherResponseModel'; import type { PagedSearchResultResponseModel } from '../models/PagedSearchResultResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class SearcherResource { + /** * @returns PagedSearcherResponseModel Success * @throws ApiError @@ -31,6 +34,7 @@ export class SearcherResource { }, }); } + /** * @returns PagedSearchResultResponseModel Success * @throws ApiError @@ -63,4 +67,5 @@ export class SearcherResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts index 07455008f9..91a3a77126 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts @@ -6,10 +6,13 @@ import type { ResetPasswordRequestModel } from '../models/ResetPasswordRequestMo import type { ResetPasswordTokenRequestModel } from '../models/ResetPasswordTokenRequestModel'; import type { SecurityConfigurationResponseModel } from '../models/SecurityConfigurationResponseModel'; import type { VerifyResetPasswordTokenRequestModel } from '../models/VerifyResetPasswordTokenRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class SecurityResource { + /** * @returns any Success * @throws ApiError @@ -23,6 +26,7 @@ export class SecurityResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -43,6 +47,7 @@ export class SecurityResource { }, }); } + /** * @returns void * @throws ApiError @@ -64,6 +69,7 @@ export class SecurityResource { }, }); } + /** * @returns void * @throws ApiError @@ -85,4 +91,5 @@ export class SecurityResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts index 02a92cca11..15d61a5904 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts @@ -6,10 +6,13 @@ import type { ServerConfigurationResponseModel } from '../models/ServerConfigura import type { ServerInformationResponseModel } from '../models/ServerInformationResponseModel'; import type { ServerStatusResponseModel } from '../models/ServerStatusResponseModel'; import type { ServerTroubleshootingResponseModel } from '../models/ServerTroubleshootingResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class ServerResource { + /** * @returns any Success * @throws ApiError @@ -23,6 +26,7 @@ export class ServerResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -36,6 +40,7 @@ export class ServerResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -49,6 +54,7 @@ export class ServerResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -62,4 +68,5 @@ export class ServerResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts index c62a5d047d..fb9e31c72e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts @@ -4,10 +4,13 @@ /* eslint-disable */ import type { PagedFileSystemTreeItemPresentationModel } from '../models/PagedFileSystemTreeItemPresentationModel'; import type { StaticFileItemResponseModel } from '../models/StaticFileItemResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class StaticFileResource { + /** * @returns any Success * @throws ApiError @@ -28,6 +31,7 @@ export class StaticFileResource { }, }); } + /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError @@ -54,6 +58,7 @@ export class StaticFileResource { }, }); } + /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError @@ -77,4 +82,5 @@ export class StaticFileResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts index 87742998fb..635f209c5d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts @@ -10,10 +10,13 @@ import type { StylesheetFolderResponseModel } from '../models/StylesheetFolderRe import type { StylesheetItemResponseModel } from '../models/StylesheetItemResponseModel'; import type { StylesheetResponseModel } from '../models/StylesheetResponseModel'; import type { UpdateStylesheetRequestModel } from '../models/UpdateStylesheetRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class StylesheetResource { + /** * @returns any Success * @throws ApiError @@ -34,6 +37,7 @@ export class StylesheetResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -56,6 +60,7 @@ export class StylesheetResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -77,6 +82,7 @@ export class StylesheetResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -100,6 +106,7 @@ export class StylesheetResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -127,6 +134,7 @@ export class StylesheetResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -154,6 +162,7 @@ export class StylesheetResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -176,6 +185,7 @@ export class StylesheetResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -197,6 +207,7 @@ export class StylesheetResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -220,6 +231,7 @@ export class StylesheetResource { }, }); } + /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError @@ -246,6 +258,7 @@ export class StylesheetResource { }, }); } + /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError @@ -269,4 +282,5 @@ export class StylesheetResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts index babe3bb39d..2d0c9675f7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts @@ -3,10 +3,13 @@ /* tslint:disable */ /* eslint-disable */ import type { PagedTagResponseModel } from '../models/PagedTagResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class TagResource { + /** * @returns PagedTagResponseModel Success * @throws ApiError @@ -39,4 +42,5 @@ export class TagResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts index b5dc262146..9547c4866e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts @@ -5,10 +5,13 @@ import type { PagedTelemetryResponseModel } from '../models/PagedTelemetryResponseModel'; import type { TelemetryRequestModel } from '../models/TelemetryRequestModel'; import type { TelemetryResponseModel } from '../models/TelemetryResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class TelemetryResource { + /** * @returns PagedTelemetryResponseModel Success * @throws ApiError @@ -32,6 +35,7 @@ export class TelemetryResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -45,6 +49,7 @@ export class TelemetryResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -66,4 +71,5 @@ export class TelemetryResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts index 2bab64f8ea..269c145b8c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts @@ -11,10 +11,13 @@ import type { TemplateQueryResultResponseModel } from '../models/TemplateQueryRe import type { TemplateQuerySettingsResponseModel } from '../models/TemplateQuerySettingsResponseModel'; import type { TemplateResponseModel } from '../models/TemplateResponseModel'; import type { UpdateTemplateRequestModel } from '../models/UpdateTemplateRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class TemplateResource { + /** * @returns any Success * @throws ApiError @@ -35,6 +38,7 @@ export class TemplateResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -57,6 +61,7 @@ export class TemplateResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -78,6 +83,7 @@ export class TemplateResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -101,6 +107,7 @@ export class TemplateResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -128,6 +135,7 @@ export class TemplateResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -141,6 +149,7 @@ export class TemplateResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -160,6 +169,7 @@ export class TemplateResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -173,6 +183,7 @@ export class TemplateResource { }, }); } + /** * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError @@ -199,6 +210,7 @@ export class TemplateResource { }, }); } + /** * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError @@ -222,4 +234,5 @@ export class TemplateResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts index c2cd9d0874..6d587006f9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts @@ -4,10 +4,13 @@ /* eslint-disable */ import type { TemporaryFileConfigurationResponseModel } from '../models/TemporaryFileConfigurationResponseModel'; import type { TemporaryFileResponseModel } from '../models/TemporaryFileResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class TemporaryFileResource { + /** * @returns string Created * @throws ApiError @@ -32,6 +35,7 @@ export class TemporaryFileResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -54,6 +58,7 @@ export class TemporaryFileResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -77,6 +82,7 @@ export class TemporaryFileResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -90,4 +96,5 @@ export class TemporaryFileResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts index d1803a0b5a..06d5fe9885 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts @@ -4,10 +4,13 @@ /* eslint-disable */ import type { SetTourStatusRequestModel } from '../models/SetTourStatusRequestModel'; import type { UserTourStatusesResponseModel } from '../models/UserTourStatusesResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class TourResource { + /** * @returns any Success * @throws ApiError @@ -21,6 +24,7 @@ export class TourResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -41,4 +45,5 @@ export class TourResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts index 0262dc5cab..040c7a1345 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts @@ -3,10 +3,13 @@ /* tslint:disable */ /* eslint-disable */ import type { PagedRelationItemResponseModel } from '../models/PagedRelationItemResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class TrackedReferenceResource { + /** * @returns PagedRelationItemResponseModel Success * @throws ApiError @@ -38,6 +41,7 @@ export class TrackedReferenceResource { }, }); } + /** * @returns PagedRelationItemResponseModel Success * @throws ApiError @@ -69,6 +73,7 @@ export class TrackedReferenceResource { }, }); } + /** * @returns PagedRelationItemResponseModel Success * @throws ApiError @@ -98,4 +103,5 @@ export class TrackedReferenceResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts index 3b2589aef9..9987c2f24f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UpgradeResource.ts @@ -3,10 +3,13 @@ /* tslint:disable */ /* eslint-disable */ import type { UpgradeSettingsResponseModel } from '../models/UpgradeSettingsResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class UpgradeResource { + /** * @returns string Success * @throws ApiError @@ -23,6 +26,7 @@ export class UpgradeResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -37,4 +41,5 @@ export class UpgradeResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts index 9c1cc50369..f950a6f533 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts @@ -8,10 +8,13 @@ import type { PagedUserGroupResponseModel } from '../models/PagedUserGroupRespon import type { UpdateUserGroupRequestModel } from '../models/UpdateUserGroupRequestModel'; import type { UserGroupItemResponseModel } from '../models/UserGroupItemResponseModel'; import type { UserGroupResponseModel } from '../models/UserGroupResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class UserGroupResource { + /** * @returns any Success * @throws ApiError @@ -32,6 +35,7 @@ export class UserGroupResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -54,6 +58,7 @@ export class UserGroupResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -75,6 +80,7 @@ export class UserGroupResource { }, }); } + /** * @returns PagedUserGroupResponseModel Success * @throws ApiError @@ -98,6 +104,7 @@ export class UserGroupResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -120,6 +127,7 @@ export class UserGroupResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -143,6 +151,7 @@ export class UserGroupResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -169,6 +178,7 @@ export class UserGroupResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -196,6 +206,7 @@ export class UserGroupResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -223,4 +234,5 @@ export class UserGroupResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index 18081177b4..2fb39f31e5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts @@ -31,10 +31,13 @@ import type { UserResponseModel } from '../models/UserResponseModel'; import type { UserStateModel } from '../models/UserStateModel'; import type { UserTwoFactorProviderModel } from '../models/UserTwoFactorProviderModel'; import type { VerifyInviteUserRequestModel } from '../models/VerifyInviteUserRequestModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class UserResource { + /** * @returns PagedUserResponseModel Success * @throws ApiError @@ -75,6 +78,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -95,6 +99,7 @@ export class UserResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -117,6 +122,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -139,6 +145,7 @@ export class UserResource { }, }); } + /** * @returns PagedUserResponseModel Success * @throws ApiError @@ -163,6 +170,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -185,6 +193,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -209,6 +218,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -237,6 +247,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -259,6 +270,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -286,6 +298,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -314,6 +327,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -337,6 +351,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -361,6 +376,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -389,6 +405,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -402,6 +419,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -416,6 +434,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -429,6 +448,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -457,6 +477,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -483,6 +504,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -505,6 +527,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -527,6 +550,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -548,6 +572,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -561,6 +586,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -574,6 +600,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -594,6 +621,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -615,6 +643,7 @@ export class UserResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -636,6 +665,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -659,6 +689,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -682,6 +713,7 @@ export class UserResource { }, }); } + /** * @returns string Created * @throws ApiError @@ -704,6 +736,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -726,6 +759,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -748,6 +782,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -770,6 +805,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -791,6 +827,7 @@ export class UserResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -813,4 +850,5 @@ export class UserResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/WebhookResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/WebhookResource.ts index 9db07941c6..bbe951c01d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/WebhookResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/WebhookResource.ts @@ -6,10 +6,13 @@ import type { CreateWebhookRequestModel } from '../models/CreateWebhookRequestMo import type { UpdateWebhookRequestModel } from '../models/UpdateWebhookRequestModel'; import type { WebhookItemResponseModel } from '../models/WebhookItemResponseModel'; import type { WebhookResponseModel } from '../models/WebhookResponseModel'; + import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; + export class WebhookResource { + /** * @returns string Created * @throws ApiError @@ -32,6 +35,7 @@ export class WebhookResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -53,6 +57,7 @@ export class WebhookResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -80,6 +85,7 @@ export class WebhookResource { }, }); } + /** * @returns string Success * @throws ApiError @@ -103,6 +109,7 @@ export class WebhookResource { }, }); } + /** * @returns any Success * @throws ApiError @@ -123,4 +130,5 @@ export class WebhookResource { }, }); } + } diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts index 4effd65a63..8df56129a9 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts @@ -244,9 +244,8 @@ export abstract class UmbBaseExtensionInitializer< const newPermission = await this._conditionsAreGood(); // Only set new permission if we are still positive, otherwise it means that we have been destroyed in the mean time. if (newPermission === false || this._isConditionsPositive === false) { - console.warn( - 'If this happens then please inform Niels Lyngsø on CMS Team. We are still investigating wether this is a situation we should handle. Ref. No.: 1.', - ); + // Then we need to revert the above work: + this._conditionsAreBad(); return; } // We update the oldValue as this point, cause in this way we are sure its the value at this point, when doing async code someone else might have changed the state in the mean time. @@ -259,9 +258,6 @@ export abstract class UmbBaseExtensionInitializer< // Only continue if we are still negative, otherwise it means that something changed in the mean time. if (this._isConditionsPositive === true) { - console.warn( - 'If this happens then please inform Niels Lyngsø on CMS Team. We are still investigating wether this is a situation we should handle. Ref. No.: 2.', - ); return; } // We update the oldValue as this point, cause in this way we are sure its the value at this point, when doing async code someone else might have changed the state in the mean time. diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts index 083e4ebbbd..0769bb67c5 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts @@ -7,6 +7,7 @@ import type { } from '@umbraco-cms/backoffice/extension-api'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { createObservablePart } from '@umbraco-cms/backoffice/observable-api'; export type PermittedControllerType = ControllerType & { manifest: Required>; @@ -62,7 +63,7 @@ export abstract class UmbBaseExtensionsInitializer< ? this.#extensionRegistry.byTypes(this.#type as string[]) : this.#extensionRegistry.byType(this.#type as ManifestTypeName); if (this.#filter) { - source = source.pipe(map((extensions: Array) => extensions.filter(this.#filter!))); + source = createObservablePart(source, (extensions: Array) => extensions.filter(this.#filter!)); } this.observe(source, this.#gotManifests, '_observeManifests') as any; } @@ -89,10 +90,6 @@ export abstract class UmbBaseExtensionsInitializer< return true; }); - // --------------------------------------------------------------- - // May change this into a Extensions Manager Controller??? - // --------------------------------------------------------------- - manifests.forEach((manifest) => { const existing = this._extensions.find((x) => x.alias === manifest.alias); if (!existing) { diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.controller.ts index 54ee212e20..873ad46c60 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.controller.ts @@ -98,6 +98,7 @@ export class UmbExtensionApiInitializer< this.#api = newApi; if (this.#api) { + (this.#api as any).manifest = manifest; //this.#assignProperties(); return true; // we will confirm we have a component and are still good to go. } diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-and-api-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-and-api-initializer.controller.ts new file mode 100644 index 0000000000..8d5d680a67 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-and-api-initializer.controller.ts @@ -0,0 +1,161 @@ +import { createExtensionApi } from '../functions/create-extension-api.function.js'; +import { createExtensionElement } from '../functions/create-extension-element.function.js'; +import type { UmbApi } from '../models/api.interface.js'; +import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; +import type { ManifestElementAndApi, ManifestCondition, ManifestWithDynamicConditions } from '../types/index.js'; +import { UmbBaseExtensionInitializer } from './base-extension-initializer.controller.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +/** + * This Controller manages a single Extension initializing its Element and API. + * When the extension is permitted to be used, its Element and API will be instantiated and available for the consumer. + * + * @example + * ```ts + * const controller = new UmbExtensionApiAndElementInitializer(host, extensionRegistry, alias, (permitted, ctrl) => { console.log("Extension is permitted and this is the element: ", ctrl.component) })); + * ``` + * @export + * @class UmbExtensionElementAndApiInitializer + */ +export class UmbExtensionElementAndApiInitializer< + ManifestType extends ManifestWithDynamicConditions = ManifestWithDynamicConditions, + ControllerType extends UmbExtensionElementAndApiInitializer = any, + ExtensionInterface extends ManifestElementAndApi = ManifestType extends ManifestElementAndApi ? ManifestType : never, + ExtensionElementInterface extends HTMLElement | undefined = ExtensionInterface['ELEMENT_TYPE'], + ExtensionApiInterface extends UmbApi | undefined = ExtensionInterface['API_TYPE'], +> extends UmbBaseExtensionInitializer { + #defaultElement?: string; + #component?: ExtensionElementInterface; + #api?: ExtensionApiInterface; + #constructorArguments?: Array; + + /** + * The component that is created for this extension. + * @readonly + * @type {(HTMLElement | undefined)} + */ + public get component() { + return this.#component; + } + + /** + * The api that is created for this extension. + * @readonly + * @type {(class | undefined)} + */ + public get api() { + return this.#api; + } + + /** + * The props that are passed to the component. + * @type {Record} + * @memberof UmbElementExtensionController + * @example + * ```ts + * const controller = new UmbElementExtensionController(host, extensionRegistry, alias, onPermissionChanged); + * controller.props = { foo: 'bar' }; + * ``` + * Is equivalent to: + * ```ts + * controller.component.foo = 'bar'; + * ``` + */ + #properties?: Record; + get properties() { + return this.#properties; + } + set properties(newVal) { + this.#properties = newVal; + // TODO: we could optimize this so we only re-set the changed props. + this.#assignProperties(); + } + + constructor( + host: UmbControllerHost, + extensionRegistry: UmbExtensionRegistry, + alias: string, + constructorArguments: Array | undefined, + onPermissionChanged: (isPermitted: boolean, controller: ControllerType) => void, + defaultElement?: string, + ) { + super(host, extensionRegistry, 'extApiAndElement_', alias, onPermissionChanged); + this.#constructorArguments = constructorArguments; + this.#defaultElement = defaultElement; + this._init(); + } + + #assignProperties = () => { + if (!this.#component || !this.#properties) return; + + // TODO: we could optimize this so we only re-set the updated props. + Object.keys(this.#properties).forEach((key) => { + (this.#component as any)[key] = this.#properties![key]; + }); + }; + + protected async _conditionsAreGood() { + const manifest = this.manifest!; // In this case we are sure its not undefined. + + const promises = await Promise.all([ + createExtensionApi(manifest, this.#constructorArguments), + createExtensionElement(manifest, this.#defaultElement), + ]); + + const newApi = promises[0] as ExtensionApiInterface; + const newComponent = promises[1] as ExtensionElementInterface; + + if (!this._isConditionsPositive) { + newApi?.destroy?.(); + if (newComponent && 'destroy' in newComponent) { + (newComponent as unknown as { destroy: () => void }).destroy(); + } + // We are not positive anymore, so we will back out of this creation. + return false; + } + + this.#api = newApi; + if (this.#api) { + (this.#api as any).manifest = manifest; + } else { + console.warn('Manifest did not provide any useful data for a api to be created.'); + } + + this.#component = newComponent; + if (this.#component) { + this.#assignProperties(); + (this.#component as any).manifest = manifest; + if (this.#api) { + (this.#component as any).api = newApi; + } + return true; // we will confirm we have a component and are still good to go. + } else { + console.warn('Manifest did not provide any useful data for a web component to be created.'); + } + + return false; // we will reject the state, we have no component, we are not good to be shown. + } + + protected async _conditionsAreBad() { + // Destroy the element: + if (this.#component) { + if ('destroy' in this.#component) { + (this.#component as unknown as { destroy: () => void }).destroy(); + } + this.#component = undefined; + } + // Destroy the api: + if (this.#api) { + if ('destroy' in this.#api) { + (this.#api as unknown as { destroy: () => void }).destroy(); + } + this.#api = undefined; + } + } + + public destroy(): void { + super.destroy(); + this.#constructorArguments = undefined; + this.#properties = undefined; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-and-api-initializer.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-and-api-initializer.test.ts new file mode 100644 index 0000000000..977a8dbcd7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-and-api-initializer.test.ts @@ -0,0 +1,299 @@ +import { expect, fixture } from '@open-wc/testing'; +import { UmbExtensionRegistry } from '../registry/extension.registry.js'; +import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '../index.js'; +import { UmbExtensionElementAndApiInitializer } from './extension-element-and-api-initializer.controller.js'; +import type { UmbControllerHost, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; +import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; +import { UmbSwitchCondition } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; + +@customElement('umb-test-controller-host') +class UmbTestControllerHostElement extends UmbControllerHostElementMixin(HTMLElement) {} + +class UmbTestApiController extends UmbControllerBase { + public i_am_test_api_controller = true; + + constructor(host: UmbControllerHost) { + super(host); + } +} + +interface TestManifest extends ManifestWithDynamicConditions, ManifestElementAndApi { + type: 'test-type'; +} + +describe('UmbExtensionElementAndApiController', () => { + describe('Manifest without conditions', () => { + let hostElement: UmbControllerHostElement; + let extensionRegistry: UmbExtensionRegistry; + let manifest: TestManifest; + + beforeEach(async () => { + hostElement = await fixture(html``); + extensionRegistry = new UmbExtensionRegistry(); + manifest = { + type: 'test-type', + name: 'test-type-1', + alias: 'Umb.Test.Type-1', + elementName: 'section', + api: UmbTestApiController, + }; + + extensionRegistry.register(manifest); + }); + + it('permits when there is no conditions', (done) => { + let called = false; + const extensionController = new UmbExtensionElementAndApiInitializer( + hostElement, + extensionRegistry, + 'Umb.Test.Type-1', + [hostElement], + (permitted) => { + if (called === false) { + called = true; + expect(permitted).to.be.true; + if (permitted) { + expect(extensionController?.manifest?.alias).to.eq('Umb.Test.Type-1'); + expect(extensionController.component?.nodeName).to.eq('SECTION'); + done(); + extensionController.destroy(); + } + } + }, + ); + }); + + it('utilized the default element when there is none provided by manifest', (done) => { + extensionRegistry.unregister(manifest.alias); + + const noElementManifest = { ...manifest, elementName: undefined }; + extensionRegistry.register(noElementManifest); + + let called = false; + const extensionController = new UmbExtensionElementAndApiInitializer( + hostElement, + extensionRegistry, + 'Umb.Test.Type-1', + [hostElement], + (permitted) => { + if (called === false) { + called = true; + expect(permitted).to.be.true; + if (permitted) { + expect(extensionController?.manifest?.alias).to.eq('Umb.Test.Type-1'); + expect(extensionController.component?.nodeName).to.eq('UMB-TEST-FALLBACK-ELEMENT'); + done(); + extensionController.destroy(); + } + } + }, + 'umb-test-fallback-element', + ); + }); + }); + + describe('Manifest with multiple conditions that changes over time', () => { + let hostElement: UmbControllerHostElement; + let extensionRegistry: UmbExtensionRegistry; + let manifest: TestManifest; + + beforeEach(async () => { + hostElement = await fixture(html``); + extensionRegistry = new UmbExtensionRegistry(); + + manifest = { + type: 'test-type', + name: 'test-type-1', + alias: 'Umb.Test.Type-1', + elementName: 'section', + api: UmbTestApiController, + conditions: [ + { + alias: 'Umb.Test.Condition.Delay', + frequency: '100', + } as any, + { + alias: 'Umb.Test.Condition.Delay', + frequency: '200', + } as any, + ], + }; + + // A ASCII timeline for the conditions, when allowed and then not allowed: + // Condition 0ms 100ms 200ms 300ms 400ms 500ms + // First condition: - + - + - + + // Second condition: - - + + - - + // Sum: - - - + - - + + const conditionManifest = { + type: 'condition', + name: 'test-condition-delay', + alias: 'Umb.Test.Condition.Delay', + api: UmbSwitchCondition, + }; + + extensionRegistry.register(manifest); + extensionRegistry.register(conditionManifest); + }); + + it('does change permission as conditions change', (done) => { + let count = 0; + const extensionController = new UmbExtensionElementAndApiInitializer( + hostElement, + extensionRegistry, + 'Umb.Test.Type-1', + [hostElement], + async () => { + count++; + // We want the controller callback to first fire when conditions are initialized. + expect(extensionController.manifest?.conditions?.length).to.be.equal(2); + expect(extensionController?.manifest?.alias).to.eq('Umb.Test.Type-1'); + if (count === 1) { + expect(extensionController?.permitted).to.be.true; + expect(extensionController.component?.nodeName).to.eq('SECTION'); + } else if (count === 2) { + expect(extensionController?.permitted).to.be.false; + expect(extensionController.component).to.be.undefined; + done(); + extensionController.destroy(); // need to destroy the controller. + } + }, + ); + }); + }); + + describe('Manifest without conditions', () => { + let hostElement: UmbControllerHostElement; + let extensionRegistry: UmbExtensionRegistry; + let manifest: TestManifest; + + beforeEach(async () => { + hostElement = await fixture(html``); + extensionRegistry = new UmbExtensionRegistry(); + manifest = { + type: 'test-type', + name: 'test-type-1', + alias: 'Umb.Test.Type-1', + elementName: 'section', + api: UmbTestApiController, + }; + + extensionRegistry.register(manifest); + }); + + it('permits when there is no conditions', (done) => { + let called = false; + const extensionController = new UmbExtensionElementAndApiInitializer( + hostElement, + extensionRegistry, + 'Umb.Test.Type-1', + [hostElement], + (permitted) => { + if (called === false) { + called = true; + expect(permitted).to.be.true; + if (permitted) { + expect(extensionController?.manifest?.alias).to.eq('Umb.Test.Type-1'); + expect(extensionController.api?.i_am_test_api_controller).to.be.true; + done(); + extensionController.destroy(); + } + } + }, + ); + /* + TODO: Consider if builder pattern would be a more nice way to setup this: + const extensionController = new UmbExtensionElementAndApiInitializer( + hostElement, + extensionRegistry, + 'Umb.Test.Type-1' + ) + .withConstructorArguments([hostElement]) + .onPermitted((permitted) => { + if (called === false) { + called = true; + expect(permitted).to.be.true; + if (permitted) { + expect(extensionController?.manifest?.alias).to.eq('Umb.Test.Type-1'); + expect(extensionController.api?.i_am_test_api_controller).to.be.true; + done(); + extensionController.destroy(); + } + } + ).observe(); + */ + }); + }); + + describe('Manifest with multiple conditions that changes over time', () => { + let hostElement: UmbControllerHostElement; + let extensionRegistry: UmbExtensionRegistry; + let manifest: TestManifest; + + beforeEach(async () => { + hostElement = await fixture(html``); + extensionRegistry = new UmbExtensionRegistry(); + + manifest = { + type: 'test-type', + name: 'test-type-1', + alias: 'Umb.Test.Type-1', + elementName: 'section', + api: UmbTestApiController, + conditions: [ + { + alias: 'Umb.Test.Condition.Delay', + frequency: '100', + } as any, + { + alias: 'Umb.Test.Condition.Delay', + frequency: '200', + } as any, + ], + }; + + // A ASCII timeline for the conditions, when allowed and then not allowed: + // Condition 0ms 100ms 200ms 300ms 400ms 500ms + // First condition: - + - + - + + // Second condition: - - + + - - + // Sum: - - - + - - + + const conditionManifest = { + type: 'condition', + name: 'test-condition-delay', + alias: 'Umb.Test.Condition.Delay', + api: UmbSwitchCondition, + }; + + extensionRegistry.register(manifest); + extensionRegistry.register(conditionManifest); + }); + + it('does change permission as conditions change', (done) => { + let count = 0; + const extensionController = new UmbExtensionElementAndApiInitializer( + hostElement, + extensionRegistry, + 'Umb.Test.Type-1', + [hostElement], + async () => { + count++; + // We want the controller callback to first fire when conditions are initialized. + expect(extensionController.manifest?.conditions?.length).to.be.equal(2); + expect(extensionController?.manifest?.alias).to.eq('Umb.Test.Type-1'); + if (count === 1) { + expect(extensionController?.permitted).to.be.true; + expect(extensionController.api?.i_am_test_api_controller).to.be.true; + } else if (count === 2) { + expect(extensionController?.permitted).to.be.false; + expect(extensionController.api).to.be.undefined; + done(); + extensionController.destroy(); // need to destroy the controller. + } + }, + ); + }); + }); +}); diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts index f9dfedb7fc..0ef62a2c24 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts @@ -1,6 +1,6 @@ import { createExtensionElement } from '../functions/create-extension-element.function.js'; import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; -import type { ManifestCondition, ManifestWithDynamicConditions } from '../types/index.js'; +import type { ManifestCondition, ManifestElement, ManifestWithDynamicConditions } from '../types/index.js'; import { UmbBaseExtensionInitializer } from './base-extension-initializer.controller.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -18,9 +18,11 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbExtensionElementInitializer< ManifestType extends ManifestWithDynamicConditions = ManifestWithDynamicConditions, ControllerType extends UmbExtensionElementInitializer = any, + ExtensionInterface extends ManifestElement = ManifestType extends ManifestElement ? ManifestType : never, + ExtensionElementInterface extends HTMLElement | undefined = ExtensionInterface['ELEMENT_TYPE'], > extends UmbBaseExtensionInitializer { #defaultElement?: string; - #component?: HTMLElement; + #component?: ExtensionElementInterface; /** * The component that is created for this extension. @@ -84,7 +86,7 @@ export class UmbExtensionElementInitializer< // We are not positive anymore, so we will back out of this creation. return false; } - this.#component = newComponent; + this.#component = newComponent as ExtensionElementInterface; if (this.#component) { this.#assignProperties(); (this.#component as any).manifest = manifest; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-and-api-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-and-api-initializer.controller.ts new file mode 100644 index 0000000000..fad332a3d9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-and-api-initializer.controller.ts @@ -0,0 +1,81 @@ +import type { ManifestBase } from '../types/index.js'; +import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; +import type { SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import { UmbExtensionElementAndApiInitializer } from './extension-element-and-api-initializer.controller.js'; +import { + type PermittedControllerType, + UmbBaseExtensionsInitializer, +} from './base-extensions-initializer.controller.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +/** + */ +export class UmbExtensionsElementAndApiInitializer< + ManifestTypes extends ManifestBase = ManifestBase, + ManifestTypeName extends string = string, + ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase, + ControllerType extends + UmbExtensionElementAndApiInitializer = UmbExtensionElementAndApiInitializer, + MyPermittedControllerType extends ControllerType = PermittedControllerType, +> extends UmbBaseExtensionsInitializer< + ManifestTypes, + ManifestTypeName, + ManifestType, + ControllerType, + MyPermittedControllerType +> { + // + #extensionRegistry; + #defaultElement?: string; + #constructorArgs: Array | undefined; + #props?: Record; + + public get properties() { + return this.#props; + } + public set properties(props: Record | undefined) { + this.#props = props; + this._extensions.forEach((controller) => { + controller.properties = props; + }); + } + + constructor( + host: UmbControllerHost, + extensionRegistry: UmbExtensionRegistry, + type: ManifestTypeName | Array, + constructorArguments: Array | undefined, + filter: undefined | null | ((manifest: ManifestType) => boolean), + onChange: (permittedManifests: Array) => void, + controllerAlias?: string, + defaultElement?: string, + ) { + super(host, extensionRegistry, type, filter, onChange, controllerAlias); + this.#extensionRegistry = extensionRegistry; + this.#constructorArgs = constructorArguments; + this.#defaultElement = defaultElement; + this._init(); + } + + protected _createController(manifest: ManifestType) { + const extController = new UmbExtensionElementAndApiInitializer( + this, + this.#extensionRegistry, + manifest.alias, + this.#constructorArgs, + this._extensionChanged, + this.#defaultElement, + ) as ControllerType; + + extController.properties = this.#props; + + return extController; + } + + public destroy(): void { + super.destroy(); + this.#constructorArgs = undefined; + this.#props = undefined; + (this.#extensionRegistry as any) = undefined; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/index.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/index.ts index db717874aa..a49d53fb99 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/index.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/index.ts @@ -6,3 +6,5 @@ export * from './extension-element-initializer.controller.js'; export * from './extensions-element-initializer.controller.js'; export * from './extension-manifest-initializer.controller.js'; export * from './extensions-manifest-initializer.controller.js'; +export * from './extension-element-and-api-initializer.controller.js'; +export * from './extensions-element-and-api-initializer.controller.js'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts index 468a194c24..b6108cf716 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts @@ -57,7 +57,6 @@ const createDetailMockMapper = (request: CreateDataTypeRequestModel): UmbMockDat const detailResponseMapper = (item: UmbMockDataTypeModel): DataTypeResponseModel => { return { id: item.id, - parent: item.parent, name: item.name, editorAlias: item.editorAlias, editorUiAlias: item.editorUiAlias, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts index a1ef7a9e34..47428a85b5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -89,7 +89,7 @@ const createMockDocumentTypeMapper = (request: CreateDocumentTypeRequestModel): isElement: request.isElement, allowedDocumentTypes: request.allowedDocumentTypes, compositions: request.compositions, - parent: request.folder, + parent: request.parent, isFolder: false, hasChildren: false, allowedTemplates: [], diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts index 2cdc4b7e86..0792287fe6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts @@ -31,7 +31,7 @@ export class UmbMockDocumentPublishingManager { const document: UmbMockDocumentModel = this.#documentDb.detail.read(id); document?.variants?.forEach((variant) => { - const hasCulture = variant.culture && data.culture === variant.culture; + const hasCulture = variant.culture && data.cultures?.includes(variant.culture); if (hasCulture) { variant.state = DocumentVariantStateModel.DRAFT; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts index 46ee3ea935..d70519af4a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts @@ -72,7 +72,7 @@ export const data: Array = [ }, { alias: 'multiUrlPicker', - culture: 'en-us', + culture: 'en-US', segment: null, value: [ { @@ -471,7 +471,7 @@ export const data: Array = [ { state: DocumentVariantStateModel.PUBLISHED, publishDate: '2023-02-06T15:31:51.354764', - culture: 'en-us', + culture: 'en-US', segment: null, name: 'All properties', createDate: '2023-02-06T15:31:46.876902', @@ -526,13 +526,13 @@ export const data: Array = [ value: 'My first blog post', }, { - culture: 'en-us', + culture: 'en-US', segment: null, alias: 'blogTextStringUnderMasterTab', value: 'in the master tab', }, { - culture: 'en-us', + culture: 'en-US', segment: null, alias: 'blogTextStringUnderGroupUnderMasterTab', value: 'which is under another group in the tab', @@ -572,7 +572,7 @@ export const data: Array = [ { state: DocumentVariantStateModel.PUBLISHED, publishDate: '2023-02-06T15:31:51.354764', - culture: 'en-us', + culture: 'en-US', segment: null, name: 'Article in english', createDate: '2023-02-06T15:31:46.876902', @@ -649,13 +649,13 @@ export const data: Array = [ value: 'My first blog post B', }, { - culture: 'en-us', + culture: 'en-US', segment: null, alias: 'blogTextStringUnderMasterTab', value: 'in the master tab B', }, { - culture: 'en-us', + culture: 'en-US', segment: null, alias: 'blogTextStringUnderGroupUnderMasterTab', value: 'which is under another group in the tab B', @@ -683,7 +683,7 @@ export const data: Array = [ { state: DocumentVariantStateModel.DRAFT, publishDate: '2023-02-06T15:32:24.957009', - culture: 'en-us', + culture: 'en-US', segment: null, name: 'Blog post B', createDate: '2023-02-06T15:32:05.350038', @@ -704,7 +704,7 @@ export const data: Array = [ documentType: { id: 'simple-document-type-id', icon: 'icon-document', - collection: { id: 'dt-collectionView'}, + collection: { id: 'dt-collectionView' }, }, hasChildren: false, noAccess: false, @@ -714,7 +714,7 @@ export const data: Array = [ { state: DocumentVariantStateModel.DRAFT, publishDate: '2023-02-06T15:32:24.957009', - culture: 'en-us', + culture: 'en-US', segment: null, name: 'Simple Document', createDate: '2023-02-06T15:32:05.350038', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/language/language.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/language/language.data.ts index 842973dda0..10c0771e8b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/language/language.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/language/language.data.ts @@ -5,7 +5,7 @@ export type UmbMockLanguageModel = LanguageResponseModel & LanguageItemResponseM export const data: Array = [ { name: 'English', - isoCode: 'en-us', + isoCode: 'en-US', isDefault: true, isMandatory: true, }, @@ -14,6 +14,6 @@ export const data: Array = [ isoCode: 'da', isDefault: false, isMandatory: false, - fallbackIsoCode: 'en-us', + fallbackIsoCode: 'en-US', }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts index 33d25fcfaa..630e0d7e7c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts @@ -84,7 +84,7 @@ const createMockMediaTypeMapper = (request: CreateMediaTypeRequestModel): UmbMoc isElement: request.isElement, allowedMediaTypes: request.allowedMediaTypes, compositions: request.compositions, - parent: request.folder ? { id: request.folder.id } : null, + parent: request.parent ? { id: request.parent.id } : null, isFolder: false, hasChildren: false, collection: null, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils/entity/entity-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils/entity/entity-folder.manager.ts index 65dfc08ecf..968fe7f8e7 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils/entity/entity-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils/entity/entity-folder.manager.ts @@ -55,7 +55,6 @@ export class UmbMockEntityFolderManager item.parent === null); - const treeItems = items.map((item) => this.#treeItemMapper(item)); - const total = items.length; - return { items: treeItems, total }; + return this.#pagedTreeResult({ items, skip, take }); } - getChildrenOf(parentId: string) { + getChildrenOf({ parentId, skip = 0, take = 100 }: { parentId: string; skip?: number; take?: number }) { const items = this.#db.getAll().filter((item) => item.parent?.id === parentId); - const treeItems = items.map((item) => this.#treeItemMapper(item)); - const total = items.length; - return { items: treeItems, total }; + return this.#pagedTreeResult({ items, skip, take }); + } + + #pagedTreeResult({ items, skip, take }: { items: Array; skip: number; take: number }) { + const paged = pagedResult(items, skip, take); + const treeItems = paged.items.map((item) => this.#treeItemMapper(item)); + const treeItemsHasChildren = treeItems.map((item) => { + const children = this.#db.getAll().filter((child) => child.parent?.id === item.id); + return { + ...item, + hasChildren: children.length > 0, + }; + }); + return { items: treeItemsHasChildren, total: paged.total }; } move(ids: Array, destinationId: string) { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils/file-system/file-system-tree.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils/file-system/file-system-tree.manager.ts index 05c243ce76..cad195d8f9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils/file-system/file-system-tree.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils/file-system/file-system-tree.manager.ts @@ -1,5 +1,6 @@ import type { UmbMockDBBase } from '../mock-db-base.js'; import { createFileSystemTreeItem } from '../../utils.js'; +import { pagedResult } from '../paged-result.js'; import type { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/external/backend-api'; export class UmbMockFileSystemTreeManager> { @@ -9,20 +10,32 @@ export class UmbMockFileSystemTreeManager>; total: number } { + getRoot({ skip = 0, take = 100 }: { skip?: number; take?: number } = {}): { + items: Array>; + total: number; + } { const items = this.#db.getAll().filter((item) => item.parent === null); - const treeItems = items.map((item) => createFileSystemTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; + return this.#pagedTreeResult({ items, skip, take }); } - getChildrenOf(parentPath: string): { + getChildrenOf({ parentPath, skip = 0, take = 100 }: { parentPath: string; skip?: number; take?: number }): { items: Array>; total: number; } { const items = this.#db.getAll().filter((item) => item.parent?.path === parentPath); - const treeItems = items.map((item) => createFileSystemTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; + return this.#pagedTreeResult({ items, skip, take }); + } + + #pagedTreeResult({ items, skip, take }: { items: Array; skip: number; take: number }) { + const paged = pagedResult(items, skip, take); + const treeItems = paged.items.map((item) => createFileSystemTreeItem(item)); + const treeItemsHasChildren = treeItems.map((item) => { + const children = this.#db.getAll().filter((child) => child.parent?.path === item.path); + return { + ...item, + hasChildren: children.length > 0, + }; + }); + return { items: treeItemsHasChildren, total: paged.total }; } } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts index 6b40a709ad..7c3973e38b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbDataTypeMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDataTypeMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbDataTypeMockDb.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDataTypeMockDb.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary/tree.handlers.ts index 22d46b92fd..6d79c28104 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbDictionaryMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDictionaryMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbDictionaryMockDb.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDictionaryMockDb.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/tree.handlers.ts index 79b722f63c..9f8a2297ce 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbDocumentTypeMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDocumentTypeMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbDocumentTypeMockDb.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDocumentTypeMockDb.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/recycle-bin.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/recycle-bin.handlers.ts index 2b842595f7..4841e79474 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/recycle-bin.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/recycle-bin.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const recycleBinHandlers = [ rest.get(umbracoPath(`/recycle-bin${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbDocumentMockDb.recycleBin.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDocumentMockDb.recycleBin.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/recycle-bin${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbDocumentMockDb.recycleBin.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDocumentMockDb.recycleBin.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/tree.handlers.ts index e2a0aacc7e..e148fc83da 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbDocumentMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDocumentMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbDocumentMockDb.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbDocumentMockDb.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/tree.handlers.ts index 335f3d1728..2d113dee35 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbMediaTypeMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbMediaTypeMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbMediaTypeMockDb.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbMediaTypeMockDb.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/recycle-bin.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/recycle-bin.handlers.ts index edc15eff9d..cf260a2912 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/recycle-bin.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/recycle-bin.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const recycleBinHandlers = [ rest.get(umbracoPath(`/recycle-bin${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbMediaMockDb.recycleBin.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbMediaMockDb.recycleBin.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/recycle-bin${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbMediaMockDb.recycleBin.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbMediaMockDb.recycleBin.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/tree.handlers.ts index b57b17e3a1..308c04be52 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbMediaMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbMediaMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbMediaMockDb.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbMediaMockDb.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/member-type/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/member-type/tree.handlers.ts index 78d543c445..0aef1a0996 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/member-type/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/member-type/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbMemberTypeMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbMemberTypeMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbMemberTypeMockDb.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbMemberTypeMockDb.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/tree.handlers.ts index 8848ec8be6..6838f10ca6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbPartialViewMockDB.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbPartialViewMockDB.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentPath = req.url.searchParams.get('parentPath'); if (!parentPath) return res(ctx.status(400)); - const response = umbPartialViewMockDB.tree.getChildrenOf(parentPath); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbPartialViewMockDB.tree.getChildrenOf({ parentPath, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/tree.handlers.ts index 89972b3c6e..216321e50f 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbScriptMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbScriptMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentPath = req.url.searchParams.get('parentPath'); if (!parentPath) return res(ctx.status(400)); - const response = umbScriptMockDb.tree.getChildrenOf(parentPath); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbScriptMockDb.tree.getChildrenOf({ parentPath, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/tree.handlers.ts index ca0a038895..0568111018 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbStaticFileMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbStaticFileMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentPath = req.url.searchParams.get('parentPath'); if (!parentPath) return res(ctx.status(400)); - const response = umbStaticFileMockDb.tree.getChildrenOf(parentPath); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbStaticFileMockDb.tree.getChildrenOf({ parentPath, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/tree.handlers.ts index 7441982c84..760a43d9c3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbStylesheetMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbStylesheetMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentPath = req.url.searchParams.get('parentPath'); if (!parentPath) return res(ctx.status(400)); - const response = umbStylesheetMockDb.tree.getChildrenOf(parentPath); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbStylesheetMockDb.tree.getChildrenOf({ parentPath, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/template/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/template/tree.handlers.ts index 813d7432dd..d177d705fd 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/template/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/template/tree.handlers.ts @@ -5,14 +5,18 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbTemplateMockDb.tree.getRoot(); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbTemplateMockDb.tree.getRoot({ skip, take }); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbTemplateMockDb.tree.getChildrenOf(parentId); + const skip = Number(req.url.searchParams.get('skip')); + const take = Number(req.url.searchParams.get('take')); + const response = umbTemplateMockDb.tree.getChildrenOf({ parentId, skip, take }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts index 83ab39bc2f..305508d2b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace.context.ts @@ -119,7 +119,8 @@ export class UmbBlockGridAreaTypeWorkspaceContext context.setValue(appendToFrozenArray(context.getValue() ?? [], this.#data.getValue(), (x) => x?.key)); }); - this.saveComplete(this.#data.value); + this.setIsNew(false); + this.workspaceComplete(this.#data.value); } public destroy(): void { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts index 62dfa9aff5..5cb684509f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts @@ -1,10 +1,10 @@ +import { UmbBlockGridEntriesContext } from '../../context/block-grid-entries.context.js'; +import type { UmbBlockGridEntryElement } from '../block-grid-entry/index.js'; import { getAccumulatedValueOfIndex, getInterpolatedIndexOfPositionInWeightMap, isWithinRect, } from '@umbraco-cms/backoffice/utils'; -import { UmbBlockGridEntriesContext } from '../../context/block-grid-entries.context.js'; -import type { UmbBlockGridEntryElement } from '../block-grid-entry/index.js'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbBlockGridLayoutModel } from '@umbraco-cms/backoffice/block-grid'; import { html, customElement, state, repeat, css, property } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts index bff5d556c0..a542df1664 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts @@ -1,5 +1,5 @@ -import { getAccumulatedValueOfIndex, getInterpolatedIndexOfPositionInWeightMap } from '@umbraco-cms/backoffice/utils'; import { closestColumnSpanOption } from '../../utils/index.js'; +import { getAccumulatedValueOfIndex, getInterpolatedIndexOfPositionInWeightMap } from '@umbraco-cms/backoffice/utils'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/manifests.ts index 73b05e3f9a..cd6fc0512d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/manifests.ts @@ -14,6 +14,11 @@ export const manifest: ManifestPropertyEditorUi = { group: 'richContent', settings: { properties: [ + { + alias: 'blockGroups', + label: '', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockTypeGroupConfiguration', + }, { alias: 'useLiveEditing', label: 'Live editing mode', diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/manifests.ts index c8f4c0ed73..17bf63c9ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { js: () => import('./property-editor-ui-block-grid-type-configuration.element.js'), meta: { label: 'Block Grid Block Configuration', - propertyEditorSchemaAlias: 'Umbraco.BlockGrid.BlockConfiguration', icon: 'icon-autofill', group: 'blocks', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/manifests.ts index 6f702cbdeb..d94806f492 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { js: () => import('./property-editor-ui-block-list-type-configuration.element.js'), meta: { label: 'Block List Type Configuration', - propertyEditorSchemaAlias: '', icon: 'icon-autofill', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 31593e2b2b..744b78a9ca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -46,7 +46,7 @@ export class UmbInputBlockTypeElement< const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); // TODO: Make as mode for the Picker Modal, so the click to select immediately submits the modal(And in that mode we do not want to see a Submit button). - const modalContext = modalManager.open(UMB_DOCUMENT_TYPE_PICKER_MODAL, { + const modalContext = modalManager.open(this, UMB_DOCUMENT_TYPE_PICKER_MODAL, { data: { hideTreeRoot: true, multiple: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/manifests.ts index 36f42bea54..8160246fa7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { js: () => import('./property-editor-ui-block-type-group-configuration.element.js'), meta: { label: 'Block Grid Group Configuration', - propertyEditorSchemaAlias: 'Umbraco.BlockGrid.GroupConfiguration', icon: 'icon-autofill', group: 'blocks', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index 74f35a0bcc..791af6f084 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -121,7 +121,8 @@ export class UmbBlockTypeWorkspaceContext { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts index e30a056762..7b128ac0db 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts @@ -8,7 +8,7 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-collection-pagination') export class UmbCollectionPaginationElement extends UmbLitElement { @state() - _totalPages = 0; + _totalPages = 1; @state() _currentPage = 1; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.element.ts index d97aa8407a..929fb667ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.element.ts @@ -1,5 +1,6 @@ import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from './collection-default.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -35,6 +36,11 @@ export class UmbCollectionDefaultElement extends UmbLitElement { }); } + protected firstUpdated(_changedProperties: PropertyValueMap | Map): void { + super.firstUpdated(_changedProperties); + this.#collectionContext?.requestCollection(); + } + #observeCollectionRoutes() { if (!this.#collectionContext) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-data-source.interface.ts index 3f256fce86..315782b7ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/repository/collection-data-source.interface.ts @@ -1,6 +1,6 @@ -import type { DataSourceResponse } from '../../repository/index.js'; +import type { UmbDataSourceResponse } from '../../repository/index.js'; import type { UmbPagedModel } from '../../repository/types.js'; export interface UmbCollectionDataSource { - getCollection(filter: FilterType): Promise>>; + getCollection(filter: FilterType): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/field-dropdown-list/field-dropdown-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/field-dropdown-list/field-dropdown-list.element.ts index f469b3953d..12929ca3f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/field-dropdown-list/field-dropdown-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/field-dropdown-list/field-dropdown-list.element.ts @@ -88,7 +88,7 @@ export class UmbFieldDropdownListElement extends UmbLitElement { async #getDocumentTypeFields() { if (!this.#modalManager) return; - const modalContext = this.#modalManager.open(UMB_DOCUMENT_TYPE_PICKER_MODAL, { + const modalContext = this.#modalManager.open(this, UMB_DOCUMENT_TYPE_PICKER_MODAL, { data: { hideTreeRoot: true, multiple: false, @@ -108,7 +108,7 @@ export class UmbFieldDropdownListElement extends UmbLitElement { async #getMediaTypeFields() { if (!this.#modalManager) return; - const modalContext = this.#modalManager.open(UMB_MEDIA_TYPE_PICKER_MODAL, { + const modalContext = this.#modalManager.open(this, UMB_MEDIA_TYPE_PICKER_MODAL, { data: { hideTreeRoot: true, multiple: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts index d0cc7b9aaa..ac3baa1b2f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts @@ -1,11 +1,6 @@ import { html, property } from '@umbraco-cms/backoffice/external/lit'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; -import type { - UmbModalManagerContext, - UmbModalToken, - UmbModalType, - UmbPickerModalValue, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalToken, UmbModalType, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -25,19 +20,12 @@ export class UmbInputListBaseElement extends UmbLitElement { // TODO: not great that we use any, any here. Investigate if we can have some interface or base modal token for this type. protected pickerToken?: UmbModalToken; - private _modalContext?: UmbModalManagerContext; - constructor() { - super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this._modalContext = instance; - }); - } - - private _openPicker() { + async #openPicker() { if (!this.pickerToken) return; - const modalContext = this._modalContext?.open(this.pickerToken, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, this.pickerToken, { data: { multiple: this.multiple, selection: this.value, @@ -62,7 +50,7 @@ export class UmbInputListBaseElement extends UmbLitElement { } protected renderButton() { - return html` + return html` ${this.localize.term('general_add')} `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts index a1db1bc3f9..665ab2e9e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts @@ -186,7 +186,7 @@ export class UmbInputMarkdownElement extends FormControlMixin(UmbLitElement) { const selectedValue = this.#editor?.getValueInRange(selection); this._focusEditor(); // Focus before opening modal - const modalContext = this._modalContext.open(UMB_LINK_PICKER_MODAL, { + const modalContext = this._modalContext.open(this, UMB_LINK_PICKER_MODAL, { data: { index: null, config: { overlaySize: this.overlaySize }, @@ -235,7 +235,7 @@ export class UmbInputMarkdownElement extends FormControlMixin(UmbLitElement) { const alt = this.#editor?.getValueInRange(selection) || 'alt text'; this._focusEditor(); // Focus before opening modal, otherwise cannot regain focus back after modal - const modalContext = this._modalContext?.open(UMB_MEDIA_TREE_PICKER_MODAL); + const modalContext = this._modalContext?.open(this, UMB_MEDIA_TREE_PICKER_MODAL); modalContext ?.onSubmit() diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts index d22ec8280d..3a5c17e825 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts @@ -1,4 +1,4 @@ -import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -17,25 +17,27 @@ export class UmbInputNumberRangeElement extends FormControlMixin(UmbLitElement) @state() private _minValue?: number; - @property() - public get minValue() { - return this._minValue; - } + + @property({ type: Number }) public set minValue(value: number | undefined) { this._minValue = value; this.updateValue(); } + public get minValue() { + return this._minValue; + } @state() private _maxValue?: number; - @property() - public get maxValue() { - return this._maxValue; - } + + @property({ type: Number }) public set maxValue(value: number | undefined) { this._maxValue = value; this.updateValue(); } + public get maxValue() { + return this._maxValue; + } private updateValue() { const newValue = this._minValue || this._maxValue ? (this._minValue || '') + ',' + (this._maxValue || '') : ''; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts index 261d39ef7a..619a58c0cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts @@ -1,32 +1,21 @@ import type { UmbMultipleColorPickerItemInputElement } from './multiple-color-picker-item-input.element.js'; -import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models'; import { css, + customElement, html, + ifDefined, nothing, repeat, - customElement, property, state, - ifDefined, } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { type UmbInputEvent, UmbChangeEvent, type UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; - -const SORTER_CONFIG: UmbSorterConfig = { - getUniqueOfElement: (element) => { - return element.value.toString(); - }, - getUniqueOfModel: (modelEntry) => { - return modelEntry.value; - }, - identifier: 'Umb.SorterIdentifier.ColorEditor', - itemSelector: 'umb-multiple-color-picker-item-input', - containerSelector: '#sorter-wrapper', -}; +import type { UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models'; /** * @element umb-multiple-color-picker-input @@ -34,7 +23,15 @@ const SORTER_CONFIG: UmbSorterConfig { + return element.value.toString(); + }, + getUniqueOfModel: (modelEntry: UmbSwatchDetails) => { + return modelEntry.value; + }, + identifier: 'Umb.SorterIdentifier.ColorEditor', + itemSelector: 'umb-multiple-color-picker-item-input', + containerSelector: '#sorter-wrapper', onChange: ({ model }) => { const oldValue = this._items; this._items = model; @@ -194,7 +191,6 @@ export class UmbMultipleColorPickerInputElement extends FormControlMixin(UmbLitE ?showLabels=${this.showLabels} value=${item.value} label=${ifDefined(item.label)} - name="item-${index}" @change=${(event: UmbChangeEvent) => this.#onChange(event, index)} @delete="${(event: UmbDeleteEvent) => this.#deleteItem(event, index)}" ?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 996b992a0b..93b381c130 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts @@ -1,37 +1,26 @@ import type { UmbInputMultipleTextStringItemElement } from './input-multiple-text-string-item.element.js'; import { css, html, nothing, repeat, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import type { UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; - -export type MultipleTextStringValue = Array; - -export interface MultipleTextStringValueItem { - value: string; -} - -const SORTER_CONFIG: UmbSorterConfig = { - getUniqueOfElement: (element) => { - return element.getAttribute('data-sort-entry-id'); - }, - getUniqueOfModel: (modelEntry) => { - return modelEntry.value; - }, - identifier: 'Umb.SorterIdentifier.ColorEditor', - itemSelector: 'umb-input-multiple-text-string-item', - containerSelector: '#sorter-wrapper', -}; +import type { UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; /** * @element umb-input-multiple-text-string */ @customElement('umb-input-multiple-text-string') export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitElement) { - #prevalueSorter = new UmbSorterController(this, { - ...SORTER_CONFIG, + #sorter = new UmbSorterController(this, { + getUniqueOfElement: (element) => { + return element.getAttribute('data-sort-entry-id'); + }, + getUniqueOfModel: (modelEntry: string) => { + return modelEntry; + }, + identifier: 'Umb.SorterIdentifier.ColorEditor', + itemSelector: 'umb-input-multiple-text-string-item', + containerSelector: '#sorter-wrapper', onChange: ({ model }) => { const oldValue = this._items; this._items = model; @@ -120,17 +109,17 @@ export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitEl } @state() - private _items: MultipleTextStringValue = []; + private _items: Array = []; @property({ type: Array }) - public get items(): MultipleTextStringValue { + public get items(): Array { return this._items; } - public set items(items: MultipleTextStringValue) { + public set items(items: Array) { // TODO: when we have a way to overwrite the missing value validator we can remove this this.value = items?.length > 0 ? 'some value' : ''; this._items = items ?? []; - this.#prevalueSorter.setModel(this.items); + this.#sorter.setModel(this.items); } // TODO: Some inputs might not have a value that is either FormDataEntryValue or FormData. @@ -146,7 +135,7 @@ export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitEl */ #onAdd() { - this._items = [...this._items, { value: '' }]; + this._items = [...this._items, '']; this.pristine = false; this.dispatchEvent(new UmbChangeEvent()); this.#focusNewItem(); @@ -156,7 +145,7 @@ export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitEl event.stopPropagation(); const target = event.currentTarget as UmbInputMultipleTextStringItemElement; const value = target.value as string; - this._items = this._items.map((item, index) => (index === currentIndex ? { value } : item)); + this._items = this._items.map((item, index) => (index === currentIndex ? value : item)); this.dispatchEvent(new UmbChangeEvent()); } @@ -192,9 +181,9 @@ export class UmbInputMultipleTextStringElement extends FormControlMixin(UmbLitEl (item, index) => index, (item, index) => html` this.#onInput(event, index)} @delete="${(event: UmbDeleteEvent) => this.#deleteItem(event, index)}" ?disabled=${this.disabled} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index 89ba1eaa2d..603944def7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -14,6 +14,7 @@ import { partialUpdateFrozenArray, appendToFrozenArray, filterFrozenArray, + createObservablePart, } from '@umbraco-cms/backoffice/observable-api'; import { incrementString } from '@umbraco-cms/backoffice/utils'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; @@ -27,6 +28,9 @@ export class UmbContentTypePropertyStructureManager(); #contentTypes = new UmbArrayState([], (x) => x.unique); readonly contentTypes = this.#contentTypes.asObservable(); + readonly ownerContentType = this.#contentTypes.asObservablePart((x) => + x.find((y) => y.unique === this.#ownerContentTypeUnique), + ); private readonly _contentTypeContainers = this.#contentTypes.asObservablePart((x) => x.flatMap((x) => x.containers ?? []), ); @@ -65,12 +69,10 @@ export class UmbContentTypePropertyStructureManager { if (docType) { @@ -164,8 +170,8 @@ export class UmbContentTypePropertyStructureManager x.find((y) => y.unique === this.#ownerContentTypeUnique)); + ownerContentTypePart(mappingFunction: MappingFunction) { + return createObservablePart(this.ownerContentType, mappingFunction); } getOwnerContentType() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts index 9a631ef06b..dde79453a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts @@ -1,10 +1,10 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { DataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; export interface UmbContentTypeStructureDataSourceConstructor { new (host: UmbControllerHost): UmbContentTypeStructureDataSource; } export interface UmbContentTypeStructureDataSource { - getAllowedChildrenOf(unique: string | null): Promise>>; + getAllowedChildrenOf(unique: string | null): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts index 1da863e86c..7691800e44 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts @@ -1,5 +1,5 @@ -import type { DataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; export interface UmbContentTypeStructureRepository { - requestAllowedChildrenOf(unique: string): Promise>>; + requestAllowedChildrenOf(unique: string): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index 4ddef4b13f..9ef9820ce7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -12,7 +12,6 @@ export interface UmbPropertyTypeContainerModel { export interface UmbContentTypeModel { unique: string; - parentUnique: string | null; name: string; alias: string; description: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/index.ts index 79c6d87767..d661c626d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/index.ts @@ -1,5 +1,5 @@ import type { PagedCultureReponseModel } from '@umbraco-cms/backoffice/external/backend-api'; -import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; // TODO: This is a temporary solution until we have a proper paging interface type paging = { @@ -8,5 +8,5 @@ type paging = { }; export interface UmbCultureDataSource { - getCollection(paging: paging): Promise>; + getCollection(paging: paging): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts index 74a1e175d7..4cf6debdd6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts @@ -65,7 +65,7 @@ export class UmbDebugElement extends UmbLitElement { } private _openDialog() { - this._modalContext?.open(UMB_CONTEXT_DEBUGGER_MODAL, { + this._modalContext?.open(this, UMB_CONTEXT_DEBUGGER_MODAL, { data: { content: html`${this._renderContextAliases()}`, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts index 95f4d3a407..17e7a9fbf7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts @@ -6,6 +6,7 @@ export class UmbDeleteEntityAction< T extends UmbDetailRepository & UmbItemRepository, > extends UmbEntityActionBase { async execute() { + if (!this.unique) throw new Error('Unique is not available'); if (!this.repository) return; // TOOD: add back when entity actions can support multiple repositories @@ -17,6 +18,7 @@ export class UmbDeleteEntityAction< color: 'danger', confirmLabel: 'Delete', }); + await this.repository?.delete(this.unique); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts index 80947140c0..cd5f6b2d51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts @@ -1,26 +1,15 @@ import { UMB_RENAME_MODAL } from './modal/rename-modal.token.js'; import type { UmbRenameRepository } from './types.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbRenameEntityAction extends UmbEntityActionBase> { - #modalManagerContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalManagerContext = instance; - }); - } - async execute() { - if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); + if (!this.unique) throw new Error('Unique is not available'); if (!this.repository) throw new Error('Repository is not available'); - const modalContext = this.#modalManagerContext?.open(UMB_RENAME_MODAL, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_RENAME_MODAL, { data: { unique: this.unique, renameRepositoryAlias: this.repositoryAlias, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts index af9419a24d..c4c6d20d62 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts @@ -1,8 +1,8 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbRenameRepository { - rename(unique: string, name: string): Promise>; + rename(unique: string, name: string): Promise>; } export interface UmbRenameDataSourceConstructor { @@ -10,5 +10,5 @@ export interface UmbRenameDataSourceConstructor { - rename(unique: string, name: string): Promise>; + rename(unique: string, name: string): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts index 8db299898a..c8c7592859 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts @@ -6,6 +6,7 @@ export class UmbTrashEntityAction< T extends UmbItemRepository & { trash(unique: string): Promise }, > extends UmbEntityActionBase { async execute() { + if (!this.unique) throw new Error('Unique is not available'); if (!this.repository) return; const { data } = await this.repository.requestItems([this.unique]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.event.ts index 4eafc96b78..138b4a1381 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.event.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.event.ts @@ -1,7 +1,7 @@ import { UmbControllerEvent } from '@umbraco-cms/backoffice/controller-api'; export interface UmbEntityActionEventArgs { - unique: string; + unique: string | null; entityType: string; } @@ -17,7 +17,7 @@ export class UmbEntityActionEvent extends UmbControllerEvent { return this.#args.entityType; } - getUnique(): string { + getUnique(): string | null { return this.#args.unique; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts index b3001ee0a2..1a802d79d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts @@ -12,9 +12,9 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbEntityAction extends UmbAction { /** * The unique identifier of the entity. - * @type {string} + * @type {string | null} */ - unique: string; + unique: string | null; /** * The href location, the action will act as a link. @@ -43,18 +43,18 @@ export abstract class UmbEntityActionBase implements UmbEntityAction { entityType: string; - unique: string; + unique: string | null; repositoryAlias: string; - /** - * Creates an instance of UmbEntityActionBase. - * @param {UmbControllerHost} host - * @param {string} repositoryAlias - * @param {string} unique - * @param {string} entityType - * @memberof UmbEntityActionBase - */ - constructor(host: UmbControllerHost, repositoryAlias: string, unique: string, entityType: string) { + constructor(host: UmbControllerHost, repositoryAlias: string, unique: string | null, entityType: string) { + /** + * Creates an instance of UmbEntityActionBase. + * @param {UmbControllerHost} host + * @param {string} repositoryAlias + * @param {string} unique + * @param {string} entityType + * @memberof UmbEntityActionBase + */ super(host, repositoryAlias); this.entityType = entityType; this.unique = unique; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/extension-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/extension-collection.element.ts index 5fc7239181..df8289d9a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/extension-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/extension-collection.element.ts @@ -27,6 +27,7 @@ export class UmbExtensionCollectionElement extends UmbCollectionDefaultElement { }); } + // TODO: make this a utility function, please check that we do not already have on for this: [NL] // credit: https://stackoverflow.com/a/7225450/12787 [LK] #camelCaseToWords(input: string) { const result = input.replace(/([A-Z])/g, ' $1'); @@ -35,7 +36,6 @@ export class UmbExtensionCollectionElement extends UmbCollectionDefaultElement { #onChange(event: UUISelectEvent) { const extensionType = event.target.value; - console.log('onChange', extensionType); this.#collectionContext?.setFilter({ type: extensionType }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-element-and-api-slot-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-element-and-api-slot-element-base.ts new file mode 100644 index 0000000000..ff4a187d2a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-element-and-api-slot-element-base.ts @@ -0,0 +1,66 @@ +import { umbExtensionsRegistry } from './registry.js'; +import { html, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import type { ManifestElementAndApi } from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionElementAndApiInitializer } from '@umbraco-cms/backoffice/extension-api'; + +// TODO: Eslint: allow abstract element class to end with "ElementBase" instead of "Element" +// eslint-disable-next-line local-rules/enforce-element-suffix-on-element-class-name +export abstract class UmbExtensionElementAndApiSlotElementBase< + ManifestType extends ManifestElementAndApi, +> extends UmbLitElement { + _alias?: string; + @property({ type: String, reflect: true }) + get alias() { + return this._alias; + } + set alias(newVal) { + this._alias = newVal; + this.#observeManifest(); + } + + @property({ type: Object, attribute: false }) + set props(newVal: Record | undefined) { + // TODO, compare changes since last time. only reset the ones that changed. This might be better done by the controller is self: + this.#props = newVal; + if (this.#extensionController) { + this.#extensionController.properties = newVal; + } + } + get props() { + return this.#props; + } + + #props?: Record = {}; + + #extensionController?: UmbExtensionElementAndApiInitializer; + + @state() + _element: ManifestType['ELEMENT_TYPE'] | undefined; + + abstract getExtensionType(): string; + abstract getDefaultElementName(): string; + + #observeManifest() { + if (!this._alias) return; + + this.#extensionController = new UmbExtensionElementAndApiInitializer( + this, + umbExtensionsRegistry, + this._alias, + [this], + this.#extensionChanged, + this.getDefaultElementName(), + ); + this.#extensionController.properties = this.#props; + } + + #extensionChanged = (isPermitted: boolean, controller: UmbExtensionElementAndApiInitializer) => { + this._element = isPermitted ? controller.component : undefined; + this.requestUpdate('_element'); + }; + + render() { + return html`${this._element}`; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts index 0d8fb0ff4d..e890b7fe55 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts @@ -2,3 +2,5 @@ export * from './conditions/index.js'; export * from './interfaces/index.js'; export * from './models/index.js'; export * from './registry.js'; + +export { UmbExtensionElementAndApiSlotElementBase } from './extension-element-and-api-slot-element-base.js'; 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 3e14e3ad9a..1721b7dfec 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 @@ -6,5 +6,4 @@ export * from './property-editor-ui-element.interface.js'; export * from './section-element.interface.js'; export * from './section-sidebar-app-element.interface.js'; export * from './section-view-element.interface.js'; -export * from './tree-item-element.interface.js'; export * from './workspace-view-element.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-element.interface.ts deleted file mode 100644 index d109e0bacd..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-element.interface.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { UmbTreeItemModelBase } from '@umbraco-cms/backoffice/tree'; - -export interface UmbTreeItemElement extends HTMLElement { - item?: UmbTreeItemModelBase; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/health-check.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/health-check.model.ts index e6cb9ec774..b2ebca55ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/health-check.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/health-check.model.ts @@ -1,13 +1,16 @@ -import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; +import type { ApiLoaderProperty, ManifestBase } from '@umbraco-cms/backoffice/extension-api'; -export interface ManifestHealthCheck extends ManifestElement { +export interface ManifestHealthCheck extends ManifestBase { type: 'healthCheck'; meta: MetaHealthCheck; + /** + * The API to load for this health check. This should implement or extend the `UmbHealthCheckContext` interface. + */ + api: ApiLoaderProperty; } export interface MetaHealthCheck { label: string; - api: any; } export interface HealthCheck { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts index 0f30b9dec6..aff81bc5d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts @@ -1,7 +1,7 @@ -import type { UmbTreeItemElement } from '../interfaces/index.js'; -import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbTreeItemContext, UmbTreeItemModelBase } from '../../index.js'; +import type { ManifestElementAndApi } from '@umbraco-cms/backoffice/extension-api'; -export interface ManifestTreeItem extends ManifestElement { +export interface ManifestTreeItem extends ManifestElementAndApi> { type: 'treeItem'; meta: MetaTreeItem; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree.model.ts index ffcc2bf64d..333784eb4f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree.model.ts @@ -1,6 +1,6 @@ -import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestElementAndApi } from '@umbraco-cms/backoffice/extension-api'; -export interface ManifestTree extends ManifestBase { +export interface ManifestTree extends ManifestElementAndApi { type: 'tree'; meta: MetaTree; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.controller.ts index 191cbbd410..61fb44d6a4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.controller.ts @@ -9,13 +9,15 @@ export class UmbConfirmModalController extends UmbControllerBase { async open(args: UmbConfirmModalArgs): Promise { const modalManagerContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - const modalContext = modalManagerContext.open(UMB_CONFIRM_MODAL, { + const modalContext = modalManagerContext.open(this, UMB_CONFIRM_MODAL, { data: args, }); - await modalContext.onSubmit().catch(() => { + const p = modalContext.onSubmit(); + p.catch(() => { this.destroy(); }); + await p; // This is a one time off, so we can destroy our selfs. this.destroy(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts index 50ada2ee67..5f7de072f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts @@ -98,6 +98,7 @@ export class UmbLinkPickerModalElement extends UmbModalBaseElement this.#handleSelectionChange(event, 'document')} - .selectionConfiguration=${this._selectionConfiguration}> + .props=${{ + hideTreeRoot: true, + selectionConfiguration: this._selectionConfiguration, + }} + @selection-change=${(event: CustomEvent) => this.#handleSelectionChange(event, 'document')}>
${this.localize.term('defaultdialogs_linkToMedia')}
this.#handleSelectionChange(event, 'media')} - .selectionConfiguration=${this._selectionConfiguration}> + .props=${{ + hideTreeRoot: true, + selectionConfiguration: this._selectionConfiguration, + }} + @selection-change=${(event: CustomEvent) => this.#handleSelectionChange(event, 'media')}>
`; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts index 3728ed4d0d..1252ac2c69 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts @@ -43,12 +43,6 @@ const modals: Array = [ name: 'Embedded Media Modal', js: () => import('./embedded-media/embedded-media-modal.element.js'), }, - { - type: 'modal', - alias: 'Umb.Modal.TreePicker', - name: 'Tree Picker Modal', - js: () => import('./tree-picker/tree-picker-modal.element.js'), - }, ]; export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index d973b5bbf2..832bd3cdc0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -6,7 +6,7 @@ import { UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/doc import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIBooleanInputEvent, UUIInputEvent, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; -import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertySettingsModalValue, UmbPropertySettingsModalData } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; @@ -234,6 +234,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< @@ -259,7 +260,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< .value=${this.value.description}>
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/component/modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/component/modal.element.ts index 9bd49840ff..6757f2d6f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/component/modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/component/modal.element.ts @@ -56,22 +56,18 @@ export class UmbModalElement extends UmbLitElement { // Makes sure that the modal triggers the reject of the context promise when it is closed by pressing escape. this.element.addEventListener(UUIModalCloseEvent, this.#onClose); - if (this.#modalContext.originTarget) { - // The following code is the context api proxy. - // It re-dispatches the context api request event to the origin target of this modal, in other words the element that initiated the modal. - this.element.addEventListener(UMB_CONTENT_REQUEST_EVENT_TYPE, ((event: UmbContextRequestEvent) => { - if (!this.#modalContext) return; - if (this.#modalContext.originTarget) { - // Note for this hack (The if-sentence): - // We do not currently have a good enough control to ensure that the proxy is last, meaning if another context is provided at this element, it might respond after the proxy event has been dispatched. - // To avoid such this hack just prevents proxying the event if its a request for the Modal Context. - if (event.contextAlias !== UMB_MODAL_CONTEXT.contextAlias) { - event.stopImmediatePropagation(); - this.#modalContext.originTarget.dispatchEvent(event.clone()); - } - } - }) as EventListener); - } + // The following code is the context api proxy. + // It re-dispatches the context api request event to the origin target of this modal, in other words the element that initiated the modal. [NL] + this.element.addEventListener(UMB_CONTENT_REQUEST_EVENT_TYPE, ((event: UmbContextRequestEvent) => { + if (!this.#modalContext) return; + // Note for this hack (The if-sentence): [NL] + // We do not currently have a good enough control to ensure that the proxy is last, meaning if another context is provided at this element, it might respond after the proxy event has been dispatched. + // To avoid such this hack just prevents proxying the event if its a request for the Modal Context. [NL] + if (event.contextAlias !== UMB_MODAL_CONTEXT.contextAlias) { + event.stopImmediatePropagation(); + this.#modalContext.getHostElement().dispatchEvent(event.clone()); + } + }) as EventListener); this.#modalContext.onSubmit().then( () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts index 6edd817eac..d923e06b0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts @@ -26,8 +26,9 @@ export class UmbModalManagerContext extends UmbContextBase, >( + host: UmbControllerHost, modalAlias: UmbModalToken | string, args: UmbModalContextClassArgs = {}, ) { - const modalContext = new UmbModalContext(modalAlias, args); + const modalContext = new UmbModalContext(host, modalAlias, args); // Append to store: this.#modals.setValue( diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts index 9cafca3fbf..6d167cd625 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts @@ -1,9 +1,11 @@ import { UmbModalToken } from '../token/modal-token.js'; import type { UmbModalConfig, UmbModalType } from './modal-manager.context.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; export interface UmbModalRejectReason { type: string; @@ -17,11 +19,10 @@ export type UmbModalContextClassArgs< data?: ModalAliasTypeAsToken['DATA']; value?: ModalAliasTypeAsToken['VALUE']; modal?: UmbModalConfig; - originTarget?: Element; }; // TODO: consider splitting this into two separate handlers -export class UmbModalContext extends EventTarget { +export class UmbModalContext extends UmbControllerBase { // #submitPromise: Promise; #submitResolver?: (value: ModalValue) => void; @@ -32,20 +33,19 @@ export class UmbModalContext; #value; public readonly value; constructor( + host: UmbControllerHost, modalAlias: string | UmbModalToken, args: UmbModalContextClassArgs, ) { - super(); + super(host); this.key = args.modal?.key || UmbId.new(); this.router = args.router ?? null; - this.originTarget = args.originTarget; this.alias = modalAlias; if (this.alias instanceof UmbModalToken) { @@ -130,4 +130,11 @@ export class UmbModalContext) { this.#value.update(partialValue); } + + public destroy(): void { + this.#value.destroy(); + (this as any).router = null; + (this as any).data = undefined; + super.destroy(); + } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/route-registration/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/route-registration/modal-route-registration.controller.ts index 2842ffdfa2..8a0c7903b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/route-registration/modal-route-registration.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/route-registration/modal-route-registration.controller.ts @@ -11,6 +11,7 @@ export class UmbModalRouteRegistrationController = new Map(); @@ -21,8 +22,8 @@ export class UmbModalRouteRegistrationController { + this.#contextConsumer = new UmbContextConsumerController(host, UMB_ROUTE_CONTEXT, (_routeContext) => { this.#routeContext = _routeContext; this.#registerModal(); - }).asPromise(); + }); + this.#init = this.#contextConsumer.asPromise(); } /** @@ -172,6 +174,7 @@ export class UmbModalRouteRegistrationController string; @@ -20,7 +21,7 @@ export type UmbModalRouteSetupReturn = Um value: UmbModalTokenValue; }; -export class UmbModalRouteRegistration { +export abstract class UmbModalRouteRegistration { #key: string; #path: string | null; #modalAlias: UmbModalToken | string; @@ -41,9 +42,7 @@ export class UmbModalRouteRegistration | string, path: string | null = null) { @@ -140,11 +139,10 @@ export class UmbModalRouteRegistration>) { await this.#itemManager.init; const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - const modalContext = modalManager.open(this.modalAlias, { + const modalContext = modalManager.open(this, this.modalAlias, { data: { multiple: this._max === 1 ? false : true, ...pickerData, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.BlockGrid.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.BlockGrid.ts index fb5d4ec47b..98a32721fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.BlockGrid.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.BlockGrid.ts @@ -14,11 +14,6 @@ export const manifest: ManifestPropertyEditorSchema = { description: 'Define Blocks based on Element Types.', propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockGridTypeConfiguration', }, - { - alias: 'blockGroups', - label: '', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockTypeGroupConfiguration', - }, { alias: 'validationLimit', label: 'Amount', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ContentPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ContentPicker.ts index 5f917b3024..beab290739 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ContentPicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ContentPicker.ts @@ -9,10 +9,10 @@ export const manifest: ManifestPropertyEditorSchema = { settings: { properties: [ { - alias: 'startNodeId', - label: 'Start node', - description: '', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker', + alias: 'ignoreUserStartNodes', + label: 'Ignore user start nodes', + description: 'Selecting this option allows a user to choose nodes that they normally dont have access to.', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.Dropdown.Flexible.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.Dropdown.Flexible.ts index c9fb91ab8b..98d4b1ff7d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.Dropdown.Flexible.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.Dropdown.Flexible.ts @@ -7,5 +7,19 @@ export const manifest: ManifestPropertyEditorSchema = { alias: 'Umbraco.DropDown.Flexible', meta: { defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.Dropdown', + settings: { + properties: [ + { + alias: 'multiple', + label: 'Enable multiple choice', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', + }, + { + alias: 'items', + label: 'Add options', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', + }, + ], + }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ListView.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ListView.ts index 5194939c75..1180f9fac4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ListView.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ListView.ts @@ -8,35 +8,12 @@ export const manifest: ManifestPropertyEditorSchema = { defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView', settings: { properties: [ - { - alias: 'pageSize', - label: 'Page Size', - description: 'Number of items per page.', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', - }, { alias: 'includeProperties', label: 'Columns Displayed', description: 'The properties that will be displayed for each column.', propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.ColumnConfiguration', }, - { - alias: 'orderBy', - label: 'Order By', - description: 'The default sort order for the list.', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.OrderBy', - }, - { - alias: 'orderDirection', - label: 'Order Direction', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.OrderDirection', - }, - { - alias: 'bulkActionPermissions', - label: 'Bulk Action Permissions', - description: 'The bulk actions that are allowed from the list view.', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.BulkActionPermissions', - }, ], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.MultiNodeTreePicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.MultiNodeTreePicker.ts index 0f3154f651..ea1a72b72a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.MultiNodeTreePicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.MultiNodeTreePicker.ts @@ -26,6 +26,12 @@ export const manifest: ManifestPropertyEditorSchema = { description: 'Selecting this option allows a user to choose nodes that they normally dont have access to.', propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, + { + alias: 'startNode', + label: 'Node type', + description: '', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker.SourcePicker', + }, ], defaultData: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.RadioButtonList.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.RadioButtonList.ts index 0f7b7db6c9..75af2e3224 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.RadioButtonList.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.RadioButtonList.ts @@ -6,5 +6,15 @@ export const manifest: ManifestPropertyEditorSchema = { alias: 'Umbraco.RadioButtonList', meta: { defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', + settings: { + properties: [ + { + alias: 'items', + label: 'Add option', + description: 'Add, remove or sort options for the list.', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', + }, + ], + }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.RichText.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.RichText.ts index d13575c27f..d74d2e1a9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.RichText.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.RichText.ts @@ -12,13 +12,20 @@ export const manifest: ManifestPropertyEditorSchema = { alias: 'mediaParentId', label: 'Image Upload Folder', description: 'Choose the upload location of pasted images', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', + config: [{ alias: 'validationLimit', value: { min: 0, max: 1 } }], }, { alias: 'ignoreUserStartNodes', label: 'Ignore User Start Nodes', propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, + { + alias: 'blocks', + label: 'Available Blocks', + description: 'Define the available blocks.', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.BlockRteTypeConfiguration', + }, ], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.TrueFalse.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.TrueFalse.ts index faa04eaf19..78ff015221 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.TrueFalse.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.TrueFalse.ts @@ -6,6 +6,6 @@ export const manifest: ManifestPropertyEditorSchema = { name: 'Date/Time', alias: 'Umbraco.TrueFalse', meta: { - defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.TrueFalse', + defaultPropertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/manifests.ts index 23c065b5dc..f0fda71aaa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { element: () => import('./property-editor-ui-collection-view-bulk-action-permissions.element.js'), meta: { label: 'Collection View Bulk Action Permissions', - propertyEditorSchemaAlias: '', icon: 'icon-autofill', group: 'lists', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/manifests.ts index 2dca3ff796..d06c7f1ade 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { element: () => import('./property-editor-ui-collection-view-column-configuration.element.js'), meta: { label: 'Collection View Column Configuration', - propertyEditorSchemaAlias: '', icon: 'icon-autofill', group: 'lists', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/manifests.ts index ac838969fb..411d187f3d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { element: () => import('./property-editor-ui-collection-view-layout-configuration.element.js'), meta: { label: 'Collection View Layout Configuration', - propertyEditorSchemaAlias: '', icon: 'icon-autofill', group: 'lists', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts index ea49184b4a..7863ff037b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts @@ -2,7 +2,6 @@ import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extensi import { html, customElement, property, repeat, css, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { UUIBooleanInputEvent, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { extractUmbColorVariable } from '@umbraco-cms/backoffice/resources'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_ICON_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; @@ -26,62 +25,55 @@ export class UmbPropertyEditorUICollectionViewLayoutConfigurationElement implements UmbPropertyEditorUiElement { @property({ type: Array }) - value: Array = []; + value?: Array; @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; - private _modalContext?: UmbModalManagerContext; - - constructor() { - super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this._modalContext = instance; - }); - } - #onAdd() { - this.value = [...this.value, { isSystem: false, icon: 'icon-stop', selected: true }]; + this.value = [...(this.value ?? []), { isSystem: false, icon: 'icon-stop', selected: true }]; this.dispatchEvent(new UmbPropertyValueChangeEvent()); } #onRemove(unique: number) { - const values = [...this.value]; + const values = [...(this.value ?? [])]; values.splice(unique, 1); this.value = values; this.dispatchEvent(new UmbPropertyValueChangeEvent()); } #onChangePath(e: UUIInputEvent, index: number) { - const values = [...this.value]; + const values = [...(this.value ?? [])]; values[index] = { ...values[index], path: e.target.value as string }; this.value = values; this.dispatchEvent(new UmbPropertyValueChangeEvent()); } #onChangeName(e: UUIInputEvent, index: number) { - const values = [...this.value]; + const values = [...(this.value ?? [])]; values[index] = { ...values[index], name: e.target.value as string }; this.value = values; this.dispatchEvent(new UmbPropertyValueChangeEvent()); } #onChangeSelected(e: UUIBooleanInputEvent, index: number) { - const values = [...this.value]; + const values = [...(this.value ?? [])]; values[index] = { ...values[index], selected: e.target.checked }; this.value = values; this.dispatchEvent(new UmbPropertyValueChangeEvent()); } async #onIconChange(index: number) { - const icon = this.#iconReader(this.value[index].icon ?? ''); + // This is not begin used? [NL] + //const icon = this.#iconReader((this.value ? this.value[index].icon : undefined) ?? ''); // TODO: send icon data to modal - const modalContext = this._modalContext?.open(UMB_ICON_PICKER_MODAL); - const picked = await modalContext?.onSubmit(); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modal = modalManager.open(this, UMB_ICON_PICKER_MODAL); + const picked = await modal?.onSubmit(); if (!picked) return; - const values = [...this.value]; + const values = [...(this.value ?? [])]; values[index] = { ...values[index], icon: `${picked.icon} color-${picked.color}` }; this.value = values; this.dispatchEvent(new UmbPropertyValueChangeEvent()); @@ -89,16 +81,18 @@ export class UmbPropertyEditorUICollectionViewLayoutConfigurationElement render() { return html`
- ${repeat( - this.value, - (layout, index) => '' + layout.name + layout.icon, - (layout, index) => - html`
- ${layout.isSystem - ? this.renderSystemFieldRow(layout, index) - : this.renderCustomFieldRow(layout, index)} -
`, - )} + ${this.value + ? repeat( + this.value, + (layout, index) => '' + layout.name + layout.icon, + (layout, index) => + html`
+ ${layout.isSystem + ? this.renderSystemFieldRow(layout, index) + : this.renderCustomFieldRow(layout, index)} +
`, + ) + : ''}
import('./property-editor-ui-collection-view-order-by.element.js'), meta: { label: 'Collection View Order By', - propertyEditorSchemaAlias: '', icon: 'icon-autofill', group: 'lists', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/manifests.ts index 30e8f29bab..33e003f94a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/manifests.ts @@ -22,6 +22,29 @@ const manifest: ManifestPropertyEditorUi = { description: 'The properties that will be displayed for each column.', propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.LayoutConfiguration', }, + { + alias: 'pageSize', + label: 'Page Size', + description: 'Number of items per page.', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.Number', + }, + { + alias: 'orderBy', + label: 'Order By', + description: 'The default sort order for the list.', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.OrderBy', + }, + { + alias: 'orderDirection', + label: 'Order Direction', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.OrderDirection', + }, + { + alias: 'bulkActionPermissions', + label: 'Bulk Action Permissions', + description: 'The bulk actions that are allowed from the list view.', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.CollectionView.BulkActionPermissions', + }, { alias: 'icon', label: 'Content app icon', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts index eee1b042aa..d2d4f13a77 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts @@ -21,10 +21,6 @@ export class UmbPropertyEditorUIColorSwatchesEditorElement extends UmbLitElement @property({ attribute: false }) public set config(config: UmbPropertyEditorConfigCollection | undefined) { this._showLabels = config?.getValueByAlias('useLabel') ?? this.#defaultShowLabels; - const items = config?.getValueByAlias('items') as typeof this.value; - if (items) { - this.value = items; - } } #onChange(event: CustomEvent) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/manifests.ts index 117cefb0db..c639aea701 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/manifests.ts @@ -10,19 +10,5 @@ export const manifest: ManifestPropertyEditorUi = { propertyEditorSchemaAlias: 'Umbraco.DropDown.Flexible', icon: 'icon-time', group: 'pickers', - settings: { - properties: [ - { - alias: 'multiple', - label: 'Enable multiple choice', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.Toggle', - }, - { - alias: 'items', - label: 'Add options', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', - }, - ], - }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts index 42033ff8ee..f34445a035 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -1,9 +1,7 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, UMB_ICON_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { extractUmbColorVariable } from '@umbraco-cms/backoffice/resources'; /** @@ -35,22 +33,9 @@ export class UmbPropertyEditorUIIconPickerElement extends UmbLitElement implemen @state() private _color = ''; - public set config(config: UmbPropertyEditorConfigCollection | undefined) { - if (!config) return; - //console.log('config', config); - } - - private _modalContext?: UmbModalManagerContext; - - constructor() { - super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this._modalContext = instance; - }); - } - private async _openModal() { - const modalContext = this._modalContext?.open(UMB_ICON_PICKER_MODAL); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_ICON_PICKER_MODAL); const data = await modalContext?.onSubmit(); if (!data) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts index 6e9ff243ed..328ac08bb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts @@ -4,7 +4,7 @@ import { html, customElement, property, state, ifDefined } from '@umbraco-cms/ba import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { MultipleTextStringValue, UmbInputMultipleTextStringElement } from '@umbraco-cms/backoffice/components'; +import type { UmbInputMultipleTextStringElement } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-multiple-text-string @@ -12,7 +12,7 @@ import type { MultipleTextStringValue, UmbInputMultipleTextStringElement } from @customElement('umb-property-editor-ui-multiple-text-string') export class UmbPropertyEditorUIMultipleTextStringElement extends UmbLitElement implements UmbPropertyEditorUiElement { @property({ type: Array }) - public value: MultipleTextStringValue = []; + public value: Array = []; @property({ attribute: false }) public set config(config: UmbPropertyEditorConfigCollection | undefined) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/manifests.ts index bf7a813e17..c38e28e388 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { element: () => import('./property-editor-ui-number-range.element.js'), meta: { label: 'Number Range', - propertyEditorSchemaAlias: '', icon: 'icon-autofill', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/manifests.ts index 3b6762e689..ad94dd8cbe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { element: () => import('./property-editor-ui-order-direction.element.js'), meta: { label: 'Order Direction', - propertyEditorSchemaAlias: '', icon: 'icon-autofill', group: 'common', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/manifests.ts index 286fc765d6..d18d334a3f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/manifests.ts @@ -7,7 +7,6 @@ export const manifest: ManifestPropertyEditorUi = { element: () => import('./property-editor-ui-overlay-size.element.js'), meta: { label: 'Overlay Size', - propertyEditorSchemaAlias: '', icon: 'icon-document', group: '', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/manifests.ts index 8debec0510..794be47a3d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/manifests.ts @@ -10,15 +10,5 @@ export const manifest: ManifestPropertyEditorUi = { propertyEditorSchemaAlias: 'Umbraco.RadioButtonList', icon: 'icon-target', group: 'lists', - settings: { - properties: [ - { - alias: 'items', - label: 'Add option', - description: 'Add, remove or sort options for the list.', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', - }, - ], - }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/manifests.ts index 2f0177ac56..2dba1aa2cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/manifests.ts @@ -9,6 +9,5 @@ export const manifest: ManifestPropertyEditorUi = { label: 'Tree Picker Source Picker', icon: 'icon-page-add', group: 'pickers', - propertyEditorSchemaAlias: '', }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/manifests.ts index 2473ac7989..291e99be3c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/manifests.ts @@ -9,6 +9,5 @@ export const manifest: ManifestPropertyEditorUi = { label: 'Tree Picker Source Type Picker', icon: 'icon-page-add', group: 'pickers', - propertyEditorSchemaAlias: '', }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/manifests.ts index e303998769..56a371fa95 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/manifests.ts @@ -14,17 +14,11 @@ const manifest: ManifestPropertyEditorUi = { propertyEditorSchemaAlias: 'Umbraco.MultiNodeTreePicker', settings: { properties: [ - { - alias: 'startNode', - label: 'Node type', - description: '', - propertyEditorUiAlias: sourcePicker.alias, - }, { alias: 'filter', label: 'Allow items of type', description: 'Select the applicable types', - propertyEditorUiAlias: sourceTypePicker.alias, + propertyEditorUiAlias: 'Umb.PropertyEditorUi.TreePicker.SourceTypePicker', }, { alias: 'showOpenButton', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts index d177891bc1..fe39b0a587 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts @@ -110,12 +110,21 @@ export class UmbPropertyContext extends UmbControllerBase { public setAlias(alias: string | undefined): void { this.#alias.setValue(alias); } + public getAlias(): string | undefined { + return this.#alias.getValue(); + } public setLabel(label: string | undefined): void { this.#label.setValue(label); } + public getLabel(): string | undefined { + return this.#label.getValue(); + } public setDescription(description: string | undefined): void { this.#description.setValue(description); } + public getDescription(): string | undefined { + return this.#description.getValue(); + } /** * Set the value of this property. * @param value {ValueType} the whole value to be set @@ -136,6 +145,9 @@ export class UmbPropertyContext extends UmbControllerBase { public setConfig(config: Array | undefined): void { this.#configValues.setValue(config ?? []); } + public getConfig(): Array | undefined { + return this.#configValues.getValue(); + } public setVariantId(variantId: UmbVariantId | undefined): void { this.#variantId.setValue(variantId); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts index 1219343b35..ca2364b4d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts @@ -27,9 +27,12 @@ export class UmbPropertyElement extends UmbLitElement { * @default '' */ @property({ type: String }) - public set label(label: string) { + public set label(label: string | undefined) { this.#propertyContext.setLabel(label); } + public get label() { + return this.#propertyContext.getLabel(); + } /** * Description: render a description underneath the label. @@ -38,9 +41,12 @@ export class UmbPropertyElement extends UmbLitElement { * @default '' */ @property({ type: String }) - public set description(description: string) { + public set description(description: string | undefined) { this.#propertyContext.setDescription(description); } + public get description() { + return this.#propertyContext.getDescription(); + } /** * Alias @@ -53,6 +59,9 @@ export class UmbPropertyElement extends UmbLitElement { public set alias(alias: string) { this.#propertyContext.setAlias(alias); } + public get alias() { + return this.#propertyContext.getAlias() ?? ''; + } /** * Property Editor UI Alias. Render the Property Editor UI registered for this alias. @@ -62,12 +71,14 @@ export class UmbPropertyElement extends UmbLitElement { * @default '' */ @property({ type: String, attribute: 'property-editor-ui-alias' }) - public set propertyEditorUiAlias(value: string) { - if (this._propertyEditorUiAlias === value) return; + public set propertyEditorUiAlias(value: string | undefined) { this._propertyEditorUiAlias = value; this._observePropertyEditorUI(); } - private _propertyEditorUiAlias = ''; + public get propertyEditorUiAlias(): string { + return this._propertyEditorUiAlias ?? ''; + } + private _propertyEditorUiAlias?: string; /** * Config. Configuration to pass to the Property Editor UI. This is also the configuration data stored on the Data Type. @@ -80,6 +91,9 @@ export class UmbPropertyElement extends UmbLitElement { public set config(value: UmbPropertyEditorConfig | undefined) { this.#propertyContext.setConfig(value); } + public get config(): UmbPropertyEditorConfig | undefined { + return this.#propertyContext.getConfig(); + } @state() private _variantDifference?: string; @@ -130,13 +144,15 @@ export class UmbPropertyElement extends UmbLitElement { }; private _observePropertyEditorUI(): void { - this.observe( - umbExtensionsRegistry.byTypeAndAlias('propertyEditorUi', this._propertyEditorUiAlias), - (manifest) => { - this._gotEditorUI(manifest); - }, - '_observePropertyEditorUI', - ); + if (this._propertyEditorUiAlias) { + this.observe( + umbExtensionsRegistry.byTypeAndAlias('propertyEditorUi', this._propertyEditorUiAlias), + (manifest) => { + this._gotEditorUI(manifest); + }, + '_observePropertyEditorUI', + ); + } } private async _gotEditorUI(manifest?: ManifestPropertyEditorUi | null): Promise { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-data-source.interface.ts index f2477be161..4ac1317a33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-data-source.interface.ts @@ -1,5 +1,5 @@ -import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbCopyDataSource { - copy(unique: string, targetUnique: string | null): Promise>; + copy(unique: string, targetUnique: string | null): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-repository.interface.ts index 7dd2abe75b..201e416e5e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/copy/copy-repository.interface.ts @@ -1,5 +1,5 @@ -import type { DataSourceResponse } from '../data-source-response.interface.js'; +import type { UmbRepositoryResponse } from '../types.js'; export interface UmbCopyRepository { - copy(unique: string, targetUnique: string): Promise>; + copy(unique: string, targetUnique: string): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source-response.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source-response.interface.ts index ac0d1d2879..2c8aabb23b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source-response.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source-response.interface.ts @@ -1,6 +1,6 @@ import type { ApiError, CancelError } from '@umbraco-cms/backoffice/external/backend-api'; -export interface DataSourceResponse extends UmbDataSourceErrorResponse { +export interface UmbDataSourceResponse extends UmbDataSourceErrorResponse { data?: T; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts index dd0f37a173..c63c57a555 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts @@ -1,4 +1,4 @@ -import type { DataSourceResponse } from '../data-source-response.interface.js'; +import type { UmbDataSourceResponse } from '../data-source-response.interface.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbDetailDataSourceConstructor { @@ -6,9 +6,9 @@ export interface UmbDetailDataSourceConstructor { } export interface UmbDetailDataSource { - createScaffold(parentUnique: string | null, preset?: Partial): Promise>; - create(data: DetailType): Promise>; - read(unique: string): Promise>; - update(data: DetailType): Promise>; - delete(unique: string): Promise; + createScaffold(preset?: Partial): Promise>; + create(data: DetailType, parentUnique: string | null): Promise>; + read(unique: string): Promise>; + update(data: DetailType): Promise>; + delete(unique: string): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 5f396ed615..c7669d284b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -8,9 +8,7 @@ import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbDetailStore } from '@umbraco-cms/backoffice/store'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export abstract class UmbDetailRepositoryBase< - DetailModelType extends { unique: string; entityType: string; parentUnique?: string | null }, - > +export abstract class UmbDetailRepositoryBase extends UmbRepositoryBase implements UmbDetailRepository, UmbApi { @@ -42,13 +40,12 @@ export abstract class UmbDetailRepositoryBase< /** * Creates a scaffold - * @param {(string | null)} parentUnique + * @param {Partial} [preset] * @return {*} * @memberof UmbDetailRepositoryBase */ - async createScaffold(parentUnique: string | null, preset?: Partial) { - if (parentUnique === undefined) throw new Error('Parent unique is missing'); - return this.#detailSource.createScaffold(parentUnique, preset); + async createScaffold(preset?: Partial) { + return this.#detailSource.createScaffold(preset); } /** @@ -72,15 +69,16 @@ export abstract class UmbDetailRepositoryBase< /** * Returns a promise with an observable of the detail for the given unique - * @param {string} unique + * @param {DetailModelType} model + * @param {string | null} [parentUnique=null] * @return {*} * @memberof UmbDetailRepositoryBase */ - async create(data: DetailModelType) { - if (!data) throw new Error('Data is missing'); + async create(model: DetailModelType, parentUnique: string | null) { + if (!model) throw new Error('Data is missing'); await this.#init; - const { data: createdData, error } = await this.#detailSource.create(data); + const { data: createdData, error } = await this.#detailSource.create(model, parentUnique); if (createdData) { this.#detailStore?.append(createdData); @@ -95,26 +93,26 @@ export abstract class UmbDetailRepositoryBase< /** * Saves the given data - * @param {DetailModelType} data + * @param {DetailModelType} model * @return {*} * @memberof UmbDetailRepositoryBase */ - async save(data: DetailModelType) { - if (!data) throw new Error('Data is missing'); - if (!data.unique) throw new Error('Unique is missing'); + async save(model: DetailModelType) { + if (!model) throw new Error('Data is missing'); + if (!model.unique) throw new Error('Unique is missing'); await this.#init; - const { data: updatedData, error } = await this.#detailSource.update(data); + const { data: updatedData, error } = await this.#detailSource.update(model); if (updatedData) { - this.#detailStore!.updateItem(data.unique, updatedData); + this.#detailStore!.updateItem(model.unique, updatedData); // TODO: how do we handle generic notifications? Is this the correct place to do it? const notification = { data: { message: `Saved` } }; this.#notificationContext!.peek('positive', notification); } - return { data, error }; + return { data: model, error }; } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts index 1bf5213cdf..b6146921de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts @@ -1,14 +1,15 @@ -import type { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source-response.interface.js'; +import type { + UmbRepositoryErrorResponse, + UmbRepositoryResponse, + UmbRepositoryResponseWithAsObservable, +} from '../types.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface UmbDetailRepository { - createScaffold( - parentUnique: string | null, - preset?: Partial, - ): Promise>; - requestByUnique(unique: string): Promise>; + createScaffold(preset?: Partial): Promise>; + requestByUnique(unique: string): Promise>; byUnique(unique: string): Promise>; - create(data: DetailModelType): Promise>; - save(data: DetailModelType): Promise>; - delete(unique: string): Promise; + create(data: DetailModelType, parentUnique: string | null): Promise>; + save(data: DetailModelType): Promise>; + delete(unique: string): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts index 584a609b30..4fc2411629 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts @@ -4,7 +4,7 @@ export * from './repository-base.js'; export * from './item/index.js'; export * from './detail/index.js'; -export type { DataSourceResponse, UmbDataSourceErrorResponse } from './data-source-response.interface.js'; +export type { UmbDataSourceResponse, UmbDataSourceErrorResponse } from './data-source-response.interface.js'; export type { UmbMoveDataSource, UmbMoveRepository } from './move/index.js'; export type { UmbCopyDataSource, UmbCopyRepository } from './copy/index.js'; export type { UmbPagedModel } from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts index cb95f0ec6c..377f91985d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts @@ -1,10 +1,10 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbItemDataSourceConstructor { new (host: UmbControllerHost): UmbItemDataSource; } export interface UmbItemDataSource { - getItems(unique: Array): Promise>>; + getItems(unique: Array): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-repository.interface.ts index df80f262a8..9502e8d409 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move/move-repository.interface.ts @@ -1,5 +1,5 @@ -import type { UmbDataSourceErrorResponse } from '../data-source-response.interface.js'; +import type { UmbRepositoryErrorResponse } from '../types.js'; export interface UmbMoveRepository { - move(unique: string, targetUnique: string): Promise; + move(unique: string, targetUnique: string): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-base.ts index 138e18c838..2955c373a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-base.ts @@ -1,9 +1,3 @@ -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; -// TODO: Revisit if constructor method should be omitted -export abstract class UmbRepositoryBase extends UmbControllerBase { - constructor(host: UmbControllerHost) { - super(host); - } -} +export abstract class UmbRepositoryBase extends UmbControllerBase {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/types.ts index 9825f3c650..2c53c1f122 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/types.ts @@ -1,4 +1,14 @@ +import type { UmbDataSourceErrorResponse, UmbDataSourceResponse } from './data-source-response.interface.js'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; + export interface UmbPagedModel { total: number; items: Array; } + +export interface UmbRepositoryResponse extends UmbDataSourceResponse {} +export interface UmbRepositoryErrorResponse extends UmbDataSourceErrorResponse {} + +export interface UmbRepositoryResponseWithAsObservable extends UmbRepositoryResponse { + asObservable?: () => Observable; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts index 17463b9f79..7b1e6dcad5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts @@ -4,7 +4,7 @@ import { UMB_NOTIFICATION_CONTEXT, type UmbNotificationOptions } from '@umbraco- import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; export class UmbResourceController extends UmbControllerBase { #promise: Promise; @@ -32,7 +32,7 @@ export class UmbResourceController extends UmbControllerBase { /** * Base execute function with a try/catch block and return a tuple with the result and the error. */ - static async tryExecute(promise: Promise): Promise> { + static async tryExecute(promise: Promise): Promise> { try { return { data: await promise }; } catch (error) { @@ -49,7 +49,7 @@ export class UmbResourceController extends UmbControllerBase { * Wrap the {tryExecute} function in a try/catch block and return the result. * If the executor function throws an error, then show the details in a notification. */ - async tryExecuteAndNotify(options?: UmbNotificationOptions): Promise> { + async tryExecuteAndNotify(options?: UmbNotificationOptions): Promise> { const { data, error } = await UmbResourceController.tryExecute(this.#promise); if (error) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecute.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecute.function.ts index e1c94994dc..4f849b2632 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecute.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecute.function.ts @@ -1,6 +1,6 @@ import { UmbResourceController } from './resource.controller.js'; -import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; -export function tryExecute(promise: Promise): Promise> { +export function tryExecute(promise: Promise): Promise> { return UmbResourceController.tryExecute(promise); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecuteAndNotify.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecuteAndNotify.function.ts index 028e63652d..03d76360fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecuteAndNotify.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/tryExecuteAndNotify.function.ts @@ -2,12 +2,12 @@ import { UmbResourceController } from './resource.controller.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbNotificationOptions } from '@umbraco-cms/backoffice/notification'; -import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; export function tryExecuteAndNotify( host: UmbControllerHost, resource: Promise, options?: UmbNotificationOptions, -): Promise> { +): Promise> { return new UmbResourceController(host, resource).tryExecuteAndNotify(options); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/store-connector.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-connector.ts index 905069f754..278ae21299 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/store-connector.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-connector.ts @@ -5,27 +5,26 @@ import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +export interface UmbStoreConnectorArgs { + store: UmbStoreBase; + connectToStoreAlias: UmbContextToken | string; + newStoreItemMapper?: (item: ConnectedStoreType) => StoreType; + updateStoreItemMapper?: (item: ConnectedStoreType) => Partial; +} + // WIP: get back to this when we have decided on detail model sizes export class UmbStoreConnector { #store: UmbStore; #connectedStore?: UmbStore; - #onNewStoreItem: (item: ConnectedStoreType) => StoreType; - #onUpdateStoreItem: (item: ConnectedStoreType) => Partial; + #newStoreItemMapper?: (item: ConnectedStoreType) => StoreType; + #updateStoreItemMapper?: (item: ConnectedStoreType) => Partial; - constructor( - host: UmbControllerHost, - store: UmbStoreBase, - connectToStoreAlias: UmbContextToken | string, - onNewStoreItem: (item: ConnectedStoreType) => StoreType, - onUpdateStoreItem: (item: ConnectedStoreType) => Partial, - ) { - this.#store = store; - this.#onNewStoreItem = onNewStoreItem; - this.#onUpdateStoreItem = onUpdateStoreItem; + constructor(host: UmbControllerHost, args: UmbStoreConnectorArgs) { + this.#store = args.store; + this.#newStoreItemMapper = args.newStoreItemMapper; + this.#updateStoreItemMapper = args.updateStoreItemMapper; - console.warn('UmbStoreConnector is a work in progress and should not be used yet'); - - new UmbContextConsumerController(host, connectToStoreAlias, (instance) => { + new UmbContextConsumerController(host, args.connectToStoreAlias, (instance) => { this.#connectedStore = instance; if (this.#connectedStore) { @@ -47,10 +46,10 @@ export class UmbStoreConnector { const connectedStoreItem = this.#connectedStore!.getItems([unique])[0]; // we check if the current store has the item from the connected store, if it does we update it, if it doesn't we append it - if (storeHasItem) { - this.#store.updateItem(unique, this.#onUpdateStoreItem(connectedStoreItem!)); - } else { - this.#store.append(this.#onNewStoreItem(connectedStoreItem!)); + if (storeHasItem && this.#updateStoreItemMapper) { + this.#store.updateItem(unique, this.#updateStoreItemMapper(connectedStoreItem!)); + } else if (this.#newStoreItemMapper) { + this.#store.append(this.#newStoreItemMapper(connectedStoreItem!)); } }); }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/index.ts deleted file mode 100644 index 620557f531..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export type { UmbTreeDataSource } from './tree-data-source.interface.js'; -export { UmbTreeServerDataSourceBase } from './tree-server-data-source-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/index.ts new file mode 100644 index 0000000000..c2ab9f12b2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/index.ts @@ -0,0 +1,10 @@ +export { UmbTreeServerDataSourceBase } from './tree-server-data-source-base.js'; +export { UmbTreeRepositoryBase } from './tree-repository-base.js'; + +export type { UmbTreeDataSource } from './tree-data-source.interface.js'; +export type { UmbTreeRepository } from './tree-repository.interface.js'; +export type { UmbTreeStore } from './tree-store.interface.js'; + +export type { UmbTreeRootItemsRequestArgs, UmbTreeChildrenOfRequestArgs } from './types.js'; + +export { UmbUniqueTreeStore } from './unique-tree-store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-data-source.interface.ts similarity index 58% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-data-source.interface.ts index b7faf17f03..120d398903 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-data-source.interface.ts @@ -1,5 +1,6 @@ import type { UmbTreeItemModelBase } from '../types.js'; -import type { UmbPagedModel, DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from './types.js'; +import type { UmbPagedModel, UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** @@ -21,16 +22,15 @@ export interface UmbTreeDataSourceConstructor { /** * Gets the root items of the tree. - * @return {*} {Promise>>} + * @return {*} {Promise>>} * @memberof UmbTreeDataSource */ - getRootItems(): Promise>>; + getRootItems(args: UmbTreeRootItemsRequestArgs): Promise>>; /** * Gets the children of the given parent item. - * @param {(string | null)} parentUnique - * @return {*} {Promise>} + * @return {*} {Promise>} * @memberof UmbTreeDataSource */ - getChildrenOf(parentUnique: string | null): Promise>>; + getChildrenOf(args: UmbTreeChildrenOfRequestArgs): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts index 47bd0f09b5..0ea9f637b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts @@ -1,7 +1,7 @@ +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '../types.js'; import type { UmbTreeStore } from './tree-store.interface.js'; -import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from './types.js'; import type { UmbTreeRepository } from './tree-repository.interface.js'; -import type { UmbTreeDataSource, UmbTreeDataSourceConstructor } from './data-source/tree-data-source.interface.js'; +import type { UmbTreeDataSource, UmbTreeDataSourceConstructor } from './tree-data-source.interface.js'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; @@ -61,10 +61,10 @@ export abstract class UmbTreeRepositoryBase< * @return {*} * @memberof UmbTreeRepositoryBase */ - async requestRootTreeItems() { + async requestRootTreeItems(args: any) { await this._init; - const { data, error } = await this.#treeSource.getRootItems(); + const { data, error } = await this.#treeSource.getRootItems(args); if (data) { this._treeStore!.appendItems(data.items); @@ -79,17 +79,17 @@ export abstract class UmbTreeRepositoryBase< * @return {*} * @memberof UmbTreeRepositoryBase */ - async requestTreeItemsOf(parentUnique: string | null) { - if (parentUnique === undefined) throw new Error('Parent unique is missing'); + async requestTreeItemsOf(args: any) { + if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); await this._init; - const { data, error } = await this.#treeSource.getChildrenOf(parentUnique); + const { data, error } = await this.#treeSource.getChildrenOf(args); if (data) { this._treeStore!.appendItems(data.items); } - return { data, error, asObservable: () => this._treeStore!.childrenOf(parentUnique) }; + return { data, error, asObservable: () => this._treeStore!.childrenOf(args.parentUnique) }; } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository.interface.ts similarity index 78% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository.interface.ts index 153a65f287..e7cbbf4223 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository.interface.ts @@ -1,4 +1,5 @@ -import type { UmbTreeItemModelBase } from './types.js'; +import type { UmbTreeItemModelBase } from '../types.js'; +import type { UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from './types.js'; import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ProblemDetails } from '@umbraco-cms/backoffice/external/backend-api'; @@ -27,20 +28,21 @@ export interface UmbTreeRepository< /** * Requests the root items of the tree. + * @param {UmbTreeRootItemsRequestArgs} args * @memberof UmbTreeRepository */ - requestRootTreeItems: () => Promise<{ + requestRootTreeItems: (args: UmbTreeRootItemsRequestArgs) => Promise<{ data?: UmbPagedModel; error?: ProblemDetails; asObservable?: () => Observable; }>; /** - * Requests the items of a item in the tree. - * @param {(string | null)} parentUnique + * Requests the children of the given parent item. + * @param {UmbTreeChildrenOfRequestArgs} args * @memberof UmbTreeRepository */ - requestTreeItemsOf: (parentUnique: string | null) => Promise<{ + requestTreeItemsOf: (args: UmbTreeChildrenOfRequestArgs) => Promise<{ data?: UmbPagedModel; error?: ProblemDetails; asObservable?: () => Observable; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-server-data-source-base.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-server-data-source-base.ts index 22bea85ee8..457ad915f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-server-data-source-base.ts @@ -1,7 +1,8 @@ import type { UmbTreeItemModelBase } from '../types.js'; import type { UmbTreeDataSource } from './tree-data-source.interface.js'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from './types.js'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { TreeItemPresentationModel } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; @@ -9,8 +10,8 @@ export interface UmbTreeServerDataSourceBaseArgs< ServerTreeItemType extends TreeItemPresentationModel, ClientTreeItemType extends UmbTreeItemModelBase, > { - getRootItems: () => Promise>; - getChildrenOf: (parentUnique: string | null) => Promise>; + getRootItems: (args: UmbTreeRootItemsRequestArgs) => Promise>; + getChildrenOf: (args: UmbTreeChildrenOfRequestArgs) => Promise>; mapper: (item: ServerTreeItemType) => ClientTreeItemType; } @@ -44,11 +45,12 @@ export abstract class UmbTreeServerDataSourceBase< /** * Fetches the root items for the tree from the server + * @param {UmbTreeRootItemsRequestArgs} args * @return {*} * @memberof UmbTreeServerDataSourceBase */ - async getRootItems() { - const { data, error } = await tryExecuteAndNotify(this.#host, this.#getRootItems()); + async getRootItems(args: UmbTreeRootItemsRequestArgs) { + const { data, error } = await tryExecuteAndNotify(this.#host, this.#getRootItems(args)); if (data) { const items = data?.items.map((item) => this.#mapper(item)); @@ -60,14 +62,14 @@ export abstract class UmbTreeServerDataSourceBase< /** * Fetches the children of a given parent unique from the server - * @param {(string)} parentUnique + * @param {UmbTreeChildrenOfRequestArgs} args * @return {*} * @memberof UmbTreeServerDataSourceBase */ - async getChildrenOf(parentUnique: string | null) { - if (parentUnique === undefined) throw new Error('Parent unique is missing'); + async getChildrenOf(args: UmbTreeChildrenOfRequestArgs) { + if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); - const { data, error } = await tryExecuteAndNotify(this.#host, this.#getChildrenOf(parentUnique)); + const { data, error } = await tryExecuteAndNotify(this.#host, this.#getChildrenOf(args)); if (data) { const items = data?.items.map((item: ServerTreeItemType) => this.#mapper(item)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-store.interface.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-store.interface.ts index dbeefe8ed6..11355a21f4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-store.interface.ts @@ -1,4 +1,4 @@ -import type { UmbTreeItemModelBase } from './types.js'; +import type { UmbTreeItemModelBase } from '../types.js'; import type { UmbStore } from '@umbraco-cms/backoffice/store'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/types.ts new file mode 100644 index 0000000000..3a74d850d7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/types.ts @@ -0,0 +1,10 @@ +export interface UmbTreeRootItemsRequestArgs { + skip: number; + take: number; +} + +export interface UmbTreeChildrenOfRequestArgs { + parentUnique: string | null; + skip: number; + take: number; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/unique-tree-store.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/data/unique-tree-store.ts index b1e25e9366..9c03a87030 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/unique-tree-store.ts @@ -1,5 +1,5 @@ +import type { UmbUniqueTreeItemModel } from '../types.js'; import type { UmbTreeStore } from './tree-store.interface.js'; -import type { UmbUniqueTreeItemModel } from './types.js'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts similarity index 54% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts index e76e3e2b01..1d5eafa6e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts @@ -1,47 +1,43 @@ -import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from './reload-tree-item-children/index.js'; -import type { UmbTreeItemModelBase } from './types.js'; -import type { UmbTreeRepository } from './tree-repository.interface.js'; +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '../reload-tree-item-children/index.js'; +import type { UmbTreeItemModelBase } from '../types.js'; +import type { UmbTreeRepository } from '../data/tree-repository.interface.js'; +import type { UmbTreeContext } from '../tree-context.interface.js'; import { type UmbActionEventContext, UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; -import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; import { type ManifestRepository, type ManifestTree, umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; +import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; -import type { ProblemDetails } from '@umbraco-cms/backoffice/external/backend-api'; -import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; +import { UmbPaginationManager, UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; import type { UmbEntityActionEvent } from '@umbraco-cms/backoffice/entity-action'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -// TODO: update interface -export interface UmbTreeContext extends UmbControllerBase { - selection: UmbSelectionManager; - requestChildrenOf: (parentUnique: string | null) => Promise<{ - data?: UmbPagedModel; - error?: ProblemDetails; - asObservable?: () => Observable; - }>; -} - -export class UmbTreeContextBase - extends UmbControllerBase - implements UmbTreeContext +export class UmbDefaultTreeContext + extends UmbContextBase> + implements UmbTreeContext { #treeRoot = new UmbObjectState(undefined); treeRoot = this.#treeRoot.asObservable(); - public repository?: UmbTreeRepository; public selectableFilter?: (item: TreeItemType) => boolean = () => true; public filter?: (item: TreeItemType) => boolean = () => true; public readonly selection = new UmbSelectionManager(this._host); + public readonly pagination = new UmbPaginationManager(); - #treeAlias?: string; + #manifest?: ManifestTree; + #repository?: UmbTreeRepository; #actionEventContext?: UmbActionEventContext; + #paging = { + skip: 0, + take: 50, + }; + #initResolver?: () => void; #initialized = false; @@ -50,9 +46,83 @@ export class UmbTreeContextBase }); constructor(host: UmbControllerHostElement) { - super(host); - this.provideContext('umbTreeContext', this); + super(host, UMB_DEFAULT_TREE_CONTEXT); + this.pagination.setPageSize(this.#paging.take); + this.#consumeContexts(); + // listen for page changes on the pagination manager + this.pagination.addEventListener(UmbChangeEvent.TYPE, this.#onPageChange); + this.requestTreeRoot(); + } + + // TODO: find a generic way to do this + #checkIfInitialized() { + if (this.#repository) { + this.#initialized = true; + this.#initResolver?.(); + } + } + + /** + * Sets the manifest + * @param {ManifestTree} manifest + * @memberof UmbDefaultTreeContext + */ + public set manifest(manifest: ManifestTree | undefined) { + if (this.#manifest === manifest) return; + this.#manifest = manifest; + this.#observeRepository(this.#manifest?.meta.repositoryAlias); + } + public get manifest() { + return this.#manifest; + } + + // TODO: getManifest, could be refactored to use the getter method [NL] + /** + * Returns the manifest. + * @return {ManifestTree} + * @memberof UmbDefaultTreeContext + */ + public getManifest() { + return this.#manifest; + } + + public getRepository() { + return this.#repository; + } + + public async requestTreeRoot() { + await this.#init; + const { data } = await this.#repository!.requestTreeRoot(); + + if (data) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + this.#treeRoot.setValue(data); + } + } + + public async requestRootItems() { + await this.#init; + + const { data, error, asObservable } = await this.#repository!.requestRootTreeItems({ + skip: this.#paging.skip, + take: this.#paging.take, + }); + + if (data) { + this.pagination.setTotalItems(data.total); + } + + return { data, error, asObservable }; + } + + public async rootItems() { + await this.#init; + return this.#repository!.rootTreeItems(); + } + + #consumeContexts() { this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { this.#actionEventContext = instance; this.#actionEventContext.removeEventListener( @@ -64,76 +134,15 @@ export class UmbTreeContextBase this.#onReloadRequest as EventListener, ); }); - - this.requestTreeRoot(); } - // TODO: find a generic way to do this - #checkIfInitialized() { - if (this.repository) { - this.#initialized = true; - this.#initResolver?.(); - } - } + #onPageChange = (event: UmbChangeEvent) => { + const target = event.target as UmbPaginationManager; + this.#paging.skip = target.getSkip(); + this.requestRootItems(); + }; - public async setTreeAlias(treeAlias?: string) { - if (this.#treeAlias === treeAlias) return; - this.#treeAlias = treeAlias; - - this.#observeTreeManifest(); - } - - public getTreeAlias() { - return this.#treeAlias; - } - - public async requestTreeRoot() { - await this.#init; - const { data } = await this.repository!.requestTreeRoot(); - - if (data) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - this.#treeRoot.setValue(data); - } - } - - public async requestRootItems() { - await this.#init; - return this.repository!.requestRootTreeItems(); - } - - public async requestChildrenOf(parentUnique: string | null) { - await this.#init; - if (parentUnique === undefined) throw new Error('Parent unique cannot be undefined.'); - return this.repository!.requestTreeItemsOf(parentUnique); - } - - public async rootItems() { - await this.#init; - return this.repository!.rootTreeItems(); - } - - public async childrenOf(parentUnique: string | null) { - await this.#init; - return this.repository!.treeItemsOf(parentUnique); - } - - #observeTreeManifest() { - if (this.#treeAlias) { - this.observe( - umbExtensionsRegistry.byTypeAndAlias('tree', this.#treeAlias), - async (treeManifest) => { - if (!treeManifest) return; - this.#observeRepository(treeManifest); - }, - '_observeTreeManifest', - ); - } - } - - #observeRepository(treeManifest: ManifestTree) { - const repositoryAlias = treeManifest.meta.repositoryAlias; + #observeRepository(repositoryAlias?: string) { if (!repositoryAlias) throw new Error('Tree must have a repository alias.'); new UmbExtensionApiInitializer>>( @@ -142,7 +151,7 @@ export class UmbTreeContextBase repositoryAlias, [this._host], (permitted, ctrl) => { - this.repository = permitted ? ctrl.api : undefined; + this.#repository = permitted ? ctrl.api : undefined; this.#checkIfInitialized(); }, ); @@ -167,3 +176,7 @@ export class UmbTreeContextBase super.destroy(); } } + +export default UmbDefaultTreeContext; + +export const UMB_DEFAULT_TREE_CONTEXT = new UmbContextToken>('UmbTreeContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.element.ts new file mode 100644 index 0000000000..07d1f88f76 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.element.ts @@ -0,0 +1,164 @@ +import type { UmbTreeItemModelBase, UmbTreeSelectionConfiguration } from '../types.js'; +import type { UmbDefaultTreeContext } from './default-tree.context.js'; +import { UMB_DEFAULT_TREE_CONTEXT } from './default-tree.context.js'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import { html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; + +@customElement('umb-default-tree') +export class UmbDefaultTreeElement extends UmbLitElement { + private _selectionConfiguration: UmbTreeSelectionConfiguration = { + multiple: false, + selectable: true, + selection: [], + }; + + @property({ type: Object, attribute: false }) + selectionConfiguration: UmbTreeSelectionConfiguration = this._selectionConfiguration; + + @property({ type: Boolean, attribute: false }) + hideTreeRoot: boolean = false; + + @property({ attribute: false }) + selectableFilter: (item: UmbTreeItemModelBase) => boolean = () => true; + + @property({ attribute: false }) + filter: (item: UmbTreeItemModelBase) => boolean = () => true; + + @state() + private _items: UmbTreeItemModelBase[] = []; + + @state() + private _treeRoot?: UmbTreeItemModelBase; + + @state() + private _currentPage = 1; + + @state() + private _totalPages = 1; + + #treeContext?: UmbDefaultTreeContext; + #init: Promise; + + constructor() { + super(); + + this.#init = Promise.all([ + // TODO: Notice this can be retrieve via a api property. [NL] + this.consumeContext(UMB_DEFAULT_TREE_CONTEXT, (instance) => { + this.#treeContext = instance; + + this.observe(this.#treeContext.pagination.currentPage, (value) => (this._currentPage = value)); + this.observe(this.#treeContext.pagination.totalPages, (value) => (this._totalPages = value)); + + this.#observeTreeRoot(); + }).asPromise(), + ]); + } + + protected async updated(_changedProperties: PropertyValueMap | Map): Promise { + super.updated(_changedProperties); + await this.#init; + + if (_changedProperties.has('selectionConfiguration')) { + this._selectionConfiguration = this.selectionConfiguration; + + this.#treeContext!.selection.setMultiple(this._selectionConfiguration.multiple ?? false); + this.#treeContext!.selection.setSelectable(this._selectionConfiguration.selectable ?? true); + this.#treeContext!.selection.setSelection(this._selectionConfiguration.selection ?? []); + } + + if (_changedProperties.has('hideTreeRoot')) { + if (this.hideTreeRoot === true) { + this.#observeRootItems(); + } + } + + if (_changedProperties.has('selectableFilter')) { + this.#treeContext!.selectableFilter = this.selectableFilter; + } + + if (_changedProperties.has('filter')) { + this.#treeContext!.filter = this.filter; + } + } + + #observeTreeRoot() { + if (!this.#treeContext) return; + this.observe( + this.#treeContext.treeRoot, + (treeRoot) => { + this._treeRoot = treeRoot; + }, + 'umbTreeRootObserver', + ); + } + + async #observeRootItems() { + await this.#init; + if (!this.#treeContext?.requestRootItems) throw new Error('Tree does not support root items'); + + const { asObservable } = await this.#treeContext.requestRootItems(); + + if (asObservable) { + this.observe( + asObservable(), + (rootItems) => { + const oldValue = this._items; + this._items = rootItems; + this.requestUpdate('_items', oldValue); + }, + 'umbRootItemsObserver', + ); + } + } + + getSelection() { + return this.#treeContext?.selection.getSelection(); + } + + render() { + return html` ${this.#renderTreeRoot()} ${this.#renderRootItems()}`; + } + + #renderTreeRoot() { + if (this.hideTreeRoot || this._treeRoot === undefined) return nothing; + return html` + + `; + } + + #renderRootItems() { + if (this._items?.length === 0) return nothing; + return html` + ${repeat( + this._items, + (item, index) => item.name + '___' + index, + (item) => html``, + )} + ${this.#renderPaging()} + `; + } + + #onLoadMoreClick = (event: any) => { + event.stopPropagation(); + const next = (this._currentPage = this._currentPage + 1); + this.#treeContext?.pagination.setCurrentPageNumber(next); + }; + + #renderPaging() { + if (this._totalPages <= 1 || this._currentPage === this._totalPages) { + return nothing; + } + + return html` `; + } +} + +export default UmbDefaultTreeElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-default-tree': UmbDefaultTreeElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/index.ts new file mode 100644 index 0000000000..b81a955993 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/index.ts @@ -0,0 +1,2 @@ +export { UmbDefaultTreeElement as UmbTreeDefaultElement } from './default-tree.element.js'; +export { UmbDefaultTreeContext as UmbTreeDefaultContext } from './default-tree.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/manifests.ts new file mode 100644 index 0000000000..d184b7952b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/manifests.ts @@ -0,0 +1,15 @@ +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +const defaultTreeKind: UmbBackofficeManifestKind = { + type: 'kind', + alias: 'Umb.Kind.Tree.Default', + matchKind: 'default', + matchType: 'tree', + manifest: { + type: 'tree', + api: () => import('./default-tree.context.js'), + element: () => import('./default-tree.element.js'), + }, +}; + +export const manifests = [defaultTreeKind]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts index d5b7efffb6..8a400bbbd5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts @@ -1,27 +1,19 @@ import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; -import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { type UmbFolderRepository, UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; export class UmbCreateFolderEntityAction extends UmbEntityActionBase { - #modalContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance; - }); - } - async execute() { - if (!this.repository || !this.#modalContext) return; + if (!this.repository) return; - const modalContext = this.#modalContext.open(UMB_FOLDER_CREATE_MODAL, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_FOLDER_CREATE_MODAL, { data: { folderRepositoryAlias: this.repositoryAlias, - parentUnique: this.unique ?? null, + parent: { + unique: this.unique, + entityType: this.entityType, + }, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts index ce2fcfc959..5cc02892d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts @@ -4,6 +4,7 @@ import type { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { async execute() { + if (!this.unique) throw new Error('Unique is not available'); if (!this.repository) return; const { data: folder } = await this.repository.request(this.unique); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts index 18863eb76b..01c7b92d98 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts @@ -1,26 +1,16 @@ import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; -import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { type UmbFolderRepository, UMB_FOLDER_UPDATE_MODAL } from '@umbraco-cms/backoffice/tree'; export class UmbFolderUpdateEntityAction< T extends UmbFolderRepository = UmbFolderRepository, > extends UmbEntityActionBase { - #modalContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance; - }); - } - async execute() { - if (!this.repository || !this.#modalContext) return; + if (!this.unique) throw new Error('Unique is not available'); + if (!this.repository) return; - const modalContext = this.#modalContext.open(UMB_FOLDER_UPDATE_MODAL, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_FOLDER_UPDATE_MODAL, { data: { folderRepositoryAlias: this.repositoryAlias, unique: this.unique, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts index 9b5763942b..0625ba878a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts @@ -1,5 +1,5 @@ -import type { DataSourceResponse, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; import type { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; +import type { UmbDataSourceResponse, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbFolderDataSourceConstructor { @@ -7,8 +7,8 @@ export interface UmbFolderDataSourceConstructor { } export interface UmbFolderDataSource { - create(args: UmbCreateFolderModel): Promise>; - read(unique: string): Promise>; - update(args: UmbUpdateFolderModel): Promise>; + create(args: UmbCreateFolderModel): Promise>; + read(unique: string): Promise>; + update(args: UmbUpdateFolderModel): Promise>; delete(unique: string): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index 579eac8541..8553197b4d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -11,6 +11,7 @@ import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; export type UmbFolderToTreeItemMapper = ( item: UmbFolderModel, + parentUnique: string | null, ) => FolderTreeItemType; export abstract class UmbFolderRepositoryBase @@ -44,13 +45,15 @@ export abstract class UmbFolderRepositoryBase>; - create(args: UmbCreateFolderModel): Promise>; - request(unique: string): Promise>; - update(args: UmbUpdateFolderModel): Promise>; + createScaffold(): Promise>; + create(args: UmbCreateFolderModel): Promise>; + request(unique: string): Promise>; + update(args: UmbUpdateFolderModel): Promise>; delete(unique: string): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts index dc5837920a..1ddac179c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts @@ -1,6 +1,11 @@ import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; import { customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbFolderCreateModalData, UmbFolderCreateModalValue, UmbFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { + UmbCreateFolderModel, + UmbFolderCreateModalData, + UmbFolderCreateModalValue, + UmbFolderModel, +} from '@umbraco-cms/backoffice/tree'; @customElement('umb-folder-create-modal') export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< @@ -17,9 +22,8 @@ export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< async init() { if (!this.folderRepository) throw new Error('A folder repository is required to create a folder'); - if (this.data?.parentUnique === undefined) throw new Error('A parent unique is required to create folder'); - const { data } = await this.folderRepository.createScaffold(this.data.parentUnique); + const { data } = await this.folderRepository.createScaffold(); if (data) { this._folderScaffold = data; @@ -29,13 +33,15 @@ export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< async onFormSubmit({ name }: { name: string }): Promise { if (!this.folderRepository) throw new Error('A folder repository is required to create a folder'); if (!this._folderScaffold) throw new Error('The folder scaffold was not initialized correctly'); + if (!this.data?.parent) throw new Error('A parent is required to create folder'); - const data = { + const createFolderModel: UmbCreateFolderModel = { ...this._folderScaffold, + parentUnique: this.data.parent.unique, name, }; - const { data: createdFolder } = await this.folderRepository.create(data); + const { data: createdFolder } = await this.folderRepository.create(createFolderModel); if (createdFolder) { this.value = { folder: createdFolder }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts index feb4db3518..898e51318a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts @@ -3,7 +3,10 @@ import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; export interface UmbFolderCreateModalData { folderRepositoryAlias: string; - parentUnique: string | null; + parent: { + unique: string | null; + entityType: string; + }; } export interface UmbFolderCreateModalValue { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts index fe3082d50f..7547074252 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts @@ -29,7 +29,9 @@ export abstract class UmbFolderModalElementBase< [this], (permitted, ctrl) => { this.folderRepository = permitted ? (ctrl.api as UmbFolderRepository) : undefined; - this.init(); + if (this.folderRepository) { + this.init(); + } }, ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts index dd8e80baff..444a600929 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts @@ -1,6 +1,5 @@ export interface UmbFolderModel { unique: string; - parentUnique: string | null; name: string; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts index 01d898642e..48f1346f9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts @@ -1,27 +1,14 @@ export * from './components/index.js'; -export * from './tree-item-default/index.js'; -export * from './tree-item-base/index.js'; +export * from './tree-item/index.js'; +export * from './default/index.js'; +export * from './data/index.js'; export * from './tree-menu-item-default/index.js'; -export * from './tree.context.js'; -export * from './tree.element.js'; -export * from './types.js'; -export * from './tree-repository.interface.js'; -export * from './tree-store.interface.js'; - -// Unique -export * from './unique-tree-store.js'; -export * from './unique-tree-item/index.js'; - -// Data Source -export * from './data-source/index.js'; - -// Folder export * from './folder/index.js'; +export * from './tree.element.js'; -// export { UmbReloadTreeItemChildrenEntityAction, UmbReloadTreeItemChildrenRequestEntityActionEvent, } from './reload-tree-item-children/index.js'; -export { UmbTreeRepositoryBase } from './tree-repository-base.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts index 8426073c94..199493e22d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts @@ -1,3 +1,11 @@ import { manifests as folderManifests } from './folder/manifests.js'; +import { manifests as defaultTreeItemManifests } from './tree-item/tree-item-default/manifests.js'; +import { manifests as defaultTreeManifests } from './default/manifests.js'; +import { manifests as treePickerManifests } from './tree-picker/manifests.js'; -export const manifests = [...folderManifests]; +export const manifests = [ + ...defaultTreeManifests, + ...folderManifests, + ...defaultTreeItemManifests, + ...treePickerManifests, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts index edaf6ef177..b686091710 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts @@ -1,13 +1,13 @@ -import type { UmbCopyDataTypeRepository } from '@umbraco-cms/backoffice/data-type'; import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from './reload-tree-item-children-request.event.js'; +import type { UmbCopyDataTypeRepository } from '@umbraco-cms/backoffice/data-type'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_ACTION_EVENT_CONTEXT, type UmbActionEventContext } from '@umbraco-cms/backoffice/action'; export class UmbReloadTreeItemChildrenEntityAction extends UmbEntityActionBase { #actionEventContext?: UmbActionEventContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + constructor(host: UmbControllerHost, repositoryAlias: string, unique: string | null, entityType: string) { super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-context.interface.ts new file mode 100644 index 0000000000..dfca3c3672 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-context.interface.ts @@ -0,0 +1,7 @@ +import type { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; +import type { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; + +// TODO: update interface +export interface UmbTreeContext extends UmbContextBase { + selection: UmbSelectionManager; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/index.ts deleted file mode 100644 index 8e2440f40d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './tree-item-base.context.js'; -export * from './tree-item-base.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts deleted file mode 100644 index c946750acb..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/web-components'; -import './tree-item-base.element.js'; -import type { UmbTreeItemBaseElement } from './tree-item-base.element.js'; - -// TODO: provide tree item context to make this element render properly -const meta: Meta = { - title: 'Components/Tree/Tree Item Default', - component: 'umb-tree-item-default', -}; - -export default meta; -type Story = StoryObj; - -export const Overview: Story = { - args: {}, -}; - -export const WithChildren: Story = { - args: {}, -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/index.ts deleted file mode 100644 index 1ee7965541..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './tree-item.context.interface.js'; -export * from './tree-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.element.ts deleted file mode 100644 index 9ae2c30f17..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.element.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { UmbTreeItemModelBase } from '../types.js'; -import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -@customElement('umb-tree-item-default') -export class UmbTreeItemDefaultElement extends UmbLitElement { - @property({ type: Object, attribute: false }) - item?: UmbTreeItemModelBase; - - render() { - if (!this.item) return nothing; - return html` manifests.meta.entityTypes.includes(this.item!.entityType)} - .props=${{ - item: this.item, - }}>`; - } - - static styles = [ - UmbTextStyles, - css` - :host { - display: block; - } - `, - ]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-tree-item-default': UmbTreeItemDefaultElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/index.ts new file mode 100644 index 0000000000..3a28d10485 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/index.ts @@ -0,0 +1,4 @@ +export * from './tree-item-context.interface.js'; +export * from './tree-item.element.js'; +export * from './tree-item-default/index.js'; +export * from './tree-item-base/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/index.ts new file mode 100644 index 0000000000..c32ffc8077 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/index.ts @@ -0,0 +1,2 @@ +export * from './tree-item-context-base.js'; +export * from './tree-item-element-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts similarity index 71% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts index c2586c7d4d..13ff962fac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts @@ -1,28 +1,34 @@ -import type { UmbTreeItemContext } from '../tree-item-default/tree-item.context.interface.js'; -import type { UmbTreeContextBase } from '../tree.context.js'; -import type { UmbTreeItemModelBase } from '../types.js'; -import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '../reload-tree-item-children/index.js'; +import type { UmbTreeItemContext } from '../tree-item-context.interface.js'; +import { UMB_DEFAULT_TREE_CONTEXT, type UmbDefaultTreeContext } from '../../default/default-tree.context.js'; +import type { UmbTreeItemModelBase } from '../../types.js'; +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '../../reload-tree-item-children/index.js'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_SECTION_CONTEXT, UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; import type { UmbSectionContext, UmbSectionSidebarContext } from '@umbraco-cms/backoffice/section'; +import type { ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbBooleanState, UmbDeepState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; +import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UMB_ACTION_EVENT_CONTEXT, type UmbActionEventContext } from '@umbraco-cms/backoffice/action'; import type { UmbEntityActionEvent } from '@umbraco-cms/backoffice/entity-action'; +import { UmbPaginationManager } from '@umbraco-cms/backoffice/utils'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; export type UmbTreeItemUniqueFunction = ( x: TreeItemType, ) => string | null | undefined; -export class UmbTreeItemContextBase - extends UmbControllerBase +export abstract class UmbTreeItemContextBase + extends UmbContextBase> implements UmbTreeItemContext { public unique?: string | null; public entityType?: string; + public readonly pagination = new UmbPaginationManager(); + + #manifest?: ManifestTreeItem; #treeItem = new UmbDeepState(undefined); treeItem = this.#treeItem.asObservable(); @@ -52,17 +58,49 @@ export class UmbTreeItemContextBase #path = new UmbStringState(''); path = this.#path.asObservable(); - treeContext?: UmbTreeContextBase; + treeContext?: UmbDefaultTreeContext; #sectionContext?: UmbSectionContext; #sectionSidebarContext?: UmbSectionSidebarContext; #actionEventContext?: UmbActionEventContext; #getUniqueFunction: UmbTreeItemUniqueFunction; + // TODO: get this from the tree context + #paging = { + skip: 0, + take: 50, + }; + constructor(host: UmbControllerHost, getUniqueFunction: UmbTreeItemUniqueFunction) { - super(host); + super(host, UMB_TREE_ITEM_CONTEXT); + this.pagination.setPageSize(this.#paging.take); this.#getUniqueFunction = getUniqueFunction; this.#consumeContexts(); - this.provideContext(UMB_TREE_ITEM_CONTEXT, this); + + // listen for page changes on the pagination manager + this.pagination.addEventListener(UmbChangeEvent.TYPE, this.#onPageChange); + } + + /** + * Sets the manifest + * @param {ManifestCollection} manifest + * @memberof UmbCollectionContext + */ + public set manifest(manifest: ManifestTreeItem | undefined) { + if (this.#manifest === manifest) return; + this.#manifest = manifest; + } + public get manifest() { + return this.#manifest; + } + + // TODO: Be aware that this method, could be removed and we can use the getter method instead [NL] + /** + * Returns the manifest. + * @return {ManifestCollection} + * @memberof UmbCollectionContext + */ + public getManifest() { + return this.#manifest; } public setTreeItem(treeItem: TreeItemType | undefined) { @@ -87,16 +125,29 @@ export class UmbTreeItemContextBase this.#observeIsSelectable(); this.#observeIsSelected(); this.#observeSectionPath(); + this.#hasChildrenInitValueFlag = false; + this.#observeHasChildren(); } public async requestChildren() { if (this.unique === undefined) throw new Error('Could not request children, unique key is missing'); - // TODO: wait for tree context to be ready + const repository = this.treeContext?.getRepository(); + if (!repository) throw new Error('Could not request children, repository is missing'); + this.#isLoading.setValue(true); - const response = await this.treeContext!.requestChildrenOf(this.unique); + const { data, error, asObservable } = await repository.requestTreeItemsOf({ + parentUnique: this.unique, + skip: this.#paging.skip, + take: this.#paging.take, + }); + + if (data) { + this.pagination.setTotalItems(data.total); + } + this.#isLoading.setValue(false); - return response; + return { data, error, asObservable }; } public toggleContextMenu() { @@ -127,10 +178,11 @@ export class UmbTreeItemContextBase this.#sectionSidebarContext = instance; }); - this.consumeContext('umbTreeContext', (treeContext: UmbTreeContextBase) => { + this.consumeContext(UMB_DEFAULT_TREE_CONTEXT, (treeContext: UmbDefaultTreeContext) => { this.treeContext = treeContext; this.#observeIsSelectable(); this.#observeIsSelected(); + this.#hasChildrenInitValueFlag = false; this.#observeHasChildren(); }); @@ -209,12 +261,18 @@ export class UmbTreeItemContextBase async #observeHasChildren() { if (!this.treeContext || !this.unique) return; - const observable = await this.treeContext.childrenOf(this.unique); + const repository = this.treeContext.getRepository(); + if (!repository) return; + + // TODO: use createObservablePart, to prevent unnesecary changes. + const hasChildrenObservable = (await repository.treeItemsOf(this.unique)).pipe( + map((children) => children.length > 0), + ); // observe if any children will be added runtime to a tree item. Nested items/folders etc. - this.observe(observable.pipe(map((children) => children.length > 0)), (hasChildren) => { - // we need to skip the first value, because it will also return false until a child is in the store - // we therefor rely on the value from the tree item itself + this.observe(hasChildrenObservable, (hasChildren) => { + /* we need to skip the first value, because it will also return false until a child is in the store + we therefor rely on the value from the tree item itself */ if (this.#hasChildrenInitValueFlag === true) { this.#hasChildren.setValue(hasChildren); } @@ -230,6 +288,12 @@ export class UmbTreeItemContextBase this.requestChildren(); }; + #onPageChange = (event: UmbChangeEvent) => { + const target = event.target as UmbPaginationManager; + this.#paging.skip = target.getSkip(); + this.requestChildren(); + }; + // TODO: use router context constructPath(pathname: string, entityType: string, unique: string | null) { return `section/${pathname}/workspace/${entityType}/edit/${unique}`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts similarity index 66% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts index 93abc8b2ac..5e64919b39 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts @@ -1,16 +1,23 @@ -import type { UmbTreeItemContext } from '../tree-item-default/index.js'; -import type { UmbTreeItemModelBase } from '../types.js'; -import { UMB_TREE_ITEM_CONTEXT } from './tree-item-base.context.js'; -import { html, nothing, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbTreeItemContext } from '../index.js'; +import type { UmbTreeItemModelBase } from '../../types.js'; +import { UMB_TREE_ITEM_CONTEXT } from './tree-item-context-base.js'; +import { html, nothing, state, ifDefined, repeat, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -@customElement('umb-tree-item-base') -export class UmbTreeItemBaseElement extends UmbLitElement { - @state() - private _item?: UmbTreeItemModelBase; +// eslint-disable-next-line local-rules/enforce-element-suffix-on-element-class-name +export abstract class UmbTreeItemElementBase extends UmbLitElement { + _item?: TreeItemModelType; + @property({ type: Object, attribute: false }) + get item(): TreeItemModelType | undefined { + return this._item; + } + set item(newVal: TreeItemModelType) { + this._item = newVal; + this.#initTreeItem(); + } @state() - private _childItems?: UmbTreeItemModelBase[]; + private _childItems?: TreeItemModelType[]; @state() private _href?: string; @@ -33,14 +40,24 @@ export class UmbTreeItemBaseElement extends UmbLitElement { @state() private _iconSlotHasChildren = false; - #treeItemContext?: UmbTreeItemContext; + @state() + private _totalPages = 1; + + @state() + private _currentPage = 1; + + #treeItemContext?: UmbTreeItemContext; constructor() { super(); + // TODO: Notice this can be retrieve via a api property. [NL] this.consumeContext(UMB_TREE_ITEM_CONTEXT, (instance) => { this.#treeItemContext = instance; if (!this.#treeItemContext) return; + + this.#initTreeItem(); + // TODO: investigate if we can make an observe decorator this.observe(this.#treeItemContext.treeItem, (value) => (this._item = value)); this.observe(this.#treeItemContext.hasChildren, (value) => (this._hasChildren = value)); @@ -49,9 +66,17 @@ export class UmbTreeItemBaseElement extends UmbLitElement { this.observe(this.#treeItemContext.isSelectable, (value) => (this._isSelectable = value)); this.observe(this.#treeItemContext.isSelected, (value) => (this._isSelected = value)); this.observe(this.#treeItemContext.path, (value) => (this._href = value)); + this.observe(this.#treeItemContext.pagination.currentPage, (value) => (this._currentPage = value)); + this.observe(this.#treeItemContext.pagination.totalPages, (value) => (this._totalPages = value)); }); } + #initTreeItem() { + if (!this.#treeItemContext) return; + if (!this._item) return; + this.#treeItemContext.setTreeItem(this._item); + } + private _handleSelectedItem(event: Event) { event.stopPropagation(); this.#treeItemContext?.select(); @@ -81,9 +106,11 @@ export class UmbTreeItemBaseElement extends UmbLitElement { }); } - private _openActions() { - this.#treeItemContext?.toggleContextMenu(); - } + #onLoadMoreClick = (event: any) => { + event.stopPropagation(); + const next = (this._currentPage = this._currentPage + 1); + this.#treeItemContext?.pagination.setCurrentPageNumber(next); + }; // Note: Currently we want to prevent opening when the item is in a selectable context, but this might change in the future. // If we like to be able to open items in selectable context, then we might want to make it as a menu item action, so you have to click ... and chose an action called 'Edit' @@ -100,8 +127,9 @@ export class UmbTreeItemBaseElement extends UmbLitElement { .hasChildren=${this._hasChildren} label="${ifDefined(this._item?.name)}" href="${ifDefined(this._isSelectableContext ? undefined : this._href)}"> - ${this.#renderIconContainer()} ${this.#renderLabel()} ${this.#renderActions()} ${this.#renderChildItems()} + ${this.renderIconContainer()} ${this.renderLabel()} ${this.#renderActions()} ${this.#renderChildItems()} + ${this.#renderPaging()} `; } @@ -110,7 +138,7 @@ export class UmbTreeItemBaseElement extends UmbLitElement { return (e.target as HTMLSlotElement).assignedNodes({ flatten: true }).length > 0; }; - #renderIconContainer() { + renderIconContainer() { return html` `; } - #renderLabel() { + renderLabel() { return html``; } @@ -157,17 +185,18 @@ export class UmbTreeItemBaseElement extends UmbLitElement { ${this._childItems ? repeat( this._childItems, - // TODO: get unique here instead of name. we might be able to get it from the context - (item) => item.name, - (item) => html``, + (item, index) => item.name + '___' + index, + (item) => html``, ) : ''} `; } -} -declare global { - interface HTMLElementTagNameMap { - 'umb-tree-item-base': UmbTreeItemBaseElement; + #renderPaging() { + if (this._totalPages <= 1 || this._currentPage === this._totalPages) { + return nothing; + } + + return html` `; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-context.interface.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-context.interface.ts index a75249bf0a..8ae64f95df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-context.interface.ts @@ -1,9 +1,11 @@ import type { UmbTreeItemModelBase } from '../types.js'; +import type { UmbPaginationManager } from '../../utils/pagination-manager/pagination.manager.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ProblemDetails } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export interface UmbTreeItemContext { +export interface UmbTreeItemContext extends UmbApi { unique?: string | null; entityType?: string; treeItem: Observable; @@ -15,7 +17,7 @@ export interface UmbTreeItemContext { isActive: Observable; hasActions: Observable; path: Observable; - + pagination: UmbPaginationManager; setTreeItem(treeItem: TreeItemType | undefined): void; requestChildren(): Promise<{ data?: UmbPagedModel | undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/index.ts new file mode 100644 index 0000000000..4ff8f02b95 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/index.ts @@ -0,0 +1,2 @@ +export * from './tree-item-default.context.js'; +export * from './tree-item-default.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/manifests.ts new file mode 100644 index 0000000000..c12ffa730c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/manifests.ts @@ -0,0 +1,15 @@ +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +const kind: UmbBackofficeManifestKind = { + type: 'kind', + alias: 'Umb.Kind.TreeItem.Default', + matchKind: 'default', + matchType: 'treeItem', + manifest: { + type: 'treeItem', + api: () => import('./tree-item-default.context.js'), + element: () => import('./tree-item-default.element.js'), + }, +}; + +export const manifests = [kind]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/tree-item-default.context.ts similarity index 57% rename from src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/tree-item-default.context.ts index 830384a3b3..04021f3c1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/tree-item-default.context.ts @@ -1,11 +1,13 @@ -import { UmbTreeItemContextBase } from '../tree-item-base/tree-item-base.context.js'; -import type { UmbUniqueTreeItemModel } from '../types.js'; +import { UmbTreeItemContextBase } from '../tree-item-base/index.js'; +import type { UmbUniqueTreeItemModel } from '../../types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -export class UmbUniqueTreeItemContext< +export class UmbDefaultTreeItemContext< TreeItemModelType extends UmbUniqueTreeItemModel, > extends UmbTreeItemContextBase { constructor(host: UmbControllerHost) { super(host, (x: UmbUniqueTreeItemModel) => x.unique); } } + +export default UmbDefaultTreeItemContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/tree-item-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/tree-item-default.element.ts new file mode 100644 index 0000000000..f512cc5f2c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-default/tree-item-default.element.ts @@ -0,0 +1,14 @@ +import { UmbTreeItemElementBase } from '../tree-item-base/index.js'; +import type { UmbUniqueTreeItemModel } from '../../types.js'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; + +@customElement('umb-default-tree-item') +export class UmbDefaultTreeItemElement extends UmbTreeItemElementBase {} + +export default UmbDefaultTreeItemElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-default-tree-item': UmbDefaultTreeItemElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts new file mode 100644 index 0000000000..43ffdd96f4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts @@ -0,0 +1,56 @@ +import { customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import type { ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; +import { + UmbExtensionElementAndApiSlotElementBase, + umbExtensionsRegistry, +} from '@umbraco-cms/backoffice/extension-registry'; +import { createObservablePart } from '@umbraco-cms/backoffice/observable-api'; + +@customElement('umb-tree-item') +export class UmbTreeItemElement extends UmbExtensionElementAndApiSlotElementBase { + _entityType?: string; + @property({ type: String, reflect: true }) + get entityType() { + return this._entityType; + } + set entityType(newVal) { + this._entityType = newVal; + this.#observeEntityType(); + } + + #observeEntityType() { + if (!this._entityType) return; + + const filterByEntityType = (manifest: ManifestTreeItem) => { + if (!this._entityType) return false; + return manifest.meta.entityTypes.includes(this._entityType); + }; + + this.observe( + // TODO: what should we do if there are multiple tree items for an entity type? + // This method gets all extensions based on a type, then filters them based on the entity type. and then we get the alias of the first one [NL] + createObservablePart( + umbExtensionsRegistry.byTypeAndFilter(this.getExtensionType(), filterByEntityType), + (x) => x[0].alias, + ), + (alias) => { + this.alias = alias; + }, + 'umbObserveAlias', + ); + } + + getExtensionType() { + return 'treeItem'; + } + + getDefaultElementName() { + return 'umb-default-tree-item'; + } +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-tree-item': UmbTreeItemElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts index 8478ba005d..01d57bc565 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts @@ -30,7 +30,13 @@ export class UmbMenuItemTreeDefaultElement extends UmbLitElement implements UmbM ? html` + .props=${{ + hideTreeRoot: this.manifest?.meta.hideTreeRoot === true, + selectionConfiguration: { + selectable: false, + multiple: false, + }, + }}> ` : nothing; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker/manifests.ts new file mode 100644 index 0000000000..8bbb3ffe7d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker/manifests.ts @@ -0,0 +1,8 @@ +export const manifests = [ + { + type: 'modal', + alias: 'Umb.Modal.TreePicker', + name: 'Tree Picker Modal', + js: () => import('./tree-picker-modal.element.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker/tree-picker-modal.element.ts similarity index 84% rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker/tree-picker-modal.element.ts index d0f3fb25d0..da3a4232e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker/tree-picker-modal.element.ts @@ -1,8 +1,9 @@ +import type { UmbTreeSelectionConfiguration } from '../types.js'; import { html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { UmbTreePickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbDeselectedEvent, UmbSelectedEvent, UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; -import type { UmbTreeElement, UmbTreeItemModelBase, UmbTreeSelectionConfiguration } from '@umbraco-cms/backoffice/tree'; +import type { UmbTreeElement, UmbTreeItemModelBase } from '@umbraco-cms/backoffice/tree'; @customElement('umb-tree-picker-modal') export class UmbTreePickerModalElement extends UmbModalBaseElement< @@ -51,14 +52,16 @@ export class UmbTreePickerModalElement + @deselected=${this.#onDeselected}>
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts index d62ad4de7b..6eb0e6ee57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts @@ -1,139 +1,22 @@ -import { UmbTreeContextBase } from './tree.context.js'; -import type { UmbTreeItemModelBase } from './types.js'; -import { html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; - -import './tree-item-default/tree-item.element.js'; -import './tree-item-base/tree-item-base.element.js'; - -export type UmbTreeSelectionConfiguration = { - multiple?: boolean; - selectable?: boolean; - selection?: Array; -}; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { ManifestTree } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbExtensionElementAndApiSlotElementBase } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-tree') -export class UmbTreeElement extends UmbLitElement { - @property({ type: String, reflect: true }) - set alias(newVal) { - this.#treeContext.setTreeAlias(newVal); - } - get alias() { - return this.#treeContext.getTreeAlias(); +export class UmbTreeElement extends UmbExtensionElementAndApiSlotElementBase { + getExtensionType() { + return 'tree'; } - private _selectionConfiguration: UmbTreeSelectionConfiguration = { - multiple: false, - selectable: true, - selection: [], - }; - - @property({ type: Object }) - set selectionConfiguration(config: UmbTreeSelectionConfiguration) { - this._selectionConfiguration = config; - this.#treeContext.selection.setMultiple(config.multiple ?? false); - this.#treeContext.selection.setSelectable(config.selectable ?? true); - this.#treeContext.selection.setSelection(config.selection ?? []); - } - get selectionConfiguration(): UmbTreeSelectionConfiguration { - return this._selectionConfiguration; - } - - // TODO: what is the best name for this functionality? - private _hideTreeRoot = false; - @property({ type: Boolean, attribute: 'hide-tree-root' }) - set hideTreeRoot(newVal: boolean) { - const oldVal = this._hideTreeRoot; - this._hideTreeRoot = newVal; - if (newVal === true) { - this.#observeRootItems(); - } - - this.requestUpdate('hideTreeRoot', oldVal); - } - get hideTreeRoot() { - return this._hideTreeRoot; - } - - @property() - set selectableFilter(newVal) { - this.#treeContext.selectableFilter = newVal; - } - get selectableFilter() { - return this.#treeContext.selectableFilter; - } - - @property() - set filter(newVal) { - this.#treeContext.filter = newVal; - } - get filter() { - return this.#treeContext.filter; - } - - @state() - private _items: UmbTreeItemModelBase[] = []; - - @state() - private _treeRoot?: UmbTreeItemModelBase; - - #treeContext = new UmbTreeContextBase(this); - #rootItemsObserver?: UmbObserverController>; - - constructor() { - super(); - this.#observeTreeRoot(); - } - - #observeTreeRoot() { - this.observe( - this.#treeContext.treeRoot, - (treeRoot) => { - this._treeRoot = treeRoot; - }, - 'umbTreeRootObserver', - ); - } - - async #observeRootItems() { - if (!this.#treeContext?.requestRootItems) throw new Error('Tree does not support root items'); - this.#rootItemsObserver?.destroy(); - - const { asObservable } = await this.#treeContext.requestRootItems(); - - if (asObservable) { - this.#rootItemsObserver = this.observe(asObservable(), (rootItems) => { - const oldValue = this._items; - this._items = rootItems; - this.requestUpdate('_items', oldValue); - }); - } + getDefaultElementName() { + return 'umb-default-tree'; } getSelection() { - return this.#treeContext.selection.getSelection(); - } - - render() { - return html` ${this.#renderTreeRoot()} ${this.#renderRootItems()}`; - } - - #renderTreeRoot() { - if (this.hideTreeRoot || this._treeRoot === undefined) return nothing; - return html` `; - } - - #renderRootItems() { - if (this._items?.length === 0) return nothing; - return html` - ${repeat( - this._items, - // TODO: use unique here: - (item, index) => item.name + '___' + index, - (item) => html``, - )} - `; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: make base interface for a tree element + return this._element?.getSelection?.() ?? []; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts index a09b75ff64..2e81b4daeb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from '@storybook/web-components'; -import './tree.element.js'; +import './default/default-tree.element.js'; import type { UmbTreeElement } from './tree.element.js'; const meta: Meta = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/types.ts index 81920d665f..8ca974ed9d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/types.ts @@ -14,3 +14,9 @@ export interface UmbUniqueTreeItemModel extends UmbTreeItemModelBase { export interface UmbUniqueTreeRootModel extends UmbTreeItemModelBase { unique: null; } + +export type UmbTreeSelectionConfiguration = { + multiple?: boolean; + selectable?: boolean; + selection?: Array; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/index.ts deleted file mode 100644 index 12e991943d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './unique-tree-item.context.js'; -export * from './unique-tree-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts deleted file mode 100644 index eabd7b456c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { UmbUniqueTreeItemModel } from '../types.js'; -import { UmbUniqueTreeItemContext } from './unique-tree-item.context.js'; -import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbBackofficeManifestKind, UmbTreeItemElement } from '@umbraco-cms/backoffice/extension-registry'; -import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; - -// TODO: Move to separate file: -const manifest: UmbBackofficeManifestKind = { - type: 'kind', - alias: 'Umb.Kind.UniqueTreeItem', - matchKind: 'unique', - matchType: 'treeItem', - manifest: { - type: 'treeItem', - elementName: 'umb-unique-tree-item', - }, -}; -umbExtensionsRegistry.register(manifest); - -@customElement('umb-unique-tree-item') -export class UmbUniqueTreeItemElement extends UmbLitElement implements UmbTreeItemElement { - private _item?: UmbUniqueTreeItemModel; - @property({ type: Object, attribute: false }) - public get item() { - return this._item; - } - public set item(value: UmbUniqueTreeItemModel | undefined) { - this._item = value; - this.#context.setTreeItem(value); - } - - #context = new UmbUniqueTreeItemContext(this); - - render() { - if (!this.item) return nothing; - return html``; - } -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-unique-tree-item': UmbUniqueTreeItemElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.ts index 148e6850fa..369cc39820 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/pagination-manager/pagination.manager.ts @@ -8,7 +8,7 @@ export class UmbPaginationManager extends EventTarget { #totalItems = new UmbNumberState(0); public readonly totalItems = this.#totalItems.asObservable(); - #totalPages = new UmbNumberState(0); + #totalPages = new UmbNumberState(1); public readonly totalPages = this.#totalPages.asObservable(); #currentPage = new UmbNumberState(1); @@ -106,7 +106,8 @@ export class UmbPaginationManager extends EventTarget { * @memberof UmbPaginationManager */ #calculateTotalPages() { - const totalPages = Math.ceil(this.#totalItems.getValue() / this.#pageSize.getValue()); + let totalPages = Math.ceil(this.#totalItems.getValue() / this.#pageSize.getValue()); + totalPages = totalPages === 0 ? 1 : totalPages; this.#totalPages.setValue(totalPages); /* If we currently are on a page higher than the total pages. We need to reset the current page to the last page. @@ -117,7 +118,7 @@ export class UmbPaginationManager extends EventTarget { } #calculateSkip() { - const skip = (this.#currentPage.getValue() - 1) * this.#pageSize.getValue(); + const skip = Math.max(0, (this.#currentPage.getValue() - 1) * this.#pageSize.getValue()); this.#skip.setValue(skip); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/variant/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/variant/types.ts index ee32d57e86..13b41b3079 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/variant/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/variant/types.ts @@ -15,4 +15,6 @@ export interface UmbVariantOptionModel { this._variants = options.map((option) => { const name = option.variant?.name ?? option.language.name; - const segment = option.variant?.segment ?? null; + const segment = option.segment; return { // Notice the option object has a unique property, but it's not used here. (Its equivalent to a UmbVariantId string) [NL] - culture: option.language.unique, - segment: segment, + culture: option.culture, + segment: segment ?? null, title: name + (segment ? ` — ${segment}` : ''), displayName: name + (segment ? ` — ${segment}` : ''), state: option.variant?.state ?? DocumentVariantStateModel.NOT_CREATED, @@ -143,7 +143,7 @@ export class UmbVariantSelectorElement extends UmbLitElement { const languageName = option?.language.name; this._variantDisplayName = (languageName ? languageName : '') + (segment ? ` — ${segment}` : ''); this._variantTitleName = - (languageName ? `${languageName} (${culture})` : '') + (segment ? ` — ${segment}` : ''); + (languageName ? `${languageName} ${culture ? `(${culture})` : ''}` : '') + (segment ? ` — ${segment}` : ''); }, '_currentLanguage', ); @@ -201,7 +201,12 @@ export class UmbVariantSelectorElement extends UmbLitElement { render() { return html` - + ${ this._variants?.length ? html` @@ -246,8 +251,8 @@ export class UmbVariantSelectorElement extends UmbLitElement { ? html`` : nothing}
- ${variant.title} - (${variant.culture}) ${variant.segment} + ${variant.title} ${variant.culture ? html` (${variant.culture})` : ''} + ${variant.segment}
${variant.state}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts index 840765e937..88b284ede4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts @@ -21,6 +21,9 @@ export class UmbWorkspaceSplitViewElement extends UmbLitElement { public set splitViewIndex(index: number) { this.splitViewContext.setSplitViewIndex(index); } + public get splitViewIndex(): number { + return this.splitViewContext.getSplitViewIndex()!; + } splitViewContext = new UmbWorkspaceSplitViewContext(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index 9c3d9f74be..3aab9c5b0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -46,13 +46,12 @@ export abstract class UmbEditableWorkspaceContextBase this.#isNew.setValue(isNew); } - protected saveComplete(data: WorkspaceDataModelType) { + protected workspaceComplete(data: WorkspaceDataModelType | undefined) { if (this.modalContext) { - this.modalContext?.setValue(data); + if (data) { + this.modalContext?.setValue(data); + } this.modalContext?.submit(); - } else { - // No need to have UI changing to "not new" if we are in a modal. - this.setIsNew(false); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts index e8bd5cb161..dd2e5889e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/components/data-type-flow-input/data-type-flow-input.element.ts @@ -27,9 +27,6 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { * @default [] */ @property({ type: String, attribute: false }) - get value(): string { - return super.value?.toString() ?? ''; - } set value(dataTypeId: string) { super.value = dataTypeId ?? ''; this._ids = super.value @@ -37,6 +34,9 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { .map((tag) => tag.trim()) .filter((id) => id.length !== 0); } + get value(): string { + return super.value?.toString() ?? ''; + } #editDataTypeModal?: UmbModalRouteRegistrationController; diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/copy.action.ts index c819029c7b..73de074ea0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/copy/copy.action.ts @@ -1,30 +1,15 @@ import type { UmbCopyDataTypeRepository } from '../../repository/copy/data-type-copy.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_MODAL_MANAGER_CONTEXT, - UMB_DATA_TYPE_PICKER_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_DATA_TYPE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; // TODO: investigate what we need to make a generic copy action export class UmbCopyDataTypeEntityAction extends UmbEntityActionBase { - #modalManagerContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalManagerContext = instance; - }); - } - async execute() { - if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); + if (!this.unique) throw new Error('Unique is not available'); if (!this.repository) throw new Error('Repository is not available'); - const modalContext = this.#modalManagerContext?.open(UMB_DATA_TYPE_PICKER_MODAL); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_DATA_TYPE_PICKER_MODAL); const value = await modalContext.onSubmit(); if (!value) return; await this.repository.copy(this.unique, value.selection[0]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/create.action.ts index 595b2f3843..7c68955275 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/create.action.ts @@ -1,29 +1,22 @@ import type { UmbDataTypeDetailRepository } from '../../repository/detail/data-type-detail.repository.js'; import { UMB_DATA_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { - #modalManagerContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalManagerContext = instance; - }); - } - async execute() { - if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); if (!this.repository) throw new Error('Repository is not available'); - this.#modalManagerContext?.open(UMB_DATA_TYPE_CREATE_OPTIONS_MODAL, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_DATA_TYPE_CREATE_OPTIONS_MODAL, { data: { - parentUnique: this.unique, + parent: { + entityType: this.entityType, + unique: this.unique, + }, }, }); + + await modalContext.onSubmit(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index ba84b5bd0c..e914585176 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -1,47 +1,38 @@ import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; import type { UmbDataTypeCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { - type UmbModalManagerContext, - UmbModalBaseElement, - UMB_MODAL_MANAGER_CONTEXT, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; @customElement('umb-data-type-create-options-modal') export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement { - #modalContext?: UmbModalManagerContext; - - constructor() { - super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance; - }); - } - - #onClick(event: PointerEvent) { + async #onClick(event: PointerEvent) { event.stopPropagation(); - if (this.data?.parentUnique === undefined) throw new Error('A parent unique is required to create a folder'); + if (!this.data?.parent) throw new Error('A parent is required to create a folder'); - const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_CREATE_MODAL, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const folderModalHandler = modalManager.open(this, UMB_FOLDER_CREATE_MODAL, { data: { folderRepositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, - parentUnique: this.data.parentUnique, + parent: this.data.parent, }, }); folderModalHandler?.onSubmit().then(() => this._submitModal()); } + #getCreateHref() { + return `section/settings/workspace/data-type/create/parent/${this.data?.parent.entityType}/${ + this.data?.parent.unique || 'null' + }`; + } + render() { return html` - + diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/index.ts index b7ed7d8376..acf6c03d35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/modal/index.ts @@ -1,7 +1,10 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbDataTypeCreateOptionsModalData { - parentUnique: string | null; + parent: { + entityType: string; + unique: string | null; + }; } export const UMB_DATA_TYPE_CREATE_OPTIONS_MODAL = new UmbModalToken( diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/move.action.ts index 13a39b618a..64cccb084c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/move/move.action.ts @@ -1,30 +1,15 @@ import type { UmbMoveDataTypeRepository } from '../../repository/move/data-type-move.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_MODAL_MANAGER_CONTEXT, - UMB_DATA_TYPE_PICKER_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_DATA_TYPE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; // TODO: investigate what we need to make a generic move action export class UmbMoveDataTypeEntityAction extends UmbEntityActionBase { - #modalManagerContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalManagerContext = instance; - }); - } - async execute() { - if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); + if (!this.unique) throw new Error('Unique is not available'); if (!this.repository) throw new Error('Repository is not available'); - const modalContext = this.#modalManagerContext?.open(UMB_DATA_TYPE_PICKER_MODAL); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_DATA_TYPE_PICKER_MODAL); const { selection } = await modalContext.onSubmit(); await this.repository.move(this.unique, selection[0]); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts index eb853a72f4..74f7d98e5e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts @@ -38,7 +38,7 @@ export class UmbDataTypePickerFlowDataTypePickerModalElement extends UmbModalBas // TODO: This is a hack to get the data types of a property editor ui alias. // TODO: Make sure filtering works data-type that does not have a property editor ui, but should be using the default property editor UI for those. // TODO: make an end-point just retrieving the data types using a given property editor ui alias. - const { data } = await dataTypeTreeRepository.requestRootTreeItems(); + const { data } = await dataTypeTreeRepository.requestRootTreeItems({ skip: 0, take: 100 }); if (!data) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts index a64a3a63d5..e66c9a729c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts @@ -98,7 +98,7 @@ export class UmbDataTypePickerFlowModalElement extends UmbModalBaseElement< async #init() { // TODO: Get ALL items, or traverse the structure aka. multiple recursive calls. this.observe( - (await this.#treeRepository.requestRootTreeItems()).asObservable(), + (await this.#treeRepository.requestRootTreeItems({ skip: 0, take: 100 })).asObservable(), (items) => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.server.data-source.ts index 9b426af2d8..343901d3a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/repository/detail/data-type-detail.server.data-source.ts @@ -31,15 +31,15 @@ export class UmbDataTypeServerDataSource implements UmbDetailDataSource = {}) { const data: UmbDataTypeDetailModel = { entityType: UMB_DATA_TYPE_ENTITY_TYPE, unique: UmbId.new(), - parentUnique, name: '', editorAlias: undefined, editorUiAlias: null, values: [], + ...preset, }; return { data }; @@ -64,7 +64,6 @@ export class UmbDataTypeServerDataSource implements UmbDetailDataSource DataTypeResource.getTreeDataTypeRoot({}); +const getRootItems = (args: UmbTreeRootItemsRequestArgs) => + // eslint-disable-next-line local-rules/no-direct-api-import + DataTypeResource.getTreeDataTypeRoot({ skip: args.skip, take: args.take }); -const getChildrenOf = (parentUnique: string | null) => { - if (parentUnique === null) { - return getRootItems(); +const getChildrenOf = (args: UmbTreeChildrenOfRequestArgs) => { + if (args.parentUnique === null) { + return getRootItems(args); } else { // eslint-disable-next-line local-rules/no-direct-api-import return DataTypeResource.getTreeDataTypeChildren({ - parentId: parentUnique, + parentId: args.parentUnique, }); } }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.store.ts index b3647216a1..e6febc1a44 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.store.ts @@ -1,8 +1,8 @@ -import { UmbStoreConnector } from '../../core/store/store-connector.js'; -import { UmbUniqueTreeStore } from '../../core/tree/unique-tree-store.js'; -import { UMB_DATA_TYPE_DETAIL_STORE_CONTEXT } from '../repository/detail/data-type-detail.store.js'; +import { UMB_DATA_TYPE_DETAIL_STORE_CONTEXT } from '../repository/index.js'; import type { UmbDataTypeDetailModel } from '../types.js'; import type { UmbDataTypeTreeItemModel } from './types.js'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; @@ -21,30 +21,13 @@ export class UmbDataTypeTreeStore extends UmbUniqueTreeStore { constructor(host: UmbControllerHostElement) { super(host, UMB_DATA_TYPE_TREE_STORE_CONTEXT.toString()); - new UmbStoreConnector( - host, - this, - UMB_DATA_TYPE_DETAIL_STORE_CONTEXT, - (item) => this.#createTreeItemMapper(item), - (item) => this.#updateTreeItemMapper(item), - ); + new UmbStoreConnector(host, { + store: this, + connectToStoreAlias: UMB_DATA_TYPE_DETAIL_STORE_CONTEXT, + updateStoreItemMapper: (item) => this.#updateTreeItemMapper(item), + }); } - // TODO: revisit this when we have decided on detail model sizes - #createTreeItemMapper = (item: UmbDataTypeDetailModel) => { - const treeItem: UmbDataTypeTreeItemModel = { - unique: item.unique, - parentUnique: item.parentUnique, - name: item.name, - entityType: item.entityType, - isFolder: false, - hasChildren: false, - }; - - return treeItem; - }; - - // TODO: revisit this when we have decided on detail model sizes #updateTreeItemMapper = (item: UmbDataTypeDetailModel) => { return { name: item.name, diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.repository.ts index fea053140f..ec4cd7dd8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.repository.ts @@ -12,10 +12,13 @@ export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { +const folderToDataTypeTreeItemMapper = ( + folder: UmbFolderModel, + parentUnique: string | null, +): UmbDataTypeFolderTreeItemModel => { return { unique: folder.unique, - parentUnique: folder.parentUnique, + parentUnique, name: folder.name, entityType: UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, hasChildren: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.server.data-source.ts index aac1c20ae9..312cbdb919 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/folder/data-type-folder.server.data-source.ts @@ -41,7 +41,6 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { const mappedData = { unique: data.id, name: data.name, - parentUnique: data.parent ? data.parent.id : null, }; return { data: mappedData }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/manifests.ts index 6ab730ac33..3131fa4ca8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/manifests.ts @@ -28,6 +28,7 @@ const treeStore: ManifestTreeStore = { const tree: ManifestTree = { type: 'tree', + kind: 'default', alias: 'Umb.Tree.DataTypes', name: 'Data Types Tree', meta: { @@ -37,7 +38,7 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'unique', + kind: 'default', alias: 'Umb.TreeItem.DataType', name: 'Data Type Tree Item', meta: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/types.ts index 1204540bba..366f7823f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/types.ts @@ -3,7 +3,6 @@ import type { UmbDataTypeEntityType } from './entity.js'; export interface UmbDataTypeDetailModel { entityType: UmbDataTypeEntityType; unique: string; - parentUnique: string | null; name: string; editorAlias: string | undefined; editorUiAlias: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts index 7358d6abeb..48f9ba838e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.context.ts @@ -20,6 +20,8 @@ import type { } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_PROPERTY_EDITOR_SCHEMA_ALIAS_DEFAULT } from '@umbraco-cms/backoffice/property-editor'; +import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; type EntityType = UmbDataTypeDetailModel; export class UmbDataTypeWorkspaceContext @@ -29,6 +31,7 @@ export class UmbDataTypeWorkspaceContext // public readonly repository: UmbDataTypeDetailRepository = new UmbDataTypeDetailRepository(this); + #parent?: { entityType: string; unique: string | null }; #persistedData = new UmbObjectState(undefined); #currentData = new UmbObjectState(undefined); @@ -47,21 +50,21 @@ export class UmbDataTypeWorkspaceContext #properties = new UmbArrayState([], (x) => x.alias); readonly properties = this.#properties.asObservable(); - private _propertyEditorSchemaConfigDefaultData: Array = []; - private _propertyEditorUISettingsDefaultData: Array = []; - - private _propertyEditorSchemaConfigProperties: Array = []; - private _propertyEditorUISettingsProperties: Array = []; - - private _propertyEditorSchemaConfigDefaultUIAlias: string | null = null; - - private _configDefaultData?: Array; - - private _propertyEditorUISettingsSchemaAlias?: string; - #defaults = new UmbArrayState([], (entry) => entry.alias); readonly defaults = this.#defaults.asObservable(); + #propertyEditorSchemaSettingsDefaultData: Array = []; + #propertyEditorUISettingsDefaultData: Array = []; + + #propertyEditorSchemaSettingsProperties: Array = []; + #propertyEditorUISettingsProperties: Array = []; + + #propertyEditorSchemaConfigDefaultUIAlias: string | null = null; + + #settingsDefaultData?: Array; + + #propertyEditorUISettingsSchemaAlias?: string; + #propertyEditorUiIcon = new UmbStringState(null); readonly propertyEditorUiIcon = this.#propertyEditorUiIcon.asObservable(); @@ -89,10 +92,10 @@ export class UmbDataTypeWorkspaceContext // if the property editor ui alias is not set, we use the default alias from the schema if (propertyEditorUiAlias === null) { await this.#observePropertyEditorSchemaAlias(); - this.setPropertyEditorUiAlias(this._propertyEditorSchemaConfigDefaultUIAlias!); + this.setPropertyEditorUiAlias(this.#propertyEditorSchemaConfigDefaultUIAlias!); } else { await this.#setPropertyEditorUIConfig(propertyEditorUiAlias); - this.setPropertyEditorSchemaAlias(this._propertyEditorUISettingsSchemaAlias!); + this.setPropertyEditorSchemaAlias(this.#propertyEditorUISettingsSchemaAlias!); await this.#observePropertyEditorSchemaAlias(); } @@ -122,9 +125,9 @@ export class UmbDataTypeWorkspaceContext return this.observe( umbExtensionsRegistry.byTypeAndAlias('propertyEditorSchema', propertyEditorSchemaAlias), (manifest) => { - this._propertyEditorSchemaConfigProperties = manifest?.meta.settings?.properties || []; - this._propertyEditorSchemaConfigDefaultData = manifest?.meta.settings?.defaultData || []; - this._propertyEditorSchemaConfigDefaultUIAlias = manifest?.meta.defaultPropertyEditorUiAlias || null; + this.#propertyEditorSchemaSettingsProperties = manifest?.meta.settings?.properties || []; + this.#propertyEditorSchemaSettingsDefaultData = manifest?.meta.settings?.defaultData || []; + this.#propertyEditorSchemaConfigDefaultUIAlias = manifest?.meta.defaultPropertyEditorUiAlias || null; }, 'schema', ).asPromise(); @@ -137,35 +140,35 @@ export class UmbDataTypeWorkspaceContext this.#propertyEditorUiIcon.setValue(manifest?.meta.icon || null); this.#propertyEditorUiName.setValue(manifest?.name || null); - this._propertyEditorUISettingsSchemaAlias = manifest?.meta.propertyEditorSchemaAlias; - this._propertyEditorUISettingsProperties = manifest?.meta.settings?.properties || []; - this._propertyEditorUISettingsDefaultData = manifest?.meta.settings?.defaultData || []; + this.#propertyEditorUISettingsSchemaAlias = manifest?.meta.propertyEditorSchemaAlias; + this.#propertyEditorUISettingsProperties = manifest?.meta.settings?.properties || []; + this.#propertyEditorUISettingsDefaultData = manifest?.meta.settings?.defaultData || []; }, 'editorUi', ).asPromise(); } private _mergeConfigProperties() { - if (this._propertyEditorSchemaConfigProperties && this._propertyEditorUISettingsProperties) { + if (this.#propertyEditorSchemaSettingsProperties && this.#propertyEditorUISettingsProperties) { // Reset the value to this array, and then afterwards append: - this.#properties.setValue(this._propertyEditorSchemaConfigProperties); + this.#properties.setValue(this.#propertyEditorSchemaSettingsProperties); // Append the UI settings properties to the schema properties, so they can override the schema properties: - this.#properties.append(this._propertyEditorUISettingsProperties); + this.#properties.append(this.#propertyEditorUISettingsProperties); } } private _mergeConfigDefaultData() { - if (!this._propertyEditorSchemaConfigDefaultData || !this._propertyEditorUISettingsDefaultData) return; + if (!this.#propertyEditorSchemaSettingsDefaultData || !this.#propertyEditorUISettingsDefaultData) return; - this._configDefaultData = [ - ...this._propertyEditorSchemaConfigDefaultData, - ...this._propertyEditorUISettingsDefaultData, + this.#settingsDefaultData = [ + ...this.#propertyEditorSchemaSettingsDefaultData, + ...this.#propertyEditorUISettingsDefaultData, ]; - this.#defaults.setValue(this._configDefaultData); + this.#defaults.setValue(this.#settingsDefaultData); } public getPropertyDefaultValue(alias: string) { - return this._configDefaultData?.find((x) => x.alias === alias)?.value; + return this.#settingsDefaultData?.find((x) => x.alias === alias)?.value; } createPropertyDatasetContext(host: UmbControllerHost): UmbPropertyDatasetContext { @@ -174,8 +177,9 @@ export class UmbDataTypeWorkspaceContext async load(unique: string) { this.resetState(); - this.#getDataPromise = this.repository.requestByUnique(unique); - const { data } = await this.#getDataPromise; + const request = this.repository.requestByUnique(unique); + this.#getDataPromise = request; + const { data } = await request; if (!data) return undefined; this.setIsNew(false); @@ -183,10 +187,13 @@ export class UmbDataTypeWorkspaceContext this.#currentData.setValue(data); } - async create(parentUnique: string | null) { + async create(parent: { entityType: string; unique: string | null }) { this.resetState(); - this.#getDataPromise = this.repository.createScaffold(parentUnique); - let { data } = await this.#getDataPromise; + this.#parent = parent; + const request = this.repository.createScaffold(); + this.#getDataPromise = request; + let { data } = await request; + if (!data) return undefined; if (this.modalContext) { data = { ...data, ...this.modalContext.data.preset }; } @@ -264,12 +271,22 @@ export class UmbDataTypeWorkspaceContext if (!this.#currentData.value.unique) return; if (this.getIsNew()) { - await this.repository.create(this.#currentData.value); + if (!this.#parent) throw new Error('Parent is not set'); + await this.repository.create(this.#currentData.value, this.#parent.unique); + + // TODO: this might not be the right place to alert the tree, but it works for now + const eventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); + const event = new UmbReloadTreeItemChildrenRequestEntityActionEvent({ + entityType: this.#parent.entityType, + unique: this.#parent.unique, + }); + eventContext.dispatchEvent(event); } else { await this.repository.save(this.#currentData.value); } - this.saveComplete(this.#currentData.value); + this.setIsNew(false); + this.workspaceComplete(this.#currentData.value); } async delete(unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.element.ts index 535b72d31a..d88fed9644 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/data-type-workspace.element.ts @@ -13,11 +13,12 @@ export class UmbDataTypeWorkspaceElement extends UmbLitElement { private _routes: UmbRoute[] = [ { - path: 'create/:parentUnique', + path: 'create/parent/:entityType/:parentUnique', component: this.#createElement, setup: (_component, info) => { + const parentEntityType = info.match.params.entityType; const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; - this.#workspaceContext.create(parentUnique); + this.#workspaceContext.create({ entityType: parentEntityType, unique: parentUnique }); new UmbWorkspaceIsNewRedirectController( this, diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.ts index b24c9ab3a7..bdd188a3b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/details/data-type-details-workspace-view.element.ts @@ -55,7 +55,7 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement extends UmbLitElement im async #openPropertyEditorUIPicker() { const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); const value = await modalManager - .open(UMB_PROPERTY_EDITOR_UI_PICKER_MODAL, { + .open(this, UMB_PROPERTY_EDITOR_UI_PICKER_MODAL, { value: { selection: this._propertyEditorUiAlias ? [this._propertyEditorUiAlias] : [], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/action/manifests.ts index 0a48feecbe..181946452e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/collection/action/manifests.ts @@ -1,3 +1,4 @@ +import { UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; import type { ManifestCollectionAction } from '@umbraco-cms/backoffice/extension-registry'; @@ -9,7 +10,7 @@ export const createManifest: ManifestCollectionAction = { weight: 200, meta: { label: 'Create', - href: 'section/dictionary/workspace/dictionary/create/null', + href: `section/dictionary/workspace/dictionary/create/parent/${UMB_DICTIONARY_ROOT_ENTITY_TYPE}/null`, }, conditions: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create.action.ts index ee39199b82..05bc35c411 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/create/create.action.ts @@ -8,6 +8,10 @@ export default class UmbCreateDictionaryEntityAction extends UmbEntityActionBase } async execute() { - history.pushState({}, '', `/section/dictionary/workspace/dictionary/create/${this.unique ?? 'null'}`); + history.pushState( + {}, + '', + `/section/dictionary/workspace/dictionary/create/parent/${this.entityType}/${this.unique ?? 'null'}`, + ); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/export/export.action.ts index 6c77d6b76c..74da076f15 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/export/export.action.ts @@ -1,25 +1,14 @@ import type { UmbDictionaryExportRepository } from '../../repository/index.js'; import { UMB_EXPORT_DICTIONARY_MODAL } from './export-dictionary-modal.token.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase { - #modalContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance; - }); - } - async execute() { - if (!this.#modalContext) return; + if (!this.unique) throw new Error('Unique is not available'); - const modalContext = this.#modalContext?.open(UMB_EXPORT_DICTIONARY_MODAL, { data: { unique: this.unique } }); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_EXPORT_DICTIONARY_MODAL, { data: { unique: this.unique } }); const { includeChildren } = await modalContext.onSubmit(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/import/import.action.ts index e493639608..74d051e37b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/import/import.action.ts @@ -1,25 +1,12 @@ import type { UmbDictionaryImportRepository } from '../../repository/index.js'; import { UMB_IMPORT_DICTIONARY_MODAL } from './import-dictionary-modal.token.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase { - #modalContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance; - }); - } - async execute() { - if (!this.#modalContext) return; - - const modalContext = this.#modalContext?.open(UMB_IMPORT_DICTIONARY_MODAL, { data: { unique: this.unique } }); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_IMPORT_DICTIONARY_MODAL, { data: { unique: this.unique } }); await modalContext.onSubmit(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.server.data-source.ts index 1521134377..843cfcd8d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.server.data-source.ts @@ -1,5 +1,6 @@ import { UMB_DICTIONARY_ENTITY_TYPE } from '../entity.js'; import type { UmbDictionaryTreeItemModel } from './types.js'; +import type { UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from '@umbraco-cms/backoffice/tree'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { NamedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; @@ -29,16 +30,17 @@ export class UmbDictionaryTreeServerDataSource extends UmbTreeServerDataSourceBa } } -// eslint-disable-next-line local-rules/no-direct-api-import -const getRootItems = () => DictionaryResource.getTreeDictionaryRoot({}); +const getRootItems = (args: UmbTreeRootItemsRequestArgs) => + // eslint-disable-next-line local-rules/no-direct-api-import + DictionaryResource.getTreeDictionaryRoot({ skip: args.skip, take: args.take }); -const getChildrenOf = (parentUnique: string | null) => { - if (parentUnique === null) { - return getRootItems(); +const getChildrenOf = (args: UmbTreeChildrenOfRequestArgs) => { + if (args.parentUnique === null) { + return getRootItems(args); } else { // eslint-disable-next-line local-rules/no-direct-api-import return DictionaryResource.getTreeDictionaryChildren({ - parentId: parentUnique, + parentId: args.parentUnique, }); } }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.store.ts index 3e66d83a8a..924780c511 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.store.ts @@ -21,30 +21,13 @@ export class UmbDictionaryTreeStore extends UmbUniqueTreeStore { constructor(host: UmbControllerHostElement) { super(host, UMB_DICTIONARY_TREE_STORE_CONTEXT.toString()); - new UmbStoreConnector( - host, - this, - UMB_DICTIONARY_DETAIL_STORE_CONTEXT, - (item) => this.#createTreeItemMapper(item), - (item) => this.#updateTreeItemMapper(item), - ); + new UmbStoreConnector(host, { + store: this, + connectToStoreAlias: UMB_DICTIONARY_DETAIL_STORE_CONTEXT, + updateStoreItemMapper: (item) => this.#updateTreeItemMapper(item), + }); } - // TODO: revisit this when we have decided on detail model sizes - #createTreeItemMapper = (item: UmbDictionaryDetailModel) => { - const treeItem: UmbDictionaryTreeItemModel = { - unique: item.unique, - parentUnique: null, - name: item.name, - entityType: item.entityType, - isFolder: false, - hasChildren: false, - }; - - return treeItem; - }; - - // TODO: revisit this when we have decided on detail model sizes #updateTreeItemMapper = (model: UmbDictionaryDetailModel) => { return { name: model.name, diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/manifests.ts index fb1e411cb0..1076ff9165 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/manifests.ts @@ -29,6 +29,7 @@ const treeStore: ManifestTreeStore = { const tree: ManifestTree = { type: 'tree', + kind: 'default', alias: UMB_DICTIONARY_TREE_ALIAS, name: 'Dictionary Tree', meta: { @@ -38,7 +39,7 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'unique', + kind: 'default', alias: 'Umb.TreeItem.Dictionary', name: 'Dictionary Tree Item', meta: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts index ceac259fa4..5779f153be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts @@ -7,6 +7,8 @@ import { import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; +import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; export class UmbDictionaryWorkspaceContext extends UmbEditableWorkspaceContextBase @@ -15,6 +17,8 @@ export class UmbDictionaryWorkspaceContext // public readonly detailRepository = new UmbDictionaryDetailRepository(this); + #parent?: { entityType: string; unique: string | null }; + #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); @@ -76,9 +80,10 @@ export class UmbDictionaryWorkspaceContext } } - async create(parentUnique: string | null) { + async create(parent: { entityType: string; unique: string | null }) { this.resetState(); - const { data } = await this.detailRepository.createScaffold(parentUnique); + this.#parent = parent; + const { data } = await this.detailRepository.createScaffold(); if (!data) return; this.setIsNew(true); this.#data.setValue(data); @@ -89,17 +94,30 @@ export class UmbDictionaryWorkspaceContext if (!this.#data.value.unique) return; if (this.getIsNew()) { - const { error } = await this.detailRepository.create(this.#data.value); + if (!this.#parent) throw new Error('Parent is not set'); + const { error } = await this.detailRepository.create(this.#data.value, this.#parent.unique); if (error) { return; } + + // TODO: this might not be the right place to alert the tree, but it works for now + const eventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); + const event = new UmbReloadTreeItemChildrenRequestEntityActionEvent({ + entityType: this.#parent.entityType, + unique: this.#parent.unique, + }); + eventContext.dispatchEvent(event); + this.setIsNew(false); } else { await this.detailRepository.save(this.#data.value); } const data = this.getData(); - if (data) this.saveComplete(data); + if (!data) return; + + this.setIsNew(false); + this.workspaceComplete(data); } public destroy(): void { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.element.ts index fc782800a3..4f7e9f0ac4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.element.ts @@ -13,11 +13,12 @@ export class UmbWorkspaceDictionaryElement extends UmbLitElement { @state() _routes: UmbRoute[] = [ { - path: 'create/:parentUnique', + path: 'create/parent/:entityType/:parentUnique', component: this.#createElement, setup: async (_component, info) => { + const parentEntityType = info.match.params.entityType; const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; - await this.#workspaceContext.create(parentUnique); + this.#workspaceContext.create({ entityType: parentEntityType, unique: parentUnique }); new UmbWorkspaceIsNewRedirectController( this, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts index 32610f6d97..b01206f516 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts @@ -1,30 +1,22 @@ import type { UmbDocumentTypeDetailRepository } from '../../repository/detail/document-type-detail.repository.js'; import { UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { - #modalManagerContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalManagerContext = instance; - }); - } - async execute() { - if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); if (!this.repository) throw new Error('Repository is not available'); - this.#modalManagerContext?.open(UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL, { data: { - parentUnique: this.unique, - entityType: this.entityType, + parent: { + unique: this.unique, + entityType: this.entityType, + }, }, }); + + await modalContext.onSubmit(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts index 328e1faf6e..d8c834e3e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts @@ -10,8 +10,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement - + } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts index 83c29c5f65..0b916444d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts @@ -1,8 +1,10 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbDocumentTypeCreateOptionsModalData { - parentUnique: string | null; - entityType: string; + parent: { + unique: string | null; + entityType: string; + }; } export const UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL = new UmbModalToken( diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index d86d4c590c..ab696cdcda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -35,11 +35,10 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc * @return { CreateDocumentTypeRequestModel } * @memberof UmbDocumentTypeServerDataSource */ - async createScaffold(parentUnique: string | null) { + async createScaffold(preset: Partial = {}) { const data: UmbDocumentTypeDetailModel = { entityType: UMB_DOCUMENT_TYPE_ENTITY_TYPE, unique: UmbId.new(), - parentUnique, name: '', alias: '', description: '', @@ -60,6 +59,7 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc keepLatestVersionPerDayForDays: null, }, collection: null, + ...preset, }; return { data }; @@ -87,7 +87,6 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc const DocumentType: UmbDocumentTypeDetailModel = { entityType: UMB_DOCUMENT_TYPE_ENTITY_TYPE, unique: data.id, - parentUnique: null, // TODO: map to parent/folder id name: data.name, alias: data.alias, description: data.description || null, @@ -139,13 +138,13 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc * @return {*} * @memberof UmbDocumentTypeServerDataSource */ - async create(model: UmbDocumentTypeDetailModel) { + async create(model: UmbDocumentTypeDetailModel, parentUnique: string | null = null) { if (!model) throw new Error('Media Type is missing'); if (!model.unique) throw new Error('Media Type unique is missing'); // TODO: make data mapper to prevent errors const requestBody: CreateDocumentTypeRequestModel = { - folder: model.parentUnique ? { id: model.parentUnique } : null, + parent: parentUnique ? { id: parentUnique } : null, alias: model.alias, name: model.name, description: model.description, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts index 4aa07032c0..d0e170aaed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts @@ -1,5 +1,6 @@ import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; import type { UmbDocumentTypeTreeItemModel } from './types.js'; +import type { UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from '@umbraco-cms/backoffice/tree'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import type { DocumentTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import { DocumentTypeResource } from '@umbraco-cms/backoffice/external/backend-api'; @@ -29,16 +30,19 @@ export class UmbDocumentTypeTreeServerDataSource extends UmbTreeServerDataSource } } -// eslint-disable-next-line local-rules/no-direct-api-import -const getRootItems = () => DocumentTypeResource.getTreeDocumentTypeRoot({}); +const getRootItems = (args: UmbTreeRootItemsRequestArgs) => + // eslint-disable-next-line local-rules/no-direct-api-import + DocumentTypeResource.getTreeDocumentTypeRoot({ skip: args.skip, take: args.take }); -const getChildrenOf = (parentUnique: string | null) => { - if (parentUnique === null) { - return getRootItems(); +const getChildrenOf = (args: UmbTreeChildrenOfRequestArgs) => { + if (args.parentUnique === null) { + return getRootItems({ skip: args.skip, take: args.take }); } else { // eslint-disable-next-line local-rules/no-direct-api-import return DocumentTypeResource.getTreeDocumentTypeChildren({ - parentId: parentUnique, + parentId: args.parentUnique, + skip: args.skip, + take: args.take, }); } }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts index 7271056efb..54616a0d4d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts @@ -21,31 +21,13 @@ export class UmbDocumentTypeTreeStore extends UmbUniqueTreeStore { constructor(host: UmbControllerHostElement) { super(host, UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT.toString()); - new UmbStoreConnector( - host, - this, - UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT, - (item) => this.#createTreeItemMapper(item), - (item) => this.#updateTreeItemMapper(item), - ); + new UmbStoreConnector(host, { + store: this, + connectToStoreAlias: UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT, + updateStoreItemMapper: (item) => this.#updateTreeItemMapper(item), + }); } - // TODO: revisit this when we have decided on detail model sizes - #createTreeItemMapper = (item: UmbDocumentTypeDetailModel) => { - const treeItem: UmbDocumentTypeTreeItemModel = { - unique: item.unique, - parentUnique: item.parentUnique, - name: item.name, - entityType: item.entityType, - isElement: item.isElement, - isFolder: false, - hasChildren: false, - }; - - return treeItem; - }; - - // TODO: revisit this when we have decided on detail model sizes #updateTreeItemMapper = (item: UmbDocumentTypeDetailModel) => { return { name: item.name, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts index 7c101baf59..50691b9d13 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts @@ -17,10 +17,13 @@ export class UmbDocumentTypeFolderRepository extends UmbFolderRepositoryBase { +const folderToDocumentTypeTreeItemMapper = ( + folder: UmbFolderModel, + parentUnique: string | null, +): UmbDocumentTypeFolderTreeItemModel => { return { unique: folder.unique, - parentUnique: folder.parentUnique, + parentUnique, name: folder.name, entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, hasChildren: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts index ed781dd616..bf13084cad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts @@ -41,7 +41,6 @@ export class UmbDocumentTypeFolderServerDataSource implements UmbFolderDataSourc const mappedData = { unique: data.id, name: data.name, - parentUnique: data.parent ? data.parent.id : null, }; return { data: mappedData }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts index 9a9bc9e598..649ca15c51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts @@ -34,6 +34,7 @@ const treeStore: ManifestTreeStore = { const tree: ManifestTree = { type: 'tree', + kind: 'default', alias: UMB_DOCUMENT_TYPE_TREE_ALIAS, name: 'Document Type Tree', meta: { @@ -43,7 +44,7 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'unique', + kind: 'default', alias: 'Umb.TreeItem.DocumentType', name: 'Document Type Tree Item', meta: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts index f90b1462ea..a8af3e3a76 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts @@ -3,7 +3,6 @@ import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, UMB_ICON_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; @customElement('umb-document-type-workspace-editor') @@ -22,8 +21,6 @@ export class UmbDocumentTypeWorkspaceEditorElement extends UmbLitElement { #workspaceContext?: typeof UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT.TYPE; - private _modalContext?: UmbModalManagerContext; - constructor() { super(); @@ -31,10 +28,6 @@ export class UmbDocumentTypeWorkspaceEditorElement extends UmbLitElement { this.#workspaceContext = instance; this.#observeDocumentType(); }); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this._modalContext = instance; - }); } #observeDocumentType() { @@ -95,7 +88,8 @@ export class UmbDocumentTypeWorkspaceEditorElement extends UmbLitElement { private async _handleIconClick() { const [alias, color] = this._icon?.replace('color-', '')?.split(' ') ?? []; - const modalContext = this._modalContext?.open(UMB_ICON_PICKER_MODAL, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modalContext = modalManager.open(this, UMB_ICON_PICKER_MODAL, { value: { icon: alias, color: color, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index bc82b6bb81..9d3ebd079e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -8,6 +8,8 @@ import type { UmbContentTypeCompositionModel, UmbContentTypeSortModel } from '@u import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import type { UmbReferenceByUnique } from '@umbraco-cms/backoffice/models'; import type { UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; type EntityType = UmbDocumentTypeDetailModel; export class UmbDocumentTypeWorkspaceContext @@ -18,6 +20,7 @@ export class UmbDocumentTypeWorkspaceContext readonly repository = new UmbDocumentTypeDetailRepository(this); // Data/Draft is located in structure manager + #parent?: { entityType: string; unique: string | null }; #persistedData = new UmbObjectState(undefined); // General for content types: @@ -148,9 +151,10 @@ export class UmbDocumentTypeWorkspaceContext this.structure.updateOwnerContentType({ defaultTemplate }); } - async create(parentUnique: string | null) { + async create(parent: { entityType: string; unique: string | null }) { this.resetState(); - const { data } = await this.structure.createScaffold(parentUnique); + this.#parent = parent; + const { data } = await this.structure.createScaffold(); if (!data) return undefined; this.setIsNew(true); @@ -178,14 +182,25 @@ export class UmbDocumentTypeWorkspaceContext if (data === undefined) throw new Error('Cannot save, no data'); if (this.getIsNew()) { - if ((await this.structure.create()) === true) { + if (!this.#parent) throw new Error('Parent is not set'); + + if ((await this.structure.create(this.#parent.unique)) === true) { + // TODO: this might not be the right place to alert the tree, but it works for now + const eventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); + const event = new UmbReloadTreeItemChildrenRequestEntityActionEvent({ + entityType: this.#parent.entityType, + unique: this.#parent.unique, + }); + eventContext.dispatchEvent(event); + this.setIsNew(false); } } else { await this.structure.save(); } - this.saveComplete(data); + this.setIsNew(false); + this.workspaceComplete(data); } public destroy(): void { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts index d8e12c252f..dd70e0c0e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts @@ -13,11 +13,12 @@ export class UmbDocumentTypeWorkspaceElement extends UmbLitElement { @state() _routes: UmbRoute[] = [ { - path: 'create/:parentId', + path: 'create/parent/:entityType/:parentUnique', component: this.#createElement, setup: (_component, info) => { - const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; - this.#workspaceContext.create(parentId); + const parentEntityType = info.match.params.entityType; + const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; + this.#workspaceContext.create({ entityType: parentEntityType, unique: parentUnique }); new UmbWorkspaceIsNewRedirectController( this, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts index 20b3ebb341..88cb810286 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts @@ -296,7 +296,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement extends UmbLitElement imple async #openCompositionModal() { const modalManagerContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - const modalContext = modalManagerContext.open(UMB_COMPOSITION_PICKER_MODAL, { + const modalContext = modalManagerContext.open(this, UMB_COMPOSITION_PICKER_MODAL, { data: this._compositionConfiguration, }); await modalContext?.onSubmit(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.ts index cd640acaa2..7c635c2a29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.ts @@ -87,7 +87,7 @@ export class UmbInputDocumentRootPickerElement extends FormControlMixin(UmbLitEl }); #openDynamicRootOriginPicker() { - this.#openModal = this.#modalContext?.open(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}); + this.#openModal = this.#modalContext?.open(this, UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}); this.#openModal?.onSubmit().then((data: UmbTreePickerDynamicRoot) => { const existingData = { ...this.data }; existingData.originKey = undefined; @@ -98,7 +98,7 @@ export class UmbInputDocumentRootPickerElement extends FormControlMixin(UmbLitEl } #openDynamicRootQueryStepPicker() { - this.#openModal = this.#modalContext?.open(UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, {}); + this.#openModal = this.#modalContext?.open(this, UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, {}); this.#openModal?.onSubmit().then((step) => { if (this.data) { const querySteps = [...(this.data.querySteps ?? []), step]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index b3ffa6dc36..200afe809a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -163,7 +163,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { } #renderItems() { - if (!this._items) return; + if (!this._items?.length) return; return html` ${repeat( this._items, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts index 74d59f0709..0641163919 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts @@ -1,24 +1,16 @@ import type { UmbDocumentDetailRepository } from '../../repository/index.js'; import { UmbDocumentItemRepository } from '../../repository/index.js'; -import type { UmbDocumentCreateOptionsModalData } from './document-create-options-modal.token.js'; import { UMB_DOCUMENT_CREATE_OPTIONS_MODAL } from './document-create-options-modal.token.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateDocumentEntityAction extends UmbEntityActionBase { - #modalContext?: UmbModalManagerContext; #itemRepository; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); - this.#itemRepository = new UmbDocumentItemRepository(host); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance; - }); } async execute() { @@ -34,16 +26,14 @@ export class UmbCreateDocumentEntityAction extends UmbEntityActionBase html` > ${documentType.icon ? html`` : nothing} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.token.ts index add3c78079..0ecb35b561 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.token.ts @@ -1,9 +1,10 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbDocumentCreateOptionsModalData { - document: { - unique: string; - } | null; + parent: { + unique: string | null; + entityType: string; + }; documentType: { unique: string; } | null; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts index f22531fd36..8deeeeac24 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts @@ -1,28 +1,13 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UMB_CULTURE_AND_HOSTNAMES_MODAL, type UmbDocumentDetailRepository } from '@umbraco-cms/backoffice/document'; export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { - #modalContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance; - }); - } - async execute() { if (!this.repository) return; - this._openModal(this.unique || null); - } - - private async _openModal(unique: string | null) { - if (!this.#modalContext) return; - this.#modalContext.open(UMB_CULTURE_AND_HOSTNAMES_MODAL, { - data: { unique }, + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + modalManager.open(this, UMB_CULTURE_AND_HOSTNAMES_MODAL, { + data: { unique: this.unique ?? null }, }); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access/public-access.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access/public-access.action.ts index 2a15deefea..e88ac97f87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access/public-access.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access/public-access.action.ts @@ -1,20 +1,12 @@ import { UMB_PUBLIC_ACCESS_MODAL } from './modal/public-access-modal.token.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UMB_MODAL_MANAGER_CONTEXT, type UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import type { UmbDocumentDetailRepository } from '@umbraco-cms/backoffice/document'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentPublicAccessEntityAction extends UmbEntityActionBase { - #modalContext?: UmbModalManagerContext; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance as UmbModalManagerContext; - }); - } - async execute() { - this.#modalContext?.open(UMB_PUBLIC_ACCESS_MODAL, { data: { unique: this.unique } }); + if (!this.unique) throw new Error('Unique is not available'); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + modalManager.open(this, UMB_PUBLIC_ACCESS_MODAL, { data: { unique: this.unique } }); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts index c78c81227a..6ece37ca99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts @@ -7,6 +7,8 @@ import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { async execute() { + if (!this.unique) throw new Error('The document unique identifier is missing'); + const languageRepository = new UmbLanguageCollectionRepository(this._host); const { data: languageData } = await languageRepository.requestCollection({}); @@ -24,6 +26,8 @@ export class UmbPublishDocumentEntityAction extends UmbEntityActionBase } const allOptions = (languageData?.items ?? []).map((language) => ({ + culture: language.unique, + segment: null, language: language, variant: documentData.variants.find((variant) => variant.culture === language.unique), unique: new UmbVariantId(language.unique, null).toString(), diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts index 03b6925fd2..9e74f9a768 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts @@ -7,6 +7,8 @@ import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase { async execute() { + if (!this.unique) throw new Error('The document unique identifier is missing'); + const languageRepository = new UmbLanguageCollectionRepository(this._host); const { data: languageData } = await languageRepository.requestCollection({}); @@ -16,6 +18,8 @@ export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase ({ + culture: language.unique, + segment: null, language: language, variant: documentData.variants.find((variant) => variant.culture === language.unique), unique: new UmbVariantId(language.unique, null).toString(), diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/publish/publish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/publish/publish.action.ts index 4c5afc39c4..98ca33f828 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/publish/publish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/publish/publish.action.ts @@ -23,6 +23,8 @@ export class UmbDocumentPublishEntityBulkAction extends UmbEntityBulkActionBase< const options: UmbDocumentVariantOptionModel[] = (languageData?.items ?? []).map((language) => ({ language, unique: new UmbVariantId(language.unique, null).toString(), + culture: language.unique, + segment: null, })); const selectedVariants = await umbPickDocumentVariantModal(this, { type: 'publish', options }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/unpublish/unpublish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/unpublish/unpublish.action.ts index 27137e073e..7c5bd8df82 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/unpublish/unpublish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/unpublish/unpublish.action.ts @@ -23,6 +23,8 @@ export class UmbDocumentUnpublishEntityBulkAction extends UmbEntityBulkActionBas const options: UmbDocumentVariantOptionModel[] = (languageData?.items ?? []).map((language) => ({ language, unique: new UmbVariantId(language.unique, null).toString(), + culture: language.unique, + segment: null, })); const selectedVariants = await umbPickDocumentVariantModal(this, { type: 'unpublish', options }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/pick-document-variant-modal.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/pick-document-variant-modal.controller.ts index cdb45ade87..3e3de7311e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/pick-document-variant-modal.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/pick-document-variant-modal.controller.ts @@ -17,7 +17,7 @@ export interface UmbPickDocumentVariantModalArgs { export class UmbPickDocumentVariantModalController extends UmbControllerBase { async open(args: UmbPickDocumentVariantModalArgs): Promise { - const modalManagerContext = await this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, () => {}).asPromise(); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); const selected = args.selected ?? []; const modalData: UmbDocumentVariantPickerModalData = { @@ -26,16 +26,19 @@ export class UmbPickDocumentVariantModalController extends UmbControllerBase { }; if (modalData.options.length === 0) { - // TODO: What do to when there is no options? + // TODO: What do to when there is no options? [NL] } - const modalContext = modalManagerContext.open(UMB_DOCUMENT_LANGUAGE_PICKER_MODAL, { + const modal = modalManager.open(this, UMB_DOCUMENT_LANGUAGE_PICKER_MODAL, { data: modalData, // We need to turn the selected variant ids into strings for them to be serializable to the value state, in other words the value of a modal cannot hold class instances: - value: { selection: selected.map((x) => x.toString()) ?? [] }, + // Make selection unique by filtering out duplicates: + value: { selection: selected.map((x) => x.toString()).filter((v, i, a) => a.indexOf(v) === i) ?? [] }, }); - const result = await modalContext.onSubmit().catch(() => undefined); + const p = modal.onSubmit(); + p.catch(() => this.destroy()); + const result = await p; // This is a one time off, so we can destroy our selfs. this.destroy(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.element.ts index 5d237d3d46..22c07a7555 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.element.ts @@ -36,16 +36,16 @@ export class UmbDocumentVariantPickerModalElement extends UmbModalBaseElement< async #setInitialSelection() { let selected = this.value?.selection ?? []; + // Filter selection based on options: + selected = selected.filter((s) => this.data?.options.some((o) => o.unique === s)); + if (selected.length === 0) { - // TODO: Make it possible to use consume context without callback. [NL] - const ctrl = this.consumeContext(UMB_APP_LANGUAGE_CONTEXT, () => {}); - const context = await ctrl.asPromise(); + const context = await this.getContext(UMB_APP_LANGUAGE_CONTEXT); const appCulture = context.getAppCulture(); // If the app language is one of the options, select it by default: if (appCulture && this.data?.options.some((o) => o.language.unique === appCulture)) { selected = appendToFrozenArray(selected, new UmbVariantId(appCulture, null).toString()); } - ctrl.destroy(); } this.#selectionManager.setMultiple(true); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.stories.ts index 0b20dbbaaf..904d926407 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.stories.ts @@ -15,6 +15,8 @@ const modalData: UmbDocumentVariantPickerModalData = { options: [ { unique: 'en-us', + culture: 'en-us', + segment: null, variant: { name: 'English variant name', culture: 'en-us', @@ -47,6 +49,8 @@ const modalData: UmbDocumentVariantPickerModalData = { */ { unique: 'da-dk', + culture: 'da-dk', + segment: null, variant: { name: 'Danish variant name', culture: 'da-dk', @@ -90,7 +94,7 @@ import { UMB_DOCUMENT_LANGUAGE_PICKER_MODAL, UmbDocumentVariantState } from '@um import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalManager) => { - modalManager.open(UMB_DOCUMENT_LANGUAGE_PICKER_MODAL, { + modalManager.open(this, UMB_DOCUMENT_LANGUAGE_PICKER_MODAL, { data: { type: 'save', variants: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/manifests.ts index f74b9df301..d04d9fd5a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/manifests.ts @@ -12,6 +12,18 @@ export const manifest: ManifestPropertyEditorUi = { group: 'common', settings: { properties: [ + { + alias: 'startNodeId', + label: 'Start node', + description: '', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.DocumentPicker', + config: [ + { + alias: 'validationLimit', + value: { min: 0, max: 1 }, + }, + ], + }, { alias: 'showOpenButton', label: 'Show open button', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts index 9f7d2a0574..1239e92c6b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts @@ -13,7 +13,7 @@ export class UmbPropertyEditorUIDocumentPickerElement extends UmbLitElement impl return this._value; } public set value(value: Array) { - this._value = value || []; + this._value = Array.isArray(value) ? value : value ? [value] : []; } @property({ attribute: false }) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts index 6bc7b5cf8c..a3466f28b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts @@ -2,6 +2,7 @@ import type { UmbDocumentRecycleBinTreeItemModel } from './types.js'; import type { DocumentRecycleBinItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import { DocumentResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from '@umbraco-cms/backoffice/tree'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; /** @@ -28,16 +29,17 @@ export class UmbDocumentRecycleBinTreeServerDataSource extends UmbTreeServerData } } -// eslint-disable-next-line local-rules/no-direct-api-import -const getRootItems = () => DocumentResource.getRecycleBinDocumentRoot({}); +const getRootItems = (args: UmbTreeRootItemsRequestArgs) => + // eslint-disable-next-line local-rules/no-direct-api-import + DocumentResource.getRecycleBinDocumentRoot({ skip: args.skip, take: args.take }); -const getChildrenOf = (parentUnique: string | null) => { - if (parentUnique === null) { - return getRootItems(); +const getChildrenOf = (args: UmbTreeChildrenOfRequestArgs) => { + if (args.parentUnique === null) { + return getRootItems(args); } else { // eslint-disable-next-line local-rules/no-direct-api-import return DocumentResource.getRecycleBinDocumentChildren({ - parentId: parentUnique, + parentId: args.parentUnique, }); } }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/manifests.ts index 98b65c8230..6af74406b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/manifests.ts @@ -29,6 +29,7 @@ const treeStore: ManifestTreeStore = { const tree: ManifestTree = { type: 'tree', + kind: 'default', alias: UMB_DOCUMENT_RECYCLE_BIN_TREE_ALIAS, name: 'Document Recycle Bin Tree', meta: { @@ -38,7 +39,7 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'unique', + kind: 'default', alias: 'Umb.TreeItem.DocumentRecycleBin', name: 'DocumentRecycleBin Tree Item', meta: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts index 4fa666761e..e8fb1638a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts @@ -30,15 +30,13 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource = {}) { + async createScaffold(preset: Partial = {}) { const data: UmbDocumentDetailModel = { entityType: UMB_DOCUMENT_ENTITY_TYPE, unique: UmbId.new(), - parentUnique: parentUnique, urls: [], template: null, documentType: { @@ -92,7 +90,6 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource { return { alias: value.alias, @@ -135,14 +132,14 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource variant.isCultureInvariant()); + + if (hasInvariant) { + const requestBody: UnpublishDocumentRequestModel = { + cultures: null, + }; + + return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdUnpublish({ id: unique, requestBody })); + } + const requestBody: UnpublishDocumentRequestModel = { - culture: variantIds.map((variant) => (variant.isCultureInvariant() ? null : variant.toCultureString()))[0], + cultures: variantIds.map((variant) => variant.toCultureString()), }; return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdUnpublish({ id: unique, requestBody })); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts index e724a5dc64..238a334d1b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts @@ -1,5 +1,6 @@ import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import type { UmbDocumentTreeItemModel } from './types.js'; +import type { UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from '@umbraco-cms/backoffice/tree'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import type { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import { DocumentResource } from '@umbraco-cms/backoffice/external/backend-api'; @@ -29,16 +30,17 @@ export class UmbDocumentTreeServerDataSource extends UmbTreeServerDataSourceBase } } -// eslint-disable-next-line local-rules/no-direct-api-import -const getRootItems = () => DocumentResource.getTreeDocumentRoot({}); +const getRootItems = (args: UmbTreeRootItemsRequestArgs) => + // eslint-disable-next-line local-rules/no-direct-api-import + DocumentResource.getTreeDocumentRoot({ skip: args.skip, take: args.take }); -const getChildrenOf = (parentUnique: string | null) => { - if (parentUnique === null) { - return getRootItems(); +const getChildrenOf = (args: UmbTreeChildrenOfRequestArgs) => { + if (args.parentUnique === null) { + return getRootItems(args); } else { // eslint-disable-next-line local-rules/no-direct-api-import return DocumentResource.getTreeDocumentChildren({ - parentId: parentUnique, + parentId: args.parentUnique, }); } }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts index 66f4795daf..58d5d40682 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts @@ -1,6 +1,10 @@ +import type { UmbDocumentDetailModel } from '../types.js'; +import { UMB_DOCUMENT_DETAIL_STORE_CONTEXT } from '../repository/detail/index.js'; +import type { UmbDocumentTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; /** * @export @@ -16,7 +20,25 @@ export class UmbDocumentTreeStore extends UmbUniqueTreeStore { */ constructor(host: UmbControllerHostElement) { super(host, UMB_DOCUMENT_TREE_STORE_CONTEXT.toString()); + + new UmbStoreConnector(host, { + store: this, + connectToStoreAlias: UMB_DOCUMENT_DETAIL_STORE_CONTEXT, + updateStoreItemMapper: (item) => this.#updateTreeItemMapper(item), + }); } + + #updateTreeItemMapper = (item: UmbDocumentDetailModel) => { + return { + variants: item.variants.map((variant) => { + return { + name: variant.name, + culture: variant.culture, + state: variant.state, + }; + }), + }; + }; } export default UmbDocumentTreeStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts index 0253a05463..d070bd03ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts @@ -1,5 +1,6 @@ import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js'; import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js'; +import { UmbDocumentTreeItemContext } from './tree-item/document-tree-item.context.js'; import type { ManifestRepository, ManifestTree, @@ -27,6 +28,7 @@ const treeStore: ManifestTreeStore = { const tree: ManifestTree = { type: 'tree', + kind: 'default', alias: UMB_DOCUMENT_TREE_ALIAS, name: 'Document Tree', meta: { @@ -38,7 +40,8 @@ const treeItem: ManifestTreeItem = { type: 'treeItem', alias: 'Umb.TreeItem.Document', name: 'Document Tree Item', - js: () => import('./tree-item/document-tree-item.element.js'), + element: () => import('./tree-item/document-tree-item.element.js'), + api: UmbDocumentTreeItemContext, meta: { entityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_DOCUMENT_ENTITY_TYPE], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts index e4d60cda12..e6dada196c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts @@ -1,8 +1,8 @@ import type { UmbDocumentTreeItemModel } from '../types.js'; -import { UmbUniqueTreeItemContext } from '@umbraco-cms/backoffice/tree'; +import { UmbDefaultTreeItemContext } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -export class UmbDocumentTreeItemContext extends UmbUniqueTreeItemContext { +export class UmbDocumentTreeItemContext extends UmbDefaultTreeItemContext { constructor(host: UmbControllerHost) { super(host); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts index 229f03f137..b192a7d34c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts @@ -1,33 +1,12 @@ import type { UmbDocumentTreeItemModel } from '../types.js'; -import { UmbDocumentTreeItemContext } from './document-tree-item.context.js'; -import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, nothing, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbTreeItemElement } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbTreeItemElementBase } from '@umbraco-cms/backoffice/tree'; @customElement('umb-document-tree-item') -export class UmbDocumentTreeItemElement extends UmbLitElement implements UmbTreeItemElement { - private _item?: UmbDocumentTreeItemModel; - @property({ type: Object, attribute: false }) - public get item() { - return this._item; - } - public set item(value: UmbDocumentTreeItemModel | undefined) { - this._item = value; - this.#context.setTreeItem(value); - } - - #context = new UmbDocumentTreeItemContext(this); - - render() { - if (!this.item) return nothing; - return html` - ${this.#renderIconWithStatusSymbol()} ${this.#renderLabel()} - `; - } - +export class UmbDocumentTreeItemElement extends UmbTreeItemElementBase { // TODO: implement correct status symbol - #renderIconWithStatusSymbol() { + renderIconContainer() { return html` ${this.item?.documentType.icon @@ -42,8 +21,8 @@ export class UmbDocumentTreeItemElement extends UmbLitElement implements UmbTree // TODO: lower opacity if item is not published // TODO: get correct variant name - #renderLabel() { - return html` ${this.item?.variants[0].name} `; + renderLabel() { + return html`${this.item?.variants[0].name} `; } static styles = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts index 229e71f366..b15f0487d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts @@ -23,5 +23,5 @@ export interface UmbDocumentTreeRootModel extends UmbUniqueTreeRootModel { export interface UmbDocumentTreeItemVariantModel { name: string; culture: string | null; - state: DocumentVariantStateModel; // TODO: make our own enum for this. We might have states for "unsaved changes" etc. + state: DocumentVariantStateModel | null; // TODO: make our own enum for this. We might have states for "unsaved changes" etc. } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts index e95b6522f2..3ba9e2e0af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts @@ -13,7 +13,6 @@ export interface UmbDocumentDetailModel { isTrashed: boolean; template: { unique: string } | null; unique: string; - parentUnique: string | null; urls: Array; values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.ts index 11e021d7f3..a8bd2b2dcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.ts @@ -70,7 +70,7 @@ export class UmbInputDocumentGranularUserPermissionElement extends FormControlMi } #addGranularPermission() { - this.#documentPickerModalContext = this.#modalManagerContext?.open(UMB_DOCUMENT_PICKER_MODAL, { + this.#documentPickerModalContext = this.#modalManagerContext?.open(this, UMB_DOCUMENT_PICKER_MODAL, { data: { hideTreeRoot: true, // prevent already selected items to be picked again @@ -115,7 +115,7 @@ export class UmbInputDocumentGranularUserPermissionElement extends FormControlMi const name = item.variants[0]?.name; const headline = name ? `Permissions for ${name}` : 'Permissions'; - this.#entityUserPermissionModalContext = this.#modalManagerContext?.open(UMB_ENTITY_USER_PERMISSION_MODAL, { + this.#entityUserPermissionModalContext = this.#modalManagerContext?.open(this, UMB_ENTITY_USER_PERMISSION_MODAL, { data: { unique: item.unique, entityType: item.entityType, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index a9f92011bc..08c5865a48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -2,12 +2,17 @@ import { UmbDocumentTypeDetailRepository } from '../../document-types/repository import { UmbDocumentPropertyDataContext } from '../property-dataset-context/document-property-dataset-context.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentDetailRepository } from '../repository/index.js'; -import type { UmbDocumentDetailModel, UmbDocumentVariantModel, UmbDocumentVariantOptionModel } from '../types.js'; +import type { + UmbDocumentDetailModel, + UmbDocumentValueModel, + UmbDocumentVariantModel, + UmbDocumentVariantOptionModel, +} from '../types.js'; import { umbPickDocumentVariantModal, type UmbDocumentVariantPickerModalType } from '../modals/index.js'; import { UmbDocumentPublishingRepository } from '../repository/publishing/index.js'; import { UmbUnpublishDocumentEntityAction } from '../entity-actions/unpublish.action.js'; import { UMB_DOCUMENT_WORKSPACE_ALIAS } from './manifests.js'; -import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import { UMB_INVARIANT_CULTURE, UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbEditableWorkspaceContextBase, @@ -25,6 +30,8 @@ import { import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbLanguageCollectionRepository, type UmbLanguageDetailModel } from '@umbraco-cms/backoffice/language'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; +import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; type EntityType = UmbDocumentDetailModel; export class UmbDocumentWorkspaceContext @@ -35,6 +42,8 @@ export class UmbDocumentWorkspaceContext public readonly repository = new UmbDocumentDetailRepository(this); public readonly publishingRepository = new UmbDocumentPublishingRepository(this); + #parent?: { entityType: string; unique: string | null }; + /** * The document is the current state/draft version of the document. */ @@ -55,27 +64,58 @@ export class UmbDocumentWorkspaceContext readonly contentTypeUnique = this.#currentData.asObservablePart((data) => data?.documentType.unique); readonly contentTypeHasCollection = this.#currentData.asObservablePart((data) => !!data?.documentType.collection); readonly variants = this.#currentData.asObservablePart((data) => data?.variants ?? []); - readonly variantOptions = mergeObservables([this.variants, this.languages], ([variants, languages]) => { - return languages.map((language) => { - return { - variant: variants.find((x) => x.culture === language.unique), - language, - // TODO: When including segments, this should be updated to include the segment as well. [NL] - unique: language.unique, // This must be a variantId string! - } as UmbDocumentVariantOptionModel; - }); - }); readonly urls = this.#currentData.asObservablePart((data) => data?.urls || []); readonly templateId = this.#currentData.asObservablePart((data) => data?.template?.unique || null); readonly structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); + readonly variesByCulture = this.structure.ownerContentTypePart((x) => x?.variesByCulture); + //#variesByCulture?: boolean; + readonly variesBySegment = this.structure.ownerContentTypePart((x) => x?.variesBySegment); + //#variesBySegment?: boolean; + readonly varies = this.structure.ownerContentTypePart((x) => + x ? x.variesByCulture || x.variesBySegment : undefined, + ); + #varies?: boolean; + readonly splitView = new UmbWorkspaceSplitViewManager(); + readonly variantOptions = mergeObservables( + [this.varies, this.variants, this.languages], + ([varies, variants, languages]) => { + // TODO: When including segments, when be aware about the case of segment varying when not culture varying. [NL] + if (varies === true) { + return languages.map((language) => { + return { + variant: variants.find((x) => x.culture === language.unique), + language, + // TODO: When including segments, this object should be updated to include a object for the segment. [NL] + // TODO: When including segments, the unique should be updated to include the segment as well. [NL] + unique: language.unique, // This must be a variantId string! + culture: language.unique, + segment: null, + } as UmbDocumentVariantOptionModel; + }); + } else if (varies === false) { + return [ + { + variant: variants.find((x) => x.culture === null), + language: languages.find((x) => x.isDefault), + culture: null, + segment: null, + unique: UMB_INVARIANT_CULTURE, // This must be a variantId string! + } as UmbDocumentVariantOptionModel, + ]; + } + return [] as Array; + }, + ); + constructor(host: UmbControllerHost) { super(host, UMB_DOCUMENT_WORKSPACE_ALIAS); this.observe(this.contentTypeUnique, (unique) => this.structure.loadType(unique)); + this.observe(this.varies, (varies) => (this.#varies = varies)); this.loadLanguages(); } @@ -104,9 +144,10 @@ export class UmbDocumentWorkspaceContext return data || undefined; } - async create(parentUnique: string | null, documentTypeUnique: string) { + async create(parent: { entityType: string; unique: string | null }, documentTypeUnique: string) { this.resetState(); - this.#getDataPromise = this.repository.createScaffold(parentUnique, { + this.#parent = parent; + this.#getDataPromise = this.repository.createScaffold({ documentType: { unique: documentTypeUnique, collection: null, @@ -137,6 +178,18 @@ export class UmbDocumentWorkspaceContext return this.getData()?.documentType.unique; } + // TODO: Check if this is used: + getVaries() { + return this.#varies; + } + /* + getVariesByCulture() { + return this.#variesByCulture; + } + getVariesBySegment() { + return this.#variesBySegment; + }*/ + variantById(variantId: UmbVariantId) { return this.#currentData.asObservablePart((data) => data?.variants?.find((x) => variantId.compare(x))); } @@ -258,30 +311,57 @@ export class UmbDocumentWorkspaceContext #updateVariantData(variantId: UmbVariantId, update?: Partial) { const currentData = this.getData(); if (!currentData) throw new Error('Data is missing'); - const variant = currentData.variants.find((x) => variantId.compare(x)); - const newVariants = appendToFrozenArray( - currentData.variants, - { - state: null, - name: '', - publishDate: null, - createDate: null, - updateDate: null, - ...variantId.toObject(), - ...variant, - ...update, - }, - (x) => variantId.compare(x), - ); - this.#currentData.update({ variants: newVariants }); + if (this.#varies === true) { + // If variant Id is invariant, we don't to have the variant appended to our data. + if (variantId.isInvariant()) return; + const variant = currentData.variants.find((x) => variantId.compare(x)); + const newVariants = appendToFrozenArray( + currentData.variants, + { + state: null, + name: '', + publishDate: null, + createDate: null, + updateDate: null, + ...variantId.toObject(), + ...variant, + ...update, + }, + (x) => variantId.compare(x), + ); + this.#currentData.update({ variants: newVariants }); + } else if (this.#varies === false) { + // TODO: Beware about segments, in this case we need to also consider segments, if its allowed to vary by segments. + const invariantVariantId = UmbVariantId.CreateInvariant(); + const variant = currentData.variants.find((x) => invariantVariantId.compare(x)); + // Cause we are invariant, we will just overwrite all variants with this one: + const newVariants = [ + { + state: null, + name: '', + publishDate: null, + createDate: null, + updateDate: null, + ...invariantVariantId.toObject(), + ...variant, + ...update, + }, + ]; + this.#currentData.update({ variants: newVariants }); + } else { + throw new Error('Varies by culture is missing'); + } } - async #pickVariantsForAction(type: UmbDocumentVariantPickerModalType): Promise { + async #runUserFlorFor(type: UmbDocumentVariantPickerModalType): Promise { const activeVariants = this.splitView.getActiveVariants(); - // TODO: Picked variants should include the ones that has been changed (but not jet saved) this requires some more awareness about the state of runtime data. [NL] const activeVariantIds = activeVariants.map((activeVariant) => UmbVariantId.Create(activeVariant)); - const selected = activeVariantIds.concat(this.#calculateChangedVariants()); + // TODO: We need to filter the selected array, so it only contains one of each variantId. [NL] + const changedVariantIds = this.#calculateChangedVariants(); + const selected = activeVariantIds.concat(changedVariantIds); + // Selected can contain entries that are not part of the options, therefor the modal filters selection based on options. + const options = await firstValueFrom(this.variantOptions); // If there is only one variant, we don't need to open the modal. @@ -289,8 +369,8 @@ export class UmbDocumentWorkspaceContext throw new Error('No variants are available'); } else if (options.length === 1) { // If only one option we will skip ahead and save the document with the only variant available: - const firstVariant = new UmbVariantId(options[0].language.unique, null); - return await this.#performSaveOrCreate([firstVariant]); + const firstVariant = UmbVariantId.Create(options[0]); + return this.#performSaveOrCreate([firstVariant]); } const selectedVariants = await umbPickDocumentVariantModal(this, { type, options, selected }); @@ -298,41 +378,108 @@ export class UmbDocumentWorkspaceContext // If no variants are selected, we don't save anything. if (!selectedVariants.length) return []; - return await this.#performSaveOrCreate(selectedVariants); + return this.#performSaveOrCreate(selectedVariants); } - async #performSaveOrCreate(selectedVariants: Array) { + #buildSaveData(selectedVariants: Array): UmbDocumentDetailModel { const data = this.getData(); if (!data) throw new Error('Data is missing'); if (!data.unique) throw new Error('Unique is missing'); + const invariantVariantId = UmbVariantId.CreateInvariant(); + if (this.#varies === false) { + // If we do not vary, we wil just do this for the invariant variant id. + selectedVariants = [invariantVariantId]; + } + + const persistedData = this.#persistedData.getValue(); + + const variantIdsToParseForValues = [...selectedVariants]; + if (this.#varies === true) { + // If we vary then We need to include the invariant variant id for invariant values to be saved, as we always want to save the invariant values. + variantIdsToParseForValues.push(invariantVariantId); + } + + // Combine data and persisted data depending on the selectedVariants. Always use the invariant values from the data. + // loops over each entry in values, determine wether the value should be from the data or the persisted data, depending on wether its a selectedVariant or an invariant value. + // loops over each entry in variants, determine wether the variant should be from the data or the persisted data, depending on the selectedVariants. + return { + ...data, + values: data.values + .map((value) => { + // Should this value be saved? + if (variantIdsToParseForValues.some((x) => x.compare(value))) { + return value; + } else { + // If not we will find the value in the persisted data and use that instead. + return persistedData?.values.find( + (x) => x.alias === value.alias && x.culture === value.culture && x.segment === value.segment, + ); + } + }) + .filter((x) => x !== undefined) as Array>, + variants: data.variants + .map((variant) => { + // Should this value be saved? + if (selectedVariants.some((x) => x.compare(variant))) { + return variant; + } else { + // If not we will find the value in the persisted data and use that instead. + return persistedData?.variants.find((x) => x.culture === variant.culture && x.segment === variant.segment); + } + }) + .filter((x) => x !== undefined) as Array, + }; + } + + async #performSaveOrCreate(selectedVariants: Array) { + const saveData = this.#buildSaveData(selectedVariants); if (this.getIsNew()) { - if ((await this.repository.create(data)).data !== undefined) { - this.setIsNew(false); + if (!this.#parent) throw new Error('Parent is not set'); + + const { data: create, error } = await this.repository.create(saveData, this.#parent.unique); + if (!create || error) { + console.error('Error creating document', error); + throw new Error('Error creating document'); } + + this.setIsNew(false); + + // TODO: this might not be the right place to alert the tree, but it works for now + const eventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); + const event = new UmbReloadTreeItemChildrenRequestEntityActionEvent({ + entityType: this.#parent.entityType, + unique: this.#parent.unique, + }); + eventContext.dispatchEvent(event); } else { - await this.repository.save(data); + const { data: save, error } = await this.repository.save(saveData); + if (!save || error) { + console.error('Error saving document', error); + throw new Error('Error saving document'); + } } return selectedVariants; } async save() { - await this.#pickVariantsForAction('save'); + await this.#runUserFlorFor('save'); const data = this.getData(); if (!data) throw new Error('Data is missing'); this.#persistedData.setValue(data); this.#currentData.setValue(data); - this.saveComplete(data); + this.workspaceComplete(data); } public async publish() { - const variantIds = await this.#pickVariantsForAction('publish'); + const variantIds = await this.#runUserFlorFor('publish'); const unique = this.getUnique(); if (variantIds.length && unique) { await this.publishingRepository.publish(unique, variantIds); + this.workspaceComplete(this.#currentData.getValue()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts index ef5236c35a..ffb97061a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts @@ -30,13 +30,14 @@ export class UmbDocumentWorkspaceElement extends UmbLitElement { this._routes = [ { - path: 'create/:parentUnique/:documentTypeUnique', + path: 'create/parent/:entityType/:parentUnique/:documentTypeUnique', component: this.#editorElement, setup: async (_component, info) => { // TODO: Remember the perspective of permissions here, we need to check if the user has access to create a document of this type under this parent? + const parentEntityType = info.match.params.entityType; const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; const documentTypeUnique = info.match.params.documentTypeUnique; - this.#workspaceContext!.create(parentUnique, documentTypeUnique); + this.#workspaceContext!.create({ entityType: parentEntityType, unique: parentUnique }, documentTypeUnique); new UmbWorkspaceIsNewRedirectController( this, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts index 09113b68a7..597cc20a3c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts @@ -1,6 +1,7 @@ import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UMB_DOCUMENT_WORKSPACE_HAS_COLLECTION_CONDITION } from '../conditions/document-workspace-has-collection.condition.js'; import { UmbUnpublishDocumentEntityAction } from '../entity-actions/unpublish.action.js'; +import { UmbPublishDocumentEntityAction } from '../entity-actions/publish.action.js'; import { UmbDocumentSaveAndPublishWorkspaceAction } from './actions/save-and-publish.action.js'; //import { UmbDocumentSaveAndPreviewWorkspaceAction } from './actions/save-and-preview.action.js'; //import { UmbSaveAndScheduleDocumentWorkspaceAction } from './actions/save-and-schedule.action.js'; @@ -11,7 +12,6 @@ import type { ManifestWorkspaceActionMenuItem, ManifestWorkspaceView, } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbPublishDocumentEntityAction } from '../entity-actions/publish.action.js'; export const UMB_DOCUMENT_WORKSPACE_ALIAS = 'Umb.Workspace.Document'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/collection/document-workspace-view-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/collection/document-workspace-view-collection.element.ts index 6d0baa9459..758a11482d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/collection/document-workspace-view-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/collection/document-workspace-view-collection.element.ts @@ -31,7 +31,7 @@ export class UmbDocumentWorkspaceViewCollectionElement extends UmbLitElement imp this._documentUnique = unique; }); this.observe( - workspaceContext.structure.ownerContentType(), + workspaceContext.structure.ownerContentType, async (documentType) => { if (!documentType || !documentType.collection) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts index 86318b9381..7d10dfd8dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts @@ -62,7 +62,6 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement { @state() private _editTemplatePath = ''; - #modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; #workspaceContext?: UmbDocumentWorkspaceContext; #templateRepository = new UmbTemplateDetailRepository(this); @@ -86,10 +85,6 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement { this.#getData(); this._observeContent(); }); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalManagerContext) => { - this.#modalManagerContext = modalManagerContext; - }); } async #getData() { @@ -253,8 +248,8 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement { } async #openTemplatePicker() { - console.log(this._allowedTemplates); - const modal = this.#modalManagerContext?.open(UMB_TEMPLATE_PICKER_MODAL, { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modal = modalManager.open(this, UMB_TEMPLATE_PICKER_MODAL, { data: { hideTreeRoot: true, multiple: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts index 5f536cd031..66680853d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts @@ -1,3 +1,4 @@ +import { UmbHealthCheckContext } from './health-check.context.js'; import type { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element.js'; import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT } from './health-check-dashboard.context.js'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; @@ -55,10 +56,10 @@ export class UmbDashboardHealthCheckElement extends UmbLitElement { type: 'healthCheck', alias: `Umb.HealthCheck.${group.name?.replace(/\s+/g, '') || ''}`, name: `${group.name} Health Check`, + api: () => import('./health-check.context.js'), weight: 500, meta: { label: group.name || '', - api: () => import('./health-check.context.js'), }, }; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts index 75c362096c..441eaee586 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts @@ -1,6 +1,7 @@ -import type { UmbHealthCheckContext } from './health-check.context.js'; +import { UmbHealthCheckContext } from './health-check.context.js'; import type { ManifestHealthCheck } from '@umbraco-cms/backoffice/extension-registry'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { loadManifestApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbHealthCheckDashboardContext { #manifests: ManifestHealthCheck[] = []; @@ -27,9 +28,12 @@ export class UmbHealthCheckDashboardContext { #registerApis() { this.apis.clear(); - this.#manifests.forEach((manifest) => { - // the group name (label) is the unique key for a health check group - this.apis.set(manifest.meta.label, new manifest.meta.api(this.host)); + this.#manifests.forEach(async (manifest) => { + if (!manifest.api) return; + const api = await loadManifestApi(manifest.api); + if (!api) return; + const apiInstance = new api(this.host); + if (api && UmbHealthCheckContext.isInstanceLike(apiInstance)) this.apis.set(manifest.meta.label, apiInstance); }); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts index ed0672d484..0e7df39200 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts @@ -7,8 +7,9 @@ import { HealthCheckResource } from '@umbraco-cms/backoffice/external/backend-ap import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export class UmbHealthCheckContext { +export class UmbHealthCheckContext implements UmbApi { private _checks = new BehaviorSubject(undefined); public readonly checks = this._checks.asObservable(); @@ -43,6 +44,12 @@ export class UmbHealthCheckContext { this._results.next(undefined); } } + + static isInstanceLike(instance: unknown): instance is UmbHealthCheckContext { + return typeof instance === 'object' && (instance as UmbHealthCheckContext).results !== undefined; + } + + public destroy(): void {} } export default UmbHealthCheckContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-action.element.ts index f964d1d736..9165ea0ff6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-action.element.ts @@ -1,7 +1,6 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; - import type { HealthCheckActionRequestModel } from '@umbraco-cms/backoffice/external/backend-api'; import { HealthCheckResource } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts index fd2a2b8453..07f0b8a453 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts @@ -3,18 +3,15 @@ import type { UmbHealthCheckDashboardContext } from '../health-check-dashboard.c import { UMB_HEALTHCHECK_DASHBOARD_CONTEXT } from '../health-check-dashboard.context.js'; import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, property, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; - import type { HealthCheckActionRequestModel, HealthCheckGroupPresentationModel, - HealthCheckModel, HealthCheckWithResultPresentationModel, } from '@umbraco-cms/backoffice/external/backend-api'; -import { HealthCheckResource, StatusResultTypeModel } from '@umbraco-cms/backoffice/external/backend-api'; +import { StatusResultTypeModel } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import './health-check-action.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import './health-check-action.element.js'; @customElement('umb-dashboard-health-check-group') export class UmbDashboardHealthCheckGroupElement extends UmbLitElement { @@ -29,9 +26,6 @@ export class UmbDashboardHealthCheckGroupElement extends UmbLitElement { private _healthCheckContext?: UmbHealthCheckDashboardContext; - @state() - private _checks?: HealthCheckModel[]; - @state() private _idResults?: HealthCheckWithResultPresentationModel[]; @@ -48,7 +42,6 @@ export class UmbDashboardHealthCheckGroupElement extends UmbLitElement { this._api.getGroupChecks(this.groupName); this.observe(this._api.checks, (group) => { - this._checks = group?.checks; this._group = group; }); @@ -65,10 +58,6 @@ export class UmbDashboardHealthCheckGroupElement extends UmbLitElement { this._buttonState = 'success'; } - private _onActionClick(action: HealthCheckActionRequestModel) { - return tryExecuteAndNotify(this, HealthCheckResource.postHealthCheckExecuteAction({ requestBody: action })); - } - render() { return html` ← Back to overview ${this._group ? this.#renderGroup() : nothing}`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts index d05a3f7022..730f35f8d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts @@ -29,8 +29,8 @@ export class UmbDashboardHealthCheckOverviewElement extends UmbLitElement { render() { return html` -
- Health Check +