UNPKG

hswidget

Version:
69 lines 7.21 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.IconButtons = exports.RadioButtons = exports.OptionButtons = void 0; const mithril_1 = __importDefault(require("mithril")); const Widget_1 = require("./Widget"); const Button_1 = require("./Button"); class OptionButtons extends Widget_1.EnabledWidget { setButton(buttonIndex, newValue) { if (this.enabled) { this.transition(buttonIndex, newValue, this.stateAccess); this.onclick(buttonIndex, newValue, this.stateAccess.map(s => s.getValue())); } } oninit(node) { const s = node.state; s.stateAccess = []; s.onclick = node.attrs.onclick; s.transition = node.attrs.transition ?? OptionButtons.transitions.none; s.setAccessFn = (stateful, buttonIndex) => s.stateAccess[buttonIndex] = stateful; if (node.attrs.remoteSet) { node.attrs.remoteSet((buttonIndex, newValue) => s.setButton.bind(s)(buttonIndex, newValue)); } } view(node) { const s = node.state; const a = node.attrs; this.enable(!node.attrs.disable); return mithril_1.default(`.hs_option_buttons`, this.attrs(a, { style: `grid-template-columns: repeat(${node?.children?.length ?? 0}, 1fr);` }), node.children.map((c, buttonIndex) => mithril_1.default(Button_1.OnOffButton, { class: `index${buttonIndex}`, initial: Array.isArray(a.initial) ? a.initial[buttonIndex] : (a.initial === buttonIndex ? 1 : 0), onclick: (newValue) => s.setButton.bind(s)(buttonIndex, newValue), stateAccess: (stateful) => s.setAccessFn(stateful, buttonIndex), }, c))); } } exports.OptionButtons = OptionButtons; OptionButtons.transitions = { none: (buttonIndex, newValue, states) => states.map(s => s.getValue()), radio: (buttonIndex, newValue, states) => states.map((s, i) => s.setValue(i === buttonIndex ? 1 : 0)) }; class RadioButtons extends OptionButtons { oninit(node) { node.attrs.initial = node.attrs.initial || 0; node.attrs.transition = OptionButtons.transitions.radio; super.oninit(node); } view(node) { node.attrs.class = ['hs_radio_buttons', node.attrs.class].join(' '); return super.view(node); } } exports.RadioButtons = RadioButtons; class IconButtons extends Widget_1.EnabledWidget { view(node) { this.enable(!node.attrs.disable); return mithril_1.default(OptionButtons, this.attrs(node.attrs, { class: 'hs_icon_buttons', buttonConstraints: node.attrs.radioMode ? OptionButtons.transitions.radio : OptionButtons.transitions.none, onclick: node.attrs.onclick }), node.children); } } exports.IconButtons = IconButtons; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0aW9uYnV0dG9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9PcHRpb25idXR0b25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXVDQSxzREFBdUM7QUFDdkMscUNBQTJFO0FBRTNFLHFDQUF3QztBQStDeEMsTUFBYSxhQUFjLFNBQVEsc0JBQWE7SUFnQjVDLFNBQVMsQ0FBQyxXQUFrQixFQUFFLFFBQWU7UUFDekMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2hGO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFvQztRQUN2QyxNQUFNLENBQUMsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUN2RSxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsUUFBaUIsRUFBRSxXQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNqRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENB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