hswidget
Version:
Helpful Scripts UI widgets
69 lines • 7.21 kB
JavaScript
;
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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