{"version":3,"file":"print.mjs","sources":["../../../../packages/utils/print.ts"],"sourcesContent":["import getUUID from './uuid'\nimport DOMPurify from 'dompurify'\n\nfunction getBody(areaId: string): string[] {\n\tconst element = document.getElementById(areaId)\n\tif (!element) throw new Error(`Element with id ${areaId} not found`)\n\n\tconst html: string[] = []\n\thtml.push('<div class=\"to-print\"><div class=\"content\">\\r\\n<div class=\"paper\">')\n\thtml.push(element.outerHTML)\n\thtml.push('</div></div>')\n\thtml.push('<div id=\"printFn\" class=\"fn\">\\r\\n')\n\thtml.push('<button type=\"button\" onclick=\"javascript:window.close();\" class=\"to-button to-box-link to-form-readonly to-box-color-default to-box-mode-fill\"><span class=\"to-icon-close to-box-color-default\"><span style=\"font-size: 100%;\"></span></span><span class=\"to-buttonText to-hide-keep\">关闭</span></button>')\n\thtml.push('<button type=\"button\" class=\"to-button to-box-link to-form-readonly to-box-color-primary to-box-mode-fill\" onclick=\"javascript:window.print();\"><span class=\"to-icon-print to-box-color-default\"><span style=\"font-size: 100%;\"></span></span><span class=\"to-buttonText to-hide-keep\">打印</span></button>')\n\thtml.push('\\r\\n</div>')\n\thtml.push('\\r\\n</div>')\n\treturn html\n}\n\nfunction replaceBodyContent(newContent: string): string {\n\tconst htmlString = document.documentElement.outerHTML\n\tconst parser = new DOMParser()\n\tconst doc = parser.parseFromString(htmlString, 'text/html')\n\n\tdoc.body.innerHTML = DOMPurify.sanitize(newContent)\n\treturn doc.documentElement.outerHTML\n}\n\nfunction print(areaId: string, title?: string): void {\n\tif (!areaId || typeof areaId !== 'string') return\n\n\tconst pwin = window.open('about:blank', '_new_print_win_' + getUUID(), 'height=600,width=900,status=no,toolbar=no,menubar=no,location=no,resizable=yes')\n\n\tif (!pwin) throw new Error('Failed to open print window')\n\n\tpwin.document.write(replaceBodyContent(getBody(areaId).join('')))\n\tpwin.document.close()\n\tpwin.document.documentElement.classList.add('s_print')\n\n\tif (title && typeof title === 'string') {\n\t\tpwin.document.title = title\n\t}\n}\n\nexport { print }\n"],"names":["DOMPurify","getUUID"],"mappings":";;;AAGA,SAAS,QAAQ,MAA0B,EAAA;AAC1C,EAAM,MAAA,OAAA,GAAU,QAAS,CAAA,cAAA,CAAe,MAAM,CAAA,CAAA;AAC9C,EAAA,IAAI,CAAC,OAAA;AAAS,IAAM,MAAA,IAAI,KAAM,CAAA,CAAA,gBAAA,EAAmB,MAAkB,CAAA,UAAA,CAAA,CAAA,CAAA;AAEnE,EAAA,MAAM,OAAiB,EAAC,CAAA;AACxB,EAAA,IAAA,CAAK,KAAK,oEAAoE,CAAA,CAAA;AAC9E,EAAK,IAAA,CAAA,IAAA,CAAK,QAAQ,SAAS,CAAA,CAAA;AAC3B,EAAA,IAAA,CAAK,KAAK,cAAc,CAAA,CAAA;AACxB,EAAA,IAAA,CAAK,KAAK,mCAAmC,CAAA,CAAA;AAC7C,EAAA,IAAA,CAAK,KAAK,qTAA2S,CAAA,CAAA;AACrT,EAAA,IAAA,CAAK,KAAK,qTAA2S,CAAA,CAAA;AACrT,EAAA,IAAA,CAAK,KAAK,YAAY,CAAA,CAAA;AACtB,EAAA,IAAA,CAAK,KAAK,YAAY,CAAA,CAAA;AACtB,EAAO,OAAA,IAAA,CAAA;AACR,CAAA;AAEA,SAAS,mBAAmB,UAA4B,EAAA;AACvD,EAAM,MAAA,UAAA,GAAa,SAAS,eAAgB,CAAA,SAAA,CAAA;AAC5C,EAAM,MAAA,MAAA,GAAS,IAAI,SAAU,EAAA,CAAA;AAC7B,EAAA,MAAM,GAAM,GAAA,MAAA,CAAO,eAAgB,CAAA,UAAA,EAAY,WAAW,CAAA,CAAA;AAE1D,EAAA,GAAA,CAAI,IAAK,CAAA,SAAA,GAAYA,MAAU,CAAA,QAAA,CAAS,UAAU,CAAA,CAAA;AAClD,EAAA,OAAO,IAAI,eAAgB,CAAA,SAAA,CAAA;AAC5B,CAAA;AAEA,SAAS,KAAA,CAAM,QAAgB,KAAsB,EAAA;AACpD,EAAI,IAAA,CAAC,MAAU,IAAA,OAAO,MAAW,KAAA,QAAA;AAAU,IAAA,OAAA;AAE3C,EAAA,MAAM,OAAO,MAAO,CAAA,IAAA,CAAK,eAAe,iBAAoB,GAAAC,YAAA,IAAW,gFAAgF,CAAA,CAAA;AAEvJ,EAAA,IAAI,CAAC,IAAA;AAAM,IAAM,MAAA,IAAI,MAAM,6BAA6B,CAAA,CAAA;AAExD,EAAK,IAAA,CAAA,QAAA,CAAS,MAAM,kBAAmB,CAAA,OAAA,CAAQ,MAAM,CAAE,CAAA,IAAA,CAAK,EAAE,CAAC,CAAC,CAAA,CAAA;AAChE,EAAA,IAAA,CAAK,SAAS,KAAM,EAAA,CAAA;AACpB,EAAA,IAAA,CAAK,QAAS,CAAA,eAAA,CAAgB,SAAU,CAAA,GAAA,CAAI,SAAS,CAAA,CAAA;AAErD,EAAI,IAAA,KAAA,IAAS,OAAO,KAAA,KAAU,QAAU,EAAA;AACvC,IAAA,IAAA,CAAK,SAAS,KAAQ,GAAA,KAAA,CAAA;AAAA,GACvB;AACD;;;;"}