hswidget
Version:
Helpful Scripts UI widgets
68 lines • 6.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.IconButton = exports.OnOffButton = exports.Button = void 0;
const mithril_1 = __importDefault(require("mithril"));
const hsutil_1 = require("hsutil");
const log = new hsutil_1.Log('Button');
const Widget_1 = require("./Widget");
const Icon_1 = require("./Icon");
const State_1 = require("./support/State");
class Button extends Widget_1.EnabledWidget {
oninit(node) {
node.state.pressed = false;
node.state.pressing = (down) => node.state.pressed = this.enabled ? down : false;
if (!this.state) {
const numValues = node.attrs.numValues || node.children.length || 1;
const initial = node.attrs.initial ?? 0;
const transition = node.attrs.transition ?? State_1.State.transitions.cycle;
this.state = new State_1.State(numValues, initial, transition);
}
if (node.attrs.stateAccess) {
node.attrs.stateAccess(this.state);
}
}
view(node) {
const s = node.state;
this.enable(!node.attrs.disable);
return mithril_1.default(`.hs_button.state${s.state.getValue()}`, this.attrs(node.attrs, {
class: s.pressed ? 'hs_pressed' : undefined,
onclick: () => {
if (this.enabled) {
const newValue = s.state.advance();
node.attrs.onclick(newValue);
}
},
onmousedown: () => s.pressing(true),
onmouseup: () => s.pressing(false)
}), node.children.length > 1 ? node.children[s.state.getValue()] : node.children);
}
}
exports.Button = Button;
class OnOffButton extends Button {
oninit(node) {
const initial = node.attrs.initial ?? 0;
this.state = new State_1.State(2, initial);
super.oninit(node);
}
view(node) {
node.attrs.class = ['hs_onoff_button', node.attrs.class || ''].join(' ');
return super.view(node);
}
}
exports.OnOffButton = OnOffButton;
OnOffButton.states = ['off', 'on'];
class IconButton extends Button {
oninit(node) {
super.oninit(node);
}
view(node) {
node.attrs.class = ['hs_icon_button', node.attrs.class || ''].join(' ');
node.children[0] = mithril_1.default(Icon_1.Icon, { mdi: node.attrs.mdi });
return super.view(node);
}
}
exports.IconButton = IconButton;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0J1dHRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFrREEsc0RBQXVDO0FBQ3ZDLG1DQUFzQztBQUFFLE1BQU0sR0FBRyxHQUFHLElBQUksWUFBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3RFLHFDQUN3QztBQUN4QyxpQ0FBc0M7QUFDdEMsMkNBQytDO0FBOEMvQyxNQUFhLE1BQU8sU0FBUSxzQkFBYTtJQVFyQyxNQUFNLENBQUMsSUFBNkI7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFnQixJQUFJLENBQUMsUUFBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFDakYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLGFBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxhQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJ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