import type { UmbEntityBulkActionElement } from '../../entity-bulk-action/entity-bulk-action-element.interface.js'; import type { UmbEntityBulkAction } from '../../entity-bulk-action/index.js'; import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '../../../../libs/extension-api/index.js'; /** * An action to perform on multiple entities * For example for content you may wish to move one or more documents in bulk */ export interface ManifestEntityBulkAction extends ManifestElementAndApi>, ManifestWithDynamicConditions { type: 'entityBulkAction'; forEntityTypes: Array; meta: MetaType; } export interface MetaEntityBulkAction { } export interface ManifestEntityBulkActionDefaultKind extends ManifestEntityBulkAction { type: 'entityBulkAction'; kind: 'default'; } export interface MetaEntityBulkActionDefaultKind extends MetaEntityBulkAction { /** * An icon to represent the action to be performed * @examples [ * "icon-box", * "icon-grid" * ] */ icon: string; /** * The friendly name of the action to perform * @examples [ * "Create", * "Create Content Template" * ] */ label?: string; } export interface ManifestEntityBulkActionDuplicateToKind extends ManifestEntityBulkAction { type: 'entityBulkAction'; kind: 'duplicateTo'; } export interface MetaEntityBulkActionDuplicateToKind extends ManifestEntityBulkAction { bulkDuplicateRepositoryAlias: string; hideTreeRoot?: boolean; foldersOnly?: boolean; treeAlias: string; } export interface ManifestEntityBulkActionMoveToKind extends ManifestEntityBulkAction { type: 'entityBulkAction'; kind: 'moveTo'; } export interface MetaEntityBulkActionMoveToKind extends MetaEntityBulkActionDefaultKind { bulkMoveRepositoryAlias: string; hideTreeRoot?: boolean; foldersOnly?: boolean; treeAlias: string; } export interface ManifestEntityBulkActionTrashKind extends ManifestEntityBulkAction { type: 'entityBulkAction'; kind: 'trash'; } export interface MetaEntityBulkActionTrashKind extends MetaEntityBulkActionDefaultKind { bulkTrashRepositoryAlias: string; } export type UmbEntityBulkActionExtensions = ManifestEntityBulkAction | ManifestEntityBulkActionDefaultKind | ManifestEntityBulkActionDuplicateToKind | ManifestEntityBulkActionMoveToKind | ManifestEntityBulkActionTrashKind; declare global { interface UmbExtensionManifestMap { UmbEntityBulkActionExtensions: UmbEntityBulkActionExtensions; } }