@itwin/appui-abstract
Version:
iTwin.js UI abstractions
58 lines • 2.41 kB
TypeScript
/** @packageDocumentation
* @module Properties
*/
import { PropertyDescription } from "./Description";
import { PropertyValue } from "./Value";
/** Properties for the [[PropertyRecord]] with link info supplied
* @public
*/
export interface LinkElementsInfo {
/** Callback to link click event */
onClick: (text: string) => void;
/**
* Function that specifies which parts of display value need to be clickable.
*
* Letters will be picked from __start__ index to __end__ index. __end__ index is not included.
* For a string _"example"_ and a match ```{ start: 1, end: 3 }```, _"xa"_ will be clickable.
*/
matcher?: (displayValue: string) => Array<{
start: number;
end: number;
}>;
}
/**
* PropertyRecord contains instance information about a Property, including a
* value that can be edited using a PropertyEditor and converted using a TypeConverter.
* @public
*/
export declare class PropertyRecord {
/** Value for the property */
readonly value: PropertyValue;
/** The property description containing metadata for the property */
readonly property: PropertyDescription;
/** Description for the property */
description?: string;
/** Indicates if the property is read-only */
isReadonly?: boolean;
/** Indicates if the property is disabled */
isDisabled?: boolean;
/** Indicates if the property record represents merged properties */
isMerged?: boolean;
/** Indicates if the property should be automatically expanded */
autoExpand?: boolean;
/** Map containing any additional data */
extendedData?: {
[key: string]: any;
};
/** Properties for link logic */
links?: LinkElementsInfo;
/** Constructs a PropertyRecord instance */
constructor(value: PropertyValue, property: PropertyDescription);
/** Creates a copy of this PropertyRecord with a new value and optionally a new PropertyDescription */
copyWithNewValue(newValue: PropertyValue, newDescription?: PropertyDescription): PropertyRecord;
/** Gets this property record value children records */
getChildrenRecords(): PropertyRecord[];
/** Creates a PropertyRecord based on a value string and an optional property description or name */
static fromString(value: string, descriptionOrName?: PropertyDescription | string): PropertyRecord;
}
//# sourceMappingURL=Record.d.ts.map