diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts index 763180e6e2..27db2224f7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice.element.ts @@ -21,7 +21,7 @@ import { css, html, LitElement } from 'lit'; import { UmbModalService } from '../core/services/modal'; import { UmbNotificationService } from '../core/services/notification'; -import { UmbDataTypesStore } from '../core/stores/data-types/data-types.store'; +import { UmbDataTypeStore } from '../core/stores/data-type/data-type.store'; import { UmbDocumentTypeStore } from '../core/stores/document-type/document-type.store'; import { UmbMediaTypeStore } from '../core/stores/media-type/media-type.store'; import { UmbMemberTypeStore } from '../core/stores/member-type/member-type.store'; @@ -80,7 +80,7 @@ export class UmbBackofficeElement extends UmbContextConsumerMixin(UmbContextProv this.provideContext('umbDocumentStore', new UmbDocumentStore()); this.provideContext('umbMediaStore', new UmbMediaStore()); - this.provideContext('umbDataTypeStore', new UmbDataTypesStore()); + this.provideContext('umbDataTypeStore', new UmbDataTypeStore()); this.provideContext('umbDocumentTypeStore', new UmbDocumentTypeStore()); this.provideContext('umbMediaTypeStore', new UmbMediaTypeStore()); this.provideContext('umbMemberTypeStore', new UmbMemberTypeStore()); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/components/content-property/content-property.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/components/content-property/content-property.element.ts index 923176cacb..f098d96128 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/components/content-property/content-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/components/content-property/content-property.element.ts @@ -4,7 +4,7 @@ import { ifDefined } from 'lit-html/directives/if-defined.js'; import { customElement, property, state } from 'lit/decorators.js'; import { EMPTY, of, switchMap } from 'rxjs'; -import { UmbDataTypesStore } from '../../../core/stores/data-types/data-types.store'; +import { UmbDataTypeStore } from '../../../core/stores/data-type/data-type.store'; import { UmbObserverMixin } from '@umbraco-cms/observable-api'; import type { ContentProperty, ManifestTypes } from '@umbraco-cms/models'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-registry'; @@ -42,7 +42,7 @@ export class UmbContentPropertyElement extends UmbContextConsumerMixin(UmbObserv @state() private _dataTypeData?: any; - private _dataTypeStore?: UmbDataTypesStore; + private _dataTypeStore?: UmbDataTypeStore; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/data-types/actions/delete/action-data-type-delete.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/data-types/actions/delete/action-data-type-delete.element.ts index 43f1000a81..e6bcc596d7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/trees/data-types/actions/delete/action-data-type-delete.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/data-types/actions/delete/action-data-type-delete.element.ts @@ -2,7 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement } from 'lit/decorators.js'; import { UmbModalService } from '../../../../../core/services/modal'; -import { UmbDataTypesStore } from '../../../../../core/stores/data-types/data-types.store'; +import { UmbDataTypeStore } from '../../../../../core/stores/data-type/data-type.store'; import UmbTreeItemActionElement from '../../../shared/tree-item-action.element'; import { UmbContextConsumerMixin } from '@umbraco-cms/context-api'; @@ -11,7 +11,7 @@ export default class UmbTreeActionDataTypeDeleteElement extends UmbContextConsum static styles = [UUITextStyles, css``]; private _modalService?: UmbModalService; - private _dataTypeStore?: UmbDataTypesStore; + private _dataTypeStore?: UmbDataTypeStore; connectedCallback(): void { super.connectedCallback(); @@ -20,7 +20,7 @@ export default class UmbTreeActionDataTypeDeleteElement extends UmbContextConsum this._modalService = modalService; }); - this.consumeContext('umbDataTypeStore', (dataTypeStore: UmbDataTypesStore) => { + this.consumeContext('umbDataTypeStore', (dataTypeStore: UmbDataTypeStore) => { this._dataTypeStore = dataTypeStore; }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/trees/data-types/tree-data-types.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/trees/data-types/tree-data-types.element.ts index 30b35c231e..425793dae7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/trees/data-types/tree-data-types.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/trees/data-types/tree-data-types.element.ts @@ -6,7 +6,7 @@ import { umbExtensionsRegistry } from '@umbraco-cms/extensions-registry'; import type { ManifestTreeItemAction } from '@umbraco-cms/models'; import '../shared/tree-navigator.element'; -import { UmbDataTypesStore } from 'src/core/stores/data-types/data-types.store'; +import { UmbDataTypeStore } from '@umbraco-cms/stores/data-type/data-type.store'; @customElement('umb-tree-data-types') export class UmbTreeDataTypesElement extends UmbContextProviderMixin(UmbContextConsumerMixin(UmbTreeBase)) { @@ -16,7 +16,7 @@ export class UmbTreeDataTypesElement extends UmbContextProviderMixin(UmbContextC this._registerTreeItemActions(); // TODO: how do we best expose the tree api to the tree navigator element? - this.consumeContext('umbDataTypeStore', (dataTypeStore: UmbDataTypesStore) => { + this.consumeContext('umbDataTypeStore', (dataTypeStore: UmbDataTypeStore) => { this.provideContext('umbTreeStore', dataTypeStore); }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/actions/save/workspace-action-data-type-save.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/actions/save/workspace-action-data-type-save.element.ts index f1416c998a..291cfc6e97 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/actions/save/workspace-action-data-type-save.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/actions/save/workspace-action-data-type-save.element.ts @@ -6,7 +6,7 @@ import type { UmbNotificationDefaultData } from '../../../../../core/services/no import type { UmbNotificationService } from '../../../../../core/services/notification'; import { UmbDataTypeContext } from '../../data-type.context'; import { UmbContextConsumerMixin } from '@umbraco-cms/context-api'; -import { UmbDataTypesStore } from 'src/core/stores/data-types/data-types.store'; +import { UmbDataTypeStore } from '@umbraco-cms/stores/data-type/data-type.store'; @customElement('umb-workspace-action-data-type-save') export class UmbWorkspaceActionDataTypeSaveElement extends UmbContextConsumerMixin(LitElement) { @@ -15,7 +15,7 @@ export class UmbWorkspaceActionDataTypeSaveElement extends UmbContextConsumerMix @state() private _saveButtonState?: UUIButtonState; - private _dataTypeStore?: UmbDataTypesStore; + private _dataTypeStore?: UmbDataTypeStore; private _dataTypeContext?: UmbDataTypeContext; private _notificationService?: UmbNotificationService; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/workspace-data-type.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/workspace-data-type.context.ts new file mode 100644 index 0000000000..0c81b07052 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/workspace-data-type.context.ts @@ -0,0 +1,23 @@ +import { UmbWorkspaceNodeContext } from "../shared/workspace-context/workspace-node.context"; +import type { UmbDataTypeStore, UmbDataTypeStoreItemType } from "@umbraco-cms/stores/data-type/data-type.store"; + +const DefaultDataTypeData = ({ + key: '', + name: '', + icon: '', + type: '', + hasChildren: false, + parentKey: '', + alias: '', + properties: [], +}) as UmbDataTypeStoreItemType; + +export class UmbWorkspaceDataTypeContext extends UmbWorkspaceNodeContext { + + constructor(target:HTMLElement, entityKey: string) { + super(target, DefaultDataTypeData, 'umbDataTypeStore', entityKey); + } + +} + + diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/workspace-data-type.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/workspace-data-type.element.ts index d44ae44bf7..cfc352106a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/workspace-data-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/data-type/workspace-data-type.element.ts @@ -2,7 +2,7 @@ import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { css, html, LitElement } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { UmbDataTypesStore } from '../../../core/stores/data-types/data-types.store'; +import { UmbDataTypeStore } from '../../../core/stores/data-type/data-type.store'; import { UmbDataTypeContext } from './data-type.context'; import type { DataTypeDetails } from '@umbraco-cms/models'; import { UmbObserverMixin } from '@umbraco-cms/observable-api'; @@ -40,7 +40,7 @@ export class UmbWorkspaceDataTypeElement extends UmbContextProviderMixin( private _dataTypeName = ''; private _dataTypeContext?: UmbDataTypeContext; - private _dataTypeStore?: UmbDataTypesStore; + private _dataTypeStore?: UmbDataTypeStore; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/core/stores/data-types/data-types.store.ts b/src/Umbraco.Web.UI.Client/src/core/stores/data-type/data-type.store.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/core/stores/data-types/data-types.store.ts rename to src/Umbraco.Web.UI.Client/src/core/stores/data-type/data-type.store.ts index 5d3ce6d188..d67ebafb68 100644 --- a/src/Umbraco.Web.UI.Client/src/core/stores/data-types/data-types.store.ts +++ b/src/Umbraco.Web.UI.Client/src/core/stores/data-type/data-type.store.ts @@ -9,13 +9,14 @@ const isDataTypeDetails = (dataType: DataTypeDetails | FolderTreeItem): dataType // TODO: can we make is easy to reuse store methods across different stores? +export type UmbDataTypeStoreItemType = DataTypeDetails | FolderTreeItem; /** * @export * @class UmbDataTypesStore * @extends {UmbDataStoreBase} * @description - Data Store for Data Types */ -export class UmbDataTypesStore extends UmbDataStoreBase { +export class UmbDataTypeStore extends UmbDataStoreBase { /** * @description - Request a Data Type by key. The Data Type is added to the store and is returned as an Observable. * @param {string} key