@garrix82/reactgenie-lib 1.3.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/.env.example +22 -0
- package/.github/workflows/publish.yml +20 -0
- package/LICENSE.txt +201 -0
- package/README.md +621 -0
- package/babel.config.js +29 -0
- package/dist/adapters/__tests__/expo-router-adapter.test.d.ts +1 -0
- package/dist/adapters/expo-router-adapter.d.ts +16 -0
- package/dist/adapters/expo-router-adapter.js +521 -0
- package/dist/adapters/navigation-adapter.d.ts +20 -0
- package/dist/adapters/navigation-adapter.js +137 -0
- package/dist/audio-visualizer.d.ts +14 -0
- package/dist/audio-visualizer.js +123 -0
- package/dist/current-selection.d.ts +27 -0
- package/dist/current-selection.js +94 -0
- package/dist/errors.d.ts +19 -0
- package/dist/errors.js +37 -0
- package/dist/genie/DateTime.d.ts +66 -0
- package/dist/genie/DateTime.js +399 -0
- package/dist/genie/TimeDelta.d.ts +35 -0
- package/dist/genie/TimeDelta.js +169 -0
- package/dist/genie-view-wrapper.d.ts +1 -0
- package/dist/genie-view-wrapper.js +377 -0
- package/dist/hooks/__tests__/useSpeechRecognition.test.d.ts +1 -0
- package/dist/hooks/useSpeechRecognition.d.ts +28 -0
- package/dist/hooks/useSpeechRecognition.js +118 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +469 -0
- package/dist/logger.d.ts +23 -0
- package/dist/logger.js +597 -0
- package/dist/logger.remote.test.d.ts +0 -0
- package/dist/modality-provider-v2.d.ts +28 -0
- package/dist/modality-provider-v2.js +1321 -0
- package/dist/modality-provider.d.ts +22 -0
- package/dist/modality-provider.js +373 -0
- package/dist/native-visibility.d.ts +28 -0
- package/dist/native-visibility.js +50 -0
- package/dist/platform/VoiceRecognitionBar.d.ts +17 -0
- package/dist/platform/VoiceRecognitionBar.js +332 -0
- package/dist/platform/components.d.ts +32 -0
- package/dist/platform/components.js +351 -0
- package/dist/platform/events.d.ts +31 -0
- package/dist/platform/events.js +274 -0
- package/dist/platform/index.d.ts +3 -0
- package/dist/platform/index.js +39 -0
- package/dist/platform/types.d.ts +79 -0
- package/dist/platform/types.js +97 -0
- package/dist/react-decorators.d.ts +87 -0
- package/dist/react-decorators.js +368 -0
- package/dist/shared-store.d.ts +74 -0
- package/dist/shared-store.js +589 -0
- package/dist/speech-recognition/__tests__/speech-recognition-groq-transport.test.d.ts +1 -0
- package/dist/speech-recognition/__tests__/speech-recognition-native.test.d.ts +1 -0
- package/dist/speech-recognition/__tests__/speech-recognition-openai-native.test.d.ts +1 -0
- package/dist/speech-recognition/__tests__/speech-recognition-openai.test.d.ts +1 -0
- package/dist/speech-recognition/__tests__/speech-recognition-unified-import.test.d.ts +0 -0
- package/dist/speech-recognition/__tests__/speech-recognition-unified.test.d.ts +1 -0
- package/dist/speech-recognition/speech-recognition-groq.d.ts +21 -0
- package/dist/speech-recognition/speech-recognition-groq.js +409 -0
- package/dist/speech-recognition/speech-recognition-mlx.d.ts +15 -0
- package/dist/speech-recognition/speech-recognition-mlx.js +393 -0
- package/dist/speech-recognition/speech-recognition-native.d.ts +24 -0
- package/dist/speech-recognition/speech-recognition-native.js +632 -0
- package/dist/speech-recognition/speech-recognition-openai-native.d.ts +40 -0
- package/dist/speech-recognition/speech-recognition-openai-native.js +653 -0
- package/dist/speech-recognition/speech-recognition-openai.d.ts +39 -0
- package/dist/speech-recognition/speech-recognition-openai.js +718 -0
- package/dist/speech-recognition/speech-recognition-unified.d.ts +93 -0
- package/dist/speech-recognition/speech-recognition-unified.js +589 -0
- package/dist/speech-recognition/utils/groq-transcription.d.ts +41 -0
- package/dist/speech-recognition/utils/groq-transcription.js +382 -0
- package/dist/speech-recognition.d.ts +7 -0
- package/dist/speech-recognition.js +61 -0
- package/dist/voice-pipeline-telemetry.d.ts +26 -0
- package/dist/voice-pipeline-telemetry.js +15 -0
- package/garrix82-reactgenie-lib-1.3.0.tgz +0 -0
- package/metro/index.js +3 -0
- package/metro/with-genie-registry.js +47 -0
- package/package.json +111 -0
- package/scripts/dry-run.js +23 -0
- package/scripts/generate-genie-registry.js +278 -0
- package/scripts/log-file-test.js +51 -0
- package/scripts/parse.js +26 -0
- package/scripts/prompt.js +19 -0
- package/scripts/set-script.js +200 -0
- package/tsconfig.json +36 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createScreenWrapper = createScreenWrapper;
|
|
7
|
+
exports.isExpoRouter = isExpoRouter;
|
|
8
|
+
exports.useNavigationAdapter = useNavigationAdapter;
|
|
9
|
+
exports.useRouteParams = useRouteParams;
|
|
10
|
+
exports.withNavigationAdapter = withNavigationAdapter;
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
|
|
14
|
+
* Navigation Adapter for expo-router and @react-navigation/native
|
|
15
|
+
* Provides a unified navigation interface that works with both paradigms
|
|
16
|
+
*/
|
|
17
|
+
// Type definitions for navigation adapters
|
|
18
|
+
|
|
19
|
+
// Detect if expo-router is available
|
|
20
|
+
let expoRouter = null;
|
|
21
|
+
let expoRouterHooks = null;
|
|
22
|
+
try {
|
|
23
|
+
expoRouter = require('expo-router');
|
|
24
|
+
expoRouterHooks = {
|
|
25
|
+
useRouter: expoRouter.useRouter,
|
|
26
|
+
useLocalSearchParams: expoRouter.useLocalSearchParams,
|
|
27
|
+
usePathname: expoRouter.usePathname,
|
|
28
|
+
useNavigation: expoRouter.useNavigation
|
|
29
|
+
};
|
|
30
|
+
} catch (e) {
|
|
31
|
+
// expo-router not available, will use @react-navigation/native
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Hook to get unified navigation adapter
|
|
36
|
+
* Works with both expo-router and @react-navigation/native
|
|
37
|
+
*/
|
|
38
|
+
function useNavigationAdapter() {
|
|
39
|
+
if (expoRouterHooks) {
|
|
40
|
+
// Use expo-router
|
|
41
|
+
const router = expoRouterHooks.useRouter();
|
|
42
|
+
const navigation = expoRouterHooks.useNavigation();
|
|
43
|
+
return {
|
|
44
|
+
push: (routeName, params) => {
|
|
45
|
+
// Convert route name to expo-router path
|
|
46
|
+
const path = routeName.toLowerCase().replace(/\s+/g, '-');
|
|
47
|
+
router.push({
|
|
48
|
+
pathname: `/${path}`,
|
|
49
|
+
params: params || {}
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
navigate: (routeName, params) => {
|
|
53
|
+
const path = routeName.toLowerCase().replace(/\s+/g, '-');
|
|
54
|
+
router.navigate({
|
|
55
|
+
pathname: `/${path}`,
|
|
56
|
+
params: params || {}
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
goBack: () => {
|
|
60
|
+
if (router.canGoBack()) {
|
|
61
|
+
router.back();
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
canGoBack: () => router.canGoBack(),
|
|
65
|
+
setOptions: options => {
|
|
66
|
+
if (navigation && navigation.setOptions) {
|
|
67
|
+
navigation.setOptions(options);
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
getState: () => navigation?.getState?.() || null
|
|
71
|
+
};
|
|
72
|
+
} else {
|
|
73
|
+
// Fallback: will be injected by NavigationContainer
|
|
74
|
+
throw new Error('Navigation adapter must be used within NavigationContainer or expo-router context');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* HOC to inject navigation adapter into components
|
|
80
|
+
* Provides backward compatibility with class components
|
|
81
|
+
*/
|
|
82
|
+
function withNavigationAdapter(Component) {
|
|
83
|
+
return props => {
|
|
84
|
+
const navigation = useNavigationAdapter();
|
|
85
|
+
return /*#__PURE__*/_react.default.createElement(Component, _extends({}, props, {
|
|
86
|
+
navigation: navigation
|
|
87
|
+
}));
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Hook to get route params (works with both navigation systems)
|
|
93
|
+
*/
|
|
94
|
+
function useRouteParams() {
|
|
95
|
+
if (expoRouterHooks) {
|
|
96
|
+
return expoRouterHooks.useLocalSearchParams();
|
|
97
|
+
}
|
|
98
|
+
// Will be provided by NavigationContainer route prop
|
|
99
|
+
return {};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Compatibility wrapper for screens
|
|
104
|
+
* Normalizes props between expo-router and react-navigation
|
|
105
|
+
*/
|
|
106
|
+
function createScreenWrapper(Screen, options) {
|
|
107
|
+
return function WrappedScreen(props) {
|
|
108
|
+
const params = useRouteParams();
|
|
109
|
+
const navigation = props.navigation || useNavigationAdapter();
|
|
110
|
+
(0, _react.useEffect)(() => {
|
|
111
|
+
if (options && navigation.setOptions) {
|
|
112
|
+
const screenOptions = {
|
|
113
|
+
headerShown: options.headerShown !== false
|
|
114
|
+
};
|
|
115
|
+
if (options.title) {
|
|
116
|
+
screenOptions.title = options.title(params);
|
|
117
|
+
}
|
|
118
|
+
navigation.setOptions(screenOptions);
|
|
119
|
+
}
|
|
120
|
+
}, [navigation, params]);
|
|
121
|
+
return /*#__PURE__*/_react.default.createElement(Screen, _extends({}, props, params, {
|
|
122
|
+
navigation: navigation
|
|
123
|
+
}));
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Check if running in expo-router environment
|
|
129
|
+
*/
|
|
130
|
+
function isExpoRouter() {
|
|
131
|
+
return expoRouter !== null;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Export for type checking
|
|
136
|
+
*/
|
|
137
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsImV4cG9Sb3V0ZXIiLCJleHBvUm91dGVySG9va3MiLCJ1c2VSb3V0ZXIiLCJ1c2VMb2NhbFNlYXJjaFBhcmFtcyIsInVzZVBhdGhuYW1lIiwidXNlTmF2aWdhdGlvbiIsInVzZU5hdmlnYXRpb25BZGFwdGVyIiwicm91dGVyIiwibmF2aWdhdGlvbiIsInB1c2giLCJyb3V0ZU5hbWUiLCJwYXJhbXMiLCJwYXRoIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwicGF0aG5hbWUiLCJuYXZpZ2F0ZSIsImdvQmFjayIsImNhbkdvQmFjayIsImJhY2siLCJzZXRPcHRpb25zIiwib3B0aW9ucyIsImdldFN0YXRlIiwiRXJyb3IiLCJ3aXRoTmF2aWdhdGlvbkFkYXB0ZXIiLCJDb21wb25lbnQiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJ1c2VSb3V0ZVBhcmFtcyIsImNyZWF0ZVNjcmVlbldyYXBwZXIiLCJTY3JlZW4iLCJXcmFwcGVkU2NyZWVuIiwidXNlRWZmZWN0Iiwic2NyZWVuT3B0aW9ucyIsImhlYWRlclNob3duIiwidGl0bGUiLCJpc0V4cG9Sb3V0ZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlcnMvbmF2aWdhdGlvbi1hZGFwdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5hdmlnYXRpb24gQWRhcHRlciBmb3IgZXhwby1yb3V0ZXIgYW5kIEByZWFjdC1uYXZpZ2F0aW9uL25hdGl2ZVxuICogUHJvdmlkZXMgYSB1bmlmaWVkIG5hdmlnYXRpb24gaW50ZXJmYWNlIHRoYXQgd29ya3Mgd2l0aCBib3RoIHBhcmFkaWdtc1xuICovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMgZm9yIG5hdmlnYXRpb24gYWRhcHRlcnNcbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbkFkYXB0ZXIge1xuICBwdXNoOiAocm91dGVOYW1lOiBzdHJpbmcsIHBhcmFtcz86IGFueSkgPT4gdm9pZDtcbiAgbmF2aWdhdGU6IChyb3V0ZU5hbWU6IHN0cmluZywgcGFyYW1zPzogYW55KSA9PiB2b2lkO1xuICBnb0JhY2s6ICgpID0+IHZvaWQ7XG4gIGNhbkdvQmFjazogKCkgPT4gYm9vbGVhbjtcbiAgc2V0T3B0aW9uczogKG9wdGlvbnM6IGFueSkgPT4gdm9pZDtcbiAgZ2V0U3RhdGU6ICgpID0+IGFueTtcbn1cblxuLy8gRGV0ZWN0IGlmIGV4cG8tcm91dGVyIGlzIGF2YWlsYWJsZVxubGV0IGV4cG9Sb3V0ZXI6IGFueSA9IG51bGw7XG5sZXQgZXhwb1JvdXRlckhvb2tzOiBhbnkgPSBudWxsO1xudHJ5IHtcbiAgZXhwb1JvdXRlciA9IHJlcXVpcmUoJ2V4cG8tcm91dGVyJyk7XG4gIGV4cG9Sb3V0ZXJIb29rcyA9IHtcbiAgICB1c2VSb3V0ZXI6IGV4cG9Sb3V0ZXIudXNlUm91dGVyLFxuICAgIHVzZUxvY2FsU2VhcmNoUGFyYW1zOiBleHBvUm91dGVyLnVzZUxvY2FsU2VhcmNoUGFyYW1zLFxuICAgIHVzZVBhdGhuYW1lOiBleHBvUm91dGVyLnVzZVBhdGhuYW1lLFxuICAgIHVzZU5hdmlnYXRpb246IGV4cG9Sb3V0ZXIudXNlTmF2aWdhdGlvbixcbiAgfTtcbn0gY2F0Y2ggKGUpIHtcbiAgLy8gZXhwby1yb3V0ZXIgbm90IGF2YWlsYWJsZSwgd2lsbCB1c2UgQHJlYWN0LW5hdmlnYXRpb24vbmF0aXZlXG59XG5cbi8qKlxuICogSG9vayB0byBnZXQgdW5pZmllZCBuYXZpZ2F0aW9uIGFkYXB0ZXJcbiAqIFdvcmtzIHdpdGggYm90aCBleHBvLXJvdXRlciBhbmQgQHJlYWN0LW5hdmlnYXRpb24vbmF0aXZlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VOYXZpZ2F0aW9uQWRhcHRlcigpOiBOYXZpZ2F0aW9uQWRhcHRlciB7XG4gIGlmIChleHBvUm91dGVySG9va3MpIHtcbiAgICAvLyBVc2UgZXhwby1yb3V0ZXJcbiAgICBjb25zdCByb3V0ZXIgPSBleHBvUm91dGVySG9va3MudXNlUm91dGVyKCk7XG4gICAgY29uc3QgbmF2aWdhdGlvbiA9IGV4cG9Sb3V0ZXJIb29rcy51c2VOYXZpZ2F0aW9uKCk7XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgIHB1c2g6IChyb3V0ZU5hbWU6IHN0cmluZywgcGFyYW1zPzogYW55KSA9PiB7XG4gICAgICAgIC8vIENvbnZlcnQgcm91dGUgbmFtZSB0byBleHBvLXJvdXRlciBwYXRoXG4gICAgICAgIGNvbnN0IHBhdGggPSByb3V0ZU5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJyk7XG4gICAgICAgIHJvdXRlci5wdXNoKHtcbiAgICAgICAgICBwYXRobmFtZTogYC8ke3BhdGh9YCxcbiAgICAgICAgICBwYXJhbXM6IHBhcmFtcyB8fCB7fSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgbmF2aWdhdGU6IChyb3V0ZU5hbWU6IHN0cmluZywgcGFyYW1zPzogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSByb3V0ZU5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJyk7XG4gICAgICAgIHJvdXRlci5uYXZpZ2F0ZSh7XG4gICAgICAgICAgcGF0aG5hbWU6IGAvJHtwYXRofWAsXG4gICAgICAgICAgcGFyYW1zOiBwYXJhbXMgfHwge30sXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGdvQmFjazogKCkgPT4ge1xuICAgICAgICBpZiAocm91dGVyLmNhbkdvQmFjaygpKSB7XG4gICAgICAgICAgcm91dGVyLmJhY2soKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNhbkdvQmFjazogKCkgPT4gcm91dGVyLmNhbkdvQmFjaygpLFxuICAgICAgc2V0T3B0aW9uczogKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgICBpZiAobmF2aWdhdGlvbiAmJiBuYXZpZ2F0aW9uLnNldE9wdGlvbnMpIHtcbiAgICAgICAgICBuYXZpZ2F0aW9uLnNldE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBnZXRTdGF0ZTogKCkgPT4gbmF2aWdhdGlvbj8uZ2V0U3RhdGU/LigpIHx8IG51bGwsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogd2lsbCBiZSBpbmplY3RlZCBieSBOYXZpZ2F0aW9uQ29udGFpbmVyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdOYXZpZ2F0aW9uIGFkYXB0ZXIgbXVzdCBiZSB1c2VkIHdpdGhpbiBOYXZpZ2F0aW9uQ29udGFpbmVyIG9yIGV4cG8tcm91dGVyIGNvbnRleHQnKTtcbiAgfVxufVxuXG4vKipcbiAqIEhPQyB0byBpbmplY3QgbmF2aWdhdGlvbiBhZGFwdGVyIGludG8gY29tcG9uZW50c1xuICogUHJvdmlkZXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGNsYXNzIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOYXZpZ2F0aW9uQWRhcHRlcjxQIGV4dGVuZHMgb2JqZWN0PihcbiAgQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFAgJiB7IG5hdmlnYXRpb246IE5hdmlnYXRpb25BZGFwdGVyIH0+XG4pOiBSZWFjdC5GQzxQPiB7XG4gIHJldHVybiAocHJvcHM6IFApID0+IHtcbiAgICBjb25zdCBuYXZpZ2F0aW9uID0gdXNlTmF2aWdhdGlvbkFkYXB0ZXIoKTtcbiAgICByZXR1cm4gPENvbXBvbmVudCB7Li4ucHJvcHN9IG5hdmlnYXRpb249e25hdmlnYXRpb259IC8+O1xuICB9O1xufVxuXG4vKipcbiAqIEhvb2sgdG8gZ2V0IHJvdXRlIHBhcmFtcyAod29ya3Mgd2l0aCBib3RoIG5hdmlnYXRpb24gc3lzdGVtcylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlUGFyYW1zPFQgPSBhbnk+KCk6IFQge1xuICBpZiAoZXhwb1JvdXRlckhvb2tzKSB7XG4gICAgcmV0dXJuIGV4cG9Sb3V0ZXJIb29rcy51c2VMb2NhbFNlYXJjaFBhcmFtcygpIGFzIFQ7XG4gIH1cbiAgLy8gV2lsbCBiZSBwcm92aWRlZCBieSBOYXZpZ2F0aW9uQ29udGFpbmVyIHJvdXRlIHByb3BcbiAgcmV0dXJuIHt9IGFzIFQ7XG59XG5cbi8qKlxuICogQ29tcGF0aWJpbGl0eSB3cmFwcGVyIGZvciBzY3JlZW5zXG4gKiBOb3JtYWxpemVzIHByb3BzIGJldHdlZW4gZXhwby1yb3V0ZXIgYW5kIHJlYWN0LW5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjcmVlbldyYXBwZXIoXG4gIFNjcmVlbjogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+LFxuICBvcHRpb25zPzoge1xuICAgIHRpdGxlPzogKHBhcmFtcz86IGFueSkgPT4gc3RyaW5nO1xuICAgIGhlYWRlclNob3duPzogYm9vbGVhbjtcbiAgfVxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBXcmFwcGVkU2NyZWVuKHByb3BzOiBhbnkpIHtcbiAgICBjb25zdCBwYXJhbXMgPSB1c2VSb3V0ZVBhcmFtcygpO1xuICAgIGNvbnN0IG5hdmlnYXRpb24gPSBwcm9wcy5uYXZpZ2F0aW9uIHx8IHVzZU5hdmlnYXRpb25BZGFwdGVyKCk7XG4gICAgXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChvcHRpb25zICYmIG5hdmlnYXRpb24uc2V0T3B0aW9ucykge1xuICAgICAgICBjb25zdCBzY3JlZW5PcHRpb25zOiBhbnkgPSB7XG4gICAgICAgICAgaGVhZGVyU2hvd246IG9wdGlvbnMuaGVhZGVyU2hvd24gIT09IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgaWYgKG9wdGlvbnMudGl0bGUpIHtcbiAgICAgICAgICBzY3JlZW5PcHRpb25zLnRpdGxlID0gb3B0aW9ucy50aXRsZShwYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBuYXZpZ2F0aW9uLnNldE9wdGlvbnMoc2NyZWVuT3B0aW9ucyk7XG4gICAgICB9XG4gICAgfSwgW25hdmlnYXRpb24sIHBhcmFtc10pO1xuICAgIFxuICAgIHJldHVybiA8U2NyZWVuIHsuLi5wcm9wc30gey4uLnBhcmFtc30gbmF2aWdhdGlvbj17bmF2aWdhdGlvbn0gLz47XG4gIH07XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgcnVubmluZyBpbiBleHBvLXJvdXRlciBlbnZpcm9ubWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFeHBvUm91dGVyKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXhwb1JvdXRlciAhPT0gbnVsbDtcbn1cblxuLyoqXG4gKiBFeHBvcnQgZm9yIHR5cGUgY2hlY2tpbmdcbiAqL1xuZXhwb3J0IHR5cGUgeyBOYXZpZ2F0aW9uQWRhcHRlciBhcyBOYXZpZ2F0aW9uIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFLQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFBeUMsU0FBQUQsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFKLHVCQUFBLFlBQUFBLENBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJB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
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface AudioVisualizerProps {
|
|
3
|
+
audioLevel: number;
|
|
4
|
+
barCount?: number;
|
|
5
|
+
barColor?: string;
|
|
6
|
+
style?: any;
|
|
7
|
+
}
|
|
8
|
+
export declare const AudioVisualizer: React.FC<AudioVisualizerProps>;
|
|
9
|
+
export declare const AudioLevelIndicator: React.FC<{
|
|
10
|
+
audioLevel: number;
|
|
11
|
+
size?: number;
|
|
12
|
+
color?: string;
|
|
13
|
+
}>;
|
|
14
|
+
export default AudioVisualizer;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.AudioVisualizer = exports.AudioLevelIndicator = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* Audio Level Visualization Component
|
|
12
|
+
* Shows real-time audio levels with animated bars
|
|
13
|
+
* Works on Web, iOS, and Android
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Audio Visualizer Component
|
|
18
|
+
* Displays animated bars representing audio input level
|
|
19
|
+
*/
|
|
20
|
+
const AudioVisualizer = ({
|
|
21
|
+
audioLevel,
|
|
22
|
+
barCount = 5,
|
|
23
|
+
barColor = '#0000ff',
|
|
24
|
+
style
|
|
25
|
+
}) => {
|
|
26
|
+
// Create animated values for each bar
|
|
27
|
+
const animatedValues = _react.default.useMemo(() => Array.from({
|
|
28
|
+
length: barCount
|
|
29
|
+
}, () => new _reactNative.Animated.Value(0.2)), [barCount]);
|
|
30
|
+
|
|
31
|
+
// Animate bars based on audio level
|
|
32
|
+
_react.default.useEffect(() => {
|
|
33
|
+
const normalizedLevel = Math.min(100, Math.max(0, audioLevel)) / 100;
|
|
34
|
+
animatedValues.forEach((animValue, index) => {
|
|
35
|
+
// Each bar has slightly different timing for wave effect
|
|
36
|
+
const delay = index * 50;
|
|
37
|
+
const targetHeight = 0.2 + normalizedLevel * 0.8 * (Math.random() * 0.3 + 0.7);
|
|
38
|
+
_reactNative.Animated.timing(animValue, {
|
|
39
|
+
toValue: targetHeight,
|
|
40
|
+
duration: 100,
|
|
41
|
+
delay,
|
|
42
|
+
useNativeDriver: false
|
|
43
|
+
}).start();
|
|
44
|
+
});
|
|
45
|
+
}, [audioLevel, animatedValues]);
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
47
|
+
style: [styles.container, style]
|
|
48
|
+
}, animatedValues.map((animValue, index) => /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
|
|
49
|
+
key: index,
|
|
50
|
+
style: [styles.bar, {
|
|
51
|
+
backgroundColor: barColor,
|
|
52
|
+
height: animValue.interpolate({
|
|
53
|
+
inputRange: [0, 1],
|
|
54
|
+
outputRange: ['20%', '100%']
|
|
55
|
+
})
|
|
56
|
+
}]
|
|
57
|
+
})));
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Circular Audio Level Indicator
|
|
62
|
+
* Shows audio level as a pulsing circle
|
|
63
|
+
*/
|
|
64
|
+
exports.AudioVisualizer = AudioVisualizer;
|
|
65
|
+
const AudioLevelIndicator = ({
|
|
66
|
+
audioLevel,
|
|
67
|
+
size = 80,
|
|
68
|
+
color = '#0000ff'
|
|
69
|
+
}) => {
|
|
70
|
+
const scale = _react.default.useMemo(() => new _reactNative.Animated.Value(1), []);
|
|
71
|
+
_react.default.useEffect(() => {
|
|
72
|
+
const normalizedLevel = Math.min(100, Math.max(0, audioLevel)) / 100;
|
|
73
|
+
const targetScale = 1 + normalizedLevel * 0.3;
|
|
74
|
+
_reactNative.Animated.spring(scale, {
|
|
75
|
+
toValue: targetScale,
|
|
76
|
+
tension: 50,
|
|
77
|
+
friction: 3,
|
|
78
|
+
useNativeDriver: true
|
|
79
|
+
}).start();
|
|
80
|
+
}, [audioLevel, scale]);
|
|
81
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
82
|
+
style: [indicatorStyles.indicatorContainer, {
|
|
83
|
+
width: size,
|
|
84
|
+
height: size
|
|
85
|
+
}]
|
|
86
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
|
|
87
|
+
style: [indicatorStyles.indicator, {
|
|
88
|
+
backgroundColor: color,
|
|
89
|
+
transform: [{
|
|
90
|
+
scale
|
|
91
|
+
}],
|
|
92
|
+
opacity: 0.7
|
|
93
|
+
}]
|
|
94
|
+
}));
|
|
95
|
+
};
|
|
96
|
+
exports.AudioLevelIndicator = AudioLevelIndicator;
|
|
97
|
+
const styles = _reactNative.StyleSheet.create({
|
|
98
|
+
container: {
|
|
99
|
+
flexDirection: 'row',
|
|
100
|
+
alignItems: 'center',
|
|
101
|
+
justifyContent: 'center',
|
|
102
|
+
height: 60,
|
|
103
|
+
gap: 4
|
|
104
|
+
},
|
|
105
|
+
bar: {
|
|
106
|
+
width: 4,
|
|
107
|
+
borderRadius: 2,
|
|
108
|
+
minHeight: '20%'
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
const indicatorStyles = _reactNative.StyleSheet.create({
|
|
112
|
+
indicatorContainer: {
|
|
113
|
+
justifyContent: 'center',
|
|
114
|
+
alignItems: 'center'
|
|
115
|
+
},
|
|
116
|
+
indicator: {
|
|
117
|
+
width: '100%',
|
|
118
|
+
height: '100%',
|
|
119
|
+
borderRadius: 999
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
var _default = exports.default = AudioVisualizer;
|
|
123
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdE5hdGl2ZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkF1ZGlvVmlzdWFsaXplciIsImF1ZGlvTGV2ZWwiLCJiYXJDb3VudCIsImJhckNvbG9yIiwic3R5bGUiLCJhbmltYXRlZFZhbHVlcyIsIlJlYWN0IiwidXNlTWVtbyIsIkFycmF5IiwiZnJvbSIsImxlbmd0aCIsIkFuaW1hdGVkIiwiVmFsdWUiLCJ1c2VFZmZlY3QiLCJub3JtYWxpemVkTGV2ZWwiLCJNYXRoIiwibWluIiwibWF4IiwiZm9yRWFjaCIsImFuaW1WYWx1ZSIsImluZGV4IiwiZGVsYXkiLCJ0YXJnZXRIZWlnaHQiLCJyYW5kb20iLCJ0aW1pbmciLCJ0b1ZhbHVlIiwiZHVyYXRpb24iLCJ1c2VOYXRpdmVEcml2ZXIiLCJzdGFydCIsImNyZWF0ZUVsZW1lbnQiLCJWaWV3Iiwic3R5bGVzIiwiY29udGFpbmVyIiwibWFwIiwia2V5IiwiYmFyIiwiYmFja2dyb3VuZENvbG9yIiwiaGVpZ2h0IiwiaW50ZXJwb2xhdGUiLCJpbnB1dFJhbmdlIiwib3V0cHV0UmFuZ2UiLCJleHBvcnRzIiwiQXVkaW9MZXZlbEluZGljYXRvciIsInNpemUiLCJjb2xvciIsInNjYWxlIiwidGFyZ2V0U2NhbGUiLCJzcHJpbmciLCJ0ZW5zaW9uIiwiZnJpY3Rpb24iLCJpbmRpY2F0b3JTdHlsZXMiLCJpbmRpY2F0b3JDb250YWluZXIiLCJ3aWR0aCIsImluZGljYXRvciIsInRyYW5zZm9ybSIsIm9wYWNpdHkiLCJTdHlsZVNoZWV0IiwiY3JlYXRlIiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImdhcCIsImJvcmRlclJhZGl1cyIsIm1pbkhlaWdodCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2F1ZGlvLXZpc3VhbGl6ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXVkaW8gTGV2ZWwgVmlzdWFsaXphdGlvbiBDb21wb25lbnRcbiAqIFNob3dzIHJlYWwtdGltZSBhdWRpbyBsZXZlbHMgd2l0aCBhbmltYXRlZCBiYXJzXG4gKiBXb3JrcyBvbiBXZWIsIGlPUywgYW5kIEFuZHJvaWRcbiAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVmlldywgQW5pbWF0ZWQsIFN0eWxlU2hlZXQgfSBmcm9tICdyZWFjdC1uYXRpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGlvVmlzdWFsaXplclByb3BzIHtcbiAgYXVkaW9MZXZlbDogbnVtYmVyOyAvLyAwLTEwMFxuICBiYXJDb3VudD86IG51bWJlcjtcbiAgYmFyQ29sb3I/OiBzdHJpbmc7XG4gIHN0eWxlPzogYW55O1xufVxuXG4vKipcbiAqIEF1ZGlvIFZpc3VhbGl6ZXIgQ29tcG9uZW50XG4gKiBEaXNwbGF5cyBhbmltYXRlZCBiYXJzIHJlcHJlc2VudGluZyBhdWRpbyBpbnB1dCBsZXZlbFxuICovXG5leHBvcnQgY29uc3QgQXVkaW9WaXN1YWxpemVyOiBSZWFjdC5GQzxBdWRpb1Zpc3VhbGl6ZXJQcm9wcz4gPSAoe1xuICBhdWRpb0xldmVsLFxuICBiYXJDb3VudCA9IDUsXG4gIGJhckNvbG9yID0gJyMwMDAwZmYnLFxuICBzdHlsZSxcbn0pID0+IHtcbiAgLy8gQ3JlYXRlIGFuaW1hdGVkIHZhbHVlcyBmb3IgZWFjaCBiYXJcbiAgY29uc3QgYW5pbWF0ZWRWYWx1ZXMgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IEFycmF5LmZyb20oeyBsZW5ndGg6IGJhckNvdW50IH0sICgpID0+IG5ldyBBbmltYXRlZC5WYWx1ZSgwLjIpKSxcbiAgICBbYmFyQ291bnRdXG4gICk7XG5cbiAgLy8gQW5pbWF0ZSBiYXJzIGJhc2VkIG9uIGF1ZGlvIGxldmVsXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZExldmVsID0gTWF0aC5taW4oMTAwLCBNYXRoLm1heCgwLCBhdWRpb0xldmVsKSkgLyAxMDA7XG5cbiAgICBhbmltYXRlZFZhbHVlcy5mb3JFYWNoKChhbmltVmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAvLyBFYWNoIGJhciBoYXMgc2xpZ2h0bHkgZGlmZmVyZW50IHRpbWluZyBmb3Igd2F2ZSBlZmZlY3RcbiAgICAgIGNvbnN0IGRlbGF5ID0gaW5kZXggKiA1MDtcbiAgICAgIGNvbnN0IHRhcmdldEhlaWdodCA9IDAuMiArIG5vcm1hbGl6ZWRMZXZlbCAqIDAuOCAqIChNYXRoLnJhbmRvbSgpICogMC4zICsgMC43KTtcblxuICAgICAgQW5pbWF0ZWQudGltaW5nKGFuaW1WYWx1ZSwge1xuICAgICAgICB0b1ZhbHVlOiB0YXJnZXRIZWlnaHQsXG4gICAgICAgIGR1cmF0aW9uOiAxMDAsXG4gICAgICAgIGRlbGF5LFxuICAgICAgICB1c2VOYXRpdmVEcml2ZXI6IGZhbHNlLFxuICAgICAgfSkuc3RhcnQoKTtcbiAgICB9KTtcbiAgfSwgW2F1ZGlvTGV2ZWwsIGFuaW1hdGVkVmFsdWVzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VmlldyBzdHlsZT17W3N0eWxlcy5jb250YWluZXIsIHN0eWxlXX0+XG4gICAgICB7YW5pbWF0ZWRWYWx1ZXMubWFwKChhbmltVmFsdWUsIGluZGV4KSA9PiAoXG4gICAgICAgIDxBbmltYXRlZC5WaWV3XG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICBzdHlsZT17W1xuICAgICAgICAgICAgc3R5bGVzLmJhcixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBiYXJDb2xvcixcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhbmltVmFsdWUuaW50ZXJwb2xhdGUoe1xuICAgICAgICAgICAgICAgIGlucHV0UmFuZ2U6IFswLCAxXSxcbiAgICAgICAgICAgICAgICBvdXRwdXRSYW5nZTogWycyMCUnLCAnMTAwJSddLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXX1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvVmlldz5cbiAgKTtcbn07XG5cbi8qKlxuICogQ2lyY3VsYXIgQXVkaW8gTGV2ZWwgSW5kaWNhdG9yXG4gKiBTaG93cyBhdWRpbyBsZXZlbCBhcyBhIHB1bHNpbmcgY2lyY2xlXG4gKi9cbmV4cG9ydCBjb25zdCBBdWRpb0xldmVsSW5kaWNhdG9yOiBSZWFjdC5GQzx7XG4gIGF1ZGlvTGV2ZWw6IG51bWJlcjtcbiAgc2l6ZT86IG51bWJlcjtcbiAgY29sb3I/OiBzdHJpbmc7XG59PiA9ICh7IGF1ZGlvTGV2ZWwsIHNpemUgPSA4MCwgY29sb3IgPSAnIzAwMDBmZicgfSkgPT4ge1xuICBjb25zdCBzY2FsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gbmV3IEFuaW1hdGVkLlZhbHVlKDEpLCBbXSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkTGV2ZWwgPSBNYXRoLm1pbigxMDAsIE1hdGgubWF4KDAsIGF1ZGlvTGV2ZWwpKSAvIDEwMDtcbiAgICBjb25zdCB0YXJnZXRTY2FsZSA9IDEgKyBub3JtYWxpemVkTGV2ZWwgKiAwLjM7XG5cbiAgICBBbmltYXRlZC5zcHJpbmcoc2NhbGUsIHtcbiAgICAgIHRvVmFsdWU6IHRhcmdldFNjYWxlLFxuICAgICAgdGVuc2lvbjogNTAsXG4gICAgICBmcmljdGlvbjogMyxcbiAgICAgIHVzZU5hdGl2ZURyaXZlcjogdHJ1ZSxcbiAgICB9KS5zdGFydCgpO1xuICB9LCBbYXVkaW9MZXZlbCwgc2NhbGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxWaWV3IHN0eWxlPXtbaW5kaWNhdG9yU3R5bGVzLmluZGljYXRvckNvbnRhaW5lciwgeyB3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplIH1dfT5cbiAgICAgIDxBbmltYXRlZC5WaWV3XG4gICAgICAgIHN0eWxlPXtbXG4gICAgICAgICAgaW5kaWNhdG9yU3R5bGVzLmluZGljYXRvcixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBbeyBzY2FsZSB9XSxcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNyxcbiAgICAgICAgICB9LFxuICAgICAgICBdfVxuICAgICAgLz5cbiAgICA8L1ZpZXc+XG4gICk7XG59O1xuXG5jb25zdCBzdHlsZXMgPSBTdHlsZVNoZWV0LmNyZWF0ZSh7XG4gIGNvbnRhaW5lcjoge1xuICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBoZWlnaHQ6IDYwLFxuICAgIGdhcDogNCxcbiAgfSxcbiAgYmFyOiB7XG4gICAgd2lkdGg6IDQsXG4gICAgYm9yZGVyUmFkaXVzOiAyLFxuICAgIG1pbkhlaWdodDogJzIwJScsXG4gIH0sXG59KTtcblxuY29uc3QgaW5kaWNhdG9yU3R5bGVzID0gU3R5bGVTaGVldC5jcmVhdGUoe1xuICBpbmRpY2F0b3JDb250YWluZXI6IHtcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0sXG4gIGluZGljYXRvcjoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgYm9yZGVyUmFkaXVzOiA5OTksXG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQXVkaW9WaXN1YWxpemVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFNQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFBMEQsU0FBQUQsdUJBQUFHLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFQMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFZQTtBQUNB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
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CurrentSelectionRect {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
}
|
|
7
|
+
export interface CurrentSelectionInterface {
|
|
8
|
+
className: string;
|
|
9
|
+
key: any;
|
|
10
|
+
rect: CurrentSelectionRect;
|
|
11
|
+
}
|
|
12
|
+
type CurrentSelectionOptions = {
|
|
13
|
+
tapSlopPx?: number;
|
|
14
|
+
blockedRects?: CurrentSelectionRect[];
|
|
15
|
+
};
|
|
16
|
+
export declare class CurrentContextError extends Error {
|
|
17
|
+
constructor(message: string);
|
|
18
|
+
}
|
|
19
|
+
export declare function pickNearestInterface(candidates: CurrentSelectionInterface[], clickPoint: {
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
}): CurrentSelectionInterface;
|
|
23
|
+
export declare function pickCurrentInterface(currentClassName: string, interfaces: CurrentSelectionInterface[], clickPoints: {
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
}[], options?: CurrentSelectionOptions): CurrentSelectionInterface;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CurrentContextError = void 0;
|
|
7
|
+
exports.pickCurrentInterface = pickCurrentInterface;
|
|
8
|
+
exports.pickNearestInterface = pickNearestInterface;
|
|
9
|
+
class CurrentContextError extends Error {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'CurrentContextError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.CurrentContextError = CurrentContextError;
|
|
16
|
+
function pointToRectDistanceSq(pointX, pointY, rect) {
|
|
17
|
+
const closestX = Math.max(rect.x, Math.min(pointX, rect.x + rect.width));
|
|
18
|
+
const closestY = Math.max(rect.y, Math.min(pointY, rect.y + rect.height));
|
|
19
|
+
return Math.pow(pointX - closestX, 2) + Math.pow(pointY - closestY, 2);
|
|
20
|
+
}
|
|
21
|
+
function pointHitsRect(pointX, pointY, rect, slopPx) {
|
|
22
|
+
const left = rect.x - slopPx;
|
|
23
|
+
const right = rect.x + rect.width + slopPx;
|
|
24
|
+
const top = rect.y - slopPx;
|
|
25
|
+
const bottom = rect.y + rect.height + slopPx;
|
|
26
|
+
return pointX >= left && pointX <= right && pointY >= top && pointY <= bottom;
|
|
27
|
+
}
|
|
28
|
+
function pointIsBlocked(pointX, pointY, blockedRects) {
|
|
29
|
+
for (const rect of blockedRects) {
|
|
30
|
+
if (pointHitsRect(pointX, pointY, rect, 0)) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
function pickNearestInterface(candidates, clickPoint) {
|
|
37
|
+
let closest = candidates[0];
|
|
38
|
+
let closestDistance = pointToRectDistanceSq(clickPoint.x, clickPoint.y, closest.rect);
|
|
39
|
+
for (let i = 1; i < candidates.length; i++) {
|
|
40
|
+
const distance = pointToRectDistanceSq(clickPoint.x, clickPoint.y, candidates[i].rect);
|
|
41
|
+
if (distance < closestDistance) {
|
|
42
|
+
closest = candidates[i];
|
|
43
|
+
closestDistance = distance;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
console.log(`[Current] nearest match for tap (${clickPoint.x}, ${clickPoint.y}) -> ${closest.className} ${JSON.stringify(closest.key)} distance=${closestDistance}`);
|
|
47
|
+
return closest;
|
|
48
|
+
}
|
|
49
|
+
function pickCurrentInterface(currentClassName, interfaces, clickPoints, options = {}) {
|
|
50
|
+
const tapSlopPx = options.tapSlopPx ?? 14;
|
|
51
|
+
const blockedRects = options.blockedRects ?? [];
|
|
52
|
+
console.log(`[Current] resolving ${currentClassName}; interfaces=${interfaces.length}; clickPoints=${clickPoints.length}`);
|
|
53
|
+
console.log(`[Current] interfaces: ${interfaces.map(genieInterface => `${genieInterface.className}:${JSON.stringify(genieInterface.key)}@(${genieInterface.rect.x},${genieInterface.rect.y},${genieInterface.rect.width},${genieInterface.rect.height})`).join(" | ")}`);
|
|
54
|
+
const candidates = interfaces.filter(genieInterface => genieInterface.className === currentClassName);
|
|
55
|
+
console.log(`[Current] candidates for ${currentClassName}: ${candidates.map(genieInterface => `${JSON.stringify(genieInterface.key)}@(${genieInterface.rect.x},${genieInterface.rect.y},${genieInterface.rect.width},${genieInterface.rect.height})`).join(" | ") || "none"}`);
|
|
56
|
+
if (candidates.length === 0) {
|
|
57
|
+
throw new CurrentContextError(`No visible ${currentClassName} context is available on this screen.`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Resolution order:
|
|
61
|
+
// 1. If the user tapped while listening (for example on /probes), resolve the
|
|
62
|
+
// nearest visible wrapper of the requested class only.
|
|
63
|
+
// 2. Otherwise fall back to the largest visible wrapper of that class (for
|
|
64
|
+
// example the single Probe on /probes/[probeId]).
|
|
65
|
+
if (clickPoints.length > 0) {
|
|
66
|
+
for (let index = clickPoints.length - 1; index >= 0; index -= 1) {
|
|
67
|
+
const tap = clickPoints[index];
|
|
68
|
+
if (pointIsBlocked(tap.x, tap.y, blockedRects)) {
|
|
69
|
+
console.log(`[Current] skipping tap (${tap.x}, ${tap.y}) at index ${index}; occluded by voice UI`);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const tappedCandidates = candidates.filter(candidate => pointHitsRect(tap.x, tap.y, candidate.rect, tapSlopPx));
|
|
73
|
+
if (tappedCandidates.length === 0) {
|
|
74
|
+
console.log(`[Current] skipping tap (${tap.x}, ${tap.y}) at index ${index}; no ${currentClassName} hit`);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
console.log(`[Current] using tap (${tap.x}, ${tap.y}) at index ${index}; matched ${tappedCandidates.length} candidate(s)`);
|
|
78
|
+
return pickNearestInterface(tappedCandidates, tap);
|
|
79
|
+
}
|
|
80
|
+
console.log(`[Current] no captured taps hit visible ${currentClassName}; falling back to largest visible candidate`);
|
|
81
|
+
}
|
|
82
|
+
let result = candidates[0];
|
|
83
|
+
let biggestArea = result.rect.width * result.rect.height;
|
|
84
|
+
for (let i = 1; i < candidates.length; i++) {
|
|
85
|
+
const area = candidates[i].rect.width * candidates[i].rect.height;
|
|
86
|
+
if (area > biggestArea) {
|
|
87
|
+
result = candidates[i];
|
|
88
|
+
biggestArea = area;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
console.log(`[Current] no tap available; using largest visible ${currentClassName} ${JSON.stringify(result.key)} area=${biggestArea}`);
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDdXJyZW50Q29udGV4dEVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJuYW1lIiwiZXhwb3J0cyIsInBvaW50VG9SZWN0RGlzdGFuY2VTcSIsInBvaW50WCIsInBvaW50WSIsInJlY3QiLCJjbG9zZXN0WCIsIk1hdGgiLCJtYXgiLCJ4IiwibWluIiwid2lkdGgiLCJjbG9zZXN0WSIsInkiLCJoZWlnaHQiLCJwb3ciLCJwb2ludEhpdHNSZWN0Iiwic2xvcFB4IiwibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIiwicG9pbnRJc0Jsb2NrZWQiLCJibG9ja2VkUmVjdHMiLCJwaWNrTmVhcmVzdEludGVyZmFjZSIsImNhbmRpZGF0ZXMiLCJjbGlja1BvaW50IiwiY2xvc2VzdCIsImNsb3Nlc3REaXN0YW5jZSIsImkiLCJsZW5ndGgiLCJkaXN0YW5jZSIsImNvbnNvbGUiLCJsb2ciLCJjbGFzc05hbWUiLCJKU09OIiwic3RyaW5naWZ5Iiwia2V5IiwicGlja0N1cnJlbnRJbnRlcmZhY2UiLCJjdXJyZW50Q2xhc3NOYW1lIiwiaW50ZXJmYWNlcyIsImNsaWNrUG9pbnRzIiwib3B0aW9ucyIsInRhcFNsb3BQeCIsIm1hcCIsImdlbmllSW50ZXJmYWNlIiwiam9pbiIsImZpbHRlciIsImluZGV4IiwidGFwIiwidGFwcGVkQ2FuZGlkYXRlcyIsImNhbmRpZGF0ZSIsInJlc3VsdCIsImJpZ2dlc3RBcmVhIiwiYXJlYSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jdXJyZW50LXNlbGVjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRTZWxlY3Rpb25SZWN0IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRTZWxlY3Rpb25JbnRlcmZhY2Uge1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAga2V5OiBhbnk7XG4gIHJlY3Q6IEN1cnJlbnRTZWxlY3Rpb25SZWN0O1xufVxuXG50eXBlIEN1cnJlbnRTZWxlY3Rpb25PcHRpb25zID0ge1xuICB0YXBTbG9wUHg/OiBudW1iZXI7XG4gIGJsb2NrZWRSZWN0cz86IEN1cnJlbnRTZWxlY3Rpb25SZWN0W107XG59O1xuXG5leHBvcnQgY2xhc3MgQ3VycmVudENvbnRleHRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0N1cnJlbnRDb250ZXh0RXJyb3InO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBvaW50VG9SZWN0RGlzdGFuY2VTcShcbiAgcG9pbnRYOiBudW1iZXIsXG4gIHBvaW50WTogbnVtYmVyLFxuICByZWN0OiBDdXJyZW50U2VsZWN0aW9uUmVjdCxcbik6IG51bWJlciB7XG4gIGNvbnN0IGNsb3Nlc3RYID0gTWF0aC5tYXgocmVjdC54LCBNYXRoLm1pbihwb2ludFgsIHJlY3QueCArIHJlY3Qud2lkdGgpKTtcbiAgY29uc3QgY2xvc2VzdFkgPSBNYXRoLm1heChyZWN0LnksIE1hdGgubWluKHBvaW50WSwgcmVjdC55ICsgcmVjdC5oZWlnaHQpKTtcbiAgcmV0dXJuIE1hdGgucG93KHBvaW50WCAtIGNsb3Nlc3RYLCAyKSArIE1hdGgucG93KHBvaW50WSAtIGNsb3Nlc3RZLCAyKTtcbn1cblxuZnVuY3Rpb24gcG9pbnRIaXRzUmVjdChcbiAgcG9pbnRYOiBudW1iZXIsXG4gIHBvaW50WTogbnVtYmVyLFxuICByZWN0OiBDdXJyZW50U2VsZWN0aW9uUmVjdCxcbiAgc2xvcFB4OiBudW1iZXIsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgbGVmdCA9IHJlY3QueCAtIHNsb3BQeDtcbiAgY29uc3QgcmlnaHQgPSByZWN0LnggKyByZWN0LndpZHRoICsgc2xvcFB4O1xuICBjb25zdCB0b3AgPSByZWN0LnkgLSBzbG9wUHg7XG4gIGNvbnN0IGJvdHRvbSA9IHJlY3QueSArIHJlY3QuaGVpZ2h0ICsgc2xvcFB4O1xuICByZXR1cm4gcG9pbnRYID49IGxlZnQgJiYgcG9pbnRYIDw9IHJpZ2h0ICYmIHBvaW50WSA+PSB0b3AgJiYgcG9pbnRZIDw9IGJvdHRvbTtcbn1cblxuZnVuY3Rpb24gcG9pbnRJc0Jsb2NrZWQoXG4gIHBvaW50WDogbnVtYmVyLFxuICBwb2ludFk6IG51bWJlcixcbiAgYmxvY2tlZFJlY3RzOiBDdXJyZW50U2VsZWN0aW9uUmVjdFtdLFxuKTogYm9vbGVhbiB7XG4gIGZvciAoY29uc3QgcmVjdCBvZiBibG9ja2VkUmVjdHMpIHtcbiAgICBpZiAocG9pbnRIaXRzUmVjdChwb2ludFgsIHBvaW50WSwgcmVjdCwgMCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrTmVhcmVzdEludGVyZmFjZShcbiAgY2FuZGlkYXRlczogQ3VycmVudFNlbGVjdGlvbkludGVyZmFjZVtdLFxuICBjbGlja1BvaW50OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0sXG4pOiBDdXJyZW50U2VsZWN0aW9uSW50ZXJmYWNlIHtcbiAgbGV0IGNsb3Nlc3QgPSBjYW5kaWRhdGVzWzBdO1xuICBsZXQgY2xvc2VzdERpc3RhbmNlID0gcG9pbnRUb1JlY3REaXN0YW5jZVNxKFxuICAgIGNsaWNrUG9pbnQueCxcbiAgICBjbGlja1BvaW50LnksXG4gICAgY2xvc2VzdC5yZWN0LFxuICApO1xuXG4gIGZvciAobGV0IGkgPSAxOyBpIDwgY2FuZGlkYXRlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGRpc3RhbmNlID0gcG9pbnRUb1JlY3REaXN0YW5jZVNxKFxuICAgICAgY2xpY2tQb2ludC54LFxuICAgICAgY2xpY2tQb2ludC55LFxuICAgICAgY2FuZGlkYXRlc1tpXS5yZWN0LFxuICAgICk7XG4gICAgaWYgKGRpc3RhbmNlIDwgY2xvc2VzdERpc3RhbmNlKSB7XG4gICAgICBjbG9zZXN0ID0gY2FuZGlkYXRlc1tpXTtcbiAgICAgIGNsb3Nlc3REaXN0YW5jZSA9IGRpc3RhbmNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnNvbGUubG9nKFxuICAgIGBbQ3VycmVudF0gbmVhcmVzdCBtYXRjaCBmb3IgdGFwICgke2NsaWNrUG9pbnQueH0sICR7Y2xpY2tQb2ludC55fSkgLT4gJHtjbG9zZXN0LmNsYXNzTmFtZX0gJHtKU09OLnN0cmluZ2lmeShjbG9zZXN0LmtleSl9IGRpc3RhbmNlPSR7Y2xvc2VzdERpc3RhbmNlfWAsXG4gICk7XG4gIHJldHVybiBjbG9zZXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja0N1cnJlbnRJbnRlcmZhY2UoXG4gIGN1cnJlbnRDbGFzc05hbWU6IHN0cmluZyxcbiAgaW50ZXJmYWNlczogQ3VycmVudFNlbGVjdGlvbkludGVyZmFjZVtdLFxuICBjbGlja1BvaW50czogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9W10sXG4gIG9wdGlvbnM6IEN1cnJlbnRTZWxlY3Rpb25PcHRpb25zID0ge30sXG4pOiBDdXJyZW50U2VsZWN0aW9uSW50ZXJmYWNlIHtcbiAgY29uc3QgdGFwU2xvcFB4ID0gb3B0aW9ucy50YXBTbG9wUHggPz8gMTQ7XG4gIGNvbnN0IGJsb2NrZWRSZWN0cyA9IG9wdGlvbnMuYmxvY2tlZFJlY3RzID8/IFtdO1xuICBjb25zb2xlLmxvZyhcbiAgICBgW0N1cnJlbnRdIHJlc29sdmluZyAke2N1cnJlbnRDbGFzc05hbWV9OyBpbnRlcmZhY2VzPSR7aW50ZXJmYWNlcy5sZW5ndGh9OyBjbGlja1BvaW50cz0ke2NsaWNrUG9pbnRzLmxlbmd0aH1gLFxuICApO1xuICBjb25zb2xlLmxvZyhcbiAgICBgW0N1cnJlbnRdIGludGVyZmFjZXM6ICR7aW50ZXJmYWNlc1xuICAgICAgLm1hcChcbiAgICAgICAgKGdlbmllSW50ZXJmYWNlKSA9PlxuICAgICAgICAgIGAke2dlbmllSW50ZXJmYWNlLmNsYXNzTmFtZX06JHtKU09OLnN0cmluZ2lmeShnZW5pZUludGVyZmFjZS5rZXkpfUAoJHtnZW5pZUludGVyZmFjZS5yZWN0Lnh9LCR7Z2VuaWVJbnRlcmZhY2UucmVjdC55fSwke2dlbmllSW50ZXJmYWNlLnJlY3Qud2lkdGh9LCR7Z2VuaWVJbnRlcmZhY2UucmVjdC5oZWlnaHR9KWAsXG4gICAgICApXG4gICAgICAuam9pbihcIiB8IFwiKX1gLFxuICApO1xuICBjb25zdCBjYW5kaWRhdGVzID0gaW50ZXJmYWNlcy5maWx0ZXIoXG4gICAgKGdlbmllSW50ZXJmYWNlKSA9PiBnZW5pZUludGVyZmFjZS5jbGFzc05hbWUgPT09IGN1cnJlbnRDbGFzc05hbWUsXG4gICk7XG5cbiAgY29uc29sZS5sb2coXG4gICAgYFtDdXJyZW50XSBjYW5kaWRhdGVzIGZvciAke2N1cnJlbnRDbGFzc05hbWV9OiAke2NhbmRpZGF0ZXNcbiAgICAgIC5tYXAoXG4gICAgICAgIChnZW5pZUludGVyZmFjZSkgPT5cbiAgICAgICAgICBgJHtKU09OLnN0cmluZ2lmeShnZW5pZUludGVyZmFjZS5rZXkpfUAoJHtnZW5pZUludGVyZmFjZS5yZWN0Lnh9LCR7Z2VuaWVJbnRlcmZhY2UucmVjdC55fSwke2dlbmllSW50ZXJmYWNlLnJlY3Qud2lkdGh9LCR7Z2VuaWVJbnRlcmZhY2UucmVjdC5oZWlnaHR9KWAsXG4gICAgICApXG4gICAgICAuam9pbihcIiB8IFwiKSB8fCBcIm5vbmVcIn1gLFxuICApO1xuXG4gIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBDdXJyZW50Q29udGV4dEVycm9yKFxuICAgICAgYE5vIHZpc2libGUgJHtjdXJyZW50Q2xhc3NOYW1lfSBjb250ZXh0IGlzIGF2YWlsYWJsZSBvbiB0aGlzIHNjcmVlbi5gLFxuICAgICk7XG4gIH1cblxuICAvLyBSZXNvbHV0aW9uIG9yZGVyOlxuICAvLyAxLiBJZiB0aGUgdXNlciB0YXBwZWQgd2hpbGUgbGlzdGVuaW5nIChmb3IgZXhhbXBsZSBvbiAvcHJvYmVzKSwgcmVzb2x2ZSB0aGVcbiAgLy8gICAgbmVhcmVzdCB2aXNpYmxlIHdyYXBwZXIgb2YgdGhlIHJlcXVlc3RlZCBjbGFzcyBvbmx5LlxuICAvLyAyLiBPdGhlcndpc2UgZmFsbCBiYWNrIHRvIHRoZSBsYXJnZXN0IHZpc2libGUgd3JhcHBlciBvZiB0aGF0IGNsYXNzIChmb3JcbiAgLy8gICAgZXhhbXBsZSB0aGUgc2luZ2xlIFByb2JlIG9uIC9wcm9iZXMvW3Byb2JlSWRdKS5cbiAgaWYgKGNsaWNrUG9pbnRzLmxlbmd0aCA+IDApIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IGNsaWNrUG9pbnRzLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4IC09IDEpIHtcbiAgICAgIGNvbnN0IHRhcCA9IGNsaWNrUG9pbnRzW2luZGV4XTtcbiAgICAgIGlmIChwb2ludElzQmxvY2tlZCh0YXAueCwgdGFwLnksIGJsb2NrZWRSZWN0cykpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYFtDdXJyZW50XSBza2lwcGluZyB0YXAgKCR7dGFwLnh9LCAke3RhcC55fSkgYXQgaW5kZXggJHtpbmRleH07IG9jY2x1ZGVkIGJ5IHZvaWNlIFVJYCxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhcHBlZENhbmRpZGF0ZXMgPSBjYW5kaWRhdGVzLmZpbHRlcigoY2FuZGlkYXRlKSA9PlxuICAgICAgICBwb2ludEhpdHNSZWN0KHRhcC54LCB0YXAueSwgY2FuZGlkYXRlLnJlY3QsIHRhcFNsb3BQeCksXG4gICAgICApO1xuICAgICAgaWYgKHRhcHBlZENhbmRpZGF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBbQ3VycmVudF0gc2tpcHBpbmcgdGFwICgke3RhcC54fSwgJHt0YXAueX0pIGF0IGluZGV4ICR7aW5kZXh9OyBubyAke2N1cnJlbnRDbGFzc05hbWV9IGhpdGAsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFtDdXJyZW50XSB1c2luZyB0YXAgKCR7dGFwLnh9LCAke3RhcC55fSkgYXQgaW5kZXggJHtpbmRleH07IG1hdGNoZWQgJHt0YXBwZWRDYW5kaWRhdGVzLmxlbmd0aH0gY2FuZGlkYXRlKHMpYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gcGlja05lYXJlc3RJbnRlcmZhY2UodGFwcGVkQ2FuZGlkYXRlcywgdGFwKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBbQ3VycmVudF0gbm8gY2FwdHVyZWQgdGFwcyBoaXQgdmlzaWJsZSAke2N1cnJlbnRDbGFzc05hbWV9OyBmYWxsaW5nIGJhY2sgdG8gbGFyZ2VzdCB2aXNpYmxlIGNhbmRpZGF0ZWAsXG4gICAgKTtcbiAgfVxuXG4gIGxldCByZXN1bHQgPSBjYW5kaWRhdGVzWzBdO1xuICBsZXQgYmlnZ2VzdEFyZWEgPSByZXN1bHQucmVjdC53aWR0aCAqIHJlc3VsdC5yZWN0LmhlaWdodDtcblxuICBmb3IgKGxldCBpID0gMTsgaSA8IGNhbmRpZGF0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBhcmVhID0gY2FuZGlkYXRlc1tpXS5yZWN0LndpZHRoICogY2FuZGlkYXRlc1tpXS5yZWN0LmhlaWdodDtcbiAgICBpZiAoYXJlYSA+IGJpZ2dlc3RBcmVhKSB7XG4gICAgICByZXN1bHQgPSBjYW5kaWRhdGVzW2ldO1xuICAgICAgYmlnZ2VzdEFyZWEgPSBhcmVhO1xuICAgIH1cbiAgfVxuXG4gIGNvbnNvbGUubG9nKFxuICAgIGBbQ3VycmVudF0gbm8gdGFwIGF2YWlsYWJsZTsgdXNpbmcgbGFyZ2VzdCB2aXNpYmxlICR7Y3VycmVudENsYXNzTmFtZX0gJHtKU09OLnN0cmluZ2lmeShyZXN1bHQua2V5KX0gYXJlYT0ke2JpZ2dlc3RBcmVhfWAsXG4gICk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXSwibWFwcGluZ3MiOiI7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QUFNLENBQUVJLFNBQVMsSUFDbkRuQyxhQUFhLENBQUNpQyxHQUFHLENBQUN4QyxDQUFDLEVBQUV3QyxHQUFHLENBQUNwQyxDQUFDLEVBQUVzQyxTQUFTLENBQUM5QyxJQUFJLEVBQUVzQyxTQUFTLENBQ3ZELENBQUM7TUFDRCxJQUFJTyxnQkFBZ0IsQ0FBQ3BCLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDakNFLE9BQU8sQ0FBQ0MsR0FBRyxDQUNULDJCQUEyQmdCLEdBQUcsQ0FBQ3hDLENBQUMsS0FBS3dDLEdBQUcsQ0FBQ3BDLENBQUMsY0FBY21DLEtBQUssUUFBUVQsZ0JBQWdCLE1BQ3ZGLENBQUM7UUFDRDtNQUNGO01BRUFQLE9BQU8sQ0FBQ0MsR0FBRyxDQUNULHdCQUF3QmdCLEdBQUcsQ0FBQ3hDLENBQUMsS0FBS3dDLEdBQUcsQ0FBQ3BDLENBQUMsY0FBY21DLEtBQUssYUFBYUUsZ0JBQWdCLENBQUNwQixNQUFNLGVBQ2hHLENBQUM7TUFDRCxPQUFPTixvQkFBb0IsQ0FBQzBCLGdCQUFnQixFQUFFRCxHQUFHLENBQUM7SUFDcEQ7SUFFQWpCLE9BQU8sQ0FBQ0MsR0FBRyxDQUNULDBDQUEwQ00sZ0JBQWdCLDZDQUM1RCxDQUFDO0VBQ0g7RUFFQSxJQUFJYSxNQUFNLEdBQUczQixVQUFVLENBQUMsQ0FBQyxDQUFDO0VBQzFCLElBQUk0QixXQUFXLEdBQUdELE1BQU0sQ0FBQy9DLElBQUksQ0FBQ00sS0FBSyxHQUFHeUMsTUFBTSxDQUFDL0MsSUFBSSxDQUFDUyxNQUFNO0VBRXhELEtBQUssSUFBSWUsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHSixVQUFVLENBQUNLLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDMUMsTUFBTXlCLElBQUksR0FBRzdCLFVBQVUsQ0FBQ0ksQ0FBQyxDQUFDLENBQUN4QixJQUFJLENBQUNNLEtBQUssR0FBR2MsVUFBVSxDQUFDSSxDQUFDLENBQUMsQ0FBQ3hCLElBQUksQ0FBQ1MsTUFBTTtJQUNqRSxJQUFJd0MsSUFBSSxHQUFHRCxXQUFXLEVBQUU7TUFDdEJELE1BQU0sR0FBRzNCLFVBQVUsQ0FBQ0ksQ0FBQyxDQUFDO01BQ3RCd0IsV0FBVyxHQUFHQyxJQUFJO0lBQ3BCO0VBQ0Y7RUFFQXRCLE9BQU8sQ0FBQ0MsR0FBRyxDQUNULHFEQUFxRE0sZ0JBQWdCLElBQUlKLElBQUksQ0FBQ0MsU0FBUyxDQUFDZ0IsTUFBTSxDQUFDZixHQUFHLENBQUMsU0FBU2dCLFdBQVcsRUFDekgsQ0FBQztFQUNELE9BQU9ELE1BQU07QUFDZiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type GenieUserFacingErrorType = "info" | "error" | "success" | "warning";
|
|
2
|
+
export type GenieUserFacingErrorParams = {
|
|
3
|
+
minimalText: string;
|
|
4
|
+
fullText?: string;
|
|
5
|
+
type?: GenieUserFacingErrorType;
|
|
6
|
+
code?: string;
|
|
7
|
+
shouldSpeak?: boolean;
|
|
8
|
+
cause?: unknown;
|
|
9
|
+
};
|
|
10
|
+
export declare class GenieUserFacingError extends Error {
|
|
11
|
+
code?: string;
|
|
12
|
+
minimalText: string;
|
|
13
|
+
fullText: string;
|
|
14
|
+
type: GenieUserFacingErrorType;
|
|
15
|
+
shouldSpeak?: boolean;
|
|
16
|
+
cause?: unknown;
|
|
17
|
+
constructor({ minimalText, fullText, type, code, shouldSpeak, cause, }: GenieUserFacingErrorParams);
|
|
18
|
+
}
|
|
19
|
+
export declare function isGenieUserFacingError(error: unknown): error is GenieUserFacingError;
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.GenieUserFacingError = void 0;
|
|
7
|
+
exports.isGenieUserFacingError = isGenieUserFacingError;
|
|
8
|
+
class GenieUserFacingError extends Error {
|
|
9
|
+
constructor({
|
|
10
|
+
minimalText,
|
|
11
|
+
fullText,
|
|
12
|
+
type = "error",
|
|
13
|
+
code,
|
|
14
|
+
shouldSpeak,
|
|
15
|
+
cause
|
|
16
|
+
}) {
|
|
17
|
+
super(fullText || minimalText);
|
|
18
|
+
this.code = void 0;
|
|
19
|
+
this.minimalText = void 0;
|
|
20
|
+
this.fullText = void 0;
|
|
21
|
+
this.type = void 0;
|
|
22
|
+
this.shouldSpeak = void 0;
|
|
23
|
+
this.cause = void 0;
|
|
24
|
+
this.name = "GenieUserFacingError";
|
|
25
|
+
this.code = code;
|
|
26
|
+
this.minimalText = minimalText;
|
|
27
|
+
this.fullText = fullText || minimalText;
|
|
28
|
+
this.type = type;
|
|
29
|
+
this.shouldSpeak = shouldSpeak;
|
|
30
|
+
this.cause = cause;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.GenieUserFacingError = GenieUserFacingError;
|
|
34
|
+
function isGenieUserFacingError(error) {
|
|
35
|
+
return error instanceof GenieUserFacingError;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHZW5pZVVzZXJGYWNpbmdFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtaW5pbWFsVGV4dCIsImZ1bGxUZXh0IiwidHlwZSIsImNvZGUiLCJzaG91bGRTcGVhayIsImNhdXNlIiwibmFtZSIsImV4cG9ydHMiLCJpc0dlbmllVXNlckZhY2luZ0Vycm9yIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi9zcmMvZXJyb3JzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEdlbmllVXNlckZhY2luZ0Vycm9yVHlwZSA9IFwiaW5mb1wiIHwgXCJlcnJvclwiIHwgXCJzdWNjZXNzXCIgfCBcIndhcm5pbmdcIjtcblxuZXhwb3J0IHR5cGUgR2VuaWVVc2VyRmFjaW5nRXJyb3JQYXJhbXMgPSB7XG4gIG1pbmltYWxUZXh0OiBzdHJpbmc7XG4gIGZ1bGxUZXh0Pzogc3RyaW5nO1xuICB0eXBlPzogR2VuaWVVc2VyRmFjaW5nRXJyb3JUeXBlO1xuICBjb2RlPzogc3RyaW5nO1xuICBzaG91bGRTcGVhaz86IGJvb2xlYW47XG4gIGNhdXNlPzogdW5rbm93bjtcbn07XG5cbmV4cG9ydCBjbGFzcyBHZW5pZVVzZXJGYWNpbmdFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29kZT86IHN0cmluZztcbiAgbWluaW1hbFRleHQ6IHN0cmluZztcbiAgZnVsbFRleHQ6IHN0cmluZztcbiAgdHlwZTogR2VuaWVVc2VyRmFjaW5nRXJyb3JUeXBlO1xuICBzaG91bGRTcGVhaz86IGJvb2xlYW47XG4gIG92ZXJyaWRlIGNhdXNlPzogdW5rbm93bjtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgbWluaW1hbFRleHQsXG4gICAgZnVsbFRleHQsXG4gICAgdHlwZSA9IFwiZXJyb3JcIixcbiAgICBjb2RlLFxuICAgIHNob3VsZFNwZWFrLFxuICAgIGNhdXNlLFxuICB9OiBHZW5pZVVzZXJGYWNpbmdFcnJvclBhcmFtcykge1xuICAgIHN1cGVyKGZ1bGxUZXh0IHx8IG1pbmltYWxUZXh0KTtcbiAgICB0aGlzLm5hbWUgPSBcIkdlbmllVXNlckZhY2luZ0Vycm9yXCI7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLm1pbmltYWxUZXh0ID0gbWluaW1hbFRleHQ7XG4gICAgdGhpcy5mdWxsVGV4dCA9IGZ1bGxUZXh0IHx8IG1pbmltYWxUZXh0O1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5zaG91bGRTcGVhayA9IHNob3VsZFNwZWFrO1xuICAgIHRoaXMuY2F1c2UgPSBjYXVzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNHZW5pZVVzZXJGYWNpbmdFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIEdlbmllVXNlckZhY2luZ0Vycm9yIHtcbiAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgR2VuaWVVc2VyRmFjaW5nRXJyb3I7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFXTyxNQUFNQSxvQkFBb0IsU0FBU0MsS0FBSyxDQUFDO0VBUTlDQyxXQUFXQSxDQUFDO0lBQ1ZDLFdBQVc7SUFDWEMsUUFBUTtJQUNSQyxJQUFJLEdBQUcsT0FBTztJQUNkQyxJQUFJO0lBQ0pDLFdBQVc7SUFDWEM7RUFDMEIsQ0FBQyxFQUFFO0lBQzdCLEtBQUssQ0FBQ0osUUFBUSxJQUFJRCxXQUFXLENBQUM7SUFBQyxLQWZqQ0csSUFBSTtJQUFBLEtBQ0pILFdBQVc7SUFBQSxLQUNYQyxRQUFRO0lBQUEsS0FDUkMsSUFBSTtJQUFBLEtBQ0pFLFdBQVc7SUFBQSxLQUNGQyxLQUFLO0lBV1osSUFBSSxDQUFDQyxJQUFJLEdBQUcsc0JBQXNCO0lBQ2xDLElBQUksQ0FBQ0gsSUFBSSxHQUFHQSxJQUFJO0lBQ2hCLElBQUksQ0FBQ0gsV0FBVyxHQUFHQSxXQUFXO0lBQzlCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQSxRQUFRLElBQUlELFdBQVc7SUFDdkMsSUFBSSxDQUFDRSxJQUFJLEdBQUdBLElBQUk7SUFDaEIsSUFBSSxDQUFDRSxXQUFXLEdBQUdBLFdBQVc7SUFDOUIsSUFBSSxDQUFDQyxLQUFLLEdBQUdBLEtBQUs7RUFDcEI7QUFDRjtBQUFDRSxPQUFBLENBQUFWLG9CQUFBLEdBQUFBLG9CQUFBO0FBRU0sU0FBU1csc0JBQXNCQSxDQUFDQyxLQUFjLEVBQWlDO0VBQ3BGLE9BQU9BLEtBQUssWUFBWVosb0JBQW9CO0FBQzlDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { HelperClass } from "@garrix82/reactgenie-dsl";
|
|
2
|
+
import "reflect-metadata";
|
|
3
|
+
import { int } from "@garrix82/reactgenie-dsl";
|
|
4
|
+
export declare class DateTime extends HelperClass {
|
|
5
|
+
private _date;
|
|
6
|
+
year: int;
|
|
7
|
+
month: int;
|
|
8
|
+
day: int;
|
|
9
|
+
dayOfWeek: int;
|
|
10
|
+
hour: int;
|
|
11
|
+
minute: int;
|
|
12
|
+
second: int;
|
|
13
|
+
static sunday: int;
|
|
14
|
+
static monday: int;
|
|
15
|
+
static tuesday: int;
|
|
16
|
+
static wednesday: int;
|
|
17
|
+
static thursday: int;
|
|
18
|
+
static friday: int;
|
|
19
|
+
static saturday: int;
|
|
20
|
+
private updateDate;
|
|
21
|
+
static now(): DateTime;
|
|
22
|
+
static today(): DateTime;
|
|
23
|
+
static fromDate(date: Date): DateTime;
|
|
24
|
+
constructor({ year, month, day, hour, minute, second, }: {
|
|
25
|
+
year?: int;
|
|
26
|
+
month?: int;
|
|
27
|
+
day?: int;
|
|
28
|
+
hour?: int;
|
|
29
|
+
minute?: int;
|
|
30
|
+
second?: int;
|
|
31
|
+
});
|
|
32
|
+
static setup(): void;
|
|
33
|
+
static compare(a: DateTime, b: DateTime): number;
|
|
34
|
+
static fromString(data: string): DateTime;
|
|
35
|
+
static CreateDatetime({ year, month, day, hour, minute, second, }: {
|
|
36
|
+
year?: int;
|
|
37
|
+
month?: int;
|
|
38
|
+
day?: int;
|
|
39
|
+
hour?: int;
|
|
40
|
+
minute?: int;
|
|
41
|
+
second?: int;
|
|
42
|
+
}): DateTime;
|
|
43
|
+
addDateOffset({ year, month, day, hour, minute, second, }: {
|
|
44
|
+
year?: int;
|
|
45
|
+
month?: int;
|
|
46
|
+
day?: int;
|
|
47
|
+
hour?: int;
|
|
48
|
+
minute?: int;
|
|
49
|
+
second?: int;
|
|
50
|
+
}): DateTime;
|
|
51
|
+
setDate({ year, month, day, hour, minute, second, day_of_the_week, }: {
|
|
52
|
+
year?: int;
|
|
53
|
+
month?: int;
|
|
54
|
+
day?: int;
|
|
55
|
+
hour?: int;
|
|
56
|
+
minute?: int;
|
|
57
|
+
second?: int;
|
|
58
|
+
day_of_the_week?: int;
|
|
59
|
+
}): DateTime;
|
|
60
|
+
toString(): string;
|
|
61
|
+
getDate(): Date;
|
|
62
|
+
static Examples: {
|
|
63
|
+
user_utterance: string;
|
|
64
|
+
example_parsed: string;
|
|
65
|
+
}[];
|
|
66
|
+
}
|