From f5772a8fc97df4c0a0bf76211d15c6552ab37818 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 13 Nov 2023 19:18:34 +0100 Subject: [PATCH] add entity item store --- .../packages/core/store/entity-item.store.ts | 29 +++++++++++++++++++ .../src/packages/core/store/index.ts | 1 + 2 files changed, 30 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts new file mode 100644 index 0000000000..1dd276bb6e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts @@ -0,0 +1,29 @@ +import { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; + +/** + * @export + * @class UmbDataTypeItemStore + * @extends {UmbStoreBase} + * @description - Data Store for Data Type items + */ + +export class UmbEntityItemStore + extends UmbStoreBase + implements UmbItemStore +{ + /** + * Creates an instance of UmbEntityItemStore. + * @param {UmbControllerHost} host + * @memberof UmbDataTypeItemStore + */ + constructor(host: UmbControllerHost, storeAlias: string) { + super(host, storeAlias, new UmbArrayState([], (x) => x.id)); + } + + items(ids: Array) { + return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts index 0ab513ac78..e7a8e58d35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts @@ -5,3 +5,4 @@ export * from './store-base.js'; export * from './store.interface.js'; export * from './store.js'; export * from './tree-store.interface.js'; +export * from './entity-item.store.js';