@envive-ai/react-hooks 0.3.2 → 0.3.3
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/commerce-api.cjs +6 -4
- package/dist/application/commerce-api.js +6 -4
- package/dist/application/models/api/nextMessageRequest.d.cts +3 -1
- package/dist/application/models/api/nextMessageRequest.d.ts +3 -1
- package/dist/application/models/variantInfo/variantInfo.cjs +4 -1
- package/dist/application/models/variantInfo/variantInfo.d.cts +4 -1
- package/dist/application/models/variantInfo/variantInfo.d.ts +4 -1
- package/dist/application/models/variantInfo/variantInfo.js +4 -1
- package/dist/application/utils/elementObserver.d.cts +2 -2
- package/dist/application/utils/elementObserver.d.ts +2 -2
- package/dist/atoms/app/index.cjs +12 -1
- package/dist/atoms/app/index.d.cts +3 -2
- package/dist/atoms/app/index.d.ts +3 -2
- package/dist/atoms/app/index.js +13 -3
- package/dist/atoms/app/variant.cjs +2 -2
- package/dist/atoms/app/variant.d.cts +69 -5
- package/dist/atoms/app/variant.d.ts +69 -5
- package/dist/atoms/app/variant.js +2 -2
- package/dist/atoms/chat/chatState.d.cts +15 -15
- package/dist/atoms/chat/chatState.d.ts +15 -15
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.d.cts +2 -2
- package/dist/atoms/chat/index.d.ts +2 -2
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.cjs +1 -35
- package/dist/atoms/chat/messageQueue.js +2 -34
- 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 +2 -2
- package/dist/atoms/chat/replies.d.cts +2 -2
- package/dist/atoms/chat/replies.d.ts +2 -2
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/globalSearch/globalSearch.cjs +1 -3
- package/dist/atoms/globalSearch/globalSearch.d.cts +7 -10
- package/dist/atoms/globalSearch/globalSearch.d.ts +7 -10
- package/dist/atoms/globalSearch/globalSearch.js +2 -3
- package/dist/atoms/globalSearch/index.cjs +0 -1
- package/dist/atoms/globalSearch/index.d.cts +2 -2
- package/dist/atoms/globalSearch/index.d.ts +2 -2
- package/dist/atoms/globalSearch/index.js +2 -2
- 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 +5 -5
- package/dist/atoms/org/graphqlConfig.d.ts +5 -5
- 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 +5 -5
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/searchAPI.cjs +1 -1
- package/dist/atoms/search/searchAPI.d.cts +14 -14
- package/dist/atoms/search/searchAPI.d.ts +14 -14
- package/dist/atoms/search/searchAPI.js +1 -1
- package/dist/contexts/amplitudeContext/amplitudeContext.cjs +5 -5
- package/dist/contexts/amplitudeContext/amplitudeContext.js +5 -5
- package/dist/contexts/enviveContext/enviveContext.cjs +7 -3
- package/dist/contexts/enviveContext/enviveContext.js +7 -3
- package/dist/contexts/graphqlContext/graphqlContext.cjs +1 -1
- package/dist/contexts/graphqlContext/graphqlContext.js +1 -1
- package/dist/contexts/hardcopyContext/hardcopyContext.cjs +62 -0
- package/dist/contexts/hardcopyContext/hardcopyContext.d.cts +23 -0
- package/dist/contexts/hardcopyContext/hardcopyContext.d.ts +23 -0
- package/dist/contexts/hardcopyContext/hardcopyContext.js +60 -0
- package/dist/contexts/hardcopyContext/index.cjs +4 -0
- package/dist/contexts/hardcopyContext/index.d.cts +2 -0
- package/dist/contexts/hardcopyContext/index.d.ts +2 -0
- package/dist/contexts/hardcopyContext/index.js +3 -0
- package/dist/contexts/pageContext/index.cjs +6 -0
- package/dist/contexts/pageContext/index.d.cts +3 -0
- package/dist/contexts/pageContext/index.d.ts +3 -0
- package/dist/contexts/pageContext/index.js +4 -0
- package/dist/contexts/pageContext/mapping.cjs +25 -0
- package/dist/contexts/pageContext/mapping.d.cts +8 -0
- package/dist/contexts/pageContext/mapping.d.ts +8 -0
- package/dist/contexts/pageContext/mapping.js +25 -0
- package/dist/contexts/pageContext/pageContext.cjs +66 -0
- package/dist/contexts/pageContext/pageContext.d.cts +11 -0
- package/dist/contexts/pageContext/pageContext.d.ts +11 -0
- package/dist/contexts/pageContext/pageContext.js +64 -0
- package/dist/contexts/pageContext/types.cjs +0 -0
- package/dist/contexts/pageContext/types.d.cts +27 -0
- package/dist/contexts/pageContext/types.d.ts +27 -0
- package/dist/contexts/pageContext/types.js +1 -0
- package/dist/contexts/salesAgentContext/chatAPI.cjs +45 -0
- package/dist/contexts/salesAgentContext/chatAPI.d.cts +35 -0
- package/dist/contexts/salesAgentContext/chatAPI.d.ts +35 -0
- package/dist/contexts/salesAgentContext/chatAPI.js +44 -0
- package/dist/contexts/salesAgentContext/index.cjs +20 -0
- package/dist/contexts/salesAgentContext/index.d.cts +4 -0
- package/dist/contexts/salesAgentContext/index.d.ts +4 -0
- package/dist/contexts/salesAgentContext/index.js +5 -0
- package/dist/contexts/salesAgentContext/salesAgentContext.cjs +90 -0
- package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +22 -0
- package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +22 -0
- package/dist/contexts/salesAgentContext/salesAgentContext.js +88 -0
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +99 -0
- package/dist/contexts/salesAgentContext/salesAgentService.js +98 -0
- package/dist/contexts/searchContext/searchContext.cjs +1 -1
- package/dist/contexts/searchContext/searchContext.js +1 -1
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/types.cjs +11 -1
- package/dist/contexts/types.d.cts +10 -2
- package/dist/contexts/types.d.ts +10 -2
- package/dist/contexts/types.js +11 -2
- package/dist/contexts/userIdentityContext/userIdentityContext.cjs +1 -1
- package/dist/contexts/userIdentityContext/userIdentityContext.js +1 -1
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/GraphQLConfig/useGraphQLConfig.cjs +9 -3
- package/dist/hooks/GraphQLConfig/useGraphQLConfig.js +9 -3
- package/dist/hooks/ImageResolver/useImageResolver.cjs +1 -1
- package/dist/hooks/ImageResolver/useImageResolver.js +1 -1
- package/dist/hooks/Search/useSearch.cjs +5 -8
- package/dist/hooks/Search/useSearch.d.cts +1 -3
- package/dist/hooks/Search/useSearch.d.ts +1 -3
- package/dist/hooks/Search/useSearch.js +6 -9
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/package.json +5 -1
- package/dist/contexts/chatContext/chatContext.cjs +0 -306
- package/dist/contexts/chatContext/chatContext.d.cts +0 -15
- package/dist/contexts/chatContext/chatContext.d.ts +0 -15
- package/dist/contexts/chatContext/chatContext.js +0 -304
- package/dist/contexts/chatContext/index.cjs +0 -4
- package/dist/contexts/chatContext/index.d.cts +0 -2
- package/dist/contexts/chatContext/index.d.ts +0 -2
- package/dist/contexts/chatContext/index.js +0 -3
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_contexts_types = require('../types.cjs');
|
|
3
|
+
const require_logger = require('../../application/logging/logger.cjs');
|
|
4
|
+
let react = require("react");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
|
|
7
|
+
//#region src/contexts/hardcopyContext/hardcopyContext.tsx
|
|
8
|
+
const MOCK_HARDCOPY_RESPONSE = {
|
|
9
|
+
[require_contexts_types.WidgetTypeV3.SuggestionBarV3]: {
|
|
10
|
+
language: "en",
|
|
11
|
+
values: { suggestionBarButtons: [
|
|
12
|
+
"Button 1",
|
|
13
|
+
"Button 2",
|
|
14
|
+
"Button 3"
|
|
15
|
+
] }
|
|
16
|
+
},
|
|
17
|
+
[require_contexts_types.WidgetTypeV3.ChatPreviewV3]: {
|
|
18
|
+
language: "en",
|
|
19
|
+
values: {
|
|
20
|
+
chatPreviewTitle: "Chat Preview Title",
|
|
21
|
+
typewriterTextPrefix: "Want to know",
|
|
22
|
+
typewriterTexts: [
|
|
23
|
+
"more about this product?",
|
|
24
|
+
"what others are saying?",
|
|
25
|
+
"how to use it?"
|
|
26
|
+
],
|
|
27
|
+
suggestionButtons: [
|
|
28
|
+
"Button 1",
|
|
29
|
+
"Button 2",
|
|
30
|
+
"Button 3"
|
|
31
|
+
],
|
|
32
|
+
footerText: "Ask me anything...",
|
|
33
|
+
chatPreviewDescription: "Chat Preview Description"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const HardcopyContext = (0, react.createContext)(void 0);
|
|
38
|
+
const HardcopyProvider = ({ children }) => {
|
|
39
|
+
const languages = (0, react.useMemo)(() => navigator.languages, []);
|
|
40
|
+
const getHardcopy = (0, react.useCallback)(async (request) => {
|
|
41
|
+
require_logger.default.logInfo("hardcopyContext | retrieving hardcopy", languages);
|
|
42
|
+
const response = MOCK_HARDCOPY_RESPONSE[request.widgetType];
|
|
43
|
+
require_logger.default.logInfo("hardcopyContext | returning hardcopy response", response);
|
|
44
|
+
if (!response) throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
|
|
45
|
+
return response;
|
|
46
|
+
}, []);
|
|
47
|
+
const value = (0, react.useMemo)(() => ({ getHardcopy }), [getHardcopy]);
|
|
48
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HardcopyContext.Provider, {
|
|
49
|
+
value,
|
|
50
|
+
children
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const useHardcopy = () => {
|
|
54
|
+
const context = (0, react.useContext)(HardcopyContext);
|
|
55
|
+
if (!context) throw new Error("useHardcopy must be used within a HardcopyProvider");
|
|
56
|
+
return context;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
exports.HardcopyProvider = HardcopyProvider;
|
|
61
|
+
exports.useHardcopy = useHardcopy;
|
|
62
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlDb250ZXh0LmNqcyIsIm5hbWVzIjpbIk1PQ0tfSEFSRENPUFlfUkVTUE9OU0U6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+IiwiV2lkZ2V0VHlwZVYzIiwiSGFyZGNvcHlQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2hhcmRjb3B5Q29udGV4dC9oYXJkY29weUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBSZWFjdE5vZGUsIGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgSGFyZGNvcHlSZXF1ZXN0IHtcbiAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cblxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG59O1xuXG5pbnRlcmZhY2UgSGFyZGNvcHlDb250ZXh0VHlwZSB7XG4gIGdldEhhcmRjb3B5OiAoSGFyZGNvcHlSZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpID0+IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT47XG59XG5cbi8vIFRoZXNlIGFyZSBqdXN0IHNhbXBsZSByZXNwb25zZXMgZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcuXG4vLyBBcyB3ZSBzdGFydCB0byBidWlsZCB0aGUgYWN0dWFsIHdpZGdldHMgd2Ugc2hvdWxkIGRldGVybWluZSB3aGF0IHRoZSBhY3R1YWxcbi8vIHZhbHVlcyBhbmQgdGhlaXIgbmFtZXMgc2hvdWxkIGJlLlxuY29uc3QgTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7XG4gIFtXaWRnZXRUeXBlVjMuU3VnZ2VzdGlvbkJhclYzXToge1xuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgc3VnZ2VzdGlvbkJhckJ1dHRvbnM6IFsnQnV0dG9uIDEnLCAnQnV0dG9uIDInLCAnQnV0dG9uIDMnXSxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkNoYXRQcmV2aWV3VjNdOiB7XG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBjaGF0UHJldmlld1RpdGxlOiAnQ2hhdCBQcmV2aWV3IFRpdGxlJyxcbiAgICAgIHR5cGV3cml0ZXJUZXh0UHJlZml4OiAnV2FudCB0byBrbm93JyxcbiAgICAgIHR5cGV3cml0ZXJUZXh0czogWydtb3JlIGFib3V0IHRoaXMgcHJvZHVjdD8nLCAnd2hhdCBvdGhlcnMgYXJlIHNheWluZz8nLCAnaG93IHRvIHVzZSBpdD8nXSxcbiAgICAgIHN1Z2dlc3Rpb25CdXR0b25zOiBbJ0J1dHRvbiAxJywgJ0J1dHRvbiAyJywgJ0J1dHRvbiAzJ10sXG4gICAgICBmb290ZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcblxuICAgICAgY2hhdFByZXZpZXdEZXNjcmlwdGlvbjogJ0NoYXQgUHJldmlldyBEZXNjcmlwdGlvbicsXG4gICAgfSxcbiAgfSxcbn07XG5cbmNvbnN0IEhhcmRjb3B5Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8SGFyZGNvcHlDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IEhhcmRjb3B5UHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgbGFuZ3VhZ2VzID0gdXNlTWVtbygoKSA9PiBuYXZpZ2F0b3IubGFuZ3VhZ2VzLCBbXSk7XG5cbiAgY29uc3QgZ2V0SGFyZGNvcHkgPSB1c2VDYWxsYmFjayhhc3luYyAocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiA9PiB7XG4gICAgTG9nZ2VyLmxvZ0luZm8oJ2hhcmRjb3B5Q29udGV4dCB8IHJldHJpZXZpbmcgaGFyZGNvcHknLCBsYW5ndWFnZXMpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gTU9DS19IQVJEQ09QWV9SRVNQT05TRVtyZXF1ZXN0LndpZGdldFR5cGVdO1xuICAgIExvZ2dlci5sb2dJbmZvKCdoYXJkY29weUNvbnRleHQgfCByZXR1cm5pbmcgaGFyZGNvcHkgcmVzcG9uc2UnLCByZXNwb25zZSk7XG4gICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBoYXJkY29weSByZXNwb25zZSBmb3VuZCBmb3Igd2lkZ2V0IHR5cGU6ICR7cmVxdWVzdC53aWRnZXRUeXBlfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH0sIFtdKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHsgZ2V0SGFyZGNvcHkgfSksIFtnZXRIYXJkY29weV0pO1xuXG4gIHJldHVybiA8SGFyZGNvcHlDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvSGFyZGNvcHlDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VIYXJkY29weSA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoSGFyZGNvcHlDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VIYXJkY29weSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgSGFyZGNvcHlQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQXNCQSxNQUFNQSx5QkFBMEU7RUFDN0VDLG9DQUFhLGtCQUFrQjtFQUM5QixVQUFVO0VBQ1YsUUFBUSxFQUNOLHNCQUFzQjtHQUFDO0dBQVk7R0FBWTtHQUFXLEVBQzNEO0VBQ0Y7RUFDQUEsb0NBQWEsZ0JBQWdCO0VBQzVCLFVBQVU7RUFDVixRQUFRO0dBQ04sa0JBQWtCO0dBQ2xCLHNCQUFzQjtHQUN0QixpQkFBaUI7SUFBQztJQUE0QjtJQUEyQjtJQUFpQjtHQUMxRixtQkFBbUI7SUFBQztJQUFZO0lBQVk7SUFBVztHQUN2RCxZQUFZO0dBRVosd0JBQXdCO0dBQ3pCO0VBQ0Y7Q0FDRjtBQUVELE1BQU0sMkNBQWlFLE9BQVU7QUFFakYsTUFBYUMsb0JBQXVELEVBQUUsZUFBZTtDQUNuRixNQUFNLHFDQUEwQixVQUFVLFdBQVcsRUFBRSxDQUFDO0NBRXhELE1BQU0scUNBQTBCLE9BQU8sWUFBd0Q7QUFDN0YseUJBQU8sUUFBUSx5Q0FBeUMsVUFBVTtFQUNsRSxNQUFNLFdBQVcsdUJBQXVCLFFBQVE7QUFDaEQseUJBQU8sUUFBUSxpREFBaUQsU0FBUztBQUN6RSxNQUFJLENBQUMsU0FDSCxPQUFNLElBQUksTUFBTSwrQ0FBK0MsUUFBUSxhQUFhO0FBRXRGLFNBQU87SUFDTixFQUFFLENBQUM7Q0FFTixNQUFNLGtDQUF1QixFQUFFLGFBQWEsR0FBRyxDQUFDLFlBQVksQ0FBQztBQUU3RCxRQUFPLDJDQUFDLGdCQUFnQjtFQUFnQjtFQUFRO0dBQW9DOztBQUd0RixNQUFhLG9CQUFvQjtDQUMvQixNQUFNLGdDQUFxQixnQkFBZ0I7QUFDM0MsS0FBSSxDQUFDLFFBQ0gsT0FBTSxJQUFJLE1BQU0scURBQXFEO0FBRXZFLFFBQU8ifQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { WidgetTypeV3 } from "../types.cjs";
|
|
2
|
+
import { UserEvent } from "@spiffy-ai/commerce-api-client";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/contexts/hardcopyContext/hardcopyContext.d.ts
|
|
6
|
+
interface HardcopyRequest {
|
|
7
|
+
widgetType: WidgetTypeV3;
|
|
8
|
+
userEvent: UserEvent;
|
|
9
|
+
}
|
|
10
|
+
type HardcopyResponse = {
|
|
11
|
+
language: string;
|
|
12
|
+
values: Record<string, string | string[]>;
|
|
13
|
+
};
|
|
14
|
+
interface HardcopyContextType {
|
|
15
|
+
getHardcopy: (HardcopyRequest: HardcopyRequest) => Promise<HardcopyResponse>;
|
|
16
|
+
}
|
|
17
|
+
declare const HardcopyProvider: React.FC<{
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}>;
|
|
20
|
+
declare const useHardcopy: () => HardcopyContextType;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { HardcopyProvider, HardcopyResponse, useHardcopy };
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlDb250ZXh0LmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9oYXJkY29weUNvbnRleHQvaGFyZGNvcHlDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFdpZGdldFR5cGVWMyB9IGZyb20gJy4uL3R5cGVzJztcbmludGVyZmFjZSBIYXJkY29weVJlcXVlc3Qge1xuICAgIHdpZGdldFR5cGU6IFdpZGdldFR5cGVWMztcbiAgICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cbmV4cG9ydCB0eXBlIEhhcmRjb3B5UmVzcG9uc2UgPSB7XG4gICAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPjtcbn07XG5pbnRlcmZhY2UgSGFyZGNvcHlDb250ZXh0VHlwZSB7XG4gICAgZ2V0SGFyZGNvcHk6IChIYXJkY29weVJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCkgPT4gUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEhhcmRjb3B5UHJvdmlkZXI6IFJlYWN0LkZDPHtcbiAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VIYXJkY29weTogKCkgPT4gSGFyZGNvcHlDb250ZXh0VHlwZTtcbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSxJQUFJLGtCQUFrQjtDQUFDO09BQUc7T0FBQTtDQUFBO0FBQzFCLElBQVcsbUJBQWlCLENBQUEsV0FBQSxPQUFBO0FBQzVCLElBQUksc0JBQW9CO0NBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN4QixJQUFBLG1CQUFBO0NBQUE7T0FBQTtPQUFBLE1BQUE7Q0FBQTtBQUNBLElBQVcsY0FBYyxDQUFDLFdBQUssb0JBQUEifQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { WidgetTypeV3 } from "../types.js";
|
|
2
|
+
import { UserEvent } from "@spiffy-ai/commerce-api-client";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/contexts/hardcopyContext/hardcopyContext.d.ts
|
|
6
|
+
interface HardcopyRequest {
|
|
7
|
+
widgetType: WidgetTypeV3;
|
|
8
|
+
userEvent: UserEvent;
|
|
9
|
+
}
|
|
10
|
+
type HardcopyResponse = {
|
|
11
|
+
language: string;
|
|
12
|
+
values: Record<string, string | string[]>;
|
|
13
|
+
};
|
|
14
|
+
interface HardcopyContextType {
|
|
15
|
+
getHardcopy: (HardcopyRequest: HardcopyRequest) => Promise<HardcopyResponse>;
|
|
16
|
+
}
|
|
17
|
+
declare const HardcopyProvider: React.FC<{
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}>;
|
|
20
|
+
declare const useHardcopy: () => HardcopyContextType;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { HardcopyProvider, HardcopyResponse, useHardcopy };
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlDb250ZXh0LmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2hhcmRjb3B5Q29udGV4dC9oYXJkY29weUNvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW50ZXJmYWNlIEhhcmRjb3B5UmVxdWVzdCB7XG4gICAgd2lkZ2V0VHlwZTogV2lkZ2V0VHlwZVYzO1xuICAgIHVzZXJFdmVudDogVXNlckV2ZW50O1xufVxuZXhwb3J0IHR5cGUgSGFyZGNvcHlSZXNwb25zZSA9IHtcbiAgICBsYW5ndWFnZTogc3RyaW5nO1xuICAgIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xufTtcbmludGVyZmFjZSBIYXJkY29weUNvbnRleHRUeXBlIHtcbiAgICBnZXRIYXJkY29weTogKEhhcmRjb3B5UmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KSA9PiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgSGFyZGNvcHlQcm92aWRlcjogUmVhY3QuRkM8e1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59PjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZUhhcmRjb3B5OiAoKSA9PiBIYXJkY29weUNvbnRleHRUeXBlO1xuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUdBLElBQUksa0JBQWtCO0NBQUM7T0FBRztPQUFBO0NBQUE7QUFDMUIsSUFBVyxtQkFBaUIsQ0FBQSxXQUFBLE9BQUE7QUFDNUIsSUFBSSxzQkFBb0I7Q0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3hCLElBQUEsbUJBQUE7Q0FBQTtPQUFBO09BQUEsTUFBQTtDQUFBO0FBQ0EsSUFBVyxjQUFjLENBQUMsV0FBSyxvQkFBQSJ9
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { WidgetTypeV3 } from "../types.js";
|
|
2
|
+
import logger_default from "../../application/logging/logger.js";
|
|
3
|
+
import { createContext, useCallback, useContext, useMemo } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/contexts/hardcopyContext/hardcopyContext.tsx
|
|
7
|
+
const MOCK_HARDCOPY_RESPONSE = {
|
|
8
|
+
[WidgetTypeV3.SuggestionBarV3]: {
|
|
9
|
+
language: "en",
|
|
10
|
+
values: { suggestionBarButtons: [
|
|
11
|
+
"Button 1",
|
|
12
|
+
"Button 2",
|
|
13
|
+
"Button 3"
|
|
14
|
+
] }
|
|
15
|
+
},
|
|
16
|
+
[WidgetTypeV3.ChatPreviewV3]: {
|
|
17
|
+
language: "en",
|
|
18
|
+
values: {
|
|
19
|
+
chatPreviewTitle: "Chat Preview Title",
|
|
20
|
+
typewriterTextPrefix: "Want to know",
|
|
21
|
+
typewriterTexts: [
|
|
22
|
+
"more about this product?",
|
|
23
|
+
"what others are saying?",
|
|
24
|
+
"how to use it?"
|
|
25
|
+
],
|
|
26
|
+
suggestionButtons: [
|
|
27
|
+
"Button 1",
|
|
28
|
+
"Button 2",
|
|
29
|
+
"Button 3"
|
|
30
|
+
],
|
|
31
|
+
footerText: "Ask me anything...",
|
|
32
|
+
chatPreviewDescription: "Chat Preview Description"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const HardcopyContext = createContext(void 0);
|
|
37
|
+
const HardcopyProvider = ({ children }) => {
|
|
38
|
+
const languages = useMemo(() => navigator.languages, []);
|
|
39
|
+
const getHardcopy = useCallback(async (request) => {
|
|
40
|
+
logger_default.logInfo("hardcopyContext | retrieving hardcopy", languages);
|
|
41
|
+
const response = MOCK_HARDCOPY_RESPONSE[request.widgetType];
|
|
42
|
+
logger_default.logInfo("hardcopyContext | returning hardcopy response", response);
|
|
43
|
+
if (!response) throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
|
|
44
|
+
return response;
|
|
45
|
+
}, []);
|
|
46
|
+
const value = useMemo(() => ({ getHardcopy }), [getHardcopy]);
|
|
47
|
+
return /* @__PURE__ */ jsx(HardcopyContext.Provider, {
|
|
48
|
+
value,
|
|
49
|
+
children
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
const useHardcopy = () => {
|
|
53
|
+
const context = useContext(HardcopyContext);
|
|
54
|
+
if (!context) throw new Error("useHardcopy must be used within a HardcopyProvider");
|
|
55
|
+
return context;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
export { HardcopyProvider, useHardcopy };
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlDb250ZXh0LmpzIiwibmFtZXMiOlsiTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iLCJIYXJkY29weVByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfT4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvaGFyZGNvcHlDb250ZXh0L2hhcmRjb3B5Q29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBXaWRnZXRUeXBlVjMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBIYXJkY29weVJlcXVlc3Qge1xuICB3aWRnZXRUeXBlOiBXaWRnZXRUeXBlVjM7XG4gIHVzZXJFdmVudDogVXNlckV2ZW50O1xufVxuXG5leHBvcnQgdHlwZSBIYXJkY29weVJlc3BvbnNlID0ge1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPjtcbn07XG5cbmludGVyZmFjZSBIYXJkY29weUNvbnRleHRUeXBlIHtcbiAgZ2V0SGFyZGNvcHk6IChIYXJkY29weVJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCkgPT4gUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cblxuLy8gVGhlc2UgYXJlIGp1c3Qgc2FtcGxlIHJlc3BvbnNlcyBmb3IgdGhlIHNha2Ugb2YgdGVzdGluZy5cbi8vIEFzIHdlIHN0YXJ0IHRvIGJ1aWxkIHRoZSBhY3R1YWwgd2lkZ2V0cyB3ZSBzaG91bGQgZGV0ZXJtaW5lIHdoYXQgdGhlIGFjdHVhbFxuLy8gdmFsdWVzIGFuZCB0aGVpciBuYW1lcyBzaG91bGQgYmUuXG5jb25zdCBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PiA9IHtcbiAgW1dpZGdldFR5cGVWMy5TdWdnZXN0aW9uQmFyVjNdOiB7XG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBzdWdnZXN0aW9uQmFyQnV0dG9uczogWydCdXR0b24gMScsICdCdXR0b24gMicsICdCdXR0b24gMyddLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdWM106IHtcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIGNoYXRQcmV2aWV3VGl0bGU6ICdDaGF0IFByZXZpZXcgVGl0bGUnLFxuICAgICAgdHlwZXdyaXRlclRleHRQcmVmaXg6ICdXYW50IHRvIGtub3cnLFxuICAgICAgdHlwZXdyaXRlclRleHRzOiBbJ21vcmUgYWJvdXQgdGhpcyBwcm9kdWN0PycsICd3aGF0IG90aGVycyBhcmUgc2F5aW5nPycsICdob3cgdG8gdXNlIGl0PyddLFxuICAgICAgc3VnZ2VzdGlvbkJ1dHRvbnM6IFsnQnV0dG9uIDEnLCAnQnV0dG9uIDInLCAnQnV0dG9uIDMnXSxcbiAgICAgIGZvb3RlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuXG4gICAgICBjaGF0UHJldmlld0Rlc2NyaXB0aW9uOiAnQ2hhdCBQcmV2aWV3IERlc2NyaXB0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcblxuY29uc3QgSGFyZGNvcHlDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxIYXJkY29weUNvbnRleHRUeXBlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgSGFyZGNvcHlQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCBsYW5ndWFnZXMgPSB1c2VNZW1vKCgpID0+IG5hdmlnYXRvci5sYW5ndWFnZXMsIFtdKTtcblxuICBjb25zdCBnZXRIYXJkY29weSA9IHVzZUNhbGxiYWNrKGFzeW5jIChyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+ID0+IHtcbiAgICBMb2dnZXIubG9nSW5mbygnaGFyZGNvcHlDb250ZXh0IHwgcmV0cmlldmluZyBoYXJkY29weScsIGxhbmd1YWdlcyk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFW3JlcXVlc3Qud2lkZ2V0VHlwZV07XG4gICAgTG9nZ2VyLmxvZ0luZm8oJ2hhcmRjb3B5Q29udGV4dCB8IHJldHVybmluZyBoYXJkY29weSByZXNwb25zZScsIHJlc3BvbnNlKTtcbiAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGhhcmRjb3B5IHJlc3BvbnNlIGZvdW5kIGZvciB3aWRnZXQgdHlwZTogJHtyZXF1ZXN0LndpZGdldFR5cGV9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiAoeyBnZXRIYXJkY29weSB9KSwgW2dldEhhcmRjb3B5XSk7XG5cbiAgcmV0dXJuIDxIYXJkY29weUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9IYXJkY29weUNvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUhhcmRjb3B5ID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChIYXJkY29weUNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUhhcmRjb3B5IG11c3QgYmUgdXNlZCB3aXRoaW4gYSBIYXJkY29weVByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFzQkEsTUFBTUEseUJBQTBFO0VBQzdFLGFBQWEsa0JBQWtCO0VBQzlCLFVBQVU7RUFDVixRQUFRLEVBQ04sc0JBQXNCO0dBQUM7R0FBWTtHQUFZO0dBQVcsRUFDM0Q7RUFDRjtFQUNBLGFBQWEsZ0JBQWdCO0VBQzVCLFVBQVU7RUFDVixRQUFRO0dBQ04sa0JBQWtCO0dBQ2xCLHNCQUFzQjtHQUN0QixpQkFBaUI7SUFBQztJQUE0QjtJQUEyQjtJQUFpQjtHQUMxRixtQkFBbUI7SUFBQztJQUFZO0lBQVk7SUFBVztHQUN2RCxZQUFZO0dBRVosd0JBQXdCO0dBQ3pCO0VBQ0Y7Q0FDRjtBQUVELE1BQU0sa0JBQWtCLGNBQStDLE9BQVU7QUFFakYsTUFBYUMsb0JBQXVELEVBQUUsZUFBZTtDQUNuRixNQUFNLFlBQVksY0FBYyxVQUFVLFdBQVcsRUFBRSxDQUFDO0NBRXhELE1BQU0sY0FBYyxZQUFZLE9BQU8sWUFBd0Q7QUFDN0YsaUJBQU8sUUFBUSx5Q0FBeUMsVUFBVTtFQUNsRSxNQUFNLFdBQVcsdUJBQXVCLFFBQVE7QUFDaEQsaUJBQU8sUUFBUSxpREFBaUQsU0FBUztBQUN6RSxNQUFJLENBQUMsU0FDSCxPQUFNLElBQUksTUFBTSwrQ0FBK0MsUUFBUSxhQUFhO0FBRXRGLFNBQU87SUFDTixFQUFFLENBQUM7Q0FFTixNQUFNLFFBQVEsZUFBZSxFQUFFLGFBQWEsR0FBRyxDQUFDLFlBQVksQ0FBQztBQUU3RCxRQUFPLG9CQUFDLGdCQUFnQjtFQUFnQjtFQUFRO0dBQW9DOztBQUd0RixNQUFhLG9CQUFvQjtDQUMvQixNQUFNLFVBQVUsV0FBVyxnQkFBZ0I7QUFDM0MsS0FBSSxDQUFDLFFBQ0gsT0FBTSxJQUFJLE1BQU0scURBQXFEO0FBRXZFLFFBQU8ifQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const require_mapping = require('./mapping.cjs');
|
|
2
|
+
const require_pageContext = require('./pageContext.cjs');
|
|
3
|
+
|
|
4
|
+
exports.PageProvider = require_pageContext.PageProvider;
|
|
5
|
+
exports.mapUrlResolverResponseToVariantInfo = require_mapping.mapUrlResolverResponseToVariantInfo;
|
|
6
|
+
exports.usePage = require_pageContext.usePage;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const require_variantInfo = require('../../application/models/variantInfo/variantInfo.cjs');
|
|
2
|
+
require('../../application/models/index.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/contexts/pageContext/mapping.ts
|
|
5
|
+
const mapUrlResolverResponseToVariantInfo = (url, response) => {
|
|
6
|
+
if (response.variant_type === require_variantInfo.VariantTypeEnum.Pdp && "pdp_attributes" in response.specific_details) return {
|
|
7
|
+
variantType: require_variantInfo.VariantTypeEnum.Pdp,
|
|
8
|
+
productId: response.specific_details.pdp_attributes.product_id ?? "",
|
|
9
|
+
url
|
|
10
|
+
};
|
|
11
|
+
if (response.variant_type === require_variantInfo.VariantTypeEnum.Plp && "plp_attributes" in response.specific_details) return {
|
|
12
|
+
variantType: require_variantInfo.VariantTypeEnum.Plp,
|
|
13
|
+
plpId: response.specific_details.plp_attributes?.attributes?.id ?? "",
|
|
14
|
+
url
|
|
15
|
+
};
|
|
16
|
+
if (response.variant_type === require_variantInfo.VariantTypeEnum.PageVisit) return {
|
|
17
|
+
variantType: require_variantInfo.VariantTypeEnum.PageVisit,
|
|
18
|
+
url
|
|
19
|
+
};
|
|
20
|
+
throw new Error("Invalid variant type");
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.mapUrlResolverResponseToVariantInfo = mapUrlResolverResponseToVariantInfo;
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5janMiLCJuYW1lcyI6WyJWYXJpYW50VHlwZUVudW0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvcGFnZUNvbnRleHQvbWFwcGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcblxuaW1wb3J0IHsgVmFyaWFudFR5cGVFbnVtIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5cbmltcG9ydCB7IFBhZ2VWYXJpYW50SW5mbywgVmlzaXRQYWdlVmFyaWFudEluZm8gfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IG1hcFVybFJlc29sdmVyUmVzcG9uc2VUb1ZhcmlhbnRJbmZvID0gKFxuICB1cmw6IHN0cmluZyxcbiAgcmVzcG9uc2U6IFVybFJlc29sdmVyUmVzcG9uc2UsXG4pOiBQYWdlVmFyaWFudEluZm8gPT4ge1xuICBpZiAoXG4gICAgcmVzcG9uc2UudmFyaWFudF90eXBlID09PSBWYXJpYW50VHlwZUVudW0uUGRwICYmXG4gICAgJ3BkcF9hdHRyaWJ1dGVzJyBpbiByZXNwb25zZS5zcGVjaWZpY19kZXRhaWxzXG4gICkge1xuICAgIHJldHVybiB7XG4gICAgICB2YXJpYW50VHlwZTogVmFyaWFudFR5cGVFbnVtLlBkcCxcbiAgICAgIHByb2R1Y3RJZDogcmVzcG9uc2Uuc3BlY2lmaWNfZGV0YWlscy5wZHBfYXR0cmlidXRlcy5wcm9kdWN0X2lkID8/ICcnLFxuICAgICAgdXJsLFxuICAgIH07XG4gIH1cbiAgaWYgKFxuICAgIHJlc3BvbnNlLnZhcmlhbnRfdHlwZSA9PT0gVmFyaWFudFR5cGVFbnVtLlBscCAmJlxuICAgICdwbHBfYXR0cmlidXRlcycgaW4gcmVzcG9uc2Uuc3BlY2lmaWNfZGV0YWlsc1xuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFyaWFudFR5cGU6IFZhcmlhbnRUeXBlRW51bS5QbHAsXG4gICAgICBwbHBJZDogcmVzcG9uc2Uuc3BlY2lmaWNfZGV0YWlscy5wbHBfYXR0cmlidXRlcz8uYXR0cmlidXRlcz8uaWQgPz8gJycsXG4gICAgICB1cmwsXG4gICAgfTtcbiAgfVxuICBpZiAocmVzcG9uc2UudmFyaWFudF90eXBlID09PSBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0LFxuICAgICAgdXJsLFxuICAgIH0gYXMgVmlzaXRQYWdlVmFyaWFudEluZm87XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhcmlhbnQgdHlwZScpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQU1BLE1BQWEsdUNBQ1gsS0FDQSxhQUNvQjtBQUNwQixLQUNFLFNBQVMsaUJBQWlCQSxvQ0FBZ0IsT0FDMUMsb0JBQW9CLFNBQVMsaUJBRTdCLFFBQU87RUFDTCxhQUFhQSxvQ0FBZ0I7RUFDN0IsV0FBVyxTQUFTLGlCQUFpQixlQUFlLGNBQWM7RUFDbEU7RUFDRDtBQUVILEtBQ0UsU0FBUyxpQkFBaUJBLG9DQUFnQixPQUMxQyxvQkFBb0IsU0FBUyxpQkFFN0IsUUFBTztFQUNMLGFBQWFBLG9DQUFnQjtFQUM3QixPQUFPLFNBQVMsaUJBQWlCLGdCQUFnQixZQUFZLE1BQU07RUFDbkU7RUFDRDtBQUVILEtBQUksU0FBUyxpQkFBaUJBLG9DQUFnQixVQUM1QyxRQUFPO0VBQ0wsYUFBYUEsb0NBQWdCO0VBQzdCO0VBQ0Q7QUFFSCxPQUFNLElBQUksTUFBTSx1QkFBdUIifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { UrlResolverResponse } from "../../atoms/app/variant.cjs";
|
|
2
|
+
import { PageVariantInfo } from "./types.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/contexts/pageContext/mapping.d.ts
|
|
5
|
+
declare const mapUrlResolverResponseToVariantInfo: (url: string, response: UrlResolverResponse) => PageVariantInfo;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { mapUrlResolverResponseToVariantInfo };
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvcGFnZUNvbnRleHQvbWFwcGluZy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVybFJlc29sdmVyUmVzcG9uc2UgfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRJbmZvIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBtYXBVcmxSZXNvbHZlclJlc3BvbnNlVG9WYXJpYW50SW5mbzogKHVybDogc3RyaW5nLCByZXNwb25zZTogVXJsUmVzb2x2ZXJSZXNwb25zZSkgPT4gUGFnZVZhcmlhbnRJbmZvO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyxzQ0FBc0M7Q0FBQztPQUFXO09BQTJCO0NBQWdCIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { UrlResolverResponse } from "../../atoms/app/variant.js";
|
|
2
|
+
import { PageVariantInfo } from "./types.js";
|
|
3
|
+
|
|
4
|
+
//#region src/contexts/pageContext/mapping.d.ts
|
|
5
|
+
declare const mapUrlResolverResponseToVariantInfo: (url: string, response: UrlResolverResponse) => PageVariantInfo;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { mapUrlResolverResponseToVariantInfo };
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9wYWdlQ29udGV4dC9tYXBwaW5nLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXJsUmVzb2x2ZXJSZXNwb25zZSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAvdmFyaWFudCc7XG5pbXBvcnQgeyBQYWdlVmFyaWFudEluZm8gfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IG1hcFVybFJlc29sdmVyUmVzcG9uc2VUb1ZhcmlhbnRJbmZvOiAodXJsOiBzdHJpbmcsIHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlKSA9PiBQYWdlVmFyaWFudEluZm87XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFXLHNDQUFzQztDQUFDO09BQVc7T0FBMkI7Q0FBZ0IifQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { VariantTypeEnum } from "../../application/models/variantInfo/variantInfo.js";
|
|
2
|
+
import "../../application/models/index.js";
|
|
3
|
+
|
|
4
|
+
//#region src/contexts/pageContext/mapping.ts
|
|
5
|
+
const mapUrlResolverResponseToVariantInfo = (url, response) => {
|
|
6
|
+
if (response.variant_type === VariantTypeEnum.Pdp && "pdp_attributes" in response.specific_details) return {
|
|
7
|
+
variantType: VariantTypeEnum.Pdp,
|
|
8
|
+
productId: response.specific_details.pdp_attributes.product_id ?? "",
|
|
9
|
+
url
|
|
10
|
+
};
|
|
11
|
+
if (response.variant_type === VariantTypeEnum.Plp && "plp_attributes" in response.specific_details) return {
|
|
12
|
+
variantType: VariantTypeEnum.Plp,
|
|
13
|
+
plpId: response.specific_details.plp_attributes?.attributes?.id ?? "",
|
|
14
|
+
url
|
|
15
|
+
};
|
|
16
|
+
if (response.variant_type === VariantTypeEnum.PageVisit) return {
|
|
17
|
+
variantType: VariantTypeEnum.PageVisit,
|
|
18
|
+
url
|
|
19
|
+
};
|
|
20
|
+
throw new Error("Invalid variant type");
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { mapUrlResolverResponseToVariantInfo };
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvcGFnZUNvbnRleHQvbWFwcGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcblxuaW1wb3J0IHsgVmFyaWFudFR5cGVFbnVtIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5cbmltcG9ydCB7IFBhZ2VWYXJpYW50SW5mbywgVmlzaXRQYWdlVmFyaWFudEluZm8gfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IG1hcFVybFJlc29sdmVyUmVzcG9uc2VUb1ZhcmlhbnRJbmZvID0gKFxuICB1cmw6IHN0cmluZyxcbiAgcmVzcG9uc2U6IFVybFJlc29sdmVyUmVzcG9uc2UsXG4pOiBQYWdlVmFyaWFudEluZm8gPT4ge1xuICBpZiAoXG4gICAgcmVzcG9uc2UudmFyaWFudF90eXBlID09PSBWYXJpYW50VHlwZUVudW0uUGRwICYmXG4gICAgJ3BkcF9hdHRyaWJ1dGVzJyBpbiByZXNwb25zZS5zcGVjaWZpY19kZXRhaWxzXG4gICkge1xuICAgIHJldHVybiB7XG4gICAgICB2YXJpYW50VHlwZTogVmFyaWFudFR5cGVFbnVtLlBkcCxcbiAgICAgIHByb2R1Y3RJZDogcmVzcG9uc2Uuc3BlY2lmaWNfZGV0YWlscy5wZHBfYXR0cmlidXRlcy5wcm9kdWN0X2lkID8/ICcnLFxuICAgICAgdXJsLFxuICAgIH07XG4gIH1cbiAgaWYgKFxuICAgIHJlc3BvbnNlLnZhcmlhbnRfdHlwZSA9PT0gVmFyaWFudFR5cGVFbnVtLlBscCAmJlxuICAgICdwbHBfYXR0cmlidXRlcycgaW4gcmVzcG9uc2Uuc3BlY2lmaWNfZGV0YWlsc1xuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFyaWFudFR5cGU6IFZhcmlhbnRUeXBlRW51bS5QbHAsXG4gICAgICBwbHBJZDogcmVzcG9uc2Uuc3BlY2lmaWNfZGV0YWlscy5wbHBfYXR0cmlidXRlcz8uYXR0cmlidXRlcz8uaWQgPz8gJycsXG4gICAgICB1cmwsXG4gICAgfTtcbiAgfVxuICBpZiAocmVzcG9uc2UudmFyaWFudF90eXBlID09PSBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0LFxuICAgICAgdXJsLFxuICAgIH0gYXMgVmlzaXRQYWdlVmFyaWFudEluZm87XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhcmlhbnQgdHlwZScpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQU1BLE1BQWEsdUNBQ1gsS0FDQSxhQUNvQjtBQUNwQixLQUNFLFNBQVMsaUJBQWlCLGdCQUFnQixPQUMxQyxvQkFBb0IsU0FBUyxpQkFFN0IsUUFBTztFQUNMLGFBQWEsZ0JBQWdCO0VBQzdCLFdBQVcsU0FBUyxpQkFBaUIsZUFBZSxjQUFjO0VBQ2xFO0VBQ0Q7QUFFSCxLQUNFLFNBQVMsaUJBQWlCLGdCQUFnQixPQUMxQyxvQkFBb0IsU0FBUyxpQkFFN0IsUUFBTztFQUNMLGFBQWEsZ0JBQWdCO0VBQzdCLE9BQU8sU0FBUyxpQkFBaUIsZ0JBQWdCLFlBQVksTUFBTTtFQUNuRTtFQUNEO0FBRUgsS0FBSSxTQUFTLGlCQUFpQixnQkFBZ0IsVUFDNUMsUUFBTztFQUNMLGFBQWEsZ0JBQWdCO0VBQzdCO0VBQ0Q7QUFFSCxPQUFNLElBQUksTUFBTSx1QkFBdUIifQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_logger = require('../../application/logging/logger.cjs');
|
|
3
|
+
const require_variant = require('../../atoms/app/variant.cjs');
|
|
4
|
+
const require_commerce_api = require('../../application/commerce-api.cjs');
|
|
5
|
+
const require_mapping = require('./mapping.cjs');
|
|
6
|
+
let react = require("react");
|
|
7
|
+
let jotai = require("jotai");
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
+
|
|
10
|
+
//#region src/contexts/pageContext/pageContext.tsx
|
|
11
|
+
const PageContext = (0, react.createContext)(void 0);
|
|
12
|
+
const PageProvider = ({ children }) => {
|
|
13
|
+
const [pageUrl, setPageUrl] = (0, react.useState)(void 0);
|
|
14
|
+
const [variantInfo, setVariantInfo] = (0, react.useState)(void 0);
|
|
15
|
+
const [urlResolverResponse, setUrlResolverResponse] = (0, jotai.useAtom)(require_variant.urlResolverAtom);
|
|
16
|
+
const [userEvent, setUserEvent] = (0, react.useState)(void 0);
|
|
17
|
+
(0, react.useEffect)(() => {
|
|
18
|
+
setPageUrl(window.location.href);
|
|
19
|
+
}, []);
|
|
20
|
+
const setVariantFromUrlResolver = (0, react.useCallback)((url, response) => {
|
|
21
|
+
const newVariantInfo = require_mapping.mapUrlResolverResponseToVariantInfo(url, response);
|
|
22
|
+
const newUserEvent = response.user_event ?? void 0;
|
|
23
|
+
setVariantInfo(newVariantInfo);
|
|
24
|
+
setUserEvent(newUserEvent);
|
|
25
|
+
}, [setVariantInfo]);
|
|
26
|
+
(0, react.useEffect)(() => {
|
|
27
|
+
const resolvePageUrl = async () => {
|
|
28
|
+
try {
|
|
29
|
+
if (!pageUrl) return;
|
|
30
|
+
const cleansedUrl = pageUrl.toLowerCase().trim();
|
|
31
|
+
setVariantFromUrlResolver(cleansedUrl, urlResolverResponse[cleansedUrl] ?? await require_commerce_api.default.resolveUrl(cleansedUrl));
|
|
32
|
+
} catch (e) {
|
|
33
|
+
require_logger.default.logError("Failed to resolve page URL", e, { pageUrl });
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
resolvePageUrl();
|
|
37
|
+
}, [
|
|
38
|
+
pageUrl,
|
|
39
|
+
urlResolverResponse,
|
|
40
|
+
setUrlResolverResponse,
|
|
41
|
+
setVariantFromUrlResolver
|
|
42
|
+
]);
|
|
43
|
+
const value = (0, react.useMemo)(() => ({
|
|
44
|
+
pageUrl,
|
|
45
|
+
variantInfo,
|
|
46
|
+
userEvent
|
|
47
|
+
}), [
|
|
48
|
+
pageUrl,
|
|
49
|
+
userEvent,
|
|
50
|
+
variantInfo
|
|
51
|
+
]);
|
|
52
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PageContext.Provider, {
|
|
53
|
+
value,
|
|
54
|
+
children
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const usePage = () => {
|
|
58
|
+
const context = (0, react.useContext)(PageContext);
|
|
59
|
+
if (!context) throw new Error("usePage must be used within a PageProvider");
|
|
60
|
+
return context;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
//#endregion
|
|
64
|
+
exports.PageProvider = PageProvider;
|
|
65
|
+
exports.usePage = usePage;
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUNvbnRleHQuY2pzIiwibmFtZXMiOlsiUGFnZVByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfT4iLCJ1cmxSZXNvbHZlckF0b20iLCJtYXBVcmxSZXNvbHZlclJlc3BvbnNlVG9WYXJpYW50SW5mbyIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3BhZ2VDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSZWFjdE5vZGUsXG4gIGNyZWF0ZUNvbnRleHQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgVXJsUmVzb2x2ZXJSZXNwb25zZSwgdXJsUmVzb2x2ZXJBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbmltcG9ydCB7IHVzZUF0b20gfSBmcm9tICdqb3RhaSc7XG5cbmltcG9ydCBDb21tZXJjZUFwaUNsaWVudCBmcm9tICdzcmMvYXBwbGljYXRpb24vY29tbWVyY2UtYXBpJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IG1hcFVybFJlc29sdmVyUmVzcG9uc2VUb1ZhcmlhbnRJbmZvIH0gZnJvbSAnLi9tYXBwaW5nJztcbmltcG9ydCB7IFBhZ2VEZXRhaWxzLCBQYWdlVmFyaWFudEluZm8gfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgUGFnZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PFBhZ2VEZXRhaWxzIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgUGFnZVByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IFtwYWdlVXJsLCBzZXRQYWdlVXJsXSA9IHVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgW3ZhcmlhbnRJbmZvLCBzZXRWYXJpYW50SW5mb10gPSB1c2VTdGF0ZTxQYWdlVmFyaWFudEluZm8gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IFt1cmxSZXNvbHZlclJlc3BvbnNlLCBzZXRVcmxSZXNvbHZlclJlc3BvbnNlXSA9IHVzZUF0b20odXJsUmVzb2x2ZXJBdG9tKTtcbiAgY29uc3QgW3VzZXJFdmVudCwgc2V0VXNlckV2ZW50XSA9IHVzZVN0YXRlPFVzZXJFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciBTUEEncyBhbmQgb3RoZXIgY2hhbmdlcyB0byB0aGUgVVJMIHRvIGVuc3VyZSB0aGF0IHRoZSBwYWdlVXJsIGlzIHNldCBjb3JyZWN0bHlcbiAgICBzZXRQYWdlVXJsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHNldFZhcmlhbnRGcm9tVXJsUmVzb2x2ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAodXJsOiBzdHJpbmcsIHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCBuZXdWYXJpYW50SW5mbyA9IG1hcFVybFJlc29sdmVyUmVzcG9uc2VUb1ZhcmlhbnRJbmZvKHVybCwgcmVzcG9uc2UpO1xuICAgICAgY29uc3QgbmV3VXNlckV2ZW50ID0gcmVzcG9uc2UudXNlcl9ldmVudCA/PyB1bmRlZmluZWQ7XG4gICAgICBzZXRWYXJpYW50SW5mbyhuZXdWYXJpYW50SW5mbyk7XG4gICAgICBzZXRVc2VyRXZlbnQobmV3VXNlckV2ZW50KTtcbiAgICB9LFxuICAgIFtzZXRWYXJpYW50SW5mb10sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCByZXNvbHZlUGFnZVVybCA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghcGFnZVVybCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbGVhbnNlZFVybCA9IHBhZ2VVcmwudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgICAgICB1cmxSZXNvbHZlclJlc3BvbnNlW2NsZWFuc2VkVXJsXSA/P1xuICAgICAgICAgICgoYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQucmVzb2x2ZVVybChjbGVhbnNlZFVybCkpIGFzIFVybFJlc29sdmVyUmVzcG9uc2UpO1xuICAgICAgICBzZXRWYXJpYW50RnJvbVVybFJlc29sdmVyKGNsZWFuc2VkVXJsLCByZXNwb25zZSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIExvZ2dlci5sb2dFcnJvcignRmFpbGVkIHRvIHJlc29sdmUgcGFnZSBVUkwnLCBlLCB7IHBhZ2VVcmwgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICByZXNvbHZlUGFnZVVybCgpO1xuICB9LCBbcGFnZVVybCwgdXJsUmVzb2x2ZXJSZXNwb25zZSwgc2V0VXJsUmVzb2x2ZXJSZXNwb25zZSwgc2V0VmFyaWFudEZyb21VcmxSZXNvbHZlcl0pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgcGFnZVVybCxcbiAgICAgIHZhcmlhbnRJbmZvLFxuICAgICAgdXNlckV2ZW50LFxuICAgIH0pLFxuICAgIFtwYWdlVXJsLCB1c2VyRXZlbnQsIHZhcmlhbnRJbmZvXSxcbiAgKTtcblxuICByZXR1cm4gPFBhZ2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvUGFnZUNvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVBhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFBhZ2VDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VQYWdlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBQYWdlUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFrQkEsTUFBTSx1Q0FBcUQsT0FBVTtBQUVyRSxNQUFhQSxnQkFBbUQsRUFBRSxlQUFlO0NBQy9FLE1BQU0sQ0FBQyxTQUFTLGtDQUEyQyxPQUFVO0NBQ3JFLE1BQU0sQ0FBQyxhQUFhLHNDQUF3RCxPQUFVO0NBQ3RGLE1BQU0sQ0FBQyxxQkFBcUIsNkNBQWtDQyxnQ0FBZ0I7Q0FDOUUsTUFBTSxDQUFDLFdBQVcsb0NBQWdELE9BQVU7QUFFNUUsNEJBQWdCO0FBRWQsYUFBVyxPQUFPLFNBQVMsS0FBSztJQUMvQixFQUFFLENBQUM7Q0FFTixNQUFNLG9EQUNILEtBQWEsYUFBa0M7RUFDOUMsTUFBTSxpQkFBaUJDLG9EQUFvQyxLQUFLLFNBQVM7RUFDekUsTUFBTSxlQUFlLFNBQVMsY0FBYztBQUM1QyxpQkFBZSxlQUFlO0FBQzlCLGVBQWEsYUFBYTtJQUU1QixDQUFDLGVBQWUsQ0FDakI7QUFFRCw0QkFBZ0I7RUFDZCxNQUFNLGlCQUFpQixZQUFZO0FBQ2pDLE9BQUk7QUFDRixRQUFJLENBQUMsUUFDSDtJQUVGLE1BQU0sY0FBYyxRQUFRLGFBQWEsQ0FBQyxNQUFNO0FBSWhELDhCQUEwQixhQUZ4QixvQkFBb0IsZ0JBQ2xCLE1BQU1DLDZCQUFrQixXQUFXLFlBQVksQ0FDSDtZQUN6QyxHQUFHO0FBQ1YsMkJBQU8sU0FBUyw4QkFBOEIsR0FBRyxFQUFFLFNBQVMsQ0FBQzs7O0FBR2pFLGtCQUFnQjtJQUNmO0VBQUM7RUFBUztFQUFxQjtFQUF3QjtFQUEwQixDQUFDO0NBRXJGLE1BQU0sa0NBQ0c7RUFDTDtFQUNBO0VBQ0E7RUFDRCxHQUNEO0VBQUM7RUFBUztFQUFXO0VBQVksQ0FDbEM7QUFFRCxRQUFPLDJDQUFDLFlBQVk7RUFBZ0I7RUFBUTtHQUFnQzs7QUFHOUUsTUFBYSxnQkFBZ0I7Q0FDM0IsTUFBTSxnQ0FBcUIsWUFBWTtBQUN2QyxLQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSw2Q0FBNkM7QUFFL0QsUUFBTyJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PageDetails } from "./types.cjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/contexts/pageContext/pageContext.d.ts
|
|
5
|
+
declare const PageProvider: React.FC<{
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}>;
|
|
8
|
+
declare const usePage: () => PageDetails;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { PageProvider, usePage };
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUNvbnRleHQuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3BhZ2VDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUGFnZURldGFpbHMgfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBhZ2VQcm92aWRlcjogUmVhY3QuRkM8e1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59PjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVBhZ2U6ICgpID0+IFBhZ2VEZXRhaWxzO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyxlQUFlO0NBQUM7T0FBVztPQUFNLE1BQUE7Q0FBQTtBQUM1QyxJQUFXLFVBQVUsQ0FBQyxXQUFDLFlBQUEifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PageDetails } from "./types.js";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/contexts/pageContext/pageContext.d.ts
|
|
5
|
+
declare const PageProvider: React.FC<{
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}>;
|
|
8
|
+
declare const usePage: () => PageDetails;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { PageProvider, usePage };
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUNvbnRleHQuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvcGFnZUNvbnRleHQvcGFnZUNvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBQYWdlRGV0YWlscyB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgUGFnZVByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn0+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlUGFnZTogKCkgPT4gUGFnZURldGFpbHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFXLGVBQWU7Q0FBQztPQUFXO09BQU0sTUFBQTtDQUFBO0FBQzVDLElBQVcsVUFBVSxDQUFDLFdBQUMsWUFBQSJ9
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import logger_default from "../../application/logging/logger.js";
|
|
2
|
+
import { urlResolverAtom } from "../../atoms/app/variant.js";
|
|
3
|
+
import commerce_api_default from "../../application/commerce-api.js";
|
|
4
|
+
import { mapUrlResolverResponseToVariantInfo } from "./mapping.js";
|
|
5
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
|
|
6
|
+
import { useAtom } from "jotai";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
|
|
9
|
+
//#region src/contexts/pageContext/pageContext.tsx
|
|
10
|
+
const PageContext = createContext(void 0);
|
|
11
|
+
const PageProvider = ({ children }) => {
|
|
12
|
+
const [pageUrl, setPageUrl] = useState(void 0);
|
|
13
|
+
const [variantInfo, setVariantInfo] = useState(void 0);
|
|
14
|
+
const [urlResolverResponse, setUrlResolverResponse] = useAtom(urlResolverAtom);
|
|
15
|
+
const [userEvent, setUserEvent] = useState(void 0);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
setPageUrl(window.location.href);
|
|
18
|
+
}, []);
|
|
19
|
+
const setVariantFromUrlResolver = useCallback((url, response) => {
|
|
20
|
+
const newVariantInfo = mapUrlResolverResponseToVariantInfo(url, response);
|
|
21
|
+
const newUserEvent = response.user_event ?? void 0;
|
|
22
|
+
setVariantInfo(newVariantInfo);
|
|
23
|
+
setUserEvent(newUserEvent);
|
|
24
|
+
}, [setVariantInfo]);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
const resolvePageUrl = async () => {
|
|
27
|
+
try {
|
|
28
|
+
if (!pageUrl) return;
|
|
29
|
+
const cleansedUrl = pageUrl.toLowerCase().trim();
|
|
30
|
+
setVariantFromUrlResolver(cleansedUrl, urlResolverResponse[cleansedUrl] ?? await commerce_api_default.resolveUrl(cleansedUrl));
|
|
31
|
+
} catch (e) {
|
|
32
|
+
logger_default.logError("Failed to resolve page URL", e, { pageUrl });
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
resolvePageUrl();
|
|
36
|
+
}, [
|
|
37
|
+
pageUrl,
|
|
38
|
+
urlResolverResponse,
|
|
39
|
+
setUrlResolverResponse,
|
|
40
|
+
setVariantFromUrlResolver
|
|
41
|
+
]);
|
|
42
|
+
const value = useMemo(() => ({
|
|
43
|
+
pageUrl,
|
|
44
|
+
variantInfo,
|
|
45
|
+
userEvent
|
|
46
|
+
}), [
|
|
47
|
+
pageUrl,
|
|
48
|
+
userEvent,
|
|
49
|
+
variantInfo
|
|
50
|
+
]);
|
|
51
|
+
return /* @__PURE__ */ jsx(PageContext.Provider, {
|
|
52
|
+
value,
|
|
53
|
+
children
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const usePage = () => {
|
|
57
|
+
const context = useContext(PageContext);
|
|
58
|
+
if (!context) throw new Error("usePage must be used within a PageProvider");
|
|
59
|
+
return context;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
//#endregion
|
|
63
|
+
export { PageProvider, usePage };
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUNvbnRleHQuanMiLCJuYW1lcyI6WyJQYWdlUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9PiIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3BhZ2VDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSZWFjdE5vZGUsXG4gIGNyZWF0ZUNvbnRleHQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgVXJsUmVzb2x2ZXJSZXNwb25zZSwgdXJsUmVzb2x2ZXJBdG9tIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbmltcG9ydCB7IHVzZUF0b20gfSBmcm9tICdqb3RhaSc7XG5cbmltcG9ydCBDb21tZXJjZUFwaUNsaWVudCBmcm9tICdzcmMvYXBwbGljYXRpb24vY29tbWVyY2UtYXBpJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IG1hcFVybFJlc29sdmVyUmVzcG9uc2VUb1ZhcmlhbnRJbmZvIH0gZnJvbSAnLi9tYXBwaW5nJztcbmltcG9ydCB7IFBhZ2VEZXRhaWxzLCBQYWdlVmFyaWFudEluZm8gfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgUGFnZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PFBhZ2VEZXRhaWxzIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgUGFnZVByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IFtwYWdlVXJsLCBzZXRQYWdlVXJsXSA9IHVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgW3ZhcmlhbnRJbmZvLCBzZXRWYXJpYW50SW5mb10gPSB1c2VTdGF0ZTxQYWdlVmFyaWFudEluZm8gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IFt1cmxSZXNvbHZlclJlc3BvbnNlLCBzZXRVcmxSZXNvbHZlclJlc3BvbnNlXSA9IHVzZUF0b20odXJsUmVzb2x2ZXJBdG9tKTtcbiAgY29uc3QgW3VzZXJFdmVudCwgc2V0VXNlckV2ZW50XSA9IHVzZVN0YXRlPFVzZXJFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciBTUEEncyBhbmQgb3RoZXIgY2hhbmdlcyB0byB0aGUgVVJMIHRvIGVuc3VyZSB0aGF0IHRoZSBwYWdlVXJsIGlzIHNldCBjb3JyZWN0bHlcbiAgICBzZXRQYWdlVXJsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHNldFZhcmlhbnRGcm9tVXJsUmVzb2x2ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAodXJsOiBzdHJpbmcsIHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCBuZXdWYXJpYW50SW5mbyA9IG1hcFVybFJlc29sdmVyUmVzcG9uc2VUb1ZhcmlhbnRJbmZvKHVybCwgcmVzcG9uc2UpO1xuICAgICAgY29uc3QgbmV3VXNlckV2ZW50ID0gcmVzcG9uc2UudXNlcl9ldmVudCA/PyB1bmRlZmluZWQ7XG4gICAgICBzZXRWYXJpYW50SW5mbyhuZXdWYXJpYW50SW5mbyk7XG4gICAgICBzZXRVc2VyRXZlbnQobmV3VXNlckV2ZW50KTtcbiAgICB9LFxuICAgIFtzZXRWYXJpYW50SW5mb10sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCByZXNvbHZlUGFnZVVybCA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghcGFnZVVybCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbGVhbnNlZFVybCA9IHBhZ2VVcmwudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgICAgICB1cmxSZXNvbHZlclJlc3BvbnNlW2NsZWFuc2VkVXJsXSA/P1xuICAgICAgICAgICgoYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQucmVzb2x2ZVVybChjbGVhbnNlZFVybCkpIGFzIFVybFJlc29sdmVyUmVzcG9uc2UpO1xuICAgICAgICBzZXRWYXJpYW50RnJvbVVybFJlc29sdmVyKGNsZWFuc2VkVXJsLCByZXNwb25zZSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIExvZ2dlci5sb2dFcnJvcignRmFpbGVkIHRvIHJlc29sdmUgcGFnZSBVUkwnLCBlLCB7IHBhZ2VVcmwgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICByZXNvbHZlUGFnZVVybCgpO1xuICB9LCBbcGFnZVVybCwgdXJsUmVzb2x2ZXJSZXNwb25zZSwgc2V0VXJsUmVzb2x2ZXJSZXNwb25zZSwgc2V0VmFyaWFudEZyb21VcmxSZXNvbHZlcl0pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgcGFnZVVybCxcbiAgICAgIHZhcmlhbnRJbmZvLFxuICAgICAgdXNlckV2ZW50LFxuICAgIH0pLFxuICAgIFtwYWdlVXJsLCB1c2VyRXZlbnQsIHZhcmlhbnRJbmZvXSxcbiAgKTtcblxuICByZXR1cm4gPFBhZ2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvUGFnZUNvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVBhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFBhZ2VDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VQYWdlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBQYWdlUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWtCQSxNQUFNLGNBQWMsY0FBdUMsT0FBVTtBQUVyRSxNQUFhQSxnQkFBbUQsRUFBRSxlQUFlO0NBQy9FLE1BQU0sQ0FBQyxTQUFTLGNBQWMsU0FBNkIsT0FBVTtDQUNyRSxNQUFNLENBQUMsYUFBYSxrQkFBa0IsU0FBc0MsT0FBVTtDQUN0RixNQUFNLENBQUMscUJBQXFCLDBCQUEwQixRQUFRLGdCQUFnQjtDQUM5RSxNQUFNLENBQUMsV0FBVyxnQkFBZ0IsU0FBZ0MsT0FBVTtBQUU1RSxpQkFBZ0I7QUFFZCxhQUFXLE9BQU8sU0FBUyxLQUFLO0lBQy9CLEVBQUUsQ0FBQztDQUVOLE1BQU0sNEJBQTRCLGFBQy9CLEtBQWEsYUFBa0M7RUFDOUMsTUFBTSxpQkFBaUIsb0NBQW9DLEtBQUssU0FBUztFQUN6RSxNQUFNLGVBQWUsU0FBUyxjQUFjO0FBQzVDLGlCQUFlLGVBQWU7QUFDOUIsZUFBYSxhQUFhO0lBRTVCLENBQUMsZUFBZSxDQUNqQjtBQUVELGlCQUFnQjtFQUNkLE1BQU0saUJBQWlCLFlBQVk7QUFDakMsT0FBSTtBQUNGLFFBQUksQ0FBQyxRQUNIO0lBRUYsTUFBTSxjQUFjLFFBQVEsYUFBYSxDQUFDLE1BQU07QUFJaEQsOEJBQTBCLGFBRnhCLG9CQUFvQixnQkFDbEIsTUFBTUMscUJBQWtCLFdBQVcsWUFBWSxDQUNIO1lBQ3pDLEdBQUc7QUFDVixtQkFBTyxTQUFTLDhCQUE4QixHQUFHLEVBQUUsU0FBUyxDQUFDOzs7QUFHakUsa0JBQWdCO0lBQ2Y7RUFBQztFQUFTO0VBQXFCO0VBQXdCO0VBQTBCLENBQUM7Q0FFckYsTUFBTSxRQUFRLGVBQ0w7RUFDTDtFQUNBO0VBQ0E7RUFDRCxHQUNEO0VBQUM7RUFBUztFQUFXO0VBQVksQ0FDbEM7QUFFRCxRQUFPLG9CQUFDLFlBQVk7RUFBZ0I7RUFBUTtHQUFnQzs7QUFHOUUsTUFBYSxnQkFBZ0I7Q0FDM0IsTUFBTSxVQUFVLFdBQVcsWUFBWTtBQUN2QyxLQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSw2Q0FBNkM7QUFFL0QsUUFBTyJ9
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { VariantTypeEnum } from "../../application/models/variantInfo/variantInfo.cjs";
|
|
2
|
+
import { UserEvent } from "@spiffy-ai/commerce-api-client";
|
|
3
|
+
|
|
4
|
+
//#region src/contexts/pageContext/types.d.ts
|
|
5
|
+
type PDPPageVariantInfo = {
|
|
6
|
+
variantType: VariantTypeEnum.Pdp;
|
|
7
|
+
productId: string;
|
|
8
|
+
url: string;
|
|
9
|
+
};
|
|
10
|
+
type PLPPageVariantInfo = {
|
|
11
|
+
variantType: VariantTypeEnum.Plp;
|
|
12
|
+
plpId: string;
|
|
13
|
+
url: string;
|
|
14
|
+
};
|
|
15
|
+
type VisitPageVariantInfo = {
|
|
16
|
+
variantType: VariantTypeEnum.PageVisit;
|
|
17
|
+
url: string;
|
|
18
|
+
};
|
|
19
|
+
type PageVariantInfo = PDPPageVariantInfo | PLPPageVariantInfo | VisitPageVariantInfo;
|
|
20
|
+
interface PageDetails {
|
|
21
|
+
pageUrl: string | undefined;
|
|
22
|
+
variantInfo: PageVariantInfo | undefined;
|
|
23
|
+
userEvent: UserEvent | undefined;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { PDPPageVariantInfo, PLPPageVariantInfo, PageDetails, PageVariantInfo, VisitPageVariantInfo };
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3R5cGVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IFZhcmlhbnRUeXBlRW51bSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IHR5cGUgUERQUGFnZVZhcmlhbnRJbmZvID0ge1xuICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uUGRwO1xuICAgIHByb2R1Y3RJZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFBMUFBhZ2VWYXJpYW50SW5mbyA9IHtcbiAgICB2YXJpYW50VHlwZTogVmFyaWFudFR5cGVFbnVtLlBscDtcbiAgICBwbHBJZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFZpc2l0UGFnZVZhcmlhbnRJbmZvID0ge1xuICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0O1xuICAgIHVybDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFBhZ2VWYXJpYW50SW5mbyA9IFBEUFBhZ2VWYXJpYW50SW5mbyB8IFBMUFBhZ2VWYXJpYW50SW5mbyB8IFZpc2l0UGFnZVZhcmlhbnRJbmZvO1xuZXhwb3J0IGludGVyZmFjZSBQYWdlRGV0YWlscyB7XG4gICAgcGFnZVVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHZhcmlhbnRJbmZvOiBQYWdlVmFyaWFudEluZm8gfCB1bmRlZmluZWQ7XG4gICAgdXNlckV2ZW50OiBVc2VyRXZlbnQgfCB1bmRlZmluZWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFXLHFCQUFxQixDQUFDLFdBQUEsZ0JBQUEsSUFBQTtBQUNqQyxJQUFXLHFCQUFxQixDQUFDLFdBQUcsZ0JBQUEsSUFBQTtBQUNwQyxJQUFXLHVCQUFVLENBQUEsV0FBQSxnQkFBQSxVQUFBO0FBQ3JCLElBQVcsa0JBQUk7Q0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ2YsSUFBQyxjQUFBO0NBQUE7T0FBQTtPQUFBO0NBQUEifQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { VariantTypeEnum } from "../../application/models/variantInfo/variantInfo.js";
|
|
2
|
+
import { UserEvent } from "@spiffy-ai/commerce-api-client";
|
|
3
|
+
|
|
4
|
+
//#region src/contexts/pageContext/types.d.ts
|
|
5
|
+
type PDPPageVariantInfo = {
|
|
6
|
+
variantType: VariantTypeEnum.Pdp;
|
|
7
|
+
productId: string;
|
|
8
|
+
url: string;
|
|
9
|
+
};
|
|
10
|
+
type PLPPageVariantInfo = {
|
|
11
|
+
variantType: VariantTypeEnum.Plp;
|
|
12
|
+
plpId: string;
|
|
13
|
+
url: string;
|
|
14
|
+
};
|
|
15
|
+
type VisitPageVariantInfo = {
|
|
16
|
+
variantType: VariantTypeEnum.PageVisit;
|
|
17
|
+
url: string;
|
|
18
|
+
};
|
|
19
|
+
type PageVariantInfo = PDPPageVariantInfo | PLPPageVariantInfo | VisitPageVariantInfo;
|
|
20
|
+
interface PageDetails {
|
|
21
|
+
pageUrl: string | undefined;
|
|
22
|
+
variantInfo: PageVariantInfo | undefined;
|
|
23
|
+
userEvent: UserEvent | undefined;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { PDPPageVariantInfo, PLPPageVariantInfo, PageDetails, PageVariantInfo, VisitPageVariantInfo };
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvcGFnZUNvbnRleHQvdHlwZXMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgVmFyaWFudFR5cGVFbnVtIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5leHBvcnQgdHlwZSBQRFBQYWdlVmFyaWFudEluZm8gPSB7XG4gICAgdmFyaWFudFR5cGU6IFZhcmlhbnRUeXBlRW51bS5QZHA7XG4gICAgcHJvZHVjdElkOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgUExQUGFnZVZhcmlhbnRJbmZvID0ge1xuICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uUGxwO1xuICAgIHBscElkOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgVmlzaXRQYWdlVmFyaWFudEluZm8gPSB7XG4gICAgdmFyaWFudFR5cGU6IFZhcmlhbnRUeXBlRW51bS5QYWdlVmlzaXQ7XG4gICAgdXJsOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgUGFnZVZhcmlhbnRJbmZvID0gUERQUGFnZVZhcmlhbnRJbmZvIHwgUExQUGFnZVZhcmlhbnRJbmZvIHwgVmlzaXRQYWdlVmFyaWFudEluZm87XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VEZXRhaWxzIHtcbiAgICBwYWdlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdmFyaWFudEluZm86IFBhZ2VWYXJpYW50SW5mbyB8IHVuZGVmaW5lZDtcbiAgICB1c2VyRXZlbnQ6IFVzZXJFdmVudCB8IHVuZGVmaW5lZDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQVcscUJBQXFCLENBQUMsV0FBQSxnQkFBQSxJQUFBO0FBQ2pDLElBQVcscUJBQXFCLENBQUMsV0FBRyxnQkFBQSxJQUFBO0FBQ3BDLElBQVcsdUJBQVUsQ0FBQSxXQUFBLGdCQUFBLFVBQUE7QUFDckIsSUFBVyxrQkFBSTtDQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDZixJQUFDLGNBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_messageQueue = require('../../atoms/chat/messageQueue.cjs');
|
|
3
|
+
let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
let uuid = require("uuid");
|
|
6
|
+
let jotai = require("jotai");
|
|
7
|
+
|
|
8
|
+
//#region src/contexts/salesAgentContext/chatAPI.ts
|
|
9
|
+
const useSalesAgentChatAPI = () => {
|
|
10
|
+
const queueUserEvent = (0, jotai.useSetAtom)(require_messageQueue.queueUserEventAtom);
|
|
11
|
+
return {
|
|
12
|
+
logPageVisit: (0, react.useCallback)(({ pageVisitCategory }) => {
|
|
13
|
+
queueUserEvent({
|
|
14
|
+
eventId: (0, uuid.v4)(),
|
|
15
|
+
category: __spiffy_ai_commerce_api_client.UserEventCategory.PageVisit,
|
|
16
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
17
|
+
attributes: {
|
|
18
|
+
url: window.location.href,
|
|
19
|
+
pageVisitCategory
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}, [queueUserEvent]),
|
|
23
|
+
onSuggestionClicked: (0, react.useCallback)((suggestion) => {
|
|
24
|
+
queueUserEvent({
|
|
25
|
+
eventId: (0, uuid.v4)(),
|
|
26
|
+
category: __spiffy_ai_commerce_api_client.UserEventCategory.SuggestionClicked,
|
|
27
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
28
|
+
attributes: { suggestionId: suggestion.id }
|
|
29
|
+
});
|
|
30
|
+
}, [queueUserEvent]),
|
|
31
|
+
onTypedMessageSubmitted: (0, react.useCallback)(({ query }) => {
|
|
32
|
+
queueUserEvent({
|
|
33
|
+
eventId: (0, uuid.v4)(),
|
|
34
|
+
category: __spiffy_ai_commerce_api_client.UserEventCategory.QueryTyped,
|
|
35
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
36
|
+
attributes: { query }
|
|
37
|
+
});
|
|
38
|
+
}, [queueUserEvent]),
|
|
39
|
+
onFormResponseSubmitted: (0, react.useCallback)(() => {}, [])
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
exports.useSalesAgentChatAPI = useSalesAgentChatAPI;
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdEFQSS5janMiLCJuYW1lcyI6WyJxdWV1ZVVzZXJFdmVudEF0b20iLCJVc2VyRXZlbnRDYXRlZ29yeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9zYWxlc0FnZW50Q29udGV4dC9jaGF0QVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgY29tcG9uZW50IHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgYmFja2VuZCBBUEkgdG8gZ2V0IHRoZSByZXNwb25zZXMgZnJvbSB0aGUgc2FsZXMgYWdlbnQuXG5cbmltcG9ydCB7IFBhZ2VWaXNpdENhdGVnb3J5LCBVc2VyRXZlbnRDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBTdWdnZXN0aW9uLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IHVzZVNldEF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IHF1ZXVlVXNlckV2ZW50QXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudENoYXRBUEkge1xuICBsb2dQYWdlVmlzaXQ6ICh7IHBhZ2VWaXNpdENhdGVnb3J5IH06IHsgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5IH0pID0+IHZvaWQ7XG4gIG9uU3VnZ2VzdGlvbkNsaWNrZWQ6IChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uKSA9PiB2b2lkO1xuICBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZDogKHsgcXVlcnkgfTogeyBxdWVyeTogc3RyaW5nIH0pID0+IHZvaWQ7XG4gIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkOiAoZm9ybVJlc3BvbnNlOiBhbnkpID0+IHZvaWQ7IC8vIFRPRE86IEZpZ3VyZSBvdXQgdGhlIHJpZ2h0IHR5cGVcbn1cblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnRDaGF0QVBJID0gKCkgPT4ge1xuICAvLyBUT0RPOiBFYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRyaWdnZXIgYm90aCB0aGUgbmVjZXNzYXJ5IGFtcGxpdHVkZSBldmVudHMgYW5kIGluaXRpYXRlIHRoZVxuICAvLyBuZWNlc3NhcnkgYWN0aW9ucyB0byB0cmlnZ2VyIHRoZSBiYWNrZW5kIEFQSVxuICBjb25zdCBxdWV1ZVVzZXJFdmVudCA9IHVzZVNldEF0b20ocXVldWVVc2VyRXZlbnRBdG9tKTtcblxuICBjb25zdCBsb2dQYWdlVmlzaXQgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBwYWdlVmlzaXRDYXRlZ29yeSB9OiB7IHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeSB9KSA9PiB7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkOiB1dWlkKCksXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QYWdlVmlzaXQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnRdLFxuICApO1xuICBjb25zdCBvblN1Z2dlc3Rpb25DbGlja2VkID0gdXNlQ2FsbGJhY2soXG4gICAgKHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50OiBVc2VyRXZlbnQgPSB7XG4gICAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHN1Z2dlc3Rpb25JZDogc3VnZ2VzdGlvbi5pZCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBxdWV1ZVVzZXJFdmVudChldmVudCk7XG4gICAgfSxcbiAgICBbcXVldWVVc2VyRXZlbnRdLFxuICApO1xuICBjb25zdCBvblR5cGVkTWVzc2FnZVN1Ym1pdHRlZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHF1ZXJ5IH06IHsgcXVlcnk6IHN0cmluZyB9KSA9PiB7XG4gICAgICBjb25zdCBldmVudDogVXNlckV2ZW50ID0ge1xuICAgICAgICBldmVudElkOiB1dWlkKCksXG4gICAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkLFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHF1ZXVlVXNlckV2ZW50KGV2ZW50KTtcbiAgICB9LFxuICAgIFtxdWV1ZVVzZXJFdmVudF0sXG4gICk7XG4gIGNvbnN0IG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGUgZm9ybSByZXNwb25zZSBzdWJtaXR0ZWRcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWdCQSxNQUFhLDZCQUE2QjtDQUd4QyxNQUFNLHVDQUE0QkEsd0NBQW1CO0FBaURyRCxRQUFPO0VBQ0wsc0NBL0NDLEVBQUUsd0JBQWtFO0FBVW5FLGtCQVR5QjtJQUN2Qix1QkFBZTtJQUNmLFVBQVVDLGtEQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVk7S0FDVixLQUFLLE9BQU8sU0FBUztLQUNyQjtLQUNEO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxlQUFlLENBQ2pCO0VBbUNDLDZDQWpDQyxlQUEyQjtBQVMxQixrQkFSeUI7SUFDdkIsdUJBQWU7SUFDZixVQUFVQSxrREFBa0I7SUFDNUIsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtJQUNuQyxZQUFZLEVBQ1YsY0FBYyxXQUFXLElBQzFCO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxlQUFlLENBQ2pCO0VBc0JDLGlEQXBCQyxFQUFFLFlBQStCO0FBU2hDLGtCQVJ5QjtJQUN2Qix1QkFBZTtJQUNmLFVBQVVBLGtEQUFrQjtJQUM1Qiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0lBQ25DLFlBQVksRUFDVixPQUNEO0lBQ0YsQ0FDb0I7S0FFdkIsQ0FBQyxlQUFlLENBQ2pCO0VBU0Msc0RBUmdELElBRS9DLEVBQUUsQ0FBQztFQU9MIn0=
|