'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function addStyles (win, styles) { styles.forEach(style => { let link = win.document.createElement('link'); link.setAttribute('rel', 'stylesheet'); link.setAttribute('type', 'text/css'); link.setAttribute('href', style); win.document.getElementsByTagName('head')[0].appendChild(link); }); } function openWindow (url, name, props) { let windowRef = null; windowRef = window.open(url, name, props); if (!windowRef.opener) { windowRef.opener = self; } windowRef.focus(); return windowRef; } const VueHtmlToPaper = { install (app, options = {}) { app.config.globalProperties.$htmlToPaper = (el, localOptions, cb = () => true) => { let defaultName = '_blank', defaultSpecs = ['fullscreen=yes','titlebar=yes', 'scrollbars=yes'], defaultReplace = true, defaultStyles = [], defaultWindowTitle = window.document.title; let { name = defaultName, specs = defaultSpecs, replace = defaultReplace, styles = defaultStyles, autoClose = true, windowTitle = defaultWindowTitle, } = options; // If has localOptions // TODO: improve logic if (!!localOptions) { if (localOptions.name) name = localOptions.name; if (localOptions.specs) specs = localOptions.specs; if (localOptions.replace) replace = localOptions.replace; if (localOptions.styles) styles = localOptions.styles; if (localOptions.autoClose === false) autoClose = localOptions.autoClose; if (localOptions.windowTitle) windowTitle = localOptions.windowTitle; } specs = !!specs.length ? specs.join(',') : ''; const element = window.document.getElementById(el); if (!element) { alert(`Element to print #${el} not found!`); return; } const url = ''; const win = openWindow(url, name, specs); win.document.write(`