UmbDataTypeStore + workspace context
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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<UmbDataTypeStoreItemType, UmbDataTypeStore> {
|
||||
|
||||
constructor(target:HTMLElement, entityKey: string) {
|
||||
super(target, DefaultDataTypeData, 'umbDataTypeStore', entityKey);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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<DataTypeDetails | FolderTreeItem>}
|
||||
* @description - Data Store for Data Types
|
||||
*/
|
||||
export class UmbDataTypesStore extends UmbDataStoreBase<DataTypeDetails | FolderTreeItem> {
|
||||
export class UmbDataTypeStore extends UmbDataStoreBase<UmbDataTypeStoreItemType> {
|
||||
/**
|
||||
* @description - Request a Data Type by key. The Data Type is added to the store and is returned as an Observable.
|
||||
* @param {string} key
|
||||
Reference in New Issue
Block a user