@itwin/appui-abstract
Version:
iTwin.js UI abstractions
68 lines • 2.39 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
/** @packageDocumentation
* @module Dialog
*/
/** [[DialogProperty]] is a generic helper class that assists working with properties used by UiLayoutDataProvider implementations (i.e. Tool Settings and Dynamic Dialogs).
* @public
*/
export class DialogProperty {
description;
_value;
_displayValue;
_isDisabled;
constructor(description, _value, _displayValue, _isDisabled) {
this.description = description;
this._value = _value;
this._displayValue = _displayValue;
this._isDisabled = _isDisabled;
}
get isDisabled() {
return !!this._isDisabled;
}
set isDisabled(val) {
this._isDisabled = val;
}
get value() {
return this._value;
}
set value(val) {
this._value = val;
}
get name() {
return this.description.name;
}
set displayValue(val) {
this._displayValue = val;
}
get displayValue() {
return this._displayValue;
}
get dialogItemValue() {
// istanbul ignore else
if (typeof this._value === "string" || typeof this._value === "number" || typeof this._value === "undefined" || typeof this._value === "boolean" || this._value instanceof Date)
return {
value: this._value,
displayValue: this._displayValue,
};
// istanbul ignore next
throw new Error("Not valid primitive type");
}
set dialogItemValue(val) {
this._value = val.value;
this._displayValue = val.displayValue;
}
get syncItem() {
const isDisabled = this._isDisabled;
return { propertyName: this.name, value: this.dialogItemValue, isDisabled };
}
get item() {
return { propertyName: this.name, value: this.dialogItemValue };
}
toDialogItem(editorPosition, lockProperty) {
return { value: this.dialogItemValue, property: this.description, editorPosition, isDisabled: this._isDisabled, lockProperty };
}
}
//# sourceMappingURL=DialogItem.js.map