go-captcha-angular
Version:
GoCaptcha for Angular, which implements click mode, slider mode, drag-drop mode and rotation mode.
1 lines • 102 kB
Source Map (JSON)
{"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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"}