UNPKG

@itwin/presentation-common

Version:

Common pieces for iModel.js presentation packages

64 lines 3.18 kB
/** @packageDocumentation * @module PresentationRules */ import { SingleSchemaClassSpecification } from "../../ClassSpecifications.js"; import { RuleBase } from "../../Rule.js"; import { PropertySpecification } from "../PropertySpecification.js"; import { CalculatedPropertiesSpecification } from "./CalculatedPropertiesSpecification.js"; import { PropertyCategorySpecification } from "./PropertyCategorySpecification.js"; import { RelatedPropertiesSpecification } from "./RelatedPropertiesSpecification.js"; /** * Contains various rule attributes that allow modifying returned content. * * This is not expected to be used directly - use through either [[ContentModifier]] * or [[ContentSpecification]]. * * @see [Content modifier rule reference documentation page]($docs/presentation/content/ContentModifier.md) * @public */ export interface ContentModifiersList { /** * Specifications of [related properties]($docs/presentation/content/RelatedPropertiesSpecification.md) which are * included in the generated content. */ relatedProperties?: RelatedPropertiesSpecification[]; /** * Specifications of [calculated properties]($docs/presentation/content/CalculatedPropertiesSpecification.md) whose values are * generated using provided [ECExpressions]($docs/presentation/advanced/ECExpressions.md). */ calculatedProperties?: CalculatedPropertiesSpecification[]; /** * Specifications for [custom categories]($docs/presentation/content/PropertyCategorySpecification.md). Simply defining the categories does * nothing - they have to be referenced from [property specification]($docs/presentation/content/PropertySpecification.md) defined in * [[propertyOverrides]] by `id`. */ propertyCategories?: PropertyCategorySpecification[]; /** * Specifications for various [property overrides]($docs/presentation/content/PropertySpecification.md) that allow customizing property display. */ propertyOverrides?: PropertySpecification[]; } /** * Content modifiers are used to modify how instances of specified ECClasses are displayed in content which is * produced using [content rules]($docs/presentation/content/ContentRule.md). They do not produce any content * by themselves. * * @see [Content modifier rule reference documentation page]($docs/presentation/content/ContentModifier.md) * @public */ export interface ContentModifier extends RuleBase, ContentModifiersList { /** Used for serializing to JSON. */ ruleType: "ContentModifier"; /** * Specification of ECClass whose content should be modified. The modifier is applied to all content * if this attribute is not specified. */ class?: SingleSchemaClassSpecification; /** * Specifies whether [`calculatedProperties`]($docs/presentation/content/CalculatedPropertiesSpecification.md) and * [`relatedProperties`]($docs/presentation/content/RelatedPropertiesSpecification.md) specifications should also be applied on * [nested content]($docs/presentation/content/Terminology.md#nested-content). */ applyOnNestedContent?: boolean; } //# sourceMappingURL=ContentModifier.d.ts.map