UNPKG

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 20.7 kB
{"version":3,"file":"marks.mjs","sources":["../../../../../node_modules/marks-pane/lib/marks.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Underline = exports.Highlight = exports.Mark = exports.Pane = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _svg = require('./svg');\n\nvar _svg2 = _interopRequireDefault(_svg);\n\nvar _events = require('./events');\n\nvar _events2 = _interopRequireDefault(_events);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Pane = exports.Pane = function () {\n function Pane(target) {\n var container = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.body;\n\n _classCallCheck(this, Pane);\n\n this.target = target;\n this.element = _svg2.default.createElement('svg');\n this.marks = [];\n\n // Match the coordinates of the target element\n this.element.style.position = 'absolute';\n // Disable pointer events\n this.element.setAttribute('pointer-events', 'none');\n\n // Set up mouse event proxying between the target element and the marks\n _events2.default.proxyMouse(this.target, this.marks);\n\n this.container = container;\n this.container.appendChild(this.element);\n\n this.render();\n }\n\n _createClass(Pane, [{\n key: 'addMark',\n value: function addMark(mark) {\n var g = _svg2.default.createElement('g');\n this.element.appendChild(g);\n mark.bind(g, this.container);\n\n this.marks.push(mark);\n\n mark.render();\n return mark;\n }\n }, {\n key: 'removeMark',\n value: function removeMark(mark) {\n var idx = this.marks.indexOf(mark);\n if (idx === -1) {\n return;\n }\n var el = mark.unbind();\n this.element.removeChild(el);\n this.marks.splice(idx, 1);\n }\n }, {\n key: 'render',\n value: function render() {\n setCoords(this.element, coords(this.target, this.container));\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.marks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var m = _step.value;\n\n m.render();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }]);\n\n return Pane;\n}();\n\nvar Mark = exports.Mark = function () {\n function Mark() {\n _classCallCheck(this, Mark);\n\n this.element = null;\n }\n\n _createClass(Mark, [{\n key: 'bind',\n value: function bind(element, container) {\n this.element = element;\n this.container = container;\n }\n }, {\n key: 'unbind',\n value: function unbind() {\n var el = this.element;\n this.element = null;\n return el;\n }\n }, {\n key: 'render',\n value: function render() {}\n }, {\n key: 'dispatchEvent',\n value: function dispatchEvent(e) {\n if (!this.element) return;\n this.element.dispatchEvent(e);\n }\n }, {\n key: 'getBoundingClientRect',\n value: function getBoundingClientRect() {\n return this.element.getBoundingClientRect();\n }\n }, {\n key: 'getClientRects',\n value: function getClientRects() {\n var rects = [];\n var el = this.element.firstChild;\n while (el) {\n rects.push(el.getBoundingClientRect());\n el = el.nextSibling;\n }\n return rects;\n }\n }, {\n key: 'filteredRanges',\n value: function filteredRanges() {\n var rects = Array.from(this.range.getClientRects());\n\n // De-duplicate the boxes\n return rects.filter(function (box) {\n for (var i = 0; i < rects.length; i++) {\n if (rects[i] === box) {\n return true;\n }\n var contained = contains(rects[i], box);\n if (contained) {\n return false;\n }\n }\n return true;\n });\n }\n }]);\n\n return Mark;\n}();\n\nvar Highlight = exports.Highlight = function (_Mark) {\n _inherits(Highlight, _Mark);\n\n function Highlight(range, className, data, attributes) {\n _classCallCheck(this, Highlight);\n\n var _this = _possibleConstructorReturn(this, (Highlight.__proto__ || Object.getPrototypeOf(Highlight)).call(this));\n\n _this.range = range;\n _this.className = className;\n _this.data = data || {};\n _this.attributes = attributes || {};\n return _this;\n }\n\n _createClass(Highlight, [{\n key: 'bind',\n value: function bind(element, container) {\n _get(Highlight.prototype.__proto__ || Object.getPrototypeOf(Highlight.prototype), 'bind', this).call(this, element, container);\n\n for (var attr in this.data) {\n if (this.data.hasOwnProperty(attr)) {\n this.element.dataset[attr] = this.data[attr];\n }\n }\n\n for (var attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n this.element.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n if (this.className) {\n this.element.classList.add(this.className);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n // Empty element\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n\n var docFrag = this.element.ownerDocument.createDocumentFragment();\n var filtered = this.filteredRanges();\n var offset = this.element.getBoundingClientRect();\n var container = this.container.getBoundingClientRect();\n\n for (var i = 0, len = filtered.length; i < len; i++) {\n var r = filtered[i];\n var el = _svg2.default.createElement('rect');\n el.setAttribute('x', r.left - offset.left + container.left);\n el.setAttribute('y', r.top - offset.top + container.top);\n el.setAttribute('height', r.height);\n el.setAttribute('width', r.width);\n docFrag.appendChild(el);\n }\n\n this.element.appendChild(docFrag);\n }\n }]);\n\n return Highlight;\n}(Mark);\n\nvar Underline = exports.Underline = function (_Highlight) {\n _inherits(Underline, _Highlight);\n\n function Underline(range, className, data, attributes) {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).call(this, range, className, data, attributes));\n }\n\n _createClass(Underline, [{\n key: 'render',\n value: function render() {\n // Empty element\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n\n var docFrag = this.element.ownerDocument.createDocumentFragment();\n var filtered = this.filteredRanges();\n var offset = this.element.getBoundingClientRect();\n var container = this.container.getBoundingClientRect();\n\n for (var i = 0, len = filtered.length; i < len; i++) {\n var r = filtered[i];\n\n var rect = _svg2.default.createElement('rect');\n rect.setAttribute('x', r.left - offset.left + container.left);\n rect.setAttribute('y', r.top - offset.top + container.top);\n rect.setAttribute('height', r.height);\n rect.setAttribute('width', r.width);\n rect.setAttribute('fill', 'none');\n\n var line = _svg2.default.createElement('line');\n line.setAttribute('x1', r.left - offset.left + container.left);\n line.setAttribute('x2', r.left - offset.left + container.left + r.width);\n line.setAttribute('y1', r.top - offset.top + container.top + r.height - 1);\n line.setAttribute('y2', r.top - offset.top + container.top + r.height - 1);\n\n line.setAttribute('stroke-width', 1);\n line.setAttribute('stroke', 'black'); //TODO: match text color?\n line.setAttribute('stroke-linecap', 'square');\n\n docFrag.appendChild(rect);\n\n docFrag.appendChild(line);\n }\n\n this.element.appendChild(docFrag);\n }\n }]);\n\n return Underline;\n}(Highlight);\n\nfunction coords(el, container) {\n var offset = container.getBoundingClientRect();\n var rect = el.getBoundingClientRect();\n\n return {\n top: rect.top - offset.top,\n left: rect.left - offset.left,\n height: el.scrollHeight,\n width: el.scrollWidth\n };\n}\n\nfunction setCoords(el, coords) {\n el.style.setProperty('top', coords.top + 'px', 'important');\n el.style.setProperty('left', coords.left + 'px', 'important');\n el.style.setProperty('height', coords.height + 'px', 'important');\n el.style.setProperty('width', coords.width + 'px', 'important');\n}\n\nfunction contains(rect1, rect2) {\n return rect2.right <= rect1.right && rect2.left >= rect1.left && rect2.top >= rect1.top && rect2.bottom <= rect1.bottom;\n}\n"],"names":["marks","Underline_1","Highlight_1","Pane_1","_get","get","object","property","receiver","desc","parent","getter","_createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","_svg","require$$0","_svg2","_interopRequireDefault","_events","require$$1","_events2","obj","_possibleConstructorReturn","self","call","_inherits","subClass","superClass","_classCallCheck","instance","Pane","container","mark","g","idx","el","setCoords","coords","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","m","err","Mark","element","rects","box","i","contained","contains","Highlight","_Mark","range","className","data","attributes","_this","attr","docFrag","filtered","offset","len","r","_Highlight","Underline","rect","line","rect1","rect2"],"mappings":"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","x_google_ignoreList":[0]}