@try-at-software/input-elements
Version:
A package providing different input elements that are extensible and easily configurable for your custom needs.
40 lines (39 loc) • 1.36 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChangingInputElement = void 0;
const InputElement_1 = require("./InputElement");
class ChangingInputElement extends InputElement_1.InputElement {
constructor(update) {
super(update);
this._valueIsSet = false;
this._initialValueIsSet = false;
}
/** @inheritdoc */
setInitialValue(value) {
if (this._valueIsSet || this._initialValueIsSet)
return;
this._initialValueIsSet = true;
this.initialValue = value;
this.setInternalValue(value, true);
this.updateInternally();
}
/** @inheritdoc */
setValue(value) {
this._valueIsSet = true;
this.setInternalValue(value, false);
this.updateInternally();
}
/** @inheritdoc */
resetValue(options) {
if (!this._valueIsSet && !this._initialValueIsSet)
return;
this._valueIsSet = false;
if (!(options === null || options === void 0 ? void 0 : options.avoidFallbackToInitialValue) && this._initialValueIsSet) {
this._initialValueIsSet = false;
this.setInitialValue(this.initialValue);
}
else
this.resetInternalValue();
}
}
exports.ChangingInputElement = ChangingInputElement;