UNPKG

unified-doc-dom

Version:
3 lines (2 loc) 3.85 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("file-saver"),require("resize-observer-polyfill"),require("rangy")):"function"==typeof define&&define.amd?define(["exports","file-saver","resize-observer-polyfill","rangy"],t):t((e=e||self).unifiedDocDom={},e.fileSaver,e.resizeObserverPolyfill,e.rangy)}(this,function(e,t,n,r){function i(e){return new File([e.content],e.name,{type:e.type})}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n,r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;var l={background:"rgba(11, 95, 255, 0.2)",durationMs:5e3,highlighterClassName:"unified-doc-highlighter",selector:function(e){return"[data-mark-id='"+e+"']"}},u=function(){function e(e,t){var n=t.background,r=t.durationMs,i=t.highlighterClassName,o=document.querySelector("."+i);o&&o.remove(),this.highlighterElement=document.createElement("div"),this.highlighterElement.className=i,this.highlighterElement.style.background=n,this.highlighterElement.style.left="0",this.highlighterElement.style.position="fixed",this.highlighterElement.style.right="0",this.highlighterElement.style.top="0",this.highlighterElement.style.animationDuration=r+"ms",e&&e.append(this.highlighterElement)}var t=e.prototype;return t.destroy=function(){this.highlighterElement.remove()},t.update=function(e){var t=e.left,n=e.top,r=e.width;this.highlighterElement.style.height=e.height+"px",this.highlighterElement.style.left=t+"px",this.highlighterElement.style.top=n+"px",this.highlighterElement.style.width=r+"px"},e}();function s(e,t){}var a={callback:function(e){}};e.fromFile=function(e){try{return Promise.resolve(e.text()).then(function(t){var n=e.name,r=e.type,i="",o=n.split(".");return o.length>1&&(i=o.pop()),{content:t,extension:i,name:n,stem:o.join("."),type:r}})}catch(e){return Promise.reject(e)}},e.highlight=function(e,t,r){var i=o({},l,r),s=i.durationMs,a=e.querySelectorAll((0,i.selector)(t)),h=a[0],c=a[a.length-1],f=new u(h,i),d=new n(function(){return m()});d.observe(e),window.addEventListener("scroll",m);var g=setTimeout(function(){return v()},s);function m(){h&&c&&f.update(function(e,t,n){var r=e.getBoundingClientRect(),i=t.getBoundingClientRect();return{height:n.getBoundingClientRect().bottom-i.top,left:r.left,top:i.top,width:r.width}}(e,h,c))}function v(){clearTimeout(g),f.destroy(),d.unobserve(e),window.removeEventListener("scroll",m)}return v},e.registerMarks=function(e,t,n){void 0===n&&(n={});var r=e.querySelectorAll("[data-mark-id]"),i=n.onClick,o=void 0===i?s:i,l=n.onMouseEnter,u=void 0===l?s:l,a=n.onMouseOut,h=void 0===a?s:a,c=t.reduce(function(e,t){return e[t.id]={click:function(e){return o(e,t)},mouseenter:function(e){return u(e,t)},mouseout:function(e){return h(e,t)}},e},{});function f(e){var t=e.getAttribute("data-mark-id");return c[t]}return r.forEach(function(e){var t=f(e)||{},n=t.click,r=t.mouseenter,i=t.mouseout;n&&e.addEventListener("click",n),r&&e.addEventListener("mouseenter",r),i&&e.addEventListener("mouseout",i)}),function(){r.forEach(function(e){var t=f(e)||{},n=t.click,r=t.mouseenter,i=t.mouseout;n&&e.removeEventListener("click",n),r&&e.removeEventListener("mouseenter",r),i&&e.removeEventListener("mouseout",i)})}},e.saveFile=function(e){var n=i(e);t.saveAs(n)},e.selectText=function(e,t){function n(){var n=r.getSelection(),i=n.getBookmark(e).rangeBookmarks[0],o=i.start,l=i.end;if(l>=o){var u=e.textContent.slice(o,l);t.callback({start:o,end:l,value:u})}n.removeAllRanges()}return void 0===t&&(t=a),e.addEventListener("mouseup",n),function(){e.removeEventListener("mouseup",n)}},e.toFile=i}); //# sourceMappingURL=index.umd.js.map