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