{"version":3,"file":"ng2-konva.mjs","sources":["../../../projects/ng2-konva/src/lib/utils/updatePicture.ts","../../../projects/ng2-konva/src/lib/utils/applyNodeProps.ts","../../../projects/ng2-konva/src/lib/utils/index.ts","../../../projects/ng2-konva/src/lib/components/core-shape.component.ts","../../../projects/ng2-konva/src/lib/components/stage.component.ts","../../../projects/ng2-konva/src/lib/interfaces/ko-component.interface.ts","../../../projects/ng2-konva/src/public-api.ts","../../../projects/ng2-konva/src/ng2-konva.ts"],"sourcesContent":["// adapted FROM: https://github.com/lavrton/react-konva/blob/master/src/react-konva-fiber.js\n\nimport Konva from 'konva';\nimport Node = Konva.Node;\n\nexport default function updatePicture(node: Node) {\n  const drawingNode = node.getLayer() || node.getStage();\n  if (drawingNode) {\n    drawingNode.batchDraw();\n  }\n}\n","// adapted FROM: https://github.com/lavrton/react-konva/blob/master/src/react-konva-fiber.js\n\nimport { KonvaEventObject } from 'konva/lib/Node';\nimport { KonvaComponent } from '../interfaces/ko-component.interface';\nimport { NgKonvaEventObject } from '../interfaces/ngKonvaEventObject';\nimport { PropsType } from './types';\nimport updatePicture from './updatePicture';\n\nexport default function applyNodeProps(\n  component: KonvaComponent,\n  props: PropsType = {},\n  oldProps: PropsType = {},\n): void {\n  if ('id' in props) {\n    const message = `ng2-konva: You are using \"id\" attribute for Konva node. In some very rare cases it may produce bugs. Currently we recommend not to use it and use \"name\" attribute instead.`;\n    console.warn(message);\n  }\n\n  const instance = component.getStage();\n  const updatedProps: PropsType = {};\n  let hasUpdates = false;\n\n  Object.keys(oldProps).forEach((key) => {\n    const isEvent = key.slice(0, 2) === 'on';\n    const propChanged = oldProps[key] !== props[key];\n    if (isEvent && propChanged) {\n      let eventName = key.slice(2).toLowerCase();\n      if (eventName.slice(0, 7) === 'content') {\n        eventName =\n          'content' + eventName.slice(7, 8).toUpperCase() + eventName.slice(8);\n      }\n      instance.off(eventName, oldProps[key]);\n    }\n    const toRemove = !Object.hasOwn(props, key);\n    if (toRemove) {\n      instance.setAttr(key, undefined);\n    }\n  });\n  Object.keys(props).forEach((key) => {\n    const isEvent = key.slice(0, 2) === 'on';\n    const toAdd = oldProps[key] !== props[key];\n    if (isEvent && toAdd) {\n      let eventName = key.slice(2).toLowerCase();\n      if (eventName.slice(0, 7) === 'content') {\n        eventName =\n          'content' + eventName.slice(7, 8).toUpperCase() + eventName.slice(8);\n      }\n      if (props[key]) {\n        instance.off(eventName);\n        instance.on(eventName, (event: KonvaEventObject<unknown>) => {\n          props[key]({\n            angularComponent: component,\n            event,\n          } as NgKonvaEventObject<unknown>);\n        });\n      }\n    }\n    if (\n      !isEvent &&\n      (props[key] !== oldProps[key] || props[key] !== instance.getAttr(key))\n    ) {\n      hasUpdates = true;\n      updatedProps[key] = props[key];\n    }\n  });\n\n  if (hasUpdates) {\n    instance.setAttrs(updatedProps);\n    updatePicture(instance);\n    let val;\n    Object.keys(updatedProps).forEach((prop) => {\n      val = updatedProps[prop];\n      if (val instanceof Image && !val.complete) {\n        const node = instance;\n        val.addEventListener('load', function () {\n          const layer = node.getLayer();\n          if (layer) {\n            layer.batchDraw();\n          }\n        });\n      }\n    });\n  }\n}\n","import { OutputEmitterRef } from '@angular/core';\nimport { KonvaComponent } from '../interfaces/ko-component.interface';\nimport applyNodeProps from './applyNodeProps';\nimport { ListenerRecord } from './types';\nimport updatePicture from './updatePicture';\n\nfunction camelize(str: string): string {\n  return str\n    .replace(/^\\w|[A-Z]|\\b\\w/g, function (letter, index) {\n      return index == 0 ? letter.toLowerCase() : letter.toUpperCase();\n    })\n    .replace(/\\s+/g, '');\n}\n\nfunction capitalizeFirstLetter(string: string): string {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function getName(componentTag: string): string {\n  return capitalizeFirstLetter(\n    camelize(componentTag.slice(3).replace('-', ' ')),\n  );\n}\n\nexport function createListener(instance: KonvaComponent): ListenerRecord {\n  const output: ListenerRecord = {};\n  [\n    'mouseover',\n    'mousemove',\n    'mouseout',\n    'mouseenter',\n    'mouseleave',\n    'mousedown',\n    'mouseup',\n    'wheel',\n    'contextmenu',\n    'click',\n    'dblclick',\n    'touchstart',\n    'touchmove',\n    'touchend',\n    'tap',\n    'dbltap',\n    'dragstart',\n    'dragmove',\n    'dragend',\n    'transformstart',\n    'transform',\n    'transformend',\n  ].forEach((eventName) => {\n    const name: keyof KonvaComponent = <keyof KonvaComponent>eventName;\n\n    const outputEmitter: OutputEmitterRef<unknown> = <\n      OutputEmitterRef<unknown>\n    >instance[name];\n    if (outputEmitter['listeners']?.length > 0) {\n      output['on' + eventName] = outputEmitter.emit.bind(outputEmitter);\n    }\n  });\n  return output;\n}\n\nexport { applyNodeProps, updatePicture };\n","/* eslint-disable @angular-eslint/no-output-native */\nimport {\n  Component,\n  ElementRef,\n  OnDestroy,\n  contentChildren,\n  effect,\n  inject,\n  model,\n  output,\n} from '@angular/core';\nimport Konva from 'konva';\nimport { FastLayer } from 'konva/lib/FastLayer';\nimport { Group } from 'konva/lib/Group';\nimport { Layer } from 'konva/lib/Layer';\nimport { Shape } from 'konva/lib/Shape';\nimport { Arc } from 'konva/lib/shapes/Arc';\nimport { Arrow } from 'konva/lib/shapes/Arrow';\nimport { Circle } from 'konva/lib/shapes/Circle';\nimport { Ellipse } from 'konva/lib/shapes/Ellipse';\nimport { Image } from 'konva/lib/shapes/Image';\nimport { Label, Tag } from 'konva/lib/shapes/Label';\nimport { Line } from 'konva/lib/shapes/Line';\nimport { Path } from 'konva/lib/shapes/Path';\nimport { Rect } from 'konva/lib/shapes/Rect';\nimport { RegularPolygon } from 'konva/lib/shapes/RegularPolygon';\nimport { Ring } from 'konva/lib/shapes/Ring';\nimport { Sprite, SpriteConfig } from 'konva/lib/shapes/Sprite';\nimport { Star } from 'konva/lib/shapes/Star';\nimport { Text } from 'konva/lib/shapes/Text';\nimport { TextPath } from 'konva/lib/shapes/TextPath';\nimport { Transformer } from 'konva/lib/shapes/Transformer';\nimport { Wedge } from 'konva/lib/shapes/Wedge';\nimport { KonvaComponent } from '../interfaces/ko-component.interface';\nimport { NgKonvaEventObject } from '../interfaces/ngKonvaEventObject';\nimport { updatePicture } from '../utils';\nimport { ShapeConfigTypes } from '../utils/configTypes';\nimport { applyNodeProps, createListener, getName } from '../utils/index';\nimport { ShapeTypes } from '../utils/shapeTypes';\nimport { PropsType } from '../utils/types';\n\n@Component({\n  selector:\n    'ko-shape, ko-layer, ko-circle, ko-fastlayer, ko-group, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer',\n  template: `<div><ng-content></ng-content></div>`,\n})\nexport class CoreShapeComponent implements KonvaComponent, OnDestroy {\n  readonly shapes = contentChildren(CoreShapeComponent);\n\n  public readonly config = model<ShapeConfigTypes>();\n  #onConfigChange = effect(() => {\n    const config = this.config();\n    if (!config) return;\n    this.uploadKonva(config);\n  });\n\n  readonly mouseover = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mousemove = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mouseout = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mouseenter = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mouseleave = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mousedown = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mouseup = output<NgKonvaEventObject<MouseEvent>>();\n  readonly wheel = output<NgKonvaEventObject<WheelEvent>>();\n  readonly contextmenu = output<NgKonvaEventObject<PointerEvent>>();\n  readonly click = output<NgKonvaEventObject<MouseEvent>>();\n  readonly dblclick = output<NgKonvaEventObject<MouseEvent>>();\n  readonly touchstart = output<NgKonvaEventObject<TouchEvent>>();\n  readonly touchmove = output<NgKonvaEventObject<TouchEvent>>();\n  readonly touchend = output<NgKonvaEventObject<TouchEvent>>();\n  readonly tap = output<NgKonvaEventObject<TouchEvent>>();\n  readonly dbltap = output<NgKonvaEventObject<TouchEvent>>();\n  readonly dragstart = output<NgKonvaEventObject<MouseEvent>>();\n  readonly dragmove = output<NgKonvaEventObject<MouseEvent>>();\n  readonly dragend = output<NgKonvaEventObject<MouseEvent>>();\n  readonly transformstart = output<NgKonvaEventObject<MouseEvent>>();\n  readonly transform = output<NgKonvaEventObject<MouseEvent>>();\n  readonly transformend = output<NgKonvaEventObject<MouseEvent>>();\n\n  public nameNode: keyof typeof ShapeTypes | 'Shape' | 'Sprite' = getName(\n    inject(ElementRef).nativeElement.localName,\n  ) as keyof typeof ShapeTypes | 'Shape' | 'Sprite';\n\n  private cacheProps: PropsType = {};\n  private _stage:\n    | Shape\n    | Arc\n    | Arrow\n    | Circle\n    | Ellipse\n    | Image\n    | Label\n    | Tag\n    | Line\n    | Path\n    | Rect\n    | RegularPolygon\n    | Ring\n    | Sprite\n    | Star\n    | Text\n    | TextPath\n    | Transformer\n    | Wedge\n    | Group\n    | Layer\n    | FastLayer;\n\n  public getStage():\n    | Shape\n    | Arc\n    | Arrow\n    | Circle\n    | Ellipse\n    | Image\n    | Label\n    | Tag\n    | Line\n    | Path\n    | Rect\n    | RegularPolygon\n    | Ring\n    | Sprite\n    | Star\n    | Text\n    | TextPath\n    | Transformer\n    | Wedge\n    | Group\n    | Layer\n    | FastLayer {\n    return this._stage;\n  }\n\n  public getNode():\n    | Shape\n    | Arc\n    | Arrow\n    | Circle\n    | Ellipse\n    | Image\n    | Label\n    | Tag\n    | Line\n    | Path\n    | Rect\n    | RegularPolygon\n    | Ring\n    | Sprite\n    | Star\n    | Text\n    | TextPath\n    | Transformer\n    | Wedge\n    | Group\n    | Layer\n    | FastLayer {\n    return this._stage;\n  }\n\n  public getConfig(): ShapeConfigTypes {\n    return this.config() || {};\n  }\n\n  constructor() {\n    this.initKonva();\n  }\n\n  private initKonva(): void {\n    if (!this._stage) {\n      this._stage = new Shape();\n    }\n    if (this.nameNode === 'Shape') {\n      this._stage = new Shape();\n    } else if (this.nameNode === 'Sprite') {\n      this._stage = new Sprite(this.config() as SpriteConfig);\n    } else {\n      this._stage = new Konva[this.nameNode](undefined);\n    }\n\n    const animationStage = this._stage.to.bind(this._stage);\n\n    this._stage.to = (newConfig: ShapeConfigTypes): void => {\n      animationStage(newConfig);\n      setTimeout(() => {\n        Object.keys(this._stage.attrs).forEach((key) => {\n          if (typeof this._stage.attrs[key] !== 'function' && this.config()) {\n            this.config.update((config) => ({\n              ...config,\n              [key]: this._stage.attrs[key],\n            }));\n          }\n        });\n      }, 200);\n    };\n\n    const config = this.config();\n    if (config) {\n      this.uploadKonva(config);\n    }\n  }\n\n  protected uploadKonva(config: ShapeConfigTypes): void {\n    if (!this._stage) return;\n    const props = {\n      ...config,\n      ...createListener(this),\n    };\n    applyNodeProps(this, props, this.cacheProps);\n    this.cacheProps = props;\n  }\n\n  #onShapesChange = effect(() => {\n    this.shapes().forEach((item: CoreShapeComponent, index: number) => {\n      if (this !== item) {\n        if (this._stage instanceof Group || this._stage instanceof Layer) {\n          this._stage.add(item.getStage());\n        }\n        item.getStage().zIndex(index);\n        updatePicture(this._stage);\n      }\n    });\n  });\n\n  ngOnDestroy(): void {\n    this._stage.destroy();\n  }\n}\n","/* eslint-disable @angular-eslint/no-output-native */\nimport {\n  Component,\n  ElementRef,\n  OnDestroy,\n  contentChildren,\n  effect,\n  inject,\n  input,\n  output,\n} from '@angular/core';\nimport { ContainerConfig } from 'konva/lib/Container';\nimport { Layer } from 'konva/lib/Layer';\nimport { Stage } from 'konva/lib/Stage';\nimport { KonvaComponent } from '../interfaces/ko-component.interface';\nimport { NgKonvaEventObject } from '../interfaces/ngKonvaEventObject';\nimport { applyNodeProps, createListener, updatePicture } from '../utils/index';\nimport { PropsType } from '../utils/types';\nimport { CoreShapeComponent as CoreShape } from './core-shape.component';\n\n@Component({\n  selector: 'ko-stage',\n  template: `<div><ng-content></ng-content></div>`,\n})\nexport class StageComponent implements KonvaComponent, OnDestroy {\n  private nodeContainer = inject(ElementRef).nativeElement;\n  readonly shapes = contentChildren(CoreShape);\n\n  public readonly config = input<ContainerConfig>();\n  #onConfigChange = effect(() => {\n    const config = this.config();\n    if (!config) return;\n    if (!this._stage) {\n      this._stage = new Stage({\n        ...config,\n        container: this.nodeContainer,\n      });\n      this.uploadKonva(config);\n    } else {\n      this.uploadKonva(config);\n    }\n  });\n\n  readonly mouseover = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mousemove = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mouseout = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mouseenter = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mouseleave = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mousedown = output<NgKonvaEventObject<MouseEvent>>();\n  readonly mouseup = output<NgKonvaEventObject<MouseEvent>>();\n  readonly wheel = output<NgKonvaEventObject<WheelEvent>>();\n  readonly contextmenu = output<NgKonvaEventObject<PointerEvent>>();\n  readonly click = output<NgKonvaEventObject<MouseEvent>>();\n  readonly dblclick = output<NgKonvaEventObject<MouseEvent>>();\n  readonly touchstart = output<NgKonvaEventObject<TouchEvent>>();\n  readonly touchmove = output<NgKonvaEventObject<TouchEvent>>();\n  readonly touchend = output<NgKonvaEventObject<TouchEvent>>();\n  readonly tap = output<NgKonvaEventObject<TouchEvent>>();\n  readonly dbltap = output<NgKonvaEventObject<TouchEvent>>();\n  readonly dragstart = output<NgKonvaEventObject<MouseEvent>>();\n  readonly dragmove = output<NgKonvaEventObject<MouseEvent>>();\n  readonly dragend = output<NgKonvaEventObject<MouseEvent>>();\n  readonly transformstart = output<NgKonvaEventObject<MouseEvent>>();\n  readonly transform = output<NgKonvaEventObject<MouseEvent>>();\n  readonly transformend = output<NgKonvaEventObject<MouseEvent>>();\n\n  private _stage: Stage;\n  private cacheProps: PropsType = {};\n\n  public getStage(): Stage {\n    return this._stage;\n  }\n\n  public getNode(): Stage {\n    return this._stage;\n  }\n\n  public getConfig(): ContainerConfig {\n    return this.config() || {};\n  }\n\n  private uploadKonva(config: ContainerConfig): void {\n    const props = {\n      ...config,\n      ...createListener(this),\n    };\n    applyNodeProps(this, props, this.cacheProps);\n    this.cacheProps = props;\n  }\n\n  #onShapesChange = effect(() => {\n    this.shapes().forEach((item: CoreShape, index: number) => {\n      if (!(item.getStage() instanceof Layer)) {\n        throw 'You can only add Layer Nodes to Stage Nodes!';\n      }\n      this._stage.add(<Layer>item.getStage());\n      item.getStage().zIndex(index);\n      updatePicture(this._stage);\n    });\n  });\n\n  ngOnDestroy(): void {\n    this._stage.destroy();\n  }\n}\n","import { Component, OutputEmitterRef } from '@angular/core';\nimport { FastLayer } from 'konva/lib/FastLayer';\nimport { Group } from 'konva/lib/Group';\nimport { Layer } from 'konva/lib/Layer';\nimport { Shape } from 'konva/lib/Shape';\nimport { Arc } from 'konva/lib/shapes/Arc';\nimport { Arrow } from 'konva/lib/shapes/Arrow';\nimport { Circle } from 'konva/lib/shapes/Circle';\nimport { Ellipse } from 'konva/lib/shapes/Ellipse';\nimport { Image } from 'konva/lib/shapes/Image';\nimport { Label, Tag } from 'konva/lib/shapes/Label';\nimport { Line } from 'konva/lib/shapes/Line';\nimport { Path } from 'konva/lib/shapes/Path';\nimport { Rect } from 'konva/lib/shapes/Rect';\nimport { RegularPolygon } from 'konva/lib/shapes/RegularPolygon';\nimport { Ring } from 'konva/lib/shapes/Ring';\nimport { Sprite } from 'konva/lib/shapes/Sprite';\nimport { Star } from 'konva/lib/shapes/Star';\nimport { Text } from 'konva/lib/shapes/Text';\nimport { TextPath } from 'konva/lib/shapes/TextPath';\nimport { Transformer } from 'konva/lib/shapes/Transformer';\nimport { Wedge } from 'konva/lib/shapes/Wedge';\nimport { Stage } from 'konva/lib/Stage';\nimport { ShapeConfigTypes } from '../utils/configTypes';\nimport { NgKonvaEventObject } from './ngKonvaEventObject';\n\nexport abstract class KonvaComponent extends Component {\n  getStage: () =>\n    | Stage\n    | Shape\n    | Arc\n    | Arrow\n    | Circle\n    | Ellipse\n    | Image\n    | Label\n    | Tag\n    | Line\n    | Path\n    | Rect\n    | RegularPolygon\n    | Ring\n    | Sprite\n    | Star\n    | Text\n    | TextPath\n    | Transformer\n    | Wedge\n    | Group\n    | Layer\n    | FastLayer;\n  getNode: () =>\n    | Stage\n    | Shape\n    | Arc\n    | Arrow\n    | Circle\n    | Ellipse\n    | Image\n    | Label\n    | Tag\n    | Line\n    | Path\n    | Rect\n    | RegularPolygon\n    | Ring\n    | Sprite\n    | Star\n    | Text\n    | TextPath\n    | Transformer\n    | Wedge\n    | Group\n    | Layer\n    | FastLayer;\n  getConfig: () => ShapeConfigTypes;\n  config: ShapeConfigTypes;\n\n  mouseover?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  mousemove?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  mouseout?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  mouseenter?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  mouseleave?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  mousedown?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  mouseup?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  wheel?: OutputEmitterRef<NgKonvaEventObject<WheelEvent>>;\n  contextmenu?: OutputEmitterRef<NgKonvaEventObject<PointerEvent>>;\n  click?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  dblclick?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  touchstart?: OutputEmitterRef<NgKonvaEventObject<TouchEvent>>;\n  touchmove?: OutputEmitterRef<NgKonvaEventObject<TouchEvent>>;\n  touchend?: OutputEmitterRef<NgKonvaEventObject<TouchEvent>>;\n  tap?: OutputEmitterRef<NgKonvaEventObject<TouchEvent>>;\n  dbltap?: OutputEmitterRef<NgKonvaEventObject<TouchEvent>>;\n  dragstart?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  dragmove?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  dragend?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  transformstart?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  transform?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n  transformend?: OutputEmitterRef<NgKonvaEventObject<MouseEvent>>;\n}\n","/*\n * Public API Surface of ng2-konva\n */\nexport { CoreShapeComponent } from './lib/components/core-shape.component';\nexport { StageComponent } from './lib/components/stage.component';\nexport { KonvaComponent } from './lib/interfaces/ko-component.interface';\nexport { NgKonvaEventObject } from './lib/interfaces/ngKonvaEventObject';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CoreShape"],"mappings":"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"}