@prosopo/procaptcha-puzzle 2.16.0 → 2.17.1
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/.turbo/turbo-build$colon$cjs.log +4 -4
- package/.turbo/turbo-build$colon$tsc.log +18 -18
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +34 -0
- package/dist/cjs/components/procaptchaWidget.cjs +22 -4
- package/dist/cjs/components/puzzleCanvas.cjs +44 -2
- package/dist/cjs/services/Manager.cjs +2 -2
- package/dist/components/procaptchaWidget.d.ts.map +1 -1
- package/dist/components/procaptchaWidget.js +22 -4
- package/dist/components/procaptchaWidget.js.map +1 -1
- package/dist/components/puzzleCanvas.d.ts +2 -0
- package/dist/components/puzzleCanvas.d.ts.map +1 -1
- package/dist/components/puzzleCanvas.js +45 -3
- package/dist/components/puzzleCanvas.js.map +1 -1
- package/dist/services/Manager.d.ts +3 -1
- package/dist/services/Manager.d.ts.map +1 -1
- package/dist/services/Manager.js +2 -2
- package/dist/services/Manager.js.map +1 -1
- package/dist/tests/manager.unit.test.js +8 -1
- package/dist/tests/manager.unit.test.js.map +1 -1
- package/dist/tests/procaptchaWidget.unit.test.js +58 -2
- package/dist/tests/procaptchaWidget.unit.test.js.map +1 -1
- package/dist/tests/puzzleCanvas.unit.test.js +58 -0
- package/dist/tests/puzzleCanvas.unit.test.js.map +1 -1
- package/package.json +8 -8
|
@@ -45,8 +45,8 @@ rendering chunks...
|
|
|
45
45
|
computing gzip size...
|
|
46
46
|
dist/cjs/components/procaptchaPuzzle.cjs 0.47 kB │ gzip: 0.22 kB
|
|
47
47
|
dist/cjs/index.cjs 0.60 kB │ gzip: 0.21 kB
|
|
48
|
-
dist/cjs/
|
|
49
|
-
dist/cjs/
|
|
50
|
-
dist/cjs/components/puzzleCanvas.cjs
|
|
48
|
+
dist/cjs/services/Manager.cjs 8.66 kB │ gzip: 2.45 kB
|
|
49
|
+
dist/cjs/components/procaptchaWidget.cjs 8.86 kB │ gzip: 2.40 kB
|
|
50
|
+
dist/cjs/components/puzzleCanvas.cjs 16.87 kB │ gzip: 4.79 kB
|
|
51
51
|
|
|
52
|
-
[32m✓ built in
|
|
52
|
+
[32m✓ built in 71ms[39m
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
$ tsc --build --verbose
|
|
2
|
-
|
|
2
|
+
4:44:30 PM - Projects in this build:
|
|
3
3
|
* ../../dev/config/tsconfig.json
|
|
4
4
|
* ../util/tsconfig.json
|
|
5
5
|
* ../locale/tsconfig.json
|
|
@@ -17,37 +17,37 @@ $ tsc --build --verbose
|
|
|
17
17
|
* ../procaptcha-common/tsconfig.json
|
|
18
18
|
* tsconfig.json
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
4:44:30 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
4:44:30 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
4:44:30 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
4:44:30 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
4:44:30 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
4:44:30 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
4:44:30 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/logger.ts' is older than output '../logger/tsconfig.tsbuildinfo'
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
4:44:30 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
4:44:30 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/tests/productionProviderList.unit.test.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
4:44:30 PM - Project '../widget-skeleton/tsconfig.json' is up to date because newest input '../widget-skeleton/src/webComponent/createWidget.ts' is older than output '../widget-skeleton/tsconfig.tsbuildinfo'
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
4:44:30 PM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/sources/touch_support.ts' is older than output '../fingerprintjs/tsconfig.tsbuildinfo'
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
4:44:30 PM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
4:44:30 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/keyring/keyring.test.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
4:44:31 PM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/index.ts' is older than output '../account/tsconfig.tsbuildinfo'
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
4:44:31 PM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/state/managerLifecycle.ts' is older than output '../procaptcha-common/tsconfig.tsbuildinfo'
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
4:44:31 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
4:44:31 PM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-puzzle/tsconfig.json'...
|
|
53
53
|
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -47,8 +47,8 @@ computing gzip size...
|
|
|
47
47
|
dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
|
|
48
48
|
dist/components/procaptchaPuzzle.js 0.33 kB │ gzip: 0.19 kB
|
|
49
49
|
dist/index.js 0.38 kB │ gzip: 0.16 kB
|
|
50
|
-
dist/
|
|
51
|
-
dist/
|
|
52
|
-
dist/components/puzzleCanvas.js
|
|
50
|
+
dist/services/Manager.js 8.12 kB │ gzip: 2.41 kB
|
|
51
|
+
dist/components/procaptchaWidget.js 8.49 kB │ gzip: 2.40 kB
|
|
52
|
+
dist/components/puzzleCanvas.js 16.04 kB │ gzip: 4.78 kB
|
|
53
53
|
|
|
54
|
-
[32m✓ built in
|
|
54
|
+
[32m✓ built in 70ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# @prosopo/procaptcha-puzzle
|
|
2
2
|
|
|
3
|
+
## 2.17.1
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- Updated dependencies [1f36456]
|
|
7
|
+
- Updated dependencies [0e02b4b]
|
|
8
|
+
- @prosopo/types@5.15.1
|
|
9
|
+
- @prosopo/util@3.3.15
|
|
10
|
+
- @prosopo/procaptcha-common@2.21.1
|
|
11
|
+
- @prosopo/api@4.6.1
|
|
12
|
+
- @prosopo/common@3.1.65
|
|
13
|
+
- @prosopo/locale@3.9.1
|
|
14
|
+
- @prosopo/util-crypto@13.6.0
|
|
15
|
+
- @prosopo/widget-skeleton@2.10.1
|
|
16
|
+
|
|
17
|
+
## 2.17.0
|
|
18
|
+
### Minor Changes
|
|
19
|
+
|
|
20
|
+
- 4570692: Let a user swap the puzzle captcha for an image challenge, on sites where Prosopo has switched it on.
|
|
21
|
+
|
|
22
|
+
Sites get a new staff-only setting, `widgetFeatureFlags.puzzleImageSwitch`. It is off by default and has no stored default. When it is on and the site allows image challenges, the puzzle response says `imageSwitchAvailable: true`. The puzzle then shows a small grid icon next to its title, with a "Switch to an image challenge" tooltip on hover or keyboard focus. After two wrong answers or refreshes in a row, the icon fills with the primary colour and its tooltip shows without a hover, because a touch screen has no hover. The tooltip goes away once the user starts moving the piece.
|
|
23
|
+
|
|
24
|
+
Pressing it re-mints the session the same way refresh does, with `switchToImage: true`. The provider only honours that when the request is a refresh of a puzzle session on the same site and the switch is on. The new session is then an image challenge with reason `PUZZLE_USER_SWITCH`. Like the refresh limit, it only ever moves from puzzle to image, so a client that fakes the request can only make its own challenge harder.
|
|
25
|
+
|
|
26
|
+
Also fixes a wrong puzzle answer restarting the whole widget. The user was sent back to the checkbox instead of getting a new puzzle with "Not quite — try again", and a wasted `/frictionless` request went out. The puzzle now retries in place.
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- Updated dependencies [4570692]
|
|
31
|
+
- @prosopo/procaptcha-common@2.21.0
|
|
32
|
+
- @prosopo/api@4.6.0
|
|
33
|
+
- @prosopo/types@5.15.0
|
|
34
|
+
- @prosopo/locale@3.9.0
|
|
35
|
+
- @prosopo/common@3.1.64
|
|
36
|
+
|
|
3
37
|
## 2.16.0
|
|
4
38
|
### Minor Changes
|
|
5
39
|
|
|
@@ -5,6 +5,7 @@ let _prosopo_procaptcha_common = require("@prosopo/procaptcha-common");
|
|
|
5
5
|
let _prosopo_types = require("@prosopo/types");
|
|
6
6
|
let _prosopo_widget_skeleton = require("@prosopo/widget-skeleton");
|
|
7
7
|
//#region src/components/procaptchaWidget.ts
|
|
8
|
+
var IMAGE_SWITCH_HIGHLIGHT_AFTER = 2;
|
|
8
9
|
var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
9
10
|
const teardown = new _prosopo_procaptcha_common.Teardown();
|
|
10
11
|
const config = props.config;
|
|
@@ -25,7 +26,8 @@ var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
|
25
26
|
let checkbox;
|
|
26
27
|
let puzzle;
|
|
27
28
|
const updateState = (0, _prosopo_procaptcha_common.buildUpdateState)(store.state, store.update);
|
|
28
|
-
const
|
|
29
|
+
const remintsSession = void 0 !== frictionlessState?.sessionId && void 0 !== props.onReload;
|
|
30
|
+
const manager = require_Manager.Manager(config, store.state, updateState, callbacks, frictionlessState, () => honeypot?.getValue(), { widgetReloadsOnFailure: remintsSession });
|
|
29
31
|
const root = (0, _prosopo_procaptcha_common.createElement)("div");
|
|
30
32
|
container.appendChild(root);
|
|
31
33
|
if (frictionlessState?.hp) honeypot = (0, _prosopo_procaptcha_common.mountHoneypot)(root, { encodedQuestion: frictionlessState.hp });
|
|
@@ -52,10 +54,10 @@ var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
|
52
54
|
await replaceChallenge({ showRetry: true });
|
|
53
55
|
};
|
|
54
56
|
const replaceChallenge = async (options) => {
|
|
55
|
-
if (
|
|
57
|
+
if (remintsSession) {
|
|
56
58
|
puzzlePhase = "submitting";
|
|
57
59
|
scheduler.schedule();
|
|
58
|
-
props.onReload(lastCoords?.x, lastCoords?.y, options);
|
|
60
|
+
props.onReload?.(lastCoords?.x, lastCoords?.y, options);
|
|
59
61
|
return;
|
|
60
62
|
}
|
|
61
63
|
try {
|
|
@@ -84,6 +86,18 @@ var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
|
84
86
|
scheduler.schedule();
|
|
85
87
|
replaceChallenge({ refresh: true });
|
|
86
88
|
};
|
|
89
|
+
const handleSwitchToImage = () => {
|
|
90
|
+
if ("dragging" !== puzzlePhase) return;
|
|
91
|
+
callbacks.onReload?.();
|
|
92
|
+
showRetry = false;
|
|
93
|
+
puzzlePhase = "submitting";
|
|
94
|
+
scheduler.schedule();
|
|
95
|
+
replaceChallenge({
|
|
96
|
+
refresh: true,
|
|
97
|
+
switchToImage: true
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
const canSwitchToImage = (challenge) => true === challenge.imageSwitchAvailable && remintsSession;
|
|
87
101
|
const handleDismiss = () => {
|
|
88
102
|
puzzlePhase = "checkbox";
|
|
89
103
|
challengeData = null;
|
|
@@ -108,7 +122,11 @@ var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
|
108
122
|
anchor: props.container,
|
|
109
123
|
onDismiss: handleDismiss,
|
|
110
124
|
audioAlternative: (0, _prosopo_procaptcha_common.audioAlternativeOffer)(props, translator.isReady() ? translator.t("WIDGET.AUDIO_ALTERNATIVE") : ""),
|
|
111
|
-
onRefresh: handleRefresh
|
|
125
|
+
onRefresh: handleRefresh,
|
|
126
|
+
...canSwitchToImage(challenge) && {
|
|
127
|
+
onSwitchToImage: handleSwitchToImage,
|
|
128
|
+
imageSwitchHighlighted: (props.startReplacementCount ?? 0) >= IMAGE_SWITCH_HIGHLIGHT_AFTER
|
|
129
|
+
}
|
|
112
130
|
});
|
|
113
131
|
const runErrorEffect = () => {
|
|
114
132
|
if (store.state.error === lastError) return;
|
|
@@ -104,6 +104,7 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
104
104
|
let shakeTimer;
|
|
105
105
|
let announceTimer;
|
|
106
106
|
let keyboardDragging = false;
|
|
107
|
+
let hasMovedPiece = false;
|
|
107
108
|
const baseId = `prosopo-puzzle-${instanceCount++}`;
|
|
108
109
|
const instructionId = `${baseId}-instruction`;
|
|
109
110
|
const keyboardHintId = `${baseId}-keyboard-hint`;
|
|
@@ -182,6 +183,13 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
182
183
|
top: "50%",
|
|
183
184
|
transform: "translateY(-50%)"
|
|
184
185
|
} });
|
|
186
|
+
const switchSlot = (0, _prosopo_procaptcha_common.createElement)("div", { style: {
|
|
187
|
+
position: "absolute",
|
|
188
|
+
left: "8px",
|
|
189
|
+
top: "50%",
|
|
190
|
+
transform: "translateY(-50%)",
|
|
191
|
+
zIndex: "1"
|
|
192
|
+
} });
|
|
185
193
|
const instruction = (0, _prosopo_procaptcha_common.createElement)("div", {
|
|
186
194
|
style: {
|
|
187
195
|
position: "relative",
|
|
@@ -194,7 +202,11 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
194
202
|
fontWeight: 500,
|
|
195
203
|
transition: "color 0.3s ease, border-color 0.3s ease"
|
|
196
204
|
},
|
|
197
|
-
children: [
|
|
205
|
+
children: [
|
|
206
|
+
instructionText,
|
|
207
|
+
refreshSlot,
|
|
208
|
+
switchSlot
|
|
209
|
+
]
|
|
198
210
|
});
|
|
199
211
|
const panel = (0, _prosopo_procaptcha_common.createElement)("div", {
|
|
200
212
|
style: {
|
|
@@ -215,6 +227,29 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
215
227
|
}
|
|
216
228
|
});
|
|
217
229
|
const refreshButton = props.onRefresh ? (0, _prosopo_procaptcha_common.mountReloadButton)(refreshSlot, refreshButtonProps()) : void 0;
|
|
230
|
+
const imageSwitchButtonProps = () => ({
|
|
231
|
+
themeColor: _prosopo_widget_skeleton.lightTheme === props.theme ? "light" : "dark",
|
|
232
|
+
label: t("WIDGET.PUZZLE.SWITCH_TO_IMAGE", { defaultValue: "Switch to an image challenge" }),
|
|
233
|
+
tooltipPinned: true === props.imageSwitchHighlighted && !hasMovedPiece,
|
|
234
|
+
onSwitch: () => {
|
|
235
|
+
if (!props.submitting && !dragging) props.onSwitchToImage?.();
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
let imageSwitchButton;
|
|
239
|
+
const hidePinnedSwitchTooltip = () => {
|
|
240
|
+
if (hasMovedPiece) return;
|
|
241
|
+
hasMovedPiece = true;
|
|
242
|
+
imageSwitchButton?.update(imageSwitchButtonProps());
|
|
243
|
+
};
|
|
244
|
+
const syncImageSwitchButton = () => {
|
|
245
|
+
if (void 0 === props.onSwitchToImage) {
|
|
246
|
+
imageSwitchButton?.destroy();
|
|
247
|
+
imageSwitchButton = void 0;
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
if (imageSwitchButton) imageSwitchButton.update(imageSwitchButtonProps());
|
|
251
|
+
else imageSwitchButton = (0, _prosopo_procaptcha_common.mountImageSwitchButton)(switchSlot, imageSwitchButtonProps());
|
|
252
|
+
};
|
|
218
253
|
const surfaceProps = () => ({
|
|
219
254
|
show: true,
|
|
220
255
|
placement: props.placement,
|
|
@@ -299,6 +334,8 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
299
334
|
});
|
|
300
335
|
(0, _prosopo_procaptcha_common.applyStyles)(refreshSlot, { visibility: props.submitting ? "hidden" : "visible" });
|
|
301
336
|
refreshButton?.update(refreshButtonProps());
|
|
337
|
+
syncImageSwitchButton();
|
|
338
|
+
(0, _prosopo_procaptcha_common.applyStyles)(switchSlot, { visibility: props.submitting ? "hidden" : "visible" });
|
|
302
339
|
(0, _prosopo_procaptcha_common.applyStyles)(area, {
|
|
303
340
|
background: `linear-gradient(135deg, ${theme.palette.surface} 0%, ${theme.palette.primaryContainer.main} 50%, ${theme.palette.surface} 100%)`,
|
|
304
341
|
opacity: props.submitting ? .6 : 1,
|
|
@@ -354,6 +391,7 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
354
391
|
dragging = true;
|
|
355
392
|
keyboardDragging = false;
|
|
356
393
|
puzzleEvents = [];
|
|
394
|
+
hidePinnedSwitchTooltip();
|
|
357
395
|
const offset = containerOffset();
|
|
358
396
|
dragOffset = {
|
|
359
397
|
x: clientX - offset.x - posX,
|
|
@@ -366,6 +404,7 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
366
404
|
if (!keyboardDragging) {
|
|
367
405
|
keyboardDragging = true;
|
|
368
406
|
puzzleEvents = [];
|
|
407
|
+
hidePinnedSwitchTooltip();
|
|
369
408
|
}
|
|
370
409
|
posX = clamp(posX + deltaX, 0, CONTAINER_WIDTH);
|
|
371
410
|
posY = clamp(posY + deltaY, 0, CONTAINER_HEIGHT);
|
|
@@ -447,7 +486,9 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
447
486
|
announce(t("WIDGET.PUZZLE.CHECKING", { defaultValue: "Checking your answer" }));
|
|
448
487
|
};
|
|
449
488
|
const announceRetry = () => {
|
|
450
|
-
|
|
489
|
+
const retry = t("WIDGET.PUZZLE.RETRY_ANNOUNCEMENT", { defaultValue: "Not quite. A new puzzle has loaded and the piece is back at the start." });
|
|
490
|
+
const offerSwitch = void 0 !== props.onSwitchToImage && true === props.imageSwitchHighlighted;
|
|
491
|
+
announce(offerSwitch ? `${retry} ${t("WIDGET.PUZZLE.SWITCH_TO_IMAGE_ANNOUNCEMENT", { defaultValue: "You can also switch to an image challenge." })}` : retry);
|
|
451
492
|
};
|
|
452
493
|
if (props.submitting) announceSubmitting();
|
|
453
494
|
else if (props.showRetry) announceRetry();
|
|
@@ -473,6 +514,7 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
473
514
|
teardown.run();
|
|
474
515
|
audioAlternativeFooter.destroy();
|
|
475
516
|
refreshButton?.destroy();
|
|
517
|
+
imageSwitchButton?.destroy();
|
|
476
518
|
surface.destroy();
|
|
477
519
|
}
|
|
478
520
|
};
|
|
@@ -6,7 +6,7 @@ let _prosopo_common = require("@prosopo/common");
|
|
|
6
6
|
let _prosopo_util = require("@prosopo/util");
|
|
7
7
|
let _prosopo_util_crypto = require("@prosopo/util-crypto");
|
|
8
8
|
//#region src/services/Manager.ts
|
|
9
|
-
var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState, getHoneypotValue) => {
|
|
9
|
+
var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState, getHoneypotValue, options = {}) => {
|
|
10
10
|
const events = (0, _prosopo_procaptcha_common.getDefaultEvents)(callbacks);
|
|
11
11
|
let storedChallengeResponse;
|
|
12
12
|
let storedProviderApi;
|
|
@@ -34,7 +34,7 @@ var Manager = (configInput, state, onStateUpdate, callbacks, frictionlessState,
|
|
|
34
34
|
loading: false
|
|
35
35
|
});
|
|
36
36
|
events.onFailed();
|
|
37
|
-
resetState(frictionlessState?.restart);
|
|
37
|
+
resetState(options.widgetReloadsOnFailure ? void 0 : frictionlessState?.restart);
|
|
38
38
|
};
|
|
39
39
|
const getConfig = () => {
|
|
40
40
|
const config = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procaptchaWidget.d.ts","sourceRoot":"","sources":["../../src/components/procaptchaWidget.ts"],"names":[],"mappings":"AAmCA,OAAO,EAGN,KAAK,eAAe,EAIpB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"procaptchaWidget.d.ts","sourceRoot":"","sources":["../../src/components/procaptchaWidget.ts"],"names":[],"mappings":"AAmCA,OAAO,EAGN,KAAK,eAAe,EAIpB,MAAM,gBAAgB,CAAC;AAWxB,MAAM,WAAW,sBAAsB;IACtC,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,eAAO,MAAM,2BAA2B,cAC5B,WAAW,SACf,eAAe,KACpB,sBAkZF,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { PROCAPTCHA_EXECUTE_EVENT, Teardown, audioAlternativeOffer, buildUpdateS
|
|
|
6
6
|
import { ModeEnum } from "@prosopo/types";
|
|
7
7
|
import { darkTheme, lightTheme } from "@prosopo/widget-skeleton";
|
|
8
8
|
//#region src/components/procaptchaWidget.ts
|
|
9
|
+
var IMAGE_SWITCH_HIGHLIGHT_AFTER = 2;
|
|
9
10
|
var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
10
11
|
const teardown = new Teardown();
|
|
11
12
|
const config = props.config;
|
|
@@ -26,7 +27,8 @@ var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
|
26
27
|
let checkbox;
|
|
27
28
|
let puzzle;
|
|
28
29
|
const updateState = buildUpdateState(store.state, store.update);
|
|
29
|
-
const
|
|
30
|
+
const remintsSession = void 0 !== frictionlessState?.sessionId && void 0 !== props.onReload;
|
|
31
|
+
const manager = Manager(config, store.state, updateState, callbacks, frictionlessState, () => honeypot?.getValue(), { widgetReloadsOnFailure: remintsSession });
|
|
30
32
|
const root = createElement("div");
|
|
31
33
|
container.appendChild(root);
|
|
32
34
|
if (frictionlessState?.hp) honeypot = mountHoneypot(root, { encodedQuestion: frictionlessState.hp });
|
|
@@ -53,10 +55,10 @@ var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
|
53
55
|
await replaceChallenge({ showRetry: true });
|
|
54
56
|
};
|
|
55
57
|
const replaceChallenge = async (options) => {
|
|
56
|
-
if (
|
|
58
|
+
if (remintsSession) {
|
|
57
59
|
puzzlePhase = "submitting";
|
|
58
60
|
scheduler.schedule();
|
|
59
|
-
props.onReload(lastCoords?.x, lastCoords?.y, options);
|
|
61
|
+
props.onReload?.(lastCoords?.x, lastCoords?.y, options);
|
|
60
62
|
return;
|
|
61
63
|
}
|
|
62
64
|
try {
|
|
@@ -85,6 +87,18 @@ var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
|
85
87
|
scheduler.schedule();
|
|
86
88
|
replaceChallenge({ refresh: true });
|
|
87
89
|
};
|
|
90
|
+
const handleSwitchToImage = () => {
|
|
91
|
+
if ("dragging" !== puzzlePhase) return;
|
|
92
|
+
callbacks.onReload?.();
|
|
93
|
+
showRetry = false;
|
|
94
|
+
puzzlePhase = "submitting";
|
|
95
|
+
scheduler.schedule();
|
|
96
|
+
replaceChallenge({
|
|
97
|
+
refresh: true,
|
|
98
|
+
switchToImage: true
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
const canSwitchToImage = (challenge) => true === challenge.imageSwitchAvailable && remintsSession;
|
|
88
102
|
const handleDismiss = () => {
|
|
89
103
|
puzzlePhase = "checkbox";
|
|
90
104
|
challengeData = null;
|
|
@@ -109,7 +123,11 @@ var mountProcaptchaPuzzleWidget = (container, props) => {
|
|
|
109
123
|
anchor: props.container,
|
|
110
124
|
onDismiss: handleDismiss,
|
|
111
125
|
audioAlternative: audioAlternativeOffer(props, translator.isReady() ? translator.t("WIDGET.AUDIO_ALTERNATIVE") : ""),
|
|
112
|
-
onRefresh: handleRefresh
|
|
126
|
+
onRefresh: handleRefresh,
|
|
127
|
+
...canSwitchToImage(challenge) && {
|
|
128
|
+
onSwitchToImage: handleSwitchToImage,
|
|
129
|
+
imageSwitchHighlighted: (props.startReplacementCount ?? 0) >= IMAGE_SWITCH_HIGHLIGHT_AFTER
|
|
130
|
+
}
|
|
113
131
|
});
|
|
114
132
|
const runErrorEffect = () => {
|
|
115
133
|
if (store.state.error === lastError) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procaptchaWidget.js","sourceRoot":"","sources":["../../src/components/procaptchaWidget.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,gBAAgB,EAChB,WAAW,EACX,oBAAoB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIN,wBAAwB,EAExB,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,kBAAkB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEN,QAAQ,GAKR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAA0B,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAQ9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,SAAsB,EACtB,KAAsB,EACG,EAAE;IAC3B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC;IAEvD,MAAM,KAAK,GAA0B,qBAAqB,EAAE,CAAC;IAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAgB,UAAU,CAAC;IAC1C,IAAI,aAAa,GAAoC,IAAI,CAAC;IAG1D,IAAI,SAAS,GAAG,IAAI,KAAK,KAAK,CAAC,cAAc,CAAC;IAC9C,IAAI,SAAS,GAA6B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;IAG5D,IAAI,UAAU,GAAoC,IAAI,CAAC;IACvD,IAAI,uBAAuB,GAAG,KAAK,CAAC;IAEpC,IAAI,QAAuC,CAAC;IAC5C,IAAI,QAA8C,CAAC;IACnD,IAAI,MAAgD,CAAC;IAGrD,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,OAAO,CACtB,MAAM,EACN,KAAK,CAAC,KAAK,EACX,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAC1B,CAAC;IAEF,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE5B,IAAI,iBAAiB,EAAE,EAAE,EAAE,CAAC;QAC3B,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,oBAAoB,GAAG,KAAK,EACjC,MAAc,EACd,MAAc,EACd,YAA2B,EACX,EAAE;QAClB,WAAW,GAAG,YAAY,CAAC;QAC3B,SAAS,CAAC,QAAQ,EAAE,CAAC;QAErB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC;YACJ,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,SAAS,CAAC,OAAO,EAAE,CAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACzD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACd,WAAW,GAAG,UAAU,CAAC;YACzB,aAAa,GAAG,IAAI,CAAC;YACrB,SAAS,GAAG,KAAK,CAAC;YAClB,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO;QACR,CAAC;QAGD,SAAS,GAAG,IAAI,CAAC;QACjB,WAAW,GAAG,UAAU,CAAC;QACzB,SAAS,CAAC,QAAQ,EAAE,CAAC;QAErB,MAAM,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAsB,EAAiB,EAAE;QAQxE,IAAI,iBAAiB,EAAE,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpD,WAAW,GAAG,YAAY,CAAC;YAC3B,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,YAAY,EAAE,CAAC;gBAClB,aAAa,GAAG,YAAY,CAAC;gBAC7B,WAAW,GAAG,UAAU,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBAEP,WAAW,GAAG,UAAU,CAAC;gBACzB,aAAa,GAAG,IAAI,CAAC;gBACrB,SAAS,GAAG,KAAK,CAAC;YACnB,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,WAAW,GAAG,UAAU,CAAC;YACzB,aAAa,GAAG,IAAI,CAAC;YACrB,SAAS,GAAG,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,KAAK,CAAC;QAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC,CAAC;IAIF,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO;QACR,CAAC;QACD,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;QACvB,SAAS,GAAG,KAAK,CAAC;QAClB,WAAW,GAAG,YAAY,CAAC;QAC3B,SAAS,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;IAGF,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,WAAW,GAAG,UAAU,CAAC;QACzB,aAAa,GAAG,IAAI,CAAC;QACrB,SAAS,GAAG,KAAK,CAAC;QAClB,OAAO,GAAG,KAAK,CAAC;QAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CACnB,SAAmC,EACf,EAAE,CAAC,CAAC;QACxB,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,CAAC,MAAc,EAAE,MAAc,EAAE,MAAqB,EAAE,EAAE;YACrE,KAAK,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,SAAS;QACT,UAAU,EAAE,YAAY,KAAK,WAAW;QACxC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACxD,UAAU;QACV,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,KAAK,CAAC,SAAS;QACvB,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,qBAAqB,CACtC,KAAK,EACL,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CACpE;QACD,SAAS,EAAE,aAAa;KACxB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,GAAG,EAAE;QAC3B,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO;QACR,CAAC;QACD,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QACD,OAAO,GAAG,KAAK,CAAC;QAChB,WAAW,GAAG,UAAU,CAAC;QACzB,aAAa,GAAG,IAAI,CAAC;QACrB,SAAS,GAAG,KAAK,CAAC;QAClB,IAAI,0BAA0B,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC1D,OAAO;QACR,CAAC;QAOD,MAAM,WAAW,GAChB,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,uBAAuB,CAAC;YACxD,SAAS,KAAK,iBAAiB,CAAC;QACjC,IAAI,WAAW,EAAE,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC5D,uBAAuB,GAAG,IAAI,CAAC;YAC/B,KAAK,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO;QACR,CAAC;QACD,IAAI,iBAAiB,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,cAAc,EAAE,CAAC;QAIjB,MAAM,WAAW,GAChB,CAAC,UAAU,KAAK,WAAW,IAAI,YAAY,KAAK,WAAW,CAAC;YAC5D,IAAI,KAAK,aAAa,CAAC;QAExB,IAAI,WAAW,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3C,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;YAC3C,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,SAAS,CAAC;QACpB,CAAC;QAED,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,aAAa,GAAG,GAAkB,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;QAC5B,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACxD,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;QACxE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;YACvB,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1D,CAAC,CAAC,SAAS;QACZ,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE;YAC5C,YAAY,EAAE,6BAA6B;SAC3C,CAAC;QACF,OAAO,EAAE,OAAO,IAAI,YAAY,KAAK,WAAW;QAChD,QAAQ,EAAE,KAAK,EACd,KAA8C,EAC9B,EAAE;YAClB,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO;YACR,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,CAAC,QAAQ,EAAE,CAAC;YAErB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC3C,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE5C,IAAI,SAAS,EAAE,CAAC;oBACf,aAAa,GAAG,SAAS,CAAC;oBAC1B,WAAW,GAAG,UAAU,CAAC;gBAC1B,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAIhB,SAAS,CAAC,OAAO,EAAE,CAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACzD,CAAC;YACH,CAAC;oBAAS,CAAC;gBAGV,OAAO,GAAG,KAAK,CAAC;gBAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC;QACF,CAAC;KACD,CAAC,CAAC;IAIH,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAOvD,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,KAAK,CAAC,KAAK,IAAI,EAAE;YAChB,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO;YACR,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,IAAI,SAAS,EAAE,CAAC;oBACf,aAAa,GAAG,SAAS,CAAC;oBAC1B,WAAW,GAAG,UAAU,CAAC;gBAC1B,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,CAAC,OAAO,EAAE,CAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACzD,CAAC;YACH,CAAC;oBAAS,CAAC;gBACV,OAAO,GAAG,KAAK,CAAC;gBAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtB,CAAC;QACF,CAAC,CAAC,EAAE,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,QAAQ,CAAC,gBAAgB,CACxB,KAAK,CAAC,SAAS,EACf,wBAAwB,EACxB,aAAa,CACb,CAAC;IACH,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QACjB,QAAQ,CAAC,gBAAgB,CACxB,QAAQ,EACR,wBAAwB,EACxB,aAAa,CACb,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACvC,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;QACF,CAAC;aAAM,CAAC;YAKP,KAAK,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,GAAG,IAAI,CAAC;QAGf,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;QACjC,UAAU,GAAG,MAAM,IAAI,IAAI,CAAC;QAC5B,SAAS,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACjD,CAAC,SAA+C,EAAE,EAAE;YACnD,IAAI,SAAS,EAAE,CAAC;gBACf,aAAa,GAAG,SAAS,CAAC;gBAC1B,WAAW,GAAG,UAAU,CAAC;YAC1B,CAAC;YACD,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,EACD,GAAG,EAAE;YACJ,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC,CACD,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC;IAET,OAAO;QACN,OAAO,EAAE,GAAG,EAAE;YACb,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,CAAC;YAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;YACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"procaptchaWidget.js","sourceRoot":"","sources":["../../src/components/procaptchaWidget.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ export interface PuzzleCanvasProps {
|
|
|
18
18
|
onDismiss?: () => void;
|
|
19
19
|
audioAlternative?: AudioAlternativeOffer;
|
|
20
20
|
onRefresh?: () => void;
|
|
21
|
+
onSwitchToImage?: () => void;
|
|
22
|
+
imageSwitchHighlighted?: boolean;
|
|
21
23
|
}
|
|
22
24
|
export declare const mountPuzzleCanvas: (initialProps: PuzzleCanvasProps) => Component<PuzzleCanvasProps>;
|
|
23
25
|
//# sourceMappingURL=puzzleCanvas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puzzleCanvas.d.ts","sourceRoot":"","sources":["../../src/components/puzzleCanvas.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAEN,KAAK,qBAAqB,EAE1B,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"puzzleCanvas.d.ts","sourceRoot":"","sources":["../../src/components/puzzleCanvas.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAEN,KAAK,qBAAqB,EAE1B,KAAK,SAAS,EAYd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,KAAK,EAAc,MAAM,0BAA0B,CAAC;AAElE,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,MAAM,CAAC;IAEnB,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,WAAW,EAAE,KACvB,IAAI,CAAC;IACV,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IAEzC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAG7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACjC;AA+DD,eAAO,MAAM,iBAAiB,iBACf,iBAAiB,KAC7B,SAAS,CAAC,iBAAiB,CAopB7B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Teardown, applyAttributes, applyStyles, createElement, isEventTrusted, mountAudioAlternativeFooter, mountChallengeSurface, mountReloadButton } from "@prosopo/procaptcha-common";
|
|
1
|
+
import { Teardown, applyAttributes, applyStyles, createElement, isEventTrusted, mountAudioAlternativeFooter, mountChallengeSurface, mountImageSwitchButton, mountReloadButton } from "@prosopo/procaptcha-common";
|
|
2
2
|
import { lightTheme } from "@prosopo/widget-skeleton";
|
|
3
3
|
//#region src/components/puzzleCanvas.ts
|
|
4
4
|
var CONTAINER_WIDTH = 300;
|
|
@@ -104,6 +104,7 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
104
104
|
let shakeTimer;
|
|
105
105
|
let announceTimer;
|
|
106
106
|
let keyboardDragging = false;
|
|
107
|
+
let hasMovedPiece = false;
|
|
107
108
|
const baseId = `prosopo-puzzle-${instanceCount++}`;
|
|
108
109
|
const instructionId = `${baseId}-instruction`;
|
|
109
110
|
const keyboardHintId = `${baseId}-keyboard-hint`;
|
|
@@ -182,6 +183,13 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
182
183
|
top: "50%",
|
|
183
184
|
transform: "translateY(-50%)"
|
|
184
185
|
} });
|
|
186
|
+
const switchSlot = createElement("div", { style: {
|
|
187
|
+
position: "absolute",
|
|
188
|
+
left: "8px",
|
|
189
|
+
top: "50%",
|
|
190
|
+
transform: "translateY(-50%)",
|
|
191
|
+
zIndex: "1"
|
|
192
|
+
} });
|
|
185
193
|
const instruction = createElement("div", {
|
|
186
194
|
style: {
|
|
187
195
|
position: "relative",
|
|
@@ -194,7 +202,11 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
194
202
|
fontWeight: 500,
|
|
195
203
|
transition: "color 0.3s ease, border-color 0.3s ease"
|
|
196
204
|
},
|
|
197
|
-
children: [
|
|
205
|
+
children: [
|
|
206
|
+
instructionText,
|
|
207
|
+
refreshSlot,
|
|
208
|
+
switchSlot
|
|
209
|
+
]
|
|
198
210
|
});
|
|
199
211
|
const panel = createElement("div", {
|
|
200
212
|
style: {
|
|
@@ -215,6 +227,29 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
215
227
|
}
|
|
216
228
|
});
|
|
217
229
|
const refreshButton = props.onRefresh ? mountReloadButton(refreshSlot, refreshButtonProps()) : void 0;
|
|
230
|
+
const imageSwitchButtonProps = () => ({
|
|
231
|
+
themeColor: lightTheme === props.theme ? "light" : "dark",
|
|
232
|
+
label: t("WIDGET.PUZZLE.SWITCH_TO_IMAGE", { defaultValue: "Switch to an image challenge" }),
|
|
233
|
+
tooltipPinned: true === props.imageSwitchHighlighted && !hasMovedPiece,
|
|
234
|
+
onSwitch: () => {
|
|
235
|
+
if (!props.submitting && !dragging) props.onSwitchToImage?.();
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
let imageSwitchButton;
|
|
239
|
+
const hidePinnedSwitchTooltip = () => {
|
|
240
|
+
if (hasMovedPiece) return;
|
|
241
|
+
hasMovedPiece = true;
|
|
242
|
+
imageSwitchButton?.update(imageSwitchButtonProps());
|
|
243
|
+
};
|
|
244
|
+
const syncImageSwitchButton = () => {
|
|
245
|
+
if (void 0 === props.onSwitchToImage) {
|
|
246
|
+
imageSwitchButton?.destroy();
|
|
247
|
+
imageSwitchButton = void 0;
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
if (imageSwitchButton) imageSwitchButton.update(imageSwitchButtonProps());
|
|
251
|
+
else imageSwitchButton = mountImageSwitchButton(switchSlot, imageSwitchButtonProps());
|
|
252
|
+
};
|
|
218
253
|
const surfaceProps = () => ({
|
|
219
254
|
show: true,
|
|
220
255
|
placement: props.placement,
|
|
@@ -299,6 +334,8 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
299
334
|
});
|
|
300
335
|
applyStyles(refreshSlot, { visibility: props.submitting ? "hidden" : "visible" });
|
|
301
336
|
refreshButton?.update(refreshButtonProps());
|
|
337
|
+
syncImageSwitchButton();
|
|
338
|
+
applyStyles(switchSlot, { visibility: props.submitting ? "hidden" : "visible" });
|
|
302
339
|
applyStyles(area, {
|
|
303
340
|
background: `linear-gradient(135deg, ${theme.palette.surface} 0%, ${theme.palette.primaryContainer.main} 50%, ${theme.palette.surface} 100%)`,
|
|
304
341
|
opacity: props.submitting ? .6 : 1,
|
|
@@ -354,6 +391,7 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
354
391
|
dragging = true;
|
|
355
392
|
keyboardDragging = false;
|
|
356
393
|
puzzleEvents = [];
|
|
394
|
+
hidePinnedSwitchTooltip();
|
|
357
395
|
const offset = containerOffset();
|
|
358
396
|
dragOffset = {
|
|
359
397
|
x: clientX - offset.x - posX,
|
|
@@ -366,6 +404,7 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
366
404
|
if (!keyboardDragging) {
|
|
367
405
|
keyboardDragging = true;
|
|
368
406
|
puzzleEvents = [];
|
|
407
|
+
hidePinnedSwitchTooltip();
|
|
369
408
|
}
|
|
370
409
|
posX = clamp(posX + deltaX, 0, CONTAINER_WIDTH);
|
|
371
410
|
posY = clamp(posY + deltaY, 0, CONTAINER_HEIGHT);
|
|
@@ -447,7 +486,9 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
447
486
|
announce(t("WIDGET.PUZZLE.CHECKING", { defaultValue: "Checking your answer" }));
|
|
448
487
|
};
|
|
449
488
|
const announceRetry = () => {
|
|
450
|
-
|
|
489
|
+
const retry = t("WIDGET.PUZZLE.RETRY_ANNOUNCEMENT", { defaultValue: "Not quite. A new puzzle has loaded and the piece is back at the start." });
|
|
490
|
+
const offerSwitch = void 0 !== props.onSwitchToImage && true === props.imageSwitchHighlighted;
|
|
491
|
+
announce(offerSwitch ? `${retry} ${t("WIDGET.PUZZLE.SWITCH_TO_IMAGE_ANNOUNCEMENT", { defaultValue: "You can also switch to an image challenge." })}` : retry);
|
|
451
492
|
};
|
|
452
493
|
if (props.submitting) announceSubmitting();
|
|
453
494
|
else if (props.showRetry) announceRetry();
|
|
@@ -473,6 +514,7 @@ var mountPuzzleCanvas = (initialProps) => {
|
|
|
473
514
|
teardown.run();
|
|
474
515
|
audioAlternativeFooter.destroy();
|
|
475
516
|
refreshButton?.destroy();
|
|
517
|
+
imageSwitchButton?.destroy();
|
|
476
518
|
surface.destroy();
|
|
477
519
|
}
|
|
478
520
|
};
|