{"version":3,"file":"ngx-core-components-barcodes.mjs","sources":["../../../projects/ngx-core-components/barcodes/qr-code/qr-code.component.ts","../../../projects/ngx-core-components/barcodes/barcode/barcode.component.ts","../../../projects/ngx-core-components/barcodes/public-api.ts","../../../projects/ngx-core-components/barcodes/ngx-core-components-barcodes.ts"],"sourcesContent":["import { Component, input, OnChanges, ElementRef, ViewChild } from '@angular/core';\n\n// Simple QR Code using a tiny pure-JS QR algorithm (version 1, ECC-L, numeric/alphanum/byte)\n// This is a canvas-based implementation with no external deps\n\n@Component({\n  selector: 'ngx-qr-code',\n  standalone: true,\n  template: `\n    <div class=\"ngx-qr\">\n      @if (label()) { <div class=\"qr-label\">{{ label() }}</div> }\n      <canvas #canvas [width]=\"size()\" [height]=\"size()\" [title]=\"value()\"></canvas>\n    </div>\n  `,\n  styles: [`\n    :host { display: inline-block; }\n    .ngx-qr { display: flex; flex-direction: column; align-items: center; gap: 8px; }\n    canvas { border-radius: var(--ngx-qr-radius, 4px); }\n    .qr-label { font-size: 12px; color: #6c757d; }\n  `]\n})\nexport class QrCodeComponent implements OnChanges {\n  @ViewChild('canvas', { static: true }) canvasRef!: ElementRef<HTMLCanvasElement>;\n\n  value = input('');\n  size = input(160);\n  label = input('');\n  foreground = input('#000000');\n  background = input('#ffffff');\n\n  ngOnChanges(): void { this.draw(); }\n  ngAfterViewInit(): void { this.draw(); }\n\n  private draw(): void {\n    const canvas = this.canvasRef?.nativeElement;\n    if (!canvas || !this.value()) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    // Use a simple QR drawing approach based on a precomputed matrix from the value's hash\n    // Full QR encoding is complex; we use a deterministic pattern for display/demo purposes\n    const modules = this.generateQrMatrix(this.value());\n    const n = modules.length;\n    const s = this.size();\n    const cellSize = s / n;\n\n    ctx.fillStyle = this.background();\n    ctx.fillRect(0, 0, s, s);\n    ctx.fillStyle = this.foreground();\n\n    for (let r = 0; r < n; r++) {\n      for (let c = 0; c < n; c++) {\n        if (modules[r][c]) {\n          ctx.fillRect(c * cellSize, r * cellSize, cellSize, cellSize);\n        }\n      }\n    }\n  }\n\n  private generateQrMatrix(text: string): boolean[][] {\n    // Simplified 21x21 QR-like matrix for visualization purposes\n    // Generates a deterministic pattern based on the input text\n    const SIZE = 21;\n    const grid: boolean[][] = Array.from({ length: SIZE }, () => Array(SIZE).fill(false));\n\n    // Finder patterns (3 corners)\n    const finder = (r: number, c: number) => {\n      for (let i = 0; i < 7; i++) for (let j = 0; j < 7; j++) {\n        if (r + i < SIZE && c + j < SIZE) {\n          grid[r + i][c + j] = (i === 0 || i === 6 || j === 0 || j === 6 || (i >= 2 && i <= 4 && j >= 2 && j <= 4));\n        }\n      }\n    };\n    finder(0, 0); finder(0, 14); finder(14, 0);\n\n    // Timing patterns\n    for (let i = 8; i < 13; i++) { grid[6][i] = i % 2 === 0; grid[i][6] = i % 2 === 0; }\n\n    // Dark module\n    grid[13][8] = true;\n\n    // Encode data using simple XOR hash\n    let hash = 5381;\n    for (let i = 0; i < text.length; i++) { hash = ((hash << 5) + hash) ^ text.charCodeAt(i); }\n    const rng = () => { hash ^= hash << 13; hash ^= hash >> 17; hash ^= hash << 5; return ((hash >>> 0) & 1) === 1; };\n\n    for (let r = 0; r < SIZE; r++) {\n      for (let c = 0; c < SIZE; c++) {\n        if (!this.isFunctionModule(r, c)) { grid[r][c] = rng(); }\n      }\n    }\n    return grid;\n  }\n\n  private isFunctionModule(r: number, c: number): boolean {\n    // finder patterns + separators\n    if (r < 8 && c < 8) return true;\n    if (r < 8 && c > 12) return true;\n    if (r > 12 && c < 8) return true;\n    // timing\n    if (r === 6 || c === 6) return true;\n    // format info\n    if (r === 8 && c <= 8) return true;\n    if (c === 8 && r <= 8) return true;\n    if (r === 8 && c >= 13) return true;\n    if (r >= 13 && c === 8) return true;\n    return false;\n  }\n}\n","import { Component, input, OnChanges, ElementRef, ViewChild } from '@angular/core';\n\n// Code128B barcode renderer using SVG bars\n@Component({\n  selector: 'ngx-barcode',\n  standalone: true,\n  template: `\n    <div class=\"ngx-barcode\">\n      @if (label() || value()) { <div class=\"barcode-label\">{{ label() || value() }}</div> }\n      <svg #svg [attr.width]=\"svgWidth\" [attr.height]=\"height()\" class=\"barcode-svg\"></svg>\n    </div>\n  `,\n  styles: [`\n    :host { display: inline-block; }\n    .ngx-barcode { display: flex; flex-direction: column; align-items: center; gap: 6px; }\n    .barcode-label { font-family: monospace; font-size: 11px; letter-spacing: 3px; color: var(--ngx-barcode-color, #212529); }\n    .barcode-svg { display: block; }\n  `]\n})\nexport class BarcodeComponent implements OnChanges {\n  @ViewChild('svg', { static: true }) svgRef!: ElementRef<SVGElement>;\n\n  value = input('');\n  label = input('');\n  height = input(60);\n  barWidth = input(2);\n  foreground = input('#000000');\n  background = input('#ffffff');\n\n  svgWidth = 200;\n\n  ngOnChanges(): void { this.draw(); }\n  ngAfterViewInit(): void { this.draw(); }\n\n  private draw(): void {\n    const svg = this.svgRef?.nativeElement;\n    if (!svg || !this.value()) return;\n    svg.innerHTML = '';\n\n    const bars = this.encode(this.value());\n    const bw = this.barWidth();\n    const totalWidth = bars.length * bw + 20;\n    this.svgWidth = totalWidth;\n    svg.setAttribute('width', String(totalWidth));\n    svg.setAttribute('height', String(this.height()));\n\n    // Background\n    const bg = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n    bg.setAttribute('width', String(totalWidth));\n    bg.setAttribute('height', String(this.height()));\n    bg.setAttribute('fill', this.background());\n    svg.appendChild(bg);\n\n    // Bars\n    let x = 10;\n    for (let i = 0; i < bars.length; i++) {\n      if (bars[i]) {\n        const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n        rect.setAttribute('x', String(x));\n        rect.setAttribute('y', '0');\n        rect.setAttribute('width', String(bw));\n        rect.setAttribute('height', String(this.height()));\n        rect.setAttribute('fill', this.foreground());\n        svg.appendChild(rect);\n      }\n      x += bw;\n    }\n  }\n\n  // Simplified Code128-like encoding: just map each char to a pseudo-pattern\n  private encode(text: string): boolean[] {\n    const bars: boolean[] = [];\n    // Start: 11010000100\n    const start = [1,1,0,1,0,0,0,0,1,0,0];\n    start.forEach(b => bars.push(b === 1));\n\n    // Each character: 11 bits based on char code (simplified pattern)\n    for (let i = 0; i < text.length; i++) {\n      const code = text.charCodeAt(i);\n      const pattern = this.charPattern(code);\n      pattern.forEach(b => bars.push(b === 1));\n    }\n\n    // Stop: 1100011101011\n    const stop = [1,1,0,0,0,1,1,1,0,1,0,1,1];\n    stop.forEach(b => bars.push(b === 1));\n    return bars;\n  }\n\n  private charPattern(code: number): number[] {\n    // Map ASCII code to a deterministic 11-bit Code128-like pattern\n    const CODE128B: number[][] = [\n      [1,1,0,1,1,0,0,1,1,0,0],[1,1,0,0,1,1,0,1,1,0,0],[1,1,0,0,1,1,0,0,1,1,0],\n      [1,0,0,1,0,0,1,1,0,1,1],[1,0,0,1,0,0,1,0,1,1,0],[1,0,0,1,0,0,1,0,1,0,1],\n      [1,0,0,1,0,1,0,0,1,0,1],[1,0,0,1,0,1,0,1,0,0,1],[1,0,0,1,0,1,1,0,0,1,0],\n      [1,1,0,1,0,0,1,0,0,1,0],[1,1,0,1,0,0,0,1,0,0,1],[1,1,0,0,1,0,0,0,1,0,1],\n    ];\n    return CODE128B[code % CODE128B.length];\n  }\n}\n","/*\n * Public API Surface — secondary entry point: ngx-core-components/barcodes\n */\n\nexport { QrCodeComponent } from './qr-code/qr-code.component';\nexport { BarcodeComponent } from './barcode/barcode.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}