import { UmbSubmittableWorkspaceContextBase } from '../submittable/index.js'; import { UmbEntityWorkspaceDataManager } from '../entity/entity-workspace-data-manager.js'; import type { UmbSubmittableTreeEntityWorkspaceContext } from '../contexts/tokens/index.js'; import type { UmbEntityDetailWorkspaceContextArgs, UmbEntityDetailWorkspaceContextCreateArgs } from './types.js'; import type { UmbControllerHost } from '../../../../libs/controller-api/index.js'; import { type UmbEntityModel, type UmbEntityUnique } from '../../entity/index.js'; import type { UmbDetailRepository, UmbRepositoryResponse, UmbRepositoryResponseWithAsObservable } from '../../repository/index.js'; import { UmbStateManager } from '../../utils/index.js'; import { UmbValidationContext } from '../../validation/index.js'; export declare abstract class UmbEntityDetailWorkspaceContextBase = UmbDetailRepository, CreateArgsType extends UmbEntityDetailWorkspaceContextCreateArgs = UmbEntityDetailWorkspaceContextCreateArgs> extends UmbSubmittableWorkspaceContextBase implements UmbSubmittableTreeEntityWorkspaceContext { #private; readonly IS_ENTITY_DETAIL_WORKSPACE_CONTEXT = true; /** * @description Data manager for the workspace. * @protected * @memberof UmbEntityWorkspaceContextBase */ protected readonly _data: UmbEntityWorkspaceDataManager; readonly entityType: import("rxjs").Observable; readonly unique: import("rxjs").Observable; readonly data: import("rxjs").Observable; readonly persistedData: import("rxjs").Observable; readonly loading: UmbStateManager; readonly forbidden: UmbStateManager; protected _getDataPromise?: Promise | UmbRepositoryResponseWithAsObservable>; protected _detailRepository?: DetailRepositoryType; readonly _internal_createUnderParent: import("rxjs").Observable; readonly _internal_createUnderParentEntityUnique: import("rxjs").Observable; readonly _internal_createUnderParentEntityType: import("rxjs").Observable; /** * @deprecated Will be removed in v.18: Use UMB_PARENT_ENTITY_CONTEXT instead to get the parent both when creating and editing. */ readonly parentUnique: import("rxjs").Observable; /** * @deprecated Will be removed in v.18: Use UMB_PARENT_ENTITY_CONTEXT instead to get the parent both when creating and editing. */ readonly parentEntityType: import("rxjs").Observable; /** * The base validation context for the workspace. This ensures that at least one validation context is always present. * @example You can manually validate all properties on the context: * ```ts * try { * await this.validationContext.validate(); * } catch (error) { * console.error(error); * } * ``` * @example You can set the data path on the context to map to a specific part of the server validation: * ```ts * this.validationContext.setDataPath('path.to.data'); * ``` */ protected validationContext: UmbValidationContext; constructor(host: UmbControllerHost, args: UmbEntityDetailWorkspaceContextArgs); /** * Get the entity type * @returns { string } The entity type */ getEntityType(): string; /** * Get the current data * @returns { DetailModelType | undefined } The entity context */ getData(): DetailModelType | undefined; /** * Get the current data * @param {DetailModelType | undefined} data - New data of this workspace. */ setData(data: DetailModelType | undefined): void; /** * Get the persisted data * @returns { DetailModelType | undefined } The persisted data */ getPersistedData(): DetailModelType | undefined; /** * Get the unique * @returns { string | undefined } The unique identifier */ getUnique(): UmbEntityUnique | undefined; setUnique(unique: string): void; /** * Gets the parent that a new entity will be created under. * @returns { UmbEntityModel | undefined } The parent entity */ _internal_getCreateUnderParent(): UmbEntityModel | undefined; /** * Sets the parent that a new entity will be created under. * @param {UmbEntityModel} parent The parent entity */ _internal_setCreateUnderParent(parent: UmbEntityModel): void; /** * Get the parent * @deprecated Will be removed in v.18: Use UMB_PARENT_ENTITY_CONTEXT instead to get the parent both when creating and editing. * @returns { UmbEntityModel | undefined } The parent entity */ getParent(): UmbEntityModel | undefined; /** * Set the parent * @deprecated Will be removed in v.18. * @param { UmbEntityModel } parent The parent entity */ setParent(parent: UmbEntityModel): void; /** * Get the parent unique * @deprecated Will be removed in v.18: Use UMB_PARENT_ENTITY_CONTEXT instead to get the parent both when creating and editing. * @returns { string | undefined } The parent unique identifier */ getParentUnique(): UmbEntityUnique | undefined; /** * Get the parent entity type * @deprecated Will be removed in v.18 * @returns { string | undefined } The parent entity type */ getParentEntityType(): string | undefined; load(unique: string): Promise | UmbRepositoryResponseWithAsObservable>; /** * Reload the workspace data * @returns { Promise } The promise of the reload */ reload(): Promise; /** * Method to check if the workspace data is loaded. * @returns { Promise | undefined } true if the workspace data is loaded. * @memberof UmbEntityWorkspaceContextBase */ isLoaded(): Promise | undefined; /** * Create a data scaffold * @param {CreateArgsType} args The arguments to create the scaffold. * @param {UmbEntityModel} args.parent The parent entity. * @param {UmbEntityUnique} args.parent.unique The unique identifier of the parent entity. * @param {string} args.parent.entityType The entity type of the parent entity. * @param {Partial} args.preset The preset data. * @returns { Promise | undefined } The data of the scaffold. */ createScaffold(args: CreateArgsType): Promise; /** * @deprecated Override `_processIncomingData` instead. `_scaffoldProcessData` will be removed in v.18. * @param {DetailModelType} data - The data to process. * @returns {Promise} The processed data. */ protected _scaffoldProcessData(data: DetailModelType): Promise; protected _processIncomingData(data: DetailModelType): Promise; submit(): Promise; /** * Deletes the entity. * @param unique The unique identifier of the entity to delete. */ delete(unique: string): Promise; /** * Check if the workspace is about to navigate away. * @protected * @param {string | URL} newUrl The new url that the workspace is navigating to. * @returns {boolean} true if the workspace is navigating away. * @memberof UmbEntityWorkspaceContextBase */ protected _checkWillNavigateAway(newUrl: string | URL): boolean; protected _create(currentData: DetailModelType, parent: UmbEntityModel): Promise; protected _update(currentData: DetailModelType): Promise; /** * Check if there are unpersisted changes. * @returns { boolean } true if there are unpersisted changes. */ getHasUnpersistedChanges(): boolean; resetState(): void; protected readonly _workspaceEventUnique: string; destroy(): void; }