@cxpinsight/react-native 0.2.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 +21 -0
- package/README.md +131 -0
- package/babel.js +101 -0
- package/instrumented/Pressable.d.ts +2 -0
- package/instrumented/Pressable.js +2 -0
- package/instrumented/ScrollView.d.ts +2 -0
- package/instrumented/ScrollView.js +2 -0
- package/instrumented/TextInput.d.ts +2 -0
- package/instrumented/TextInput.js +2 -0
- package/instrumented/TouchableOpacity.d.ts +2 -0
- package/instrumented/TouchableOpacity.js +2 -0
- package/lib/CXPinsight.d.ts +113 -0
- package/lib/CXPinsight.d.ts.map +1 -0
- package/lib/CXPinsight.js +831 -0
- package/lib/CXPinsight.js.map +1 -0
- package/lib/CXPinsightProvider.d.ts +19 -0
- package/lib/CXPinsightProvider.d.ts.map +1 -0
- package/lib/CXPinsightProvider.js +382 -0
- package/lib/CXPinsightProvider.js.map +1 -0
- package/lib/core/autoScreenTracker.d.ts +20 -0
- package/lib/core/autoScreenTracker.d.ts.map +1 -0
- package/lib/core/autoScreenTracker.js +66 -0
- package/lib/core/autoScreenTracker.js.map +1 -0
- package/lib/core/deepLinkTracker.d.ts +17 -0
- package/lib/core/deepLinkTracker.d.ts.map +1 -0
- package/lib/core/deepLinkTracker.js +81 -0
- package/lib/core/deepLinkTracker.js.map +1 -0
- package/lib/core/deviceInfo.d.ts +14 -0
- package/lib/core/deviceInfo.d.ts.map +1 -0
- package/lib/core/deviceInfo.js +166 -0
- package/lib/core/deviceInfo.js.map +1 -0
- package/lib/core/eventQueue.d.ts +23 -0
- package/lib/core/eventQueue.d.ts.map +1 -0
- package/lib/core/eventQueue.js +240 -0
- package/lib/core/eventQueue.js.map +1 -0
- package/lib/core/lifecycle.d.ts +18 -0
- package/lib/core/lifecycle.d.ts.map +1 -0
- package/lib/core/lifecycle.js +127 -0
- package/lib/core/lifecycle.js.map +1 -0
- package/lib/core/mobileRecorder.d.ts +15 -0
- package/lib/core/mobileRecorder.d.ts.map +1 -0
- package/lib/core/mobileRecorder.js +231 -0
- package/lib/core/mobileRecorder.js.map +1 -0
- package/lib/core/network.d.ts +10 -0
- package/lib/core/network.d.ts.map +1 -0
- package/lib/core/network.js +74 -0
- package/lib/core/network.js.map +1 -0
- package/lib/core/networkCapture.d.ts +22 -0
- package/lib/core/networkCapture.d.ts.map +1 -0
- package/lib/core/networkCapture.js +100 -0
- package/lib/core/networkCapture.js.map +1 -0
- package/lib/core/scrollCapture.d.ts +48 -0
- package/lib/core/scrollCapture.d.ts.map +1 -0
- package/lib/core/scrollCapture.js +221 -0
- package/lib/core/scrollCapture.js.map +1 -0
- package/lib/core/session.d.ts +15 -0
- package/lib/core/session.d.ts.map +1 -0
- package/lib/core/session.js +157 -0
- package/lib/core/session.js.map +1 -0
- package/lib/core/storage.d.ts +11 -0
- package/lib/core/storage.d.ts.map +1 -0
- package/lib/core/storage.js +59 -0
- package/lib/core/storage.js.map +1 -0
- package/lib/core/triggerEngine.d.ts +56 -0
- package/lib/core/triggerEngine.d.ts.map +1 -0
- package/lib/core/triggerEngine.js +432 -0
- package/lib/core/triggerEngine.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +11 -0
- package/lib/index.js.map +1 -0
- package/lib/instrumented/Pressable.d.ts +9 -0
- package/lib/instrumented/Pressable.d.ts.map +1 -0
- package/lib/instrumented/Pressable.js +96 -0
- package/lib/instrumented/Pressable.js.map +1 -0
- package/lib/instrumented/ScrollView.d.ts +6 -0
- package/lib/instrumented/ScrollView.d.ts.map +1 -0
- package/lib/instrumented/ScrollView.js +101 -0
- package/lib/instrumented/ScrollView.js.map +1 -0
- package/lib/instrumented/TextInput.d.ts +9 -0
- package/lib/instrumented/TextInput.d.ts.map +1 -0
- package/lib/instrumented/TextInput.js +75 -0
- package/lib/instrumented/TextInput.js.map +1 -0
- package/lib/instrumented/TouchableOpacity.d.ts +11 -0
- package/lib/instrumented/TouchableOpacity.d.ts.map +1 -0
- package/lib/instrumented/TouchableOpacity.js +96 -0
- package/lib/instrumented/TouchableOpacity.js.map +1 -0
- package/lib/instrumented/index.d.ts +19 -0
- package/lib/instrumented/index.d.ts.map +1 -0
- package/lib/instrumented/index.js +28 -0
- package/lib/instrumented/index.js.map +1 -0
- package/lib/instrumented/interactionObserver.d.ts +29 -0
- package/lib/instrumented/interactionObserver.d.ts.map +1 -0
- package/lib/instrumented/interactionObserver.js +38 -0
- package/lib/instrumented/interactionObserver.js.map +1 -0
- package/lib/setup/AccessibilityScanner.d.ts +32 -0
- package/lib/setup/AccessibilityScanner.d.ts.map +1 -0
- package/lib/setup/AccessibilityScanner.js +127 -0
- package/lib/setup/AccessibilityScanner.js.map +1 -0
- package/lib/setup/ElementIdentifier.d.ts +65 -0
- package/lib/setup/ElementIdentifier.d.ts.map +1 -0
- package/lib/setup/ElementIdentifier.js +114 -0
- package/lib/setup/ElementIdentifier.js.map +1 -0
- package/lib/setup/ElementRegistry.d.ts +22 -0
- package/lib/setup/ElementRegistry.d.ts.map +1 -0
- package/lib/setup/ElementRegistry.js +47 -0
- package/lib/setup/ElementRegistry.js.map +1 -0
- package/lib/setup/SetupCodeEntry.d.ts +15 -0
- package/lib/setup/SetupCodeEntry.d.ts.map +1 -0
- package/lib/setup/SetupCodeEntry.js +198 -0
- package/lib/setup/SetupCodeEntry.js.map +1 -0
- package/lib/setup/SetupController.d.ts +29 -0
- package/lib/setup/SetupController.d.ts.map +1 -0
- package/lib/setup/SetupController.js +189 -0
- package/lib/setup/SetupController.js.map +1 -0
- package/lib/setup/SetupOverlay.d.ts +10 -0
- package/lib/setup/SetupOverlay.d.ts.map +1 -0
- package/lib/setup/SetupOverlay.js +408 -0
- package/lib/setup/SetupOverlay.js.map +1 -0
- package/lib/setup/TapInterceptor.d.ts +19 -0
- package/lib/setup/TapInterceptor.d.ts.map +1 -0
- package/lib/setup/TapInterceptor.js +98 -0
- package/lib/setup/TapInterceptor.js.map +1 -0
- package/lib/setup/TouchObserver.d.ts +25 -0
- package/lib/setup/TouchObserver.d.ts.map +1 -0
- package/lib/setup/TouchObserver.js +88 -0
- package/lib/setup/TouchObserver.js.map +1 -0
- package/lib/setup/TouchPatcher.d.ts +27 -0
- package/lib/setup/TouchPatcher.d.ts.map +1 -0
- package/lib/setup/TouchPatcher.js +182 -0
- package/lib/setup/TouchPatcher.js.map +1 -0
- package/lib/setup/index.d.ts +13 -0
- package/lib/setup/index.d.ts.map +1 -0
- package/lib/setup/index.js +45 -0
- package/lib/setup/index.js.map +1 -0
- package/lib/setup/useCXPElement.d.ts +25 -0
- package/lib/setup/useCXPElement.d.ts.map +1 -0
- package/lib/setup/useCXPElement.js +33 -0
- package/lib/setup/useCXPElement.js.map +1 -0
- package/lib/survey/SurveyModal.d.ts +10 -0
- package/lib/survey/SurveyModal.d.ts.map +1 -0
- package/lib/survey/SurveyModal.js +1650 -0
- package/lib/survey/SurveyModal.js.map +1 -0
- package/lib/survey/expressionEval.d.ts +10 -0
- package/lib/survey/expressionEval.d.ts.map +1 -0
- package/lib/survey/expressionEval.js +287 -0
- package/lib/survey/expressionEval.js.map +1 -0
- package/lib/survey/frequencyCap.d.ts +15 -0
- package/lib/survey/frequencyCap.d.ts.map +1 -0
- package/lib/survey/frequencyCap.js +116 -0
- package/lib/survey/frequencyCap.js.map +1 -0
- package/lib/survey/handsFreeVoice.d.ts +30 -0
- package/lib/survey/handsFreeVoice.d.ts.map +1 -0
- package/lib/survey/handsFreeVoice.js +312 -0
- package/lib/survey/handsFreeVoice.js.map +1 -0
- package/lib/survey/interpolate.d.ts +6 -0
- package/lib/survey/interpolate.d.ts.map +1 -0
- package/lib/survey/interpolate.js +61 -0
- package/lib/survey/interpolate.js.map +1 -0
- package/lib/survey/pagesFromV1.d.ts +6 -0
- package/lib/survey/pagesFromV1.d.ts.map +1 -0
- package/lib/survey/pagesFromV1.js +83 -0
- package/lib/survey/pagesFromV1.js.map +1 -0
- package/lib/survey/questions/CSATQuestion.d.ts +16 -0
- package/lib/survey/questions/CSATQuestion.d.ts.map +1 -0
- package/lib/survey/questions/CSATQuestion.js +37 -0
- package/lib/survey/questions/CSATQuestion.js.map +1 -0
- package/lib/survey/questions/DateQuestion.d.ts +20 -0
- package/lib/survey/questions/DateQuestion.d.ts.map +1 -0
- package/lib/survey/questions/DateQuestion.js +103 -0
- package/lib/survey/questions/DateQuestion.js.map +1 -0
- package/lib/survey/questions/ImagePickerQuestion.d.ts +33 -0
- package/lib/survey/questions/ImagePickerQuestion.d.ts.map +1 -0
- package/lib/survey/questions/ImagePickerQuestion.js +68 -0
- package/lib/survey/questions/ImagePickerQuestion.js.map +1 -0
- package/lib/survey/questions/ImageQuestion.d.ts +26 -0
- package/lib/survey/questions/ImageQuestion.d.ts.map +1 -0
- package/lib/survey/questions/ImageQuestion.js +24 -0
- package/lib/survey/questions/ImageQuestion.js.map +1 -0
- package/lib/survey/questions/MatrixCell.d.ts +45 -0
- package/lib/survey/questions/MatrixCell.d.ts.map +1 -0
- package/lib/survey/questions/MatrixCell.js +54 -0
- package/lib/survey/questions/MatrixCell.js.map +1 -0
- package/lib/survey/questions/MatrixDropdownQuestion.d.ts +29 -0
- package/lib/survey/questions/MatrixDropdownQuestion.d.ts.map +1 -0
- package/lib/survey/questions/MatrixDropdownQuestion.js +42 -0
- package/lib/survey/questions/MatrixDropdownQuestion.js.map +1 -0
- package/lib/survey/questions/MatrixDynamicQuestion.d.ts +26 -0
- package/lib/survey/questions/MatrixDynamicQuestion.d.ts.map +1 -0
- package/lib/survey/questions/MatrixDynamicQuestion.js +52 -0
- package/lib/survey/questions/MatrixDynamicQuestion.js.map +1 -0
- package/lib/survey/questions/MatrixQuestion.d.ts +38 -0
- package/lib/survey/questions/MatrixQuestion.d.ts.map +1 -0
- package/lib/survey/questions/MatrixQuestion.js +64 -0
- package/lib/survey/questions/MatrixQuestion.js.map +1 -0
- package/lib/survey/questions/MultiTextQuestion.d.ts +19 -0
- package/lib/survey/questions/MultiTextQuestion.d.ts.map +1 -0
- package/lib/survey/questions/MultiTextQuestion.js +64 -0
- package/lib/survey/questions/MultiTextQuestion.js.map +1 -0
- package/lib/survey/questions/MultipleChoiceQuestion.d.ts +25 -0
- package/lib/survey/questions/MultipleChoiceQuestion.d.ts.map +1 -0
- package/lib/survey/questions/MultipleChoiceQuestion.js +111 -0
- package/lib/survey/questions/MultipleChoiceQuestion.js.map +1 -0
- package/lib/survey/questions/NPSQuestion.d.ts +18 -0
- package/lib/survey/questions/NPSQuestion.d.ts.map +1 -0
- package/lib/survey/questions/NPSQuestion.js +62 -0
- package/lib/survey/questions/NPSQuestion.js.map +1 -0
- package/lib/survey/questions/PanelDynamicQuestion.d.ts +50 -0
- package/lib/survey/questions/PanelDynamicQuestion.d.ts.map +1 -0
- package/lib/survey/questions/PanelDynamicQuestion.js +62 -0
- package/lib/survey/questions/PanelDynamicQuestion.js.map +1 -0
- package/lib/survey/questions/RankingQuestion.d.ts +34 -0
- package/lib/survey/questions/RankingQuestion.d.ts.map +1 -0
- package/lib/survey/questions/RankingQuestion.js +85 -0
- package/lib/survey/questions/RankingQuestion.js.map +1 -0
- package/lib/survey/questions/RatingQuestion.d.ts +20 -0
- package/lib/survey/questions/RatingQuestion.d.ts.map +1 -0
- package/lib/survey/questions/RatingQuestion.js +53 -0
- package/lib/survey/questions/RatingQuestion.js.map +1 -0
- package/lib/survey/questions/TextQuestion.d.ts +17 -0
- package/lib/survey/questions/TextQuestion.d.ts.map +1 -0
- package/lib/survey/questions/TextQuestion.js +46 -0
- package/lib/survey/questions/TextQuestion.js.map +1 -0
- package/lib/survey/styleContract.d.ts +230 -0
- package/lib/survey/styleContract.d.ts.map +1 -0
- package/lib/survey/styleContract.js +365 -0
- package/lib/survey/styleContract.js.map +1 -0
- package/lib/survey/themePalette.d.ts +56 -0
- package/lib/survey/themePalette.d.ts.map +1 -0
- package/lib/survey/themePalette.js +63 -0
- package/lib/survey/themePalette.js.map +1 -0
- package/lib/survey/translationLookup.d.ts +4 -0
- package/lib/survey/translationLookup.d.ts.map +1 -0
- package/lib/survey/translationLookup.js +62 -0
- package/lib/survey/translationLookup.js.map +1 -0
- package/lib/survey/validate.d.ts +3 -0
- package/lib/survey/validate.d.ts.map +1 -0
- package/lib/survey/validate.js +159 -0
- package/lib/survey/validate.js.map +1 -0
- package/lib/survey/variablesResolver.d.ts +10 -0
- package/lib/survey/variablesResolver.d.ts.map +1 -0
- package/lib/survey/variablesResolver.js +107 -0
- package/lib/survey/variablesResolver.js.map +1 -0
- package/lib/survey/voiceParsers.d.ts +47 -0
- package/lib/survey/voiceParsers.d.ts.map +1 -0
- package/lib/survey/voiceParsers.js +310 -0
- package/lib/survey/voiceParsers.js.map +1 -0
- package/lib/types.d.ts +349 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +20 -0
- package/lib/types.js.map +1 -0
- package/metro.js +55 -0
- package/package.json +78 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupOverlay.js","sourceRoot":"","sources":["../../src/setup/SetupOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import type { ElementInfo } from './ElementIdentifier';
|
|
4
|
+
interface TapInterceptorProps {
|
|
5
|
+
active: boolean;
|
|
6
|
+
onElementTapped: (element: ElementInfo) => void;
|
|
7
|
+
onCancel: () => void;
|
|
8
|
+
rootRef?: React.RefObject<View>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* TapInterceptor — captures taps for setup mode "tap to pick."
|
|
12
|
+
*
|
|
13
|
+
* Uses a transparent Modal to guarantee its own native window layer,
|
|
14
|
+
* which avoids all the touch-stealing issues with sibling overlays.
|
|
15
|
+
* TouchableWithoutFeedback reliably captures taps inside the Modal.
|
|
16
|
+
*/
|
|
17
|
+
export declare function TapInterceptor({ active, onElementTapped, onCancel }: TapInterceptorProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=TapInterceptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TapInterceptor.d.ts","sourceRoot":"","sources":["../../src/setup/TapInterceptor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EACL,IAAI,EASL,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAChD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CA6DxF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TapInterceptor = TapInterceptor;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_1 = require("react-native");
|
|
7
|
+
/**
|
|
8
|
+
* TapInterceptor — captures taps for setup mode "tap to pick."
|
|
9
|
+
*
|
|
10
|
+
* Uses a transparent Modal to guarantee its own native window layer,
|
|
11
|
+
* which avoids all the touch-stealing issues with sibling overlays.
|
|
12
|
+
* TouchableWithoutFeedback reliably captures taps inside the Modal.
|
|
13
|
+
*/
|
|
14
|
+
function TapInterceptor({ active, onElementTapped, onCancel }) {
|
|
15
|
+
const [highlight, setHighlight] = (0, react_1.useState)(null);
|
|
16
|
+
const [busy, setBusy] = (0, react_1.useState)(false);
|
|
17
|
+
const handlePress = (0, react_1.useCallback)((evt) => {
|
|
18
|
+
if (busy)
|
|
19
|
+
return;
|
|
20
|
+
setBusy(true);
|
|
21
|
+
const { pageX, pageY } = evt.nativeEvent;
|
|
22
|
+
const bounds = { x: pageX - 25, y: pageY - 25, width: 50, height: 50 };
|
|
23
|
+
setHighlight(bounds);
|
|
24
|
+
const element = {
|
|
25
|
+
elementType: 'button',
|
|
26
|
+
text: `Element at (${Math.round(pageX)}, ${Math.round(pageY)})`,
|
|
27
|
+
bounds,
|
|
28
|
+
interactive: true,
|
|
29
|
+
hierarchyPath: `tap_${Math.round(pageX)}_${Math.round(pageY)}`,
|
|
30
|
+
};
|
|
31
|
+
setTimeout(() => {
|
|
32
|
+
setHighlight(null);
|
|
33
|
+
setBusy(false);
|
|
34
|
+
onElementTapped(element);
|
|
35
|
+
}, 350);
|
|
36
|
+
}, [busy, onElementTapped]);
|
|
37
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.Modal, { visible: active, transparent: true, animationType: "fade", statusBarTranslucent: true, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.root, children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.topBar, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.instructionPill, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.instructionText, children: "Tap any element" }) }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: onCancel, style: styles.cancelBtn, activeOpacity: 0.7, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.cancelText, children: "Cancel" }) })] }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableWithoutFeedback, { onPress: handlePress, children: (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.touchArea }) }), highlight && ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "none", style: [styles.highlight, {
|
|
38
|
+
left: highlight.x,
|
|
39
|
+
top: highlight.y,
|
|
40
|
+
width: highlight.width,
|
|
41
|
+
height: highlight.height,
|
|
42
|
+
}] }))] }) }));
|
|
43
|
+
}
|
|
44
|
+
const TOP_BAR_HEIGHT = react_native_1.Platform.OS === 'ios' ? 100 : 80;
|
|
45
|
+
const styles = react_native_1.StyleSheet.create({
|
|
46
|
+
root: {
|
|
47
|
+
flex: 1,
|
|
48
|
+
},
|
|
49
|
+
topBar: {
|
|
50
|
+
height: TOP_BAR_HEIGHT,
|
|
51
|
+
paddingTop: react_native_1.Platform.OS === 'ios' ? 54 : 34,
|
|
52
|
+
paddingHorizontal: 16,
|
|
53
|
+
flexDirection: 'row',
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
gap: 8,
|
|
56
|
+
backgroundColor: 'rgba(3, 7, 18, 0.85)',
|
|
57
|
+
},
|
|
58
|
+
instructionPill: {
|
|
59
|
+
flex: 1,
|
|
60
|
+
flexDirection: 'row',
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
gap: 8,
|
|
63
|
+
backgroundColor: 'rgba(214, 245, 81, 0.1)',
|
|
64
|
+
paddingHorizontal: 14,
|
|
65
|
+
paddingVertical: 8,
|
|
66
|
+
borderRadius: 10,
|
|
67
|
+
borderWidth: 1,
|
|
68
|
+
borderColor: 'rgba(214, 245, 81, 0.3)',
|
|
69
|
+
},
|
|
70
|
+
instructionText: {
|
|
71
|
+
color: '#D6F551',
|
|
72
|
+
fontSize: 13,
|
|
73
|
+
fontWeight: '600',
|
|
74
|
+
},
|
|
75
|
+
cancelBtn: {
|
|
76
|
+
backgroundColor: 'rgba(239, 68, 68, 0.9)',
|
|
77
|
+
paddingHorizontal: 16,
|
|
78
|
+
paddingVertical: 8,
|
|
79
|
+
borderRadius: 10,
|
|
80
|
+
},
|
|
81
|
+
cancelText: {
|
|
82
|
+
color: '#fff',
|
|
83
|
+
fontSize: 13,
|
|
84
|
+
fontWeight: '600',
|
|
85
|
+
},
|
|
86
|
+
touchArea: {
|
|
87
|
+
flex: 1,
|
|
88
|
+
backgroundColor: 'rgba(214, 245, 81, 0.04)',
|
|
89
|
+
},
|
|
90
|
+
highlight: {
|
|
91
|
+
position: 'absolute',
|
|
92
|
+
borderWidth: 2,
|
|
93
|
+
borderColor: '#D6F551',
|
|
94
|
+
borderRadius: 6,
|
|
95
|
+
backgroundColor: 'rgba(214, 245, 81, 0.2)',
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=TapInterceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TapInterceptor.js","sourceRoot":"","sources":["../../src/setup/TapInterceptor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ElementInfo } from './ElementIdentifier';
|
|
3
|
+
interface TouchObserverProps {
|
|
4
|
+
/** Whether setup mode is active */
|
|
5
|
+
active: boolean;
|
|
6
|
+
/** Whether tap-to-pick mode is active (shows highlight on tap) */
|
|
7
|
+
pickMode: boolean;
|
|
8
|
+
/** Called with element info when a touch is observed in pick mode */
|
|
9
|
+
onElementPicked: (element: ElementInfo) => void;
|
|
10
|
+
/** Children (the entire app) */
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* TouchObserver — wraps the app content and passively observes all touches
|
|
15
|
+
* WITHOUT blocking them. The app works normally — users can navigate, scroll,
|
|
16
|
+
* tap buttons. When pick mode is active, it additionally identifies what was
|
|
17
|
+
* tapped and reports it back.
|
|
18
|
+
*
|
|
19
|
+
* Key insight: onStartShouldSetResponderCapture returning false means we
|
|
20
|
+
* SEE the touch but don't steal it from the actual target element.
|
|
21
|
+
* We then use the nativeEvent.target to identify what was touched.
|
|
22
|
+
*/
|
|
23
|
+
export declare function TouchObserver({ active, pickMode, onElementPicked, children }: TouchObserverProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=TouchObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TouchObserver.d.ts","sourceRoot":"","sources":["../../src/setup/TouchObserver.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,UAAU,kBAAkB;IAC1B,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAChD,gCAAgC;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CA+EhG"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TouchObserver = TouchObserver;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_1 = require("react-native");
|
|
7
|
+
/**
|
|
8
|
+
* TouchObserver — wraps the app content and passively observes all touches
|
|
9
|
+
* WITHOUT blocking them. The app works normally — users can navigate, scroll,
|
|
10
|
+
* tap buttons. When pick mode is active, it additionally identifies what was
|
|
11
|
+
* tapped and reports it back.
|
|
12
|
+
*
|
|
13
|
+
* Key insight: onStartShouldSetResponderCapture returning false means we
|
|
14
|
+
* SEE the touch but don't steal it from the actual target element.
|
|
15
|
+
* We then use the nativeEvent.target to identify what was touched.
|
|
16
|
+
*/
|
|
17
|
+
function TouchObserver({ active, pickMode, onElementPicked, children }) {
|
|
18
|
+
const rootRef = (0, react_1.useRef)(null);
|
|
19
|
+
const lastPickTime = (0, react_1.useRef)(0);
|
|
20
|
+
// This fires on EVERY touch in the capture phase, before the target element handles it
|
|
21
|
+
const handleTouchCapture = (0, react_1.useCallback)((event) => {
|
|
22
|
+
if (!active || !pickMode)
|
|
23
|
+
return false; // Don't observe when inactive
|
|
24
|
+
const { pageX, pageY, target } = event.nativeEvent;
|
|
25
|
+
const now = Date.now();
|
|
26
|
+
// Debounce — don't fire more than once per 500ms
|
|
27
|
+
if (now - lastPickTime.current < 500)
|
|
28
|
+
return false;
|
|
29
|
+
lastPickTime.current = now;
|
|
30
|
+
// target is the native view tag of the element that was touched
|
|
31
|
+
if (target && typeof target === 'number') {
|
|
32
|
+
// Try to measure the target view to get its bounds
|
|
33
|
+
try {
|
|
34
|
+
react_native_1.UIManager.measure(target, (x, y, width, height, pageXView, pageYView) => {
|
|
35
|
+
if (width > 0 && height > 0) {
|
|
36
|
+
const element = {
|
|
37
|
+
elementType: 'button', // Will be refined if we get more info
|
|
38
|
+
text: '', // Will be filled by the user in the form
|
|
39
|
+
bounds: {
|
|
40
|
+
x: pageXView,
|
|
41
|
+
y: pageYView,
|
|
42
|
+
width,
|
|
43
|
+
height,
|
|
44
|
+
},
|
|
45
|
+
interactive: true,
|
|
46
|
+
nativeID: `native_${target}`,
|
|
47
|
+
hierarchyPath: `screen_tap_${Math.round(pageX)}_${Math.round(pageY)}`,
|
|
48
|
+
};
|
|
49
|
+
// On Android, try to get view properties
|
|
50
|
+
if (react_native_1.Platform.OS === 'android') {
|
|
51
|
+
try {
|
|
52
|
+
const viewConfig = react_native_1.UIManager.getViewManagerConfig?.('RCTView');
|
|
53
|
+
// We can't easily get testID from the native tag,
|
|
54
|
+
// but the coordinates + bounds are enough for the user
|
|
55
|
+
// to identify the element in the setup form
|
|
56
|
+
}
|
|
57
|
+
catch { /* ignore */ }
|
|
58
|
+
}
|
|
59
|
+
onElementPicked(element);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Fallback: use tap coordinates
|
|
65
|
+
onElementPicked({
|
|
66
|
+
elementType: 'button',
|
|
67
|
+
text: '',
|
|
68
|
+
bounds: { x: pageX - 20, y: pageY - 20, width: 40, height: 40 },
|
|
69
|
+
interactive: true,
|
|
70
|
+
hierarchyPath: `tap_${Math.round(pageX)}_${Math.round(pageY)}`,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// CRITICAL: return false so the touch passes through to the actual element
|
|
75
|
+
return false;
|
|
76
|
+
}, [active, pickMode, onElementPicked]);
|
|
77
|
+
if (!active) {
|
|
78
|
+
// When not in setup mode, render children directly without any wrapper overhead
|
|
79
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
|
|
80
|
+
}
|
|
81
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.View, { ref: rootRef, style: styles.root, collapsable: false, onStartShouldSetResponderCapture: handleTouchCapture, children: children }));
|
|
82
|
+
}
|
|
83
|
+
const styles = react_native_1.StyleSheet.create({
|
|
84
|
+
root: {
|
|
85
|
+
flex: 1,
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=TouchObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TouchObserver.js","sourceRoot":"","sources":["../../src/setup/TouchObserver.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ElementInfo } from './ElementIdentifier';
|
|
2
|
+
/**
|
|
3
|
+
* TouchPatcher — monkey-patches React Native touch components to observe
|
|
4
|
+
* every user interaction while setup mode is active.
|
|
5
|
+
*
|
|
6
|
+
* How it works:
|
|
7
|
+
* - Wraps the `render` method of TouchableOpacity, Pressable, etc.
|
|
8
|
+
* - Intercepts props to wrap `onPress`, `onLongPress`, `onFocus` callbacks
|
|
9
|
+
* - When the user taps anything, the SDK sees it without blocking the tap
|
|
10
|
+
* - The original callback still fires — the app works 100% normally
|
|
11
|
+
*
|
|
12
|
+
* This is the same technique used by Heap, FullStory, and Datadog RUM SDKs.
|
|
13
|
+
*/
|
|
14
|
+
type TapListener = (element: ElementInfo) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Start observing all touches. Call when setup mode activates.
|
|
17
|
+
*/
|
|
18
|
+
export declare function startObserving(listener: TapListener): void;
|
|
19
|
+
/**
|
|
20
|
+
* Stop observing. Call when setup mode ends.
|
|
21
|
+
*/
|
|
22
|
+
export declare function stopObserving(): void;
|
|
23
|
+
export declare function isObserving(): boolean;
|
|
24
|
+
export declare function patchCreateElement(): void;
|
|
25
|
+
export declare function unpatchCreateElement(): void;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=TouchPatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TouchPatcher.d.ts","sourceRoot":"","sources":["../../src/setup/TouchPatcher.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;;;;;;;;;;GAWG;AAEH,KAAK,WAAW,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;AAQlD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAa1D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAapC;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAgCD,wBAAgB,kBAAkB,IAAI,IAAI,CAwCzC;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.startObserving = startObserving;
|
|
7
|
+
exports.stopObserving = stopObserving;
|
|
8
|
+
exports.isObserving = isObserving;
|
|
9
|
+
exports.patchCreateElement = patchCreateElement;
|
|
10
|
+
exports.unpatchCreateElement = unpatchCreateElement;
|
|
11
|
+
const react_1 = __importDefault(require("react"));
|
|
12
|
+
const react_native_1 = require("react-native");
|
|
13
|
+
const ElementIdentifier_1 = require("./ElementIdentifier");
|
|
14
|
+
let tapListener = null;
|
|
15
|
+
let patched = false;
|
|
16
|
+
// Store originals so we can unpatch
|
|
17
|
+
const originals = new Map();
|
|
18
|
+
/**
|
|
19
|
+
* Start observing all touches. Call when setup mode activates.
|
|
20
|
+
*/
|
|
21
|
+
function startObserving(listener) {
|
|
22
|
+
if (patched)
|
|
23
|
+
return;
|
|
24
|
+
tapListener = listener;
|
|
25
|
+
patchComponent(react_native_1.TouchableOpacity, 'TouchableOpacity', 'button');
|
|
26
|
+
patchComponent(react_native_1.TouchableHighlight, 'TouchableHighlight', 'button');
|
|
27
|
+
patchComponent(react_native_1.TouchableWithoutFeedback, 'TouchableWithoutFeedback', 'button');
|
|
28
|
+
patchComponent(react_native_1.Pressable, 'Pressable', 'button');
|
|
29
|
+
patchComponent(react_native_1.Button, 'Button', 'button');
|
|
30
|
+
patchComponent(react_native_1.TextInput, 'TextInput', 'text_input');
|
|
31
|
+
patched = true;
|
|
32
|
+
console.log('[CXPinsight:TouchPatcher] Started observing touches');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Stop observing. Call when setup mode ends.
|
|
36
|
+
*/
|
|
37
|
+
function stopObserving() {
|
|
38
|
+
if (!patched)
|
|
39
|
+
return;
|
|
40
|
+
for (const [component, original] of originals.entries()) {
|
|
41
|
+
if (original.type === 'render') {
|
|
42
|
+
component.render = original.fn;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
originals.clear();
|
|
46
|
+
tapListener = null;
|
|
47
|
+
patched = false;
|
|
48
|
+
console.log('[CXPinsight:TouchPatcher] Stopped observing touches');
|
|
49
|
+
}
|
|
50
|
+
function isObserving() {
|
|
51
|
+
return patched;
|
|
52
|
+
}
|
|
53
|
+
function patchComponent(Component, componentName, elementType) {
|
|
54
|
+
if (!Component)
|
|
55
|
+
return;
|
|
56
|
+
// For function components (Pressable, etc.), we need to wrap differently
|
|
57
|
+
// than class components (TouchableOpacity, etc.)
|
|
58
|
+
// Strategy: wrap the component itself using React.createElement interception
|
|
59
|
+
// This works for both class and function components
|
|
60
|
+
const originalCreateElement = react_1.default.createElement;
|
|
61
|
+
// We track which components to intercept
|
|
62
|
+
if (!originals.has(Component)) {
|
|
63
|
+
originals.set(Component, { type: 'component', name: componentName });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Alternative approach: Use a global createElement wrapper.
|
|
68
|
+
* This intercepts ALL React element creation and wraps touch handlers.
|
|
69
|
+
*
|
|
70
|
+
* Called once when setup starts, removed when setup ends.
|
|
71
|
+
*/
|
|
72
|
+
let originalCreateElement = null;
|
|
73
|
+
function patchCreateElement() {
|
|
74
|
+
if (originalCreateElement)
|
|
75
|
+
return; // Already patched
|
|
76
|
+
originalCreateElement = react_1.default.createElement;
|
|
77
|
+
const touchComponents = new Set([
|
|
78
|
+
react_native_1.TouchableOpacity,
|
|
79
|
+
react_native_1.TouchableHighlight,
|
|
80
|
+
react_native_1.TouchableWithoutFeedback,
|
|
81
|
+
react_native_1.Pressable,
|
|
82
|
+
react_native_1.Button,
|
|
83
|
+
react_native_1.TextInput,
|
|
84
|
+
]);
|
|
85
|
+
// Also match by displayName/name for cases where imports differ
|
|
86
|
+
const touchNames = new Set([
|
|
87
|
+
'TouchableOpacity',
|
|
88
|
+
'TouchableHighlight',
|
|
89
|
+
'TouchableWithoutFeedback',
|
|
90
|
+
'Pressable',
|
|
91
|
+
'Button',
|
|
92
|
+
'TextInput',
|
|
93
|
+
'ForwardRef(Pressable)',
|
|
94
|
+
]);
|
|
95
|
+
react_1.default.createElement = function (type, props, ...children) {
|
|
96
|
+
// Only intercept touch components
|
|
97
|
+
const isTouch = touchComponents.has(type) ||
|
|
98
|
+
touchNames.has(type?.displayName) ||
|
|
99
|
+
touchNames.has(type?.name) ||
|
|
100
|
+
touchNames.has(type?.render?.displayName) ||
|
|
101
|
+
touchNames.has(type?.render?.name);
|
|
102
|
+
if (isTouch && props && tapListener) {
|
|
103
|
+
const wrappedProps = wrapTouchProps(props, type, children);
|
|
104
|
+
return originalCreateElement.call(react_1.default, type, wrappedProps, ...children);
|
|
105
|
+
}
|
|
106
|
+
return originalCreateElement.call(react_1.default, type, props, ...children);
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function unpatchCreateElement() {
|
|
110
|
+
if (originalCreateElement) {
|
|
111
|
+
react_1.default.createElement = originalCreateElement;
|
|
112
|
+
originalCreateElement = null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function wrapTouchProps(props, componentType, children) {
|
|
116
|
+
const wrapped = { ...props };
|
|
117
|
+
const componentName = componentType?.displayName || componentType?.name ||
|
|
118
|
+
componentType?.render?.displayName || componentType?.render?.name || 'Unknown';
|
|
119
|
+
// Extract element info from props
|
|
120
|
+
const elementInfo = {
|
|
121
|
+
testID: props.testID || undefined,
|
|
122
|
+
accessibilityLabel: props.accessibilityLabel || undefined,
|
|
123
|
+
nativeID: props.nativeID || undefined,
|
|
124
|
+
accessibilityRole: props.accessibilityRole || undefined,
|
|
125
|
+
elementType: (0, ElementIdentifier_1.inferElementType)(props.accessibilityRole, componentName),
|
|
126
|
+
text: extractTextFromChildren(children) || props.title || props.placeholder || props.accessibilityLabel || '',
|
|
127
|
+
interactive: true,
|
|
128
|
+
};
|
|
129
|
+
// Wrap onPress
|
|
130
|
+
if (props.onPress) {
|
|
131
|
+
const originalOnPress = props.onPress;
|
|
132
|
+
wrapped.onPress = (...args) => {
|
|
133
|
+
tapListener?.({ ...elementInfo, text: elementInfo.text || 'Tapped' });
|
|
134
|
+
return originalOnPress(...args);
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// Wrap onLongPress
|
|
138
|
+
if (props.onLongPress) {
|
|
139
|
+
const originalOnLongPress = props.onLongPress;
|
|
140
|
+
wrapped.onLongPress = (...args) => {
|
|
141
|
+
tapListener?.({ ...elementInfo, elementType: elementInfo.elementType, text: elementInfo.text || 'Long Pressed' });
|
|
142
|
+
return originalOnLongPress(...args);
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// Wrap onFocus (for TextInput)
|
|
146
|
+
if (props.onFocus) {
|
|
147
|
+
const originalOnFocus = props.onFocus;
|
|
148
|
+
wrapped.onFocus = (...args) => {
|
|
149
|
+
tapListener?.({ ...elementInfo, elementType: 'text_input', text: elementInfo.text || props.placeholder || 'Input focused' });
|
|
150
|
+
return originalOnFocus(...args);
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
// For elements without explicit handlers but that are touchable,
|
|
154
|
+
// add a wrapper that still captures the interaction
|
|
155
|
+
if (!props.onPress && !props.onLongPress && componentName !== 'TextInput') {
|
|
156
|
+
// Don't add handlers where there were none — this could change behavior
|
|
157
|
+
// Just skip these elements
|
|
158
|
+
}
|
|
159
|
+
return wrapped;
|
|
160
|
+
}
|
|
161
|
+
function extractTextFromChildren(children) {
|
|
162
|
+
for (const child of children) {
|
|
163
|
+
if (typeof child === 'string')
|
|
164
|
+
return child.slice(0, 80);
|
|
165
|
+
if (typeof child === 'number')
|
|
166
|
+
return String(child);
|
|
167
|
+
if (child && typeof child === 'object') {
|
|
168
|
+
// Check for nested Text components
|
|
169
|
+
if (child.props?.children && typeof child.props.children === 'string') {
|
|
170
|
+
return child.props.children.slice(0, 80);
|
|
171
|
+
}
|
|
172
|
+
// Recurse one level
|
|
173
|
+
if (Array.isArray(child.props?.children)) {
|
|
174
|
+
const text = extractTextFromChildren(child.props.children);
|
|
175
|
+
if (text)
|
|
176
|
+
return text;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return '';
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=TouchPatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TouchPatcher.js","sourceRoot":"","sources":["../../src/setup/TouchPatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { SetupOverlay } from './SetupOverlay';
|
|
2
|
+
export { SetupCodeEntry } from './SetupCodeEntry';
|
|
3
|
+
export { TapInterceptor } from './TapInterceptor';
|
|
4
|
+
export { TouchObserver } from './TouchObserver';
|
|
5
|
+
export { startObserving, stopObserving, patchCreateElement, unpatchCreateElement } from './TouchPatcher';
|
|
6
|
+
export { useCXPElement } from './useCXPElement';
|
|
7
|
+
export { registerElement, getRegisteredElements, onRegistryChange, clearRegistry } from './ElementRegistry';
|
|
8
|
+
export { claimSetup, endSetup, getSetupState, isSetupActive, onSetupStateChange, getDeviceId, restoreSetupState, clearSetupState, } from './SetupController';
|
|
9
|
+
export type { SetupSessionState } from './SetupController';
|
|
10
|
+
export { scanNativeViewHierarchy, scanReactTree, uploadScreenSnapshot, buildElementsFromTestIDs, setDebugMode as setScannerDebugMode, } from './AccessibilityScanner';
|
|
11
|
+
export { buildIdentifier, extractLabel, identifierQuality, matchesIdentifier, inferElementType, } from './ElementIdentifier';
|
|
12
|
+
export type { ElementInfo, StoredElementIdentifier } from './ElementIdentifier';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5G,OAAO,EACL,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,IAAI,mBAAmB,GACpC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inferElementType = exports.matchesIdentifier = exports.identifierQuality = exports.extractLabel = exports.buildIdentifier = exports.setScannerDebugMode = exports.buildElementsFromTestIDs = exports.uploadScreenSnapshot = exports.scanReactTree = exports.scanNativeViewHierarchy = exports.clearSetupState = exports.restoreSetupState = exports.getDeviceId = exports.onSetupStateChange = exports.isSetupActive = exports.getSetupState = exports.endSetup = exports.claimSetup = exports.clearRegistry = exports.onRegistryChange = exports.getRegisteredElements = exports.registerElement = exports.useCXPElement = exports.unpatchCreateElement = exports.patchCreateElement = exports.stopObserving = exports.startObserving = exports.TouchObserver = exports.TapInterceptor = exports.SetupCodeEntry = exports.SetupOverlay = void 0;
|
|
4
|
+
var SetupOverlay_1 = require("./SetupOverlay");
|
|
5
|
+
Object.defineProperty(exports, "SetupOverlay", { enumerable: true, get: function () { return SetupOverlay_1.SetupOverlay; } });
|
|
6
|
+
var SetupCodeEntry_1 = require("./SetupCodeEntry");
|
|
7
|
+
Object.defineProperty(exports, "SetupCodeEntry", { enumerable: true, get: function () { return SetupCodeEntry_1.SetupCodeEntry; } });
|
|
8
|
+
var TapInterceptor_1 = require("./TapInterceptor");
|
|
9
|
+
Object.defineProperty(exports, "TapInterceptor", { enumerable: true, get: function () { return TapInterceptor_1.TapInterceptor; } });
|
|
10
|
+
var TouchObserver_1 = require("./TouchObserver");
|
|
11
|
+
Object.defineProperty(exports, "TouchObserver", { enumerable: true, get: function () { return TouchObserver_1.TouchObserver; } });
|
|
12
|
+
var TouchPatcher_1 = require("./TouchPatcher");
|
|
13
|
+
Object.defineProperty(exports, "startObserving", { enumerable: true, get: function () { return TouchPatcher_1.startObserving; } });
|
|
14
|
+
Object.defineProperty(exports, "stopObserving", { enumerable: true, get: function () { return TouchPatcher_1.stopObserving; } });
|
|
15
|
+
Object.defineProperty(exports, "patchCreateElement", { enumerable: true, get: function () { return TouchPatcher_1.patchCreateElement; } });
|
|
16
|
+
Object.defineProperty(exports, "unpatchCreateElement", { enumerable: true, get: function () { return TouchPatcher_1.unpatchCreateElement; } });
|
|
17
|
+
var useCXPElement_1 = require("./useCXPElement");
|
|
18
|
+
Object.defineProperty(exports, "useCXPElement", { enumerable: true, get: function () { return useCXPElement_1.useCXPElement; } });
|
|
19
|
+
var ElementRegistry_1 = require("./ElementRegistry");
|
|
20
|
+
Object.defineProperty(exports, "registerElement", { enumerable: true, get: function () { return ElementRegistry_1.registerElement; } });
|
|
21
|
+
Object.defineProperty(exports, "getRegisteredElements", { enumerable: true, get: function () { return ElementRegistry_1.getRegisteredElements; } });
|
|
22
|
+
Object.defineProperty(exports, "onRegistryChange", { enumerable: true, get: function () { return ElementRegistry_1.onRegistryChange; } });
|
|
23
|
+
Object.defineProperty(exports, "clearRegistry", { enumerable: true, get: function () { return ElementRegistry_1.clearRegistry; } });
|
|
24
|
+
var SetupController_1 = require("./SetupController");
|
|
25
|
+
Object.defineProperty(exports, "claimSetup", { enumerable: true, get: function () { return SetupController_1.claimSetup; } });
|
|
26
|
+
Object.defineProperty(exports, "endSetup", { enumerable: true, get: function () { return SetupController_1.endSetup; } });
|
|
27
|
+
Object.defineProperty(exports, "getSetupState", { enumerable: true, get: function () { return SetupController_1.getSetupState; } });
|
|
28
|
+
Object.defineProperty(exports, "isSetupActive", { enumerable: true, get: function () { return SetupController_1.isSetupActive; } });
|
|
29
|
+
Object.defineProperty(exports, "onSetupStateChange", { enumerable: true, get: function () { return SetupController_1.onSetupStateChange; } });
|
|
30
|
+
Object.defineProperty(exports, "getDeviceId", { enumerable: true, get: function () { return SetupController_1.getDeviceId; } });
|
|
31
|
+
Object.defineProperty(exports, "restoreSetupState", { enumerable: true, get: function () { return SetupController_1.restoreSetupState; } });
|
|
32
|
+
Object.defineProperty(exports, "clearSetupState", { enumerable: true, get: function () { return SetupController_1.clearSetupState; } });
|
|
33
|
+
var AccessibilityScanner_1 = require("./AccessibilityScanner");
|
|
34
|
+
Object.defineProperty(exports, "scanNativeViewHierarchy", { enumerable: true, get: function () { return AccessibilityScanner_1.scanNativeViewHierarchy; } });
|
|
35
|
+
Object.defineProperty(exports, "scanReactTree", { enumerable: true, get: function () { return AccessibilityScanner_1.scanReactTree; } });
|
|
36
|
+
Object.defineProperty(exports, "uploadScreenSnapshot", { enumerable: true, get: function () { return AccessibilityScanner_1.uploadScreenSnapshot; } });
|
|
37
|
+
Object.defineProperty(exports, "buildElementsFromTestIDs", { enumerable: true, get: function () { return AccessibilityScanner_1.buildElementsFromTestIDs; } });
|
|
38
|
+
Object.defineProperty(exports, "setScannerDebugMode", { enumerable: true, get: function () { return AccessibilityScanner_1.setDebugMode; } });
|
|
39
|
+
var ElementIdentifier_1 = require("./ElementIdentifier");
|
|
40
|
+
Object.defineProperty(exports, "buildIdentifier", { enumerable: true, get: function () { return ElementIdentifier_1.buildIdentifier; } });
|
|
41
|
+
Object.defineProperty(exports, "extractLabel", { enumerable: true, get: function () { return ElementIdentifier_1.extractLabel; } });
|
|
42
|
+
Object.defineProperty(exports, "identifierQuality", { enumerable: true, get: function () { return ElementIdentifier_1.identifierQuality; } });
|
|
43
|
+
Object.defineProperty(exports, "matchesIdentifier", { enumerable: true, get: function () { return ElementIdentifier_1.matchesIdentifier; } });
|
|
44
|
+
Object.defineProperty(exports, "inferElementType", { enumerable: true, get: function () { return ElementIdentifier_1.inferElementType; } });
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+CAAyG;AAAhG,8GAAA,cAAc,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,kHAAA,kBAAkB,OAAA;AAAE,oHAAA,oBAAoB,OAAA;AAChF,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,qDAA4G;AAAnG,kHAAA,eAAe,OAAA;AAAE,wHAAA,qBAAqB,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AAAE,gHAAA,aAAa,OAAA;AAChF,qDAS2B;AARzB,6GAAA,UAAU,OAAA;AACV,2GAAA,QAAQ,OAAA;AACR,gHAAA,aAAa,OAAA;AACb,gHAAA,aAAa,OAAA;AACb,qHAAA,kBAAkB,OAAA;AAClB,8GAAA,WAAW,OAAA;AACX,oHAAA,iBAAiB,OAAA;AACjB,kHAAA,eAAe,OAAA;AAGjB,+DAMgC;AAL9B,+HAAA,uBAAuB,OAAA;AACvB,qHAAA,aAAa,OAAA;AACb,4HAAA,oBAAoB,OAAA;AACpB,gIAAA,wBAAwB,OAAA;AACxB,2HAAA,YAAY,OAAuB;AAErC,yDAM6B;AAL3B,oHAAA,eAAe,OAAA;AACf,iHAAA,YAAY,OAAA;AACZ,sHAAA,iBAAiB,OAAA;AACjB,sHAAA,iBAAiB,OAAA;AACjB,qHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ElementInfo } from './ElementIdentifier';
|
|
2
|
+
interface UseCXPElementOptions {
|
|
3
|
+
/** testID prop on the element (most reliable identifier) */
|
|
4
|
+
testID?: string;
|
|
5
|
+
/** Accessibility label */
|
|
6
|
+
accessibilityLabel?: string;
|
|
7
|
+
/** Human-readable label for the setup UI */
|
|
8
|
+
label?: string;
|
|
9
|
+
/** Element type override */
|
|
10
|
+
type?: ElementInfo['elementType'];
|
|
11
|
+
/** Whether the element is interactive (default: true) */
|
|
12
|
+
interactive?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Hook to register an interactive element with the CXP setup system.
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* useCXPElement({ testID: 'checkout-btn', label: 'Checkout' });
|
|
19
|
+
*
|
|
20
|
+
* Elements registered this way appear in the setup mode element picker
|
|
21
|
+
* without needing to scan the React tree.
|
|
22
|
+
*/
|
|
23
|
+
export declare function useCXPElement(options: UseCXPElementOptions): void;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=useCXPElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCXPElement.d.ts","sourceRoot":"","sources":["../../src/setup/useCXPElement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,UAAU,oBAAoB;IAC5B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,IAAI,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IAClC,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAmBjE"}
|