@itwin/presentation-common
Version:
Common pieces for iModel.js presentation packages
55 lines • 2.77 kB
TypeScript
/** @packageDocumentation
* @module PresentationRules
*/
import { CustomRendererSpecification } from "./CustomRendererSpecification.js";
import { CategoryIdentifier } from "./PropertyCategorySpecification.js";
import { PropertyEditorSpecification } from "./PropertyEditorsSpecification.js";
/**
* This content modifier allows including additional calculated properties into the content.
*
* @see [Calculated properties specification reference documentation page]($docs/presentation/content/CalculatedPropertiesSpecification.md)
* @public
*/
export interface CalculatedPropertiesSpecification {
/** Specifies label of the calculated property. Supports [localization]($docs/presentation/advanced/Localization.md). */
label: string;
/**
* Defines an expression to calculate the value. The expression can use [ECInstance]($docs/presentation/advanced/ECExpressions.md#ecinstance)
* and [Ruleset Variables]($docs/presentation/advanced/ECExpressions.md#ruleset-variables-user-settings) symbol contexts.
*/
value?: string;
/** The attribute allows moving the calculated property into a different category. */
categoryId?: string | CategoryIdentifier;
/**
* Custom property [renderer specification]($docs/presentation/content/RendererSpecification.md) that allows assigning a
* custom value renderer to be used in UI. The specification is used to set up [[Field.renderer]] for
* this property and it's up to the UI component to make sure appropriate renderer is used to render the property.
*/
renderer?: CustomRendererSpecification;
/**
* Custom [property editor specification]($docs/presentation/content/PropertyEditorSpecification) that allows assigning
* a custom value editor to be used in UI.
*/
editor?: PropertyEditorSpecification;
/**
* Assign a custom [[Field.priority]] to the property. It's up to the UI component to make sure that priority
* is respected - properties with higher priority should appear before or above properties with lower priority.
*
* @type integer
*/
priority?: number;
/**
* Specifies return type of the calculated property. If unsupported type is provided, calculated property won't appear in the property pane.
*
* Type can have these values: `string`, `boolean`, `bool`, `dateTime`, `double`, `int`, `long`
*/
type?: `string` | `boolean` | `bool` | `dateTime` | `double` | `int` | `long`;
/**
* A map of [ECExpressions]($docs/presentation/customization/ECExpressions.md) whose
* evaluation results are used as extended data values.
*/
extendedData?: {
[key: string]: string;
};
}
//# sourceMappingURL=CalculatedPropertiesSpecification.d.ts.map