vue-files-preview-inno
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
1 lines • 6.19 kB
Source Map (JSON)
{"version":3,"file":"events.mjs","sources":["../../../../../node_modules/marks-pane/lib/events.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.proxyMouse = proxyMouse;\nexports.clone = clone;\n// import 'babelify/polyfill'; // needed for Object.assign\n\nexports.default = {\n proxyMouse: proxyMouse\n};\n\n/**\n * Start proxying all mouse events that occur on the target node to each node in\n * a set of tracked nodes.\n *\n * The items in tracked do not strictly have to be DOM Nodes, but they do have\n * to have dispatchEvent, getBoundingClientRect, and getClientRects methods.\n *\n * @param target {Node} The node on which to listen for mouse events.\n * @param tracked {Node[]} A (possibly mutable) array of nodes to which to proxy\n * events.\n */\n\nfunction proxyMouse(target, tracked) {\n function dispatch(e) {\n // We walk through the set of tracked elements in reverse order so that\n // events are sent to those most recently added first.\n //\n // This is the least surprising behaviour as it simulates the way the\n // browser would work if items added later were drawn \"on top of\"\n // earlier ones.\n for (var i = tracked.length - 1; i >= 0; i--) {\n var t = tracked[i];\n var x = e.clientX;\n var y = e.clientY;\n\n if (e.touches && e.touches.length) {\n x = e.touches[0].clientX;\n y = e.touches[0].clientY;\n }\n\n if (!contains(t, target, x, y)) {\n continue;\n }\n\n // The event targets this mark, so dispatch a cloned event:\n t.dispatchEvent(clone(e));\n // We only dispatch the cloned event to the first matching mark.\n break;\n }\n }\n\n if (target.nodeName === \"iframe\" || target.nodeName === \"IFRAME\") {\n\n try {\n // Try to get the contents if same domain\n this.target = target.contentDocument;\n } catch (err) {\n this.target = target;\n }\n } else {\n this.target = target;\n }\n\n var _arr = ['mouseup', 'mousedown', 'click', 'touchstart'];\n for (var _i = 0; _i < _arr.length; _i++) {\n var ev = _arr[_i];\n this.target.addEventListener(ev, function (e) {\n return dispatch(e);\n }, false);\n }\n}\n\n/**\n * Clone a mouse event object.\n *\n * @param e {MouseEvent} A mouse event object to clone.\n * @returns {MouseEvent}\n */\nfunction clone(e) {\n var opts = Object.assign({}, e, { bubbles: false });\n try {\n return new MouseEvent(e.type, opts);\n } catch (err) {\n // compat: webkit\n var copy = document.createEvent('MouseEvents');\n copy.initMouseEvent(e.type, false, opts.cancelable, opts.view, opts.detail, opts.screenX, opts.screenY, opts.clientX, opts.clientY, opts.ctrlKey, opts.altKey, opts.shiftKey, opts.metaKey, opts.button, opts.relatedTarget);\n return copy;\n }\n}\n\n/**\n * Check if the item contains the point denoted by the passed coordinates\n * @param item {Object} An object with getBoundingClientRect and getClientRects\n * methods.\n * @param x {Number}\n * @param y {Number}\n * @returns {Boolean}\n */\nfunction contains(item, target, x, y) {\n // offset\n var offset = target.getBoundingClientRect();\n\n function rectContains(r, x, y) {\n var top = r.top - offset.top;\n var left = r.left - offset.left;\n var bottom = top + r.height;\n var right = left + r.width;\n return top <= y && left <= x && bottom > y && right > x;\n }\n\n // Check overall bounding box first\n var rect = item.getBoundingClientRect();\n if (!rectContains(rect, x, y)) {\n return false;\n }\n\n // Then continue to check each child rect\n var rects = item.getClientRects();\n for (var i = 0, len = rects.length; i < len; i++) {\n if (rectContains(rects[i], x, y)) {\n return true;\n }\n }\n return false;\n}\n"],"names":["events","proxyMouse","clone","target","tracked","dispatch","e","i","t","x","y","contains","_arr","_i","ev","opts","copy","item","offset","rectContains","r","top","left","bottom","right","rect","rects","len"],"mappings":";AAEA,OAAO,eAAeA,GAAS,cAAc;AAAA,EACzC,OAAO;AACX,CAAC;AACDA,EAAA,aAAqBC;AACrBD,EAAA,QAAgBE;AAGhBF,EAAA,UAAkB;AAAA,EACd,YAAYC;AAChB;AAcA,SAASA,EAAWE,GAAQC,GAAS;AACjC,WAASC,EAASC,GAAG;AAOjB,aAASC,IAAIH,EAAQ,SAAS,GAAGG,KAAK,GAAGA,KAAK;AAC1C,UAAIC,IAAIJ,EAAQG,CAAC,GACbE,IAAIH,EAAE,SACNI,IAAIJ,EAAE;AAOV,UALIA,EAAE,WAAWA,EAAE,QAAQ,WACvBG,IAAIH,EAAE,QAAQ,CAAC,EAAE,SACjBI,IAAIJ,EAAE,QAAQ,CAAC,EAAE,UAGjB,EAACK,EAASH,GAAGL,GAAQM,GAAGC,CAAC,GAK7B;AAAA,QAAAF,EAAE,cAAcN,EAAMI,CAAC,CAAC;AAExB;AAAA;AAAA,IACZ;AAAA,EACA;AAEI,MAAIH,EAAO,aAAa,YAAYA,EAAO,aAAa;AAEpD,QAAI;AAEA,WAAK,SAASA,EAAO;AAAA,IACjC,QAAsB;AACV,WAAK,SAASA;AAAA,IAC1B;AAAA;AAEQ,SAAK,SAASA;AAIlB,WADIS,IAAO,CAAC,WAAW,aAAa,SAAS,YAAY,GAChDC,IAAK,GAAGA,IAAKD,EAAK,QAAQC,KAAM;AACrC,QAAIC,IAAKF,EAAKC,CAAE;AAChB,SAAK,OAAO,iBAAiBC,GAAI,SAAUR,GAAG;AAC1C,aAAOD,EAASC,CAAC;AAAA,IAC7B,GAAW,EAAK;AAAA,EAChB;AACA;AAQA,SAASJ,EAAMI,GAAG;AACd,MAAIS,IAAO,OAAO,OAAO,CAAA,GAAIT,GAAG,EAAE,SAAS,IAAO;AAClD,MAAI;AACA,WAAO,IAAI,WAAWA,EAAE,MAAMS,CAAI;AAAA,EAC1C,QAAkB;AAEV,QAAIC,IAAO,SAAS,YAAY,aAAa;AAC7C,WAAAA,EAAK,eAAeV,EAAE,MAAM,IAAOS,EAAK,YAAYA,EAAK,MAAMA,EAAK,QAAQA,EAAK,SAASA,EAAK,SAASA,EAAK,SAASA,EAAK,SAASA,EAAK,SAASA,EAAK,QAAQA,EAAK,UAAUA,EAAK,SAASA,EAAK,QAAQA,EAAK,aAAa,GACpNC;AAAA,EACf;AACA;AAUA,SAASL,EAASM,GAAMd,GAAQM,GAAGC,GAAG;AAElC,MAAIQ,IAASf,EAAO,sBAAqB;AAEzC,WAASgB,EAAaC,GAAGX,GAAGC,GAAG;AAC3B,QAAIW,IAAMD,EAAE,MAAMF,EAAO,KACrBI,IAAOF,EAAE,OAAOF,EAAO,MACvBK,IAASF,IAAMD,EAAE,QACjBI,IAAQF,IAAOF,EAAE;AACrB,WAAOC,KAAOX,KAAKY,KAAQb,KAAKc,IAASb,KAAKc,IAAQf;AAAA,EAC9D;AAGI,MAAIgB,IAAOR,EAAK,sBAAqB;AACrC,MAAI,CAACE,EAAaM,GAAMhB,GAAGC,CAAC;AACxB,WAAO;AAKX,WADIgB,IAAQT,EAAK,eAAc,GACtBV,IAAI,GAAGoB,IAAMD,EAAM,QAAQnB,IAAIoB,GAAKpB;AACzC,QAAIY,EAAaO,EAAMnB,CAAC,GAAGE,GAAGC,CAAC;AAC3B,aAAO;AAGf,SAAO;AACX;","x_google_ignoreList":[0]}