@envive-ai/react-hooks 0.3.63 → 0.3.65
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/dist/application/models/featureGates.cjs +2 -2
- package/dist/application/models/featureGates.d.cts +2 -2
- package/dist/application/models/featureGates.d.ts +2 -2
- package/dist/application/models/featureGates.js +2 -2
- package/dist/application/utils/elementObserver.d.cts +2 -2
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/index.d.ts +1 -1
- package/dist/atoms/app/variant.d.ts +6 -6
- package/dist/atoms/chat/chatState.d.cts +19 -19
- package/dist/atoms/chat/chatState.d.ts +19 -19
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +3 -3
- package/dist/atoms/chat/index.d.ts +3 -3
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.ts +7 -7
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +3 -3
- package/dist/atoms/chat/replies.d.cts +3 -3
- package/dist/atoms/chat/suggestions.d.ts +3 -3
- package/dist/atoms/envive/enviveConfig.d.cts +14 -14
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/search/utils.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/pageContext/pageContext.cjs +12 -24
- package/dist/contexts/pageContext/pageContext.js +12 -24
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/typesV3.cjs +8 -1
- package/dist/contexts/typesV3.d.cts +23 -6
- package/dist/contexts/typesV3.d.ts +23 -6
- package/dist/contexts/typesV3.js +8 -2
- package/dist/hooks/Intersection/useIntersection.cjs +9 -2
- package/dist/hooks/Intersection/useIntersection.d.cts +2 -2
- package/dist/hooks/Intersection/useIntersection.d.ts +2 -2
- package/dist/hooks/Intersection/useIntersection.js +9 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +12 -3
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +2 -1
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +2 -1
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +13 -4
- package/dist/hooks/WidgetLoadDiagnostics/index.cjs +4 -0
- package/dist/hooks/WidgetLoadDiagnostics/index.d.cts +2 -0
- package/dist/hooks/WidgetLoadDiagnostics/index.d.ts +2 -0
- package/dist/hooks/WidgetLoadDiagnostics/index.js +3 -0
- package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.cjs +122 -0
- package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.cts +48 -0
- package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.ts +48 -0
- package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.js +120 -0
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/amplitudeService/eventNames.cjs +2 -1
- package/dist/services/amplitudeService/eventNames.d.cts +2 -1
- package/dist/services/amplitudeService/eventNames.d.ts +2 -1
- package/dist/services/amplitudeService/eventNames.js +2 -1
- package/dist/services/enviveConfigService/enviveConfigService.cjs +21 -35
- package/dist/services/enviveConfigService/enviveConfigService.d.cts +1 -2
- package/dist/services/enviveConfigService/enviveConfigService.d.ts +1 -2
- package/dist/services/enviveConfigService/enviveConfigService.js +21 -35
- package/dist/services/enviveConfigService/fetchBootstrapConfig.cjs +15 -16
- package/dist/services/enviveConfigService/fetchBootstrapConfig.js +15 -16
- package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +1 -69
- package/dist/services/enviveConfigService/fetchGraphQLConfig.js +2 -69
- package/dist/services/featureFlagService/index.cjs +7 -5
- package/dist/services/featureFlagService/index.d.cts +2 -1
- package/dist/services/featureFlagService/index.d.ts +2 -1
- package/dist/services/featureFlagService/index.js +7 -5
- package/dist/services/ga4ProjectionService/ga4EventSchema.cjs +3 -2
- package/dist/services/ga4ProjectionService/ga4EventSchema.js +3 -2
- package/dist/services/hardcopyService/hardcopyService.cjs +12 -3
- package/dist/services/hardcopyService/hardcopyService.d.cts +3 -1
- package/dist/services/hardcopyService/hardcopyService.d.ts +3 -1
- package/dist/services/hardcopyService/hardcopyService.js +12 -3
- package/package.json +5 -1
- package/src/application/models/featureGates.ts +11 -8
- package/src/contexts/pageContext/__tests__/pageContext.test.tsx +4 -59
- package/src/contexts/pageContext/pageContext.tsx +20 -41
- package/src/contexts/typesV3.ts +22 -4
- package/src/hooks/Intersection/useIntersection.ts +11 -0
- package/src/hooks/TrackComponentVisibleEvent/__tests__/useTrackComponentVisibleEvent.test.tsx +64 -0
- package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +23 -4
- package/src/hooks/WidgetLoadDiagnostics/__tests__/useWidgetLoadDiagnostics.test.ts +161 -0
- package/src/hooks/WidgetLoadDiagnostics/index.ts +5 -0
- package/src/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.ts +178 -0
- package/src/services/amplitudeService/eventNames.ts +4 -0
- package/src/services/enviveConfigService/__tests__/enviveConfigService.test.ts +72 -158
- package/src/services/enviveConfigService/__tests__/fetchBootstrapConfig.test.ts +111 -13
- package/src/services/enviveConfigService/__tests__/fetchGraphQLConfig.test.ts +161 -490
- package/src/services/enviveConfigService/enviveConfigService.ts +51 -87
- package/src/services/enviveConfigService/fetchBootstrapConfig.ts +74 -66
- package/src/services/enviveConfigService/fetchGraphQLConfig.ts +0 -120
- package/src/services/featureFlagService/__tests__/getFeatureFlagOverrides.test.ts +54 -0
- package/src/services/featureFlagService/index.ts +19 -6
- package/src/services/ga4ProjectionService/ga4EventSchema.ts +5 -0
- package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +16 -5
- package/src/services/hardcopyService/hardcopyService.ts +10 -2
- package/dist/application/models/graphql/queries/getWidgetConfigQuery.cjs +0 -42
- package/dist/application/models/graphql/queries/getWidgetConfigQuery.js +0 -41
- package/src/application/models/graphql/queries/getWidgetConfigQuery.ts +0 -55
|
@@ -6,7 +6,7 @@ import "../../atoms/app/index.js";
|
|
|
6
6
|
import { useAmplitude } from "../../contexts/amplitudeContext/amplitudeContext.js";
|
|
7
7
|
import { extractPageContext } from "../WidgetInteraction/utils.js";
|
|
8
8
|
import { useIntersection } from "../Intersection/useIntersection.js";
|
|
9
|
-
import { useEffect, useRef } from "react";
|
|
9
|
+
import { useEffect, useRef, useState } from "react";
|
|
10
10
|
import { useAtomValue } from "jotai";
|
|
11
11
|
|
|
12
12
|
//#region src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts
|
|
@@ -27,7 +27,13 @@ const safeNow = () => {
|
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
const useTrackComponentVisibleEvent = (element, eventProps, rootMargin = "0px", enabled = true) => {
|
|
30
|
-
const
|
|
30
|
+
const [visibilitySource, setVisibilitySource] = useState("pending");
|
|
31
|
+
const isVisible = useIntersection(element, rootMargin, eventProps, () => {
|
|
32
|
+
setVisibilitySource((prev) => prev === "pending" ? "fallback" : prev);
|
|
33
|
+
});
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (isVisible) setVisibilitySource((prev) => prev === "pending" ? "observer" : prev);
|
|
36
|
+
}, [isVisible]);
|
|
31
37
|
const hasTrackedEvent = useRef(false);
|
|
32
38
|
const { trackEvent } = useAmplitude();
|
|
33
39
|
const variantInfo = useAtomValue(pageVariantInfoAtom);
|
|
@@ -72,9 +78,12 @@ const useTrackComponentVisibleEvent = (element, eventProps, rootMargin = "0px",
|
|
|
72
78
|
eventProps,
|
|
73
79
|
trackEvent
|
|
74
80
|
]);
|
|
75
|
-
return {
|
|
81
|
+
return {
|
|
82
|
+
isVisible,
|
|
83
|
+
visibilitySource
|
|
84
|
+
};
|
|
76
85
|
};
|
|
77
86
|
|
|
78
87
|
//#endregion
|
|
79
88
|
export { useTrackComponentVisibleEvent };
|
|
80
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQuanMiLCJuYW1lcyI6WyJMb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQvdXNlVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBwYWdlVmFyaWFudEluZm9BdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyB1c2VBbXBsaXR1ZGUgfSBmcm9tICdzcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dC9hbXBsaXR1ZGVDb250ZXh0JztcbmltcG9ydCB7IFBhZ2VWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9jb250ZXh0cy9wYWdlQ29udGV4dC90eXBlcyc7XG5pbXBvcnQgeyB1c2VJbnRlcnNlY3Rpb24gfSBmcm9tICdzcmMvaG9va3MvSW50ZXJzZWN0aW9uL3VzZUludGVyc2VjdGlvbic7XG5pbXBvcnQgeyBleHRyYWN0UGFnZUNvbnRleHQgfSBmcm9tICdzcmMvaG9va3MvV2lkZ2V0SW50ZXJhY3Rpb24vdXRpbHMnO1xuaW1wb3J0IHtcbiAgRW52aXZlTWV0cmljc0V2ZW50TmFtZSxcbiAgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSxcbn0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ3VzZVRyYWNrQ29tcG9uZW50VmlzaWJsZUV2ZW50Jyk7XG5cbi8qKlxuICogVHJhY2tzIGEgY29tcG9uZW50IGFuZCBsb2dzIGBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRDb21wb25lbnRWaXNpYmxlYCB3aGVuIHZpc2libGUuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byB0cmFjayB2aXNpYmlsaXR5IG9mLlxuICogQHBhcmFtIGV2ZW50UHJvcHMgLSBQcm9wZXJ0aWVzIHRvIGluY2x1ZGUgd2l0aCB0aGUgZXZlbnQuXG4gKiBAcGFyYW0gcm9vdE1hcmdpbiAtIFJvb3QgbWFyZ2luIGZvciB0aGUgaW50ZXJzZWN0aW9uIG9ic2VydmVyIChkZWZhdWx0cyB0byAwcHgpLlxuICogQHBhcmFtIGVuYWJsZWQgLSBXaGV0aGVyIHRyYWNraW5nIGlzIGVuYWJsZWQgKGRlZmF1bHRzIHRvIHRydWUpLlxuICovXG5jb25zdCBzYWZlTm93ID0gKCk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnBlcmZvcm1hbmNlPy5ub3c/LigpIDogdW5kZWZpbmVkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdXNlVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQgPSAoXG4gIGVsZW1lbnQ6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4sXG4gIGV2ZW50UHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgcm9vdE1hcmdpbjogc3RyaW5nID0gJzBweCcsXG4gIGVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlLFxuKTogeyBpc1Zpc2libGU6IGJvb2xlYW47IHZpc2liaWxpdHlTb3VyY2U6ICdvYnNlcnZlcicgfCAnZmFsbGJhY2snIHwgJ3BlbmRpbmcnIH0gPT4ge1xuICAvLyBIb3cgdmlzaWJpbGl0eSB3YXMgZXN0YWJsaXNoZWQsIGZvciB3aWRnZXQtbG9hZCBkaWFnbm9zdGljczpcbiAgLy8gIC0gJ3BlbmRpbmcnICDigJQgbm90IGNvbmZpcm1lZCBieSBlaXRoZXIgcGF0aCB5ZXQuIFN0YXlzIHRoaXMgd2F5IGZvciBhIGBkZWZlckxvYWRpbmc6IGZhbHNlYFxuICAvLyAgICAgICAgICAgICAgICAgd2lkZ2V0IHdob3NlIHJlcXVlc3RzIHNldHRsZSBiZWZvcmUgdGhlIG9ic2VydmVyIGV2ZXIgcmVwb3J0cywgc28gd2UgZG9uJ3RcbiAgLy8gICAgICAgICAgICAgICAgIGZhbHNlbHkgY2xhaW0gJ29ic2VydmVyJyBmb3IgYSBsb2FkIHRoYXQgbmV2ZXIgd2FpdGVkIG9uIHZpc2liaWxpdHkuXG4gIC8vICAtICdvYnNlcnZlcicg4oCUIHRoZSBJbnRlcnNlY3Rpb25PYnNlcnZlciByZXBvcnRlZCB0aGUgZWxlbWVudCB2aXNpYmxlLlxuICAvLyAgLSAnZmFsbGJhY2snIOKAlCB0aGUgcmVjb25jaWxlIGZhbGxiYWNrIGhhZCB0byBmb3JjZSBpdCAob2JzZXJ2ZXIgc3RheWVkIHNpbGVudCBvbi1zY3JlZW4pLlxuICAvLyBTdGF0ZSAobm90IGEgcmVmKSBzbyBjb25zdW1lcnMgcmVsaWFibHkgcmUtcmVuZGVyIHdoZW4gdGhlIHNvdXJjZSByZXNvbHZlcy5cbiAgY29uc3QgW3Zpc2liaWxpdHlTb3VyY2UsIHNldFZpc2liaWxpdHlTb3VyY2VdID0gdXNlU3RhdGU8J29ic2VydmVyJyB8ICdmYWxsYmFjaycgfCAncGVuZGluZyc+KFxuICAgICdwZW5kaW5nJyxcbiAgKTtcbiAgLy8gZXZlbnRQcm9wcyAod2lkZ2V0X2NvbmZpZ19pZCwgd2lkZ2V0X3R5cGUsIOKApikgZG91YmxlIGFzIGxvZyBjb250ZXh0IHNvIHRoZSBob29rJ3NcbiAgLy8gdmlzaWJpbGl0eS1mYWxsYmFjayBlcnJvciBpZGVudGlmaWVzIHdoaWNoIHdpZGdldCBpdCByZXNjdWVkLlxuICBjb25zdCBpc1Zpc2libGUgPSB1c2VJbnRlcnNlY3Rpb24oZWxlbWVudCwgcm9vdE1hcmdpbiwgZXZlbnRQcm9wcywgKCkgPT4ge1xuICAgIC8vIFRoZSBvYnNlcnZlciBzdGF5ZWQgc2lsZW50IG9uLXNjcmVlbiBhbmQgdGhlIGZhbGxiYWNrIGZvcmNlZCB2aXNpYmlsaXR5LiBUaGlzIGlzIHJlY29yZGVkXG4gICAgLy8gYmVmb3JlIHVzZUludGVyc2VjdGlvbidzIG93biBzZXRJc1Zpc2libGUsIHNvIGl0IHdpbnMgb3ZlciB0aGUgJ29ic2VydmVyJyByZXNvbHV0aW9uIGJlbG93LlxuICAgIHNldFZpc2liaWxpdHlTb3VyY2UocHJldiA9PiAocHJldiA9PT0gJ3BlbmRpbmcnID8gJ2ZhbGxiYWNrJyA6IHByZXYpKTtcbiAgfSk7XG4gIC8vIFJlc29sdmUgJ3BlbmRpbmcnIOKGkiAnb2JzZXJ2ZXInIG9uY2UgdGhlIG9ic2VydmVyIGVzdGFibGlzaGVzIHZpc2liaWxpdHk7IGEgJ2ZhbGxiYWNrJ1xuICAvLyBhbHJlYWR5IHJlY29yZGVkIGFib3ZlIGlzIHByZXNlcnZlZC5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlKSBzZXRWaXNpYmlsaXR5U291cmNlKHByZXYgPT4gKHByZXYgPT09ICdwZW5kaW5nJyA/ICdvYnNlcnZlcicgOiBwcmV2KSk7XG4gIH0sIFtpc1Zpc2libGVdKTtcbiAgY29uc3QgaGFzVHJhY2tlZEV2ZW50ID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcbiAgY29uc3QgdmFyaWFudEluZm8gPSB1c2VBdG9tVmFsdWUocGFnZVZhcmlhbnRJbmZvQXRvbSk7XG4gIC8vIENhcHR1cmVkIG9uIGZpcnN0IHJlbmRlciwgbm90IHdoZW4gdGhlIGV2ZW50IGZpcmVzOiBXaWRnZXQgUmVuZGVyZWQgaXNcbiAgLy8gZW1pdHRlZCBhdCB2aXNpYmlsaXR5LCB3aGljaCBmb3IgYmVsb3ctdGhlLWZvbGQgd2lkZ2V0cyBjYW4gYmUgbG9uZ1xuICAvLyBhZnRlciB0aGUgd2lkZ2V0IGFjdHVhbGx5IHJlbmRlcmVkLiBwZXJmb3JtYW5jZS5ub3coKSBpcyByZWxhdGl2ZSB0b1xuICAvLyBuYXZpZ2F0aW9uIHN0YXJ0LCBzbyB0aGlzIHJlYWRzIGFzIFwibXMgZnJvbSBpbml0aWFsIHBhZ2UgbG9hZCB0b1xuICAvLyB3aWRnZXQgcmVuZGVyXCIuXG4gIGNvbnN0IHJlbmRlck9mZnNldE1zID0gdXNlUmVmKHNhZmVOb3coKSkuY3VycmVudDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnZWZmZWN0IHJhbicsIHtcbiAgICAgIGVuYWJsZWQsXG4gICAgICBpc1Zpc2libGUsXG4gICAgICBoYXNUcmFja2VkRXZlbnQ6IGhhc1RyYWNrZWRFdmVudC5jdXJyZW50LFxuICAgICAgZXZlbnRQcm9wcyxcbiAgICB9KTtcblxuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdza2lwcGVkIOKAlCBlbmFibGVkIGlzIGZhbHNlJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChoYXNUcmFja2VkRXZlbnQuY3VycmVudCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdza2lwcGVkIOKAlCBldmVudCBhbHJlYWR5IHRyYWNrZWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpc1Zpc2libGUpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1Zygnc2tpcHBlZCDigJQgZWxlbWVudCBub3QgdmlzaWJsZScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvZ2dlci5sb2dEZWJ1ZygnZmlyaW5nIHRyYWNraW5nIGV2ZW50cycsIGV2ZW50UHJvcHMpO1xuICAgIHRyYWNrRXZlbnQoe1xuICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRDb21wb25lbnRWaXNpYmxlLFxuICAgICAgZXZlbnRQcm9wcyxcbiAgICB9KTtcbiAgICB0cmFja0V2ZW50KHtcbiAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRSZW5kZXJlZCxcbiAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgLi4uZXZlbnRQcm9wcyxcbiAgICAgICAgdHJpZ2dlcjoge1xuICAgICAgICAgIHdpZGdldDogZXZlbnRQcm9wcz8ud2lkZ2V0X3R5cGUsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRleHQ6IHZhcmlhbnRJbmZvID8gZXh0cmFjdFBhZ2VDb250ZXh0KHZhcmlhbnRJbmZvIGFzIFBhZ2VWYXJpYW50SW5mbykgOiBudWxsLFxuICAgICAgICAncGVyZm9ybWFuY2UucmVuZGVyX29mZnNldF9tcyc6IHJlbmRlck9mZnNldE1zLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBoYXNUcmFja2VkRXZlbnQuY3VycmVudCA9IHRydWU7XG4gIH0sIFtlbmFibGVkLCBpc1Zpc2libGUsIGV2ZW50UHJvcHMsIHRyYWNrRXZlbnRdKTtcbiAgcmV0dXJuIHsgaXNWaXNpYmxlLCB2aXNpYmlsaXR5U291cmNlIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFhQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyxnQ0FBZ0M7Ozs7Ozs7OztBQVUxRCxNQUFNLGdCQUFvQztBQUN4QyxLQUFJO0FBQ0YsU0FBTyxPQUFPLFdBQVcsY0FBYyxPQUFPLGFBQWEsT0FBTyxHQUFHO1NBQy9EO0FBQ047OztBQUlKLE1BQWEsaUNBQ1gsU0FDQSxZQUNBLGFBQXFCLE9BQ3JCLFVBQW1CLFNBQytEO0NBUWxGLE1BQU0sQ0FBQyxrQkFBa0IsdUJBQXVCLFNBQzlDLFVBQ0Q7Q0FHRCxNQUFNLFlBQVksZ0JBQWdCLFNBQVMsWUFBWSxrQkFBa0I7QUFHdkUsdUJBQW9CLFNBQVMsU0FBUyxZQUFZLGFBQWEsS0FBTTtHQUNyRTtBQUdGLGlCQUFnQjtBQUNkLE1BQUksVUFBVyxzQkFBb0IsU0FBUyxTQUFTLFlBQVksYUFBYSxLQUFNO0lBQ25GLENBQUMsVUFBVSxDQUFDO0NBQ2YsTUFBTSxrQkFBa0IsT0FBTyxNQUFNO0NBQ3JDLE1BQU0sRUFBRSxlQUFlLGNBQWM7Q0FDckMsTUFBTSxjQUFjLGFBQWEsb0JBQW9CO0NBTXJELE1BQU0saUJBQWlCLE9BQU8sU0FBUyxDQUFDLENBQUM7QUFFekMsaUJBQWdCO0FBQ2QsU0FBTyxTQUFTLGNBQWM7R0FDNUI7R0FDQTtHQUNBLGlCQUFpQixnQkFBZ0I7R0FDakM7R0FDRCxDQUFDO0FBRUYsTUFBSSxDQUFDLFNBQVM7QUFDWixVQUFPLFNBQVMsNkJBQTZCO0FBQzdDOztBQUVGLE1BQUksZ0JBQWdCLFNBQVM7QUFDM0IsVUFBTyxTQUFTLGtDQUFrQztBQUNsRDs7QUFFRixNQUFJLENBQUMsV0FBVztBQUNkLFVBQU8sU0FBUyxnQ0FBZ0M7QUFDaEQ7O0FBR0YsU0FBTyxTQUFTLDBCQUEwQixXQUFXO0FBQ3JELGFBQVc7R0FDVCxXQUFXLHVCQUF1QjtHQUNsQztHQUNELENBQUM7QUFDRixhQUFXO0dBQ1QsV0FBVyx1QkFBdUI7R0FDbEMsWUFBWTtJQUNWLEdBQUc7SUFDSCxTQUFTLEVBQ1AsUUFBUSxZQUFZLGFBQ3JCO0lBQ0QsU0FBUyxjQUFjLG1CQUFtQixZQUErQixHQUFHO0lBQzVFLGdDQUFnQztJQUNqQztHQUNGLENBQUM7QUFDRixrQkFBZ0IsVUFBVTtJQUN6QjtFQUFDO0VBQVM7RUFBVztFQUFZO0VBQVcsQ0FBQztBQUNoRCxRQUFPO0VBQUU7RUFBVztFQUFrQiJ9
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_eventNames = require('../../services/amplitudeService/eventNames.cjs');
|
|
3
|
+
require('../../services/amplitudeService/amplitudeService.cjs');
|
|
4
|
+
const require_variant = require('../../atoms/app/variant.cjs');
|
|
5
|
+
require('../../atoms/app/index.cjs');
|
|
6
|
+
const require_amplitudeContext = require('../../contexts/amplitudeContext/amplitudeContext.cjs');
|
|
7
|
+
const require_hooks_WidgetInteraction_utils = require('../WidgetInteraction/utils.cjs');
|
|
8
|
+
let react = require("react");
|
|
9
|
+
let jotai = require("jotai");
|
|
10
|
+
|
|
11
|
+
//#region src/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.ts
|
|
12
|
+
const WIDGET_LOAD_STALL_MS = 5e3;
|
|
13
|
+
const connectionType = () => {
|
|
14
|
+
try {
|
|
15
|
+
return navigator.connection?.effectiveType;
|
|
16
|
+
} catch {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const now = () => {
|
|
21
|
+
try {
|
|
22
|
+
return typeof window !== "undefined" && window.performance?.now ? window.performance.now() : Date.now();
|
|
23
|
+
} catch {
|
|
24
|
+
return Date.now();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Emits the layered `[Envive] Diagnostics` widget-load net so eng can measure not just what
|
|
29
|
+
* loads, but the negative space between layers — the failures that fire nothing today:
|
|
30
|
+
*
|
|
31
|
+
* widget_mounted (ungated) → [Envive] Widget Rendered (visible) → widget_load_outcome
|
|
32
|
+
*
|
|
33
|
+
* - `widget_mounted` fires on mount regardless of visibility, so a widget that mounts but never
|
|
34
|
+
* becomes visible (the suspected infinite-load crux) shows up as a *mounted with no rendered*
|
|
35
|
+
* gap instead of being invisible to analytics entirely.
|
|
36
|
+
* - `widget_load_outcome` fires once the widget's own requests settle
|
|
37
|
+
* (content_loaded / static_fallback / error).
|
|
38
|
+
* - `widget_load_stalled` fires if it's still loading at WIDGET_LOAD_STALL_MS AND still mounted.
|
|
39
|
+
* The timer is cleared on unmount, so a shopper who navigates away first never trips it —
|
|
40
|
+
* "stalled with no later outcome" is therefore a clean stuck signal, undiluted by abandonment.
|
|
41
|
+
*
|
|
42
|
+
* `load_id` correlates all of the above (and is threaded onto `[Envive] Widget Rendered`) so
|
|
43
|
+
* the gaps are joinable per load.
|
|
44
|
+
*/
|
|
45
|
+
const useWidgetLoadDiagnostics = (input) => {
|
|
46
|
+
const { enabled, loadId, widgetType, widgetConfigId, startLoading, ownRequestsSettled, hardcopyContent } = input;
|
|
47
|
+
const { trackEvent } = require_amplitudeContext.useAmplitude();
|
|
48
|
+
const variantInfo = (0, jotai.useAtomValue)(require_variant.pageVariantInfoAtom);
|
|
49
|
+
const inputRef = (0, react.useRef)(input);
|
|
50
|
+
inputRef.current = input;
|
|
51
|
+
const emit = (props) => {
|
|
52
|
+
trackEvent({
|
|
53
|
+
eventName: require_eventNames.EnviveMetricsEventName.Diagnostics,
|
|
54
|
+
eventProps: {
|
|
55
|
+
load_id: loadId,
|
|
56
|
+
widget_type: widgetType,
|
|
57
|
+
widget_config_id: widgetConfigId,
|
|
58
|
+
connection_type: connectionType(),
|
|
59
|
+
context: variantInfo ? require_hooks_WidgetInteraction_utils.extractPageContext(variantInfo) : null,
|
|
60
|
+
...props
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const mountFiredRef = (0, react.useRef)(false);
|
|
65
|
+
(0, react.useEffect)(() => {
|
|
66
|
+
if (!enabled || mountFiredRef.current) return;
|
|
67
|
+
mountFiredRef.current = true;
|
|
68
|
+
emit({ type: "widget_mounted" });
|
|
69
|
+
}, [enabled]);
|
|
70
|
+
const visibleAtRef = (0, react.useRef)(null);
|
|
71
|
+
(0, react.useEffect)(() => {
|
|
72
|
+
if (startLoading && visibleAtRef.current === null) visibleAtRef.current = now();
|
|
73
|
+
}, [startLoading]);
|
|
74
|
+
const outcomeFiredRef = (0, react.useRef)(false);
|
|
75
|
+
(0, react.useEffect)(() => {
|
|
76
|
+
if (!enabled || !startLoading || !ownRequestsSettled || outcomeFiredRef.current) return;
|
|
77
|
+
outcomeFiredRef.current = true;
|
|
78
|
+
const elapsed_ms = visibleAtRef.current !== null ? Math.round(now() - visibleAtRef.current) : void 0;
|
|
79
|
+
let outcome;
|
|
80
|
+
let reason;
|
|
81
|
+
if (!hardcopyContent) {
|
|
82
|
+
outcome = "error";
|
|
83
|
+
reason = inputRef.current.hardcopyErrorReason ?? "no_content";
|
|
84
|
+
} else if (hardcopyContent.servedFrom === "static") {
|
|
85
|
+
outcome = "static_fallback";
|
|
86
|
+
reason = hardcopyContent.fallbackReason;
|
|
87
|
+
} else outcome = "content_loaded";
|
|
88
|
+
emit({
|
|
89
|
+
type: "widget_load_outcome",
|
|
90
|
+
outcome,
|
|
91
|
+
reason,
|
|
92
|
+
elapsed_ms,
|
|
93
|
+
visibility_source: inputRef.current.visibilitySource
|
|
94
|
+
});
|
|
95
|
+
}, [
|
|
96
|
+
enabled,
|
|
97
|
+
startLoading,
|
|
98
|
+
ownRequestsSettled,
|
|
99
|
+
hardcopyContent
|
|
100
|
+
]);
|
|
101
|
+
(0, react.useEffect)(() => {
|
|
102
|
+
if (!enabled || !startLoading || ownRequestsSettled) return void 0;
|
|
103
|
+
const timer = setTimeout(() => {
|
|
104
|
+
emit({
|
|
105
|
+
type: "widget_load_stalled",
|
|
106
|
+
elapsed_ms: visibleAtRef.current !== null ? Math.round(now() - visibleAtRef.current) : WIDGET_LOAD_STALL_MS,
|
|
107
|
+
pending_requests: inputRef.current.pendingRequests,
|
|
108
|
+
visibility_source: inputRef.current.visibilitySource
|
|
109
|
+
});
|
|
110
|
+
}, WIDGET_LOAD_STALL_MS);
|
|
111
|
+
return () => clearTimeout(timer);
|
|
112
|
+
}, [
|
|
113
|
+
enabled,
|
|
114
|
+
startLoading,
|
|
115
|
+
ownRequestsSettled
|
|
116
|
+
]);
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
//#endregion
|
|
120
|
+
exports.WIDGET_LOAD_STALL_MS = WIDGET_LOAD_STALL_MS;
|
|
121
|
+
exports.useWidgetLoadDiagnostics = useWidgetLoadDiagnostics;
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlV2lkZ2V0TG9hZERpYWdub3N0aWNzLmNqcyIsIm5hbWVzIjpbInVzZUFtcGxpdHVkZSIsInBhZ2VWYXJpYW50SW5mb0F0b20iLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIiwiZXh0cmFjdFBhZ2VDb250ZXh0Iiwib3V0Y29tZTogc3RyaW5nIiwicmVhc29uOiBzdHJpbmcgfCB1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvV2lkZ2V0TG9hZERpYWdub3N0aWNzL3VzZVdpZGdldExvYWREaWFnbm9zdGljcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VBdG9tVmFsdWUgfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHBhZ2VWYXJpYW50SW5mb0F0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IHVzZUFtcGxpdHVkZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9hbXBsaXR1ZGVDb250ZXh0L2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgSGFyZGNvcHlSZXNwb25zZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRJbmZvIH0gZnJvbSAnc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3R5cGVzJztcbmltcG9ydCB7IFdpZGdldFR5cGVWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IGV4dHJhY3RQYWdlQ29udGV4dCB9IGZyb20gJ3NyYy9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbi91dGlscyc7XG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5cbi8vIEZpcmVkIGlmIGEgd2lkZ2V0IGlzIHN0aWxsIGxvYWRpbmcgdGhpcyBsb25nIGFmdGVyIGl0IGJlY2FtZSB2aXNpYmxlLiBLZXB0IGF0L2p1c3QgYWJvdmVcbi8vIHRoZSBoYXJkY29weSB0aW1lb3V0IChIQVJEQ09QWV9USU1FT1VUX01TLCA0cykgc28gYSBub3JtYWwgdGltZW91dCDihpIgc3RhdGljLWZhbGxiYWNrIHNldHRsZXNcbi8vIGZpcnN0IGFuZCBkb2VzIE5PVCB0cmlwIGEgc3RhbGw7IGEgc3RhbGwgaGVyZSBpcyBhIGdlbnVpbmUgYW5vbWFseSAoZS5nLiBhIGNvbmZpZyBoYW5nKS5cbi8vIE1pcnJvcnMgV0lER0VUX0xPQURJTkdfV0FUQ0hET0dfTVMgKHRoZSBjb25zb2xlLW9ubHkgd2F0Y2hkb2cgaW4gd2l0aEJhc2VXaWRnZXQpLlxuZXhwb3J0IGNvbnN0IFdJREdFVF9MT0FEX1NUQUxMX01TID0gNTAwMDtcblxuLy8gJ3BlbmRpbmcnID0gdmlzaWJpbGl0eSBub3QgY29uZmlybWVkIGJ5IGVpdGhlciBwYXRoIHdoZW4gdGhlIGV2ZW50IGZpcmVkIChlLmcuIGFcbi8vIGRlZmVyTG9hZGluZzpmYWxzZSB3aWRnZXQgdGhhdCBsb2FkZWQgZWFnZXJseSwgYmVmb3JlIHRoZSBvYnNlcnZlciByZXBvcnRlZCkuXG5leHBvcnQgdHlwZSBXaWRnZXRWaXNpYmlsaXR5U291cmNlID0gJ29ic2VydmVyJyB8ICdmYWxsYmFjaycgfCAncGVuZGluZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0TG9hZERpYWdub3N0aWNzSW5wdXQge1xuICAvKiogR2F0ZS4gTm8gZXZlbnRzIGFyZSBlbWl0dGVkIHVubGVzcyB0cnVlLiBPbiBieSBkZWZhdWx0OyBhIFN0YXRzaWcga2lsbCBzd2l0Y2ggY2FuIGRpc2FibGUgaXQuICovXG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8qKiBDb3JyZWxhdGVzIHRoaXMgd2lkZ2V0J3MgbW91bnQgLyByZW5kZXJlZCAvIG91dGNvbWUgLyBzdGFsbCBldmVudHMgZm9yIGEgc2luZ2xlIGxvYWQuICovXG4gIGxvYWRJZDogc3RyaW5nO1xuICB3aWRnZXRUeXBlOiBXaWRnZXRUeXBlVjM7XG4gIHdpZGdldENvbmZpZ0lkPzogc3RyaW5nO1xuICAvKiogVGhlIHdpZGdldCBiZWNhbWUgdmlzaWJsZSBhbmQgc3RhcnRlZCBsb2FkaW5nIGl0cyBvd24gcmVxdWVzdHMuICovXG4gIHN0YXJ0TG9hZGluZzogYm9vbGVhbjtcbiAgLyoqIFRoaXMgd2lkZ2V0J3Mgb3duIGhhcmRjb3B5IC8gd2lkZ2V0Q29uZmlnIC8gdWlDb25maWcgcmVxdWVzdHMgaGF2ZSBhbGwgc2V0dGxlZC4gKi9cbiAgb3duUmVxdWVzdHNTZXR0bGVkOiBib29sZWFuO1xuICAvKiogUHJlc2VudCBvbmNlIGhhcmRjb3B5IHJlc29sdmVzOyBjYXJyaWVzIGBzZXJ2ZWRGcm9tYCAoY29udGVudF9sb2FkZWQgdnMgc3RhdGljX2ZhbGxiYWNrKS4gKi9cbiAgaGFyZGNvcHlDb250ZW50PzogSGFyZGNvcHlSZXNwb25zZTtcbiAgLyoqIFdoZXRoZXIgdmlzaWJpbGl0eSBjYW1lIGZyb20gdGhlIG9ic2VydmVyIG9yIHRoZSByZWNvbmNpbGUgZmFsbGJhY2suICovXG4gIHZpc2liaWxpdHlTb3VyY2U6IFdpZGdldFZpc2liaWxpdHlTb3VyY2U7XG4gIC8qKiBOYW1lcyBvZiB0aGlzIHdpZGdldCdzIHN0aWxsLXVuc2V0dGxlZCByZXF1ZXN0cywgcmVwb3J0ZWQgb24gYSBzdGFsbC4gKi9cbiAgcGVuZGluZ1JlcXVlc3RzOiBzdHJpbmdbXTtcbiAgLyoqIFNldCB3aGVuIHRoaXMgd2lkZ2V0J3Mgb3duIGhhcmRjb3B5IHJlcXVlc3QgcmVqZWN0ZWQgKG5vIGNvbnRlbnQg4oCUIG5vdCBhIHN0YXRpYyBmYWxsYmFjaykuICovXG4gIGhhcmRjb3B5RXJyb3JSZWFzb24/OiBzdHJpbmc7XG59XG5cbmNvbnN0IGNvbm5lY3Rpb25UeXBlID0gKCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIHRyeSB7XG4gICAgLy8gTmV0d29yayBJbmZvcm1hdGlvbiBBUEkg4oCUIENocm9taXVtL0FuZHJvaWQgb25seSwgdW5kZWZpbmVkIG9uIGlPUyBTYWZhcmkgKG91ciBrZXkgcG9wdWxhdGlvbikuXG4gICAgcmV0dXJuIChuYXZpZ2F0b3IgYXMgTmF2aWdhdG9yICYgeyBjb25uZWN0aW9uPzogeyBlZmZlY3RpdmVUeXBlPzogc3RyaW5nIH0gfSkuY29ubmVjdGlvblxuICAgICAgPy5lZmZlY3RpdmVUeXBlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5jb25zdCBub3cgPSAoKTogbnVtYmVyID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnBlcmZvcm1hbmNlPy5ub3dcbiAgICAgID8gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpXG4gICAgICA6IERhdGUubm93KCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBEYXRlLm5vdygpO1xuICB9XG59O1xuXG4vKipcbiAqIEVtaXRzIHRoZSBsYXllcmVkIGBbRW52aXZlXSBEaWFnbm9zdGljc2Agd2lkZ2V0LWxvYWQgbmV0IHNvIGVuZyBjYW4gbWVhc3VyZSBub3QganVzdCB3aGF0XG4gKiBsb2FkcywgYnV0IHRoZSBuZWdhdGl2ZSBzcGFjZSBiZXR3ZWVuIGxheWVycyDigJQgdGhlIGZhaWx1cmVzIHRoYXQgZmlyZSBub3RoaW5nIHRvZGF5OlxuICpcbiAqICAgd2lkZ2V0X21vdW50ZWQgKHVuZ2F0ZWQpIOKGkiBbRW52aXZlXSBXaWRnZXQgUmVuZGVyZWQgKHZpc2libGUpIOKGkiB3aWRnZXRfbG9hZF9vdXRjb21lXG4gKlxuICogLSBgd2lkZ2V0X21vdW50ZWRgIGZpcmVzIG9uIG1vdW50IHJlZ2FyZGxlc3Mgb2YgdmlzaWJpbGl0eSwgc28gYSB3aWRnZXQgdGhhdCBtb3VudHMgYnV0IG5ldmVyXG4gKiAgIGJlY29tZXMgdmlzaWJsZSAodGhlIHN1c3BlY3RlZCBpbmZpbml0ZS1sb2FkIGNydXgpIHNob3dzIHVwIGFzIGEgKm1vdW50ZWQgd2l0aCBubyByZW5kZXJlZCpcbiAqICAgZ2FwIGluc3RlYWQgb2YgYmVpbmcgaW52aXNpYmxlIHRvIGFuYWx5dGljcyBlbnRpcmVseS5cbiAqIC0gYHdpZGdldF9sb2FkX291dGNvbWVgIGZpcmVzIG9uY2UgdGhlIHdpZGdldCdzIG93biByZXF1ZXN0cyBzZXR0bGVcbiAqICAgKGNvbnRlbnRfbG9hZGVkIC8gc3RhdGljX2ZhbGxiYWNrIC8gZXJyb3IpLlxuICogLSBgd2lkZ2V0X2xvYWRfc3RhbGxlZGAgZmlyZXMgaWYgaXQncyBzdGlsbCBsb2FkaW5nIGF0IFdJREdFVF9MT0FEX1NUQUxMX01TIEFORCBzdGlsbCBtb3VudGVkLlxuICogICBUaGUgdGltZXIgaXMgY2xlYXJlZCBvbiB1bm1vdW50LCBzbyBhIHNob3BwZXIgd2hvIG5hdmlnYXRlcyBhd2F5IGZpcnN0IG5ldmVyIHRyaXBzIGl0IOKAlFxuICogICBcInN0YWxsZWQgd2l0aCBubyBsYXRlciBvdXRjb21lXCIgaXMgdGhlcmVmb3JlIGEgY2xlYW4gc3R1Y2sgc2lnbmFsLCB1bmRpbHV0ZWQgYnkgYWJhbmRvbm1lbnQuXG4gKlxuICogYGxvYWRfaWRgIGNvcnJlbGF0ZXMgYWxsIG9mIHRoZSBhYm92ZSAoYW5kIGlzIHRocmVhZGVkIG9udG8gYFtFbnZpdmVdIFdpZGdldCBSZW5kZXJlZGApIHNvXG4gKiB0aGUgZ2FwcyBhcmUgam9pbmFibGUgcGVyIGxvYWQuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VXaWRnZXRMb2FkRGlhZ25vc3RpY3MgPSAoaW5wdXQ6IFdpZGdldExvYWREaWFnbm9zdGljc0lucHV0KTogdm9pZCA9PiB7XG4gIGNvbnN0IHtcbiAgICBlbmFibGVkLFxuICAgIGxvYWRJZCxcbiAgICB3aWRnZXRUeXBlLFxuICAgIHdpZGdldENvbmZpZ0lkLFxuICAgIHN0YXJ0TG9hZGluZyxcbiAgICBvd25SZXF1ZXN0c1NldHRsZWQsXG4gICAgaGFyZGNvcHlDb250ZW50LFxuICB9ID0gaW5wdXQ7XG5cbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcbiAgY29uc3QgdmFyaWFudEluZm8gPSB1c2VBdG9tVmFsdWUocGFnZVZhcmlhbnRJbmZvQXRvbSk7XG5cbiAgLy8gTGF0ZXN0IGlucHV0LCByZWFkIGluc2lkZSB0aGUgZGVmZXJyZWQgc3RhbGwvb3V0Y29tZSBjYWxsYmFja3MgKHBlbmRpbmdSZXF1ZXN0cyBhbmRcbiAgLy8gdmlzaWJpbGl0eVNvdXJjZSBjaHVybiBhcyByZXF1ZXN0cyBzZXR0bGUgLyB0aGUgZmFsbGJhY2sgZW5nYWdlcykuXG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKGlucHV0KTtcbiAgaW5wdXRSZWYuY3VycmVudCA9IGlucHV0O1xuXG4gIGNvbnN0IGVtaXQgPSAocHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgdHJhY2tFdmVudCh7XG4gICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuRGlhZ25vc3RpY3MsXG4gICAgICBldmVudFByb3BzOiB7XG4gICAgICAgIGxvYWRfaWQ6IGxvYWRJZCxcbiAgICAgICAgd2lkZ2V0X3R5cGU6IHdpZGdldFR5cGUsXG4gICAgICAgIHdpZGdldF9jb25maWdfaWQ6IHdpZGdldENvbmZpZ0lkLFxuICAgICAgICBjb25uZWN0aW9uX3R5cGU6IGNvbm5lY3Rpb25UeXBlKCksXG4gICAgICAgIGNvbnRleHQ6IHZhcmlhbnRJbmZvID8gZXh0cmFjdFBhZ2VDb250ZXh0KHZhcmlhbnRJbmZvIGFzIFBhZ2VWYXJpYW50SW5mbykgOiBudWxsLFxuICAgICAgICAuLi5wcm9wcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gTGF5ZXIgMCDigJQgbW91bnQuIFVuZ2F0ZWQgYnkgdmlzaWJpbGl0eTogdGhlIGJhc2VsaW5lIHRoYXQgZmlyZXMgZXZlbiB3aGVuIHRoZSB3aWRnZXQgbmV2ZXJcbiAgLy8gYmVjb21lcyB2aXNpYmxlLCBzbyBuZXZlci12aXNpYmxlIGZhaWx1cmVzIGFyZSBhIG1lYXN1cmFibGUgZ2FwIHJhdGhlciB0aGFuIHNpbGVuY2UuXG4gIGNvbnN0IG1vdW50RmlyZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCB8fCBtb3VudEZpcmVkUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBtb3VudEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIGVtaXQoeyB0eXBlOiAnd2lkZ2V0X21vdW50ZWQnIH0pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2VuYWJsZWRdKTtcblxuICAvLyB0MCDigJQgd2hlbiB0aGUgd2lkZ2V0IGJlY2FtZSB2aXNpYmxlIC8gc3RhcnRlZCBsb2FkaW5nLlxuICBjb25zdCB2aXNpYmxlQXRSZWYgPSB1c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXJ0TG9hZGluZyAmJiB2aXNpYmxlQXRSZWYuY3VycmVudCA9PT0gbnVsbCkgdmlzaWJsZUF0UmVmLmN1cnJlbnQgPSBub3coKTtcbiAgfSwgW3N0YXJ0TG9hZGluZ10pO1xuXG4gIC8vIExheWVyIDIg4oCUIHRlcm1pbmFsIG91dGNvbWUsIG9uY2UsIHdoZW4gdGhpcyB3aWRnZXQncyBvd24gcmVxdWVzdHMgc2V0dGxlLlxuICBjb25zdCBvdXRjb21lRmlyZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCB8fCAhc3RhcnRMb2FkaW5nIHx8ICFvd25SZXF1ZXN0c1NldHRsZWQgfHwgb3V0Y29tZUZpcmVkUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBvdXRjb21lRmlyZWRSZWYuY3VycmVudCA9IHRydWU7XG5cbiAgICBjb25zdCBlbGFwc2VkX21zID1cbiAgICAgIHZpc2libGVBdFJlZi5jdXJyZW50ICE9PSBudWxsID8gTWF0aC5yb3VuZChub3coKSAtIHZpc2libGVBdFJlZi5jdXJyZW50KSA6IHVuZGVmaW5lZDtcblxuICAgIGxldCBvdXRjb21lOiBzdHJpbmc7XG4gICAgbGV0IHJlYXNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlmICghaGFyZGNvcHlDb250ZW50KSB7XG4gICAgICBvdXRjb21lID0gJ2Vycm9yJztcbiAgICAgIHJlYXNvbiA9IGlucHV0UmVmLmN1cnJlbnQuaGFyZGNvcHlFcnJvclJlYXNvbiA/PyAnbm9fY29udGVudCc7XG4gICAgfSBlbHNlIGlmIChoYXJkY29weUNvbnRlbnQuc2VydmVkRnJvbSA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIG91dGNvbWUgPSAnc3RhdGljX2ZhbGxiYWNrJztcbiAgICAgIHJlYXNvbiA9IGhhcmRjb3B5Q29udGVudC5mYWxsYmFja1JlYXNvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0Y29tZSA9ICdjb250ZW50X2xvYWRlZCc7XG4gICAgfVxuXG4gICAgZW1pdCh7XG4gICAgICB0eXBlOiAnd2lkZ2V0X2xvYWRfb3V0Y29tZScsXG4gICAgICBvdXRjb21lLFxuICAgICAgcmVhc29uLFxuICAgICAgZWxhcHNlZF9tcyxcbiAgICAgIHZpc2liaWxpdHlfc291cmNlOiBpbnB1dFJlZi5jdXJyZW50LnZpc2liaWxpdHlTb3VyY2UsXG4gICAgfSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbZW5hYmxlZCwgc3RhcnRMb2FkaW5nLCBvd25SZXF1ZXN0c1NldHRsZWQsIGhhcmRjb3B5Q29udGVudF0pO1xuXG4gIC8vIExheWVyIDEuNSDigJQgc3RhbGwuIE9ubHkgYXJtcyB3aGlsZSBsb2FkaW5nOyBjbGVhcmVkIG9uIHVubW91bnQsIHNvIGFiYW5kb25tZW50IG5ldmVyIHRyaXBzIGl0LlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCB8fCAhc3RhcnRMb2FkaW5nIHx8IG93blJlcXVlc3RzU2V0dGxlZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZWxhcHNlZF9tcyA9XG4gICAgICAgIHZpc2libGVBdFJlZi5jdXJyZW50ICE9PSBudWxsXG4gICAgICAgICAgPyBNYXRoLnJvdW5kKG5vdygpIC0gdmlzaWJsZUF0UmVmLmN1cnJlbnQpXG4gICAgICAgICAgOiBXSURHRVRfTE9BRF9TVEFMTF9NUztcbiAgICAgIGVtaXQoe1xuICAgICAgICB0eXBlOiAnd2lkZ2V0X2xvYWRfc3RhbGxlZCcsXG4gICAgICAgIGVsYXBzZWRfbXMsXG4gICAgICAgIHBlbmRpbmdfcmVxdWVzdHM6IGlucHV0UmVmLmN1cnJlbnQucGVuZGluZ1JlcXVlc3RzLFxuICAgICAgICB2aXNpYmlsaXR5X3NvdXJjZTogaW5wdXRSZWYuY3VycmVudC52aXNpYmlsaXR5U291cmNlLFxuICAgICAgfSk7XG4gICAgfSwgV0lER0VUX0xPQURfU1RBTExfTVMpO1xuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2VuYWJsZWQsIHN0YXJ0TG9hZGluZywgb3duUmVxdWVzdHNTZXR0bGVkXSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWNBLE1BQWEsdUJBQXVCO0FBMkJwQyxNQUFNLHVCQUEyQztBQUMvQyxLQUFJO0FBRUYsU0FBUSxVQUFzRSxZQUMxRTtTQUNFO0FBQ047OztBQUlKLE1BQU0sWUFBb0I7QUFDeEIsS0FBSTtBQUNGLFNBQU8sT0FBTyxXQUFXLGVBQWUsT0FBTyxhQUFhLE1BQ3hELE9BQU8sWUFBWSxLQUFLLEdBQ3hCLEtBQUssS0FBSztTQUNSO0FBQ04sU0FBTyxLQUFLLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCckIsTUFBYSw0QkFBNEIsVUFBNEM7Q0FDbkYsTUFBTSxFQUNKLFNBQ0EsUUFDQSxZQUNBLGdCQUNBLGNBQ0Esb0JBQ0Esb0JBQ0U7Q0FFSixNQUFNLEVBQUUsZUFBZUEsdUNBQWM7Q0FDckMsTUFBTSxzQ0FBMkJDLG9DQUFvQjtDQUlyRCxNQUFNLDZCQUFrQixNQUFNO0FBQzlCLFVBQVMsVUFBVTtDQUVuQixNQUFNLFFBQVEsVUFBbUM7QUFDL0MsYUFBVztHQUNULFdBQVdDLDBDQUF1QjtHQUNsQyxZQUFZO0lBQ1YsU0FBUztJQUNULGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsaUJBQWlCLGdCQUFnQjtJQUNqQyxTQUFTLGNBQWNDLHlEQUFtQixZQUErQixHQUFHO0lBQzVFLEdBQUc7SUFDSjtHQUNGLENBQUM7O0NBS0osTUFBTSxrQ0FBdUIsTUFBTTtBQUNuQyw0QkFBZ0I7QUFDZCxNQUFJLENBQUMsV0FBVyxjQUFjLFFBQVM7QUFDdkMsZ0JBQWMsVUFBVTtBQUN4QixPQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztJQUUvQixDQUFDLFFBQVEsQ0FBQztDQUdiLE1BQU0saUNBQXFDLEtBQUs7QUFDaEQsNEJBQWdCO0FBQ2QsTUFBSSxnQkFBZ0IsYUFBYSxZQUFZLEtBQU0sY0FBYSxVQUFVLEtBQUs7SUFDOUUsQ0FBQyxhQUFhLENBQUM7Q0FHbEIsTUFBTSxvQ0FBeUIsTUFBTTtBQUNyQyw0QkFBZ0I7QUFDZCxNQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixnQkFBZ0IsUUFBUztBQUNqRixrQkFBZ0IsVUFBVTtFQUUxQixNQUFNLGFBQ0osYUFBYSxZQUFZLE9BQU8sS0FBSyxNQUFNLEtBQUssR0FBRyxhQUFhLFFBQVEsR0FBRztFQUU3RSxJQUFJQztFQUNKLElBQUlDO0FBQ0osTUFBSSxDQUFDLGlCQUFpQjtBQUNwQixhQUFVO0FBQ1YsWUFBUyxTQUFTLFFBQVEsdUJBQXVCO2FBQ3hDLGdCQUFnQixlQUFlLFVBQVU7QUFDbEQsYUFBVTtBQUNWLFlBQVMsZ0JBQWdCO1FBRXpCLFdBQVU7QUFHWixPQUFLO0dBQ0gsTUFBTTtHQUNOO0dBQ0E7R0FDQTtHQUNBLG1CQUFtQixTQUFTLFFBQVE7R0FDckMsQ0FBQztJQUVEO0VBQUM7RUFBUztFQUFjO0VBQW9CO0VBQWdCLENBQUM7QUFHaEUsNEJBQWdCO0FBQ2QsTUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsbUJBQW9CLFFBQU87RUFDNUQsTUFBTSxRQUFRLGlCQUFpQjtBQUs3QixRQUFLO0lBQ0gsTUFBTTtJQUNOLFlBTEEsYUFBYSxZQUFZLE9BQ3JCLEtBQUssTUFBTSxLQUFLLEdBQUcsYUFBYSxRQUFRLEdBQ3hDO0lBSUosa0JBQWtCLFNBQVMsUUFBUTtJQUNuQyxtQkFBbUIsU0FBUyxRQUFRO0lBQ3JDLENBQUM7S0FDRCxxQkFBcUI7QUFDeEIsZUFBYSxhQUFhLE1BQU07SUFFL0I7RUFBQztFQUFTO0VBQWM7RUFBbUIsQ0FBQyJ9
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { WidgetTypeV3 } from "../../contexts/typesV3.cjs";
|
|
2
|
+
import { HardcopyResponse } from "../../services/hardcopyService/hardcopyService.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.ts
|
|
5
|
+
declare const WIDGET_LOAD_STALL_MS = 5000;
|
|
6
|
+
type WidgetVisibilitySource = 'observer' | 'fallback' | 'pending';
|
|
7
|
+
interface WidgetLoadDiagnosticsInput {
|
|
8
|
+
/** Gate. No events are emitted unless true. On by default; a Statsig kill switch can disable it. */
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
/** Correlates this widget's mount / rendered / outcome / stall events for a single load. */
|
|
11
|
+
loadId: string;
|
|
12
|
+
widgetType: WidgetTypeV3;
|
|
13
|
+
widgetConfigId?: string;
|
|
14
|
+
/** The widget became visible and started loading its own requests. */
|
|
15
|
+
startLoading: boolean;
|
|
16
|
+
/** This widget's own hardcopy / widgetConfig / uiConfig requests have all settled. */
|
|
17
|
+
ownRequestsSettled: boolean;
|
|
18
|
+
/** Present once hardcopy resolves; carries `servedFrom` (content_loaded vs static_fallback). */
|
|
19
|
+
hardcopyContent?: HardcopyResponse;
|
|
20
|
+
/** Whether visibility came from the observer or the reconcile fallback. */
|
|
21
|
+
visibilitySource: WidgetVisibilitySource;
|
|
22
|
+
/** Names of this widget's still-unsettled requests, reported on a stall. */
|
|
23
|
+
pendingRequests: string[];
|
|
24
|
+
/** Set when this widget's own hardcopy request rejected (no content — not a static fallback). */
|
|
25
|
+
hardcopyErrorReason?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Emits the layered `[Envive] Diagnostics` widget-load net so eng can measure not just what
|
|
29
|
+
* loads, but the negative space between layers — the failures that fire nothing today:
|
|
30
|
+
*
|
|
31
|
+
* widget_mounted (ungated) → [Envive] Widget Rendered (visible) → widget_load_outcome
|
|
32
|
+
*
|
|
33
|
+
* - `widget_mounted` fires on mount regardless of visibility, so a widget that mounts but never
|
|
34
|
+
* becomes visible (the suspected infinite-load crux) shows up as a *mounted with no rendered*
|
|
35
|
+
* gap instead of being invisible to analytics entirely.
|
|
36
|
+
* - `widget_load_outcome` fires once the widget's own requests settle
|
|
37
|
+
* (content_loaded / static_fallback / error).
|
|
38
|
+
* - `widget_load_stalled` fires if it's still loading at WIDGET_LOAD_STALL_MS AND still mounted.
|
|
39
|
+
* The timer is cleared on unmount, so a shopper who navigates away first never trips it —
|
|
40
|
+
* "stalled with no later outcome" is therefore a clean stuck signal, undiluted by abandonment.
|
|
41
|
+
*
|
|
42
|
+
* `load_id` correlates all of the above (and is threaded onto `[Envive] Widget Rendered`) so
|
|
43
|
+
* the gaps are joinable per load.
|
|
44
|
+
*/
|
|
45
|
+
declare const useWidgetLoadDiagnostics: (input: WidgetLoadDiagnosticsInput) => void;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { WIDGET_LOAD_STALL_MS, WidgetLoadDiagnosticsInput, WidgetVisibilitySource, useWidgetLoadDiagnostics };
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlV2lkZ2V0TG9hZERpYWdub3N0aWNzLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9XaWRnZXRMb2FkRGlhZ25vc3RpY3MvdXNlV2lkZ2V0TG9hZERpYWdub3N0aWNzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFyZGNvcHlSZXNwb25zZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgV0lER0VUX0xPQURfU1RBTExfTVMgPSA1MDAwO1xuZXhwb3J0IHR5cGUgV2lkZ2V0VmlzaWJpbGl0eVNvdXJjZSA9ICdvYnNlcnZlcicgfCAnZmFsbGJhY2snIHwgJ3BlbmRpbmcnO1xuZXhwb3J0IGludGVyZmFjZSBXaWRnZXRMb2FkRGlhZ25vc3RpY3NJbnB1dCB7XG4gICAgLyoqIEdhdGUuIE5vIGV2ZW50cyBhcmUgZW1pdHRlZCB1bmxlc3MgdHJ1ZS4gT24gYnkgZGVmYXVsdDsgYSBTdGF0c2lnIGtpbGwgc3dpdGNoIGNhbiBkaXNhYmxlIGl0LiAqL1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIENvcnJlbGF0ZXMgdGhpcyB3aWRnZXQncyBtb3VudCAvIHJlbmRlcmVkIC8gb3V0Y29tZSAvIHN0YWxsIGV2ZW50cyBmb3IgYSBzaW5nbGUgbG9hZC4gKi9cbiAgICBsb2FkSWQ6IHN0cmluZztcbiAgICB3aWRnZXRUeXBlOiBXaWRnZXRUeXBlVjM7XG4gICAgd2lkZ2V0Q29uZmlnSWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB3aWRnZXQgYmVjYW1lIHZpc2libGUgYW5kIHN0YXJ0ZWQgbG9hZGluZyBpdHMgb3duIHJlcXVlc3RzLiAqL1xuICAgIHN0YXJ0TG9hZGluZzogYm9vbGVhbjtcbiAgICAvKiogVGhpcyB3aWRnZXQncyBvd24gaGFyZGNvcHkgLyB3aWRnZXRDb25maWcgLyB1aUNvbmZpZyByZXF1ZXN0cyBoYXZlIGFsbCBzZXR0bGVkLiAqL1xuICAgIG93blJlcXVlc3RzU2V0dGxlZDogYm9vbGVhbjtcbiAgICAvKiogUHJlc2VudCBvbmNlIGhhcmRjb3B5IHJlc29sdmVzOyBjYXJyaWVzIGBzZXJ2ZWRGcm9tYCAoY29udGVudF9sb2FkZWQgdnMgc3RhdGljX2ZhbGxiYWNrKS4gKi9cbiAgICBoYXJkY29weUNvbnRlbnQ/OiBIYXJkY29weVJlc3BvbnNlO1xuICAgIC8qKiBXaGV0aGVyIHZpc2liaWxpdHkgY2FtZSBmcm9tIHRoZSBvYnNlcnZlciBvciB0aGUgcmVjb25jaWxlIGZhbGxiYWNrLiAqL1xuICAgIHZpc2liaWxpdHlTb3VyY2U6IFdpZGdldFZpc2liaWxpdHlTb3VyY2U7XG4gICAgLyoqIE5hbWVzIG9mIHRoaXMgd2lkZ2V0J3Mgc3RpbGwtdW5zZXR0bGVkIHJlcXVlc3RzLCByZXBvcnRlZCBvbiBhIHN0YWxsLiAqL1xuICAgIHBlbmRpbmdSZXF1ZXN0czogc3RyaW5nW107XG4gICAgLyoqIFNldCB3aGVuIHRoaXMgd2lkZ2V0J3Mgb3duIGhhcmRjb3B5IHJlcXVlc3QgcmVqZWN0ZWQgKG5vIGNvbnRlbnQg4oCUIG5vdCBhIHN0YXRpYyBmYWxsYmFjaykuICovXG4gICAgaGFyZGNvcHlFcnJvclJlYXNvbj86IHN0cmluZztcbn1cbi8qKlxuICogRW1pdHMgdGhlIGxheWVyZWQgYFtFbnZpdmVdIERpYWdub3N0aWNzYCB3aWRnZXQtbG9hZCBuZXQgc28gZW5nIGNhbiBtZWFzdXJlIG5vdCBqdXN0IHdoYXRcbiAqIGxvYWRzLCBidXQgdGhlIG5lZ2F0aXZlIHNwYWNlIGJldHdlZW4gbGF5ZXJzIOKAlCB0aGUgZmFpbHVyZXMgdGhhdCBmaXJlIG5vdGhpbmcgdG9kYXk6XG4gKlxuICogICB3aWRnZXRfbW91bnRlZCAodW5nYXRlZCkg4oaSIFtFbnZpdmVdIFdpZGdldCBSZW5kZXJlZCAodmlzaWJsZSkg4oaSIHdpZGdldF9sb2FkX291dGNvbWVcbiAqXG4gKiAtIGB3aWRnZXRfbW91bnRlZGAgZmlyZXMgb24gbW91bnQgcmVnYXJkbGVzcyBvZiB2aXNpYmlsaXR5LCBzbyBhIHdpZGdldCB0aGF0IG1vdW50cyBidXQgbmV2ZXJcbiAqICAgYmVjb21lcyB2aXNpYmxlICh0aGUgc3VzcGVjdGVkIGluZmluaXRlLWxvYWQgY3J1eCkgc2hvd3MgdXAgYXMgYSAqbW91bnRlZCB3aXRoIG5vIHJlbmRlcmVkKlxuICogICBnYXAgaW5zdGVhZCBvZiBiZWluZyBpbnZpc2libGUgdG8gYW5hbHl0aWNzIGVudGlyZWx5LlxuICogLSBgd2lkZ2V0X2xvYWRfb3V0Y29tZWAgZmlyZXMgb25jZSB0aGUgd2lkZ2V0J3Mgb3duIHJlcXVlc3RzIHNldHRsZVxuICogICAoY29udGVudF9sb2FkZWQgLyBzdGF0aWNfZmFsbGJhY2sgLyBlcnJvcikuXG4gKiAtIGB3aWRnZXRfbG9hZF9zdGFsbGVkYCBmaXJlcyBpZiBpdCdzIHN0aWxsIGxvYWRpbmcgYXQgV0lER0VUX0xPQURfU1RBTExfTVMgQU5EIHN0aWxsIG1vdW50ZWQuXG4gKiAgIFRoZSB0aW1lciBpcyBjbGVhcmVkIG9uIHVubW91bnQsIHNvIGEgc2hvcHBlciB3aG8gbmF2aWdhdGVzIGF3YXkgZmlyc3QgbmV2ZXIgdHJpcHMgaXQg4oCUXG4gKiAgIFwic3RhbGxlZCB3aXRoIG5vIGxhdGVyIG91dGNvbWVcIiBpcyB0aGVyZWZvcmUgYSBjbGVhbiBzdHVjayBzaWduYWwsIHVuZGlsdXRlZCBieSBhYmFuZG9ubWVudC5cbiAqXG4gKiBgbG9hZF9pZGAgY29ycmVsYXRlcyBhbGwgb2YgdGhlIGFib3ZlIChhbmQgaXMgdGhyZWFkZWQgb250byBgW0Vudml2ZV0gV2lkZ2V0IFJlbmRlcmVkYCkgc29cbiAqIHRoZSBnYXBzIGFyZSBqb2luYWJsZSBwZXIgbG9hZC5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlV2lkZ2V0TG9hZERpYWdub3N0aWNzOiAoaW5wdXQ6IFdpZGdldExvYWREaWFnbm9zdGljc0lucHV0KSA9PiB2b2lkO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyx1QkFBdUIsQ0FBQyxJQUFJO0FBQ3ZDLElBQVcseUJBQXlCLENBQUMsSUFBSTtBQUN6QyxJQUFXLDZCQUE2QjtDQUFDO09BQUc7T0FBQTtPQUFBO0NBQUE7QUFDNUMsSUFBVywyQkFBMkIsQ0FBQyxXQUFXLDJCQUEyQiJ9
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { WidgetTypeV3 } from "../../contexts/typesV3.js";
|
|
2
|
+
import { HardcopyResponse } from "../../services/hardcopyService/hardcopyService.js";
|
|
3
|
+
|
|
4
|
+
//#region src/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.ts
|
|
5
|
+
declare const WIDGET_LOAD_STALL_MS = 5000;
|
|
6
|
+
type WidgetVisibilitySource = 'observer' | 'fallback' | 'pending';
|
|
7
|
+
interface WidgetLoadDiagnosticsInput {
|
|
8
|
+
/** Gate. No events are emitted unless true. On by default; a Statsig kill switch can disable it. */
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
/** Correlates this widget's mount / rendered / outcome / stall events for a single load. */
|
|
11
|
+
loadId: string;
|
|
12
|
+
widgetType: WidgetTypeV3;
|
|
13
|
+
widgetConfigId?: string;
|
|
14
|
+
/** The widget became visible and started loading its own requests. */
|
|
15
|
+
startLoading: boolean;
|
|
16
|
+
/** This widget's own hardcopy / widgetConfig / uiConfig requests have all settled. */
|
|
17
|
+
ownRequestsSettled: boolean;
|
|
18
|
+
/** Present once hardcopy resolves; carries `servedFrom` (content_loaded vs static_fallback). */
|
|
19
|
+
hardcopyContent?: HardcopyResponse;
|
|
20
|
+
/** Whether visibility came from the observer or the reconcile fallback. */
|
|
21
|
+
visibilitySource: WidgetVisibilitySource;
|
|
22
|
+
/** Names of this widget's still-unsettled requests, reported on a stall. */
|
|
23
|
+
pendingRequests: string[];
|
|
24
|
+
/** Set when this widget's own hardcopy request rejected (no content — not a static fallback). */
|
|
25
|
+
hardcopyErrorReason?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Emits the layered `[Envive] Diagnostics` widget-load net so eng can measure not just what
|
|
29
|
+
* loads, but the negative space between layers — the failures that fire nothing today:
|
|
30
|
+
*
|
|
31
|
+
* widget_mounted (ungated) → [Envive] Widget Rendered (visible) → widget_load_outcome
|
|
32
|
+
*
|
|
33
|
+
* - `widget_mounted` fires on mount regardless of visibility, so a widget that mounts but never
|
|
34
|
+
* becomes visible (the suspected infinite-load crux) shows up as a *mounted with no rendered*
|
|
35
|
+
* gap instead of being invisible to analytics entirely.
|
|
36
|
+
* - `widget_load_outcome` fires once the widget's own requests settle
|
|
37
|
+
* (content_loaded / static_fallback / error).
|
|
38
|
+
* - `widget_load_stalled` fires if it's still loading at WIDGET_LOAD_STALL_MS AND still mounted.
|
|
39
|
+
* The timer is cleared on unmount, so a shopper who navigates away first never trips it —
|
|
40
|
+
* "stalled with no later outcome" is therefore a clean stuck signal, undiluted by abandonment.
|
|
41
|
+
*
|
|
42
|
+
* `load_id` correlates all of the above (and is threaded onto `[Envive] Widget Rendered`) so
|
|
43
|
+
* the gaps are joinable per load.
|
|
44
|
+
*/
|
|
45
|
+
declare const useWidgetLoadDiagnostics: (input: WidgetLoadDiagnosticsInput) => void;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { WIDGET_LOAD_STALL_MS, WidgetLoadDiagnosticsInput, WidgetVisibilitySource, useWidgetLoadDiagnostics };
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlV2lkZ2V0TG9hZERpYWdub3N0aWNzLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL1dpZGdldExvYWREaWFnbm9zdGljcy91c2VXaWRnZXRMb2FkRGlhZ25vc3RpY3MuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJkY29weVJlc3BvbnNlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2hhcmRjb3B5Q29udGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUeXBlVjMgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXNWMyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBXSURHRVRfTE9BRF9TVEFMTF9NUyA9IDUwMDA7XG5leHBvcnQgdHlwZSBXaWRnZXRWaXNpYmlsaXR5U291cmNlID0gJ29ic2VydmVyJyB8ICdmYWxsYmFjaycgfCAncGVuZGluZyc7XG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldExvYWREaWFnbm9zdGljc0lucHV0IHtcbiAgICAvKiogR2F0ZS4gTm8gZXZlbnRzIGFyZSBlbWl0dGVkIHVubGVzcyB0cnVlLiBPbiBieSBkZWZhdWx0OyBhIFN0YXRzaWcga2lsbCBzd2l0Y2ggY2FuIGRpc2FibGUgaXQuICovXG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKiogQ29ycmVsYXRlcyB0aGlzIHdpZGdldCdzIG1vdW50IC8gcmVuZGVyZWQgLyBvdXRjb21lIC8gc3RhbGwgZXZlbnRzIGZvciBhIHNpbmdsZSBsb2FkLiAqL1xuICAgIGxvYWRJZDogc3RyaW5nO1xuICAgIHdpZGdldFR5cGU6IFdpZGdldFR5cGVWMztcbiAgICB3aWRnZXRDb25maWdJZD86IHN0cmluZztcbiAgICAvKiogVGhlIHdpZGdldCBiZWNhbWUgdmlzaWJsZSBhbmQgc3RhcnRlZCBsb2FkaW5nIGl0cyBvd24gcmVxdWVzdHMuICovXG4gICAgc3RhcnRMb2FkaW5nOiBib29sZWFuO1xuICAgIC8qKiBUaGlzIHdpZGdldCdzIG93biBoYXJkY29weSAvIHdpZGdldENvbmZpZyAvIHVpQ29uZmlnIHJlcXVlc3RzIGhhdmUgYWxsIHNldHRsZWQuICovXG4gICAgb3duUmVxdWVzdHNTZXR0bGVkOiBib29sZWFuO1xuICAgIC8qKiBQcmVzZW50IG9uY2UgaGFyZGNvcHkgcmVzb2x2ZXM7IGNhcnJpZXMgYHNlcnZlZEZyb21gIChjb250ZW50X2xvYWRlZCB2cyBzdGF0aWNfZmFsbGJhY2spLiAqL1xuICAgIGhhcmRjb3B5Q29udGVudD86IEhhcmRjb3B5UmVzcG9uc2U7XG4gICAgLyoqIFdoZXRoZXIgdmlzaWJpbGl0eSBjYW1lIGZyb20gdGhlIG9ic2VydmVyIG9yIHRoZSByZWNvbmNpbGUgZmFsbGJhY2suICovXG4gICAgdmlzaWJpbGl0eVNvdXJjZTogV2lkZ2V0VmlzaWJpbGl0eVNvdXJjZTtcbiAgICAvKiogTmFtZXMgb2YgdGhpcyB3aWRnZXQncyBzdGlsbC11bnNldHRsZWQgcmVxdWVzdHMsIHJlcG9ydGVkIG9uIGEgc3RhbGwuICovXG4gICAgcGVuZGluZ1JlcXVlc3RzOiBzdHJpbmdbXTtcbiAgICAvKiogU2V0IHdoZW4gdGhpcyB3aWRnZXQncyBvd24gaGFyZGNvcHkgcmVxdWVzdCByZWplY3RlZCAobm8gY29udGVudCDigJQgbm90IGEgc3RhdGljIGZhbGxiYWNrKS4gKi9cbiAgICBoYXJkY29weUVycm9yUmVhc29uPzogc3RyaW5nO1xufVxuLyoqXG4gKiBFbWl0cyB0aGUgbGF5ZXJlZCBgW0Vudml2ZV0gRGlhZ25vc3RpY3NgIHdpZGdldC1sb2FkIG5ldCBzbyBlbmcgY2FuIG1lYXN1cmUgbm90IGp1c3Qgd2hhdFxuICogbG9hZHMsIGJ1dCB0aGUgbmVnYXRpdmUgc3BhY2UgYmV0d2VlbiBsYXllcnMg4oCUIHRoZSBmYWlsdXJlcyB0aGF0IGZpcmUgbm90aGluZyB0b2RheTpcbiAqXG4gKiAgIHdpZGdldF9tb3VudGVkICh1bmdhdGVkKSDihpIgW0Vudml2ZV0gV2lkZ2V0IFJlbmRlcmVkICh2aXNpYmxlKSDihpIgd2lkZ2V0X2xvYWRfb3V0Y29tZVxuICpcbiAqIC0gYHdpZGdldF9tb3VudGVkYCBmaXJlcyBvbiBtb3VudCByZWdhcmRsZXNzIG9mIHZpc2liaWxpdHksIHNvIGEgd2lkZ2V0IHRoYXQgbW91bnRzIGJ1dCBuZXZlclxuICogICBiZWNvbWVzIHZpc2libGUgKHRoZSBzdXNwZWN0ZWQgaW5maW5pdGUtbG9hZCBjcnV4KSBzaG93cyB1cCBhcyBhICptb3VudGVkIHdpdGggbm8gcmVuZGVyZWQqXG4gKiAgIGdhcCBpbnN0ZWFkIG9mIGJlaW5nIGludmlzaWJsZSB0byBhbmFseXRpY3MgZW50aXJlbHkuXG4gKiAtIGB3aWRnZXRfbG9hZF9vdXRjb21lYCBmaXJlcyBvbmNlIHRoZSB3aWRnZXQncyBvd24gcmVxdWVzdHMgc2V0dGxlXG4gKiAgIChjb250ZW50X2xvYWRlZCAvIHN0YXRpY19mYWxsYmFjayAvIGVycm9yKS5cbiAqIC0gYHdpZGdldF9sb2FkX3N0YWxsZWRgIGZpcmVzIGlmIGl0J3Mgc3RpbGwgbG9hZGluZyBhdCBXSURHRVRfTE9BRF9TVEFMTF9NUyBBTkQgc3RpbGwgbW91bnRlZC5cbiAqICAgVGhlIHRpbWVyIGlzIGNsZWFyZWQgb24gdW5tb3VudCwgc28gYSBzaG9wcGVyIHdobyBuYXZpZ2F0ZXMgYXdheSBmaXJzdCBuZXZlciB0cmlwcyBpdCDigJRcbiAqICAgXCJzdGFsbGVkIHdpdGggbm8gbGF0ZXIgb3V0Y29tZVwiIGlzIHRoZXJlZm9yZSBhIGNsZWFuIHN0dWNrIHNpZ25hbCwgdW5kaWx1dGVkIGJ5IGFiYW5kb25tZW50LlxuICpcbiAqIGBsb2FkX2lkYCBjb3JyZWxhdGVzIGFsbCBvZiB0aGUgYWJvdmUgKGFuZCBpcyB0aHJlYWRlZCBvbnRvIGBbRW52aXZlXSBXaWRnZXQgUmVuZGVyZWRgKSBzb1xuICogdGhlIGdhcHMgYXJlIGpvaW5hYmxlIHBlciBsb2FkLlxuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VXaWRnZXRMb2FkRGlhZ25vc3RpY3M6IChpbnB1dDogV2lkZ2V0TG9hZERpYWdub3N0aWNzSW5wdXQpID0+IHZvaWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFXLHVCQUF1QixDQUFDLElBQUk7QUFDdkMsSUFBVyx5QkFBeUIsQ0FBQyxJQUFJO0FBQ3pDLElBQVcsNkJBQTZCO0NBQUM7T0FBRztPQUFBO09BQUE7Q0FBQTtBQUM1QyxJQUFXLDJCQUEyQixDQUFDLFdBQVcsMkJBQTJCIn0=
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { EnviveMetricsEventName } from "../../services/amplitudeService/eventNames.js";
|
|
2
|
+
import "../../services/amplitudeService/amplitudeService.js";
|
|
3
|
+
import { pageVariantInfoAtom } from "../../atoms/app/variant.js";
|
|
4
|
+
import "../../atoms/app/index.js";
|
|
5
|
+
import { useAmplitude } from "../../contexts/amplitudeContext/amplitudeContext.js";
|
|
6
|
+
import { extractPageContext } from "../WidgetInteraction/utils.js";
|
|
7
|
+
import { useEffect, useRef } from "react";
|
|
8
|
+
import { useAtomValue } from "jotai";
|
|
9
|
+
|
|
10
|
+
//#region src/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.ts
|
|
11
|
+
const WIDGET_LOAD_STALL_MS = 5e3;
|
|
12
|
+
const connectionType = () => {
|
|
13
|
+
try {
|
|
14
|
+
return navigator.connection?.effectiveType;
|
|
15
|
+
} catch {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const now = () => {
|
|
20
|
+
try {
|
|
21
|
+
return typeof window !== "undefined" && window.performance?.now ? window.performance.now() : Date.now();
|
|
22
|
+
} catch {
|
|
23
|
+
return Date.now();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Emits the layered `[Envive] Diagnostics` widget-load net so eng can measure not just what
|
|
28
|
+
* loads, but the negative space between layers — the failures that fire nothing today:
|
|
29
|
+
*
|
|
30
|
+
* widget_mounted (ungated) → [Envive] Widget Rendered (visible) → widget_load_outcome
|
|
31
|
+
*
|
|
32
|
+
* - `widget_mounted` fires on mount regardless of visibility, so a widget that mounts but never
|
|
33
|
+
* becomes visible (the suspected infinite-load crux) shows up as a *mounted with no rendered*
|
|
34
|
+
* gap instead of being invisible to analytics entirely.
|
|
35
|
+
* - `widget_load_outcome` fires once the widget's own requests settle
|
|
36
|
+
* (content_loaded / static_fallback / error).
|
|
37
|
+
* - `widget_load_stalled` fires if it's still loading at WIDGET_LOAD_STALL_MS AND still mounted.
|
|
38
|
+
* The timer is cleared on unmount, so a shopper who navigates away first never trips it —
|
|
39
|
+
* "stalled with no later outcome" is therefore a clean stuck signal, undiluted by abandonment.
|
|
40
|
+
*
|
|
41
|
+
* `load_id` correlates all of the above (and is threaded onto `[Envive] Widget Rendered`) so
|
|
42
|
+
* the gaps are joinable per load.
|
|
43
|
+
*/
|
|
44
|
+
const useWidgetLoadDiagnostics = (input) => {
|
|
45
|
+
const { enabled, loadId, widgetType, widgetConfigId, startLoading, ownRequestsSettled, hardcopyContent } = input;
|
|
46
|
+
const { trackEvent } = useAmplitude();
|
|
47
|
+
const variantInfo = useAtomValue(pageVariantInfoAtom);
|
|
48
|
+
const inputRef = useRef(input);
|
|
49
|
+
inputRef.current = input;
|
|
50
|
+
const emit = (props) => {
|
|
51
|
+
trackEvent({
|
|
52
|
+
eventName: EnviveMetricsEventName.Diagnostics,
|
|
53
|
+
eventProps: {
|
|
54
|
+
load_id: loadId,
|
|
55
|
+
widget_type: widgetType,
|
|
56
|
+
widget_config_id: widgetConfigId,
|
|
57
|
+
connection_type: connectionType(),
|
|
58
|
+
context: variantInfo ? extractPageContext(variantInfo) : null,
|
|
59
|
+
...props
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
const mountFiredRef = useRef(false);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (!enabled || mountFiredRef.current) return;
|
|
66
|
+
mountFiredRef.current = true;
|
|
67
|
+
emit({ type: "widget_mounted" });
|
|
68
|
+
}, [enabled]);
|
|
69
|
+
const visibleAtRef = useRef(null);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
if (startLoading && visibleAtRef.current === null) visibleAtRef.current = now();
|
|
72
|
+
}, [startLoading]);
|
|
73
|
+
const outcomeFiredRef = useRef(false);
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (!enabled || !startLoading || !ownRequestsSettled || outcomeFiredRef.current) return;
|
|
76
|
+
outcomeFiredRef.current = true;
|
|
77
|
+
const elapsed_ms = visibleAtRef.current !== null ? Math.round(now() - visibleAtRef.current) : void 0;
|
|
78
|
+
let outcome;
|
|
79
|
+
let reason;
|
|
80
|
+
if (!hardcopyContent) {
|
|
81
|
+
outcome = "error";
|
|
82
|
+
reason = inputRef.current.hardcopyErrorReason ?? "no_content";
|
|
83
|
+
} else if (hardcopyContent.servedFrom === "static") {
|
|
84
|
+
outcome = "static_fallback";
|
|
85
|
+
reason = hardcopyContent.fallbackReason;
|
|
86
|
+
} else outcome = "content_loaded";
|
|
87
|
+
emit({
|
|
88
|
+
type: "widget_load_outcome",
|
|
89
|
+
outcome,
|
|
90
|
+
reason,
|
|
91
|
+
elapsed_ms,
|
|
92
|
+
visibility_source: inputRef.current.visibilitySource
|
|
93
|
+
});
|
|
94
|
+
}, [
|
|
95
|
+
enabled,
|
|
96
|
+
startLoading,
|
|
97
|
+
ownRequestsSettled,
|
|
98
|
+
hardcopyContent
|
|
99
|
+
]);
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
if (!enabled || !startLoading || ownRequestsSettled) return void 0;
|
|
102
|
+
const timer = setTimeout(() => {
|
|
103
|
+
emit({
|
|
104
|
+
type: "widget_load_stalled",
|
|
105
|
+
elapsed_ms: visibleAtRef.current !== null ? Math.round(now() - visibleAtRef.current) : WIDGET_LOAD_STALL_MS,
|
|
106
|
+
pending_requests: inputRef.current.pendingRequests,
|
|
107
|
+
visibility_source: inputRef.current.visibilitySource
|
|
108
|
+
});
|
|
109
|
+
}, WIDGET_LOAD_STALL_MS);
|
|
110
|
+
return () => clearTimeout(timer);
|
|
111
|
+
}, [
|
|
112
|
+
enabled,
|
|
113
|
+
startLoading,
|
|
114
|
+
ownRequestsSettled
|
|
115
|
+
]);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
//#endregion
|
|
119
|
+
export { WIDGET_LOAD_STALL_MS, useWidgetLoadDiagnostics };
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlV2lkZ2V0TG9hZERpYWdub3N0aWNzLmpzIiwibmFtZXMiOlsib3V0Y29tZTogc3RyaW5nIiwicmVhc29uOiBzdHJpbmcgfCB1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvV2lkZ2V0TG9hZERpYWdub3N0aWNzL3VzZVdpZGdldExvYWREaWFnbm9zdGljcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VBdG9tVmFsdWUgfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHBhZ2VWYXJpYW50SW5mb0F0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IHVzZUFtcGxpdHVkZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9hbXBsaXR1ZGVDb250ZXh0L2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgSGFyZGNvcHlSZXNwb25zZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRJbmZvIH0gZnJvbSAnc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3R5cGVzJztcbmltcG9ydCB7IFdpZGdldFR5cGVWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IGV4dHJhY3RQYWdlQ29udGV4dCB9IGZyb20gJ3NyYy9ob29rcy9XaWRnZXRJbnRlcmFjdGlvbi91dGlscyc7XG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5cbi8vIEZpcmVkIGlmIGEgd2lkZ2V0IGlzIHN0aWxsIGxvYWRpbmcgdGhpcyBsb25nIGFmdGVyIGl0IGJlY2FtZSB2aXNpYmxlLiBLZXB0IGF0L2p1c3QgYWJvdmVcbi8vIHRoZSBoYXJkY29weSB0aW1lb3V0IChIQVJEQ09QWV9USU1FT1VUX01TLCA0cykgc28gYSBub3JtYWwgdGltZW91dCDihpIgc3RhdGljLWZhbGxiYWNrIHNldHRsZXNcbi8vIGZpcnN0IGFuZCBkb2VzIE5PVCB0cmlwIGEgc3RhbGw7IGEgc3RhbGwgaGVyZSBpcyBhIGdlbnVpbmUgYW5vbWFseSAoZS5nLiBhIGNvbmZpZyBoYW5nKS5cbi8vIE1pcnJvcnMgV0lER0VUX0xPQURJTkdfV0FUQ0hET0dfTVMgKHRoZSBjb25zb2xlLW9ubHkgd2F0Y2hkb2cgaW4gd2l0aEJhc2VXaWRnZXQpLlxuZXhwb3J0IGNvbnN0IFdJREdFVF9MT0FEX1NUQUxMX01TID0gNTAwMDtcblxuLy8gJ3BlbmRpbmcnID0gdmlzaWJpbGl0eSBub3QgY29uZmlybWVkIGJ5IGVpdGhlciBwYXRoIHdoZW4gdGhlIGV2ZW50IGZpcmVkIChlLmcuIGFcbi8vIGRlZmVyTG9hZGluZzpmYWxzZSB3aWRnZXQgdGhhdCBsb2FkZWQgZWFnZXJseSwgYmVmb3JlIHRoZSBvYnNlcnZlciByZXBvcnRlZCkuXG5leHBvcnQgdHlwZSBXaWRnZXRWaXNpYmlsaXR5U291cmNlID0gJ29ic2VydmVyJyB8ICdmYWxsYmFjaycgfCAncGVuZGluZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0TG9hZERpYWdub3N0aWNzSW5wdXQge1xuICAvKiogR2F0ZS4gTm8gZXZlbnRzIGFyZSBlbWl0dGVkIHVubGVzcyB0cnVlLiBPbiBieSBkZWZhdWx0OyBhIFN0YXRzaWcga2lsbCBzd2l0Y2ggY2FuIGRpc2FibGUgaXQuICovXG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8qKiBDb3JyZWxhdGVzIHRoaXMgd2lkZ2V0J3MgbW91bnQgLyByZW5kZXJlZCAvIG91dGNvbWUgLyBzdGFsbCBldmVudHMgZm9yIGEgc2luZ2xlIGxvYWQuICovXG4gIGxvYWRJZDogc3RyaW5nO1xuICB3aWRnZXRUeXBlOiBXaWRnZXRUeXBlVjM7XG4gIHdpZGdldENvbmZpZ0lkPzogc3RyaW5nO1xuICAvKiogVGhlIHdpZGdldCBiZWNhbWUgdmlzaWJsZSBhbmQgc3RhcnRlZCBsb2FkaW5nIGl0cyBvd24gcmVxdWVzdHMuICovXG4gIHN0YXJ0TG9hZGluZzogYm9vbGVhbjtcbiAgLyoqIFRoaXMgd2lkZ2V0J3Mgb3duIGhhcmRjb3B5IC8gd2lkZ2V0Q29uZmlnIC8gdWlDb25maWcgcmVxdWVzdHMgaGF2ZSBhbGwgc2V0dGxlZC4gKi9cbiAgb3duUmVxdWVzdHNTZXR0bGVkOiBib29sZWFuO1xuICAvKiogUHJlc2VudCBvbmNlIGhhcmRjb3B5IHJlc29sdmVzOyBjYXJyaWVzIGBzZXJ2ZWRGcm9tYCAoY29udGVudF9sb2FkZWQgdnMgc3RhdGljX2ZhbGxiYWNrKS4gKi9cbiAgaGFyZGNvcHlDb250ZW50PzogSGFyZGNvcHlSZXNwb25zZTtcbiAgLyoqIFdoZXRoZXIgdmlzaWJpbGl0eSBjYW1lIGZyb20gdGhlIG9ic2VydmVyIG9yIHRoZSByZWNvbmNpbGUgZmFsbGJhY2suICovXG4gIHZpc2liaWxpdHlTb3VyY2U6IFdpZGdldFZpc2liaWxpdHlTb3VyY2U7XG4gIC8qKiBOYW1lcyBvZiB0aGlzIHdpZGdldCdzIHN0aWxsLXVuc2V0dGxlZCByZXF1ZXN0cywgcmVwb3J0ZWQgb24gYSBzdGFsbC4gKi9cbiAgcGVuZGluZ1JlcXVlc3RzOiBzdHJpbmdbXTtcbiAgLyoqIFNldCB3aGVuIHRoaXMgd2lkZ2V0J3Mgb3duIGhhcmRjb3B5IHJlcXVlc3QgcmVqZWN0ZWQgKG5vIGNvbnRlbnQg4oCUIG5vdCBhIHN0YXRpYyBmYWxsYmFjaykuICovXG4gIGhhcmRjb3B5RXJyb3JSZWFzb24/OiBzdHJpbmc7XG59XG5cbmNvbnN0IGNvbm5lY3Rpb25UeXBlID0gKCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIHRyeSB7XG4gICAgLy8gTmV0d29yayBJbmZvcm1hdGlvbiBBUEkg4oCUIENocm9taXVtL0FuZHJvaWQgb25seSwgdW5kZWZpbmVkIG9uIGlPUyBTYWZhcmkgKG91ciBrZXkgcG9wdWxhdGlvbikuXG4gICAgcmV0dXJuIChuYXZpZ2F0b3IgYXMgTmF2aWdhdG9yICYgeyBjb25uZWN0aW9uPzogeyBlZmZlY3RpdmVUeXBlPzogc3RyaW5nIH0gfSkuY29ubmVjdGlvblxuICAgICAgPy5lZmZlY3RpdmVUeXBlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5jb25zdCBub3cgPSAoKTogbnVtYmVyID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnBlcmZvcm1hbmNlPy5ub3dcbiAgICAgID8gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpXG4gICAgICA6IERhdGUubm93KCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBEYXRlLm5vdygpO1xuICB9XG59O1xuXG4vKipcbiAqIEVtaXRzIHRoZSBsYXllcmVkIGBbRW52aXZlXSBEaWFnbm9zdGljc2Agd2lkZ2V0LWxvYWQgbmV0IHNvIGVuZyBjYW4gbWVhc3VyZSBub3QganVzdCB3aGF0XG4gKiBsb2FkcywgYnV0IHRoZSBuZWdhdGl2ZSBzcGFjZSBiZXR3ZWVuIGxheWVycyDigJQgdGhlIGZhaWx1cmVzIHRoYXQgZmlyZSBub3RoaW5nIHRvZGF5OlxuICpcbiAqICAgd2lkZ2V0X21vdW50ZWQgKHVuZ2F0ZWQpIOKGkiBbRW52aXZlXSBXaWRnZXQgUmVuZGVyZWQgKHZpc2libGUpIOKGkiB3aWRnZXRfbG9hZF9vdXRjb21lXG4gKlxuICogLSBgd2lkZ2V0X21vdW50ZWRgIGZpcmVzIG9uIG1vdW50IHJlZ2FyZGxlc3Mgb2YgdmlzaWJpbGl0eSwgc28gYSB3aWRnZXQgdGhhdCBtb3VudHMgYnV0IG5ldmVyXG4gKiAgIGJlY29tZXMgdmlzaWJsZSAodGhlIHN1c3BlY3RlZCBpbmZpbml0ZS1sb2FkIGNydXgpIHNob3dzIHVwIGFzIGEgKm1vdW50ZWQgd2l0aCBubyByZW5kZXJlZCpcbiAqICAgZ2FwIGluc3RlYWQgb2YgYmVpbmcgaW52aXNpYmxlIHRvIGFuYWx5dGljcyBlbnRpcmVseS5cbiAqIC0gYHdpZGdldF9sb2FkX291dGNvbWVgIGZpcmVzIG9uY2UgdGhlIHdpZGdldCdzIG93biByZXF1ZXN0cyBzZXR0bGVcbiAqICAgKGNvbnRlbnRfbG9hZGVkIC8gc3RhdGljX2ZhbGxiYWNrIC8gZXJyb3IpLlxuICogLSBgd2lkZ2V0X2xvYWRfc3RhbGxlZGAgZmlyZXMgaWYgaXQncyBzdGlsbCBsb2FkaW5nIGF0IFdJREdFVF9MT0FEX1NUQUxMX01TIEFORCBzdGlsbCBtb3VudGVkLlxuICogICBUaGUgdGltZXIgaXMgY2xlYXJlZCBvbiB1bm1vdW50LCBzbyBhIHNob3BwZXIgd2hvIG5hdmlnYXRlcyBhd2F5IGZpcnN0IG5ldmVyIHRyaXBzIGl0IOKAlFxuICogICBcInN0YWxsZWQgd2l0aCBubyBsYXRlciBvdXRjb21lXCIgaXMgdGhlcmVmb3JlIGEgY2xlYW4gc3R1Y2sgc2lnbmFsLCB1bmRpbHV0ZWQgYnkgYWJhbmRvbm1lbnQuXG4gKlxuICogYGxvYWRfaWRgIGNvcnJlbGF0ZXMgYWxsIG9mIHRoZSBhYm92ZSAoYW5kIGlzIHRocmVhZGVkIG9udG8gYFtFbnZpdmVdIFdpZGdldCBSZW5kZXJlZGApIHNvXG4gKiB0aGUgZ2FwcyBhcmUgam9pbmFibGUgcGVyIGxvYWQuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VXaWRnZXRMb2FkRGlhZ25vc3RpY3MgPSAoaW5wdXQ6IFdpZGdldExvYWREaWFnbm9zdGljc0lucHV0KTogdm9pZCA9PiB7XG4gIGNvbnN0IHtcbiAgICBlbmFibGVkLFxuICAgIGxvYWRJZCxcbiAgICB3aWRnZXRUeXBlLFxuICAgIHdpZGdldENvbmZpZ0lkLFxuICAgIHN0YXJ0TG9hZGluZyxcbiAgICBvd25SZXF1ZXN0c1NldHRsZWQsXG4gICAgaGFyZGNvcHlDb250ZW50LFxuICB9ID0gaW5wdXQ7XG5cbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcbiAgY29uc3QgdmFyaWFudEluZm8gPSB1c2VBdG9tVmFsdWUocGFnZVZhcmlhbnRJbmZvQXRvbSk7XG5cbiAgLy8gTGF0ZXN0IGlucHV0LCByZWFkIGluc2lkZSB0aGUgZGVmZXJyZWQgc3RhbGwvb3V0Y29tZSBjYWxsYmFja3MgKHBlbmRpbmdSZXF1ZXN0cyBhbmRcbiAgLy8gdmlzaWJpbGl0eVNvdXJjZSBjaHVybiBhcyByZXF1ZXN0cyBzZXR0bGUgLyB0aGUgZmFsbGJhY2sgZW5nYWdlcykuXG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKGlucHV0KTtcbiAgaW5wdXRSZWYuY3VycmVudCA9IGlucHV0O1xuXG4gIGNvbnN0IGVtaXQgPSAocHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgdHJhY2tFdmVudCh7XG4gICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuRGlhZ25vc3RpY3MsXG4gICAgICBldmVudFByb3BzOiB7XG4gICAgICAgIGxvYWRfaWQ6IGxvYWRJZCxcbiAgICAgICAgd2lkZ2V0X3R5cGU6IHdpZGdldFR5cGUsXG4gICAgICAgIHdpZGdldF9jb25maWdfaWQ6IHdpZGdldENvbmZpZ0lkLFxuICAgICAgICBjb25uZWN0aW9uX3R5cGU6IGNvbm5lY3Rpb25UeXBlKCksXG4gICAgICAgIGNvbnRleHQ6IHZhcmlhbnRJbmZvID8gZXh0cmFjdFBhZ2VDb250ZXh0KHZhcmlhbnRJbmZvIGFzIFBhZ2VWYXJpYW50SW5mbykgOiBudWxsLFxuICAgICAgICAuLi5wcm9wcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gTGF5ZXIgMCDigJQgbW91bnQuIFVuZ2F0ZWQgYnkgdmlzaWJpbGl0eTogdGhlIGJhc2VsaW5lIHRoYXQgZmlyZXMgZXZlbiB3aGVuIHRoZSB3aWRnZXQgbmV2ZXJcbiAgLy8gYmVjb21lcyB2aXNpYmxlLCBzbyBuZXZlci12aXNpYmxlIGZhaWx1cmVzIGFyZSBhIG1lYXN1cmFibGUgZ2FwIHJhdGhlciB0aGFuIHNpbGVuY2UuXG4gIGNvbnN0IG1vdW50RmlyZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCB8fCBtb3VudEZpcmVkUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBtb3VudEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIGVtaXQoeyB0eXBlOiAnd2lkZ2V0X21vdW50ZWQnIH0pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2VuYWJsZWRdKTtcblxuICAvLyB0MCDigJQgd2hlbiB0aGUgd2lkZ2V0IGJlY2FtZSB2aXNpYmxlIC8gc3RhcnRlZCBsb2FkaW5nLlxuICBjb25zdCB2aXNpYmxlQXRSZWYgPSB1c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXJ0TG9hZGluZyAmJiB2aXNpYmxlQXRSZWYuY3VycmVudCA9PT0gbnVsbCkgdmlzaWJsZUF0UmVmLmN1cnJlbnQgPSBub3coKTtcbiAgfSwgW3N0YXJ0TG9hZGluZ10pO1xuXG4gIC8vIExheWVyIDIg4oCUIHRlcm1pbmFsIG91dGNvbWUsIG9uY2UsIHdoZW4gdGhpcyB3aWRnZXQncyBvd24gcmVxdWVzdHMgc2V0dGxlLlxuICBjb25zdCBvdXRjb21lRmlyZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCB8fCAhc3RhcnRMb2FkaW5nIHx8ICFvd25SZXF1ZXN0c1NldHRsZWQgfHwgb3V0Y29tZUZpcmVkUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBvdXRjb21lRmlyZWRSZWYuY3VycmVudCA9IHRydWU7XG5cbiAgICBjb25zdCBlbGFwc2VkX21zID1cbiAgICAgIHZpc2libGVBdFJlZi5jdXJyZW50ICE9PSBudWxsID8gTWF0aC5yb3VuZChub3coKSAtIHZpc2libGVBdFJlZi5jdXJyZW50KSA6IHVuZGVmaW5lZDtcblxuICAgIGxldCBvdXRjb21lOiBzdHJpbmc7XG4gICAgbGV0IHJlYXNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlmICghaGFyZGNvcHlDb250ZW50KSB7XG4gICAgICBvdXRjb21lID0gJ2Vycm9yJztcbiAgICAgIHJlYXNvbiA9IGlucHV0UmVmLmN1cnJlbnQuaGFyZGNvcHlFcnJvclJlYXNvbiA/PyAnbm9fY29udGVudCc7XG4gICAgfSBlbHNlIGlmIChoYXJkY29weUNvbnRlbnQuc2VydmVkRnJvbSA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIG91dGNvbWUgPSAnc3RhdGljX2ZhbGxiYWNrJztcbiAgICAgIHJlYXNvbiA9IGhhcmRjb3B5Q29udGVudC5mYWxsYmFja1JlYXNvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0Y29tZSA9ICdjb250ZW50X2xvYWRlZCc7XG4gICAgfVxuXG4gICAgZW1pdCh7XG4gICAgICB0eXBlOiAnd2lkZ2V0X2xvYWRfb3V0Y29tZScsXG4gICAgICBvdXRjb21lLFxuICAgICAgcmVhc29uLFxuICAgICAgZWxhcHNlZF9tcyxcbiAgICAgIHZpc2liaWxpdHlfc291cmNlOiBpbnB1dFJlZi5jdXJyZW50LnZpc2liaWxpdHlTb3VyY2UsXG4gICAgfSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbZW5hYmxlZCwgc3RhcnRMb2FkaW5nLCBvd25SZXF1ZXN0c1NldHRsZWQsIGhhcmRjb3B5Q29udGVudF0pO1xuXG4gIC8vIExheWVyIDEuNSDigJQgc3RhbGwuIE9ubHkgYXJtcyB3aGlsZSBsb2FkaW5nOyBjbGVhcmVkIG9uIHVubW91bnQsIHNvIGFiYW5kb25tZW50IG5ldmVyIHRyaXBzIGl0LlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCB8fCAhc3RhcnRMb2FkaW5nIHx8IG93blJlcXVlc3RzU2V0dGxlZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZWxhcHNlZF9tcyA9XG4gICAgICAgIHZpc2libGVBdFJlZi5jdXJyZW50ICE9PSBudWxsXG4gICAgICAgICAgPyBNYXRoLnJvdW5kKG5vdygpIC0gdmlzaWJsZUF0UmVmLmN1cnJlbnQpXG4gICAgICAgICAgOiBXSURHRVRfTE9BRF9TVEFMTF9NUztcbiAgICAgIGVtaXQoe1xuICAgICAgICB0eXBlOiAnd2lkZ2V0X2xvYWRfc3RhbGxlZCcsXG4gICAgICAgIGVsYXBzZWRfbXMsXG4gICAgICAgIHBlbmRpbmdfcmVxdWVzdHM6IGlucHV0UmVmLmN1cnJlbnQucGVuZGluZ1JlcXVlc3RzLFxuICAgICAgICB2aXNpYmlsaXR5X3NvdXJjZTogaW5wdXRSZWYuY3VycmVudC52aXNpYmlsaXR5U291cmNlLFxuICAgICAgfSk7XG4gICAgfSwgV0lER0VUX0xPQURfU1RBTExfTVMpO1xuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2VuYWJsZWQsIHN0YXJ0TG9hZGluZywgb3duUmVxdWVzdHNTZXR0bGVkXSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBY0EsTUFBYSx1QkFBdUI7QUEyQnBDLE1BQU0sdUJBQTJDO0FBQy9DLEtBQUk7QUFFRixTQUFRLFVBQXNFLFlBQzFFO1NBQ0U7QUFDTjs7O0FBSUosTUFBTSxZQUFvQjtBQUN4QixLQUFJO0FBQ0YsU0FBTyxPQUFPLFdBQVcsZUFBZSxPQUFPLGFBQWEsTUFDeEQsT0FBTyxZQUFZLEtBQUssR0FDeEIsS0FBSyxLQUFLO1NBQ1I7QUFDTixTQUFPLEtBQUssS0FBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JyQixNQUFhLDRCQUE0QixVQUE0QztDQUNuRixNQUFNLEVBQ0osU0FDQSxRQUNBLFlBQ0EsZ0JBQ0EsY0FDQSxvQkFDQSxvQkFDRTtDQUVKLE1BQU0sRUFBRSxlQUFlLGNBQWM7Q0FDckMsTUFBTSxjQUFjLGFBQWEsb0JBQW9CO0NBSXJELE1BQU0sV0FBVyxPQUFPLE1BQU07QUFDOUIsVUFBUyxVQUFVO0NBRW5CLE1BQU0sUUFBUSxVQUFtQztBQUMvQyxhQUFXO0dBQ1QsV0FBVyx1QkFBdUI7R0FDbEMsWUFBWTtJQUNWLFNBQVM7SUFDVCxhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLGlCQUFpQixnQkFBZ0I7SUFDakMsU0FBUyxjQUFjLG1CQUFtQixZQUErQixHQUFHO0lBQzVFLEdBQUc7SUFDSjtHQUNGLENBQUM7O0NBS0osTUFBTSxnQkFBZ0IsT0FBTyxNQUFNO0FBQ25DLGlCQUFnQjtBQUNkLE1BQUksQ0FBQyxXQUFXLGNBQWMsUUFBUztBQUN2QyxnQkFBYyxVQUFVO0FBQ3hCLE9BQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0lBRS9CLENBQUMsUUFBUSxDQUFDO0NBR2IsTUFBTSxlQUFlLE9BQXNCLEtBQUs7QUFDaEQsaUJBQWdCO0FBQ2QsTUFBSSxnQkFBZ0IsYUFBYSxZQUFZLEtBQU0sY0FBYSxVQUFVLEtBQUs7SUFDOUUsQ0FBQyxhQUFhLENBQUM7Q0FHbEIsTUFBTSxrQkFBa0IsT0FBTyxNQUFNO0FBQ3JDLGlCQUFnQjtBQUNkLE1BQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLGdCQUFnQixRQUFTO0FBQ2pGLGtCQUFnQixVQUFVO0VBRTFCLE1BQU0sYUFDSixhQUFhLFlBQVksT0FBTyxLQUFLLE1BQU0sS0FBSyxHQUFHLGFBQWEsUUFBUSxHQUFHO0VBRTdFLElBQUlBO0VBQ0osSUFBSUM7QUFDSixNQUFJLENBQUMsaUJBQWlCO0FBQ3BCLGFBQVU7QUFDVixZQUFTLFNBQVMsUUFBUSx1QkFBdUI7YUFDeEMsZ0JBQWdCLGVBQWUsVUFBVTtBQUNsRCxhQUFVO0FBQ1YsWUFBUyxnQkFBZ0I7UUFFekIsV0FBVTtBQUdaLE9BQUs7R0FDSCxNQUFNO0dBQ047R0FDQTtHQUNBO0dBQ0EsbUJBQW1CLFNBQVMsUUFBUTtHQUNyQyxDQUFDO0lBRUQ7RUFBQztFQUFTO0VBQWM7RUFBb0I7RUFBZ0IsQ0FBQztBQUdoRSxpQkFBZ0I7QUFDZCxNQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixtQkFBb0IsUUFBTztFQUM1RCxNQUFNLFFBQVEsaUJBQWlCO0FBSzdCLFFBQUs7SUFDSCxNQUFNO0lBQ04sWUFMQSxhQUFhLFlBQVksT0FDckIsS0FBSyxNQUFNLEtBQUssR0FBRyxhQUFhLFFBQVEsR0FDeEM7SUFJSixrQkFBa0IsU0FBUyxRQUFRO0lBQ25DLG1CQUFtQixTQUFTLFFBQVE7SUFDckMsQ0FBQztLQUNELHFCQUFxQjtBQUN4QixlQUFhLGFBQWEsTUFBTTtJQUUvQjtFQUFDO0VBQVM7RUFBYztFQUFtQixDQUFDIn0=
|
package/dist/hooks/utils.d.cts
CHANGED
|
@@ -19,4 +19,4 @@ declare enum SearchResultsState {
|
|
|
19
19
|
declare const getSearchResultsState: (isLoadingSearch: boolean, searchData: SearchResult | null) => SearchResultsState;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { SearchResultsState, createAppLoadedEvent, createVisitUserEvent, getSearchResultsState, isElementPartiallyVisible, isWithinBusinessHours };
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3V0aWxzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvc2VhcmNoJztcbmltcG9ydCB7IFVzZXJFdmVudCwgVmFyaWFudEluZm8gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzRWxlbWVudFBhcnRpYWxseVZpc2libGU6IChlbD86IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4gYm9vbGVhbjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNyZWF0ZUFwcExvYWRlZEV2ZW50OiAoKSA9PiBVc2VyRXZlbnQ7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBjcmVhdGVWaXNpdFVzZXJFdmVudDogKHsgdmFyaWFudEluZm8sIH06IHtcbiAgICB2YXJpYW50SW5mbzogVmFyaWFudEluZm87XG59KSA9PiBVc2VyRXZlbnQgfCB1bmRlZmluZWQ7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc1dpdGhpbkJ1c2luZXNzSG91cnM6IChzdGFydFRpbWU6IHN0cmluZywgZW5kVGltZTogc3RyaW5nLCB0aW1lWm9uZTogc3RyaW5nKSA9PiBib29sZWFuO1xuZXhwb3J0IGRlY2xhcmUgZW51bSBTZWFyY2hSZXN1bHRzU3RhdGUge1xuICAgIExvYWRpbmcgPSAwLFxuICAgIFJlc3VsdHMgPSAxLFxuICAgIE5vUmVzdWx0cyA9IDJcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGdldFNlYXJjaFJlc3VsdHNTdGF0ZTogKGlzTG9hZGluZ1NlYXJjaDogYm9vbGVhbiwgc2VhcmNoRGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbCkgPT4gU2VhcmNoUmVzdWx0c1N0YXRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUVBLElBQVcsNEJBQTRCLENBQUMsV0FBVyxlQUFlO0FBQ2xFLElBQVcsdUJBQXVCLENBQUMsV0FBVyxVQUFVO0FBQ3hELElBQVcsdUJBQXVCO0NBQUM7T0FBVztPQUFnQjtPQUFBO0NBQUE7QUFDOUQsSUFBVyx3QkFBaUIsQ0FBQSxJQUFBO0FBQzVCLElBQVcscUJBQWdCLENBQUEsSUFBQTtBQUMzQixJQUFXLHdCQUF3QjtDQUFDO09BQVc7T0FBb0I7Q0FBbUIifQ==
|
package/dist/hooks/utils.d.ts
CHANGED
|
@@ -19,4 +19,4 @@ declare enum SearchResultsState {
|
|
|
19
19
|
declare const getSearchResultsState: (isLoadingSearch: boolean, searchData: SearchResult | null) => SearchResultsState;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { SearchResultsState, createAppLoadedEvent, createVisitUserEvent, getSearchResultsState, isElementPartiallyVisible, isWithinBusinessHours };
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXRpbHMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zZWFyY2gnO1xuaW1wb3J0IHsgVXNlckV2ZW50LCBWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNFbGVtZW50UGFydGlhbGx5VmlzaWJsZTogKGVsPzogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiBib29sZWFuO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgY3JlYXRlQXBwTG9hZGVkRXZlbnQ6ICgpID0+IFVzZXJFdmVudDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNyZWF0ZVZpc2l0VXNlckV2ZW50OiAoeyB2YXJpYW50SW5mbywgfToge1xuICAgIHZhcmlhbnRJbmZvOiBWYXJpYW50SW5mbztcbn0pID0+IFVzZXJFdmVudCB8IHVuZGVmaW5lZDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzV2l0aGluQnVzaW5lc3NIb3VyczogKHN0YXJ0VGltZTogc3RyaW5nLCBlbmRUaW1lOiBzdHJpbmcsIHRpbWVab25lOiBzdHJpbmcpID0+
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXRpbHMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zZWFyY2gnO1xuaW1wb3J0IHsgVXNlckV2ZW50LCBWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNFbGVtZW50UGFydGlhbGx5VmlzaWJsZTogKGVsPzogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiBib29sZWFuO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgY3JlYXRlQXBwTG9hZGVkRXZlbnQ6ICgpID0+IFVzZXJFdmVudDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNyZWF0ZVZpc2l0VXNlckV2ZW50OiAoeyB2YXJpYW50SW5mbywgfToge1xuICAgIHZhcmlhbnRJbmZvOiBWYXJpYW50SW5mbztcbn0pID0+IFVzZXJFdmVudCB8IHVuZGVmaW5lZDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzV2l0aGluQnVzaW5lc3NIb3VyczogKHN0YXJ0VGltZTogc3RyaW5nLCBlbmRUaW1lOiBzdHJpbmcsIHRpbWVab25lOiBzdHJpbmcpID0+IGJvb2xlYW47XG5leHBvcnQgZGVjbGFyZSBlbnVtIFNlYXJjaFJlc3VsdHNTdGF0ZSB7XG4gICAgTG9hZGluZyA9IDAsXG4gICAgUmVzdWx0cyA9IDEsXG4gICAgTm9SZXN1bHRzID0gMlxufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgZ2V0U2VhcmNoUmVzdWx0c1N0YXRlOiAoaXNMb2FkaW5nU2VhcmNoOiBib29sZWFuLCBzZWFyY2hEYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsKSA9PiBTZWFyY2hSZXN1bHRzU3RhdGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsSUFBVyw0QkFBNEIsQ0FBQyxTQUFTLGVBQWU7QUFDaEUsSUFBVyx1QkFBdUIsQ0FBQyxTQUFTLFVBQVU7QUFDdEQsSUFBVyx1QkFBdUI7Q0FBQztPQUFTO09BQWtCO09BQUE7Q0FBQTtBQUM5RCxJQUFXLHdCQUFpQixDQUFBLEVBQUE7QUFDNUIsSUFBVyxxQkFBZ0IsQ0FBQSxFQUFBO0FBQzNCLElBQVcsd0JBQXdCO0NBQUM7T0FBUztPQUFvQjtDQUFtQiJ9
|
|
@@ -49,10 +49,11 @@ let EnviveMetricsEventName = /* @__PURE__ */ function(EnviveMetricsEventName$1)
|
|
|
49
49
|
EnviveMetricsEventName$1["WidgetTextRequest"] = "Widget Text Request";
|
|
50
50
|
EnviveMetricsEventName$1["WidgetTextResponse"] = "Widget Text Response";
|
|
51
51
|
EnviveMetricsEventName$1["WidgetTextClicked"] = "Widget Text Clicked";
|
|
52
|
+
EnviveMetricsEventName$1["Diagnostics"] = "Diagnostics";
|
|
52
53
|
return EnviveMetricsEventName$1;
|
|
53
54
|
}({});
|
|
54
55
|
|
|
55
56
|
//#endregion
|
|
56
57
|
exports.EnviveMetricsEventName = EnviveMetricsEventName;
|
|
57
58
|
exports.SpiffyMetricsEventName = SpiffyMetricsEventName;
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnROYW1lcy5janMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvZXZlbnROYW1lcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV2ZW50IG5hbWUgZW51bXMgZm9yIEFtcGxpdHVkZSB0cmFja2luZy5cbiAqXG4gKiBOT1RFOiBUaGlzIGZpbGUgZXhpc3RzIHNlcGFyYXRlbHkgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jeSBpc3N1ZXMuXG4gKiBUaGUgYW1wbGl0dWRlU2VydmljZSBpbXBvcnRzIGZyb20gZ2E0UHJvamVjdGlvblNlcnZpY2UsIHdoaWNoIG5lZWRzIHRoZXNlIGVudW1zLlxuICogQnkga2VlcGluZyB0aGUgZW51bXMgaW4gYSBzZXBhcmF0ZSBmaWxlLCBnYTRQcm9qZWN0aW9uU2VydmljZSBjYW4gaW1wb3J0IHRoZW1cbiAqIHdpdGhvdXQgY3JlYXRpbmcgYSBjaXJjdWxhciBkZXBlbmRlbmN5IHdpdGggYW1wbGl0dWRlU2VydmljZS5cbiAqL1xuXG5leHBvcnQgZW51bSBTcGlmZnlNZXRyaWNzRXZlbnROYW1lIHtcbiAgQnVuZGxlTG9hZGVkID0gJ0J1bmRsZSBMb2FkZWQnLFxuICBDaGF0TGl2ZUFnZW50QnRuQ2xpY2sgPSAnQ2hhdCBMaXZlIEFnZW50IEJ0biBDbGljaycsXG4gIENoYXRGbG9hdGluZ0J1dHRvblZpc2libGUgPSAnQ2hhdCBGbG9hdGluZyBCdXR0b24gVmlzaWJsZScsXG4gIENoYXRDb21wb25lbnRWaXNpYmxlID0gJ0NoYXQgQ29tcG9uZW50IFZpc2libGUnLFxuICBDaGF0Q29tcG9uZW50RXhwYW5kZWQgPSAnQ2hhdCBDb21wb25lbnQgRXhwYW5kZWQnLFxuICBDaGF0Q29tcG9uZW50Q29sbGFwc2VkID0gJ0NoYXQgQ29tcG9uZW50IENvbGxhcHNlZCcsXG4gIENoYXRVc2VyTWVzc2FnZUlucHV0ID0gJ0NoYXQgVXNlciBNZXNzYWdlIElucHV0JyxcbiAgQ2hhdFN1Z2dlc3Rpb25DbGlja2VkID0gJ0NoYXQgU3VnZ2VzdGlvbiBDbGlja2VkJyxcbiAgQ2hhdEFzc2lzdGFudFJlc3BvbnNlID0gJ0NoYXQgQXNzaXN0YW50IFJlc3BvbnNlJyxcbiAgUHJvZHVjdENhcmRDbGlja2VkID0gJ1Byb2R1Y3QgQ2FyZCBDbGlja2VkJyxcbiAgUHJvZHVjdFJldmlld0NhcmRDbGlja2VkID0gJ1Byb2R1Y3QgUmV2aWV3IENhcmQgQ2xpY2tlZCcsXG4gIEFkZFRvQ2FydENsaWNrZWQgPSAnQWRkIFRvIENhcnQgQ2xpY2tlZCcsXG4gIFByb21wdENhcmRDbGlja2VkID0gJ1Byb21wdCBDYXJkIENsaWNrZWQnLFxuICBTdXBwb3J0ZWRFdmVudCA9ICdTdXBwb3J0ZWQgRXZlbnQnLFxuICBTZWFyY2hCYWNrVG9SZXNwb25zZUNsaWNrZWQgPSAnU2VhcmNoIEJhY2sgdG8gUmVzcG9uc2UgQ2xpY2tlZCcsXG4gIFBlcmZvcm1hbmNlTWV0cmljcyA9ICdQZXJmb3JtYW5jZSBNZXRyaWNzJyxcbiAgU2VhcmNoQmFyQ2xpY2tlZCA9ICdTZWFyY2ggQmFyIENsaWNrZWQnLFxuICBPcmRlckxvb2t1cFN0YXJ0ZWQgPSAnT3JkZXIgTG9va3VwIFN0YXJ0ZWQnLFxuICBPcmRlckxvb2t1cEZvcm1TdWJtaXR0ZWQgPSAnT3JkZXIgTG9va3VwIEZvcm0gU3VibWl0dGVkJyxcbiAgU2VhcmNoQ29tcG9uZW50VmlzaWJsZSA9ICdTZWFyY2ggQ29tcG9uZW50IFZpc2libGUnLFxuICBTZWFyY2haZXJvU3RhdGVTdWdnZXN0aW9uQ2xpY2tlZCA9ICdTZWFyY2ggWmVybyBTdGF0ZSBTdWdnZXN0aW9uIENsaWNrZWQnLFxuICBTZWFyY2hJbnB1dFN0YXJ0ZWQgPSAnU2VhcmNoIElucHV0IFN0YXJ0ZWQnLFxuICBTZWFyY2hRdWVyeVN1Ym1pdHRlZCA9ICdTZWFyY2ggUXVlcnkgU3VibWl0dGVkJyxcbiAgU2VhcmNoUmVzdWx0c1ZpZXdlZCA9ICdTZWFyY2ggUmVzdWx0cyBWaWV3ZWQnLFxuICBTZWFyY2hUaW1lVG9GaXJzdENsaWNrID0gJ1NlYXJjaCBUaW1lIHRvIEZpcnN0IENsaWNrJyxcbiAgU2VhcmNoWmVyb1Jlc3VsdHNSYXRlID0gJ1NlYXJjaCBaZXJvIFJlc3VsdHMgUmF0ZScsXG4gIFNlYXJjaEZpbHRlckNsaWNrZWQgPSAnU2VhcmNoIEZpbHRlciBDbGlja2VkJyxcbiAgU2VhcmNoU29ydENsaWNrZWQgPSAnU2VhcmNoIFNvcnQgQ2xpY2tlZCcsXG59XG5cbmV4cG9ydCBlbnVtIEVudml2ZU1ldHJpY3NFdmVudE5hbWUge1xuICBXaWRnZXRSZW5kZXJlZCA9ICdXaWRnZXQgUmVuZGVyZWQnLFxuICBXaWRnZXRJbnRlcmFjdGlvbiA9ICdXaWRnZXQgSW50ZXJhY3Rpb24nLFxuICBDaGF0UmVxdWVzdCA9ICdDaGF0IFJlcXVlc3QnLFxuICBDaGF0UmVzcG9uc2UgPSAnQ2hhdCBSZXNwb25zZScsXG4gIEVudml2ZUluaXRpYWxpemVkID0gJ0Vudml2ZSBJbml0aWFsaXplZCcsXG4gIFBhZ2VWaWV3ZWQgPSAnUGFnZSBWaWV3ZWQnLFxuICBXaWRnZXRUZXh0UmVxdWVzdCA9ICdXaWRnZXQgVGV4dCBSZXF1ZXN0JyxcbiAgV2lkZ2V0VGV4dFJlc3BvbnNlID0gJ1dpZGdldCBUZXh0IFJlc3BvbnNlJyxcbiAgV2lkZ2V0VGV4dENsaWNrZWQgPSAnV2lkZ2V0IFRleHQgQ2xpY2tlZCcsXG4gIC8vIE9wZXJhdGlvbmFsIGRpYWdub3N0aWNzIGZvciB3aWRnZXQgbG9hZGluZyAoc2VlIHVzZVdpZGdldExvYWREaWFnbm9zdGljcykuIEEgc2luZ2xlIGV2ZW50XG4gIC8vIHdpdGggYSBgdHlwZWAgZGlzY3JpbWluYXRvciAod2lkZ2V0X21vdW50ZWQgfCB3aWRnZXRfbG9hZF9vdXRjb21lIHwgd2lkZ2V0X2xvYWRfc3RhbGxlZClcbiAgLy8gc28gZW5nIGNhbiBtZWFzdXJlIHRoZSBsYXllcmVkIGxvYWQgbmV0IGFuZCwgY3J1Y2lhbGx5LCB0aGUgbmVnYXRpdmUgc3BhY2UgYmV0d2VlbiBsYXllcnMuXG4gIERpYWdub3N0aWNzID0gJ0RpYWdub3N0aWNzJyxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVNBLElBQVksNEVBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0YsSUFBWSw0RUFBTDtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBIn0=
|
|
@@ -47,7 +47,8 @@ declare enum EnviveMetricsEventName {
|
|
|
47
47
|
WidgetTextRequest = "Widget Text Request",
|
|
48
48
|
WidgetTextResponse = "Widget Text Response",
|
|
49
49
|
WidgetTextClicked = "Widget Text Clicked",
|
|
50
|
+
Diagnostics = "Diagnostics",
|
|
50
51
|
}
|
|
51
52
|
//#endregion
|
|
52
53
|
export { EnviveMetricsEventName, SpiffyMetricsEventName };
|
|
53
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnROYW1lcy5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9ldmVudE5hbWVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFdmVudCBuYW1lIGVudW1zIGZvciBBbXBsaXR1ZGUgdHJhY2tpbmcuXG4gKlxuICogTk9URTogVGhpcyBmaWxlIGV4aXN0cyBzZXBhcmF0ZWx5IHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY3kgaXNzdWVzLlxuICogVGhlIGFtcGxpdHVkZVNlcnZpY2UgaW1wb3J0cyBmcm9tIGdhNFByb2plY3Rpb25TZXJ2aWNlLCB3aGljaCBuZWVkcyB0aGVzZSBlbnVtcy5cbiAqIEJ5IGtlZXBpbmcgdGhlIGVudW1zIGluIGEgc2VwYXJhdGUgZmlsZSwgZ2E0UHJvamVjdGlvblNlcnZpY2UgY2FuIGltcG9ydCB0aGVtXG4gKiB3aXRob3V0IGNyZWF0aW5nIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSB3aXRoIGFtcGxpdHVkZVNlcnZpY2UuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGVudW0gU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSB7XG4gICAgQnVuZGxlTG9hZGVkID0gXCJCdW5kbGUgTG9hZGVkXCIsXG4gICAgQ2hhdExpdmVBZ2VudEJ0bkNsaWNrID0gXCJDaGF0IExpdmUgQWdlbnQgQnRuIENsaWNrXCIsXG4gICAgQ2hhdEZsb2F0aW5nQnV0dG9uVmlzaWJsZSA9IFwiQ2hhdCBGbG9hdGluZyBCdXR0b24gVmlzaWJsZVwiLFxuICAgIENoYXRDb21wb25lbnRWaXNpYmxlID0gXCJDaGF0IENvbXBvbmVudCBWaXNpYmxlXCIsXG4gICAgQ2hhdENvbXBvbmVudEV4cGFuZGVkID0gXCJDaGF0IENvbXBvbmVudCBFeHBhbmRlZFwiLFxuICAgIENoYXRDb21wb25lbnRDb2xsYXBzZWQgPSBcIkNoYXQgQ29tcG9uZW50IENvbGxhcHNlZFwiLFxuICAgIENoYXRVc2VyTWVzc2FnZUlucHV0ID0gXCJDaGF0IFVzZXIgTWVzc2FnZSBJbnB1dFwiLFxuICAgIENoYXRTdWdnZXN0aW9uQ2xpY2tlZCA9IFwiQ2hhdCBTdWdnZXN0aW9uIENsaWNrZWRcIixcbiAgICBDaGF0QXNzaXN0YW50UmVzcG9uc2UgPSBcIkNoYXQgQXNzaXN0YW50IFJlc3BvbnNlXCIsXG4gICAgUHJvZHVjdENhcmRDbGlja2VkID0gXCJQcm9kdWN0IENhcmQgQ2xpY2tlZFwiLFxuICAgIFByb2R1Y3RSZXZpZXdDYXJkQ2xpY2tlZCA9IFwiUHJvZHVjdCBSZXZpZXcgQ2FyZCBDbGlja2VkXCIsXG4gICAgQWRkVG9DYXJ0Q2xpY2tlZCA9IFwiQWRkIFRvIENhcnQgQ2xpY2tlZFwiLFxuICAgIFByb21wdENhcmRDbGlja2VkID0gXCJQcm9tcHQgQ2FyZCBDbGlja2VkXCIsXG4gICAgU3VwcG9ydGVkRXZlbnQgPSBcIlN1cHBvcnRlZCBFdmVudFwiLFxuICAgIFNlYXJjaEJhY2tUb1Jlc3BvbnNlQ2xpY2tlZCA9IFwiU2VhcmNoIEJhY2sgdG8gUmVzcG9uc2UgQ2xpY2tlZFwiLFxuICAgIFBlcmZvcm1hbmNlTWV0cmljcyA9IFwiUGVyZm9ybWFuY2UgTWV0cmljc1wiLFxuICAgIFNlYXJjaEJhckNsaWNrZWQgPSBcIlNlYXJjaCBCYXIgQ2xpY2tlZFwiLFxuICAgIE9yZGVyTG9va3VwU3RhcnRlZCA9IFwiT3JkZXIgTG9va3VwIFN0YXJ0ZWRcIixcbiAgICBPcmRlckxvb2t1cEZvcm1TdWJtaXR0ZWQgPSBcIk9yZGVyIExvb2t1cCBGb3JtIFN1Ym1pdHRlZFwiLFxuICAgIFNlYXJjaENvbXBvbmVudFZpc2libGUgPSBcIlNlYXJjaCBDb21wb25lbnQgVmlzaWJsZVwiLFxuICAgIFNlYXJjaFplcm9TdGF0ZVN1Z2dlc3Rpb25DbGlja2VkID0gXCJTZWFyY2ggWmVybyBTdGF0ZSBTdWdnZXN0aW9uIENsaWNrZWRcIixcbiAgICBTZWFyY2hJbnB1dFN0YXJ0ZWQgPSBcIlNlYXJjaCBJbnB1dCBTdGFydGVkXCIsXG4gICAgU2VhcmNoUXVlcnlTdWJtaXR0ZWQgPSBcIlNlYXJjaCBRdWVyeSBTdWJtaXR0ZWRcIixcbiAgICBTZWFyY2hSZXN1bHRzVmlld2VkID0gXCJTZWFyY2ggUmVzdWx0cyBWaWV3ZWRcIixcbiAgICBTZWFyY2hUaW1lVG9GaXJzdENsaWNrID0gXCJTZWFyY2ggVGltZSB0byBGaXJzdCBDbGlja1wiLFxuICAgIFNlYXJjaFplcm9SZXN1bHRzUmF0ZSA9IFwiU2VhcmNoIFplcm8gUmVzdWx0cyBSYXRlXCIsXG4gICAgU2VhcmNoRmlsdGVyQ2xpY2tlZCA9IFwiU2VhcmNoIEZpbHRlciBDbGlja2VkXCIsXG4gICAgU2VhcmNoU29ydENsaWNrZWQgPSBcIlNlYXJjaCBTb3J0IENsaWNrZWRcIlxufVxuZXhwb3J0IGRlY2xhcmUgZW51bSBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIHtcbiAgICBXaWRnZXRSZW5kZXJlZCA9IFwiV2lkZ2V0IFJlbmRlcmVkXCIsXG4gICAgV2lkZ2V0SW50ZXJhY3Rpb24gPSBcIldpZGdldCBJbnRlcmFjdGlvblwiLFxuICAgIENoYXRSZXF1ZXN0ID0gXCJDaGF0IFJlcXVlc3RcIixcbiAgICBDaGF0UmVzcG9uc2UgPSBcIkNoYXQgUmVzcG9uc2VcIixcbiAgICBFbnZpdmVJbml0aWFsaXplZCA9IFwiRW52aXZlIEluaXRpYWxpemVkXCIsXG4gICAgUGFnZVZpZXdlZCA9IFwiUGFnZSBWaWV3ZWRcIixcbiAgICBXaWRnZXRUZXh0UmVxdWVzdCA9IFwiV2lkZ2V0IFRleHQgUmVxdWVzdFwiLFxuICAgIFdpZGdldFRleHRSZXNwb25zZSA9IFwiV2lkZ2V0IFRleHQgUmVzcG9uc2VcIixcbiAgICBXaWRnZXRUZXh0Q2xpY2tlZCA9IFwiV2lkZ2V0IFRleHQgQ2xpY2tlZFwiLFxuICAgIERpYWdub3N0aWNzID0gXCJEaWFnbm9zdGljc1wiXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFFLHlCQUFBLENBQUEsSUFBQTtBQUNGLElBQVcseUJBQXlCLENBQUMsSUFBSSJ9
|
|
@@ -47,7 +47,8 @@ declare enum EnviveMetricsEventName {
|
|
|
47
47
|
WidgetTextRequest = "Widget Text Request",
|
|
48
48
|
WidgetTextResponse = "Widget Text Response",
|
|
49
49
|
WidgetTextClicked = "Widget Text Clicked",
|
|
50
|
+
Diagnostics = "Diagnostics",
|
|
50
51
|
}
|
|
51
52
|
//#endregion
|
|
52
53
|
export { EnviveMetricsEventName, SpiffyMetricsEventName };
|
|
53
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnROYW1lcy5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9hbXBsaXR1ZGVTZXJ2aWNlL2V2ZW50TmFtZXMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV2ZW50IG5hbWUgZW51bXMgZm9yIEFtcGxpdHVkZSB0cmFja2luZy5cbiAqXG4gKiBOT1RFOiBUaGlzIGZpbGUgZXhpc3RzIHNlcGFyYXRlbHkgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jeSBpc3N1ZXMuXG4gKiBUaGUgYW1wbGl0dWRlU2VydmljZSBpbXBvcnRzIGZyb20gZ2E0UHJvamVjdGlvblNlcnZpY2UsIHdoaWNoIG5lZWRzIHRoZXNlIGVudW1zLlxuICogQnkga2VlcGluZyB0aGUgZW51bXMgaW4gYSBzZXBhcmF0ZSBmaWxlLCBnYTRQcm9qZWN0aW9uU2VydmljZSBjYW4gaW1wb3J0IHRoZW1cbiAqIHdpdGhvdXQgY3JlYXRpbmcgYSBjaXJjdWxhciBkZXBlbmRlbmN5IHdpdGggYW1wbGl0dWRlU2VydmljZS5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgZW51bSBTcGlmZnlNZXRyaWNzRXZlbnROYW1lIHtcbiAgICBCdW5kbGVMb2FkZWQgPSBcIkJ1bmRsZSBMb2FkZWRcIixcbiAgICBDaGF0TGl2ZUFnZW50QnRuQ2xpY2sgPSBcIkNoYXQgTGl2ZSBBZ2VudCBCdG4gQ2xpY2tcIixcbiAgICBDaGF0RmxvYXRpbmdCdXR0b25WaXNpYmxlID0gXCJDaGF0IEZsb2F0aW5nIEJ1dHRvbiBWaXNpYmxlXCIsXG4gICAgQ2hhdENvbXBvbmVudFZpc2libGUgPSBcIkNoYXQgQ29tcG9uZW50IFZpc2libGVcIixcbiAgICBDaGF0Q29tcG9uZW50RXhwYW5kZWQgPSBcIkNoYXQgQ29tcG9uZW50IEV4cGFuZGVkXCIsXG4gICAgQ2hhdENvbXBvbmVudENvbGxhcHNlZCA9IFwiQ2hhdCBDb21wb25lbnQgQ29sbGFwc2VkXCIsXG4gICAgQ2hhdFVzZXJNZXNzYWdlSW5wdXQgPSBcIkNoYXQgVXNlciBNZXNzYWdlIElucHV0XCIsXG4gICAgQ2hhdFN1Z2dlc3Rpb25DbGlja2VkID0gXCJDaGF0IFN1Z2dlc3Rpb24gQ2xpY2tlZFwiLFxuICAgIENoYXRBc3Npc3RhbnRSZXNwb25zZSA9IFwiQ2hhdCBBc3Npc3RhbnQgUmVzcG9uc2VcIixcbiAgICBQcm9kdWN0Q2FyZENsaWNrZWQgPSBcIlByb2R1Y3QgQ2FyZCBDbGlja2VkXCIsXG4gICAgUHJvZHVjdFJldmlld0NhcmRDbGlja2VkID0gXCJQcm9kdWN0IFJldmlldyBDYXJkIENsaWNrZWRcIixcbiAgICBBZGRUb0NhcnRDbGlja2VkID0gXCJBZGQgVG8gQ2FydCBDbGlja2VkXCIsXG4gICAgUHJvbXB0Q2FyZENsaWNrZWQgPSBcIlByb21wdCBDYXJkIENsaWNrZWRcIixcbiAgICBTdXBwb3J0ZWRFdmVudCA9IFwiU3VwcG9ydGVkIEV2ZW50XCIsXG4gICAgU2VhcmNoQmFja1RvUmVzcG9uc2VDbGlja2VkID0gXCJTZWFyY2ggQmFjayB0byBSZXNwb25zZSBDbGlja2VkXCIsXG4gICAgUGVyZm9ybWFuY2VNZXRyaWNzID0gXCJQZXJmb3JtYW5jZSBNZXRyaWNzXCIsXG4gICAgU2VhcmNoQmFyQ2xpY2tlZCA9IFwiU2VhcmNoIEJhciBDbGlja2VkXCIsXG4gICAgT3JkZXJMb29rdXBTdGFydGVkID0gXCJPcmRlciBMb29rdXAgU3RhcnRlZFwiLFxuICAgIE9yZGVyTG9va3VwRm9ybVN1Ym1pdHRlZCA9IFwiT3JkZXIgTG9va3VwIEZvcm0gU3VibWl0dGVkXCIsXG4gICAgU2VhcmNoQ29tcG9uZW50VmlzaWJsZSA9IFwiU2VhcmNoIENvbXBvbmVudCBWaXNpYmxlXCIsXG4gICAgU2VhcmNoWmVyb1N0YXRlU3VnZ2VzdGlvbkNsaWNrZWQgPSBcIlNlYXJjaCBaZXJvIFN0YXRlIFN1Z2dlc3Rpb24gQ2xpY2tlZFwiLFxuICAgIFNlYXJjaElucHV0U3RhcnRlZCA9IFwiU2VhcmNoIElucHV0IFN0YXJ0ZWRcIixcbiAgICBTZWFyY2hRdWVyeVN1Ym1pdHRlZCA9IFwiU2VhcmNoIFF1ZXJ5IFN1Ym1pdHRlZFwiLFxuICAgIFNlYXJjaFJlc3VsdHNWaWV3ZWQgPSBcIlNlYXJjaCBSZXN1bHRzIFZpZXdlZFwiLFxuICAgIFNlYXJjaFRpbWVUb0ZpcnN0Q2xpY2sgPSBcIlNlYXJjaCBUaW1lIHRvIEZpcnN0IENsaWNrXCIsXG4gICAgU2VhcmNoWmVyb1Jlc3VsdHNSYXRlID0gXCJTZWFyY2ggWmVybyBSZXN1bHRzIFJhdGVcIixcbiAgICBTZWFyY2hGaWx0ZXJDbGlja2VkID0gXCJTZWFyY2ggRmlsdGVyIENsaWNrZWRcIixcbiAgICBTZWFyY2hTb3J0Q2xpY2tlZCA9IFwiU2VhcmNoIFNvcnQgQ2xpY2tlZFwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEVudml2ZU1ldHJpY3NFdmVudE5hbWUge1xuICAgIFdpZGdldFJlbmRlcmVkID0gXCJXaWRnZXQgUmVuZGVyZWRcIixcbiAgICBXaWRnZXRJbnRlcmFjdGlvbiA9IFwiV2lkZ2V0IEludGVyYWN0aW9uXCIsXG4gICAgQ2hhdFJlcXVlc3QgPSBcIkNoYXQgUmVxdWVzdFwiLFxuICAgIENoYXRSZXNwb25zZSA9IFwiQ2hhdCBSZXNwb25zZVwiLFxuICAgIEVudml2ZUluaXRpYWxpemVkID0gXCJFbnZpdmUgSW5pdGlhbGl6ZWRcIixcbiAgICBQYWdlVmlld2VkID0gXCJQYWdlIFZpZXdlZFwiLFxuICAgIFdpZGdldFRleHRSZXF1ZXN0ID0gXCJXaWRnZXQgVGV4dCBSZXF1ZXN0XCIsXG4gICAgV2lkZ2V0VGV4dFJlc3BvbnNlID0gXCJXaWRnZXQgVGV4dCBSZXNwb25zZVwiLFxuICAgIFdpZGdldFRleHRDbGlja2VkID0gXCJXaWRnZXQgVGV4dCBDbGlja2VkXCIsXG4gICAgRGlhZ25vc3RpY3MgPSBcIkRpYWdub3N0aWNzXCJcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUUseUJBQUEsQ0FBQSxJQUFBO0FBQ0YsSUFBVyx5QkFBeUIsQ0FBQyxJQUFJIn0=
|