{"version":3,"file":"ngx-print-div.mjs","sources":["../../../projects/ngx-print-div/src/lib/ngx-print-div.service.ts","../../../projects/ngx-print-div/src/lib/ngx-print-div.component.ts","../../../projects/ngx-print-div/src/lib/ngx-print-div.directive.ts","../../../projects/ngx-print-div/src/lib/ngx-print-div.module.ts","../../../projects/ngx-print-div/src/public-api.ts","../../../projects/ngx-print-div/src/ngx-print-div.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class NgxPrintDivService {\n  constructor() {}\n\n  printDivById(divId: string, printTitle: string, bodyClass: string) {\n    let divElement = document.getElementById(divId);\n\n    let divCopy = divElement!.cloneNode(true);\n\n    let style = document.createElement('style');\n    style.textContent = `\n        @media print {\n          body {\n            margin-left: 10px !important;\n            -webkit-print-color-adjust: exact; /* Safari and Chrome */\n            color-adjust: exact; /* Firefox */\n          }\n          .hidden {\n            display: none;\n          }\n\n          #${divId}, #${divId} * {\n              page-break-inside: avoid;\n          }\n        }\n      `;\n\n    document.head.appendChild(style);\n\n    let elements = document.body.children;\n    for (var i = 0; i < elements.length; i++) {\n      if (elements[i] !== divCopy) {\n        elements[i].classList.add('hidden');\n      }\n    }\n\n    document.title = printTitle;\n    document.body.appendChild(divCopy);\n\n    if (bodyClass) {\n      document.body.classList.add(bodyClass);\n    }\n\n    window.print();\n\n    document.body.removeChild(divCopy);\n\n    document.head.removeChild(style);\n\n    for (var i = 0; i < elements.length; i++) {\n      elements[i].classList.remove('hidden');\n    }\n  }\n\n  printDivInNewWindow(divId: string, printTitle: string, bodyClass: string) {\n    const printContent = document.getElementById(divId);\n    if (!printContent) {\n      console.error(`Div with ID '${divId}' not found.`);\n      return;\n    }\n    const printWindow = window.open('', '_blank', 'width=2000,height=1000');\n    if (!printWindow) {\n      console.error('Failed to open print window');\n      return;\n    }\n\n    const styles = this.getAllStyles();\n    const mediaQueryStyles = this.getMediaQueryStyles();\n    let additionalStyle = document.createElement('style');\n    additionalStyle.textContent = `\n          @media print {\n            body {\n              margin-left: 10px !important;\n              -webkit-print-color-adjust: exact; /* Safari and Chrome */\n              color-adjust: exact; /* Firefox */\n            }\n            \n            #${divId}, #${divId} * {\n              page-break-inside: avoid;\n            }\n          }\n        `;\n\n    printWindow.document.write(`\n      <html>\n        <head>\n          <title>${printTitle}</title>\n          <style>\n          ${styles} \n          ${mediaQueryStyles}\n          </style>\n        </head>\n        <body>\n        ${printContent.outerHTML}\n        </body>\n      </html>\n    `);\n\n    printWindow.document.head.appendChild(additionalStyle);\n\n    if (bodyClass) {\n      console.log('body class: ', bodyClass);\n      printWindow.document.body.classList.add(bodyClass);\n    }\n\n    const printFunction = () => {\n      printWindow.focus();\n      printWindow.print();\n      printWindow.close();\n    };\n\n    printFunction();\n  }\n\n  private getAllStyles(): string {\n    const styles: string[] = [];\n    const styleSheets = document.styleSheets;\n    for (let i = 0; i < styleSheets.length; i++) {\n      const styleSheet = styleSheets[i] as CSSStyleSheet;\n      try {\n        const cssRules = styleSheet.cssRules;\n        if (cssRules) {\n          for (let j = 0; j < cssRules.length; j++) {\n            const rule = cssRules[j];\n            if (rule instanceof CSSStyleRule) {\n              styles.push(rule.cssText);\n            }\n          }\n        }\n      } catch (error) {\n        console.error('Error accessing CSS rules:', error);\n      }\n    }\n    return styles.join('\\n');\n  }\n\n  private getMediaQueryStyles(): string {\n    const mediaQueryStyles: string[] = [];\n    const styleSheets = document.styleSheets;\n    for (let i = 0; i < styleSheets.length; i++) {\n      const styleSheet = styleSheets[i] as CSSStyleSheet;\n      try {\n        const cssRules = styleSheet.cssRules;\n        if (cssRules) {\n          for (let j = 0; j < cssRules.length; j++) {\n            const rule = cssRules[j];\n            if (rule instanceof CSSMediaRule) {\n              mediaQueryStyles.push(rule.cssText);\n            }\n          }\n        }\n      } catch (error) {\n        console.error('Error accessing CSS rules:', error);\n      }\n    }\n    return mediaQueryStyles.join('\\n');\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'lib-ngx-print-div',\n  template: `\n    <p>\n      ngx-print-div works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class NgxPrintDivComponent {\n\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { NgxPrintDivService } from './ngx-print-div.service';\n\n@Directive({\n  selector: '[NgxPrintDiv]',\n})\nexport class NgxPrintDivDirective {\n  @Input() printTitle: string = '';\n  @Input() printInNewWin: boolean = false;\n  @Input() bodyClass: string = '';\n\n  constructor(\n    private el: ElementRef,\n    private printService: NgxPrintDivService\n  ) {}\n\n  @HostListener('click') onClick() {\n    const divId = this.el.nativeElement.getAttribute('NgxPrintDiv');\n    if (divId) {\n      if (this.printInNewWin) {\n        this.printService.printDivInNewWindow(\n          divId,\n          this.printTitle,\n          this.bodyClass\n        );\n      } else {\n        this.printService.printDivById(divId, this.printTitle, this.bodyClass);\n      }\n    } else {\n      console.error('Div ID not provided for printing.');\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxPrintDivComponent } from './ngx-print-div.component';\nimport { NgxPrintDivDirective } from './ngx-print-div.directive';\nimport { NgxPrintDivService } from './ngx-print-div.service';\n\n@NgModule({\n  declarations: [NgxPrintDivComponent, NgxPrintDivDirective],\n  imports: [],\n  exports: [NgxPrintDivComponent, NgxPrintDivDirective],\n  providers: [NgxPrintDivService],\n})\nexport class NgxPrintDivModule {}\n","/*\n * Public API Surface of ngx-print-div\n */\n\nexport * from './lib/ngx-print-div.service';\nexport * from './lib/ngx-print-div.component';\nexport * from './lib/ngx-print-div.module';\nexport * from './lib/ngx-print-div.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxPrintDivService"],"mappings":"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"}