UNPKG

@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
"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;