{"version":3,"file":"esn-image-captcha.mjs","sources":["../../../projects/esn-image-captcha/src/lib/esn-image-captcha.service.ts","../../../projects/esn-image-captcha/src/lib/esn-image-captcha.component.ts","../../../projects/esn-image-captcha/src/lib/esn-painter.component.html","../../../projects/esn-image-captcha/src/lib/esn-image-captcha.module.ts","../../../projects/esn-image-captcha/src/public-api.ts","../../../projects/esn-image-captcha/src/esn-image-captcha.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EsnImageCaptchaService {\n\n  constructor() { }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\nimport Konva from \"konva\"\n@Component({\n  selector: 'esn-image-captcha',\n  templateUrl: 'esn-painter.component.html',\n  styleUrls: ['esn-image-captcha.scss']\n})\nexport class EsnImageCaptchaComponent implements OnChanges {\n  @Output() result = new EventEmitter<boolean>();\n  @Input() data;\n  success = false\n  ngOnChanges(): void {\n    this.drawCrop(this.data.width, this.data.height, this, this.data)\n  }\n\n  getRandomInt(max) {\n    return Math.floor(Math.random() * max);\n  }\n  drawCrop(X, Y, c: any, data) {\n    let success = false\n    let stage\n    let layer\n    let group\n    let imageObj\n    let imageObj2\n    var preparingStages = () => {\n      stage = new Konva.Stage({\n        container: 'container',\n        width: data.width,\n        height: data.height,\n      });\n      layer = new Konva.Layer();\n      stage.add(layer);\n    }\n    preparingStages()\n\n    var backgroundImage = () => {\n      imageObj2 = new Image();\n      imageObj2.onload = function () {\n        var yoda2 = new Konva.Image({\n          x: 0,\n          y: 0,\n          image: imageObj2,\n        });\n        layer.add(yoda2);\n      };\n      imageObj2.src = data.captchaImageAddress;\n    }\n    backgroundImage()\n\n    let X1 = this.getRandomInt(data.width / 2)\n    let Y1 = this.getRandomInt(data.height / 2)\n    imageObj = new Image();\n    imageObj.onload = function () {\n      var yoda = new Konva.Image({\n        x: X1,\n        y: Y1,\n        image: imageObj,\n      });\n      yoda.cache();\n      yoda.filters([Konva.Filters.Invert]);\n      group = new Konva.Group({\n        offsetX: 100,\n        offsetY: 100,\n        clip: {\n          x: X,\n          y: Y,\n          width: data.clipWidth,\n          height: data.cliHeight,\n        },\n        opacity: 1,\n        draggable: true,\n      });\n      group.add(yoda);\n      layer.add(group);\n\n      let dragManegement = () => {\n        return group.on('dragend', async (e) => {\n          if (Math.abs(Math.abs(group.attrs['x'] - 100) - X1) < data.precision)\n            if (Math.abs(Math.abs(group.attrs['y'] - 100) - Y1) < data.precision) {\n              c.success = true\n              group.setDraggable(false)\n              c.result.emit(true);\n              //     \n              var anim = new Konva.Animation(function (frame) {\n                group.x(\n                  100 - X1\n                );\n                group.y(\n                  100 - Y1\n                );\n              }, layer);\n              anim.start();\n              //\n              return success\n            }\n          c.result.emit(false);\n          return false\n        })\n      }\n      dragManegement()\n    };\n    setTimeout(() => {\n      imageObj.src = data.captchaImageAddress;\n    }, 1000);\n\n  }\n}\n\n","<div id=\"container\" [class.success]=\"success\" class=\"master bg-dark\">\r\n</div>","import { NgModule } from '@angular/core';\nimport { EsnImageCaptchaComponent } from './esn-image-captcha.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n@NgModule({\n  declarations: [\n    EsnImageCaptchaComponent\n  ],\n  imports: [\n    BrowserModule,BrowserAnimationsModule\n  ],\n  exports: [\n    EsnImageCaptchaComponent\n  ]\n})\nexport class EsnImageCaptchaModule { }\n","/*\n * Public API Surface of esn-image-captcha\n */\n\nexport * from './lib/esn-image-captcha.service';\nexport * from './lib/esn-image-captcha.component';\nexport * from './lib/esn-image-captcha.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}