UNPKG

hswidget

Version:
68 lines 6.17 kB
"use strict"; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0J1dHRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFrREEsc0RBQXVDO0FBQ3ZDLG1DQUFzQztBQUFFLE1BQU0sR0FBRyxHQUFHLElBQUksWUFBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3RFLHFDQUN3QztBQUN4QyxpQ0FBc0M7QUFDdEMsMkNBQytDO0FBOEMvQyxNQUFhLE1BQU8sU0FBUSxzQkFBYTtJQVFyQyxNQUFNLENBQUMsSUFBNkI7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFnQixJQUFJLENBQUMsUUFBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFDakYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLGFBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxhQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBRTtJQUN2RSxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQThCO1FBQy9CLE1BQU0sQ0FBQyxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakMsT0FBTyxpQkFBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQy9CLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNoQztZQUFBLENBQUM7WUFDRixXQUFXLEVBQUUsR0FBRSxFQUFFLENBQUEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakMsU0FBUyxFQUFJLEdBQUUsRUFBRSxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQ3JDLENBQUMsRUFBYyxJQUFJLENBQUMsUUFBUyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNKO0FBbkNELHdCQW1DQztBQWNELE1BQWEsV0FBWSxTQUFRLE1BQU07SUFFbkMsTUFBTSxDQUFDLElBQThCO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksYUFBSyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBOEI7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7O0FBVkwsa0NBV0M7QUFWVSxrQkFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBMkJsQyxNQUFhLFVBQVcsU0FBUSxNQUFNO0lBQ2xDLE1BQU0sQ0FBQyxJQUFrQztRQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBa0M7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBQyxDQUFDLFdBQUksRUFBRSxFQUFDLEdBQUcsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFDakQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDSjtBQVRELGdDQVNDIn0=