fake-recaptcha 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Steven Qiang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,343 @@
1
+ # fake-recaptcha
2
+
3
+ [![npm version](https://img.shields.io/npm/v/fake-recaptcha.svg)](https://www.npmjs.com/package/fake-recaptcha)
4
+ [![npm downloads](https://img.shields.io/npm/dm/fake-recaptcha.svg)](https://www.npmjs.com/package/fake-recaptcha)
5
+ [![license](https://img.shields.io/npm/l/fake-recaptcha.svg)](https://github.com/Steven-Qiang/fake-recaptcha/blob/main/LICENSE)
6
+
7
+ 一个模仿 Google reCAPTCHA 的 Vue 3 验证码组件,外观和交互与真实的 reCAPTCHA 几乎一致,但验证逻辑完全可控(默认会按配置随机通过或失败)。
8
+
9
+ ![](screenshots/example.png)
10
+
11
+ ## 特性
12
+
13
+ - 完全模仿 Google reCAPTCHA 的界面
14
+ - 随机生成物体名称和验证码图片
15
+ - 可配置验证逻辑(尝试次数、通过概率、难度等)
16
+
17
+ ## 安装
18
+
19
+ ```bash
20
+ # npm
21
+ npm install fake-recaptcha
22
+
23
+ # yarn
24
+ yarn add fake-recaptcha
25
+
26
+ # pnpm
27
+ pnpm add fake-recaptcha
28
+ ```
29
+
30
+ ## 快速开始
31
+
32
+ ### 基础用法
33
+
34
+ ```vue
35
+ <template>
36
+ <div>
37
+ <FakeCaptcha />
38
+ </div>
39
+ </template>
40
+
41
+ <script setup lang="ts">
42
+ import FakeCaptcha from 'fake-recaptcha'
43
+ </script>
44
+ ```
45
+
46
+ ### 完整示例
47
+
48
+ ```vue
49
+ <template>
50
+ <div>
51
+ <FakeCaptcha
52
+ :config="captchaConfig"
53
+ :payload-list="payloadList"
54
+ @success="handleSuccess"
55
+ @error="handleError"
56
+ @verify="handleVerify"
57
+ />
58
+ </div>
59
+ </template>
60
+
61
+ <script setup lang="ts">
62
+ import type { CaptchaConfig, SuccessData, VerifyData } from 'fake-recaptcha'
63
+ import FakeCaptcha, { defaultCaptchaConfig } from 'fake-recaptcha'
64
+
65
+ // 准备验证码图片列表
66
+ const dynPayloadList: Record<string, string> = import.meta.glob(
67
+ './assets/payload/*.png',
68
+ {
69
+ eager: true,
70
+ query: '?url',
71
+ import: 'default',
72
+ },
73
+ )
74
+ const payloadList = Object.values(dynPayloadList)
75
+
76
+ // 自定义配置
77
+ const captchaConfig: CaptchaConfig = {
78
+ ...defaultCaptchaConfig,
79
+ maxAttempts: 3, // 最大尝试次数
80
+ passProbability: 20, // 通过概率 20%
81
+ difficulty: 'medium', // 难度级别
82
+ }
83
+
84
+ // 事件处理
85
+ function handleSuccess(data: SuccessData) {
86
+ console.log('验证成功', data)
87
+ // data: { attempt: 3, reason: 'max_attempts' | 'random_pass', difficulty: 'medium' }
88
+ }
89
+
90
+ function handleError(message: string) {
91
+ console.log('验证失败', message)
92
+ }
93
+
94
+ function handleVerify(data: VerifyData) {
95
+ console.log('验证尝试', data)
96
+ // data: { attempt: 1, selectedImages: ['1_1', '2_2'], difficulty: 'medium' }
97
+ }
98
+ </script>
99
+ ```
100
+
101
+ ## 配置选项
102
+
103
+ ### CaptchaConfig
104
+
105
+ ```typescript
106
+ interface CaptchaConfig {
107
+ // 最大尝试次数(0 表示永远不通过)
108
+ maxAttempts: number;
109
+
110
+ // 通过概率(0-100)
111
+ passProbability: number;
112
+
113
+ // 最小选择数量
114
+ minSelection: number;
115
+
116
+ // 是否显示成功消息
117
+ showSuccessMessage: boolean;
118
+
119
+ // 成功消息内容
120
+ successMessage: string;
121
+
122
+ // 失败消息内容
123
+ errorMessage: string;
124
+
125
+ // 难度级别:'easy' | 'medium' | 'hard'
126
+ difficulty: DifficultyLevel;
127
+
128
+ // 是否显示尝试次数
129
+ showAttemptCount: boolean;
130
+
131
+ // 成功后自动关闭
132
+ autoCloseOnSuccess: boolean;
133
+
134
+ // 失败后自动刷新
135
+ autoReloadOnFailure: boolean;
136
+
137
+ // 是否允许刷新按钮
138
+ allowReload: boolean;
139
+
140
+ // 自定义物体名称列表(优先使用)
141
+ customObjectNames: string[];
142
+ }
143
+ ```
144
+
145
+ ### 默认配置
146
+
147
+ ```typescript
148
+ const defaultCaptchaConfig = {
149
+ maxAttempts: 3,
150
+ passProbability: 20,
151
+ minSelection: 2,
152
+ showSuccessMessage: true,
153
+ successMessage: "验证成功!恭喜你通过了测试",
154
+ errorMessage: "请重试,再试一次吧",
155
+ difficulty: "medium",
156
+ showAttemptCount: false,
157
+ autoCloseOnSuccess: true,
158
+ autoReloadOnFailure: true,
159
+ allowReload: true,
160
+ customObjectNames: [],
161
+ };
162
+ ```
163
+
164
+ ## Props
165
+
166
+ | 名称 | 类型 | 默认值 | 说明 |
167
+ | ----------- | --------------- | ---------------------- | -------------- |
168
+ | config | `CaptchaConfig` | `defaultCaptchaConfig` | 验证码配置对象 |
169
+ | payloadList | `string[]` | `[]` | 验证码图片列表 |
170
+
171
+ ## 事件
172
+
173
+ ### @success
174
+
175
+ 验证成功时触发
176
+
177
+ ```typescript
178
+ interface SuccessData {
179
+ attempt: number; // 尝试次数
180
+ reason: "max_attempts" | "random_pass"; // 通过原因
181
+ difficulty: string; // 难度级别
182
+ }
183
+ ```
184
+
185
+ ### @error
186
+
187
+ 验证失败时触发
188
+
189
+ ```typescript
190
+ (message: string) => void
191
+ ```
192
+
193
+ ### @verify
194
+
195
+ 每次验证尝试时触发
196
+
197
+ ```typescript
198
+ interface VerifyData {
199
+ attempt: number; // 尝试次数
200
+ selectedImages: string[]; // 选中的图片
201
+ difficulty: string; // 难度级别
202
+ }
203
+ ```
204
+
205
+ ## 难度级别
206
+
207
+ - **easy**: 最小选择数量 1,通过概率 +20%
208
+ - **medium**: 使用配置的默认值
209
+ - **hard**: 最小选择数量至少 3,通过概率 -20%
210
+
211
+ ## 自定义物体名称
212
+
213
+ 可以通过配置自定义验证码中显示的物体名称:
214
+
215
+ ```vue
216
+ <script setup lang="ts">
217
+ import { defaultCaptchaConfig } from "fake-recaptcha";
218
+
219
+ const captchaConfig = {
220
+ ...defaultCaptchaConfig,
221
+ customObjectNames: ["猫", "狗", "汽车", "飞机"],
222
+ };
223
+ </script>
224
+ ```
225
+
226
+ 如果不设置,会使用内置的默认物体名称列表(包含公交车、消防栓、烟囱、山、飞机等官方定义的物体)。
227
+
228
+ ## 验证码图片
229
+
230
+ ### 使用爬虫工具抓取(推荐)
231
+
232
+ 项目提供了爬虫工具,可以自动抓取 Google reCAPTCHA 的验证码图片:
233
+
234
+ ```bash
235
+ # 进入 toolkit 目录
236
+ cd toolkit
237
+
238
+ # 安装依赖
239
+ pnpm install
240
+
241
+ # 安装 Playwright 浏览器
242
+ npx playwright install
243
+
244
+ # 运行爬虫
245
+ pnpm start
246
+ ```
247
+
248
+ 爬虫会:
249
+
250
+ - 自动访问 reCAPTCHA 演示页面
251
+ - 自动点击复选框触发验证码
252
+ - 监听网络请求,抓取 payload 图片
253
+ - 将抓取的图片保存到 `toolkit/payload` 目录
254
+ - 无限循环刷新,持续抓取新图片
255
+
256
+ ### 使用自己的图片
257
+
258
+ 准备验证码图片,然后通过 `payloadList` prop 传入:
259
+
260
+ ```vue
261
+ <script setup lang="ts">
262
+ const dynPayloadList = import.meta.glob("./assets/payload/*.png", {
263
+ eager: true,
264
+ query: "?url",
265
+ import: "default",
266
+ });
267
+ const payloadList = Object.values(dynPayloadList);
268
+ </script>
269
+ ```
270
+
271
+ 图片会按照 3x3 的网格进行分割显示,建议使用包含多个物体的场景图片。
272
+
273
+ ## 开发
274
+
275
+ ### 本地开发
276
+
277
+ ```bash
278
+ # 克隆项目
279
+ git clone https://github.com/Steven-Qiang/fake-recaptcha.git
280
+
281
+ # 进入项目目录
282
+ cd fake-recaptcha
283
+
284
+ # 安装依赖
285
+ pnpm install
286
+
287
+ # 构建库
288
+ pnpm run build
289
+ ```
290
+
291
+ ### 构建
292
+
293
+ ```bash
294
+ # 构建库
295
+ pnpm run build
296
+ ```
297
+
298
+ 输出目录:`dist/`
299
+
300
+ - `fake-recaptcha.es.js` - ES Module 版本
301
+ - `fake-recaptcha.cjs.js` - CommonJS 版本
302
+ - `index.d.ts` - TypeScript 类型定义
303
+ - `index.css` - 样式文件
304
+
305
+ ## 项目结构
306
+
307
+ ```
308
+ fake-recaptcha/
309
+ ├── src/ # 源代码
310
+ │ ├── assets/ # 静态资源
311
+ │ │ ├── icon/ # 图标
312
+ │ │ └── styles__ltr.css # 样式文件
313
+ │ ├── Captcha.vue # 核心验证码组件
314
+ │ ├── config.ts # 类型定义和默认配置
315
+ │ └── index.ts # 库入口文件
316
+ ├── demo/ # 演示项目
317
+ │ ├── src/
318
+ │ │ ├── App.vue # 演示应用
319
+ │ │ ├── main.ts # 演示入口
320
+ │ │ └── payload/ # 验证码图片
321
+ ├── toolkit/ # 工具目录
322
+ │ ├── crawler.js # reCAPTCHA 图片爬虫
323
+ │ ├── package.json # 爬虫工具配置
324
+ │ └── payload/ # 爬虫抓取的图片存储目录
325
+ ├── dist/ # 构建输出目录
326
+ ├── package.json # 项目配置
327
+ └── vite.config.ts # Vite 配置
328
+ ```
329
+
330
+ ## 技术栈
331
+
332
+ - Vue 3 + TypeScript + Composition API
333
+ - Vite 构建工具
334
+ - Rollup 打包
335
+
336
+ ## 注意事项
337
+
338
+ - 该组件仅供娱乐和学习使用
339
+ - 请勿用于生产环境或任何可能误导用户的场景
340
+
341
+ ## License
342
+
343
+ MIT
@@ -0,0 +1,20 @@
1
+ import { CaptchaConfig, SuccessData, VerifyData } from './config';
2
+ type __VLS_Props = {
3
+ config?: CaptchaConfig;
4
+ payloadList?: string[];
5
+ };
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ verify: (data: VerifyData) => any;
8
+ success: (data: SuccessData) => any;
9
+ error: (message: string) => any;
10
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onVerify?: ((data: VerifyData) => any) | undefined;
12
+ onSuccess?: ((data: SuccessData) => any) | undefined;
13
+ onError?: ((message: string) => any) | undefined;
14
+ }>, {
15
+ config: CaptchaConfig;
16
+ payloadList: string[];
17
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
18
+ container: HTMLDivElement;
19
+ }, HTMLDivElement>;
20
+ export default _default;
@@ -0,0 +1,30 @@
1
+ export type DifficultyLevel = 'easy' | 'medium' | 'hard';
2
+ export type PassReason = 'max_attempts' | 'random_pass';
3
+ export interface CaptchaConfig {
4
+ maxAttempts: number;
5
+ passProbability: number;
6
+ minSelection: number;
7
+ showSuccessMessage: boolean;
8
+ successMessage: string;
9
+ errorMessage: string;
10
+ difficulty: DifficultyLevel;
11
+ showAttemptCount: boolean;
12
+ autoCloseOnSuccess: boolean;
13
+ autoReloadOnFailure: boolean;
14
+ allowReload: boolean;
15
+ customObjectNames: string[];
16
+ }
17
+ export interface SuccessData {
18
+ attempt: number;
19
+ reason: PassReason;
20
+ difficulty: DifficultyLevel;
21
+ [key: string]: any;
22
+ }
23
+ export interface VerifyData {
24
+ attempt: number;
25
+ selectedImages: string[];
26
+ difficulty: DifficultyLevel;
27
+ [key: string]: any;
28
+ }
29
+ export declare const defaultCaptchaConfig: CaptchaConfig;
30
+ export declare function mergeCaptchaConfig(config: Partial<CaptchaConfig>): CaptchaConfig;
@@ -0,0 +1 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});require('./index.css');let e=require(`vue`);var t={maxAttempts:3,passProbability:20,minSelection:2,showSuccessMessage:!0,successMessage:`验证成功!恭喜你通过了测试`,errorMessage:`请重试,再试一次吧`,difficulty:`medium`,showAttemptCount:!1,autoCloseOnSuccess:!0,autoReloadOnFailure:!0,allowReload:!0,customObjectNames:[]};function n(e){return{...t,...e}}var r={class:`captcha-container`},i={id:`recaptcha-accessible-status`,class:`rc-anchor-aria-status`,"aria-hidden":`true`},a={class:`rc-anchor-content`},o={class:`rc-inline-block`},s={class:`rc-anchor-center-container`},c={class:`rc-anchor-center-item rc-anchor-checkbox-holder`},l=[`aria-checked`,`aria-disabled`],u={class:`recaptcha-checkbox-border`,role:`presentation`},d={class:`recaptcha-checkbox-spinner spinner`,role:`presentation`},f={class:`rc-inline-block`},p={class:`rc-anchor-center-container`},m={id:`recaptcha-anchor-label`,class:`rc-anchor-center-item rc-anchor-checkbox-label`,"aria-hidden":`true`,role:`presentation`},h={class:`g-recaptcha-bubble-arrow outer-arrow`},g={class:`g-recaptcha-bubble-arrow inner-arrow`},_={id:`rc-imageselect`},v={id:`rc-imageselect`},ee={class:`rc-imageselect-payload`},te={class:`rc-imageselect-instructions`},ne={class:`rc-imageselect-desc-wrapper`},re={class:`rc-imageselect-desc-no-canonical`},ie={class:`object-name`},ae={key:0,class:`attempt-count`},oe={class:`rc-imageselect-challenge`},se={id:`rc-imageselect-target`,class:`rc-imageselect-target`,dir:`ltr`,role:`presentation`,"aria-hidden":`true`},ce={class:`rc-imageselect-table-33`},le=[`onClick`],ue={class:`rc-image-tile-target`},de=[`src`],fe={class:`rc-imageselect-error-select-more`},pe={class:`rc-footer`},me={class:`rc-controls`},he={class:`primary-controls`},ge={class:`rc-buttons`},_e={key:0,class:`button-holder reload-button-holder`},y={class:`verify-button-holder`},b=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})((0,e.defineComponent)({__name:`Captcha`,props:{config:{default:()=>t},payloadList:{default:void 0}},emits:[`verify`,`success`,`error`],setup(t,{emit:n}){let b=t,x=n;function S(e){return new Promise(t=>setTimeout(t,e))}let C=`公交车,消防栓,烟囱,山,飞机,过街人行道,桥,自行车,停止标志,路标,店铺门面,植物,花,树木,棕榈树,水域,河流,海滩,天空,小轿车,船,出租车,校车,火车,雕像,喷泉,柱子,房屋,公寓楼,广告牌,道路,人行横道,红绿灯,公交站,锥形交通路标,停车计时器,拖拉机`.split(`,`),w=b.payloadList||[];function T(e){return e[Math.floor(Math.random()*e.length)]}function E(){return T(w)}function D(){return T(b.config.customObjectNames.length>0?b.config.customObjectNames:C)}let O=(0,e.ref)(!1),k=(0,e.ref)(!1),A=(0,e.ref)(!1),j=(0,e.ref)(!1),M=(0,e.ref)([]),N=(0,e.ref)(126),P=(0,e.ref)(``),F=(0,e.ref)(D()),I=(0,e.ref)(E()),L=(0,e.useTemplateRef)(`container`),R=(0,e.ref)(0),z=(0,e.ref)(!1),B=(0,e.ref)(``),V=(0,e.ref)(!1),H=(0,e.ref)(!1),U=(0,e.ref)(!1),W={rows:3,cols:3},ve=(0,e.computed)(()=>z.value?`recaptcha-checkbox-checked`:U.value?`recaptcha-checkbox-active`:V.value?`recaptcha-checkbox-hover`:H.value?`recaptcha-checkbox-focused`:``);function G(e){V.value=e}function K(e){U.value=e}function q(e){H.value=e}function J(){switch(b.config.difficulty){case`easy`:return{minSelection:1,passProbability:b.config.passProbability+20};case`hard`:return{minSelection:Math.max(3,b.config.minSelection),passProbability:Math.max(0,b.config.passProbability-20)};default:return{minSelection:b.config.minSelection,passProbability:b.config.passProbability}}}let Y=(0,e.ref)({backgroundColor:`rgb(255, 255, 255)`,border:`1px solid rgb(204, 204, 204)`,boxShadow:`rgb(0 0 0 / 20%) 2px 2px 3px`,position:`absolute`,transition:`visibility 0s linear 0s, opacity 0.3s linear 0s`,opacity:`1`,zIndex:`2000000000`,visibility:`hidden`});async function X(){let e=I.value,t=F.value;for(;I.value===e;)I.value=E();for(;F.value===t;)F.value=D()}async function Z(){M.value=[],A.value=!0,await S(800),await X(),A.value=!1}async function Q(e){P.value=e,await S(1e3),P.value=``}async function ye(){B.value=b.config.successMessage,await S(1500),B.value=``}async function be(){z.value||(k.value=!0,await X(),await S(300),O.value=!0,await S(300),k.value=!1)}async function xe(){if(z.value)return;let e=J();if(M.value.length<e.minSelection)return x(`error`,`请选择足够的图片`),Q(`rc-imageselect-error-select-more`);R.value++,x(`verify`,{attempt:R.value,selectedImages:M.value,difficulty:b.config.difficulty});let t=b.config.maxAttempts>0&&R.value>=b.config.maxAttempts,n=e.passProbability>0&&Math.random()*100<e.passProbability;t||n?(z.value=!0,A.value=!0,await S(1e3),b.config.showSuccessMessage&&await ye(),b.config.autoCloseOnSuccess&&(O.value=!1),A.value=!1,x(`success`,{attempt:R.value,reason:t?`max_attempts`:`random_pass`,difficulty:b.config.difficulty})):(A.value=!0,await S(1e3),await Q(`rc-imageselect-incorrect-response`),b.config.autoReloadOnFailure&&await Z(),x(`error`,`验证失败`))}function Se(e){A.value||z.value||(M.value.includes(e)?M.value=M.value.filter(t=>t!==e):M.value.push(e))}function $(){if(!L.value)return;let e=L.value.getBoundingClientRect(),t=Y.value,n=window.innerWidth<470;if(j.value=!n,n){let n=window.innerWidth;t.width=`${n-10}px`,N.value=Math.floor((n-10)/3)-7.55555,t.left=`50%`,t.transform=`translateX(-50%)`,t.top=`${e.top+2}px`,delete t.right,delete t.margin}else t.width=`408px`,N.value=128.5,t.left=`${e.left+51}px`,t.top=`${e.top+2}px`,delete t.transform,delete t.right,delete t.margin}return(0,e.onMounted)(()=>{window.addEventListener(`resize`,()=>{O.value&&$()})}),(0,e.watch)(O,e=>{$();let t=Y.value;t.visibility=e?`visible`:`hidden`,t.opacity=e?`1`:`0`,t.transition=e?`visibility 0s linear 0s, opacity 0.3s linear`:`visibility 0s linear 0.3s, opacity 0.3s linear`}),(0,e.watch)(()=>b.config,async()=>{F.value=D(),R.value=0,z.value=!1,M.value=[],P.value=``,B.value=``,A.value=!1,O.value&&await X()},{deep:!0}),(0,e.watch)(()=>b.payloadList,async()=>{O.value&&await X()},{deep:!0}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,r,[(0,e.createElementVNode)(`div`,{ref:`container`,class:`captcha-box`,onClick:be},[n[12]||=(0,e.createElementVNode)(`div`,{id:`rc-anchor-alert`,class:`rc-anchor-alert`},null,-1),(0,e.createElementVNode)(`div`,{id:`rc-anchor-container`,class:(0,e.normalizeClass)([`rc-anchor rc-anchor-normal rc-anchor-light`,{"rc-anchor-checked":z.value}])},[(0,e.createElementVNode)(`div`,i,(0,e.toDisplayString)(z.value?`验证成功`:`Recaptcha 要求验证.`),1),n[10]||=(0,e.createElementVNode)(`div`,{class:`rc-anchor-error-msg-container`},[(0,e.createElementVNode)(`span`,{class:`rc-anchor-error-msg`,"aria-hidden":`true`})],-1),(0,e.createElementVNode)(`div`,a,[(0,e.createElementVNode)(`div`,o,[(0,e.createElementVNode)(`div`,s,[(0,e.createElementVNode)(`div`,c,[(0,e.createElementVNode)(`span`,{id:`recaptcha-anchor`,class:(0,e.normalizeClass)([`recaptcha-checkbox goog-inline-block rc-anchor-checkbox`,[ve.value,{"recaptcha-checkbox-checked":z.value,"recaptcha-checkbox-unchecked":!z.value}]]),role:`checkbox`,"aria-checked":z.value,dir:`ltr`,"aria-labelledby":`recaptcha-anchor-label`,"aria-disabled":z.value,tabindex:`0`,onMouseenter:n[0]||=e=>G(!0),onMouseleave:n[1]||=e=>G(!1),onMousedown:n[2]||=e=>K(!0),onMouseup:n[3]||=e=>K(!1),onFocus:n[4]||=e=>q(!0),onBlur:n[5]||=e=>q(!1)},[(0,e.withDirectives)((0,e.createElementVNode)(`div`,u,null,512),[[e.vShow,!k.value&&!z.value]]),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`recaptcha-checkbox-borderAnimation`,{loading:k.value}]),role:`presentation`},null,2),(0,e.withDirectives)((0,e.createElementVNode)(`div`,d,[...n[7]||=[(0,e.createElementVNode)(`div`,{class:`recaptcha-checkbox-spinner-overlay`},null,-1)]],512),[[e.vShow,k.value]]),n[8]||=(0,e.createElementVNode)(`div`,{class:`recaptcha-checkbox-checkmark`,role:`presentation`},null,-1)],42,l)])])]),(0,e.createElementVNode)(`div`,f,[(0,e.createElementVNode)(`div`,p,[(0,e.createElementVNode)(`label`,m,[n[9]||=(0,e.createElementVNode)(`span`,{"aria-live":`polite`,"aria-labelledby":`recaptcha-accessible-status`},null,-1),(0,e.createTextVNode)((0,e.toDisplayString)(z.value?`验证成功`:`进行人机身份验证`),1)])])])]),n[11]||=(0,e.createElementVNode)(`div`,{class:`rc-anchor-normal-footer`},[(0,e.createElementVNode)(`div`,{class:`rc-anchor-logo-portrait`,"aria-hidden":`true`,role:`presentation`},[(0,e.createElementVNode)(`div`,{class:`rc-anchor-logo-img rc-anchor-logo-img-portrait`}),(0,e.createElementVNode)(`div`,{class:`rc-anchor-logo-text`},` reCAPTCHA `)]),(0,e.createElementVNode)(`div`,{class:`rc-anchor-pt`},[(0,e.createElementVNode)(`a`,{href:`https://www.google.com/intl/zh-CN/policies/privacy/`,target:`_blank`},`隐私权`),(0,e.createElementVNode)(`span`,{"aria-hidden":`true`,role:`presentation`},` - `),(0,e.createElementVNode)(`a`,{href:`https://www.google.com/intl/zh-CN/policies/terms/`,target:`_blank`},`使用条款`)])],-1)],2)],512),(0,e.withDirectives)((0,e.createElementVNode)(`div`,{class:`captcha-overlay`,onClick:n[6]||=e=>O.value=!1},null,512),[[e.vShow,O.value]]),(0,e.createElementVNode)(`div`,{class:`captcha-selector`,style:(0,e.normalizeStyle)(Y.value)},[(0,e.withDirectives)((0,e.createElementVNode)(`div`,h,null,512),[[e.vShow,j.value]]),(0,e.withDirectives)((0,e.createElementVNode)(`div`,g,null,512),[[e.vShow,j.value]]),(0,e.createElementVNode)(`div`,_,[(0,e.createElementVNode)(`div`,v,[n[21]||=(0,e.createElementVNode)(`div`,{class:`rc-imageselect-response-field`},null,-1),n[22]||=(0,e.createElementVNode)(`span`,{class:`rc-imageselect-tabloop-begin`,tabindex:`0`},null,-1),(0,e.createElementVNode)(`div`,ee,[(0,e.createElementVNode)(`div`,te,[(0,e.createElementVNode)(`div`,ne,[(0,e.createElementVNode)(`div`,re,[n[13]||=(0,e.createTextVNode)(` 选择所有包含`,-1),(0,e.createElementVNode)(`strong`,ie,(0,e.toDisplayString)(F.value),1),n[14]||=(0,e.createTextVNode)(`的所有图片 `,-1)]),b.config.showAttemptCount?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ae,` 尝试次数: `+(0,e.toDisplayString)(R.value)+(0,e.toDisplayString)(b.config.maxAttempts>0?`/${b.config.maxAttempts}`:``),1)):(0,e.createCommentVNode)(``,!0)]),n[15]||=(0,e.createElementVNode)(`div`,{class:`rc-imageselect-progress`},null,-1)]),(0,e.createElementVNode)(`div`,oe,[(0,e.createElementVNode)(`div`,se,[(0,e.createElementVNode)(`table`,ce,[(0,e.createElementVNode)(`tbody`,null,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(W.rows,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`tr`,{key:t},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(W.cols,r=>((0,e.openBlock)(),(0,e.createElementBlock)(`td`,{key:r,role:`button`,tabindex:`0`,class:(0,e.normalizeClass)([`rc-imageselect-tile`,{"rc-imageselect-tileselected":M.value.includes(`${t}_${r}`)}]),"aria-label":`图片验证`,onClick:e=>Se(`${t}_${r}`)},[(0,e.createElementVNode)(`div`,ue,[(0,e.createElementVNode)(`div`,{class:`rc-image-tile-wrapper`,style:(0,e.normalizeStyle)({width:`${N.value}px`,height:`${N.value}px`})},[(0,e.createElementVNode)(`img`,{class:`rc-image-tile-33`,src:I.value,style:(0,e.normalizeStyle)({top:`-${(t-1)*100}%`,left:`-${(r-1)*100}%`})},null,12,de),n[16]||=(0,e.createElementVNode)(`div`,{class:`rc-image-tile-overlay`},null,-1)],4),n[17]||=(0,e.createElementVNode)(`div`,{class:`rc-imageselect-checkbox`},null,-1)])],10,le))),128))]))),128))])])])]),(0,e.withDirectives)((0,e.createElementVNode)(`div`,{class:`rc-imageselect-incorrect-response`},(0,e.toDisplayString)(b.config.errorMessage),513),[[e.vShow,P.value===`rc-imageselect-incorrect-response`]]),(0,e.withDirectives)((0,e.createElementVNode)(`div`,fe,` 请选择所有相符的图片。 `,512),[[e.vShow,P.value===`rc-imageselect-error-select-more`]]),(0,e.withDirectives)((0,e.createElementVNode)(`div`,{class:`rc-imageselect-success-response`},(0,e.toDisplayString)(B.value),513),[[e.vShow,B.value]])]),(0,e.createElementVNode)(`div`,pe,[n[20]||=(0,e.createElementVNode)(`div`,{class:`rc-separator`},null,-1),(0,e.createElementVNode)(`div`,me,[(0,e.createElementVNode)(`div`,he,[(0,e.createElementVNode)(`div`,ge,[b.config.allowReload?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,_e,[(0,e.createElementVNode)(`button`,{id:`recaptcha-reload-button`,class:`rc-button goog-inline-block rc-button-reload`,title:`换一个新的验证码`,value:``,tabindex:`0`,onClick:Z})])):(0,e.createCommentVNode)(``,!0),n[18]||=(0,e.createElementVNode)(`div`,{class:`button-holder help-button-holder`},[(0,e.createElementVNode)(`a`,{id:`recaptcha-help-button`,href:`https://support.google.com/recaptcha/?hl=en`,target:`_blank`,rel:`noopener noreferrer`,class:`rc-button goog-inline-block rc-button-help`,title:`帮助`,value:``,tabindex:`0`})],-1)]),(0,e.createElementVNode)(`div`,y,[(0,e.createElementVNode)(`button`,{id:`recaptcha-verify-button`,class:(0,e.normalizeClass)([`rc-button-default goog-inline-block`,{"rc-button-default-disabled":A.value}]),title:``,value:``,tabindex:`0`,onClick:xe},` 验证 `,2)])]),n[19]||=(0,e.createElementVNode)(`div`,{class:`rc-challenge-help`,tabindex:`0`},null,-1)])]),n[23]||=(0,e.createElementVNode)(`span`,{class:`rc-imageselect-tabloop-end`,tabindex:`0`},null,-1)])])],4)]))}}),[[`__scopeId`,`data-v-f472e7c2`]]);exports.default=b,exports.defaultCaptchaConfig=t,exports.mergeCaptchaConfig=n;
@@ -0,0 +1,330 @@
1
+ import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, defineComponent as o, normalizeClass as s, normalizeStyle as c, onMounted as ee, openBlock as l, ref as u, renderList as d, toDisplayString as f, useTemplateRef as te, vShow as p, watch as m, withDirectives as h } from "vue";
2
+ import './index.css';//#region src/config.ts
3
+ var g = {
4
+ maxAttempts: 3,
5
+ passProbability: 20,
6
+ minSelection: 2,
7
+ showSuccessMessage: !0,
8
+ successMessage: "验证成功!恭喜你通过了测试",
9
+ errorMessage: "请重试,再试一次吧",
10
+ difficulty: "medium",
11
+ showAttemptCount: !1,
12
+ autoCloseOnSuccess: !0,
13
+ autoReloadOnFailure: !0,
14
+ allowReload: !0,
15
+ customObjectNames: []
16
+ };
17
+ function _(e) {
18
+ return {
19
+ ...g,
20
+ ...e
21
+ };
22
+ }
23
+ //#endregion
24
+ //#region src/Captcha.vue?vue&type=script&setup=true&lang.ts
25
+ var ne = { class: "captcha-container" }, v = {
26
+ id: "recaptcha-accessible-status",
27
+ class: "rc-anchor-aria-status",
28
+ "aria-hidden": "true"
29
+ }, re = { class: "rc-anchor-content" }, ie = { class: "rc-inline-block" }, ae = { class: "rc-anchor-center-container" }, oe = { class: "rc-anchor-center-item rc-anchor-checkbox-holder" }, se = ["aria-checked", "aria-disabled"], ce = {
30
+ class: "recaptcha-checkbox-border",
31
+ role: "presentation"
32
+ }, le = {
33
+ class: "recaptcha-checkbox-spinner spinner",
34
+ role: "presentation"
35
+ }, ue = { class: "rc-inline-block" }, de = { class: "rc-anchor-center-container" }, fe = {
36
+ id: "recaptcha-anchor-label",
37
+ class: "rc-anchor-center-item rc-anchor-checkbox-label",
38
+ "aria-hidden": "true",
39
+ role: "presentation"
40
+ }, pe = { class: "g-recaptcha-bubble-arrow outer-arrow" }, me = { class: "g-recaptcha-bubble-arrow inner-arrow" }, he = { id: "rc-imageselect" }, ge = { id: "rc-imageselect" }, _e = { class: "rc-imageselect-payload" }, ve = { class: "rc-imageselect-instructions" }, ye = { class: "rc-imageselect-desc-wrapper" }, be = { class: "rc-imageselect-desc-no-canonical" }, xe = { class: "object-name" }, Se = {
41
+ key: 0,
42
+ class: "attempt-count"
43
+ }, Ce = { class: "rc-imageselect-challenge" }, we = {
44
+ id: "rc-imageselect-target",
45
+ class: "rc-imageselect-target",
46
+ dir: "ltr",
47
+ role: "presentation",
48
+ "aria-hidden": "true"
49
+ }, Te = { class: "rc-imageselect-table-33" }, Ee = ["onClick"], De = { class: "rc-image-tile-target" }, Oe = ["src"], ke = { class: "rc-imageselect-error-select-more" }, Ae = { class: "rc-footer" }, y = { class: "rc-controls" }, b = { class: "primary-controls" }, x = { class: "rc-buttons" }, S = {
50
+ key: 0,
51
+ class: "button-holder reload-button-holder"
52
+ }, C = { class: "verify-button-holder" }, w = /* @__PURE__ */ ((e, t) => {
53
+ let n = e.__vccOpts || e;
54
+ for (let [e, r] of t) n[e] = r;
55
+ return n;
56
+ })(/* @__PURE__ */ o({
57
+ __name: "Captcha",
58
+ props: {
59
+ config: { default: () => g },
60
+ payloadList: { default: void 0 }
61
+ },
62
+ emits: [
63
+ "verify",
64
+ "success",
65
+ "error"
66
+ ],
67
+ setup(o, { emit: g }) {
68
+ let _ = o, w = g;
69
+ function T(e) {
70
+ return new Promise((t) => setTimeout(t, e));
71
+ }
72
+ let je = "公交车,消防栓,烟囱,山,飞机,过街人行道,桥,自行车,停止标志,路标,店铺门面,植物,花,树木,棕榈树,水域,河流,海滩,天空,小轿车,船,出租车,校车,火车,雕像,喷泉,柱子,房屋,公寓楼,广告牌,道路,人行横道,红绿灯,公交站,锥形交通路标,停车计时器,拖拉机".split(","), Me = _.payloadList || [];
73
+ function E(e) {
74
+ return e[Math.floor(Math.random() * e.length)];
75
+ }
76
+ function D() {
77
+ return E(Me);
78
+ }
79
+ function O() {
80
+ return E(_.config.customObjectNames.length > 0 ? _.config.customObjectNames : je);
81
+ }
82
+ let k = u(!1), A = u(!1), j = u(!1), M = u(!1), N = u([]), P = u(126), F = u(""), I = u(O()), L = u(D()), R = te("container"), z = u(0), B = u(!1), V = u(""), H = u(!1), U = u(!1), W = u(!1), G = {
83
+ rows: 3,
84
+ cols: 3
85
+ }, Ne = t(() => B.value ? "recaptcha-checkbox-checked" : W.value ? "recaptcha-checkbox-active" : H.value ? "recaptcha-checkbox-hover" : U.value ? "recaptcha-checkbox-focused" : "");
86
+ function K(e) {
87
+ H.value = e;
88
+ }
89
+ function q(e) {
90
+ W.value = e;
91
+ }
92
+ function J(e) {
93
+ U.value = e;
94
+ }
95
+ function Pe() {
96
+ switch (_.config.difficulty) {
97
+ case "easy": return {
98
+ minSelection: 1,
99
+ passProbability: _.config.passProbability + 20
100
+ };
101
+ case "hard": return {
102
+ minSelection: Math.max(3, _.config.minSelection),
103
+ passProbability: Math.max(0, _.config.passProbability - 20)
104
+ };
105
+ default: return {
106
+ minSelection: _.config.minSelection,
107
+ passProbability: _.config.passProbability
108
+ };
109
+ }
110
+ }
111
+ let Y = u({
112
+ backgroundColor: "rgb(255, 255, 255)",
113
+ border: "1px solid rgb(204, 204, 204)",
114
+ boxShadow: "rgb(0 0 0 / 20%) 2px 2px 3px",
115
+ position: "absolute",
116
+ transition: "visibility 0s linear 0s, opacity 0.3s linear 0s",
117
+ opacity: "1",
118
+ zIndex: "2000000000",
119
+ visibility: "hidden"
120
+ });
121
+ async function X() {
122
+ let e = L.value, t = I.value;
123
+ for (; L.value === e;) L.value = D();
124
+ for (; I.value === t;) I.value = O();
125
+ }
126
+ async function Z() {
127
+ N.value = [], j.value = !0, await T(800), await X(), j.value = !1;
128
+ }
129
+ async function Q(e) {
130
+ F.value = e, await T(1e3), F.value = "";
131
+ }
132
+ async function Fe() {
133
+ V.value = _.config.successMessage, await T(1500), V.value = "";
134
+ }
135
+ async function Ie() {
136
+ B.value || (A.value = !0, await X(), await T(300), k.value = !0, await T(300), A.value = !1);
137
+ }
138
+ async function Le() {
139
+ if (B.value) return;
140
+ let e = Pe();
141
+ if (N.value.length < e.minSelection) return w("error", "请选择足够的图片"), Q("rc-imageselect-error-select-more");
142
+ z.value++, w("verify", {
143
+ attempt: z.value,
144
+ selectedImages: N.value,
145
+ difficulty: _.config.difficulty
146
+ });
147
+ let t = _.config.maxAttempts > 0 && z.value >= _.config.maxAttempts, n = e.passProbability > 0 && Math.random() * 100 < e.passProbability;
148
+ t || n ? (B.value = !0, j.value = !0, await T(1e3), _.config.showSuccessMessage && await Fe(), _.config.autoCloseOnSuccess && (k.value = !1), j.value = !1, w("success", {
149
+ attempt: z.value,
150
+ reason: t ? "max_attempts" : "random_pass",
151
+ difficulty: _.config.difficulty
152
+ })) : (j.value = !0, await T(1e3), await Q("rc-imageselect-incorrect-response"), _.config.autoReloadOnFailure && await Z(), w("error", "验证失败"));
153
+ }
154
+ function Re(e) {
155
+ j.value || B.value || (N.value.includes(e) ? N.value = N.value.filter((t) => t !== e) : N.value.push(e));
156
+ }
157
+ function $() {
158
+ if (!R.value) return;
159
+ let e = R.value.getBoundingClientRect(), t = Y.value, n = window.innerWidth < 470;
160
+ if (M.value = !n, n) {
161
+ let n = window.innerWidth;
162
+ t.width = `${n - 10}px`, P.value = Math.floor((n - 10) / 3) - 7.55555, t.left = "50%", t.transform = "translateX(-50%)", t.top = `${e.top + 2}px`, delete t.right, delete t.margin;
163
+ } else t.width = "408px", P.value = 128.5, t.left = `${e.left + 51}px`, t.top = `${e.top + 2}px`, delete t.transform, delete t.right, delete t.margin;
164
+ }
165
+ return ee(() => {
166
+ window.addEventListener("resize", () => {
167
+ k.value && $();
168
+ });
169
+ }), m(k, (e) => {
170
+ $();
171
+ let t = Y.value;
172
+ t.visibility = e ? "visible" : "hidden", t.opacity = e ? "1" : "0", t.transition = e ? "visibility 0s linear 0s, opacity 0.3s linear" : "visibility 0s linear 0.3s, opacity 0.3s linear";
173
+ }), m(() => _.config, async () => {
174
+ I.value = O(), z.value = 0, B.value = !1, N.value = [], F.value = "", V.value = "", j.value = !1, k.value && await X();
175
+ }, { deep: !0 }), m(() => _.payloadList, async () => {
176
+ k.value && await X();
177
+ }, { deep: !0 }), (t, o) => (l(), r("div", ne, [
178
+ i("div", {
179
+ ref: "container",
180
+ class: "captcha-box",
181
+ onClick: Ie
182
+ }, [o[12] ||= i("div", {
183
+ id: "rc-anchor-alert",
184
+ class: "rc-anchor-alert"
185
+ }, null, -1), i("div", {
186
+ id: "rc-anchor-container",
187
+ class: s(["rc-anchor rc-anchor-normal rc-anchor-light", { "rc-anchor-checked": B.value }])
188
+ }, [
189
+ i("div", v, f(B.value ? "验证成功" : "Recaptcha 要求验证."), 1),
190
+ o[10] ||= i("div", { class: "rc-anchor-error-msg-container" }, [i("span", {
191
+ class: "rc-anchor-error-msg",
192
+ "aria-hidden": "true"
193
+ })], -1),
194
+ i("div", re, [i("div", ie, [i("div", ae, [i("div", oe, [i("span", {
195
+ id: "recaptcha-anchor",
196
+ class: s(["recaptcha-checkbox goog-inline-block rc-anchor-checkbox", [Ne.value, {
197
+ "recaptcha-checkbox-checked": B.value,
198
+ "recaptcha-checkbox-unchecked": !B.value
199
+ }]]),
200
+ role: "checkbox",
201
+ "aria-checked": B.value,
202
+ dir: "ltr",
203
+ "aria-labelledby": "recaptcha-anchor-label",
204
+ "aria-disabled": B.value,
205
+ tabindex: "0",
206
+ onMouseenter: o[0] ||= (e) => K(!0),
207
+ onMouseleave: o[1] ||= (e) => K(!1),
208
+ onMousedown: o[2] ||= (e) => q(!0),
209
+ onMouseup: o[3] ||= (e) => q(!1),
210
+ onFocus: o[4] ||= (e) => J(!0),
211
+ onBlur: o[5] ||= (e) => J(!1)
212
+ }, [
213
+ h(i("div", ce, null, 512), [[p, !A.value && !B.value]]),
214
+ i("div", {
215
+ class: s(["recaptcha-checkbox-borderAnimation", { loading: A.value }]),
216
+ role: "presentation"
217
+ }, null, 2),
218
+ h(i("div", le, [...o[7] ||= [i("div", { class: "recaptcha-checkbox-spinner-overlay" }, null, -1)]], 512), [[p, A.value]]),
219
+ o[8] ||= i("div", {
220
+ class: "recaptcha-checkbox-checkmark",
221
+ role: "presentation"
222
+ }, null, -1)
223
+ ], 42, se)])])]), i("div", ue, [i("div", de, [i("label", fe, [o[9] ||= i("span", {
224
+ "aria-live": "polite",
225
+ "aria-labelledby": "recaptcha-accessible-status"
226
+ }, null, -1), a(f(B.value ? "验证成功" : "进行人机身份验证"), 1)])])])]),
227
+ o[11] ||= i("div", { class: "rc-anchor-normal-footer" }, [i("div", {
228
+ class: "rc-anchor-logo-portrait",
229
+ "aria-hidden": "true",
230
+ role: "presentation"
231
+ }, [i("div", { class: "rc-anchor-logo-img rc-anchor-logo-img-portrait" }), i("div", { class: "rc-anchor-logo-text" }, " reCAPTCHA ")]), i("div", { class: "rc-anchor-pt" }, [
232
+ i("a", {
233
+ href: "https://www.google.com/intl/zh-CN/policies/privacy/",
234
+ target: "_blank"
235
+ }, "隐私权"),
236
+ i("span", {
237
+ "aria-hidden": "true",
238
+ role: "presentation"
239
+ }, " - "),
240
+ i("a", {
241
+ href: "https://www.google.com/intl/zh-CN/policies/terms/",
242
+ target: "_blank"
243
+ }, "使用条款")
244
+ ])], -1)
245
+ ], 2)], 512),
246
+ h(i("div", {
247
+ class: "captcha-overlay",
248
+ onClick: o[6] ||= (e) => k.value = !1
249
+ }, null, 512), [[p, k.value]]),
250
+ i("div", {
251
+ class: "captcha-selector",
252
+ style: c(Y.value)
253
+ }, [
254
+ h(i("div", pe, null, 512), [[p, M.value]]),
255
+ h(i("div", me, null, 512), [[p, M.value]]),
256
+ i("div", he, [i("div", ge, [
257
+ o[21] ||= i("div", { class: "rc-imageselect-response-field" }, null, -1),
258
+ o[22] ||= i("span", {
259
+ class: "rc-imageselect-tabloop-begin",
260
+ tabindex: "0"
261
+ }, null, -1),
262
+ i("div", _e, [
263
+ i("div", ve, [i("div", ye, [i("div", be, [
264
+ o[13] ||= a(" 选择所有包含", -1),
265
+ i("strong", xe, f(I.value), 1),
266
+ o[14] ||= a("的所有图片 ", -1)
267
+ ]), _.config.showAttemptCount ? (l(), r("div", Se, " 尝试次数: " + f(z.value) + f(_.config.maxAttempts > 0 ? `/${_.config.maxAttempts}` : ""), 1)) : n("", !0)]), o[15] ||= i("div", { class: "rc-imageselect-progress" }, null, -1)]),
268
+ i("div", Ce, [i("div", we, [i("table", Te, [i("tbody", null, [(l(!0), r(e, null, d(G.rows, (t) => (l(), r("tr", { key: t }, [(l(!0), r(e, null, d(G.cols, (e) => (l(), r("td", {
269
+ key: e,
270
+ role: "button",
271
+ tabindex: "0",
272
+ class: s(["rc-imageselect-tile", { "rc-imageselect-tileselected": N.value.includes(`${t}_${e}`) }]),
273
+ "aria-label": "图片验证",
274
+ onClick: (n) => Re(`${t}_${e}`)
275
+ }, [i("div", De, [i("div", {
276
+ class: "rc-image-tile-wrapper",
277
+ style: c({
278
+ width: `${P.value}px`,
279
+ height: `${P.value}px`
280
+ })
281
+ }, [i("img", {
282
+ class: "rc-image-tile-33",
283
+ src: L.value,
284
+ style: c({
285
+ top: `-${(t - 1) * 100}%`,
286
+ left: `-${(e - 1) * 100}%`
287
+ })
288
+ }, null, 12, Oe), o[16] ||= i("div", { class: "rc-image-tile-overlay" }, null, -1)], 4), o[17] ||= i("div", { class: "rc-imageselect-checkbox" }, null, -1)])], 10, Ee))), 128))]))), 128))])])])]),
289
+ h(i("div", { class: "rc-imageselect-incorrect-response" }, f(_.config.errorMessage), 513), [[p, F.value === "rc-imageselect-incorrect-response"]]),
290
+ h(i("div", ke, " 请选择所有相符的图片。 ", 512), [[p, F.value === "rc-imageselect-error-select-more"]]),
291
+ h(i("div", { class: "rc-imageselect-success-response" }, f(V.value), 513), [[p, V.value]])
292
+ ]),
293
+ i("div", Ae, [o[20] ||= i("div", { class: "rc-separator" }, null, -1), i("div", y, [i("div", b, [i("div", x, [_.config.allowReload ? (l(), r("div", S, [i("button", {
294
+ id: "recaptcha-reload-button",
295
+ class: "rc-button goog-inline-block rc-button-reload",
296
+ title: "换一个新的验证码",
297
+ value: "",
298
+ tabindex: "0",
299
+ onClick: Z
300
+ })])) : n("", !0), o[18] ||= i("div", { class: "button-holder help-button-holder" }, [i("a", {
301
+ id: "recaptcha-help-button",
302
+ href: "https://support.google.com/recaptcha/?hl=en",
303
+ target: "_blank",
304
+ rel: "noopener noreferrer",
305
+ class: "rc-button goog-inline-block rc-button-help",
306
+ title: "帮助",
307
+ value: "",
308
+ tabindex: "0"
309
+ })], -1)]), i("div", C, [i("button", {
310
+ id: "recaptcha-verify-button",
311
+ class: s(["rc-button-default goog-inline-block", { "rc-button-default-disabled": j.value }]),
312
+ title: "",
313
+ value: "",
314
+ tabindex: "0",
315
+ onClick: Le
316
+ }, " 验证 ", 2)])]), o[19] ||= i("div", {
317
+ class: "rc-challenge-help",
318
+ tabindex: "0"
319
+ }, null, -1)])]),
320
+ o[23] ||= i("span", {
321
+ class: "rc-imageselect-tabloop-end",
322
+ tabindex: "0"
323
+ }, null, -1)
324
+ ])])
325
+ ], 4)
326
+ ]));
327
+ }
328
+ }), [["__scopeId", "data-v-f472e7c2"]]);
329
+ //#endregion
330
+ export { w as default, g as defaultCaptchaConfig, _ as mergeCaptchaConfig };
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ .captcha-container[data-v-f472e7c2]{text-align:left}.captcha-box[data-v-f472e7c2]{cursor:pointer;width:304px;height:78px}.rc-anchor[data-v-f472e7c2]{position:relative}.rc-anchor-error-msg-container[data-v-f472e7c2]{display:none}.captcha-overlay[data-v-f472e7c2]{z-index:2000000000;opacity:0;background-color:#fff;width:100%;height:100%;position:fixed;top:0;left:0}.captcha-selector[data-v-f472e7c2]{opacity:1;z-index:2000000000;visibility:hidden;background-color:#fff;border:1px solid #ccc;transition:visibility linear,opacity .3s linear;position:absolute;box-shadow:2px 2px 3px #0003}.outer-arrow[data-v-f472e7c2]{border:11px solid #0000;border-right-color:#ccc;border-image:initial;pointer-events:none;z-index:2000000000;width:0;height:0;margin-top:-11px;position:absolute;top:35px;right:100%}.inner-arrow[data-v-f472e7c2]{border:10px solid #0000;border-right-color:#fff;border-image:initial;pointer-events:none;z-index:2000000000;width:0;height:0;margin-top:-10px;position:absolute;top:35px;right:100%}.rc-imageselect-instructions[data-v-f472e7c2]{margin-bottom:7px}.rc-imageselect-desc-no-canonical[data-v-f472e7c2]{font-size:12px}.object-name[data-v-f472e7c2]{font-size:28px}.recaptcha-checkbox-nodatauri.recaptcha-checkbox-borderAnimation[data-v-f472e7c2]{background-image:url(./icon/checkbox_sprite.png)}.recaptcha-checkbox-spinner.spinner[data-v-f472e7c2]{opacity:1;transform:scale(0);animation-play-state:running!important}.recaptcha-checkbox-spinner-overlay[data-v-f472e7c2]{animation-play-state:running!important}.rc-imageselect-success-response[data-v-f472e7c2]{color:#4caf50;text-align:center;margin-top:10px;font-size:12px;font-weight:700}.attempt-count[data-v-f472e7c2]{color:#666;text-align:center;margin-top:5px;font-size:11px;font-style:italic}.rc-challenge-help[data-v-f472e7c2]{display:none}.rc-anchor-normal .rc-anchor-pt[data-v-f472e7c2]{margin:2px 10px 0 0;padding-right:0}.rc-anchor-checked[data-v-f472e7c2]{opacity:.8}.recaptcha-checkbox-checked[data-v-f472e7c2]{background-position:-58px 0}.recaptcha-checkbox-checked .recaptcha-checkbox-checkmark[data-v-f472e7c2]{opacity:1}.goog-inline-block[data-v-f472e7c2]{display:inline-block;position:relative}.recaptcha-checkbox[data-v-f472e7c2]{vertical-align:text-bottom;border:none;outline:0;width:28px;height:28px;margin:4px;font-size:1px;overflow:visible}.recaptcha-checkbox-hover .recaptcha-checkbox-border[data-v-f472e7c2],.recaptcha-checkbox-hover .recaptcha-checkbox-spinner-gif[data-v-f472e7c2]{border:2px solid #b2b2b2;box-shadow:inset 0 1px 1px #0000001a}.recaptcha-checkbox-focused .recaptcha-checkbox-border[data-v-f472e7c2],.recaptcha-checkbox-focused .recaptcha-checkbox-spinner-gif[data-v-f472e7c2]{border:2px solid #4d90fe}.recaptcha-checkbox-active .recaptcha-checkbox-border[data-v-f472e7c2],.recaptcha-checkbox-active .recaptcha-checkbox-spinner-gif[data-v-f472e7c2]{background-color:#ebebeb}.recaptcha-checkbox-disabled .recaptcha-checkbox-border[data-v-f472e7c2],.recaptcha-checkbox-disabled .recaptcha-checkbox-spinner-gif[data-v-f472e7c2]{background-color:#f1f1f1}.recaptcha-checkbox-loading .recaptcha-checkbox-spinner-gif[data-v-f472e7c2]{background-image:url(./icon/loading.gif)}.recaptcha-checkbox-expired .recaptcha-checkbox-border[data-v-f472e7c2],.recaptcha-checkbox-expired .recaptcha-checkbox-spinner-gif[data-v-f472e7c2]{border:2px solid #d93025}.recaptcha-checkbox-border[data-v-f472e7c2]{z-index:1;background-color:#fff;border:2px solid #444746;border-radius:2px;width:24px;height:24px;font-size:1px;position:absolute}.recaptcha-checkbox-borderAnimation[data-v-f472e7c2]{background-image:url(data:image/png;base64,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);background-position:0 0;background-repeat:no-repeat;border:none;outline:0;width:28px;height:28px;position:absolute}.recaptcha-checkbox-borderAnimation.loading[data-v-f472e7c2]{background-position:-28px -588px;animation:1.2s steps(20,end) infinite border-animation-loading-f472e7c2}@keyframes border-animation-loading-f472e7c2{0%{background-position:-28px 0}to{background-position:-28px -560px}}.recaptcha-checkbox-spinner[data-v-f472e7c2]{box-sizing:border-box;opacity:0;background-color:#f9f9f9;border:6px solid #4d90fe;border-color:#4d90fe #4d90fe #0000 #0000;border-radius:36px;outline:0;width:36px;height:36px;transition-duration:1s;animation:2.5s linear infinite paused spinner-spin-f472e7c2;position:absolute;top:-4px;left:-4px}@keyframes spinner-spin-f472e7c2{0%{transform:rotate(0)}10%{transform:rotate(135deg)}25%{transform:rotate(245deg)}60%{transform:rotate(700deg)}75%{transform:rotate(810deg)}to{transform:rotate(3turn)}}.recaptcha-checkbox-spinner-overlay[data-v-f472e7c2]{content:"";transform-origin:bottom;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);opacity:0;background-color:#f9f9f9;border-radius:38px 38px 0 0;width:38px;height:19px;animation:1s linear paused overlay-spin-f472e7c2;position:absolute;top:-7px;left:-7px;transform:rotate(45deg)}@keyframes overlay-spin-f472e7c2{0%{opacity:1;transform:rotate(45deg)}to{opacity:1;transform:rotate(225deg)}}.recaptcha-checkbox-checkmark[data-v-f472e7c2]{opacity:0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAATsCAMAAADb3wBdAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAFBUExURQAAAAAwGgALBgAqFgAWDAABAQAYDQBBIwBIJwA5HwCRTgAXDABuOwAcDwBSLABNKQB7QgCVUAAJBQBxPQAiEgBWLgABAABeMgB6QgA4HgAGAwB2PwBhNABGJgACAQBjNQBmNwADAgBvPABuOwAEAgBtOwB+RAAJBQCDRgANBwBxPQA0HABIJwB4QQBULQBULQB8QwBXLwB9QwBQKwApFgCYUgB2QAAGAwBKKABOKgCARQAHBAAeEAA3HgBXLwAjEwA+IQAFAwBAIwARCQCISQAMBwA1HQAzHAA8IAA/IgCQTgAWDABMKQAZDgCSTgBsOgAPCAAUCwCNTAAOCAASCgAQCQA2HQBRKwAuGQBaMQAtGABSLAAgEQA/IgA4HgCPTQBwPAACAQArFwBgNAATCgAaDgAqFwAIBAAUCwCeVf///4C5DhQAAABpdFJOUwBNEUMjAiZpdVzqJbEthXzG8Q+2N4sBl8VaCr6ccQOgpQWzsgawzA7TFbdUdMKIh8iMyYFC9r8JeH7PDDFZjThkCGgc3BRWU2Fm6SR7KeuuGCHkFx0aV4JKkkiEM2Vb5rQERZseKkQNIKs/1NYAAAABYktHRGolYpUOAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDI2LTAzLTAxVDE4OjU4OjE4KzAwOjAwD9IifQAAA1RJREFUeNrt3XlTUlEch/GjLVhJBRkU2o3immxREhbl0qKtlLm0Z7st5/2/gbjONBNxh/ONm7H4PH/4128Ez+V85nh1wBgiIqJIjYwqU/v2K1MHDrKeRBSl2JgydejwEUWk8TgLSkRRRDoqiWTtMUGk4zahmJQ8McHCE1EUkU6mFJGsTbvnkqeac6fdj5qZtFMp4dllznhcSCJEiiLSWbciTZGszZ5zz51vzuV855w/be2FGfdP62XzBWVVvFFeP0SIFEUkWyw5n6CXtdIP4k0Fc2Xn46bS1l5MCstcmcxIF83ndUuItDsiXYopIlWsjblFak7Zy55LpNnml2rSLZJr6pdIVac1iETUnUhXaopIFTtXc4sU+HDVKVKlw55uEanDzv9dpE4+IBJRlK5JU3Xppsd1a0PnWkUK9vSNgluk8H3YLlL4bkUkRKL+ql6RpqytSFM2Py+IFEoSIiESDWYLmjWdbni0KLKoWVP4N1OIhEg0KJV8zRrhzzk7Piz9V2sQCZFoULopnmvq4rnmVh9ag0iIRL3vtmaNdNe3rmzpvrUGkRCJet+dZe30s7IsiWSnEQmREInCrrN2+pEuXnO3CnM7e/ouIiESIlF72jta6H/Tujfkpx9EQiTaze5nNJGUqxfs1jQiIRIiUdc94A4RIiESIvVND+OaSI8amkhFREIkRCJEQiREQiREQqS/Ein+WBHpyaoiknmKSIiESIgURSSzpohkGquKSOsbiIRIiIRIUUQykkjGbAoiGfNsQxDJPF9BJERCJESKItIfU+596Jh64SlTLxWRTAmRCJEQaRCnXo3PClO1Ocma14iESIiESNGm3khTwXdTpoyJJdmziIRIwyKSl9N88HOaD/4MO4gQaVhEms8rIhlTyGs+FDg/ECINjUhlaSq46SG9DVStKn0uoknxGiTaWyKZtDRlUmnt01VT/K5CtMdEKmnW+DntxOIvFbjWRIjU3oJmjYlp1phFrCFCpJBGJJGCf4mTrPHeYg0RIoVUlkQK7voWlW/HXV8iiiDSWkISyUwkJJHMFqcfIgrpnfZG2+8/NLS5j9rDfmLliai9z5pI/hdNJH+MJSWirtv+qs19W9fmtlhSIuq679va3A/xzs8mS0pERES96idvm59U/2NE1QAAAABJRU5ErkJggg==);background-repeat:no-repeat;border:none;outline:0;width:38px;height:30px;transition:opacity .3s,transform .3s;position:absolute;left:-5px;transform:scale(.5)}.recaptcha-checkbox-checked .recaptcha-checkbox-checkmark[data-v-f472e7c2]{opacity:1;animation:.6s steps(20,end) .1s forwards checkmark-sprite-animation-f472e7c2;transform:scale(1)}@keyframes checkmark-sprite-animation-f472e7c2{0%{background-position:0 0}to{background-position:0 -600px}}.recaptcha-checkbox-disabled .recaptcha-checkbox-border[data-v-f472e7c2]{background-color:#f1f1f1}.recaptcha-checkbox-checked .recaptcha-checkbox-border[data-v-f472e7c2]{visibility:hidden}.recaptcha-checkbox-checked .recaptcha-checkbox-checkmark[data-v-f472e7c2]{background-position:0 -600px}.rc-anchor[data-v-f472e7c2]{border-radius:3px;box-shadow:0 0 4px 1px #00000014}.rc-anchor-normal[data-v-f472e7c2]{width:300px;height:74px}.rc-anchor-light[data-v-f472e7c2]{color:#000;background:#f9f9f9}.rc-anchor-light.rc-anchor-normal[data-v-f472e7c2]{border:1px solid #d3d3d3}.rc-inline-block[data-v-f472e7c2]{height:100%;display:inline-block}.rc-anchor-center-container[data-v-f472e7c2]{height:100%;display:table}.rc-anchor-center-item[data-v-f472e7c2]{vertical-align:middle;display:table-cell}.rc-anchor-content[data-v-f472e7c2]{display:inline-block;position:relative}.rc-anchor-normal .rc-anchor-content[data-v-f472e7c2]{width:206px;height:74px}.rc-anchor-checkbox[data-v-f472e7c2]{margin:0 12px 2px}.rc-anchor-checkbox-label[data-v-f472e7c2]{font-family:Roboto,helvetica,arial,sans-serif;font-size:14px;font-weight:400;line-height:17px}.rc-anchor-normal .rc-anchor-checkbox-label[data-v-f472e7c2]{width:152px}.rc-anchor-error-msg-container[data-v-f472e7c2]{color:#d93025;margin:2px;font-family:Roboto,helvetica,arial,sans-serif;font-size:12px;font-weight:400;line-height:14px;position:absolute;top:0;left:0}.rc-anchor-normal.rc-anchor-error .rc-anchor-error-msg-container[data-v-f472e7c2]{width:240px}.rc-anchor-normal.rc-anchor-error .rc-anchor-content[data-v-f472e7c2]{margin-top:10px}.rc-anchor-normal-footer[data-v-f472e7c2]{vertical-align:top;width:70px;height:74px;display:inline-block}.rc-anchor-logo-img[data-v-f472e7c2]{background:url(data:image/png;base64,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) no-repeat}.rc-anchor-logo-text[data-v-f472e7c2]{cursor:default;text-align:center;margin-top:5px;font-family:Roboto,helvetica,arial,sans-serif;font-size:10px;font-weight:400;line-height:10px}.rc-anchor-light .rc-anchor-logo-text[data-v-f472e7c2],.rc-anchor-light div a[data-v-f472e7c2]:link,.rc-anchor-light div a[data-v-f472e7c2]:visited{color:#555}.rc-anchor-logo-portrait[data-v-f472e7c2]{-webkit-user-select:none;user-select:none;width:58px;margin:10px 0 0 26px}.rc-anchor-logo-img-portrait[data-v-f472e7c2]{-webkit-background-size:32px 32px;background-size:32px;width:32px;height:32px;margin:0 13px}.rc-anchor-normal .rc-anchor-pt[data-v-f472e7c2]{font-family:Roboto,helvetica,arial,sans-serif;font-size:8px;font-weight:400}.rc-anchor-pt[data-v-f472e7c2]{background-image:url(data:image/png;base64,iVBORw0KGgBX2EQZQBOnoDD2UcBhW1sSiNmRQ8RLXQFNGEeygBY2c9ObVv9U1t63RNBc6wgU2VvBPuEb0HRObDgBXlGjaztkBWm8aGJkATRZZa3RzU6xhDAwBuFJvGDokk0hlRv6FSghlBGdtzcqF6RQBVwudRzWvBcGFXHkxMO6F5Dx0B0GGK82EPKTobIlQ1OwBag4xQGEuQbhhZExTpOMDBdWcMLJAH6z05bpVM3n1yIHoBny71Em5nBb3FFaA1IB1nQYk269fH5kcxBuVnl2DwBHU8DmmdyZWV0Kp9/B/utvhXIgX65veQBbxxyTBBhPIp43wBuV2HH3NWZDvKaRUBcaWcBYwCccgG1CS5ayvpLA+VaS2AoJEGZWOY/OJHry+PRBih8RohtGaoLIEyGBdlheMvRrX9ddH3tfKX9eyhoEy/2dl3sqLyixil0zXIrepVxUhxsq0CN8YypdBCrZLgz43ZCkKTB8Pqf4WkFkNSU3fTWFahPQLh42Bv853YXR2dHIBo7Vtbh5kR3Jm/t/o8WUBb4M/nElvLlCkb4TpsrVtByaN2YWM35OlwBOjsdc8PAB01o/BdE5l9unUdAooYXA74zIBawZfP8ccRU+Gb5hvUABVU0zkLigyABoG7f6XMOZHcTVVMBdAFk3zQB1G/Ea9NwaXQnBZnF2RxZlSI96RQBI89vGAM3C9I9p4U+RXPsBdJjXfmUB/Nt6pN2ZX3cUin0lWs98YnyzBaWA3ZOr3R7hqBfatk020qBfBoRLHL6KHIBakhwo3XdbxkBUh6HRnEkfhv+fV1Zrn87g80uFFbUIA9Qtsxx+4pcPURUGvI/BHxZG75dkfdfKKVTm1OlkAQZD1Hb7EeEgylwBdHIenSyS95xEYe5pbgQBYZV2E255ZTuaZHo)}.rc-anchor-pt a[data-v-f472e7c2]{padding:2px 1px;text-decoration:none;display:inline}.rc-anchor-pt a[data-v-f472e7c2]:hover{text-decoration:underline}.rc-anchor-normal .rc-anchor-pt[data-v-f472e7c2]{text-align:right;width:276px;margin:2px 11px 0 0;padding-right:2px;position:absolute;right:0}.rc-anchor-aria-status[data-v-f472e7c2]{display:none}#rc-anchor-alert[data-v-f472e7c2],.rc-anchor-alert[data-v-f472e7c2]{color:red;margin:2px;font-size:9px;position:absolute;top:0}.rc-button-default[data-v-f472e7c2]{color:#fff;cursor:pointer;text-align:center;text-transform:uppercase;background:#1a73e8;border:0;border-radius:2px;min-width:100px;height:42px;padding:0 10px;font-family:Roboto,helvetica,arial,sans-serif;font-size:14px;font-weight:500;line-height:42px;transition:all .5s}.rc-button-default[data-v-f472e7c2]:focus{outline:0;box-shadow:0 0 0 2pt #185abc}.rc-button-default-disabled[data-v-f472e7c2]{cursor:default;background:#498fe180}body[data-v-f472e7c2]{margin:0}.rc-imageselect-instructions strong[data-v-f472e7c2]{font-size:28px;font-weight:900;display:block}.rc-footer[data-v-f472e7c2]{width:100%;font-family:Roboto,helvetica,arial,sans-serif;position:relative}.rc-separator[data-v-f472e7c2]{border-top:1px solid #dfdfdf;margin-bottom:1px}.rc-controls[data-v-f472e7c2]{width:100%}.primary-controls[data-v-f472e7c2]{height:60px}.rc-buttons[data-v-f472e7c2]{float:left;background-repeat:no-repeat;height:48px;margin:6px 0 6px 6px}.button-holder[data-v-f472e7c2]{float:left;height:48px}.rc-button-reload[data-v-f472e7c2]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAQAAAD9CzEMAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAHVSURBVFjD7ZZNK4RRFMd/hKEmL6UYr+WtJhufAgsLCzaIhcV8hUkWCCkbbxlJ0axYyZcQIx9AimJipETeJzUW7tyeyW3m3IfZPf+zeZ7u/5z/ufeee88FDx48yFDJCDvESPDAAwmO2WaYCgMzbB+8lk3eSRnsjQ1qMrgTpOyCFzPBszF42p4IU6TYk6TsBBo5zRo8bYcEgEX1J0Ynl44gt6zTTZBqqgnSQ4SEY/SCNf0tzv5Gu5wzSOEvRiGjGSJWAmUcaYd9/FkK4MSdwKymLxlyd8LPmb1Aky7LXQpycBfczGBDUW8oz8EMu9mDSp3/uHX2IoEhRYzrAyTPXiSwpYhrrsILBGKK2OsqvEDgXhE78nU1fyoBf74EkvkWSC9Re74EJJv8J8jK9A8YER60zM53rbwGcpMreFPkkHVSj5RK6Jviy+4H5cSVR0SWTx0vyuEgRzf46Wy7iv1KvXTKM+KGU8CK5k7LN9rHoahl+tlzvC1KbGopoNc1RZwQxb8YRQw7OHc02JZrl8M9/WxpwUcJzfQxz5Vj9IqgmxMRcCxUNjul0e2h8zGnb1ezJZkyLJ8VWonyYQz+wipt/3N9VDFGlBgJvkhyzTHL9Buf7x48eDDgG7+LhC3RaR/9AAAAAElFTkSuQmCC)}.rc-button-reload[data-v-f472e7c2]:focus-visible{background-color:#d8d8d8}@media screen and (forced-colors:active) and (prefers-color-scheme:dark){.rc-button-reload[data-v-f472e7c2]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAQAAABIkb+zAAADGElEQVR4Ae3aM6BtRxTG8XVtK7aTJi5j20YT27bVxLbtKnm2bZvX1v/Vs8+5czRrX82vL75ve88s8VzxPM/zPM/zPI8qLuQJvmYKK9lGBx1sYyVT+JonuJAqSQhPS3g4ijeYQy82vczhDY6INz5IGCjiPuaTiLncRUHs+CDaKOMZaknGVh6j2B4fRBNpXM8WUrGRq2zxQfSwN6Nx4X/2iIyvXoALqceV7ZwdPT5oXTqv4FYvzxjxNQuQyZfYtPI7d3E6+1FBNtlUsB9nci+/UIfNe6TzNAEa8f+gL7V8zvnkSx/I4Hg+o8nycEW5AGl8QXTNPEdxnO/qt+jCTq3Ay0TTxfvsJAngAH4l/AJcQDRrOVKSwJk0hFqAvagj0kR2kiRxMEvDLDCSSF+RIymgnP9DKsBV0eJLyng2lAIUsZGgSeRIingawinwMEFr2UknvkIB8tiMqYsj1eIrFLiNoPcV4ysUmIGpmZ204isU4DCCnlOMr1DgBUy1FCnGVygwBdPnevEVClBCN6bzFeMrFDgTUyv5ivEVCjyA6XfV+AoFPsZ0l2p8hQJjMJ0ugwsLMO0ngwtrMFXI4EItpmxfYHBdQv4m9o9R+4tMn/6nhD79jzl9+p/TWvR+aBTwBaaRIjq/lMWigJ3owHSjuMChBD0nCngOUyflIjrLKi3sJI5RzjZMf4tBYWHLJT4j6GoxKCwtusNJBK0mVwwai7uOUM5ygq4Vg87yeq44QC5jCZpJuriltsGRxo9EOlXcU9liyuZLIv0jJtVNvknsJEmigjFEWkOV6OB8p9usx7CMSB0cIyrsG90fsHOCz50P6SWaW0STZdSghecpjjP8/Wwluk/ETn3Y4wsusAx7pHMsn9Bqm1cRfWTyBTat/MFdnMF+VJJDPntyFGfwCP9Sj80LEhbSeBm3erlXwsUF1OHKRs4TfWpDf19TLv2F69iieuz1UcrT1JKMVdxDkQwEFHEv80nEFC4jQwYWjuQNZtOLTRv/8yhHycBFJRfyOF8xmRVspYNOalnDRL7jGU4kVzzP8zzP8zzP8xzZAa401tP+fx9aAAAAAElFTkSuQmCC)}}.rc-button-image[data-v-f472e7c2]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAQAAAD9CzEMAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAHVSURBVFjD7ZbLK0RxFMc/8hhCsiFZkVdqFMWKjZHHn4DF7FCKrD3K2MkfgqKQPePR9WgkSg0bCxsahVGDPDZ3Zox7fvfBkMU9Z/n9nu/p3t95gWuuufYvrIgeAqyjESZChDAa6wTopuin0h762eKVd4W/EqQPz/fEC5nhRin92a8JUOBMPItRIrbE4x5hlEy78iVsOBKP+wYlduSbuBSCY8zjx0sppXjxM8+TwLqk0Uq+i0chcIkKA7OSZYH5SKeZfAtRQ8gb4wp2BhO8GfgPNKvka8WqmTT94imxqmokai6nAnmFDB3PYZADbrllnwGyE1+xJkSdSL0xJxCfqNLRckIpyCFlOlLNsxA5+1W+TezXhcTXHRuwEDk6uij2eGtqAk2s7F4dHRPRER3tE9Hdz/I+RevEH+tARDUdrVNEtycTBBWU+ISJiuh9YmrJ0ZvJBDsWCR5E9M4iwXYyQbfFL9o1FahVRKf09J7pIw+L6JDpI2tOytTz8zL99UazOypixL47Kn592P3BuE7HwomaLxyABi6UK7OeXPKoV67Mc7x2tnKx+HDWvkqx/cOlgzNH4mf4nB5e+QRsH17T5P/D09F4/B5xxQvPXBFK1/HrmmuupcU+AD4a7RHVCc9XAAAAAElFTkSuQmCC)}.rc-button-image[data-v-f472e7c2]:focus-visible{background-color:#d8d8d8}@media screen and (forced-colors:active) and (prefers-color-scheme:dark){.rc-button-image[data-v-f472e7c2]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAQAAABIkb+zAAAEaUlEQVR4Ae3BSWyUdRzH4W9tO1NBXEoFA3RBNEZrvTQsetKDEVIggRRkOaABGoRAEEEKJHqiwIkoifGmYAuFEG/a0HggmKYNTVgTNbJYuoUoBGhp6cx0+vH8vjNlfv/pTEvI+zxSIBAIBAKBQCAQCASeAhQwjxoOcYIWbnCbPmLE6OM2N2jhBIeoYR4FetIwmcUc4TIxLGJc4luqmKyJxxTWcYYI6YhwhnU8p4nCAhoYYKwGaGC+xhc5LKeFTGphOTkaH3zERbLhAh8q23iL38imZt5UthDiayJk2xBfka/M4x2uMl6uUqHMooZHjKdBNipTKKAeF3Fa2c8yyikkRIhCyllOHW3EcfETYY0dRbRg18luZmgUzKKWbux+p1Bjwxz+xuo/ashXCoTYxB2s/mK20sdrdGPVQKGMmEojVp28qvQwhy5somyUIz4jhs0tyuSOV+jAZoBFSgNVDGJzk+lywyTasYmyUGliMTFs2iiQHTn8jNVGjQGbsTpFjqyoxapBSVHGHprpIUqUHpqppVRJcRKrnbLhXWLY/EuhElBKI3H84hynWAko4i42UeYqNV6gA6saJWANDxlNP6uUgC1Y3WCKUuF7rDrJlw9fkMp2+RCmB6sjejzeYwSr3fJhDamNsFI+7MUqznyNjlyuYhVnhjwo5SEWfcySB8WMYHWJXI2GDdi1yodGrOrlw3nsPlVyFNCF3X55UEYcq2FK5MEB7G4RVjLswMUyebAHF7vkQTUutisReXTjolweNOOiSR5U4KKTPPmxGjeF8qAHF13yoAg3H8uPNtyE5EEUFxF5EMZNq/xow01IHkRxEZEHYdy0yo/VuCmUBz246JIHRbhZKT/y6MZFuTxoxkWTPKjAxS1ylYjPcbFcHtTiYqc8WIGLbUqGAjqxq5MHpcSxGqZYHhzEroOQkmM9dm3y4ThWx+RDO3brNBpyuYJVnJnyoJh+LB4wUx6UMILVRZ7R6FhAHKta+bCK1Eaolg/7sIozV4/Hd1h1EZIP2xnhcUbYJh/C9GL1jVLhef7BapMSsJI+RvOAaiVgK1bXmaLUmE8UmztMVQJmUc8wfsMcY6YSMI172ESolA1fYtWopChhF010ESFCF03spFhJcRqrHbIih1NYbdIYsBWrE+TIjgLasIlRpTSxlGFsWgjLDdO5ic0gVUoDSxnE5jovyx1ldGATY7McsZVhbG5SrPQwm06sTlIkI6ZxGqsOSpU+yvgTq7tsIawUCLONe1j9QanGhpc4h10PeyjWKChhH73YneVFjR1hjuIiznkOUE0FRYQJU0QFKzhIOyO4+IGQMoX1DDKeBvhEmcXbXGG8XKZcmUc++xgi2x6xlzxlC2/wK9n0C68r2/iAdrLhPO9rfJDDEs6SSWdZQo7GF5UcpZ+x6udHKjVRmMxamhgiHUM0sZZJmnhMYhGHuUAUiwgXOMxCntWThhCVbKCOes5xjV7uEyXKfXq5xjnqqWM9lYQUCAQCgUAgEAgEAoGnwP+Xing91vPiFwAAAABJRU5ErkJggg==)}}.rc-button-help[data-v-f472e7c2]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAQAAAD9CzEMAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAIWSURBVFjD7VfJLkRBFD2INk+JoK1IrCxFmxYSvsDwAcTU1hYIC2LcGeITEEPzMYbYETGEmEViTFBJ31ed59XU7+mXSNzavXPqnno13DoF/MdfiGSEMIB17OCO2g7W2JdqhniOUszgBF+SdsLQUvfJ8zGPF2lyq71gDnlu0rfhUpvcahdoiS95CpZsCe6xjA62EsUoYK0YNejECh5snEXWyzAC2LKNrhfpQl4Gwra/jLCeRqOP8C7vmEa2kp2LWXxw/qbJXyxw+hUajf64Cde8z5yO3M6p+ygzXrNyHFCvT7SqiIW45Ts8GNe2COKUet6wLNrpeUatELf+ThQNeNVNU5Afq1EJQyUADPPhlYgJ00Q4R6YrgQAOCZ8Sb09rFsPSKVQLAH18BQVlsJ7AR+n49ZGFJ8pS4wRHCFr1VH03KMuQE9omqNuTQJiXDUfsERTyJFBHWXad0A1BimOiXWSgiBjXTuiNoIAngTRivMoFUhMlkPApMllkvYBikU22qV5AsU2HDQ6aXsA6aINOKGRQKnQCsVJRJfJvxwT2ey52R0gSwVMEXyLHlUAaL9eTugtn0pXAmO7CiV2Z7xI/oRJo5vZF4Sxy2G0WJd2hIq4iV8k2R7TnmXSC/bAtPhivn9ZxXOJLY/50Il7r+NP8HqNLan57bI8TQ/Ortu8prHm27z48QHx5QvnwCBQ9Y6OH8Befsf+R+PgG76cCIYnk9jwAAAAASUVORK5CYII=)}.rc-button-help[data-v-f472e7c2]:focus-visible{background-color:#d8d8d8}@media screen and (forced-colors:active) and (prefers-color-scheme:dark){.rc-button-help[data-v-f472e7c2]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAQAAABIkb+zAAADI0lEQVR4Ae3aB3XzPBiG4ReCIBiCGVQMagYNg5hBzCBm0DCIGbQMbAYyA4nB/e9hHXVYlqV8p77O6kzyWHvI4XA4HA7poHjizJU33jD8w/z5/ZUzTyh5TDxzZeQ7Rq48y+NA84plLcsrWkrjBcMWhpdytf2CIQXDBSV50WBIydBILlS8sYc7VZ5nb9mL3b0cuPIVx0BHg6b6X5lpGjoGHF+57tlsRz4z0VLLF6hpmfjMiMr98R39uvpLTY/LGIEaS5ijQ0U+kg5HmKVO+/QtYTfUxle+EWZRe1eeGS0JoJl3rUiMhAyohCU8EDLKdvSEtJIYLSH99mEr5CQ74ERIs23SYNN+/IgIlkpi8Zb+40dEuKesPq3sjDZRNUJh8A3ybXjk2xjwGZSsRYdvRmUJoJjxdbIWBp8W2SmAB43PbG9MN5H9Avi44Ttte/4OlTWAwm0oA/T2OognQRvU8QXoUNkDKFx0JcZun5HgSTALs/EDWCUFUONr4pJPUghTVE1gZKmVQmgj1gcofLUUQo1Pre9CnRSEY0mv738HKYiBpXZ9E+6kILrVzZj3+Ll4hgXO+/oAWqLgkSjo9QEMS1XRADVLJtMb53+dI8ARIFmA+aEaccXS/AO60UQDGZ58A1miqQSefFOJNs1kDk++yZxmyRYNYFnS2RY0ePIsaMIr0bZYgJalKW5RPxYLMLLUZ9xWwbPrtooP95AbWy5+a9EW2Vq0LN1+yOZueEpns2+vW5bmH3DAscD8UEdMsySogybbIZ9JcLyLYsZ3zxLgjm9G/doH3VriMDzEVYNBYlHhil/2cFQ/7LqNh56QsyTGmZA+4UmV5570ytmdkCnVy4cjmGSX/gwhU8p7i46w183XLl8JcyhJhxpHmI29/Y/igiXMUUtSXkXyWK7UKx/IFYvPqzy7R/CMnL91+fvMCJDn43vo+YrlzoVnnhbX75944cIdy1d62RcNjr04GtkfFQN7GKgkFxpmUprRkheKLlGImQ4lZXDaGGLmJKWhueFYy3FDy+OgoWfiOyZ6GnlMKDQtPe+8M/OP+c/ve1o0Sg6Hw+FwSOY3ga/kPXb8HUcAAAAASUVORK5CYII=)}}.rc-button[data-v-f472e7c2]{-webkit-background-size:32px 32px;cursor:pointer;opacity:.55;background-position:50%;background-repeat:no-repeat;background-size:32px 32px;border:0;width:48px;height:48px;padding:0}.rc-button[data-v-f472e7c2]:focus,.rc-button[data-v-f472e7c2]:hover{opacity:.8;outline:0}.verify-button-holder[data-v-f472e7c2]{float:right;margin:8px 8px 9px 0}.rc-challenge-help[data-v-f472e7c2]{padding:5px 20px;font-family:Roboto,helvetica,arial,sans-serif;font-size:12px;font-weight:400;overflow-y:scroll}.goog-container[data-v-f472e7c2]:focus{outline:0}#rc-imageselect[data-v-f472e7c2]{background-color:#fff;min-width:240px;font-family:Roboto,helvetica,arial,sans-serif}#rc-imageselect .rc-button[data-v-f472e7c2]:focus{outline:0}.rc-imageselect-desc[data-v-f472e7c2]{margin-top:-10px;margin-left:-10px;padding-right:100px;position:relative}.rc-imageselect-instructions .rc-imageselect-desc strong[data-v-f472e7c2]{font-size:22px}.rc-imageselect-desc span[data-v-f472e7c2]{display:block}.rc-imageselect-desc-no-canonical[data-v-f472e7c2]{position:relative}.rc-imageselect-desc-no-canonical span[data-v-f472e7c2]{display:block}.rc-imageselect-payload[data-v-f472e7c2]{min-width:240px;margin:0 7px;padding:7px 0}.rc-imageselect-challenge[data-v-f472e7c2]{width:100%;height:100%;position:relative}.rc-footer[data-v-f472e7c2]{min-width:240px}.rc-imageselect-error-select-more[data-v-f472e7c2],.rc-imageselect-incorrect-response[data-v-f472e7c2]{color:#d93025;text-align:center;background-color:#fff;width:100%;padding:7px 0;font-size:14px}.rc-imageselect-desc-wrapper[data-v-f472e7c2]{margin-bottom:6px}.rc-imageselect-checkbox[data-v-f472e7c2]{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGnmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4xLWMwMDAgNzkuZGFiYWNiYiwgMjAyMS8wNC8xNC0wMDozOTo0NCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIzLjAgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTExLTA0VDIzOjE2OjI2LTA3OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0xMS0wNFQyMzoxNzozNS0wNzowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0xMS0wNFQyMzoxNzozNS0wNzowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDM3Y2M2MTEtMjg5Mi00MmFkLWEyYmYtMjk1MzA4NGYxNjA1IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YjEwZGYyNmItNGU5Mi0wNTQxLThjMDYtMTJjNWQ5ZDFmMjcxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZjE0YzAyYmQtNDJhOC00ODkxLWIxMjMtMWZhYjg2NzZlNzJmIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmMTRjMDJiZC00MmE4LTQ4OTEtYjEyMy0xZmFiODY3NmU3MmYiIHN0RXZ0OndoZW49IjIwMjEtMTEtMDRUMjM6MTY6MjYtMDc6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy4wIChNYWNpbnRvc2gpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjMDJkMDg2Zi1mNmZjLTRjMzItYWU2Zi0wOWMxZmU4MzFhNzciIHN0RXZ0OndoZW49IjIwMjEtMTEtMDRUMjM6MTc6MDktMDc6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy4wIChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0MzdjYzYxMS0yODkyLTQyYWQtYTJiZi0yOTUzMDg0ZjE2MDUiIHN0RXZ0OndoZW49IjIwMjEtMTEtMDRUMjM6MTc6MzUtMDc6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy4wIChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlXsutAAAASdSURBVFiFtZdbbBRVGIC/mdnZdndr2+0l0BYsaEJ4ABGkUhHjlT6oT7QRbcHaqGkhvFBjBU3AKy9aTYwaQ9pI6wMxEClQiLcmKomtYikCkZsILbYGWuh2aXfLtrvHh53ZPTvdbbdtPMnJzOzMme87/392zjkKyRdFOipx7gupJlWEENiSBCuACij3bfgmx5G+dGUQez4h3S1CwQGh+PoGvcd+u7C3fAgITUcmXk/igbVVNdcrbJqr6nLqrTWJGiz03/FDaHxwd/vueYeAoEVmQhFCJBSIgIuqLxT3pqX/NFVPYkVc7UHl/JaOT1eesYgkJaAAGmArfvnqxp50ffd04HJZMDJS9svnd7cC4/EkhBCoieAP1HRXzgYOcMXl2l+8+exTgI4xhqzPKJZzFdDvf6lz9T8ZBW2zgcsl33N6xe+Na//EEglrBMK9z8qyzxZecY+bLytzIte6fdVHhKOgYYmCKWD23lZUdrxiNvANy9y8W67z2FKNPRvDEt1O38PF1Z0lhkBMKmQBDdB1LadqpvCNy9y885yO3aYwMio4+Ot45J6iFlYRZyyYFyqgLSjZlXfF6S+aCfz5e928bcCHRwV1zQEOXPBE7nc7x592Fj7kwpIGVTpqcwufKJ4p/K1no/DXmgK0SHCzLH70jWVY0mCehFNgc+TLDdbkZtCxLZeaVe6E8MrlUfgtv6CuKUDLxYlwAJuWMY9oBGIEVEBDOHPkBjvK7czPUXm9VGdTHIkXlrt5c30s/GACeNjAkS1FAOQTQEH1euXn61vGuDks0FSF7aU6m4qjElUr3Ow04F4DfuivSeCACHq9Uu8VIDIbKoAyFhi6hiMv0uDbbg+iMZP6F+1kpSlsX6ej4MYfgJ3rdXQtCj88BRzgtvff69bf5AiI/vNHTlkf+O6qh9rGADduhSOxbZ0ehfsEdXuSgwP83fHJ2UQCAhA9x97vi9fw+6setjYEGDAkTPirTQEOX0oOXjgifh7uOebDMj2rxkXIqMF5Q5d2xXtBW6+HWkNiyCd45YsArUnCAfy+E18TOxcIiA4GHUgF0uxpc7Jyqv84nehFjxdkkmKHo5eThwP01c9dDHiBYWAUGBdCCDMFIcNuLDB8zZfV07Y50Yvaej3ThrvO7i0HAsAYlhlRTkHQeCBwZl/FjwVDlz6eFiVBmdN/YsfFo1u7gNvG+2MWJvIgNAVGAf/xhgcb5nsvfzYb+NyBk+91NT95APBLAkFZQJ6bVcLfhVTACbgA15Ky5rU3C0s+mC48/dz+6nNHtrQDI4TzbkqYKZiwJoysiIAUQ8IJOFPdCzOXlDaV92UsqpkKnHfj5Ienvnpm35jfOwz4jCpHIGZFZF2jRdYFhkQq4DCOqYB+5+raRdl3PbJET8nO1VRH+nhoZHBsdGCg/1xrV29nYzfhwXbbgPoJp9TseUz4E62KVaLpsBsiZrUTXVrJX9HIv0gSMKs58mPgpkC8nZF1ZxP5dxhSkwmYEnJNuC+AqXdGZjS0ONX8iMmiZjV7POOdUTwRWUieUuVomZ90wSS9nq6ALCLvkM2jCZGPSe2QhRAoQiS9m/5fyn/lu/UIgBExrQAAAABJRU5ErkJggg==);display:none;position:absolute}.rc-imageselect-table-33[data-v-f472e7c2],.rc-imageselect-table-42[data-v-f472e7c2],.rc-imageselect-table-44[data-v-f472e7c2]{border-collapse:separate;border-spacing:0;width:100%;height:100%;transition:all 1s}.rc-imageselect-table-33[data-v-f472e7c2],.rc-imageselect-table-42[data-v-f472e7c2]{margin:-2px}.rc-imageselect-table-44[data-v-f472e7c2]{margin:-1px}.rc-imageselect-table-42 td[data-v-f472e7c2],.rc-imageselect-table-33 td[data-v-f472e7c2]{padding:2px}.rc-imageselect-table-44 td[data-v-f472e7c2]{padding:1px}.rc-image-tile-target tr[data-v-f472e7c2],td[data-v-f472e7c2]{margin:0}td[data-v-f472e7c2]:focus{outline:0}.rc-image-tile-overlay[data-v-f472e7c2]{opacity:0;z-index:2;background-color:#1a73e8;width:100%;height:100%;transition:opacity 1s cubic-bezier(.49,.78,.46,1.34);display:none;position:absolute}.rc-image-tile-target[data-v-f472e7c2]{-webkit-tap-highlight-color:transparent;position:relative}.rc-imageselect-challenge[data-v-f472e7c2]{box-sizing:border-box;text-align:center;-webkit-user-select:none;user-select:none}.rc-imageselect-response-field-error[data-v-f472e7c2]{border-bottom:1px solid red}.rc-imageselect-desc[data-v-f472e7c2]{font-size:16px}.rc-imageselect-desc-wrapper span[data-v-f472e7c2]{font-size:14px}.rc-image-tile-wrapper[data-v-f472e7c2]{transition:all .1s;position:relative;overflow:hidden}.rc-image-tile-wrapper img[data-v-f472e7c2]{-webkit-user-drag:none;backface-visibility:hidden;position:relative}.rc-image-tile-11[data-v-f472e7c2]{width:100%;height:100%}.rc-image-tile-42[data-v-f472e7c2]{width:200%;height:400%}.rc-image-tile-33[data-v-f472e7c2]{width:300%;height:300%}.rc-image-tile-44[data-v-f472e7c2]{width:400%;height:400%}.rc-imageselect-instructions[data-v-f472e7c2]{width:100%;height:113px;margin-bottom:7px;position:relative}.rc-imageselect-desc-wrapper[data-v-f472e7c2]{color:#fff;background-color:#1a73e8;height:66px;padding:24px;font-size:16px;position:relative}.rc-imageselect-progress[data-v-f472e7c2]{background-color:#417cc1;width:0;height:15px;transition:all 1s;position:absolute;bottom:0;right:0}.rc-imageselect-tileselected[data-v-f472e7c2]{position:relative}.rc-imageselect-tileselected .rc-image-tile-wrapper[data-v-f472e7c2]{transform:scale(.8)}.rc-image-tile-wrapper[data-v-f472e7c2]{transform:scale(1)}.rc-imageselect-tileselected .rc-imageselect-checkbox[data-v-f472e7c2]{background-repeat:no-repeat;display:block;inset:0}
@@ -0,0 +1,4 @@
1
+ import { default as Captcha } from './Captcha.vue';
2
+ export { defaultCaptchaConfig, mergeCaptchaConfig } from './config';
3
+ export type { CaptchaConfig, DifficultyLevel, PassReason, SuccessData, VerifyData, } from './config';
4
+ export default Captcha;
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "fake-recaptcha",
3
+ "type": "module",
4
+ "version": "1.0.0",
5
+ "description": "一个模仿 Google reCAPTCHA 的 Vue 3 验证码组件,外观和交互与真实的 reCAPTCHA 几乎一致,但验证逻辑完全可控",
6
+ "homepage": "https://github.com/Steven-Qiang/fake-recaptcha#readme",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/Steven-Qiang/fake-recaptcha.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/Steven-Qiang/fake-recaptcha/issues"
13
+ },
14
+ "keywords": [
15
+ "vue",
16
+ "recaptcha",
17
+ "fake",
18
+ "captcha",
19
+ "vue3",
20
+ "typescript",
21
+ "verification",
22
+ "widget"
23
+ ],
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/fake-recaptcha.es.js",
28
+ "require": "./dist/fake-recaptcha.cjs.js",
29
+ "default": "./dist/fake-recaptcha.es.js"
30
+ }
31
+ },
32
+ "main": "./dist/fake-recaptcha.umd.js",
33
+ "module": "./dist/fake-recaptcha.es.js",
34
+ "files": [
35
+ "dist"
36
+ ],
37
+ "scripts": {
38
+ "dev": "vite build --watch",
39
+ "build": "vue-tsc -b && vite build --mode lib",
40
+ "lint": "eslint . --fix",
41
+ "prettier": "prettier --write \"**/*.{vue,js,ts,json,html,css,scss,md,mjs}\""
42
+ },
43
+ "peerDependencies": {
44
+ "vue": "^3.5.30"
45
+ },
46
+ "devDependencies": {
47
+ "@antfu/eslint-config": "^7.7.3",
48
+ "@types/node": "^25.5.0",
49
+ "@vitejs/plugin-vue": "^6.0.5",
50
+ "@vue/tsconfig": "^0.9.0",
51
+ "eslint-plugin-format": "^2.0.1",
52
+ "prettier": "^3.8.1",
53
+ "typescript": "~5.9.3",
54
+ "vite": "^8.0.0",
55
+ "vite-plugin-dts": "^4.5.4",
56
+ "vite-plugin-lib-inject-css": "^2.2.2",
57
+ "vue-tsc": "^3.2.6"
58
+ }
59
+ }