{"version":3,"file":"ynmstudio-utils-blurhash.mjs","sources":["../../../projects/ynm-utils/blurhash/src/lib/draw-blurhash.directive.ts","../../../projects/ynm-utils/blurhash/src/public_api.ts","../../../projects/ynm-utils/blurhash/src/ynmstudio-utils-blurhash.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  HostBinding,\n  Inject,\n  Input,\n  PLATFORM_ID,\n} from '@angular/core';\n\n@Directive({\n  selector: '[drawBlurhash]',\n  standalone: true\n})\nexport class DrawBlurhash implements AfterViewInit {\n  @Input() blurhash?: string | null;\n\n  @HostBinding('attr.width') get width(): number {\n    return this.WIDTH;\n  }\n  @HostBinding('attr.height') get height(): number {\n    return this.HEIGHT;\n  }\n\n  constructor(@Inject(PLATFORM_ID) private platformId: Object, private readonly canvas: ElementRef<HTMLCanvasElement>) { }\n\n  ngAfterViewInit(): void {\n    this.drawCanvas();\n  }\n  WIDTH = 32;\n  HEIGHT = 32;\n\n  private decode?: (\n    blur_hash: string,\n    width: number,\n    height: number\n  ) => Uint8Array | undefined;\n\n  private async drawCanvas(): Promise<void> {\n    if (!isPlatformBrowser(this.platformId)) return;\n    try {\n      if (!this.blurhash || !this.canvas) return;\n      if (!this.decode) {\n        const { decode } = await import('blurhash-wasm');\n        this.decode = decode;\n      }\n      const pixels = this.decode(this.blurhash, this.WIDTH, this.HEIGHT);\n      if (!pixels) return;\n      const asClamped = new Uint8ClampedArray(pixels);\n      const imageData = new ImageData(asClamped, this.WIDTH, this.HEIGHT);\n      const ctx = this.canvas?.nativeElement.getContext('2d');\n      if (imageData) ctx?.putImageData(imageData, 0, 0);\n    } catch (error) {\n      console.error(error);\n    }\n  }\n}\n","/*\n * Public API Surface of draw-blurhash\n */\n\nexport * from './lib/draw-blurhash.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MAea,YAAY,CAAA;AAGvB,IAAA,IAA+B,KAAK,GAAA;QAClC,OAAO,IAAI,CAAC,KAAK;;AAEnB,IAAA,IAAgC,MAAM,GAAA;QACpC,OAAO,IAAI,CAAC,MAAM;;IAGpB,WAAyC,CAAA,UAAkB,EAAmB,MAAqC,EAAA;QAA1E,IAAU,CAAA,UAAA,GAAV,UAAU;QAA2B,IAAM,CAAA,MAAA,GAAN,MAAM;QAKpF,IAAK,CAAA,KAAA,GAAG,EAAE;QACV,IAAM,CAAA,MAAA,GAAG,EAAE;;IAJX,eAAe,GAAA;QACb,IAAI,CAAC,UAAU,EAAE;;AAWX,IAAA,MAAM,UAAU,GAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE;AACzC,QAAA,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,eAAe,CAAC;AAChD,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAEtB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;AAClE,YAAA,IAAI,CAAC,MAAM;gBAAE;AACb,YAAA,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC;AAC/C,YAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;AACnE,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;AACvD,YAAA,IAAI,SAAS;gBAAE,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;;QACjD,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;;AAvCb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAUH,WAAW,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAVpB,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAWc,MAAM;2BAAC,WAAW;kEATtB,QAAQ,EAAA,CAAA;sBAAhB;gBAE8B,KAAK,EAAA,CAAA;sBAAnC,WAAW;uBAAC,YAAY;gBAGO,MAAM,EAAA,CAAA;sBAArC,WAAW;uBAAC,aAAa;;;ACrB5B;;AAEG;;ACFH;;AAEG;;;;"}