diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts index f467da08d3..269d85792a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts @@ -1,6 +1,8 @@ export * from './property-structure-workspace-context.interface.js'; export * from './publishable-workspace-context.interface.js'; export * from './saveable-workspace-context.interface.js'; +export * from './workspace-collection-context.interface.js'; +export * from './workspace-collection-context.token.js'; export * from './variant-workspace-context.token.js'; export * from './workspace-context.interface.js'; export * from './editable-workspace-context-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.interface.ts new file mode 100644 index 0000000000..aaadac60de --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.interface.ts @@ -0,0 +1,10 @@ +import type { UmbWorkspaceContextInterface } from './workspace-context.interface.js'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { UmbContentTypeModel, UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; + +export interface UmbWorkspaceCollectionContextInterface + extends UmbWorkspaceContextInterface { + contentTypeHasCollection: Observable; + getCollectionAlias(): string; + structure: UmbContentTypePropertyStructureManager; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.token.ts new file mode 100644 index 0000000000..4cc4ba1460 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.token.ts @@ -0,0 +1,16 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { + UmbWorkspaceContextInterface, + UmbWorkspaceCollectionContextInterface, +} from '@umbraco-cms/backoffice/workspace'; + +export const UMB_WORKSPACE_COLLECTION_CONTEXT = new UmbContextToken< + UmbWorkspaceContextInterface, + UmbWorkspaceCollectionContextInterface +>( + 'UmbWorkspaceContext', + undefined, + (context): context is UmbWorkspaceCollectionContextInterface => + (context as UmbWorkspaceCollectionContextInterface).contentTypeHasCollection !== undefined, +);