UNPKG

hswidget

Version:
71 lines 4.98 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Popup = void 0; const hsutil_1 = require("hsutil"); const log = new hsutil_1.Log('Popup'); const mithril_1 = __importDefault(require("mithril")); const Widget_1 = require("./Widget"); class Popup extends Widget_1.Widget { constructor() { super(...arguments); this.x = 0; this.y = 0; this.showPopup = false; this.content = '...Popup...'; } static arm(content, attrs = {}) { if (content) { attrs.onmouseenter = (e) => Popup.instance.show(e, content); attrs.onmousemove = (e) => Popup.instance.move(e); attrs.onmouseleave = () => Popup.instance.hide(); attrs.class = `popup ${attrs.class || ''}`; } return attrs; } show(e, content) { this.showPopup = true; this.content = content; this.move(e); } move(e) { this.x = e.x; this.y = e.y; } hide() { this.showPopup = false; } view(node) { Popup.instance = this; const pos = xy(window.innerWidth, window.innerHeight, this.x, this.y); const style = `left:${pos[0]}px; top:${pos[1]}px; transform: translate(${pos[2]}%, ${pos[3]}%);`; return !this.showPopup ? mithril_1.default('span.hs_popup.idle') : mithril_1.default(`.hs_popup`, { style: style }, this.content); } } exports.Popup = Popup; function xy(w, h, x, y) { let left = x; let top = y; let transX = 50; let transY = -50; if (2 * x > w) { left += 15; transX = -100; } else { left -= 15; transX = 0; } if (2 * y > h) { top -= 15; transY = -100; } else { top += 15; transY = 0; } return [left, top, transX, transY]; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUG9wdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBeUNBLG1DQUFzQztBQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksWUFBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BFLHNEQUF1QztBQUN2QyxxQ0FBd0M7QUFZeEMsTUFBYSxLQUFNLFNBQVEsZUFBTTtJQUFqQzs7UUFvQkksTUFBQyxHQUFHLENBQUMsQ0FBQztRQUVOLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFFTixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLFlBQU8sR0FBYyxhQUFhLENBQUM7SUFvQnZDLENBQUM7SUF2Q1UsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFrQixFQUFFLFFBQVUsRUFBRTtRQUM5QyxJQUFJLE9BQU8sRUFBRTtZQUNULEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNoRSxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxLQUFLLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakQsS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLEtBQUssQ0FBQyxLQUFLLElBQUUsRUFBRSxFQUFFLENBQUM7U0FDNUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBYU8sSUFBSSxDQUFDLENBQUssRUFBRSxPQUFrQjtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDTyxJQUFJLENBQUMsQ0FBSztRQUNkLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ08sSUFBSTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBMkI7UUFDNUIsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLEtBQUssR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakcsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFDLGlCQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xHLENBQUM7Q0FDSjtBQTlDRCxzQkE4Q0M7QUFFRCxTQUFTLEVBQUUsQ0FBQyxDQUFRLEVBQUUsQ0FBUSxFQUFFLENBQVEsRUFBRSxDQUFRO0lBQzlDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNiLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNaLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNqQixJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1QsSUFBSSxJQUFHLEVBQUUsQ0FBQztRQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQztLQUM1QjtTQUFNO1FBQ0gsSUFBSSxJQUFHLEVBQUUsQ0FBQztRQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDekI7SUFDRCxJQUFJLENBQUMsR0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1QsR0FBRyxJQUFHLEVBQUUsQ0FBQztRQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQztLQUMzQjtTQUFNO1FBQ0gsR0FBRyxJQUFHLEVBQUUsQ0FBQztRQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDeEI7SUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkMsQ0FBQyJ9