@umbraco-cms/backoffice 16.0.0-rc3 → 16.0.0-rc5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cms/apps/backoffice/backoffice.context.js +5 -1
- package/dist-cms/apps/backoffice/components/backoffice-main.element.js +3 -1
- package/dist-cms/assets/lang/en-us.js +1 -1
- package/dist-cms/assets/lang/en-us.ts +1 -1
- package/dist-cms/css/uui-css.css +481 -100
- package/dist-cms/custom-elements.json +33 -17
- package/dist-cms/external/rxjs/index.d.ts +1 -1
- package/dist-cms/external/rxjs/index.js +3 -3
- package/dist-cms/external/uui/index.js +663 -393
- package/dist-cms/libs/context-api/consume/context-consumer.js +1 -2
- package/dist-cms/libs/controller-api/controller-host.mixin.js +2 -2
- package/dist-cms/libs/extension-api/controller/server-extension-registrator.controller.js +6 -2
- package/dist-cms/packages/block/block/context/block-entry.context.js +10 -3
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.js +1 -0
- package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +2 -1
- package/dist-cms/packages/content/content/components/property-type-based-property/index.d.ts +2 -0
- package/dist-cms/packages/content/content/components/property-type-based-property/index.js +2 -0
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context-token.d.ts +8 -0
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context-token.js +7 -0
- package/dist-cms/packages/content/content/{content-property.context.d.ts → components/property-type-based-property/property-type-based-property.context.d.ts} +6 -1
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.context.js +19 -0
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.element.d.ts +1 -1
- package/dist-cms/packages/content/content/components/property-type-based-property/property-type-based-property.element.js +8 -7
- package/dist-cms/packages/content/content/global-components/content-workspace-property.element.d.ts +26 -0
- package/dist-cms/packages/content/content/global-components/content-workspace-property.element.js +104 -0
- package/dist-cms/packages/content/content/global-components/index.d.ts +1 -0
- package/dist-cms/packages/content/content/global-components/index.js +1 -0
- package/dist-cms/packages/content/content/index.d.ts +1 -2
- package/dist-cms/packages/content/content/index.js +1 -2
- package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +2 -1
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.d.ts +1 -3
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.js +8 -48
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-property-structure-helper.class.d.ts +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-property-structure-helper.class.js +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +3 -3
- package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +11 -7
- package/dist-cms/packages/content/property-type/workspace/property-type-workspace.context.js +5 -1
- package/dist-cms/packages/core/collection/collection-view.manager.js +4 -4
- package/dist-cms/packages/core/collection/components/collection-filter-field.element.js +1 -1
- package/dist-cms/packages/core/components/input-number-range/input-number-range.element.d.ts +4 -1
- package/dist-cms/packages/core/components/input-number-range/input-number-range.element.js +27 -3
- package/dist-cms/packages/core/components/input-with-alias/input-with-alias.element.js +0 -2
- package/dist-cms/packages/core/localization/manifests.js +27 -27
- package/dist-cms/packages/core/localization/registry/localization.registry.d.ts +2 -1
- package/dist-cms/packages/core/localization/registry/localization.registry.js +97 -37
- package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.js +2 -2
- package/dist-cms/packages/core/package.json +2 -2
- package/dist-cms/packages/core/property/components/property/property.element.js +1 -0
- package/dist-cms/packages/core/property-editor/extensions/property-editor-ui-element.interface.d.ts +2 -0
- package/dist-cms/packages/core/repository/detail/detail-repository-base.js +6 -7
- package/dist-cms/packages/core/repository/item/item-repository-base.d.ts +1 -1
- package/dist-cms/packages/core/repository/item/item-repository-base.js +25 -9
- package/dist-cms/packages/core/repository/item/item-repository.interface.d.ts +1 -1
- package/dist-cms/packages/core/router/route/router-slot.element.js +3 -1
- package/dist-cms/packages/core/router/router-slot/model.d.ts +1 -0
- package/dist-cms/packages/core/router/router-slot/router-slot.d.ts +1 -0
- package/dist-cms/packages/core/router/router-slot/router-slot.js +30 -0
- package/dist-cms/packages/core/tree/data/tree-repository-base.d.ts +5 -1
- package/dist-cms/packages/core/tree/data/tree-repository-base.js +27 -13
- package/dist-cms/packages/core/tree/tree-item/tree-item.element.js +1 -1
- package/dist-cms/packages/core/validation/controllers/validation.controller.js +1 -1
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/save.action.js +3 -1
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.js +5 -2
- package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +2 -2
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace.context-token.js +1 -1
- package/dist-cms/packages/core/workspace/controllers/workspace-is-new-redirect.controller.d.ts +7 -0
- package/dist-cms/packages/core/workspace/controllers/workspace-is-new-redirect.controller.js +31 -10
- package/dist-cms/packages/core/workspace/controllers/workspace-route-manager.controller.js +5 -5
- package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +1 -1
- package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.d.ts +1 -0
- package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.js +10 -0
- package/dist-cms/packages/data-type/collection/repository/data-type-collection.repository.js +6 -1
- package/dist-cms/packages/data-type/repository/detail/data-type-detail.repository.js +6 -1
- package/dist-cms/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.js +5 -4
- package/dist-cms/packages/documents/documents/entity-actions/create-blueprint/modal/create-blueprint-modal.element.js +1 -1
- package/dist-cms/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.js +12 -2
- package/dist-cms/packages/documents/documents/tree/document-tree.context.js +2 -2
- package/dist-cms/packages/documents/documents/types.d.ts +1 -0
- package/dist-cms/packages/documents/documents/url/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/url/index.js +1 -0
- package/dist-cms/packages/documents/documents/url/types.d.ts +1 -0
- package/dist-cms/packages/documents/documents/url/types.js +1 -0
- package/dist-cms/packages/documents/documents/user-permissions/document/conditions/document-user-permission.condition.js +3 -1
- package/dist-cms/packages/documents/documents/workspace/actions/save.action.js +4 -2
- package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +13 -7
- package/dist-cms/packages/log-viewer/components/log-viewer-date-range-selector.element.d.ts +0 -2
- package/dist-cms/packages/log-viewer/components/log-viewer-date-range-selector.element.js +12 -24
- package/dist-cms/packages/log-viewer/repository/sources/log-viewer.server.data.js +9 -1
- package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.js +1 -1
- package/dist-cms/packages/media/media/dashboard/media-dashboard.element.js +1 -0
- package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +2 -2
- package/dist-cms/packages/media/media/tree/media-tree.context.js +2 -2
- package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.js +1 -0
- package/dist-cms/packages/members/member/repository/member-repository-base.d.ts +8 -8
- package/dist-cms/packages/members/member/repository/member-repository-base.js +13 -12
- package/dist-cms/packages/members/member/workspace/member/member-workspace-editor.element.js +1 -0
- package/dist-cms/packages/packages/package-section/views/created/created-packages-section-view.element.js +1 -0
- package/dist-cms/packages/property-editors/dimensions/property-editor-ui-dimensions.element.js +16 -3
- package/dist-cms/packages/segment/package.json +8 -0
- package/dist-cms/packages/settings/package.json +8 -0
- package/dist-cms/packages/settings/vite.config.d.ts +2 -0
- package/dist-cms/packages/settings/vite.config.js +11 -0
- package/dist-cms/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.js +1 -1
- package/dist-cms/packages/templating/partial-views/repository/partial-view-detail.server.data-source.js +3 -3
- package/dist-cms/packages/templating/partial-views/tree/folder/repository/partial-view-folder.server.data-source.js +2 -2
- package/dist-cms/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.js +1 -1
- package/dist-cms/packages/templating/scripts/repository/script-detail.server.data-source.js +3 -3
- package/dist-cms/packages/templating/scripts/tree/folder/repository/script-folder.server.data-source.js +2 -2
- package/dist-cms/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.js +1 -1
- package/dist-cms/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.js +3 -3
- package/dist-cms/packages/templating/stylesheets/tree/folder/repository/stylesheet-folder.server.data-source.js +2 -2
- package/dist-cms/packages/tiptap/components/character-map/character-map-modal.element.js +0 -4
- package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.js +1 -1
- package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.d.ts +6 -0
- package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.js +7 -1
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.js +1 -1
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-statusbar-configuration.element.js +0 -4
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.js +1 -4
- package/dist-cms/packages/translation/package.json +8 -0
- package/dist-cms/packages/user/current-user/current-user.context.js +4 -1
- package/dist-cms/packages/user/current-user/repository/current-user.repository.d.ts +2 -2
- package/dist-cms/packages/user/current-user/repository/current-user.repository.js +8 -5
- package/dist-cms/packages/user/user/repository/user-repository-base.d.ts +7 -7
- package/dist-cms/packages/user/user/repository/user-repository-base.js +13 -12
- package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.repository.js +4 -1
- package/dist-cms/packages/user/user-group/collection/user-group-collection.element.js +1 -1
- package/dist-cms/packages/webhook/webhook-event/repository/webhook-event.repository.d.ts +4 -0
- package/dist-cms/packages/webhook/webhook-event/repository/webhook-event.repository.js +7 -1
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package.json +1 -1
- package/dist-cms/vscode-html-custom-data.json +16 -10
- package/examples/modal-routed/dashboard.element.ts +1 -0
- package/examples/modal-routed/modal/example-modal.element.ts +1 -0
- package/examples/validation-context/validation-context-dashboard.ts +12 -12
- package/package.json +8 -7
- package/dist-cms/packages/content/content/content-property.context-token.d.ts +0 -3
- package/dist-cms/packages/content/content/content-property.context-token.js +0 -2
- package/dist-cms/packages/content/content/content-property.context.js +0 -14
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.d.ts +0 -21
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.js +0 -63
|
@@ -188,8 +188,7 @@ export class UmbContextConsumer {
|
|
|
188
188
|
cancelAnimationFrame(this.#raf);
|
|
189
189
|
this.#raf = undefined;
|
|
190
190
|
}
|
|
191
|
-
this.#
|
|
192
|
-
this.#callback?.(undefined);
|
|
191
|
+
this.#unprovide();
|
|
193
192
|
if (this.#promiseRejecter) {
|
|
194
193
|
const hostElement = this._retrieveHost();
|
|
195
194
|
this.#promiseRejecter(`Context request was cancelled, host was disconnected. (Context Alias: ${this.#contextAlias} with API Alias: ${this.#apiAlias}). Controller is hosted on ${hostElement?.parentNode?.nodeName ?? 'Not attached node'} > ${hostElement?.nodeName}`);
|
|
@@ -43,8 +43,8 @@ export const UmbControllerHostMixin = (superClass) => {
|
|
|
43
43
|
if (this.#attached) {
|
|
44
44
|
// If a controller is created on a already attached element, then it will be added directly. This might not be optimal. As the controller it self has not finished its constructor method jet. therefor i postpone the call: [NL]
|
|
45
45
|
Promise.resolve().then(() => {
|
|
46
|
-
// Extra check to see if we are still attached at this point:
|
|
47
|
-
if (this.#attached) {
|
|
46
|
+
// Extra check to see if we are still attached and still added at this point:
|
|
47
|
+
if (this.#attached && this.#controllers.includes(ctrl)) {
|
|
48
48
|
ctrl.hostConnected();
|
|
49
49
|
}
|
|
50
50
|
});
|
|
@@ -27,7 +27,9 @@ export class UmbServerExtensionRegistrator extends UmbControllerBase {
|
|
|
27
27
|
* @remark Users must have the BACKOFFICE_ACCESS permission to access this method.
|
|
28
28
|
*/
|
|
29
29
|
async registerPrivateExtensions() {
|
|
30
|
-
const { data: packages } = await tryExecute(this, ManifestService.getManifestManifestPrivate()
|
|
30
|
+
const { data: packages } = await tryExecute(this, ManifestService.getManifestManifestPrivate(), {
|
|
31
|
+
disableNotifications: true,
|
|
32
|
+
});
|
|
31
33
|
if (packages) {
|
|
32
34
|
await this.#loadServerPackages(packages);
|
|
33
35
|
}
|
|
@@ -38,7 +40,9 @@ export class UmbServerExtensionRegistrator extends UmbControllerBase {
|
|
|
38
40
|
* @remark Any user can access this method without any permissions.
|
|
39
41
|
*/
|
|
40
42
|
async registerPublicExtensions() {
|
|
41
|
-
const { data: packages } = await tryExecute(this, ManifestService.getManifestManifestPublic()
|
|
43
|
+
const { data: packages } = await tryExecute(this, ManifestService.getManifestManifestPublic(), {
|
|
44
|
+
disableNotifications: true,
|
|
45
|
+
});
|
|
42
46
|
if (packages) {
|
|
43
47
|
await this.#loadServerPackages(packages);
|
|
44
48
|
}
|
|
@@ -384,17 +384,24 @@ export class UmbBlockEntryContext extends UmbContextBase {
|
|
|
384
384
|
}, 'observeSettingsKey');
|
|
385
385
|
}
|
|
386
386
|
async #observeVariantId() {
|
|
387
|
-
if (!this._manager)
|
|
387
|
+
if (!this._manager) {
|
|
388
|
+
this.removeUmbControllerByAlias('observeVariantId');
|
|
388
389
|
return;
|
|
390
|
+
}
|
|
389
391
|
await this.#contentStructurePromise;
|
|
390
392
|
if (!this.#contentStructure) {
|
|
391
393
|
throw new Error('No contentStructure found');
|
|
392
394
|
}
|
|
395
|
+
if (!this._manager) {
|
|
396
|
+
// The manager maybe got removed while we awaited the promise above.
|
|
397
|
+
this.removeUmbControllerByAlias('observeVariantId');
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
393
400
|
// observe variantId:
|
|
394
401
|
this.observe(observeMultiple([
|
|
395
402
|
this._manager.variantId,
|
|
396
|
-
this.#contentStructure
|
|
397
|
-
this.#contentStructure
|
|
403
|
+
this.#contentStructure.ownerContentTypeObservablePart((x) => x?.variesByCulture),
|
|
404
|
+
this.#contentStructure.ownerContentTypeObservablePart((x) => x?.variesBySegment),
|
|
398
405
|
]), ([variantId, variesByCulture, variesBySegment]) => {
|
|
399
406
|
if (!variantId || variesByCulture === undefined || variesBySegment === undefined)
|
|
400
407
|
return;
|
package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js
CHANGED
|
@@ -11,7 +11,7 @@ import { html, css, customElement, property, state, nothing } from '@umbraco-cms
|
|
|
11
11
|
import { stringOrStringArrayContains } from '@umbraco-cms/backoffice/utils';
|
|
12
12
|
import { UmbObserveValidationStateController } from '@umbraco-cms/backoffice/validation';
|
|
13
13
|
import { UmbDataPathBlockElementDataQuery } from '@umbraco-cms/backoffice/block';
|
|
14
|
-
import { UUIBlinkAnimationValue } from '@umbraco-cms/backoffice/external/uui';
|
|
14
|
+
import { UUIBlinkAnimationValue, UUIBlinkKeyframes } from '@umbraco-cms/backoffice/external/uui';
|
|
15
15
|
import { UMB_PROPERTY_CONTEXT, UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
|
|
16
16
|
import { UMB_CLIPBOARD_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/clipboard';
|
|
17
17
|
import '../ref-list-block/index.js';
|
|
@@ -324,6 +324,7 @@ let UmbBlockListEntryElement = class UmbBlockListEntryElement extends UmbLitElem
|
|
|
324
324
|
return this.#renderBlock();
|
|
325
325
|
}
|
|
326
326
|
static { this.styles = [
|
|
327
|
+
UUIBlinkKeyframes,
|
|
327
328
|
css `
|
|
328
329
|
:host {
|
|
329
330
|
position: relative;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { UmbPropertyTypeBasedPropertyContext } from './property-type-based-property.context.js';
|
|
2
|
+
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
|
|
3
|
+
export declare const UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT: UmbContextToken<UmbPropertyTypeBasedPropertyContext, UmbPropertyTypeBasedPropertyContext>;
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Use `UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT` instead.
|
|
6
|
+
* This will be removed in v.18
|
|
7
|
+
*/
|
|
8
|
+
export declare const UMB_CONTENT_PROPERTY_CONTEXT: UmbContextToken<UmbPropertyTypeBasedPropertyContext, UmbPropertyTypeBasedPropertyContext>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
|
|
2
|
+
export const UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT = new UmbContextToken('UmbPropertyTypeBasedPropertyContext');
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use `UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT` instead.
|
|
5
|
+
* This will be removed in v.18
|
|
6
|
+
*/
|
|
7
|
+
export const UMB_CONTENT_PROPERTY_CONTEXT = new UmbContextToken('UmbPropertyTypeBasedPropertyContext');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
|
2
2
|
import { UmbContextBase } from '@umbraco-cms/backoffice/class-api';
|
|
3
3
|
import type { UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class UmbPropertyTypeBasedPropertyContext extends UmbContextBase {
|
|
5
5
|
#private;
|
|
6
6
|
dataType: import("rxjs").Observable<{
|
|
7
7
|
unique: string;
|
|
@@ -9,3 +9,8 @@ export declare class UmbContentPropertyContext extends UmbContextBase {
|
|
|
9
9
|
constructor(host: UmbControllerHost);
|
|
10
10
|
setDataType(dataType: UmbPropertyTypeModel['dataType'] | undefined): void;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use `UmbPropertyTypeBasedPropertyContext` instead.
|
|
14
|
+
* This will be removed in v.18
|
|
15
|
+
*/
|
|
16
|
+
export { UmbPropertyTypeBasedPropertyContext as UmbContentPropertyContext };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT } from './property-type-based-property.context-token.js';
|
|
2
|
+
import { UmbContextBase } from '@umbraco-cms/backoffice/class-api';
|
|
3
|
+
import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api';
|
|
4
|
+
export class UmbPropertyTypeBasedPropertyContext extends UmbContextBase {
|
|
5
|
+
#dataType;
|
|
6
|
+
constructor(host) {
|
|
7
|
+
super(host, UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT);
|
|
8
|
+
this.#dataType = new UmbObjectState(undefined);
|
|
9
|
+
this.dataType = this.#dataType.asObservable();
|
|
10
|
+
}
|
|
11
|
+
setDataType(dataType) {
|
|
12
|
+
this.#dataType.setValue(dataType);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `UmbPropertyTypeBasedPropertyContext` instead.
|
|
17
|
+
* This will be removed in v.18
|
|
18
|
+
*/
|
|
19
|
+
export { UmbPropertyTypeBasedPropertyContext as UmbContentPropertyContext };
|
|
@@ -18,7 +18,7 @@ export declare class UmbPropertyTypeBasedPropertyElement extends UmbLitElement {
|
|
|
18
18
|
private _propertyEditorUiAlias?;
|
|
19
19
|
private _propertyEditorSchemaAlias?;
|
|
20
20
|
private _isUnsupported?;
|
|
21
|
-
private
|
|
21
|
+
private _dataTypeValues?;
|
|
22
22
|
private _dataTypeDetailRepository;
|
|
23
23
|
private _dataTypeObserver?;
|
|
24
24
|
private _checkSchemaSupport;
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import {
|
|
7
|
+
import { UmbPropertyTypeBasedPropertyContext } from './property-type-based-property.context.js';
|
|
8
8
|
import { css, customElement, html, ifDefined, property, state } from '@umbraco-cms/backoffice/external/lit';
|
|
9
9
|
import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type';
|
|
10
10
|
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
|
@@ -21,7 +21,7 @@ let UmbPropertyTypeBasedPropertyElement = class UmbPropertyTypeBasedPropertyElem
|
|
|
21
21
|
*/
|
|
22
22
|
this.readonly = false;
|
|
23
23
|
this._dataTypeDetailRepository = new UmbDataTypeDetailRepository(this);
|
|
24
|
-
this.#
|
|
24
|
+
this.#context = new UmbPropertyTypeBasedPropertyContext(this);
|
|
25
25
|
}
|
|
26
26
|
set property(value) {
|
|
27
27
|
const oldProperty = this._property;
|
|
@@ -40,11 +40,12 @@ let UmbPropertyTypeBasedPropertyElement = class UmbPropertyTypeBasedPropertyElem
|
|
|
40
40
|
// Change this to ownerSchemaEditorAlias and retrieve the correct information.
|
|
41
41
|
this._ownerEntityType = value;
|
|
42
42
|
}
|
|
43
|
-
#
|
|
43
|
+
#context;
|
|
44
44
|
async _checkSchemaSupport() {
|
|
45
45
|
if (!this._ownerEntityType || !this._propertyEditorSchemaAlias)
|
|
46
46
|
return;
|
|
47
47
|
if (this._ownerEntityType in UMB_UNSUPPORTED_EDITOR_SCHEMA_ALIASES) {
|
|
48
|
+
// TODO: We should get rid of this system, f your reading this please dont rely on this, we will get rid of it in the future. [NL]
|
|
48
49
|
this._isUnsupported = UMB_UNSUPPORTED_EDITOR_SCHEMA_ALIASES[this._ownerEntityType].includes(this._propertyEditorSchemaAlias);
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -55,8 +56,8 @@ let UmbPropertyTypeBasedPropertyElement = class UmbPropertyTypeBasedPropertyElem
|
|
|
55
56
|
await this._dataTypeDetailRepository.requestByUnique(dataTypeUnique);
|
|
56
57
|
this._dataTypeObserver = this.observe(await this._dataTypeDetailRepository.byUnique(dataTypeUnique), (dataType) => {
|
|
57
58
|
const contextValue = dataType ? { unique: dataType.unique } : undefined;
|
|
58
|
-
this.#
|
|
59
|
-
this.
|
|
59
|
+
this.#context.setDataType(contextValue);
|
|
60
|
+
this._dataTypeValues = dataType?.values;
|
|
60
61
|
this._propertyEditorUiAlias = dataType?.editorUiAlias || undefined;
|
|
61
62
|
this._propertyEditorSchemaAlias = dataType?.editorAlias || undefined;
|
|
62
63
|
this._checkSchemaSupport();
|
|
@@ -93,7 +94,7 @@ let UmbPropertyTypeBasedPropertyElement = class UmbPropertyTypeBasedPropertyElem
|
|
|
93
94
|
.description=${this._property.description ?? undefined}
|
|
94
95
|
.appearance=${this._property.appearance}
|
|
95
96
|
property-editor-ui-alias=${ifDefined(this._propertyEditorUiAlias)}
|
|
96
|
-
.config=${this.
|
|
97
|
+
.config=${this._dataTypeValues}
|
|
97
98
|
.validation=${this._property.validation}
|
|
98
99
|
?readonly=${this.readonly}>
|
|
99
100
|
</umb-property>
|
|
@@ -131,7 +132,7 @@ __decorate([
|
|
|
131
132
|
], UmbPropertyTypeBasedPropertyElement.prototype, "_isUnsupported", void 0);
|
|
132
133
|
__decorate([
|
|
133
134
|
state()
|
|
134
|
-
], UmbPropertyTypeBasedPropertyElement.prototype, "
|
|
135
|
+
], UmbPropertyTypeBasedPropertyElement.prototype, "_dataTypeValues", void 0);
|
|
135
136
|
UmbPropertyTypeBasedPropertyElement = __decorate([
|
|
136
137
|
customElement('umb-property-type-based-property')
|
|
137
138
|
], UmbPropertyTypeBasedPropertyElement);
|
package/dist-cms/packages/content/content/global-components/content-workspace-property.element.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { UMB_CONTENT_WORKSPACE_CONTEXT } from '../constants.js';
|
|
2
|
+
import { nothing } from '@umbraco-cms/backoffice/external/lit';
|
|
3
|
+
import type { UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type';
|
|
4
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
5
|
+
import { UmbVariantId } from '@umbraco-cms/backoffice/variant';
|
|
6
|
+
export declare class UmbContentWorkspacePropertyElement extends UmbLitElement {
|
|
7
|
+
#private;
|
|
8
|
+
private _alias?;
|
|
9
|
+
get alias(): string | undefined;
|
|
10
|
+
set alias(value: string | undefined);
|
|
11
|
+
_datasetVariantId?: UmbVariantId;
|
|
12
|
+
_dataPath?: string;
|
|
13
|
+
_viewable?: boolean;
|
|
14
|
+
_writeable?: boolean;
|
|
15
|
+
_workspaceContext?: typeof UMB_CONTENT_WORKSPACE_CONTEXT.TYPE;
|
|
16
|
+
_propertyType?: UmbPropertyTypeModel;
|
|
17
|
+
constructor();
|
|
18
|
+
willUpdate(changedProperties: Map<string, any>): void;
|
|
19
|
+
render(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
20
|
+
}
|
|
21
|
+
export default UmbContentWorkspacePropertyElement;
|
|
22
|
+
declare global {
|
|
23
|
+
interface HTMLElementTagNameMap {
|
|
24
|
+
'umb-content-workspace-property': UmbContentWorkspacePropertyElement;
|
|
25
|
+
}
|
|
26
|
+
}
|
package/dist-cms/packages/content/content/global-components/content-workspace-property.element.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { UMB_CONTENT_WORKSPACE_CONTEXT } from '../constants.js';
|
|
8
|
+
import { html, customElement, property, state, nothing } from '@umbraco-cms/backoffice/external/lit';
|
|
9
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
10
|
+
import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
|
|
11
|
+
import { UmbVariantId } from '@umbraco-cms/backoffice/variant';
|
|
12
|
+
import { UmbDataPathPropertyValueQuery } from '@umbraco-cms/backoffice/validation';
|
|
13
|
+
let UmbContentWorkspacePropertyElement = class UmbContentWorkspacePropertyElement extends UmbLitElement {
|
|
14
|
+
get alias() {
|
|
15
|
+
return this._alias;
|
|
16
|
+
}
|
|
17
|
+
set alias(value) {
|
|
18
|
+
this._alias = value;
|
|
19
|
+
this.#observePropertyType();
|
|
20
|
+
}
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
// The Property Dataset is local to the active variant, we use this to retrieve the variant we like to gather the value from.
|
|
24
|
+
this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (datasetContext) => {
|
|
25
|
+
this._datasetVariantId = datasetContext?.getVariantId();
|
|
26
|
+
});
|
|
27
|
+
// The Content Workspace Context is used to retrieve the property type we like to observe.
|
|
28
|
+
// This gives us the configuration from the property type as part of the data type.
|
|
29
|
+
this.consumeContext(UMB_CONTENT_WORKSPACE_CONTEXT, async (workspaceContext) => {
|
|
30
|
+
this._workspaceContext = workspaceContext;
|
|
31
|
+
this.#observePropertyType();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async #observePropertyType() {
|
|
35
|
+
if (!this._alias || !this._workspaceContext)
|
|
36
|
+
return;
|
|
37
|
+
this.observe(await this._workspaceContext?.structure.propertyStructureByAlias(this._alias), (propertyType) => {
|
|
38
|
+
this._propertyType = propertyType;
|
|
39
|
+
this.#checkViewGuard();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
#checkViewGuard() {
|
|
43
|
+
if (!this._workspaceContext || !this._propertyType || !this._datasetVariantId)
|
|
44
|
+
return;
|
|
45
|
+
const propertyVariantId = new UmbVariantId(this._propertyType.variesByCulture ? this._datasetVariantId.culture : null, this._propertyType.variesBySegment ? this._datasetVariantId.segment : null);
|
|
46
|
+
this.observe(this._workspaceContext.propertyViewGuard.isPermittedForVariantAndProperty(propertyVariantId, this._propertyType, this._datasetVariantId), (permitted) => {
|
|
47
|
+
this._viewable = permitted;
|
|
48
|
+
}, `umbObservePropertyViewGuard`);
|
|
49
|
+
}
|
|
50
|
+
willUpdate(changedProperties) {
|
|
51
|
+
super.willUpdate(changedProperties);
|
|
52
|
+
if (changedProperties.has('_propertyType') ||
|
|
53
|
+
changedProperties.has('_datasetVariantId') ||
|
|
54
|
+
changedProperties.has('_workspaceContext')) {
|
|
55
|
+
if (this._datasetVariantId && this._propertyType && this._workspaceContext) {
|
|
56
|
+
const propertyVariantId = new UmbVariantId(this._propertyType.variesByCulture ? this._datasetVariantId.culture : null, this._propertyType.variesBySegment ? this._datasetVariantId.segment : null);
|
|
57
|
+
this._dataPath = `$.values[${UmbDataPathPropertyValueQuery({
|
|
58
|
+
alias: this._propertyType.alias,
|
|
59
|
+
culture: propertyVariantId.culture,
|
|
60
|
+
segment: propertyVariantId.segment,
|
|
61
|
+
})}].value`;
|
|
62
|
+
this.observe(this._workspaceContext.propertyWriteGuard.isPermittedForVariantAndProperty(propertyVariantId, this._propertyType, propertyVariantId), (write) => {
|
|
63
|
+
this._writeable = write;
|
|
64
|
+
}, 'observeView');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
if (!this._viewable)
|
|
70
|
+
return nothing;
|
|
71
|
+
if (!this._dataPath || this._writeable === undefined)
|
|
72
|
+
return nothing;
|
|
73
|
+
return html `<umb-property-type-based-property
|
|
74
|
+
data-path=${this._dataPath}
|
|
75
|
+
.property=${this._propertyType}
|
|
76
|
+
?readonly=${!this._writeable}></umb-property-type-based-property>`;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
__decorate([
|
|
80
|
+
property({ type: String, attribute: 'alias' })
|
|
81
|
+
], UmbContentWorkspacePropertyElement.prototype, "alias", null);
|
|
82
|
+
__decorate([
|
|
83
|
+
state()
|
|
84
|
+
], UmbContentWorkspacePropertyElement.prototype, "_datasetVariantId", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
state()
|
|
87
|
+
], UmbContentWorkspacePropertyElement.prototype, "_dataPath", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
state()
|
|
90
|
+
], UmbContentWorkspacePropertyElement.prototype, "_viewable", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
state()
|
|
93
|
+
], UmbContentWorkspacePropertyElement.prototype, "_writeable", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
state()
|
|
96
|
+
], UmbContentWorkspacePropertyElement.prototype, "_workspaceContext", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
state()
|
|
99
|
+
], UmbContentWorkspacePropertyElement.prototype, "_propertyType", void 0);
|
|
100
|
+
UmbContentWorkspacePropertyElement = __decorate([
|
|
101
|
+
customElement('umb-content-workspace-property')
|
|
102
|
+
], UmbContentWorkspacePropertyElement);
|
|
103
|
+
export { UmbContentWorkspacePropertyElement };
|
|
104
|
+
export default UmbContentWorkspacePropertyElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './content-workspace-property.element.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './content-workspace-property.element.js';
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
export { UMB_CONTENT_PROPERTY_CONTEXT } from './content-property.context-token.js';
|
|
2
|
-
export { UmbContentPropertyContext } from './content-property.context.js';
|
|
3
1
|
export * from './collection/index.js';
|
|
4
2
|
export * from './components/index.js';
|
|
5
3
|
export * from './constants.js';
|
|
6
4
|
export * from './controller/merge-content-variant-data.controller.js';
|
|
5
|
+
export * from './global-components/index.js';
|
|
7
6
|
export * from './manager/index.js';
|
|
8
7
|
export * from './property-dataset-context/index.js';
|
|
9
8
|
export * from './workspace/index.js';
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
export { UMB_CONTENT_PROPERTY_CONTEXT } from './content-property.context-token.js';
|
|
2
|
-
export { UmbContentPropertyContext } from './content-property.context.js';
|
|
3
1
|
export * from './collection/index.js';
|
|
4
2
|
export * from './components/index.js';
|
|
5
3
|
export * from './constants.js';
|
|
6
4
|
export * from './controller/merge-content-variant-data.controller.js';
|
|
5
|
+
export * from './global-components/index.js';
|
|
7
6
|
export * from './manager/index.js';
|
|
8
7
|
export * from './property-dataset-context/index.js';
|
|
9
8
|
export * from './workspace/index.js';
|
|
@@ -679,6 +679,7 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
679
679
|
const currentData = this._data.getCurrent();
|
|
680
680
|
const newCurrentData = await new UmbMergeContentVariantDataController(this).process(currentData, data, variantIds, variantIdsIncludingInvariant);
|
|
681
681
|
this._data.setCurrent(newCurrentData);
|
|
682
|
+
this.setIsNew(false);
|
|
682
683
|
const eventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT);
|
|
683
684
|
if (!eventContext) {
|
|
684
685
|
throw new Error('Event context is missing');
|
|
@@ -688,7 +689,6 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
688
689
|
unique: parent.unique,
|
|
689
690
|
});
|
|
690
691
|
eventContext.dispatchEvent(event);
|
|
691
|
-
this.setIsNew(false);
|
|
692
692
|
}
|
|
693
693
|
async #update(variantIds, saveData) {
|
|
694
694
|
if (!this._detailRepository)
|
|
@@ -723,6 +723,7 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
723
723
|
}
|
|
724
724
|
resetState() {
|
|
725
725
|
super.resetState();
|
|
726
|
+
this.structure.clear();
|
|
726
727
|
this.readOnlyGuard.clearRules();
|
|
727
728
|
this.propertyViewGuard.clearRules();
|
|
728
729
|
this.propertyWriteGuard.clearRules();
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import type { UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type';
|
|
2
2
|
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
3
|
-
import { UmbVariantId } from '@umbraco-cms/backoffice/variant';
|
|
4
|
-
import './content-editor-property.element.js';
|
|
5
3
|
export declare class UmbContentWorkspaceViewEditPropertiesElement extends UmbLitElement {
|
|
6
4
|
#private;
|
|
7
5
|
get containerId(): string | null | undefined;
|
|
8
6
|
set containerId(value: string | null | undefined);
|
|
9
|
-
|
|
7
|
+
_properties: Array<string>;
|
|
10
8
|
_visibleProperties?: Array<UmbPropertyTypeModel>;
|
|
11
9
|
constructor();
|
|
12
10
|
render(): unknown;
|
package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.js
CHANGED
|
@@ -5,18 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { UMB_CONTENT_WORKSPACE_CONTEXT } from '../../content-workspace.context-token.js';
|
|
8
|
-
import { css, html, customElement, property, state, repeat
|
|
8
|
+
import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit';
|
|
9
9
|
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
|
|
10
10
|
import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type';
|
|
11
11
|
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
12
|
-
import { UmbVariantId } from '@umbraco-cms/backoffice/variant';
|
|
13
|
-
import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
|
|
14
|
-
import './content-editor-property.element.js';
|
|
15
12
|
let UmbContentWorkspaceViewEditPropertiesElement = class UmbContentWorkspaceViewEditPropertiesElement extends UmbLitElement {
|
|
16
|
-
#
|
|
17
|
-
#propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this);
|
|
18
|
-
#properties;
|
|
19
|
-
#visiblePropertiesUniques = [];
|
|
13
|
+
#propertyStructureHelper;
|
|
20
14
|
get containerId() {
|
|
21
15
|
return this.#propertyStructureHelper.getContainerId();
|
|
22
16
|
}
|
|
@@ -25,53 +19,19 @@ let UmbContentWorkspaceViewEditPropertiesElement = class UmbContentWorkspaceView
|
|
|
25
19
|
}
|
|
26
20
|
constructor() {
|
|
27
21
|
super();
|
|
28
|
-
this
|
|
29
|
-
|
|
30
|
-
this.#processPropertyStructure();
|
|
31
|
-
});
|
|
22
|
+
this.#propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this);
|
|
23
|
+
this._properties = [];
|
|
32
24
|
this.consumeContext(UMB_CONTENT_WORKSPACE_CONTEXT, (workspaceContext) => {
|
|
33
|
-
this.#workspaceContext = workspaceContext;
|
|
34
25
|
this.#propertyStructureHelper.setStructureManager(
|
|
35
26
|
// Assuming its the same content model type that we are working with here... [NL]
|
|
36
27
|
workspaceContext?.structure);
|
|
37
|
-
this.observe(this.#propertyStructureHelper.
|
|
38
|
-
this
|
|
39
|
-
this.#processPropertyStructure();
|
|
28
|
+
this.observe(this.#propertyStructureHelper.propertyAliases, (properties) => {
|
|
29
|
+
this._properties = properties;
|
|
40
30
|
}, 'observePropertyStructure');
|
|
41
31
|
});
|
|
42
32
|
}
|
|
43
|
-
#processPropertyStructure() {
|
|
44
|
-
if (!this.#workspaceContext || !this.#properties || !this.#propertyStructureHelper || !this._datasetVariantId) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
const propertyViewGuard = this.#workspaceContext.propertyViewGuard;
|
|
48
|
-
this.#properties.forEach((property) => {
|
|
49
|
-
const propertyVariantId = new UmbVariantId(property.variesByCulture ? this._datasetVariantId?.culture : null, property.variesBySegment ? this._datasetVariantId?.segment : null);
|
|
50
|
-
this.observe(propertyViewGuard.isPermittedForVariantAndProperty(propertyVariantId, property, this._datasetVariantId), (permitted) => {
|
|
51
|
-
if (permitted) {
|
|
52
|
-
this.#visiblePropertiesUniques.push(property.unique);
|
|
53
|
-
this.#calculateVisibleProperties();
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
const index = this.#visiblePropertiesUniques.indexOf(property.unique);
|
|
57
|
-
if (index !== -1) {
|
|
58
|
-
this.#visiblePropertiesUniques.splice(index, 1);
|
|
59
|
-
this.#calculateVisibleProperties();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}, `propertyViewGuard-permittedForVariantAndProperty-${property.unique}`);
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
#calculateVisibleProperties() {
|
|
66
|
-
this._visibleProperties = this.#properties.filter((property) => this.#visiblePropertiesUniques.includes(property.unique));
|
|
67
|
-
}
|
|
68
33
|
render() {
|
|
69
|
-
return this.
|
|
70
|
-
? repeat(this._visibleProperties, (property) => property.alias, (property) => html `<umb-content-workspace-view-edit-property
|
|
71
|
-
class="property"
|
|
72
|
-
.variantId=${this._datasetVariantId}
|
|
73
|
-
.property=${property}></umb-content-workspace-view-edit-property>`)
|
|
74
|
-
: nothing;
|
|
34
|
+
return repeat(this._properties, (property) => property, (property) => html `<umb-content-workspace-property class="property" alias=${property}></umb-content-workspace-property>`);
|
|
75
35
|
}
|
|
76
36
|
static { this.styles = [
|
|
77
37
|
UmbTextStyles,
|
|
@@ -90,7 +50,7 @@ __decorate([
|
|
|
90
50
|
], UmbContentWorkspaceViewEditPropertiesElement.prototype, "containerId", null);
|
|
91
51
|
__decorate([
|
|
92
52
|
state()
|
|
93
|
-
], UmbContentWorkspaceViewEditPropertiesElement.prototype, "
|
|
53
|
+
], UmbContentWorkspaceViewEditPropertiesElement.prototype, "_properties", void 0);
|
|
94
54
|
__decorate([
|
|
95
55
|
state()
|
|
96
56
|
], UmbContentWorkspaceViewEditPropertiesElement.prototype, "_visibleProperties", void 0);
|
|
@@ -10,6 +10,7 @@ type UmbPropertyTypeUnique = UmbPropertyTypeModel['unique'];
|
|
|
10
10
|
export declare class UmbContentTypePropertyStructureHelper<T extends UmbContentTypeModel> extends UmbControllerBase {
|
|
11
11
|
#private;
|
|
12
12
|
readonly propertyStructure: import("rxjs").Observable<UmbPropertyTypeModel[]>;
|
|
13
|
+
readonly propertyAliases: import("rxjs").Observable<string[]>;
|
|
13
14
|
constructor(host: UmbControllerHost);
|
|
14
15
|
contentTypes(): Promise<import("rxjs").Observable<T[]> | undefined>;
|
|
15
16
|
setStructureManager(structure: UmbContentTypeStructureManager<T>): void;
|
|
@@ -16,6 +16,7 @@ export class UmbContentTypePropertyStructureHelper extends UmbControllerBase {
|
|
|
16
16
|
// State which holds all the properties of the current container, this is a composition of all properties from the containers that matches our target [NL]
|
|
17
17
|
this.#propertyStructure = new UmbArrayState([], (x) => x.unique);
|
|
18
18
|
this.propertyStructure = this.#propertyStructure.asObservable();
|
|
19
|
+
this.propertyAliases = this.#propertyStructure.asObservablePart((x) => x.map((e) => e.alias));
|
|
19
20
|
this.#init = new Promise((resolve) => {
|
|
20
21
|
this.#initResolver = resolve;
|
|
21
22
|
});
|
package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts
CHANGED
|
@@ -126,6 +126,7 @@ export declare class UmbContentTypeStructureManager<T extends UmbContentTypeMode
|
|
|
126
126
|
* @returns {Promise<Array<string>>} - A promise that will be resolved with the list of all content type property aliases.
|
|
127
127
|
*/
|
|
128
128
|
getContentTypePropertyAliases(): Promise<string[]>;
|
|
129
|
+
clear(): void;
|
|
129
130
|
destroy(): void;
|
|
130
131
|
}
|
|
131
132
|
export {};
|
package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js
CHANGED
|
@@ -131,7 +131,7 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
131
131
|
return { data: this.getOwnerContentType(), asObservable: () => this.ownerContentType };
|
|
132
132
|
}
|
|
133
133
|
await this.#initRepository;
|
|
134
|
-
this
|
|
134
|
+
this.clear();
|
|
135
135
|
this.#ownerContentTypeUnique = unique;
|
|
136
136
|
if (!unique) {
|
|
137
137
|
this.#initRejection?.(`Content Type structure manager could not load: ${unique}`);
|
|
@@ -145,7 +145,7 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
145
145
|
}
|
|
146
146
|
async createScaffold(preset) {
|
|
147
147
|
await this.#initRepository;
|
|
148
|
-
this
|
|
148
|
+
this.clear();
|
|
149
149
|
const repsonse = await this.#repository.createScaffold(preset);
|
|
150
150
|
const { data } = repsonse;
|
|
151
151
|
if (!data) {
|
|
@@ -607,7 +607,7 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
607
607
|
.flatMap((x) => x.properties?.map((y) => y.alias) ?? [])
|
|
608
608
|
.filter(UmbFilterDuplicateStrings);
|
|
609
609
|
}
|
|
610
|
-
|
|
610
|
+
clear() {
|
|
611
611
|
this.#contentTypeObservers.forEach((observer) => observer.destroy());
|
|
612
612
|
this.#contentTypeObservers = [];
|
|
613
613
|
this.#repoManager?.clear();
|
|
@@ -147,6 +147,7 @@ let UmbContentTypeDesignEditorElement = class UmbContentTypeDesignEditorElement
|
|
|
147
147
|
});
|
|
148
148
|
routes.push({
|
|
149
149
|
path: '',
|
|
150
|
+
pathMatch: 'full',
|
|
150
151
|
redirectTo: 'root',
|
|
151
152
|
guards: [() => this.#processingTabId === undefined],
|
|
152
153
|
});
|
|
@@ -154,6 +155,7 @@ let UmbContentTypeDesignEditorElement = class UmbContentTypeDesignEditorElement
|
|
|
154
155
|
else {
|
|
155
156
|
routes.push({
|
|
156
157
|
path: '',
|
|
158
|
+
pathMatch: 'full',
|
|
157
159
|
redirectTo: routes[0]?.path,
|
|
158
160
|
guards: [() => this.#processingTabId === undefined],
|
|
159
161
|
});
|
|
@@ -168,13 +170,15 @@ let UmbContentTypeDesignEditorElement = class UmbContentTypeDesignEditorElement
|
|
|
168
170
|
},
|
|
169
171
|
});
|
|
170
172
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
173
|
+
else {
|
|
174
|
+
routes.push({
|
|
175
|
+
path: `**`,
|
|
176
|
+
component: async () => (await import('@umbraco-cms/backoffice/router')).UmbRouteNotFoundElement,
|
|
177
|
+
setup: () => {
|
|
178
|
+
this.#currentTabComponent = undefined;
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
}
|
|
178
182
|
this._routes = routes;
|
|
179
183
|
// If we have a active tab, then we want to make sure its up to date with latest tab id, as an already active route is not getting its setup method triggered again [NL]
|
|
180
184
|
if (this._activePath && this.#currentTabComponent) {
|