UNPKG

bucklescript-tea

Version:
72 lines (63 loc) 2.17 kB
// Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE 'use strict'; var Vdom = require("./vdom.js"); var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); var Tea_sub = require("./tea_sub.js"); var Tea_json = require("./tea_json.js"); var Caml_option = require("bs-platform/lib/js/caml_option.js"); var position = Tea_json.Decoder.map2((function (x, y) { return { x: x, y: y }; }), Tea_json.Decoder.field("pageX", Tea_json.Decoder.$$int), Tea_json.Decoder.field("pageY", Tea_json.Decoder.$$int)); function registerGlobal(name, key, tagger) { var enableCall = function (callbacks_base) { var callbacks = { contents: callbacks_base }; var fn = function (ev) { var match = Tea_json.Decoder.decodeEvent(position, ev); if (match.tag) { return ; } else { return Caml_option.some(Curry._1(tagger, match[0])); } }; var handler = /* EventHandlerCallback */Block.__(0, [ key, fn ]); var elem = document; var cache = Vdom.eventHandler_Register(callbacks, elem, name, handler); return (function (param) { Vdom.eventHandler_Unregister(elem, name, cache); return /* () */0; }); }; return Tea_sub.registration(key, enableCall); } function clicks($staropt$star, tagger) { var key = $staropt$star !== undefined ? $staropt$star : ""; return registerGlobal("click", key, tagger); } function moves($staropt$star, tagger) { var key = $staropt$star !== undefined ? $staropt$star : ""; return registerGlobal("mousemove", key, tagger); } function downs($staropt$star, tagger) { var key = $staropt$star !== undefined ? $staropt$star : ""; return registerGlobal("mousedown", key, tagger); } function ups($staropt$star, tagger) { var key = $staropt$star !== undefined ? $staropt$star : ""; return registerGlobal("mouseup", key, tagger); } exports.position = position; exports.registerGlobal = registerGlobal; exports.clicks = clicks; exports.moves = moves; exports.downs = downs; exports.ups = ups; /* position Not a pure module */