{"version":3,"file":"go-captcha-angular.mjs","sources":["../../../projects/go-captcha-angular/src/lib/modules/button/button-instance.ts","../../../projects/go-captcha-angular/src/lib/icons/btn-default-icon.component.ts","../../../projects/go-captcha-angular/src/lib/icons/btn-error-icon.component.ts","../../../projects/go-captcha-angular/src/lib/icons/btn-warn-icon.component.ts","../../../projects/go-captcha-angular/src/lib/icons/btn-success-icon.component.ts","../../../projects/go-captcha-angular/src/lib/modules/button/button.component.ts","../../../projects/go-captcha-angular/src/lib/modules/button/button.component.html","../../../projects/go-captcha-angular/src/lib/modules/click/click-instance.ts","../../../projects/go-captcha-angular/src/lib/helper/helper.ts","../../../projects/go-captcha-angular/src/lib/icons/close-icon.component.ts","../../../projects/go-captcha-angular/src/lib/icons/refresh-icon.component.ts","../../../projects/go-captcha-angular/src/lib/icons/loading-icon.component.ts","../../../projects/go-captcha-angular/src/lib/modules/click/click.component.ts","../../../projects/go-captcha-angular/src/lib/modules/click/click.component.html","../../../projects/go-captcha-angular/src/lib/modules/slide/slide-instance.ts","../../../projects/go-captcha-angular/src/lib/icons/arrows-icon.component.ts","../../../projects/go-captcha-angular/src/lib/modules/slide/slide.component.ts","../../../projects/go-captcha-angular/src/lib/modules/slide/slide.component.html","../../../projects/go-captcha-angular/src/lib/modules/slide-region/slide-region-instance.ts","../../../projects/go-captcha-angular/src/lib/modules/slide-region/slide-region.component.ts","../../../projects/go-captcha-angular/src/lib/modules/slide-region/slide-region.component.html","../../../projects/go-captcha-angular/src/lib/modules/rotate/rotate-instance.ts","../../../projects/go-captcha-angular/src/lib/modules/rotate/rotate.component.ts","../../../projects/go-captcha-angular/src/lib/modules/rotate/rotate.component.html","../../../projects/go-captcha-angular/src/lib/go-captcha.module.ts","../../../projects/go-captcha-angular/src/public-api.ts","../../../projects/go-captcha-angular/src/go-captcha-angular.ts"],"sourcesContent":["export interface ButtonConfig {\n    width?: number;\n    height?: number;\n    verticalPadding?: number;\n    horizontalPadding?: number;\n}\n\nexport const defaultButtonConfig = ():ButtonConfig => ({\n    width: 330,\n    height: 44,\n    verticalPadding: 12,\n    horizontalPadding: 16,\n})\n\nexport type ButtonType = \"default\" | \"warn\" | \"error\" | \"success\";\n\nexport interface ButtonInstance {\n    config?: ButtonConfig;\n    clickEvent?: () => void;\n    disabled?: boolean;\n    type?: ButtonType;\n    title?: string;\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'btn-default-icon',\n  template: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [attr.width]=\"width\" [attr.height]=\"height\">\n      <circle fill=\"#3E7CFF\" cx=\"100\" cy=\"100\" r=\"96.3\"/>\n      <path fill=\"#FFFFFF\" d=\"M140.8,64.4l-39.6-11.9h-2.4L59.2,64.4c-1.6,0.8-2.8,2.4-2.8,4v24.1c0,25.3,15.8,45.9,42.3,54.6\n\\tc0.4,0,0.8,0.4,1.2,0.4c0.4,0,0.8,0,1.2-0.4c26.5-8.7,42.3-28.9,42.3-54.6V68.3C143.5,66.8,142.3,65.2,140.8,64.4z\"/>\n    </svg>`,\n})\nexport class BtnDefaultIconComponent {\n  @Input()\n  width = 20\n\n  @Input()\n  height = 20\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'btn-error-icon',\n  template: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [attr.width]=\"width\" [attr.height]=\"height\">\n    <path fill=\"#ED4630\" d=\"M184,26.6L102.4,2.1h-4.9L16,26.6c-3.3,1.6-5.7,4.9-5.7,8.2v49.8c0,52.2,32.6,94.7,87.3,112.6\n\\tc0.8,0,1.6,0.8,2.4,0.8s1.6,0,2.4-0.8c54.7-18,87.3-59.6,87.3-112.6V34.7C189.8,31.5,187.3,28.2,184,26.6z M134.5,123.1\n\\tc3.1,3.1,3.1,8.2,0,11.3c-1.6,1.6-3.6,2.3-5.7,2.3s-4.1-0.8-5.7-2.3L100,111.3l-23.1,23.1c-1.6,1.6-3.6,2.3-5.7,2.3\n\\tc-2,0-4.1-0.8-5.7-2.3c-3.1-3.1-3.1-8.2,0-11.3L88.7,100L65.5,76.9c-3.1-3.1-3.1-8.2,0-11.3c3.1-3.1,8.2-3.1,11.3,0L100,88.7\n\\tl23.1-23.1c3.1-3.1,8.2-3.1,11.3,0c3.1,3.1,3.1,8.2,0,11.3L111.3,100L134.5,123.1z\"/>\n  </svg>`,\n})\nexport class BtnErrorIconComponent {\n  @Input()\n  width = 20\n\n  @Input()\n  height = 20\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'btn-warn-icon',\n  template: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [attr.width]=\"width\" [attr.height]=\"height\">\n    <path fill=\"#FFA000\" d=\"M184,26.6L102.4,2.1h-4.9L16,26.6c-3.3,1.6-5.7,4.9-5.7,8.2v49.8c0,52.2,32.6,94.7,87.3,112.6\n\\tc0.8,0,1.6,0.8,2.4,0.8s1.6,0,2.4-0.8c54.7-18,87.3-59.6,87.3-112.6V34.7C189.8,31.5,187.3,28.2,184,26.6z M107.3,109.1\n\\tc-0.5,5.4-3.9,7.9-7.3,7.9c-2.5,0,0,0,0,0c-3.2-0.6-5.7-2-6.8-7.4l-4.4-50.9c0-5.1,6.2-9.7,11.5-9.7c5.3,0,11,4.7,11,9.9\n\\tL107.3,109.1z M109.3,133.3c0,5.1-4.2,9.3-9.3,9.3c-5.1,0-9.3-4.2-9.3-9.3c0-5.1,4.2-9.3,9.3-9.3C105.1,124,109.3,128.1,109.3,133.3\n\\tz\"/>\n  </svg>`,\n})\nexport class BtnWarnIconComponent {\n  @Input()\n  width = 20\n\n  @Input()\n  height = 20\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'btn-success-icon',\n  template: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [attr.width]=\"width\" [attr.height]=\"height\">\n    <path fill=\"#5EAA2F\" d=\"M183.3,27.2L102.4,2.9h-4.9L16.7,27.2C13.4,28.8,11,32,11,35.3v49.4c0,51.8,32.4,93.9,86.6,111.7\n\\tc0.8,0,1.6,0.8,2.4,0.8c0.8,0,1.6,0,2.4-0.8c54.2-17.8,86.6-59.1,86.6-111.7V35.3C189,32,186.6,28.8,183.3,27.2z M146.1,81.4\n\\tl-48.5,48.5c-1.6,1.6-3.2,2.4-5.7,2.4c-2.4,0-4-0.8-5.7-2.4L62,105.7c-3.2-3.2-3.2-8.1,0-11.3c3.2-3.2,8.1-3.2,11.3,0l18.6,18.6\n\\tl42.9-42.9c3.2-3.2,8.1-3.2,11.3,0C149.4,73.3,149.4,78.2,146.1,81.4L146.1,81.4z\"/>\n  </svg>`,\n})\nexport class BtnSuccessIconComponent {\n  @Input()\n  width = 20\n\n  @Input()\n  height = 20\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ButtonType, ButtonConfig, defaultButtonConfig} from \"./button-instance\";\n\n@Component({\n  selector: 'go-captcha-button',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent implements OnInit {\n  @Input()\n  config?: ButtonConfig = defaultButtonConfig()\n  @Input()\n  clickEvent?: (e: Event) => void;\n  @Input()\n  disabled?: boolean = false\n  @Input()\n  type?: ButtonType = \"default\"\n  @Input()\n  title?: string = \"点击按键进行验证\"\n\n  ngOnInit() {\n    this.config = {...defaultButtonConfig(), ...this.config}\n  }\n\n  handleClick(e) {\n    this.clickEvent && this.clickEvent(e)\n  }\n}\n","<div\n  [class]=\"['go-captcha', 'gc-button-mode', 'gc-btn-block', 'gc-'+type, disabled ? 'gc-disabled' : '' ]\"\n  (click)=\"handleClick($event)\"\n  [style]=\"{\n    'width': config.width + 'px',\n    'height': config.height + 'px',\n    'padding-left': config.horizontalPadding + 'px',\n    'padding-right': config.horizontalPadding + 'px',\n    'padding-top': config.verticalPadding + 'px',\n    'padding-bottom': config.verticalPadding + 'px',\n  }\"\n>\n  <div [class]=\"{'gc-ripple': type === 'default'}\" [ngSwitch]=\"type\">\n    <btn-default-icon *ngSwitchCase=\"'default'\"></btn-default-icon>\n    <btn-warn-icon *ngSwitchCase=\"'warn'\"></btn-warn-icon>\n    <btn-error-icon *ngSwitchCase=\"'error'\"></btn-error-icon>\n    <btn-success-icon *ngSwitchCase=\"'success'\"></btn-success-icon>\n  </div>\n  <span>{{title}}</span>\n</div>","\nexport interface ClickRef {\n    reset: () => void,\n    clear: () => void,\n    refresh: () => void,\n    close: () => void,\n}\n\nexport interface ClickConfig {\n    width?: number;\n    height?: number;\n    thumbWidth?: number;\n    thumbHeight?: number;\n    verticalPadding?: number;\n    horizontalPadding?: number;\n    showTheme?: boolean;\n    title?: string;\n    buttonText?: string;\n    iconSize?: number;\n    dotSize?: number;\n}\n\nexport const defaultClickConfig = ():ClickConfig => ({\n    width: 300,\n    height: 220,\n    thumbWidth: 150,\n    thumbHeight: 40,\n    verticalPadding: 16,\n    horizontalPadding: 12,\n    showTheme: true,\n    title: \"请在下图依次点击\",\n    buttonText: \"确认\",\n    iconSize: 22,\n    dotSize: 24,\n})\n\nexport interface ClickData {\n    image: string;\n    thumb: string;\n}\n\nexport const defaultData = (): ClickData => ({\n    image: \"\", thumb: \"\"\n})\n\nexport interface ClickDot {\n    key: number,\n    index: number,\n    x: number,\n    y: number,\n}\n\nexport interface ClickEvent {\n    click?: (x: number, y: number) => void;\n    callback?: () => void;\n    refresh?: () => void;\n    close?: () => void;\n    confirm?:(dots: Array<ClickDot>, clear:(fn: Function) => void) => void;\n}\n\nexport interface ClickInstance {\n    data: ClickData,\n    config?: ClickConfig;\n    events?: ClickEvent,\n}\n","/**\n * @Author Awen\n * @Date 2024/05/25\n * @Email wengaolng@gmail.com\n **/\n\nexport function getDomXY(dom: any){\n  let x = 0\n  let y = 0\n  if (dom.getBoundingClientRect) {\n    const box = dom.getBoundingClientRect();\n    const D = document.documentElement;\n    x = box.left + Math.max(D.scrollLeft, document.body.scrollLeft) - D.clientLeft;\n    y = box.top + Math.max(D.scrollTop, document.body.scrollTop) - D.clientTop\n  }\n  else{\n    while (dom !== document.body) {\n      x += dom.offsetLeft\n      y += dom.offsetTop\n      dom = dom.offsetParent\n    }\n  }\n  return {\n    domX: x,\n    domY: y\n  }\n}\n\nexport function checkTargetFather(that: any, e: any) {\n  let parent = e.relatedTarget\n  try{\n    while(parent && parent !== that) {\n      parent = parent.parentNode\n    }\n  }catch (e){\n    console.warn(e)\n  }\n\n  return parent !== that\n}\n\nexport function mergeToOver(src: any, dest: any) {\n  for (const ccKey in src) {\n    if (dest.hasOwnProperty(ccKey)) {\n      dest[ccKey] = src[ccKey]\n    }\n  }\n}\n\n\nexport function mergeTo(src: any, dest: any) {\n  for (const ccKey in src) {\n    if (!dest.hasOwnProperty(ccKey)) {\n      dest[ccKey] = src[ccKey]\n    }\n  }\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'close-icon',\n  template: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [attr.width]=\"width\" [attr.height]=\"height\">\n    <path d=\"M100.1,189.9C100.1,189.9,100,189.9,100.1,189.9c-49.7,0-90-40.4-90-89.9c0-49.6,40.4-89.9,89.9-89.9\n\\t\\tc49.6,0,89.9,40.4,89.9,89.9c0,18.2-5.4,35.7-15.6,50.7c-1.5,2.1-3.6,3.4-6.1,3.9c-2.5,0.4-5-0.1-7-1.6c-4.2-3-5.3-8.6-2.4-12.9\n\\t\\tc8.1-11.9,12.4-25.7,12.4-40.1c0-39.2-31.9-71.1-71.1-71.1c-39.2,0-71.1,31.9-71.1,71.1c0,39.2,31.9,71.1,71.1,71.1\n\\t\\tc7.7,0,15.3-1.2,22.6-3.6c2.4-0.8,4.9-0.6,7.2,0.5c2.2,1.1,3.9,3.1,4.7,5.5c1.6,4.9-1,10.2-5.9,11.9\n\\t\\tC119.3,188.4,109.8,189.9,100.1,189.9z M73,136.4C73,136.4,73,136.4,73,136.4c-2.5,0-4.9-1-6.7-2.8c-3.7-3.7-3.7-9.6,0-13.3\n\\t\\tL86.7,100L66.4,79.7c-3.7-3.7-3.7-9.6,0-13.3c3.7-3.7,9.6-3.7,13.3,0L100,86.7l20.3-20.3c1.8-1.8,4.1-2.8,6.7-2.8c0,0,0,0,0,0\n\\t\\tc2.5,0,4.9,1,6.7,2.8c1.8,1.8,2.8,4.1,2.8,6.7c0,2.5-1,4.9-2.8,6.7L113.3,100l20.3,20.3c3.7,3.7,3.7,9.6,0,13.3\n\\t\\tc-3.7,3.7-9.6,3.7-13.3,0L100,113.3l-20.3,20.3C77.9,135.4,75.5,136.4,73,136.4z\"/>\n  </svg>`,\n})\nexport class CloseIconComponent {\n  @Input()\n  width = 20\n\n  @Input()\n  height = 20\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'refresh-icon',\n  template: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [attr.width]=\"width\" [attr.height]=\"height\">\n    <path d=\"M135,149.9c-10.7,7.6-23.2,11.4-36,11.2c-1.7,0-3.4-0.1-5-0.3c-0.7-0.1-1.4-0.2-2-0.3c-1.3-0.2-2.6-0.4-3.9-0.6\n\\tc-0.8-0.2-1.6-0.4-2.3-0.5c-1.2-0.3-2.5-0.6-3.7-1c-0.6-0.2-1.2-0.4-1.7-0.6c-1.4-0.5-2.8-1-4.2-1.5c-0.3-0.1-0.6-0.3-0.9-0.4\n\\tc-1.6-0.7-3.2-1.4-4.7-2.3c-0.1,0-0.1-0.1-0.2-0.1c-5.1-2.9-9.8-6.4-14-10.6c-0.1-0.1-0.1-0.1-0.2-0.2c-1.3-1.3-2.5-2.7-3.7-4.1\n\\tc-0.2-0.3-0.5-0.6-0.7-0.9c-8.4-10.6-13.5-24.1-13.5-38.8h14.3c0.4,0,0.7-0.2,0.9-0.5c0.2-0.3,0.2-0.8,0-1.1L29.5,60.9\n\\tc-0.2-0.3-0.5-0.5-0.9-0.5c-0.4,0-0.7,0.2-0.9,0.5L3.8,97.3c-0.2,0.3-0.2,0.7,0,1.1c0.2,0.3,0.5,0.5,0.9,0.5h14.3\n\\tc0,17.2,5.3,33.2,14.3,46.4c0.1,0.2,0.2,0.4,0.3,0.6c0.9,1.4,2,2.6,3,3.9c0.4,0.5,0.7,1,1.1,1.5c1.5,1.8,3,3.5,4.6,5.2\n\\tc0.2,0.2,0.3,0.3,0.5,0.5c5.4,5.5,11.5,10.1,18.2,13.8c0.2,0.1,0.3,0.2,0.5,0.3c1.9,1,3.9,2,5.9,2.9c0.5,0.2,1,0.5,1.5,0.7\n\\tc1.7,0.7,3.5,1.3,5.2,1.9c0.8,0.3,1.7,0.6,2.5,0.8c1.5,0.5,3.1,0.8,4.7,1.2c1.1,0.2,2.1,0.5,3.2,0.7c0.4,0.1,0.9,0.2,1.3,0.3\n\\tc1.5,0.3,3,0.4,4.5,0.6c0.5,0.1,1.1,0.2,1.6,0.2c2.7,0.3,5.4,0.4,8.1,0.4c16.4,0,32.5-5.1,46.2-14.8c4.4-3.1,5.5-9.2,2.4-13.7\n\\tC145.5,147.8,139.4,146.7,135,149.9 M180.6,98.9c0-17.2-5.3-33.1-14.2-46.3c-0.1-0.2-0.2-0.5-0.4-0.7c-1.1-1.6-2.3-3.1-3.5-4.6\n\\tc-0.1-0.2-0.3-0.4-0.4-0.6c-8.2-10.1-18.5-17.9-30.2-23c-0.3-0.1-0.6-0.3-1-0.4c-1.9-0.8-3.8-1.5-5.7-2.1c-0.7-0.2-1.4-0.5-2.1-0.7\n\\tc-1.7-0.5-3.4-0.9-5.1-1.3c-0.9-0.2-1.9-0.5-2.8-0.7c-0.5-0.1-0.9-0.2-1.4-0.3c-1.3-0.2-2.6-0.3-3.8-0.5c-0.9-0.1-1.8-0.3-2.6-0.3\n\\tc-2.1-0.2-4.3-0.3-6.4-0.3c-0.4,0-0.8-0.1-1.2-0.1c-0.1,0-0.1,0-0.2,0c-16.4,0-32.4,5-46.2,14.8C49,35,48,41.1,51,45.6\n\\tc3.1,4.4,9.1,5.5,13.5,2.4c10.6-7.5,23-11.3,35.7-11.2c1.8,0,3.6,0.1,5.4,0.3c0.6,0.1,1.1,0.1,1.6,0.2c1.5,0.2,2.9,0.4,4.3,0.7\n\\tc0.6,0.1,1.3,0.3,1.9,0.4c1.4,0.3,2.8,0.7,4.2,1.1c0.4,0.1,0.9,0.3,1.3,0.4c1.6,0.5,3.1,1.1,4.6,1.7c0.2,0.1,0.3,0.1,0.5,0.2\n\\tc9,3.9,17,10,23.2,17.6c0,0,0.1,0.1,0.1,0.2c8.7,10.7,14,24.5,14,39.4H147c-0.4,0-0.7,0.2-0.9,0.5c-0.2,0.3-0.2,0.8,0,1.1l24,36.4\n\\tc0.2,0.3,0.5,0.5,0.9,0.5c0.4,0,0.7-0.2,0.9-0.5l23.9-36.4c0.2-0.3,0.2-0.7,0-1.1c-0.2-0.3-0.5-0.5-0.9-0.5L180.6,98.9L180.6,98.9\n\\tL180.6,98.9z\"/>\n  </svg>`,\n})\nexport class RefreshIconComponent {\n  @Input()\n  width = 20\n\n  @Input()\n  height = 20\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'loading-icon',\n  template: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\" [attr.width]=\"width\" [attr.height]=\"height\">\n    <circle cx=\"50\" cy=\"36.8101\" r=\"10\">\n      <animate attributeName=\"cy\" dur=\"1s\" repeatCount=\"indefinite\" calcMode=\"spline\" keySplines=\"0.45 0 0.9 0.55;0 0.45 0.55 0.9\" keyTimes=\"0;0.5;1\" values=\"23;77;23\"></animate>\n    </circle>\n  </svg>`,\n})\nexport class LoadingIconComponent {\n  @Input()\n  width = 84\n\n  @Input()\n  height = 84\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core'\nimport {ClickConfig, ClickData, ClickDot, ClickEvent, defaultClickConfig, defaultData} from \"./click-instance\";\nimport {getDomXY, mergeTo} from \"../../helper/helper\";\n\n@Component({\n    selector: 'go-captcha-click',\n    templateUrl: 'click.component.html',\n    styleUrls: ['click.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class ClickComponent {\n    localConfig?: ClickConfig = defaultClickConfig()\n    localData: ClickData = defaultData() as ClickData\n    localEvents?: ClickEvent = {}\n\n    dots: Array<ClickDot> = []\n\n    @Input()\n    set config(config: ClickConfig) {\n        mergeTo(this.localConfig, config)\n        this.localConfig = config\n    }\n\n    @Input()\n    set data(data: ClickData) {\n        mergeTo(this.localData, data)\n        this.localData = data\n    }\n\n    @Input()\n    set events(events: ClickEvent) {\n        mergeTo(this.localEvents, events)\n        this.localEvents = events\n    }\n\n    get hasDisplayWrapperState() {\n        return (this.localConfig.width || 0) > 0 || (this.localConfig.height || 0) > 0\n    }\n\n    get hasDisplayImageState() {\n        return (this.localData.image && this.localData.image.length > 0) || (this.localData.thumb && this.localData.thumb.length > 0)\n    }\n\n    clickEvent(e: Event|any){\n        const dom = e.currentTarget\n        const xy = getDomXY(dom)\n\n        const mouseX = e.pageX || e.clientX\n        const mouseY = e.pageY || e.clientY\n\n        const domX = xy.domX\n        const domY = xy.domY\n\n        const xPos = mouseX - domX;\n        const yPos = mouseY - domY;\n\n        const xx = parseInt(xPos.toString())\n        const yy = parseInt(yPos.toString())\n        const date = new Date()\n        const index = this.dots.length\n\n        this.dots.push({key: date.getTime(), index: index + 1, x: xx, y: yy})\n\n        this.localEvents.click && this.localEvents.click(xx, yy)\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    confirmEvent(e: Event|any) {\n        const dotsStr = JSON.stringify(this.dots)\n        let dots: Array<ClickDot> = []\n        try {\n            dots = JSON.parse(dotsStr)\n        } catch (e) {\n            console.warn(\"parse dots error\", e)\n        }\n\n        this.localEvents.confirm && this.localEvents.confirm(dots, () => {\n            this.dots = []\n        })\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    closeEvent(e: Event|any){\n        this.close()\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    refreshEvent(e: Event|any) {\n        this.refresh()\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    reset(){\n        this.dots = []\n    }\n\n    clear(){\n        this.reset()\n        setTimeout(()=> {\n            this.localData.image = ''\n            this.localData.thumb = ''\n        }, 0)\n    }\n\n    close() {\n        this.localEvents.close && this.localEvents.close()\n        this.reset()\n    }\n\n    refresh() {\n        this.localEvents.refresh && this.localEvents.refresh()\n        this.reset()\n    }\n}\n","<div\n  class=\"go-captcha gc-wrapper\"\n  [class]=\"{'gc-theme': localConfig.showTheme}\"\n  [style]=\"{\n    width:  (localConfig.width || 0) + ( localConfig.horizontalPadding * 2) + (localConfig.showTheme ? 2 : 0) + 'px',\n    paddingLeft: localConfig.horizontalPadding + 'px',\n    paddingRight: localConfig.horizontalPadding + 'px',\n    paddingTop: localConfig.verticalPadding + 'px',\n    paddingBottom: localConfig.verticalPadding + 'px',\n    display: hasDisplayWrapperState ? 'block' : 'none'\n  }\"\n  >\n  <div class=\"gc-header\">\n    <span>{{ localConfig.title }}</span>\n    <img\n      [class]=\"{'gc-hide': localData.thumb == ''}\"\n      [style]=\"{\n        width: localConfig.thumbWidth + 'px',\n        height: localConfig.thumbHeight + 'px'\n      }\"\n      [attr.src]=\"localData.thumb\"\n      alt=\"\"\n    />\n  </div>\n  <div\n    class=\"gc-body\"\n    [style]=\"{\n      width: localConfig.width + 'px',\n      height: localConfig.height + 'px',\n    }\"\n  >\n    <div class=\"gc-loading\">\n      <loading-icon></loading-icon>\n    </div>\n    <img\n      class=\"gc-picture\"\n      [class]=\"{'gc-hide': localData.image == ''}\"\n      [style]=\"{\n        width: localConfig.width + 'px',\n        height: localConfig.height + 'px',\n        display: hasDisplayImageState ? 'block' : 'none'\n      }\"\n      [attr.src]=\"localData.image\"\n      alt=\"\"\n      (click)=\"clickEvent($event)\"\n    />\n    <div class=\"gc-dots\">\n      <div\n        class=\"gc-dot\"\n        *ngFor=\"let dot of dots;\"\n        [style]=\"{\n          top: (dot.y - 11) + 'px',\n          left: (dot.x - 11) + 'px',\n        }\"\n      >{{dot.index}}</div>\n    </div>\n  </div>\n  <div class=\"gc-footer\">\n    <div class=\"gc-icon-block gc-icon-block2\">\n      <close-icon\n        [width]=\"localConfig.iconSize\"\n        [height]=\"localConfig.iconSize\"\n        (click)=\"closeEvent($event)\"\n      ></close-icon>\n      <refresh-icon\n        [width]=\"localConfig.iconSize\"\n        [height]=\"localConfig.iconSize\"\n        (click)=\"refreshEvent($event)\"\n      ></refresh-icon>\n    </div>\n    <div class=\"gc-button-block\">\n      <button\n        [class]=\"{'disabled': !hasDisplayImageState}\"\n        (click)=\"confirmEvent($event)\"\n      >{{ localConfig.buttonText }}</button>\n    </div>\n  </div>\n</div>","/**\n * @Author Awen\n * @Date 2024/06/01\n * @Email wengaolng@gmail.com\n **/\n\nexport interface SlideRef {\n    reset: () => void,\n    clear: () => void,\n    refresh: () => void,\n    close: () => void,\n}\n\nexport interface SlideConfig {\n    width?: number;\n    height?: number;\n    thumbWidth?: number;\n    thumbHeight?: number;\n    verticalPadding?: number;\n    horizontalPadding?: number;\n    showTheme?: boolean;\n    title?: string;\n    iconSize?: number;\n    scope ?: boolean;\n}\n\nexport const defaultSlideConfig = ():SlideConfig => ({\n    width: 300,\n    height: 220,\n    thumbWidth: 150,\n    thumbHeight: 40,\n    verticalPadding: 16,\n    horizontalPadding: 12,\n    showTheme: true,\n    title: \"请拖动滑块完成拼图\",\n    iconSize: 22,\n    scope: true,\n})\n\nexport interface SlideData {\n    thumbX: number;\n    thumbY: number;\n    thumbWidth: number;\n    thumbHeight: number;\n    image: string;\n    thumb: string;\n}\n\nexport const defaultSlideData = ():SlideData => ({\n    thumbX: 0,\n    thumbY: 0,\n    thumbHeight: 0,\n    thumbWidth: 0,\n    image: '',\n    thumb: '',\n})\n\nexport interface SlidePoint {\n    x: number,\n    y: number,\n}\n\nexport interface SlideEvent {\n    move?: (x: number, y: number) => void;\n    refresh?: () => void;\n    close?: () => void;\n    confirm?: (point: SlidePoint, clear:(fn: Function) => void) => void;\n}\n\nexport interface SlideInstance {\n    data: SlideData,\n    config?: SlideConfig;\n    events?: SlideEvent,\n}\n","import {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'arrows-icon',\n  template: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [attr.width]=\"width\" [attr.height]=\"height\">\n      <path d=\"M131.6,116.3c0,0-75.6,0-109.7,0c-9.1,0-16.2-7.4-16.2-16.2c0-9.1,7.4-16.2,16.2-16.2c28.7,0,109.7,0,109.7,0\n\\ts-5.4-5.4-30.4-30.7c-6.4-6.4-6.4-16.7,0-23.1s16.7-6.4,23.1,0l58.4,58.4c6.4,6.4,6.4,16.7,0,23.1c0,0-32.9,32.9-57.9,57.9\n\\tc-6.4,6.4-16.7,6.4-23.1,0c-6.4-6.4-6.4-16.7,0-23.1C121.8,126.2,131.6,116.3,131.6,116.3z\"/>\n    </svg>`,\n})\nexport class ArrowsIconComponent {\n  @Input()\n  width = 20\n\n  @Input()\n  height = 20\n}\n","import {Component, ElementRef, Input, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core'\nimport {checkTargetFather, mergeTo, mergeToOver} from \"../../helper/helper\";\nimport {defaultSlideConfig, defaultSlideData, SlideConfig, SlideData, SlideEvent} from \"./slide-instance\";\n\n@Component({\n    selector: 'go-captcha-slide',\n    templateUrl: 'slide.component.html',\n    styleUrls: ['slide.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class SlideComponent {\n    localConfig?: SlideConfig = {...defaultSlideConfig()}\n    localData: SlideData = {...defaultSlideData()}\n    localEvents?: SlideEvent = {}\n\n    @ViewChild('rootRef', {static: false})\n    rootRef: ElementRef\n\n    @ViewChild('containerRef', {static: false})\n    containerRef: ElementRef\n\n    @ViewChild('dragBlockRef', {static: false})\n    dragBlockRef: ElementRef\n\n    @ViewChild('dragBarRef', {static: false})\n    dragBarRef: ElementRef\n\n    @ViewChild('tileRef', {static: false})\n    tileRef: ElementRef\n\n    state: {dragLeft: number, thumbLeft: number} = {dragLeft: 0, thumbLeft: this.localData.thumbX || 0}\n    isFreeze: boolean = false\n\n    @Input()\n    set config(config: SlideConfig) {\n        mergeTo(this.localConfig, config)\n        this.localConfig = config\n    }\n\n    @Input()\n    set data(data: SlideData) {\n        mergeTo(this.localData, data)\n        this.localData = data\n        this.updateState()\n    }\n\n    @Input()\n    set events(events: SlideEvent) {\n        mergeTo(this.localEvents, events)\n        this.localEvents = events\n    }\n\n    get hasDisplayWrapperState() {\n        return (this.localConfig.width || 0) > 0 || (this.localConfig.height || 0) > 0\n    }\n\n    get hasDisplayImageState() {\n        return (this.localData.image && this.localData.image.length > 0) || (this.localData.thumb && this.localData.thumb.length > 0)\n    }\n\n    private dsFn = (event: any) => event.preventDefault()\n    ngAfterViewInit() {\n        this.dragBlockRef.nativeElement && this.dragBlockRef.nativeElement.addEventListener('dragstart', this.dsFn);\n    }\n\n    ngOnDestroy() {\n        this.dragBlockRef.nativeElement && this.dragBlockRef.nativeElement.removeEventListener('dragstart', this.dsFn);\n    }\n\n    updateState() {\n        if (!this.isFreeze) {\n            this.state.thumbLeft = (this.localData.thumbX || 0)\n        }\n    }\n\n    dragEvent (e: Event|any) {\n        if (!checkTargetFather(this.dragBarRef.nativeElement, e)) {\n            return\n        }\n\n        const touch = e.touches && e.touches[0];\n        const offsetLeft = this.dragBlockRef.nativeElement.offsetLeft\n        const width = this.containerRef.nativeElement.offsetWidth\n        const blockWidth = this.dragBlockRef.nativeElement.offsetWidth\n        const maxWidth = width - blockWidth\n\n        const tileWith  = this.tileRef.nativeElement.offsetWidth\n        const tileOffsetLeft = this.tileRef.nativeElement.offsetLeft\n        const containerMaxWidth = width - tileWith\n        const tileMaxWith = width - (tileWith + tileOffsetLeft)\n        const ratio = tileMaxWith / maxWidth\n\n        let isMoving = false\n        let tmpLeaveDragEvent: Event|any = null\n        let startX = 0\n        let currentThumbX = 0\n        if (touch) {\n            startX = touch.pageX - offsetLeft\n        } else {\n            startX = e.clientX - offsetLeft\n        }\n\n        const moveEvent = (e: Event|any) => {\n            isMoving = true\n            const mTouche = e.touches && e.touches[0];\n\n            let left = 0;\n            if (mTouche) {\n                left = mTouche.pageX - startX\n            } else {\n                left = e.clientX - startX\n            }\n\n            const ctX = tileOffsetLeft + (left * ratio)\n            if (left >= maxWidth) {\n                this.state.dragLeft = maxWidth\n                currentThumbX = containerMaxWidth\n                this.state.thumbLeft = currentThumbX\n                return\n            }\n\n            if (left <= 0) {\n                this.state.dragLeft = 0\n                currentThumbX = tileOffsetLeft\n                this.state.thumbLeft = currentThumbX\n                return\n            }\n\n            this.state.dragLeft = left\n            currentThumbX = currentThumbX = ctX\n            this.state.thumbLeft = currentThumbX\n\n            this.localEvents.move && this.localEvents.move(currentThumbX, this.localData.thumbY || 0)\n\n            e.cancelBubble = true\n            e.preventDefault()\n        }\n\n        const upEvent = (e: Event|any) => {\n            if (!checkTargetFather(this.dragBarRef.nativeElement, e)) {\n                return\n            }\n\n            clearEvent()\n            if (!isMoving) {\n                return\n            }\n\n            isMoving = false\n\n            if (currentThumbX < 0) {\n                return\n            }\n\n            this.localEvents.confirm && this.localEvents.confirm({x: parseInt(currentThumbX.toString()), y: this.localData.thumbY || 0}, () => {\n                this.reset()\n            })\n\n            e.cancelBubble = true\n            e.preventDefault()\n        }\n\n        const leaveDragBlockEvent = (e: Event|any) => {\n            tmpLeaveDragEvent = e\n        }\n\n        const enterDragBlockEvent = () => {\n            tmpLeaveDragEvent = null\n        }\n\n        const leaveUpEvent = (_: Event|any) => {\n            if(!tmpLeaveDragEvent) {\n                return\n            }\n\n            upEvent(tmpLeaveDragEvent)\n            clearEvent()\n        }\n\n        const scope = this.localConfig.scope\n        const dragDom = scope ? this.rootRef.nativeElement : this.dragBarRef.nativeElement\n        const scopeDom = scope ? this.rootRef.nativeElement : document.body\n\n        const clearEvent = () => {\n            scopeDom.removeEventListener(\"mousemove\", moveEvent, false)\n            scopeDom.removeEventListener(\"touchmove\", moveEvent, { passive: false })\n\n            dragDom.removeEventListener( \"mouseup\", upEvent, false)\n            dragDom.removeEventListener( \"mouseenter\", enterDragBlockEvent, false)\n            dragDom.removeEventListener( \"mouseleave\", leaveDragBlockEvent, false)\n            dragDom.removeEventListener(\"touchend\", upEvent, false)\n\n            scopeDom.removeEventListener(\"mouseleave\", upEvent, false)\n            scopeDom.removeEventListener(\"mouseup\", leaveUpEvent, false)\n            this.isFreeze = false\n        }\n        this.isFreeze = true\n\n        scopeDom.addEventListener(\"mousemove\", moveEvent, false)\n        scopeDom.addEventListener(\"touchmove\", moveEvent, { passive: false })\n\n        dragDom.addEventListener( \"mouseup\", upEvent, false)\n        dragDom.addEventListener( \"mouseenter\", enterDragBlockEvent, false)\n        dragDom.addEventListener( \"mouseleave\", leaveDragBlockEvent, false)\n        dragDom.addEventListener(\"touchend\", upEvent, false)\n\n        scopeDom.addEventListener(\"mouseleave\", upEvent, false)\n        scopeDom.addEventListener(\"mouseup\", leaveUpEvent, false)\n    }\n\n    closeEvent(e: Event|any){\n        this.close()\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    refreshEvent(e: Event|any) {\n        this.refresh()\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    reset(){\n        this.state.dragLeft = 0\n        this.state.thumbLeft = this.localData.thumbX || 0\n    }\n\n    clear(){\n        this.reset()\n        setTimeout(()=> {\n            this.localData.image = ''\n            this.localData.thumb = ''\n            this.localData.thumbX = 0\n            this.localData.thumbY = 0\n            this.localData.thumbHeight = 0\n            this.localData.thumbWidth = 0\n        }, 0)\n    }\n\n    close() {\n        this.localEvents.close && this.localEvents.close()\n        this.reset()\n    }\n\n    refresh() {\n        this.localEvents.refresh && this.localEvents.refresh()\n        this.reset()\n    }\n}\n","<div\n  class=\"go-captcha gc-wrapper\"\n  [class]=\"{'gc-theme': localConfig.showTheme}\"\n  [style]=\"{\n    width:  (localConfig.width || 0) + ( localConfig.horizontalPadding * 2) + (localConfig.showTheme ? 2 : 0) + 'px',\n    paddingLeft: localConfig.horizontalPadding + 'px',\n    paddingRight: localConfig.horizontalPadding + 'px',\n    paddingTop: localConfig.verticalPadding + 'px',\n    paddingBottom: localConfig.verticalPadding + 'px',\n    display: hasDisplayWrapperState ? 'block' : 'none'\n  }\"\n  #rootRef\n>\n  <div class=\"gc-header\">\n    <span>{{ localConfig.title }}</span>\n    <div class=\"gc-icon-block\">\n      <close-icon\n        [width]=\"localConfig.iconSize\"\n        [height]=\"localConfig.iconSize\"\n        (click)=\"closeEvent($event)\"\n      ></close-icon>\n      <refresh-icon\n        [width]=\"localConfig.iconSize\"\n        [height]=\"localConfig.iconSize\"\n        (click)=\"refreshEvent($event)\"\n      ></refresh-icon>\n    </div>\n  </div>\n  <div\n    class=\"gc-body\"\n    #containerRef\n    [style]=\"{\n      width: localConfig.width + 'px',\n      height: localConfig.height + 'px'\n    }\"\n  >\n    <div class=\"gc-loading\">\n      <loading-icon></loading-icon>\n    </div>\n    <img\n      class=\"gc-picture\"\n      [class]=\"{'gc-hide': localData.image == ''}\"\n      [style]=\"{display: hasDisplayImageState ? 'block' : 'none'}\"\n      [attr.src]=\"localData.image\"\n      alt=\"\"\n    />\n    <div\n      class=\"gc-tile\"\n      #tileRef\n      [style]=\"{\n        width: localData.thumbWidth + 'px',\n        height: localData.thumbHeight + 'px',\n        top: localData.thumbY + 'px',\n        left: state.thumbLeft + 'px'\n      }\"\n    >\n      <img\n        [class]=\"{'gc-hide': localData.thumb == ''}\"\n        [attr.src]=\"localData.thumb\"\n        [style]=\"{display: hasDisplayImageState ? 'block' : 'none'}\"\n        alt=\"\"\n      />\n    </div>\n  </div>\n  <div class=\"gc-footer\">\n    <div class=\"gc-drag-slide-bar\" #dragBarRef>\n      <div class=\"gc-drag-line\"></div>\n      <div\n        class=\"gc-drag-block\"\n        #dragBlockRef\n        (mousedown)=\"dragEvent($event)\"\n        [style]=\"{left: state.dragLeft + 'px'}\"\n        [class]=\"{'disabled': !hasDisplayImageState}\"\n      >\n        <div class=\"drag-block-inline\" (touchstart)=\"dragEvent($event)\">\n          <arrows-icon></arrows-icon>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>","/**\n * @Author Awen\n * @Date 2024/06/01\n * @Email wengaolng@gmail.com\n **/\n\nexport interface SlideRegionRef {\n    reset: () => void,\n    clear: () => void,\n    refresh: () => void,\n    close: () => void,\n}\n\nexport interface SlideRegionConfig {\n    width?: number;\n    height?: number;\n    verticalPadding?: number;\n    horizontalPadding?: number;\n    showTheme?: boolean;\n    title?: string;\n    iconSize?: number;\n    scope ?: boolean;\n}\n\nexport const defaultSlideRegionConfig = ():SlideRegionConfig => ({\n    width: 300,\n    height: 220,\n    verticalPadding: 16,\n    horizontalPadding: 12,\n    showTheme: true,\n    title: \"请拖动滑块完成拼图\",\n    iconSize: 22,\n    scope: true,\n})\n\nexport interface SlideRegionData {\n    thumbX: number;\n    thumbY: number;\n    thumbWidth: number;\n    thumbHeight: number;\n    image: string;\n    thumb: string;\n}\n\nexport interface SlideRegionPoint {\n    x: number,\n    y: number,\n}\n\nexport interface SlideRegionEvent {\n    move?: (x: number, y: number) => void;\n    refresh?: () => void;\n    close?: () => void;\n    confirm?: (point: SlideRegionPoint, clear:(fn: Function) => void) => void;\n}\n\nexport interface SlideRegionInstance {\n    data: SlideRegionData,\n    config?: SlideRegionConfig;\n    events?: SlideRegionEvent,\n}\n","import {Component, ElementRef, Input, ViewChild, ViewEncapsulation} from '@angular/core'\nimport {checkTargetFather, mergeTo} from \"../../helper/helper\";\nimport {defaultSlideRegionConfig, SlideRegionConfig, SlideRegionData, SlideRegionEvent} from \"./slide-region-instance\";\n\n@Component({\n    selector: 'go-captcha-slide-region',\n    templateUrl: 'slide-region.component.html',\n    styleUrls: ['slide-region.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class SlideRegionComponent {\n    localConfig?: SlideRegionConfig = defaultSlideRegionConfig()\n    localData: SlideRegionData = {\n        thumbX: 0,\n        thumbY: 0,\n        thumbWidth: 0,\n        thumbHeight: 0,\n        image: \"\",\n        thumb: \"\"\n    } as SlideRegionData\n    localEvents?: SlideRegionEvent = {}\n\n    @ViewChild('rootRef', {static: false})\n    rootRef: ElementRef\n\n    @ViewChild('containerRef', {static: false})\n    containerRef: ElementRef\n\n    @ViewChild('dragBlockRef', {static: false})\n    dragBlockRef: ElementRef\n\n    @ViewChild('dragBarRef', {static: false})\n    dragBarRef: ElementRef\n\n    @ViewChild('tileRef', {static: false})\n    tileRef: ElementRef\n\n    state: {x: number, y: number} = {x: this.localData.thumbX || 0, y: this.localData.thumbY || 0}\n    isFreeze: boolean = false\n\n    @Input()\n    set config(config: SlideRegionConfig) {\n        mergeTo(this.localConfig, config)\n        this.localConfig = config\n    }\n\n    @Input()\n    set data(data: SlideRegionData) {\n        mergeTo(this.localData, data)\n        this.localData = data\n        this.updateState()\n    }\n\n    @Input()\n    set events(events: SlideRegionEvent) {\n        mergeTo(this.localEvents, events)\n        this.localEvents = events\n    }\n\n    get hasDisplayWrapperState() {\n        return (this.localConfig.width || 0) > 0 || (this.localConfig.height || 0) > 0\n    }\n\n    get hasDisplayImageState() {\n        return (this.localData.image && this.localData.image.length > 0) || (this.localData.thumb && this.localData.thumb.length > 0)\n    }\n\n    private dsFn = (event: any) => event.preventDefault()\n    ngAfterViewInit() {\n        this.tileRef.nativeElement && this.tileRef.nativeElement.addEventListener('dragstart', this.dsFn);\n    }\n\n    ngOnDestroy() {\n        this.tileRef.nativeElement && this.tileRef.nativeElement.removeEventListener('dragstart', this.dsFn);\n    }\n\n    updateState() {\n        if (!this.isFreeze) {\n            this.state.x = (this.localData.thumbX || 0)\n            this.state.y = (this.localData.thumbY || 0)\n        }\n    }\n\n    dragEvent(e: Event|any) {\n        if (!checkTargetFather(this.containerRef.nativeElement, e)) {\n            return\n        }\n\n        const touch = e.touches && e.touches[0];\n        const offsetLeft = this.tileRef.nativeElement.offsetLeft\n        const offsetTop = this.tileRef.nativeElement.offsetTop\n        const width = this.containerRef.nativeElement.offsetWidth\n        const height = this.containerRef.nativeElement.offsetHeight\n        const tileWidth = this.tileRef.nativeElement.offsetWidth\n        const tileHeight = this.tileRef.nativeElement.offsetHeight\n        const maxWidth = width - tileWidth\n        const maxHeight = height - tileHeight\n\n        let isMoving = false\n        let tmpLeaveDragEvent: Event|any = null\n        let startX = 0\n        let startY = 0\n        let tileLeft = 0\n        let tileTop = 0\n        if (touch) {\n            startX = touch.pageX - offsetLeft\n            startY = touch.pageY - offsetTop\n        } else {\n            startX = e.clientX - offsetLeft\n            startY = e.clientY - offsetTop\n        }\n\n        const moveEvent = (e: Event|any) => {\n            isMoving = true\n            const mTouche = e.touches && e.touches[0];\n\n            let left = 0;\n            let top = 0;\n            if (mTouche) {\n                left = mTouche.pageX - startX\n                top = mTouche.pageY - startY\n            } else {\n                left = e.clientX - startX\n                top = e.clientY - startY\n            }\n\n            if (left <= 0) {\n                left = 0\n            }\n\n            if (top <= 0) {\n                top = 0\n            }\n\n            if (left >= maxWidth) {\n                left = maxWidth\n            }\n\n            if (top >= maxHeight) {\n                top = maxHeight\n            }\n\n            this.state.x = left\n            this.state.y = top\n            tileLeft = left\n            tileTop = top\n            this.localEvents.move && this.localEvents.move(left, top)\n\n            e.cancelBubble = true\n            e.preventDefault()\n        }\n\n        const upEvent = (e: Event|any) => {\n            if (!checkTargetFather(this.containerRef.nativeElement, e)) {\n                return\n            }\n\n            clearEvent()\n            if (!isMoving) {\n                return\n            }\n            isMoving = false\n\n            if (tileLeft < 0 || tileTop < 0) {\n                return\n            }\n\n            this.localEvents.confirm && this.localEvents.confirm({x: tileLeft, y: tileTop}, () => {\n                this.reset()\n            })\n\n            e.cancelBubble = true\n            e.preventDefault()\n        }\n\n        const leaveDragBlockEvent = (e: Event|any) => {\n            tmpLeaveDragEvent = e\n        }\n\n        const enterDragBlockEvent = () => {\n            tmpLeaveDragEvent = null\n        }\n\n        const leaveUpEvent = (_: Event|any) => {\n            if(!tmpLeaveDragEvent) {\n                return\n            }\n\n            upEvent(tmpLeaveDragEvent)\n            clearEvent()\n        }\n\n        const scope = this.localConfig.scope\n        const dragDom = scope ? this.rootRef.nativeElement : this.dragBarRef.nativeElement\n        const scopeDom = scope ? this.rootRef.nativeElement : document.body\n\n        const clearEvent = () => {\n            scopeDom.removeEventListener(\"mousemove\", moveEvent, false)\n            scopeDom.removeEventListener(\"touchmove\", moveEvent, { passive: false })\n\n            dragDom.removeEventListener( \"mouseup\", upEvent, false)\n            dragDom.removeEventListener( \"mouseenter\", enterDragBlockEvent, false)\n            dragDom.removeEventListener( \"mouseleave\", leaveDragBlockEvent, false)\n            dragDom.removeEventListener(\"touchend\", upEvent, false)\n\n            scopeDom.removeEventListener(\"mouseleave\", upEvent, false)\n            scopeDom.removeEventListener(\"mouseup\", leaveUpEvent, false)\n\n            this.isFreeze = false\n        }\n        this.isFreeze = true\n\n        scopeDom.addEventListener(\"mousemove\", moveEvent, false)\n        scopeDom.addEventListener(\"touchmove\", moveEvent, { passive: false })\n\n        dragDom.addEventListener( \"mouseup\", upEvent, false)\n        dragDom.addEventListener( \"mouseenter\", enterDragBlockEvent, false)\n        dragDom.addEventListener( \"mouseleave\", leaveDragBlockEvent, false)\n        dragDom.addEventListener(\"touchend\", upEvent, false)\n\n        scopeDom.addEventListener(\"mouseleave\", upEvent, false)\n        scopeDom.addEventListener(\"mouseup\", leaveUpEvent, false)\n    }\n\n    closeEvent(e: Event|any){\n        this.close()\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    refreshEvent(e: Event|any) {\n        this.refresh()\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    reset(){\n        this.state.x = this.localData.thumbX || 0\n        this.state.y = this.localData.thumbY || 0\n    }\n\n    clear(){\n        this.reset()\n        setTimeout(()=> {\n            this.localData.image = ''\n            this.localData.thumb = ''\n            this.localData.thumbX = 0\n            this.localData.thumbY = 0\n            this.localData.thumbHeight = 0\n            this.localData.thumbWidth = 0\n        }, 0)\n    }\n\n    close() {\n        this.localEvents.close && this.localEvents.close()\n        this.reset()\n    }\n\n    refresh() {\n        this.localEvents.refresh && this.localEvents.refresh()\n        this.reset()\n    }\n}\n","<div\n  class=\"go-captcha gc-wrapper\"\n  [class]=\"{'gc-theme': localConfig.showTheme}\"\n  [style]=\"{\n    width:  (localConfig.width || 0) + ( localConfig.horizontalPadding * 2) + (localConfig.showTheme ? 2 : 0) + 'px',\n    paddingLeft: localConfig.horizontalPadding + 'px',\n    paddingRight: localConfig.horizontalPadding + 'px',\n    paddingTop: localConfig.verticalPadding + 'px',\n    paddingBottom: localConfig.verticalPadding + 'px',\n    display: hasDisplayWrapperState ? 'block' : 'none'\n  }\"\n  #rootRef\n>\n  <div class=\"gc-header gc-header2\">\n    <span>{{ localConfig.title }}</span>\n  </div>\n  <div\n    class=\"gc-body\"\n    #containerRef\n    [style]=\"{width: localConfig.width + 'px', height: localConfig.height + 'px'}\"\n  >\n    <div class=\"gc-loading\">\n      <loading-icon></loading-icon>\n    </div>\n    <img\n      class=\"gc-picture\"\n      [class]=\"{'gc-hide': localData.image == ''}\"\n      [style]=\"{display: hasDisplayImageState ? 'block' : 'none'}\"\n      [attr.src]=\"localData.image\"\n      alt=\"\"\n    />\n    <div\n      class=\"gc-tile\"\n      #tileRef\n      [style]=\"{\n        width: localData.thumbWidth + 'px',\n        height: localData.thumbHeight + 'px',\n        top: state.y + 'px',\n        left: state.x + 'px'\n      }\"\n      (mousedown)=\"dragEvent($event)\"\n      (touchstart)=\"dragEvent($event)\"\n    >\n      <img\n        [class]=\"{'gc-hide': localData.thumb == ''}\"\n        [style]=\"{display: hasDisplayImageState ? 'block' : 'none'}\"\n        [attr.src]=\"localData.thumb\"\n        alt=\"\"\n      />\n    </div>\n  </div>\n  <div class=\"gc-footer\">\n    <div class=\"gc-icon-block\">\n      <close-icon\n        [width]=\"localConfig.iconSize\"\n        [height]=\"localConfig.iconSize\"\n        (click)=\"closeEvent($event)\"\n      ></close-icon>\n      <refresh-icon\n        [width]=\"localConfig.iconSize\"\n        [height]=\"localConfig.iconSize\"\n        (click)=\"refreshEvent($event)\"\n      ></refresh-icon>\n    </div>\n  </div>\n</div>","export interface RotateRef {\n    reset: () => void,\n    clear: () => void,\n    refresh: () => void,\n    close: () => void,\n}\n\nexport interface RotateConfig {\n    width?: number;\n    height?: number;\n    size?: number;\n    verticalPadding?: number;\n    horizontalPadding?: number;\n    showTheme?: boolean;\n    title?: string;\n    iconSize?: number;\n    scope ?: boolean;\n}\n\nexport const defaultRotateConfig = ():RotateConfig => ({\n    width: 300,\n    height: 220,\n    size: 220,\n    verticalPadding: 16,\n    horizontalPadding: 12,\n    showTheme: true,\n    title: \"请拖动滑块完成拼图\",\n    iconSize: 22,\n    scope: true,\n})\n\nexport interface RotateData {\n    angle?: number;\n    image: string;\n    thumb: string;\n    thumbSize?: number;\n}\n\nexport const defaultRotateData = (): RotateData =>({\n    angle: 0,\n    image: '',\n    thumb: '',\n    thumbSize: 0\n})\n\n\nexport interface RotateEvent {\n    rotate?: (angle: number) => void;\n    refresh?: () => void;\n    close?: () => void;\n    confirm?: (angle: number, clear:(fn: Function) => void) => void;\n}\n\nexport interface RotateInstance {\n    data: RotateData,\n    config?: RotateConfig;\n    events?: RotateEvent,\n}\n","import {Component, ElementRef, Input, ViewChild, ViewEncapsulation} from '@angular/core'\nimport {checkTargetFather, mergeTo} from \"../../helper/helper\";\nimport {defaultRotateConfig, defaultRotateData, RotateConfig, RotateData, RotateEvent} from \"./rotate-instance\";\n\n@Component({\n    selector: 'go-captcha-rotate',\n    templateUrl: 'rotate.component.html',\n    styleUrls: ['rotate.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class RotateComponent {\n    localConfig?: RotateConfig = defaultRotateConfig()\n    localData: RotateData = defaultRotateData()\n    localEvents?: RotateEvent = {}\n\n    @ViewChild('rootRef', {static: false})\n    rootRef: ElementRef\n\n    @ViewChild('dragBlockRef', {static: false})\n    dragBlockRef: ElementRef\n\n    @ViewChild('dragBarRef', {static: false})\n    dragBarRef: ElementRef\n\n    dragLeft: number = 0\n    thumbAngle: number = this.localData.angle || 0\n    isFreeze: boolean = false\n\n    @Input()\n    set config(config: RotateConfig) {\n        mergeTo(this.localConfig, config)\n        this.localConfig = config\n    }\n\n    @Input()\n    set data(data: RotateData) {\n        mergeTo(this.localData, data)\n        this.localData = data\n        this.updateState()\n    }\n\n    @Input()\n    set events(events: RotateEvent) {\n        mergeTo(this.localEvents, events)\n        this.localEvents = events\n    }\n\n    get thumbSizeStyle() {\n        return {\n            transform: 'rotate('+this.thumbAngle+'deg)',\n            ...(this.localData.thumbSize > 0 ? {\n                width: this.localData.thumbSize + 'px',\n                height: this.localData.thumbSize + 'px'\n            } : {})\n        }\n    }\n\n    get hasDisplayWrapperState() {\n        return (this.localConfig.width || 0) > 0 || (this.localConfig.height || 0) > 0\n    }\n\n    get hasDisplayImageState() {\n        return (this.localData.image && this.localData.image.length > 0) || (this.localData.thumb && this.localData.thumb.length > 0)\n    }\n\n    get size() {\n        return (this.localConfig.size || 0) > 0 ? this.localConfig.size : defaultRotateConfig().size\n    }\n\n    private dsFn = (event: any) => event.preventDefault()\n    ngAfterViewInit() {\n        this.dragBlockRef.nativeElement && this.dragBlockRef.nativeElement.addEventListener('dragstart', this.dsFn);\n    }\n\n    ngOnDestroy() {\n        this.dragBlockRef.nativeElement && this.dragBlockRef.nativeElement.removeEventListener('dragstart', this.dsFn);\n    }\n\n    updateState() {\n        if (!this.isFreeze) {\n            this.thumbAngle = (this.localData.angle || 0)\n        }\n    }\n\n    dragEvent = (e: Event|any) => {\n        if (!checkTargetFather(this.dragBarRef.nativeElement, e)) {\n            return\n        }\n\n        const touch = e.touches && e.touches[0];\n\n        const offsetLeft = this.dragBlockRef.nativeElement.offsetLeft\n        const width = this.dragBarRef.nativeElement.offsetWidth\n        const blockWidth = this.dragBlockRef.nativeElement.offsetWidth\n        const maxWidth = width - blockWidth\n        const maxAngle = 360\n        const p = (maxAngle - this.localData.angle) / maxWidth\n\n        let angle = 0\n        let isMoving = false\n        let tmpLeaveDragEvent: Event|any = null\n        let startX = 0;\n        let currentAngle = 0\n        if (touch) {\n            startX = touch.pageX - offsetLeft\n        } else {\n            startX = e.clientX - offsetLeft\n        }\n\n        const moveEvent = (e: Event|any) => {\n            isMoving = true\n            const mTouche = e.touches && e.touches[0];\n\n            let left = 0;\n            if (mTouche) {\n                left = mTouche.pageX - startX\n            } else {\n                left = e.clientX - startX\n            }\n\n            angle = this.localData.angle + (left * p)\n\n            if (left >= maxWidth) {\n                this.dragLeft = maxWidth\n                this.thumbAngle = currentAngle = maxAngle\n                return\n            }\n\n            if (left <= 0) {\n                this.dragLeft = 0\n                this.thumbAngle = currentAngle = this.localData.angle\n                return\n            }\n\n            this.dragLeft = left\n            currentAngle = angle\n            this.thumbAngle = angle\n\n            this.localEvents.rotate && this.localEvents.rotate(angle)\n\n            e.cancelBubble = true\n            e.preventDefault()\n        }\n\n        const upEvent = (e: Event|any) => {\n            if (!checkTargetFather(this.dragBarRef.nativeElement, e)) {\n                return\n            }\n\n            clearEvent()\n            if (!isMoving) {\n                return\n            }\n\n            isMoving = false\n\n            if (currentAngle < 0) {\n                return\n            }\n\n            this.localEvents.confirm && this.localEvents.confirm(parseInt(currentAngle.toString()), () => {\n                this.reset()\n            })\n\n            e.cancelBubble = true\n            e.preventDefault()\n        }\n\n        const leaveDragBlockEvent = (e: Event|any) => {\n            tmpLeaveDragEvent = e\n        }\n\n        const enterDragBlockEvent = () => {\n            tmpLeaveDragEvent = null\n        }\n\n        const leaveUpEvent = (_: Event|any) => {\n            if(!tmpLeaveDragEvent) {\n                return\n            }\n\n            upEvent(tmpLeaveDragEvent)\n            clearEvent()\n        }\n\n        const scope = this.localConfig.scope\n        const dragDom = scope ? this.rootRef.nativeElement : this.dragBarRef.nativeElement\n        const scopeDom = scope ? this.rootRef.nativeElement : document.body\n\n        const clearEvent = () => {\n            scopeDom.removeEventListener(\"mousemove\", moveEvent, false)\n            scopeDom.removeEventListener(\"touchmove\", moveEvent, { passive: false })\n\n            dragDom.removeEventListener( \"mouseup\", upEvent, false)\n            dragDom.removeEventListener( \"mouseenter\", enterDragBlockEvent, false)\n            dragDom.removeEventListener( \"mouseleave\", leaveDragBlockEvent, false)\n            dragDom.removeEventListener(\"touchend\", upEvent, false)\n\n            scopeDom.removeEventListener(\"mouseleave\", upEvent, false)\n            scopeDom.removeEventListener(\"mouseup\", leaveUpEvent, false)\n        }\n\n        scopeDom.addEventListener(\"mousemove\", moveEvent, false)\n        scopeDom.addEventListener(\"touchmove\", moveEvent, { passive: false })\n\n        dragDom.addEventListener( \"mouseup\", upEvent, false)\n        dragDom.addEventListener( \"mouseenter\", enterDragBlockEvent, false)\n        dragDom.addEventListener( \"mouseleave\", leaveDragBlockEvent, false)\n        dragDom.addEventListener(\"touchend\", upEvent, false)\n\n        scopeDom.addEventListener(\"mouseleave\", upEvent, false)\n        scopeDom.addEventListener(\"mouseup\", leaveUpEvent, false)\n    }\n\n    closeEvent(e: Event|any){\n        this.close()\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    refreshEvent(e: Event|any) {\n        this.refresh()\n        e.cancelBubble = true\n        e.preventDefault()\n        return false\n    }\n\n    reset(){\n        this.dragLeft = 0\n        this.thumbAngle = this.localData.angle\n    }\n\n    clear(){\n        this.reset()\n        setTimeout(()=> {\n            this.localData.image = ''\n            this.localData.thumb = ''\n            this.localData.angle = 0\n        }, 0)\n    }\n\n    close() {\n        this.localEvents.close && this.localEvents.close()\n        this.reset()\n    }\n\n    refresh() {\n        this.localEvents.refresh && this.localEvents.refresh()\n        this.reset()\n    }\n}\n","<div\n  class=\"go-captcha gc-wrapper\"\n  [class]=\"{'gc-theme': localConfig.showTheme}\"\n  [style]=\"{\n    width:  (localConfig.width || 0) + ( localConfig.horizontalPadding * 2) + (localConfig.showTheme ? 2 : 0) + 'px',\n    paddingLeft: localConfig.horizontalPadding + 'px',\n    paddingRight: localConfig.horizontalPadding + 'px',\n    paddingTop: localConfig.verticalPadding + 'px',\n    paddingBottom: localConfig.verticalPadding + 'px',\n    display: hasDisplayWrapperState ? 'block' : 'none'\n  }\"\n  #rootRef\n  >\n  <div class=\"gc-header\">\n    <span>{{ localConfig.title }}</span>\n    <div class=\"gc-icon-block\">\n      <close-icon\n        [width]=\"localConfig.iconSize\"\n        [height]=\"localConfig.iconSize\"\n        (click)=\"closeEvent($event)\"\n      ></close-icon>\n      <refresh-icon\n        [width]=\"localConfig.iconSize\"\n        [height]=\"localConfig.iconSize\"\n        (click)=\"refreshEvent($event)\"\n      ></refresh-icon>\n    </div>\n  </div>\n  <div\n    class=\"gc-body gc-rotate-body\"\n    [style]=\"{width: localConfig.width + 'px', height: localConfig.height + 'px'}\"\n  >\n    <div class=\"gc-body-inner\" [style]=\"{width: size  + 'px', height: size + 'px' }\">\n      <div class=\"gc-loading\">\n        <loading-icon></loading-icon>\n      </div>\n      <div\n        class=\"gc-picture gc-rotate-picture\"\n        [style]=\"{width: localConfig.size + 'px', height: localConfig.size + 'px'}\"\n      >\n        <img\n          [class]=\"{'gc-hide': localData.image == ''}\"\n          [style]=\"{visibility: hasDisplayImageState ? 'visible' : 'hidden'}\"\n          [src]=\"localData.image\"\n          alt=\"\"\n        />\n        <div class=\"gc-round\"></div>\n      </div>\n\n      <div class=\"gc-thumb gc-rotate-thumb\">\n        <div\n          class=\"gc-rotate-thumb-block\"\n          [style]=\"thumbSizeStyle\"\n        >\n          <img\n            [class]=\"{'gc-hide': localData.thumb == ''}\"\n            [style]=\"{display: hasDisplayImageState ? 'block' : 'none'}\"\n            [src]=\"localData.thumb\"\n            alt=\"\"\n          />\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"gc-footer\">\n    <div class=\"gc-drag-slide-bar\" #dragBarRef>\n      <div class=\"gc-drag-line\"></div>\n      <div\n        class=\"gc-drag-block\"\n        #dragBlockRef\n        (mousedown)=\"dragEvent($event)\"\n        [style]=\"{left: dragLeft + 'px'}\"\n        [class]=\"{'disabled': !hasDisplayImageState}\"\n      >\n        <div class=\"drag-block-inline\" (touchstart)=\"dragEvent($event)\">\n          <arrows-icon></arrows-icon>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {BtnDefaultIconComponent} from \"./icons/btn-default-icon.component\";\nimport {ArrowsIconComponent} from \"./icons/arrows-icon.component\";\nimport {BtnErrorIconComponent} from \"./icons/btn-error-icon.component\";\nimport {BtnSuccessIconComponent} from \"./icons/btn-success-icon.component\";\nimport {BtnWarnIconComponent} from \"./icons/btn-warn-icon.component\";\nimport {CloseIconComponent} from \"./icons/close-icon.component\";\nimport {RefreshIconComponent} from \"./icons/refresh-icon.component\";\nimport {LoadingIconComponent} from \"./icons/loading-icon.component\";\n\nimport {ClickComponent} from './modules/click/click.component';\nimport {SlideComponent} from './modules/slide/slide.component';\nimport {SlideRegionComponent} from './modules/slide-region/slide-region.component';\nimport {RotateComponent} from './modules/rotate/rotate.component';\n\nimport {ButtonComponent} from \"./modules/button/button.component\";\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [\n        ClickComponent,\n        SlideComponent,\n        RotateComponent,\n        SlideRegionComponent,\n        ButtonComponent,\n        // icons component\n        ArrowsIconComponent,\n        BtnDefaultIconComponent,\n        BtnErrorIconComponent,\n        BtnWarnIconComponent,\n        BtnSuccessIconComponent,\n        CloseIconComponent,\n        RefreshIconComponent,\n        LoadingIconComponent,\n    ],\n    providers: [],\n    exports: [\n        ClickComponent,\n        SlideComponent,\n        SlideRegionComponent,\n        RotateComponent,\n        ButtonComponent\n    ],\n})\nexport class GoCaptchaModule { }\n","/*\n * Public API Surface of go-captcha-angular\n */\n\nexport * from './lib/modules/button/button.component';\nexport * from './lib/modules/button/button-instance';\n\nexport * from './lib/modules/click/click.component';\nexport * from './lib/modules/click/click-instance';\n\nexport * from './lib/modules/slide/slide.component';\nexport * from './lib/modules/slide/slide-instance';\n\nexport * from './lib/modules/slide-region/slide-region.component';\nexport * from './lib/modules/slide-region/slide-region-instance';\n\nexport * from './lib/modules/rotate/rotate.component';\nexport * from './lib/modules/rotate/rotate-instance';\n\nexport * from './lib/go-captcha.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.BtnDefaultIconComponent","i3.BtnErrorIconComponent","i4.BtnWarnIconComponent","i5.BtnSuccessIconComponent","i2.CloseIconComponent","i3.RefreshIconComponent","i4.LoadingIconComponent","i1.ArrowsIconComponent","i1.CloseIconComponent","i2.RefreshIconComponent","i3.LoadingIconComponent"],"mappings":"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"}