{"version":3,"file":"ngx-sdcore-print.mjs","sources":["../../../projects/ngx-sdcore/print/print.helper.ts","../../../projects/ngx-sdcore/print/print.service.ts","../../../projects/ngx-sdcore/print/print.directive.ts","../../../projects/ngx-sdcore/print/print.component.ts","../../../projects/ngx-sdcore/print/print.module.ts","../../../projects/ngx-sdcore/print/public-api.ts","../../../projects/ngx-sdcore/print/ngx-sdcore-print.ts"],"sourcesContent":["import { AsyncSubject } from \"rxjs\";\r\n\r\n/**\r\n * callPrint\r\n * @param contentWindow\r\n * @param iframe\r\n * @param as\r\n */\r\nexport const callPrint = (contentWindow: any, iframe: any, as: AsyncSubject<any>) => {\r\n  if (contentWindow && contentWindow.printPage) {\r\n    contentWindow.printPage(() => setTimeout(() => AS_COMPLETE(as, contentWindow)));\r\n    if (iframe) {\r\n      document.body.removeChild(iframe);\r\n    }\r\n  } else {\r\n    setTimeout(() => callPrint(contentWindow, iframe, as), 50);\r\n  }\r\n};\r\n\r\n/**\r\n * getBaseHref\r\n * @returns\r\n */\r\nexport const getBaseHref = () => {\r\n  const port = (window.location.port) ? `:${window.location.port}` : '';\r\n  return `${window.location.protocol}//${window.location.hostname}${port}${window.location.pathname}`;\r\n};\r\n\r\n/**\r\n * getMarkup\r\n * @param elementHtml\r\n * @param options\r\n * @returns\r\n */\r\nexport const getMarkup = (elementHtml: any, options: any) => {\r\n  const template = options.templateString;\r\n  const templateRegex = new RegExp(/{{\\s*printBody\\s*}}/gi);\r\n  let stylesheets;\r\n  let styles;\r\n  const html = [];\r\n\r\n  if (template && templateRegex.test(template)) {\r\n    elementHtml = template.replace(templateRegex, elementHtml);\r\n  }\r\n\r\n  html.push(`<html><head><title>${options.pageTitle || ''}</title>`);\r\n\r\n  // If stylesheet URL's or list of stylesheet URL's are specified, override page stylesheets\r\n  if (options.stylesheets) {\r\n    stylesheets = Array.isArray(options.stylesheets) ? options.stylesheets : [options.stylesheets];\r\n  } else {\r\n    stylesheets = Array.prototype.slice\r\n      .call(document.getElementsByTagName('link'))\r\n      .map(link => link);\r\n  }\r\n\r\n  stylesheets.forEach((f: any) => {\r\n    html.push(`<link rel=\"${f.rel}\" href=\"${f.href}\">`);\r\n  });\r\n\r\n  // If inline styles or list of inline styles are specified, override inline styles\r\n  if (options.styles) {\r\n    styles = Array.isArray(options.styles) ? [...options.styles, `.print-none { display: none; }`] : [options.styles + `.print-none { display: none; }`];\r\n  } else {\r\n    styles = Array.prototype.slice\r\n      .call(document.getElementsByTagName('style'))\r\n      .map(style => style.innerHTML);\r\n  }\r\n\r\n  styles.forEach((style: any) => {\r\n    html.push(`<style type=\"text/css\">${style}</style>`);\r\n  });\r\n\r\n  html.push(`<base href=\"${getBaseHref()}\"/>`);\r\n  html.push('</head><body class=\"pe-body\">');\r\n  html.push(elementHtml);\r\n  html.push(`\r\n    <script type=\"text/javascript\">\r\n      function printPage(cb) {\r\n        focus();\r\n        print();\r\n        cb();\r\n        ${options.printMode.toLowerCase() === 'popup' && 'close();'}\r\n      }\r\n    </script>\r\n  `);\r\n  html.push('</body></html>');\r\n\r\n  return html.join('');\r\n};\r\n\r\n/**\r\n * printHtml\r\n * @param element\r\n * @param selfOptions\r\n * @param as\r\n */\r\nexport const printHtml = (element: any, selfOptions = {}, as: AsyncSubject<any>) => {\r\n  const defaultOptions = {\r\n    htmlType: 'domObj',\r\n    printMode: 'template',\r\n    pageTitle: '',\r\n    templateString: '',\r\n    popupProperties: '',\r\n    stylesheets: null,\r\n    styles: null\r\n  };\r\n  const options = { ...defaultOptions, ...selfOptions };\r\n  let html = element;\r\n  if (options.htmlType === 'domObj') {\r\n    html = element.outerHTML;\r\n  }\r\n\r\n  // Get markup to be printed\r\n  const markup = getMarkup(html, options);\r\n  let printWindow;\r\n  let printIframe;\r\n  let printDocument: any;\r\n  let printElementID;\r\n\r\n  if (options.printMode.toLowerCase() === 'popup') {\r\n    printWindow = window.open('about:blank', 'printElementWindow', options.popupProperties);\r\n    printDocument = printWindow && printWindow.document;\r\n  } else {\r\n    printElementID = `printElement_${(Math.round(Math.random() * 99999)).toString()}`;\r\n\r\n    printIframe = document.createElement('iframe');\r\n    printIframe.setAttribute('id', printElementID);\r\n    printIframe.setAttribute('src', 'about:blank');\r\n    printIframe.setAttribute('frameBorder', '0');\r\n    printIframe.setAttribute('scrolling', 'no');\r\n    printIframe.setAttribute('style', 'position:fixed;bottom:100%;right:100%;');\r\n\r\n    document.body.appendChild(printIframe);\r\n\r\n    printDocument = (printIframe.contentWindow || printIframe.contentDocument);\r\n    if (printDocument.document) {\r\n      printDocument = printDocument.document;\r\n    }\r\n\r\n    printIframe = (document as any).frames ? (document as any).frames[printElementID] : document.getElementById(printElementID);\r\n    printWindow = printIframe.contentWindow || printIframe;\r\n  }\r\n\r\n  printWindow.focus();\r\n\r\n  // SetTimeout fixesiframe printMode does not work in firefox\r\n  setTimeout(() => {\r\n    printDocument.write(markup);\r\n    printDocument.close();\r\n  });\r\n\r\n  callPrint(printWindow, printIframe, as);\r\n};\r\n\r\n/**\r\n * Rxjs complete\r\n * @param as\r\n * @param data\r\n * @param error\r\n */\r\nexport const AS_COMPLETE = (as: AsyncSubject<any>, data: any, error = null) => {\r\n  error ? as.error(error) : as.next(data);\r\n  as.complete();\r\n};\r\n","import { Injectable } from '@angular/core';\n\nimport { AsyncSubject } from 'rxjs';\nimport { AS_COMPLETE, printHtml } from './print.helper';\n\nexport interface Config {\n  htmlType?: string;\n  printMode?: string;\n  pageTitle?: string;\n  templateString?: string;\n  popupProperties?: string;\n  stylesheets?: {\n    rel?: string,\n    href?: string\n  }[],\n  styles?: string[];\n}\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class PrintService {\n\n  /**\n * Print\n * @param id\n * @param config\n * @param as\n * @returns\n */\n  public print(id: string, config?: Config, as = new AsyncSubject()): AsyncSubject<any> {\n    // Create and insert new print section\n    const container = document.getElementById(id);\n    switch (config && config.printMode) {\n      case 'template':\n        printHtml(container, { ...config, printMode: '' }, as);\n        break;\n      case 'template-popup':\n        printHtml(container, { ...config, printMode: 'popup' }, as);\n        break;\n      default:\n        if (container) {\n          // Declare\n          const domClone = container.cloneNode(true);\n          const $printSection = document.createElement('div');\n          // Add visibility hidden into body\n          const bodyEl = document.querySelector('body');\n          if (bodyEl) {\n            bodyEl.setAttribute('style', 'visibility: hidden !important;');\n          }\n          // Clone element container\n          $printSection.id = 'ngx-print-element';\n          $printSection.appendChild(domClone);\n          document.body.insertBefore($printSection, document.body.firstChild);\n          // Print\n          window.print();\n          window.onafterprint = (event) => AS_COMPLETE(as, event);\n          // Clean up print section for future use\n          const oldElem = document.getElementById('ngx-print-element');\n          if (oldElem) {\n            oldElem.parentNode && oldElem.parentNode.removeChild(oldElem);\n            oldElem.remove();\n          }\n          // Clear visibility: hidden\n          bodyEl && (bodyEl.style.visibility = '');\n        }\n        break;\n    }\n    return as;\n  }\n\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { PrintService } from './print.service';\n\n@Directive({\n  selector: '[print]'\n})\nexport class PrintDirective {\n\n  @Input() print: any[] = [];\n\n  constructor(private prints: PrintService) { }\n\n  /**\n   * Print\n   * @param event\n   */\n  @HostListener('click', ['$event']) onClick(event: any) {\n    if (this.print && this.print.length === 1) {\n      this.prints.print(this.print[0]);\n    }\n    if (this.print && this.print.length === 2) {\n      this.prints.print(this.print[0], this.print[1]);\n    }\n  }\n\n}\n","import { Component } from '@angular/core';\nimport { AsyncSubject } from 'rxjs';\nimport { PrintService, Config } from './print.service';\n\n@Component({\n  selector: 'sd-print',\n  template: `<ng-content></ng-content>`,\n  exportAs: 'element'\n})\nexport class PrintComponent {\n\n  constructor(private prints: PrintService) { }\n\n  /**\n   * print\n   * @param id\n   * @param config\n   * @returns\n   */\n  public print(id: string, config?: Config): AsyncSubject<any> {\n    return this.prints.print(id, config);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PrintComponent } from './print.component';\nimport { PrintDirective } from './print.directive';\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  declarations: [PrintComponent,\n    PrintDirective\n  ],\n  exports: [\n    PrintComponent,\n    PrintDirective\n  ]\n})\nexport class PrintModule { }\n","/*\r\n * Public API Surface of sd-print\r\n */\r\n\r\nexport * from './print.directive';\r\nexport * from './print.service';\r\nexport * from './print.component';\r\nexport * from './print.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PrintService"],"mappings":"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"}