UNPKG

hswidget

Version:
16 lines 1.68 kB
export class State { constructor(numValues, initialValue = 0, transition = State.transitions.cycle) { this.numValues = numValues; this.transition = transition; this.state = 0; this.getNumValues = () => this.numValues; this.getValue = () => this.state; this.setValue = (newValue) => this.state = newValue % this.numValues; this.advance = (input) => this.transition(this, input); this.state = initialValue; } } State.transitions = { cycle: (state) => state.setValue((state.getValue() + 1) % state.getNumValues()), }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3VwcG9ydC9TdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQ0EsTUFBTSxPQUFPLEtBQUs7SUFnQmQsWUFBNkIsU0FBZ0IsRUFBRSxZQUFZLEdBQUMsQ0FBQyxFQUFZLGFBQVcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLO1FBQTlFLGNBQVMsR0FBVCxTQUFTLENBQU87UUFBNEIsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFSakcsVUFBSyxHQUFHLENBQUMsQ0FBQztRQVdiLGlCQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxhQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QixhQUFRLEdBQUcsQ0FBQyxRQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFdkUsWUFBTyxHQUFHLENBQUMsS0FBVSxFQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQU56RCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztJQUM5QixDQUFDOztBQWpCTSxpQkFBVyxHQUErQjtJQUU3QyxLQUFLLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0NBR3pGLENBQUMifQ==