@visactor/vchart
Version:
charts lib based @visactor/VGrammar
38 lines (33 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.StateManager = void 0;
const vutils_1 = require("@visactor/vutils"), signal_manager_1 = require("./signal-manager");
class StateManager extends signal_manager_1.SignalManager {
getStateMap() {
return this._stateMap;
}
_getDefaultStateMap() {
return {};
}
constructor(option) {
super(option), option.stateKeyToSignalName ? this.stateKeyToSignalName = option.stateKeyToSignalName : this.stateKeyToSignalName = () => "state_signal",
this.initStateMap();
}
initStateMap(state) {
this._stateMap = null != state ? state : this._getDefaultStateMap();
}
compile(stateMap) {
const state = null != stateMap ? stateMap : this._stateMap;
Object.keys(state).forEach((key => {
const name = this.stateKeyToSignalName(key), value = state[key];
this.updateSignal(name, value);
}));
}
updateState(newState, noRender) {
if (newState && ((0, vutils_1.merge)(this._stateMap, newState), this.compile(newState),
!noRender)) return this.getCompiler().renderNextTick();
}
}
exports.StateManager = StateManager;
//# sourceMappingURL=state-manager.js.map