diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts new file mode 100644 index 0000000000..53248297d8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts @@ -0,0 +1,36 @@ +import { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; + +/** + * @export + * @class UmbDocumentItemStore + * @extends {UmbStoreBase} + * @description - Data Store for Document items + */ + +export class UmbDocumentItemStore + extends UmbStoreBase + implements UmbItemStore +{ + /** + * Creates an instance of UmbDocumentItemStore. + * @param {UmbControllerHostElement} host + * @memberof UmbDocumentItemStore + */ + constructor(host: UmbControllerHostElement) { + super( + host, + UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN.toString(), + new UmbArrayState([], (x) => x.id), + ); + } + + items(ids: Array) { + return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + } +} + +export const UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbDocumentItemStore');