UNPKG

@awayjs/stage

Version:
63 lines (62 loc) 1.93 kB
var State = /** @class */ (function () { function State() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.values = []; this.fixedValues = []; this.dirty = true; this._deltaDirty = []; this._locked = false; // eslint-disable-next-line prefer-rest-params this.values = Array.prototype.slice.call(arguments); } State.prototype.lock = function (lock) { this._locked = lock; if (!lock) return; var v = this.values; for (var i = 0, l = v.length; i < l; i++) { this.fixedValues[i] = v[i]; } this.fixedValues.length = v.length; this.dirty = false; }; State.prototype.set = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var ref = this._locked ? this.fixedValues : this.values; var values = this.values; var dirty = false; for (var i = 0; i < args.length; i++) { dirty = dirty || ref[i] !== args[i]; values[i] = args[i]; } return this.dirty = dirty; }; State.prototype.setAt = function (index, value) { var v = this._locked ? this.fixedValues : this.values; var dirty = v[index] !== value; this.values[index] = value; this.dirty = this.dirty || dirty; return dirty; }; State.prototype.deltaDirty = function () { var delta = this._deltaDirty; var v = this.values; var f = this.fixedValues; delta.length = v.length; for (var i = 0; i < v.length; i++) { delta[i] = v[i] !== f[i]; } return delta; }; State.prototype.reset = function () { this.set(); }; return State; }()); export { State };