UNPKG

@megaputer/html-screen-capture-js

Version:
3 lines (2 loc) 7.77 kB
var e,t;!function(e){e.OBJECT="object",e.STRING="string"}(e||(e={})),function(e){e.DEBUG="debug",e.INFO="info",e.WARN="warn",e.ERROR="error",e.FATAL="fatal",e.OFF="off"}(t||(t={}));var n=t.WARN,o=function(e,o){var r=[t.DEBUG,t.INFO,t.WARN,t.ERROR,t.FATAL,t.OFF];r.indexOf(o)>=r.indexOf(n)&&console.log("|html-screen-capture-js|"+o+"| "+e)},r=function(){return n===t.DEBUG},a=function(e){void 0===e&&(e=t.WARN),n=e},l=function(e){o(e,t.DEBUG)},s=function(e){o(e,t.INFO)},i=function(e){o(e,t.WARN)},c=function(e){o(e,t.ERROR)},u=function(e){var t,n,o,r,a,l,s,i="",c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",u=0;for(e=function(e){for(var t=e.replace(/\r\n/g,"\n"),n="",o=0;o<t.length;o++){var r=t.charCodeAt(o);r<128?n+=String.fromCharCode(r):r>127&&r<2048?(n+=String.fromCharCode(r>>6|192),n+=String.fromCharCode(63&r|128)):(n+=String.fromCharCode(r>>12|224),n+=String.fromCharCode(r>>6&63|128),n+=String.fromCharCode(63&r|128))}return n}(e);u<e.length;)r=(t=e.charCodeAt(u++))>>2,a=(3&t)<<4|(n=e.charCodeAt(u++))>>4,l=(15&n)<<2|(o=e.charCodeAt(u++))>>6,s=63&o,isNaN(n)?l=s=64:isNaN(o)&&(s=64),i=i+c.charAt(r)+c.charAt(a)+c.charAt(l)+c.charAt(s);return i},d=function(e){var t=e.className,n="[object SVGAnimatedString]"===t.toString()?t.baseVal:t;return"string"==typeof n?n:""},g=function(e,t,n){(function(e){var t=d(e);return(t?t.split(" "):[]).reduce((function(e,t){return t&&e.push(t),e}),[])})(n).length>0&&(null!=e.options.attrKeyForSavingElementOrigClass&&n.setAttribute(e.options.attrKeyForSavingElementOrigClass,d(n)),n.removeAttribute("class")),n.getAttribute("style")&&(null!=e.options.attrKeyForSavingElementOrigStyle&&n.setAttribute(e.options.attrKeyForSavingElementOrigStyle,n.getAttribute("style")||""),n.removeAttribute("style"));var o=function(){for(var n="".concat(e.options.prefixForNewGeneratedClasses,"0 "),o=getComputedStyle(t),r=0;r<o.length;r++){var a=o.item(r),l=o.getPropertyValue(a);if(l!==e.baseClass.get(a)){var s=a+":"+l,i=e.classMap.get(s)||"";i||(e.classCount++,i="".concat(e.options.prefixForNewGeneratedClasses).concat(e.classCount),e.classMap.set(s,i)),n+=i+" "}}return n}();o+=function(){for(var n="",o=0,r=["::before","::after"];o<r.length;o++){var a=r[o],l=getComputedStyle(t,a);if(!["none","normal"].includes(l.content)){e.pseudoClassCount++;var s="".concat(e.options.prefixForNewGeneratedPseudoClasses).concat(e.pseudoClassCount);n+=s+" ",e.pseudoStyles.push(".".concat(s).concat(a,"{"));for(var i=0;i<l.length;i++){var c=l.item(i),u=l.getPropertyValue(c);e.pseudoStyles.push("".concat(c,":").concat(u,";"))}e.pseudoStyles.push("}")}}return n}(),n.setAttribute("class",o.trim())},f=function(e,t){var n="";try{e.canvas||(e.canvas=e.doc.createElement("canvas")),e.canvas.width=t instanceof HTMLImageElement?t.naturalWidth:t.width,e.canvas.height=t instanceof HTMLImageElement?t.naturalHeight:t.height;var o=e.canvas.getContext("2d");o&&o.drawImage(t,0,0),n=e.canvas.toDataURL(e.options.imageFormatForDataUrl,e.options.imageQualityForDataUrl)}catch(e){i("getCanvasDataUrl() - ".concat(e.message))}return n},m=function(e,t){var n,o,r;if(e.ignoredElms.includes(t))return!0;var a=Object.entries(e.options.computedStyleKeyValuePairsOfIgnoredElements);if(e.isBody&&a.length>0)for(var l=getComputedStyle(t),s=0,i=a;s<i.length;s++){var c=i[s],u=c[0],d=c[1];if(l.getPropertyValue(u)===d)return!0}return null!==(r=null===(o=(n=e.options).ignoreElements)||void 0===o?void 0:o.call(n,t))&&void 0!==r&&r},v=function(e,t,n,o){if(e.isBody&&(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement?function(e,t){t.setAttribute("value",e.value);var n=e.getAttribute("type");if(e instanceof HTMLInputElement&&("checkbox"===n||"radio"===n))e.checked?t.setAttribute("checked","checked"):t.removeAttribute("checked");else if(e instanceof HTMLTextAreaElement&&e.value)t.innerText=e.value;else if(e instanceof HTMLSelectElement&&e.value&&e.children)for(var o=e.children.length-1;o>=0;o--)e.children[o].getAttribute("value")===e.value?t.children[o].setAttribute("selected",""):t.children[o].removeAttribute("selected")}(t,n):t instanceof HTMLImageElement?function(e,t,n){if(e.shouldHandleImgDataUrl){var o=f(e,t);o&&n.setAttribute("src",o)}}(e,t,n):t instanceof HTMLCanvasElement&&function(e,t,n){var o=f(e,t);o&&n.setAttribute("src",o),n.outerHTML=n.outerHTML.replace(/<canvas/g,"<img")}(e,t,n)),o&&(g(e,t,n),e.options.tagsOfSkippedElementsForChildTreeCssHandling.includes(t.tagName.toLowerCase())&&(o=!1)),t.children)for(var r=t.children.length-1;r>=0;r--)m(e,t.children[r])?n.removeChild(n.children[r]):v(e,t.children[r],n.children[r],o)},p=function(e){e.ignoredElms=function(e){if(!e.options.cssSelectorsOfIgnoredElements||!e.options.cssSelectorsOfIgnoredElements.length)return[];var t=[];return e.options.cssSelectorsOfIgnoredElements.forEach((function(n){e.doc.documentElement.querySelectorAll(n).forEach((function(e){t.push(e)}))})),t}(e);var t=function(){var t=e.doc.documentElement.cloneNode(!1);return g(e,e.doc.documentElement,t),t}();return function(t){var n=e.doc.head.cloneNode(!0);e.isBody=!1,v(e,e.doc.head,n,!1),t.appendChild(n)}(t),function(t){!function(e){var t=e.doc.createElement("div");t.style.display="none",e.doc.body.appendChild(t);for(var n=getComputedStyle(t),o=0;o<n.length;o++){var r=n.item(o),a=n.getPropertyValue(r);e.baseClass.set(r,a)}e.baseClass.set("display","block"),t.parentNode&&t.parentNode.removeChild(t)}(e);var n=e.doc.body.cloneNode(!0);e.isBody=!0,v(e,e.doc.body,n,!0),t.appendChild(n)}(t),function(t){var n=e.doc.createElement("style"),o=".".concat(e.options.prefixForNewGeneratedClasses,"0{");e.baseClass.forEach((function(e,t){o+="".concat(t,":").concat(e,";")})),o+="}",e.classMap.forEach((function(e,t){o+=".".concat(e,"{").concat(t,"}")})),o+=e.pseudoStyles.join(""),o+=e.options.rulesToAddToDocStyle.join(""),n.appendChild(e.doc.createTextNode(o)),t.children[0].appendChild(n)}(t),t},h=function(t,n){var o,a=null;if(n===e.OBJECT)a=t;else{var s=(t?t.outerHTML:"")||"";s&&(n===e.STRING?a=s:"uri"===n?a=((o=s)?encodeURI(o):"")||"":"base64"===n&&(a=u(s))),a=a||""}return r()&&l("output: ".concat(a instanceof HTMLElement?a.outerHTML:a)),a},C=function(n,o,r){return function(n,o,r){var l={rulesToAddToDocStyle:(null==r?void 0:r.rulesToAddToDocStyle)||[],cssSelectorsOfIgnoredElements:(null==r?void 0:r.cssSelectorsOfIgnoredElements)||["script","link","style"],computedStyleKeyValuePairsOfIgnoredElements:{display:"none"},tagsOfSkippedElementsForChildTreeCssHandling:(null==r?void 0:r.tagsOfSkippedElementsForChildTreeCssHandling)||["svg"],attrKeyForSavingElementOrigClass:null==(null==r?void 0:r.attrKeyForSavingElementOrigClass)?null:r.attrKeyForSavingElementOrigClass||"_class",attrKeyForSavingElementOrigStyle:null==(null==r?void 0:r.attrKeyForSavingElementOrigStyle)?null:r.attrKeyForSavingElementOrigStyle||"_style",prefixForNewGeneratedClasses:(null==r?void 0:r.prefixForNewGeneratedClasses)||"c",prefixForNewGeneratedPseudoClasses:(null==r?void 0:r.prefixForNewGeneratedPseudoClasses)||"p",imageFormatForDataUrl:(null==r?void 0:r.imageFormatForDataUrl)||"image/png",imageQualityForDataUrl:(null==r?void 0:r.imageQualityForDataUrl)||.92,logLevel:(null==r?void 0:r.logLevel)||t.WARN,ignoreElements:null==r?void 0:r.ignoreElements},i={isBody:!1,baseClass:new Map,classMap:new Map,classCount:0,pseudoStyles:[],pseudoClassCount:0,shouldHandleImgDataUrl:!0,canvas:null,doc:o||document,ignoredElms:[],options:l},u=(new Date).getTime(),d=null;try{a(i.options.logLevel);var g=p(i);d=h(g,n||e.OBJECT)}catch(e){c("goCapture() - error - ".concat(e.message))}finally{s("goCapture() - end - ".concat((new Date).getTime()-u,"ms"))}return d}(n,o,r)};export{t as LogLevel,e as OutputType,C as capture}; //# sourceMappingURL=html-screen-capture.esm.js.map