@r2u/javascript-ar-sdk 6.22.0 → 6.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/init.bundle.js +1 -1
- package/dist/public/locales/en/translation.json +36 -0
- package/dist/sku.bundle.js +1 -1
- package/dist/src/assets/icons.js +18 -0
- package/dist/src/assets/icons.js.map +1 -0
- package/dist/src/components/Modal/Canvas/index.js +11 -0
- package/dist/src/components/Modal/Canvas/index.js.map +1 -0
- package/dist/src/components/Modal/Canvas/styles.js +34 -0
- package/dist/src/components/Modal/Canvas/styles.js.map +1 -0
- package/dist/src/components/Modal/Context.js +27 -0
- package/dist/src/components/Modal/Context.js.map +1 -0
- package/dist/src/components/Modal/Feedback/Confirm.js +16 -0
- package/dist/src/components/Modal/Feedback/Confirm.js.map +1 -0
- package/dist/src/components/Modal/Feedback/Main.js +16 -0
- package/dist/src/components/Modal/Feedback/Main.js.map +1 -0
- package/dist/src/components/Modal/Feedback/index.js +31 -0
- package/dist/src/components/Modal/Feedback/index.js.map +1 -0
- package/dist/src/components/Modal/Feedback/styles.js +100 -0
- package/dist/src/components/Modal/Feedback/styles.js.map +1 -0
- package/dist/src/components/Modal/Instructions/index.js +50 -0
- package/dist/src/components/Modal/Instructions/index.js.map +1 -0
- package/dist/src/components/Modal/Instructions/styles.js +137 -0
- package/dist/src/components/Modal/Instructions/styles.js.map +1 -0
- package/dist/src/components/Modal/InstructionsAmericanas/index.js +50 -0
- package/dist/src/components/Modal/InstructionsAmericanas/index.js.map +1 -0
- package/dist/src/components/Modal/InstructionsAmericanas/styles.js +116 -0
- package/dist/src/components/Modal/InstructionsAmericanas/styles.js.map +1 -0
- package/dist/src/components/Modal/InstructionsMolduraMinuto/index.js +103 -0
- package/dist/src/components/Modal/InstructionsMolduraMinuto/index.js.map +1 -0
- package/dist/src/components/Modal/InstructionsMolduraMinuto/styles.js +77 -0
- package/dist/src/components/Modal/InstructionsMolduraMinuto/styles.js.map +1 -0
- package/dist/src/components/Modal/InstructionsYDigital/index.js +50 -0
- package/dist/src/components/Modal/InstructionsYDigital/index.js.map +1 -0
- package/dist/src/components/Modal/InstructionsYDigital/styles.js +137 -0
- package/dist/src/components/Modal/InstructionsYDigital/styles.js.map +1 -0
- package/dist/src/components/Modal/InstructionsYDigitalVideo/index.js +44 -0
- package/dist/src/components/Modal/InstructionsYDigitalVideo/index.js.map +1 -0
- package/dist/src/components/Modal/InstructionsYDigitalVideo/styles.js +137 -0
- package/dist/src/components/Modal/InstructionsYDigitalVideo/styles.js.map +1 -0
- package/dist/src/components/Modal/Social/index.js +20 -0
- package/dist/src/components/Modal/Social/index.js.map +1 -0
- package/dist/src/components/Modal/Social/styles.js +85 -0
- package/dist/src/components/Modal/Social/styles.js.map +1 -0
- package/dist/src/components/Modal/Viewer/index.js +26 -0
- package/dist/src/components/Modal/Viewer/index.js.map +1 -0
- package/dist/src/components/Modal/Viewer/styles.js +56 -0
- package/dist/src/components/Modal/Viewer/styles.js.map +1 -0
- package/dist/src/components/Modal/ViewerFull/index.js +15 -0
- package/dist/src/components/Modal/ViewerFull/index.js.map +1 -0
- package/dist/src/components/Modal/ViewerFull/styles.js +12 -0
- package/dist/src/components/Modal/ViewerFull/styles.js.map +1 -0
- package/dist/src/components/R2UModelViewer/ProgressBar/index.js +9 -0
- package/dist/src/components/R2UModelViewer/ProgressBar/index.js.map +1 -0
- package/dist/src/components/R2UModelViewer/ProgressBar/styles.js +54 -0
- package/dist/src/components/R2UModelViewer/ProgressBar/styles.js.map +1 -0
- package/dist/src/components/R2UModelViewer/ProgressBar/types.js +1 -0
- package/dist/src/components/R2UModelViewer/ProgressBar/types.js.map +1 -0
- package/dist/src/components/R2UModelViewer/index.d.ts +1 -1
- package/dist/src/components/R2UModelViewer/index.js +63 -0
- package/dist/src/components/R2UModelViewer/index.js.map +1 -0
- package/dist/src/components/R2UModelViewer/styles.js +128 -0
- package/dist/src/components/R2UModelViewer/styles.js.map +1 -0
- package/dist/src/components/WaterMark/index.js +9 -0
- package/dist/src/components/WaterMark/index.js.map +1 -0
- package/dist/src/components/WaterMark/styles.js +26 -0
- package/dist/src/components/WaterMark/styles.js.map +1 -0
- package/dist/src/config/i18n.js +69 -0
- package/dist/src/config/i18n.js.map +1 -0
- package/dist/src/error/ViewerError.js +7 -0
- package/dist/src/error/ViewerError.js.map +1 -0
- package/dist/src/fonts/index.js +9 -0
- package/dist/src/fonts/index.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +25 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/methods/analytics.js +17 -0
- package/dist/src/methods/analytics.js.map +1 -0
- package/dist/src/methods/ar.js +372 -0
- package/dist/src/methods/ar.js.map +1 -0
- package/dist/src/methods/config.js +40 -0
- package/dist/src/methods/config.js.map +1 -0
- package/dist/src/methods/init.js +51 -0
- package/dist/src/methods/init.js.map +1 -0
- package/dist/src/methods/qrCode.js +48 -0
- package/dist/src/methods/qrCode.js.map +1 -0
- package/dist/src/methods/sku.d.ts +1 -1
- package/dist/src/methods/sku.js +47 -0
- package/dist/src/methods/sku.js.map +1 -0
- package/dist/src/methods/types.js +1 -0
- package/dist/src/methods/types.js.map +1 -0
- package/dist/src/methods/viewer.js +310 -0
- package/dist/src/methods/viewer.js.map +1 -0
- package/dist/src/screens/Fallback/index.js +22 -0
- package/dist/src/screens/Fallback/index.js.map +1 -0
- package/dist/src/screens/Feedback/index.d.ts +1 -1
- package/dist/src/screens/Feedback/index.js +21 -0
- package/dist/src/screens/Feedback/index.js.map +1 -0
- package/dist/src/screens/Instructions/index.d.ts +1 -1
- package/dist/src/screens/Instructions/index.js +48 -0
- package/dist/src/screens/Instructions/index.js.map +1 -0
- package/dist/src/screens/Social/index.js +9 -0
- package/dist/src/screens/Social/index.js.map +1 -0
- package/dist/src/services/analytics.js +219 -0
- package/dist/src/services/analytics.js.map +1 -0
- package/dist/src/services/constants.js +65 -0
- package/dist/src/services/constants.js.map +1 -0
- package/dist/src/services/cookies.js +19 -0
- package/dist/src/services/cookies.js.map +1 -0
- package/dist/src/services/customer.js +17 -0
- package/dist/src/services/customer.js.map +1 -0
- package/dist/src/services/customization.js +73 -0
- package/dist/src/services/customization.js.map +1 -0
- package/dist/src/services/product.js +49 -0
- package/dist/src/services/product.js.map +1 -0
- package/dist/src/services/requests.js +55 -0
- package/dist/src/services/requests.js.map +1 -0
- package/dist/src/state.d.ts +1 -1
- package/dist/src/state.js +23 -0
- package/dist/src/state.js.map +1 -0
- package/dist/src/types/Viewer.js +1 -0
- package/dist/src/types/Viewer.js.map +1 -0
- package/dist/src/types/index.js +1 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/utils/sortCustomization.js +10 -0
- package/dist/src/utils/sortCustomization.js.map +1 -0
- package/dist/{vendors.fe050b32669a2a3c34a3.bundle.js → vendors.8c5a3e61e714fd2ec175.bundle.js} +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
+
var t = {};
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
+
t[p[i]] = s[p[i]];
|
|
18
|
+
}
|
|
19
|
+
return t;
|
|
20
|
+
};
|
|
21
|
+
import React from 'react';
|
|
22
|
+
import ReactDOM from 'react-dom';
|
|
23
|
+
import * as arComponents from '@r2u/react-ar-components';
|
|
24
|
+
import state from '../state';
|
|
25
|
+
import { getActionAlreadySeen, getScreenAlreadyOpened, setActionAlreadySeen, setScreenAlreadyOpened, } from '../services/cookies';
|
|
26
|
+
import product from '../services/product';
|
|
27
|
+
import * as analytics from '../services/analytics';
|
|
28
|
+
import { get } from '../services/requests';
|
|
29
|
+
import Fallback from '../screens/Fallback';
|
|
30
|
+
import InstructionsScreen from '../screens/Instructions';
|
|
31
|
+
import FeedbackScreen from '../screens/Feedback';
|
|
32
|
+
import SocialScreen from '../screens/Social';
|
|
33
|
+
import GrowthBook from '@growthbook/growthbook';
|
|
34
|
+
import { IS_ANDROID, IS_IOS } from '../services/constants';
|
|
35
|
+
const isIOSInAppBrowser = () => IS_IOS && /instagram|FBAN|FBAV|LinkedInApp/i.test(navigator.userAgent);
|
|
36
|
+
const HASH_FALLBACK = '#no-ar-fallback';
|
|
37
|
+
const createFallbackScreen = ({ glb, fallbackOptions, }) => {
|
|
38
|
+
const root = document.createElement('div');
|
|
39
|
+
const rootEvent = 'r2u-open-fallback';
|
|
40
|
+
document.body.appendChild(root);
|
|
41
|
+
const render = (props) => {
|
|
42
|
+
ReactDOM.render(React.createElement(Fallback, Object.assign({ openerElement: root, openerEvent: rootEvent, fallbackOptions: fallbackOptions }, props)), root);
|
|
43
|
+
};
|
|
44
|
+
render({ glb });
|
|
45
|
+
return {
|
|
46
|
+
open: () => {
|
|
47
|
+
root.dispatchEvent(new Event(rootEvent));
|
|
48
|
+
},
|
|
49
|
+
render,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
const createInstructionsScreen = (_a) => {
|
|
53
|
+
var { hasWaterMark, onOpen, activateAR, sku } = _a, arProps = __rest(_a, ["hasWaterMark", "onOpen", "activateAR", "sku"]);
|
|
54
|
+
const root = document.createElement('div');
|
|
55
|
+
const rootEvent = 'r2u-open-instructions';
|
|
56
|
+
document.body.appendChild(root);
|
|
57
|
+
const render = (props) => {
|
|
58
|
+
ReactDOM.render(React.createElement(InstructionsScreen, Object.assign({ openerElement: root, openerEvent: rootEvent, onOpen: onOpen, hasWaterMark: hasWaterMark, activateAR: activateAR, customerId: state.customer._id, sku: sku }, props)), root);
|
|
59
|
+
};
|
|
60
|
+
render(arProps);
|
|
61
|
+
return {
|
|
62
|
+
open: () => {
|
|
63
|
+
root.dispatchEvent(new Event(rootEvent));
|
|
64
|
+
},
|
|
65
|
+
render,
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
const createSocialFallbackScreen = () => {
|
|
69
|
+
const root = document.createElement('div');
|
|
70
|
+
const rootEvent = 'r2u-open-social-fallback';
|
|
71
|
+
document.body.appendChild(root);
|
|
72
|
+
ReactDOM.render(React.createElement(SocialScreen, { openerElement: root, openerEvent: rootEvent }), root);
|
|
73
|
+
return {
|
|
74
|
+
open: () => {
|
|
75
|
+
root.dispatchEvent(new Event(rootEvent));
|
|
76
|
+
},
|
|
77
|
+
render: () => undefined,
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
const createFeedbackScreen = (_a) => {
|
|
81
|
+
var { container } = _a, feedbackProps = __rest(_a, ["container"]);
|
|
82
|
+
const openerEvent = 'r2u-feedback-open';
|
|
83
|
+
const root = document.createElement('div');
|
|
84
|
+
root.className = 'feedback';
|
|
85
|
+
container.appendChild(root);
|
|
86
|
+
ReactDOM.render(React.createElement(FeedbackScreen, Object.assign({ openerElement: root, openerEvent: openerEvent }, feedbackProps)), root);
|
|
87
|
+
return {
|
|
88
|
+
open: () => {
|
|
89
|
+
root.dispatchEvent(new Event(openerEvent));
|
|
90
|
+
},
|
|
91
|
+
render: () => undefined,
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
function open({ element, event = 'click' }) {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
element.dispatchEvent(new Event(event));
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
const alertMessage = 'Sentimos muito, mas infelizmente seu dispositivo não é compatível com a visualização em Realidade Aumentada';
|
|
100
|
+
const attachWebXREventListeners = (Events) => {
|
|
101
|
+
analytics.webXR.setSession();
|
|
102
|
+
// WebXR Session Start
|
|
103
|
+
document.addEventListener(Events.r2uWebxrSessionStart, analytics.webXR.onSessionStart, { once: true });
|
|
104
|
+
// WebXR Session End
|
|
105
|
+
document.addEventListener(Events.r2uWebxrSessionEnd, analytics.webXR.onSessionEnd, { once: true });
|
|
106
|
+
// WebXR Compatibility
|
|
107
|
+
document.addEventListener(Events.r2uWebxrCompatible, () => analytics.webXR.setCompatible(true), { once: true });
|
|
108
|
+
document.addEventListener(Events.r2uWebxrNotCompatible, () => analytics.webXR.setCompatible(false), { once: true });
|
|
109
|
+
// Session events
|
|
110
|
+
document.addEventListener(Events.r2uWebxrPlaneMapped, analytics.webXR.setPlaneMapped, { once: true });
|
|
111
|
+
document.addEventListener(Events.r2uWebxrObjectPlaced, analytics.webXR.setObjectPlaced, { once: true });
|
|
112
|
+
document.addEventListener(Events.r2uWebxrShowTranslatingInstructions, () => {
|
|
113
|
+
analytics.webXR.setTranslateInstructions();
|
|
114
|
+
setActionAlreadySeen('translate');
|
|
115
|
+
}, { once: true });
|
|
116
|
+
document.addEventListener(Events.r2uWebxrShowRotatingInstructions, () => {
|
|
117
|
+
analytics.webXR.setRotateInstructions();
|
|
118
|
+
setActionAlreadySeen('rotate');
|
|
119
|
+
}, { once: true });
|
|
120
|
+
document.addEventListener(Events.r2uWebxrTranslating, () => {
|
|
121
|
+
analytics.webXR.setFirstTranslation();
|
|
122
|
+
setActionAlreadySeen('translate');
|
|
123
|
+
}, { once: true });
|
|
124
|
+
document.addEventListener(Events.r2uWebxrRotating, () => {
|
|
125
|
+
analytics.webXR.setFirstRotation();
|
|
126
|
+
setActionAlreadySeen('rotate');
|
|
127
|
+
}, { once: true });
|
|
128
|
+
document.addEventListener(Events.r2uWebxrReset, analytics.webXR.setReset, {
|
|
129
|
+
once: true,
|
|
130
|
+
});
|
|
131
|
+
// Fallback
|
|
132
|
+
document.addEventListener(Events.r2uWebxrFallbackToSceneviewer, analytics.webXR.onSceneViewerFallback, { once: true });
|
|
133
|
+
window.addEventListener('hashchange', () => {
|
|
134
|
+
if (window.location.hash === HASH_FALLBACK)
|
|
135
|
+
analytics.webXR.onFallback();
|
|
136
|
+
}, {
|
|
137
|
+
once: true,
|
|
138
|
+
});
|
|
139
|
+
// Stopper events
|
|
140
|
+
document.addEventListener(Events.r2uWebxrShare, analytics.webXR.onShare);
|
|
141
|
+
document.addEventListener(Events.r2uWebxrExit, analytics.webXR.onExit);
|
|
142
|
+
document.addEventListener(Events.r2uWebxrCallToAction, analytics.webXR.onCallToAction);
|
|
143
|
+
// onLike | onDislike added to modal buttons
|
|
144
|
+
// Count occurrences events
|
|
145
|
+
document.addEventListener(Events.r2uWebxrTranslating, analytics.webXR.onTranslation);
|
|
146
|
+
document.addEventListener(Events.r2uWebxrRotating, analytics.webXR.onRotation);
|
|
147
|
+
};
|
|
148
|
+
function attach({ sku, price, element, callToAction, event = 'click', showInstructions = 'once', showFeedback = true, fallbackOptions = { alertMessage }, }) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
if (!state.init)
|
|
151
|
+
return Promise.reject(new Error('R2U - Not initialized'));
|
|
152
|
+
if (!sku)
|
|
153
|
+
return Promise.reject(new Error('R2U - Missing SKU'));
|
|
154
|
+
const { activateWebXR, activateAR, WebXREvents } = yield arComponents;
|
|
155
|
+
const shouldShowWebXR = () => __awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
const params = new URLSearchParams(window.location.search);
|
|
157
|
+
if (params.has('r2u_ar_mode')) {
|
|
158
|
+
return params.get('r2u_ar_mode') === 'webxr';
|
|
159
|
+
}
|
|
160
|
+
const userFingerprint = yield analytics.getFingerprint();
|
|
161
|
+
state.growthbook = new GrowthBook({
|
|
162
|
+
user: {
|
|
163
|
+
id: userFingerprint,
|
|
164
|
+
},
|
|
165
|
+
overrides: state.customer.experiments.overrides,
|
|
166
|
+
});
|
|
167
|
+
const experimentId = 'webxr-vs-sceneviewer-v3';
|
|
168
|
+
const { value: variationId } = state.growthbook.run({
|
|
169
|
+
key: experimentId,
|
|
170
|
+
variations: ['sceneviewer-v3', 'webxr-v3'],
|
|
171
|
+
});
|
|
172
|
+
analytics.setExperimentId(experimentId);
|
|
173
|
+
analytics.setVariationId(variationId);
|
|
174
|
+
return variationId === 'webxr-v3';
|
|
175
|
+
});
|
|
176
|
+
const { glb, usdz, name, placement, sound, resize, pdpUrl } = yield product(sku);
|
|
177
|
+
const scale = resize ? 'resizable' : 'fixed';
|
|
178
|
+
const [currencyLocale, currencyFormat] = state.customer.language === 'pt' ? ['pt-BR', 'BRL'] : ['en-US', 'USD'];
|
|
179
|
+
const cta = callToAction
|
|
180
|
+
? Object.assign(Object.assign({}, callToAction), { onClick: () => {
|
|
181
|
+
callToAction.onClick();
|
|
182
|
+
document.dispatchEvent(new Event('r2u-webxr-close'));
|
|
183
|
+
analytics.cta.onClick();
|
|
184
|
+
} }) : undefined;
|
|
185
|
+
const arProps = {
|
|
186
|
+
glb,
|
|
187
|
+
usdz,
|
|
188
|
+
price,
|
|
189
|
+
placement,
|
|
190
|
+
scale,
|
|
191
|
+
sound,
|
|
192
|
+
callToAction: cta,
|
|
193
|
+
pdpUrl,
|
|
194
|
+
title: name,
|
|
195
|
+
mode: 'ar_preferred',
|
|
196
|
+
};
|
|
197
|
+
const hasWaterMark = Boolean(state.customer.waterMarkPosition);
|
|
198
|
+
const shouldShowFeedback = () => {
|
|
199
|
+
const hasOpenedFeedback = getScreenAlreadyOpened('feedback');
|
|
200
|
+
const customerShowFeedback = showFeedback && !hasOpenedFeedback;
|
|
201
|
+
return customerShowFeedback;
|
|
202
|
+
};
|
|
203
|
+
const beforeClose = (container) => {
|
|
204
|
+
const { open: openFeedback } = createFeedbackScreen({
|
|
205
|
+
container,
|
|
206
|
+
onLike: () => {
|
|
207
|
+
analytics.arLink.onLike();
|
|
208
|
+
analytics.webXR.onLike();
|
|
209
|
+
},
|
|
210
|
+
onDislike: () => {
|
|
211
|
+
analytics.arLink.onDislike();
|
|
212
|
+
analytics.webXR.onDislike();
|
|
213
|
+
},
|
|
214
|
+
onClose: () => document.dispatchEvent(new Event('r2u-webxr-close')),
|
|
215
|
+
onOpen: () => setScreenAlreadyOpened('feedback'),
|
|
216
|
+
});
|
|
217
|
+
shouldShowFeedback()
|
|
218
|
+
? openFeedback()
|
|
219
|
+
: document.dispatchEvent(new Event('r2u-webxr-close'));
|
|
220
|
+
};
|
|
221
|
+
const shouldShowInstructions = () => {
|
|
222
|
+
switch (showInstructions) {
|
|
223
|
+
case 'always':
|
|
224
|
+
return true;
|
|
225
|
+
case 'never':
|
|
226
|
+
return false;
|
|
227
|
+
default:
|
|
228
|
+
case 'once':
|
|
229
|
+
const hasOpenedInstructions = getScreenAlreadyOpened('instructions');
|
|
230
|
+
return !hasOpenedInstructions;
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
const showWebXRInstructions = () => {
|
|
234
|
+
switch (showInstructions) {
|
|
235
|
+
case 'always':
|
|
236
|
+
return { translate: true, rotate: true };
|
|
237
|
+
case 'never':
|
|
238
|
+
return { translate: false, rotate: false };
|
|
239
|
+
default:
|
|
240
|
+
case 'once':
|
|
241
|
+
const hasSeenTranslate = getActionAlreadySeen('translate');
|
|
242
|
+
const hasSeenRotate = getActionAlreadySeen('rotate');
|
|
243
|
+
return { translate: !hasSeenTranslate, rotate: !hasSeenRotate };
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
const webXRProps = {
|
|
247
|
+
model: {
|
|
248
|
+
name,
|
|
249
|
+
description: price
|
|
250
|
+
? new Intl.NumberFormat(currencyLocale, {
|
|
251
|
+
style: 'currency',
|
|
252
|
+
currency: currencyFormat,
|
|
253
|
+
}).format(Number(price))
|
|
254
|
+
: '',
|
|
255
|
+
glb,
|
|
256
|
+
placement,
|
|
257
|
+
resizable: resize,
|
|
258
|
+
url: pdpUrl,
|
|
259
|
+
showInstructions: showWebXRInstructions(),
|
|
260
|
+
},
|
|
261
|
+
beforeClose,
|
|
262
|
+
callToAction: cta,
|
|
263
|
+
language: state.customer.language,
|
|
264
|
+
};
|
|
265
|
+
analytics.arLink.componentDidMount();
|
|
266
|
+
const { open: openFallback, render: renderFallback } = createFallbackScreen({
|
|
267
|
+
fallbackOptions,
|
|
268
|
+
glb: arProps.glb,
|
|
269
|
+
});
|
|
270
|
+
const { open: openInstructions, render: renderInstructions } = createInstructionsScreen(Object.assign({ hasWaterMark,
|
|
271
|
+
sku,
|
|
272
|
+
activateAR, onOpen: () => setScreenAlreadyOpened('instructions') }, arProps));
|
|
273
|
+
const { open: openFeedback } = createFeedbackScreen({
|
|
274
|
+
container: document.body.appendChild(document.createElement('div')),
|
|
275
|
+
onLike: () => analytics.arLink.onLike(),
|
|
276
|
+
onDislike: () => analytics.arLink.onDislike(),
|
|
277
|
+
onClose: () => undefined,
|
|
278
|
+
onOpen: () => setScreenAlreadyOpened('feedback'),
|
|
279
|
+
});
|
|
280
|
+
const { open: openSocialFallback } = createSocialFallbackScreen();
|
|
281
|
+
const setSku = (sku) => __awaiter(this, void 0, void 0, function* () {
|
|
282
|
+
const newProduct = yield product(sku);
|
|
283
|
+
arProps.glb = newProduct.glb;
|
|
284
|
+
arProps.usdz = newProduct.usdz;
|
|
285
|
+
arProps.placement = newProduct.placement;
|
|
286
|
+
arProps.sound = newProduct.sound;
|
|
287
|
+
arProps.scale = newProduct.resize ? 'resizable' : 'fixed';
|
|
288
|
+
arProps.title = newProduct.name;
|
|
289
|
+
webXRProps.model.glb = newProduct.glb;
|
|
290
|
+
webXRProps.model.name = newProduct.name;
|
|
291
|
+
webXRProps.model.placement = newProduct.placement;
|
|
292
|
+
webXRProps.model.url = newProduct.pdpUrl;
|
|
293
|
+
webXRProps.model.resizable = newProduct.resize;
|
|
294
|
+
renderInstructions(arProps);
|
|
295
|
+
renderFallback(arProps);
|
|
296
|
+
});
|
|
297
|
+
const arSessionListener = () => __awaiter(this, void 0, void 0, function* () {
|
|
298
|
+
if (isIOSInAppBrowser()) {
|
|
299
|
+
openSocialFallback();
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
// If on android, get A/B test data to show webXR or scene-viewer
|
|
303
|
+
// If product placement equals to wall, show AR in scene-viewer
|
|
304
|
+
// Do not await webXR to compute analytics click event
|
|
305
|
+
if (IS_ANDROID && placement !== 'wall' && (yield shouldShowWebXR())) {
|
|
306
|
+
attachWebXREventListeners(WebXREvents);
|
|
307
|
+
activateWebXR(webXRProps);
|
|
308
|
+
}
|
|
309
|
+
// If it falls to scene-viewer, check if should show instructions screen
|
|
310
|
+
else if (shouldShowInstructions())
|
|
311
|
+
openInstructions();
|
|
312
|
+
// If it does not show instructions, open scene-viewer AR experience
|
|
313
|
+
else
|
|
314
|
+
activateAR(arProps);
|
|
315
|
+
yield analytics.arLink.onClick();
|
|
316
|
+
const timeOnEvent = new Date().getTime();
|
|
317
|
+
const sceneViewerEndHandler = () => {
|
|
318
|
+
if (document.hidden)
|
|
319
|
+
return;
|
|
320
|
+
const timeOnClose = new Date().getTime();
|
|
321
|
+
analytics.arLink.onSessionTimeCollect(timeOnClose - timeOnEvent);
|
|
322
|
+
shouldShowFeedback() && openFeedback();
|
|
323
|
+
document.removeEventListener('visibilitychange', sceneViewerEndHandler);
|
|
324
|
+
};
|
|
325
|
+
const webxrEndHandler = () => {
|
|
326
|
+
const timeOnClose = new Date().getTime();
|
|
327
|
+
analytics.arLink.onSessionTimeCollect(timeOnClose - timeOnEvent);
|
|
328
|
+
document.removeEventListener('r2u-webxr-close', webxrEndHandler);
|
|
329
|
+
document.removeEventListener('visibilitychange', sceneViewerEndHandler);
|
|
330
|
+
};
|
|
331
|
+
document.addEventListener('r2u-webxr-close', webxrEndHandler);
|
|
332
|
+
document.addEventListener('visibilitychange', sceneViewerEndHandler);
|
|
333
|
+
});
|
|
334
|
+
element.addEventListener(event, arSessionListener);
|
|
335
|
+
const locationUrl = new URL(window.location.href);
|
|
336
|
+
const autoOpenAR = locationUrl.searchParams.get('r2u_redirect') === 'true';
|
|
337
|
+
const autoOpenARSku = locationUrl.searchParams.get('r2u_sku');
|
|
338
|
+
if (autoOpenAR && !state.hasAutoOpenedAR) {
|
|
339
|
+
state.hasAutoOpenedAR = true;
|
|
340
|
+
if (autoOpenARSku) {
|
|
341
|
+
yield setSku(autoOpenARSku);
|
|
342
|
+
}
|
|
343
|
+
open({ element, event });
|
|
344
|
+
}
|
|
345
|
+
window.addEventListener('hashchange', () => {
|
|
346
|
+
if (window.location.hash === HASH_FALLBACK) {
|
|
347
|
+
analytics.arLink.onFallback();
|
|
348
|
+
element.removeEventListener(event, arSessionListener);
|
|
349
|
+
element.addEventListener(event, openFallback);
|
|
350
|
+
open({ element, event });
|
|
351
|
+
}
|
|
352
|
+
}, { once: true });
|
|
353
|
+
return { setSku };
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
function getLink(sku) {
|
|
357
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
358
|
+
if (!state.init)
|
|
359
|
+
return Promise.reject(new Error('R2U - Not initialized'));
|
|
360
|
+
if (!sku)
|
|
361
|
+
return Promise.reject(new Error('R2U - Missing SKU'));
|
|
362
|
+
const customerId = state.customer._id;
|
|
363
|
+
const link = (yield get(`/sdk-ar/openar-link?customerId=${customerId}&productSku=${sku}`));
|
|
364
|
+
return Promise.resolve(link);
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
export default {
|
|
368
|
+
attach,
|
|
369
|
+
open,
|
|
370
|
+
getLink,
|
|
371
|
+
};
|
|
372
|
+
//# sourceMappingURL=ar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.js","sourceRoot":"","sources":["../../../src/methods/ar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import i18next from 'i18next';
|
|
11
|
+
/**
|
|
12
|
+
**Disclaimer
|
|
13
|
+
* These commentaries are for the custom user translation that currently is not being used because of the 404 console
|
|
14
|
+
* error that the fetch head shows.
|
|
15
|
+
*/
|
|
16
|
+
// import { fileExists, getRoute } from '../services/requests'
|
|
17
|
+
// import state from '../../src/state'
|
|
18
|
+
function changeLanguage(language) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
// const customerNS = state.customer.slug
|
|
21
|
+
// const route = getRoute()
|
|
22
|
+
// const nsFileExists = await fileExists(
|
|
23
|
+
// `${route}/locales/${language}/${customerNS}.json`
|
|
24
|
+
// )
|
|
25
|
+
const nsFileExists = false;
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
if (!nsFileExists)
|
|
28
|
+
i18next.setDefaultNamespace('translation');
|
|
29
|
+
i18next.changeLanguage(language, (err) => {
|
|
30
|
+
if (err)
|
|
31
|
+
reject(new Error('R2U - Change language failed'));
|
|
32
|
+
resolve();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export default {
|
|
38
|
+
changeLanguage,
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/methods/config.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B;;;;GAIG;AAEH,4DAA4D;AAC5D,gCAAgC;AAEhC,SAAe,cAAc,CAAC,QAA4B;;QACxD,yCAAyC;QACzC,2BAA2B;QAC3B,yCAAyC;QACzC,sDAAsD;QACtD,IAAI;QACJ,MAAM,YAAY,GAAG,KAAK,CAAA;QAE1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,YAAY;gBAAE,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAA;YAC7D,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvC,IAAI,GAAG;oBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAA;gBAC1D,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,eAAe;IACb,cAAc;CACf,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import state from '../state';
|
|
11
|
+
import getAnalytics from '../services/analytics';
|
|
12
|
+
import { getCustomer } from '../services/customer';
|
|
13
|
+
import i18n from '../config/i18n';
|
|
14
|
+
export default function init({ customerId, language, analyticsParams = {
|
|
15
|
+
dataLayerIntegration: true,
|
|
16
|
+
sessionDuration: 30,
|
|
17
|
+
}, refreshCache = false, }) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const ObjectIdRegex = /^(?=[a-f\d]{24}$)(\d+[a-f]|[a-f]+\d)/i;
|
|
20
|
+
const UUIDv4Regex = /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
|
|
21
|
+
if (!ObjectIdRegex.test(customerId) && !UUIDv4Regex.test(customerId)) {
|
|
22
|
+
throw new Error(`Invalid customer '${customerId}'`);
|
|
23
|
+
}
|
|
24
|
+
state.init = true;
|
|
25
|
+
state.refreshCache = refreshCache;
|
|
26
|
+
const customer = yield getCustomer(customerId);
|
|
27
|
+
// Uncomment block to run a growthbook experiment
|
|
28
|
+
// Remember to change values to current running experiment
|
|
29
|
+
// const userId = await getUserId()
|
|
30
|
+
// state.growthbook = new GrowthBook({
|
|
31
|
+
// user: {
|
|
32
|
+
// id: userId,
|
|
33
|
+
// },
|
|
34
|
+
// overrides: customer.experiments.overrides,
|
|
35
|
+
// })
|
|
36
|
+
// const experimentId = 'experiment-id'
|
|
37
|
+
// const { value: variationId } = state.growthbook.run({
|
|
38
|
+
// key: experimentId,
|
|
39
|
+
// variations: ['A', 'B', 'C'],
|
|
40
|
+
// })
|
|
41
|
+
const analytics = yield getAnalytics({
|
|
42
|
+
client: customerId,
|
|
43
|
+
dataLayerIntegration: analyticsParams.dataLayerIntegration,
|
|
44
|
+
sessionDurationMinutes: analyticsParams.sessionDuration,
|
|
45
|
+
});
|
|
46
|
+
state.analytics = analytics;
|
|
47
|
+
state.customer = customer;
|
|
48
|
+
yield Promise.all([i18n.init({ language })]);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/methods/init.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,UAAU,CAAA;AAE5B,OAAO,YAAY,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,IAAI,MAAM,gBAAgB,CAAA;AAYjC,MAAM,CAAC,OAAO,UAAgB,IAAI,CAAC,EACjC,UAAU,EACV,QAAQ,EACR,eAAe,GAAG;IAChB,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,EAAE;CACpB,EACD,YAAY,GAAG,KAAK,GACb;;QACP,MAAM,aAAa,GAAG,uCAAuC,CAAA;QAC7D,MAAM,WAAW,GACf,0EAA0E,CAAA;QAC5E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACpE,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,GAAG,CAAC,CAAA;SACpD;QAED,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;QACjB,KAAK,CAAC,YAAY,GAAG,YAAY,CAAA;QAEjC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAA;QAE9C,iDAAiD;QACjD,0DAA0D;QAE1D,mCAAmC;QAEnC,sCAAsC;QACtC,YAAY;QACZ,kBAAkB;QAClB,OAAO;QACP,+CAA+C;QAC/C,KAAK;QAEL,uCAAuC;QACvC,wDAAwD;QACxD,uBAAuB;QACvB,iCAAiC;QACjC,KAAK;QAEL,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC;YACnC,MAAM,EAAE,UAAU;YAClB,oBAAoB,EAAE,eAAe,CAAC,oBAAoB;YAC1D,sBAAsB,EAAE,eAAe,CAAC,eAAe;SAMxD,CAAC,CAAA;QAEF,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;QAC3B,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAEzB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import ReactDOM from 'react-dom';
|
|
12
|
+
import QRCode from 'qrcode.react';
|
|
13
|
+
import state from '../state';
|
|
14
|
+
const renderQRCode = ({ element, sku, showInstructions = 'always', }) => {
|
|
15
|
+
const { language, _id: customerId } = state.customer;
|
|
16
|
+
const baseURL = 'https://viewer.r2u.io';
|
|
17
|
+
const url = new URL(baseURL);
|
|
18
|
+
url.searchParams.set('customerId', customerId);
|
|
19
|
+
url.searchParams.set('sku', sku);
|
|
20
|
+
url.searchParams.set('showInstructions', showInstructions);
|
|
21
|
+
if (language) {
|
|
22
|
+
url.searchParams.set('lng', language);
|
|
23
|
+
}
|
|
24
|
+
ReactDOM.render(React.createElement(QRCode, Object.assign({}, { 'data-url': url }, { value: url.toString(), style: { width: '100%', height: '100%' }, renderAs: "svg" })), element);
|
|
25
|
+
};
|
|
26
|
+
function create({ element, sku, showInstructions, }) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
if (!state.init)
|
|
29
|
+
return Promise.reject(new Error('R2U - Not initialized'));
|
|
30
|
+
renderQRCode({
|
|
31
|
+
element,
|
|
32
|
+
sku,
|
|
33
|
+
showInstructions,
|
|
34
|
+
});
|
|
35
|
+
const setSku = (newSku) => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
renderQRCode({
|
|
37
|
+
element,
|
|
38
|
+
sku: newSku,
|
|
39
|
+
showInstructions,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
return { setSku };
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export default {
|
|
46
|
+
create,
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=qrCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrCode.js","sourceRoot":"","sources":["../../../src/methods/qrCode.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,MAAM,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,MAAM,UAAU,CAAA;AAS5B,MAAM,YAAY,GAAG,CAAC,EACpB,OAAO,EACP,GAAG,EACH,gBAAgB,GAAG,QAAQ,GACrB,EAAQ,EAAE;IAChB,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAA;IAEpD,MAAM,OAAO,GAAG,uBAAuB,CAAA;IACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAE5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;IAE1D,IAAI,QAAQ,EAAE;QACZ,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;KACtC;IAED,QAAQ,CAAC,MAAM,CACb,oBAAC,MAAM,oBACD,EAAE,UAAU,EAAE,GAAG,EAAE,IACvB,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,EACrB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EACxC,QAAQ,EAAC,KAAK,IACd,EACF,OAAO,CACR,CAAA;AACH,CAAC,CAAA;AAED,SAAe,MAAM,CAAC,EACpB,OAAO,EACP,GAAG,EACH,gBAAgB,GACV;;QACN,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAA;QAE1E,YAAY,CAAC;YACX,OAAO;YACP,GAAG;YACH,gBAAgB;SACjB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,CAAO,MAAc,EAAiB,EAAE;YACrD,YAAY,CAAC;gBACX,OAAO;gBACP,GAAG,EAAE,MAAM;gBACX,gBAAgB;aACjB,CAAC,CAAA;QACJ,CAAC,CAAA,CAAA;QAED,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;CAAA;AACD,eAAe;IACb,MAAM;CACP,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import state from '../state';
|
|
11
|
+
import product from '../services/product';
|
|
12
|
+
import * as analytics from '../services/analytics';
|
|
13
|
+
function isActive(sku) {
|
|
14
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
if (!state.init)
|
|
16
|
+
return Promise.reject(new Error('R2U - Not initialized'));
|
|
17
|
+
if (!sku)
|
|
18
|
+
return Promise.reject(new Error('R2U - Missing SKU'));
|
|
19
|
+
analytics.setSku(sku);
|
|
20
|
+
try {
|
|
21
|
+
const { isActive, manufacturerId } = yield product(sku);
|
|
22
|
+
if (manufacturerId)
|
|
23
|
+
analytics.setManufacturerId(manufacturerId);
|
|
24
|
+
analytics.isActive3D(isActive);
|
|
25
|
+
return isActive;
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
// `product` throws error if SKU not found
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function getData(sku) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
if (!state.init)
|
|
36
|
+
return Promise.reject(new Error('R2U - Not initialized'));
|
|
37
|
+
if (!sku)
|
|
38
|
+
return Promise.reject(new Error('R2U - Missing SKU'));
|
|
39
|
+
const productData = yield product(sku);
|
|
40
|
+
return productData;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export default {
|
|
44
|
+
isActive,
|
|
45
|
+
getData,
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=sku.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sku.js","sourceRoot":"","sources":["../../../src/methods/sku.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,UAAU,CAAA;AAE5B,OAAO,OAAoB,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAEhD,SAAe,QAAQ,CAAC,GAAW;;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAA;QAC1E,IAAI,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAE/D,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAErB,IAAI;YACF,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;YAEvD,IAAI,cAAc;gBAAE,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;YAE/D,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAE9B,OAAO,QAAQ,CAAA;SAChB;QAAC,OAAO,GAAG,EAAE;YACZ,0CAA0C;YAC1C,OAAO,KAAK,CAAA;SACb;IACH,CAAC;CAAA;AAED,SAAe,OAAO,CAAC,GAAW;;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAA;QAC1E,IAAI,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAE/D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAEtC,OAAO,WAAW,CAAA;IACpB,CAAC;CAAA;AAED,eAAe;IACb,QAAQ;IACR,OAAO;CACR,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/methods/types.ts"],"names":[],"mappings":""}
|