@bigbinary/neeto-molecules 1.6.3 → 1.6.5
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/ProductEmbed.js +509 -0
- package/dist/ProductEmbed.js.map +1 -0
- package/dist/Settings.js +210 -56
- package/dist/Settings.js.map +1 -1
- package/dist/cjs/ProductEmbed.js +517 -0
- package/dist/cjs/ProductEmbed.js.map +1 -0
- package/dist/cjs/Settings.js +201 -46
- package/dist/cjs/Settings.js.map +1 -1
- package/package.json +3 -4
- package/src/translations/en.json +29 -1
- package/types/ProductEmbed.d.ts +17 -0
- package/types/Settings.d.ts +1 -1
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import { Code as Code$1, Eye, Info, LeftArrow } from '@bigbinary/neeto-icons';
|
|
4
|
+
import { Typography, Label, Input, Tab, Radio, Spinner, Button } from '@bigbinary/neetoui';
|
|
5
|
+
import { mergeDeepLeft, mergeLeft } from 'ramda';
|
|
6
|
+
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import Codeblock from '@bigbinary/neeto-molecules/Codeblock';
|
|
8
|
+
import { t as t$1 } from 'i18next';
|
|
9
|
+
import { isPresent } from '@bigbinary/neeto-cist';
|
|
10
|
+
|
|
11
|
+
function _typeof(o) {
|
|
12
|
+
"@babel/helpers - typeof";
|
|
13
|
+
|
|
14
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
15
|
+
return typeof o;
|
|
16
|
+
} : function (o) {
|
|
17
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
18
|
+
}, _typeof(o);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function _toPrimitive(input, hint) {
|
|
22
|
+
if (_typeof(input) !== "object" || input === null) return input;
|
|
23
|
+
var prim = input[Symbol.toPrimitive];
|
|
24
|
+
if (prim !== undefined) {
|
|
25
|
+
var res = prim.call(input, hint || "default");
|
|
26
|
+
if (_typeof(res) !== "object") return res;
|
|
27
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
28
|
+
}
|
|
29
|
+
return (hint === "string" ? String : Number)(input);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function _toPropertyKey(arg) {
|
|
33
|
+
var key = _toPrimitive(arg, "string");
|
|
34
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function _defineProperty(obj, key, value) {
|
|
38
|
+
key = _toPropertyKey(key);
|
|
39
|
+
if (key in obj) {
|
|
40
|
+
Object.defineProperty(obj, key, {
|
|
41
|
+
value: value,
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true
|
|
45
|
+
});
|
|
46
|
+
} else {
|
|
47
|
+
obj[key] = value;
|
|
48
|
+
}
|
|
49
|
+
return obj;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function _arrayWithHoles(arr) {
|
|
53
|
+
if (Array.isArray(arr)) return arr;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function _iterableToArrayLimit(r, l) {
|
|
57
|
+
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
58
|
+
if (null != t) {
|
|
59
|
+
var e,
|
|
60
|
+
n,
|
|
61
|
+
i,
|
|
62
|
+
u,
|
|
63
|
+
a = [],
|
|
64
|
+
f = !0,
|
|
65
|
+
o = !1;
|
|
66
|
+
try {
|
|
67
|
+
if (i = (t = t.call(r)).next, 0 === l) {
|
|
68
|
+
if (Object(t) !== t) return;
|
|
69
|
+
f = !1;
|
|
70
|
+
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
71
|
+
} catch (r) {
|
|
72
|
+
o = !0, n = r;
|
|
73
|
+
} finally {
|
|
74
|
+
try {
|
|
75
|
+
if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
|
|
76
|
+
} finally {
|
|
77
|
+
if (o) throw n;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return a;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function _arrayLikeToArray(arr, len) {
|
|
85
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
86
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
87
|
+
return arr2;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
91
|
+
if (!o) return;
|
|
92
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
93
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
94
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
95
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
96
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function _nonIterableRest() {
|
|
100
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function _slicedToArray(arr, i) {
|
|
104
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
var Code = function Code(_ref) {
|
|
108
|
+
var code = _ref.code;
|
|
109
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
110
|
+
className: "relative w-full overflow-y-auto",
|
|
111
|
+
"data-cy": "embed-code-block",
|
|
112
|
+
"data-testid": "embed-code-block"
|
|
113
|
+
}, /*#__PURE__*/React.createElement(Codeblock, {
|
|
114
|
+
code: code
|
|
115
|
+
}));
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
var TAB_KEYS = {
|
|
119
|
+
HTML: "html",
|
|
120
|
+
PREVIEW: "preview"
|
|
121
|
+
};
|
|
122
|
+
var TABS = [{
|
|
123
|
+
key: TAB_KEYS.HTML,
|
|
124
|
+
label: t$1("neetoMolecules.productEmbed.tab.html"),
|
|
125
|
+
icon: Code$1
|
|
126
|
+
}, {
|
|
127
|
+
key: TAB_KEYS.PREVIEW,
|
|
128
|
+
label: t$1("neetoMolecules.productEmbed.tab.preview"),
|
|
129
|
+
icon: Eye
|
|
130
|
+
}];
|
|
131
|
+
var DEFAULT_CUSTOMIZATION = {
|
|
132
|
+
inline: {
|
|
133
|
+
width: 100,
|
|
134
|
+
height: 100,
|
|
135
|
+
elementSelector: "inline-embed-container"
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
var EMBED_OPTIONS = {
|
|
139
|
+
INLINE: "inline"
|
|
140
|
+
};
|
|
141
|
+
var SCRIPT_ID = "embed-script";
|
|
142
|
+
|
|
143
|
+
var Inline$1 = function Inline(_ref) {
|
|
144
|
+
var customization = _ref.customization,
|
|
145
|
+
updateCustomization = _ref.updateCustomization;
|
|
146
|
+
var height = customization.height,
|
|
147
|
+
width = customization.width,
|
|
148
|
+
elementSelector = customization.elementSelector;
|
|
149
|
+
var _useTranslation = useTranslation(),
|
|
150
|
+
t = _useTranslation.t;
|
|
151
|
+
var handleInputChange = function handleInputChange(_ref2, attribute) {
|
|
152
|
+
var value = _ref2.target.value;
|
|
153
|
+
return updateCustomization(_defineProperty({}, attribute, value));
|
|
154
|
+
};
|
|
155
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
156
|
+
className: "flex flex-col gap-y-6"
|
|
157
|
+
}, /*#__PURE__*/React.createElement(Typography, {
|
|
158
|
+
"data-cy": "customization-text",
|
|
159
|
+
style: "h4"
|
|
160
|
+
}, t("neetoMolecules.productEmbed.customization.inline.title")), /*#__PURE__*/React.createElement("div", {
|
|
161
|
+
className: "flex flex-col gap-2"
|
|
162
|
+
}, /*#__PURE__*/React.createElement(Label, {
|
|
163
|
+
"data-cy": "window-size-text"
|
|
164
|
+
}, t("neetoMolecules.productEmbed.customization.inline.sizeOfEmbedWindow")), /*#__PURE__*/React.createElement("div", {
|
|
165
|
+
className: "flex justify-between gap-x-2"
|
|
166
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
167
|
+
className: "neeto-molecules-product-embed-size-input",
|
|
168
|
+
"data-cy": "inline-width-input-field",
|
|
169
|
+
"data-testid": "inline-width-input-field",
|
|
170
|
+
max: 100,
|
|
171
|
+
min: 0,
|
|
172
|
+
prefix: "W",
|
|
173
|
+
suffix: "%",
|
|
174
|
+
type: "number",
|
|
175
|
+
value: width,
|
|
176
|
+
onChange: function onChange(e) {
|
|
177
|
+
return handleInputChange(e, "width");
|
|
178
|
+
}
|
|
179
|
+
}), /*#__PURE__*/React.createElement(Input, {
|
|
180
|
+
className: "neeto-molecules-product-embed-size-input",
|
|
181
|
+
"data-cy": "inline-height-input-field",
|
|
182
|
+
"data-testid": "inline-height-input-field",
|
|
183
|
+
max: 100,
|
|
184
|
+
min: 0,
|
|
185
|
+
prefix: "H",
|
|
186
|
+
suffix: "%",
|
|
187
|
+
type: "number",
|
|
188
|
+
value: height,
|
|
189
|
+
onChange: function onChange(e) {
|
|
190
|
+
return handleInputChange(e, "height");
|
|
191
|
+
}
|
|
192
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
193
|
+
className: "flex flex-col gap-2"
|
|
194
|
+
}, /*#__PURE__*/React.createElement(Label, {
|
|
195
|
+
"data-cy": "inline-element-id-input-label"
|
|
196
|
+
}, t("neetoMolecules.productEmbed.customization.inline.elementId")), /*#__PURE__*/React.createElement(Input, {
|
|
197
|
+
"data-cy": "inline-element-id-input-field",
|
|
198
|
+
"data-testid": "inline-element-id-input-field",
|
|
199
|
+
value: elementSelector,
|
|
200
|
+
onChange: function onChange(e) {
|
|
201
|
+
return handleInputChange(e, "elementSelector");
|
|
202
|
+
}
|
|
203
|
+
})));
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
var Customization = function Customization(_ref) {
|
|
207
|
+
var option = _ref.option,
|
|
208
|
+
customization = _ref.customization,
|
|
209
|
+
updateCustomization = _ref.updateCustomization;
|
|
210
|
+
var type = {
|
|
211
|
+
inline: Inline$1
|
|
212
|
+
};
|
|
213
|
+
var Component = type[option];
|
|
214
|
+
return /*#__PURE__*/React.createElement(Component, {
|
|
215
|
+
customization: customization,
|
|
216
|
+
updateCustomization: updateCustomization
|
|
217
|
+
});
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
var Header = function Header(_ref) {
|
|
221
|
+
var tab = _ref.tab,
|
|
222
|
+
setTab = _ref.setTab;
|
|
223
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
224
|
+
className: "flex w-full pt-2"
|
|
225
|
+
}, /*#__PURE__*/React.createElement(Tab, {
|
|
226
|
+
noUnderline: true,
|
|
227
|
+
className: "neeto-molecules-product-embed-tab"
|
|
228
|
+
}, TABS.map(function (_ref2) {
|
|
229
|
+
var key = _ref2.key,
|
|
230
|
+
label = _ref2.label,
|
|
231
|
+
icon = _ref2.icon;
|
|
232
|
+
return /*#__PURE__*/React.createElement(Tab.Item, {
|
|
233
|
+
icon: icon,
|
|
234
|
+
active: tab === key,
|
|
235
|
+
"data-cy": "".concat(key, "-tab"),
|
|
236
|
+
"data-testid": "".concat(key, "-tab"),
|
|
237
|
+
key: key,
|
|
238
|
+
onClick: function onClick() {
|
|
239
|
+
return setTab(key);
|
|
240
|
+
}
|
|
241
|
+
}, label);
|
|
242
|
+
})));
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
var HelpLink = function HelpLink(_ref) {
|
|
246
|
+
var url = _ref.url,
|
|
247
|
+
_ref$size = _ref.size,
|
|
248
|
+
size = _ref$size === void 0 ? 20 : _ref$size,
|
|
249
|
+
_ref$className = _ref.className,
|
|
250
|
+
className = _ref$className === void 0 ? "" : _ref$className;
|
|
251
|
+
return /*#__PURE__*/React.createElement("a", {
|
|
252
|
+
"data-cy": "info-help-link",
|
|
253
|
+
"data-testid": "info-help-link",
|
|
254
|
+
href: url,
|
|
255
|
+
rel: "noreferrer",
|
|
256
|
+
target: "_blank"
|
|
257
|
+
}, /*#__PURE__*/React.createElement(Info, {
|
|
258
|
+
size: size,
|
|
259
|
+
className: classnames("neeto-ui-text-primary-800 cursor-pointer", className)
|
|
260
|
+
}));
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
var Options = function Options(_ref) {
|
|
264
|
+
var options = _ref.options,
|
|
265
|
+
selectedOption = _ref.selectedOption,
|
|
266
|
+
setSelectedOption = _ref.setSelectedOption;
|
|
267
|
+
return /*#__PURE__*/React.createElement(Radio, {
|
|
268
|
+
stacked: true,
|
|
269
|
+
containerClassName: "w-full flex flex-col gap-y-6",
|
|
270
|
+
name: "options"
|
|
271
|
+
}, Object.entries(options).map(function (_ref2) {
|
|
272
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
273
|
+
key = _ref3[0],
|
|
274
|
+
_ref3$ = _ref3[1],
|
|
275
|
+
label = _ref3$.label,
|
|
276
|
+
description = _ref3$.description,
|
|
277
|
+
helpLink = _ref3$.helpLink;
|
|
278
|
+
return /*#__PURE__*/React.createElement("label", {
|
|
279
|
+
className: "neeto-ui-border-gray-300 neeto-ui-bg-white neeto-ui-rounded-lg w-full cursor-pointer border p-4",
|
|
280
|
+
"data-cy": "".concat(key, "-embed-option-label"),
|
|
281
|
+
"data-testid": "".concat(key, "-embed-option-label"),
|
|
282
|
+
htmlFor: key,
|
|
283
|
+
key: key
|
|
284
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
285
|
+
className: "flex items-center"
|
|
286
|
+
}, /*#__PURE__*/React.createElement(Radio.Item, {
|
|
287
|
+
label: label,
|
|
288
|
+
checked: key === selectedOption,
|
|
289
|
+
className: "mb-0",
|
|
290
|
+
"data-cy": "".concat(key, "-embed-radio-button"),
|
|
291
|
+
"data-testid": "".concat(key, "-embed-radio-button"),
|
|
292
|
+
id: key,
|
|
293
|
+
name: "options",
|
|
294
|
+
value: key,
|
|
295
|
+
onChange: function onChange(event) {
|
|
296
|
+
return setSelectedOption(event.target.value);
|
|
297
|
+
}
|
|
298
|
+
}), isPresent(helpLink) && /*#__PURE__*/React.createElement(HelpLink, {
|
|
299
|
+
size: 18,
|
|
300
|
+
url: helpLink
|
|
301
|
+
})), /*#__PURE__*/React.createElement(Typography, {
|
|
302
|
+
className: "w-full pl-6 pt-1",
|
|
303
|
+
"data-cy": "".concat(key, "-embed-option-description"),
|
|
304
|
+
style: "body2"
|
|
305
|
+
}, description));
|
|
306
|
+
}));
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
var BrowserIcon = function BrowserIcon() {
|
|
310
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
311
|
+
fill: "none",
|
|
312
|
+
height: "12",
|
|
313
|
+
viewBox: "0 0 52 12",
|
|
314
|
+
width: "52",
|
|
315
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
316
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
317
|
+
d: "M11.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
|
|
318
|
+
fill: "#FF5F57",
|
|
319
|
+
stroke: "#E14640"
|
|
320
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
321
|
+
d: "M31.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
|
|
322
|
+
fill: "#FFBD2E",
|
|
323
|
+
stroke: "#DFA123"
|
|
324
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
325
|
+
d: "M51.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
|
|
326
|
+
fill: "#28CA42",
|
|
327
|
+
stroke: "#1DAD2C"
|
|
328
|
+
}));
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
var Inline = function Inline(_ref) {
|
|
332
|
+
var iframeURL = _ref.iframeURL,
|
|
333
|
+
customization = _ref.customization;
|
|
334
|
+
var height = customization.height,
|
|
335
|
+
width = customization.width;
|
|
336
|
+
return /*#__PURE__*/React.createElement("iframe", {
|
|
337
|
+
className: "m-auto",
|
|
338
|
+
height: "".concat(height, "%"),
|
|
339
|
+
src: iframeURL,
|
|
340
|
+
width: "".concat(width, "%")
|
|
341
|
+
});
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
var Preview = function Preview(_ref) {
|
|
345
|
+
var isScriptLoading = _ref.isScriptLoading,
|
|
346
|
+
selectedOption = _ref.selectedOption,
|
|
347
|
+
id = _ref.id,
|
|
348
|
+
customization = _ref.customization;
|
|
349
|
+
var preview = {
|
|
350
|
+
inline: Inline
|
|
351
|
+
};
|
|
352
|
+
var iframeURL = "".concat(location.origin, "/").concat(id);
|
|
353
|
+
var Component = preview[selectedOption];
|
|
354
|
+
if (isScriptLoading) {
|
|
355
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
356
|
+
className: "flex min-h-0 flex-grow items-center justify-center overflow-y-auto"
|
|
357
|
+
}, /*#__PURE__*/React.createElement(Spinner, null));
|
|
358
|
+
}
|
|
359
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
360
|
+
className: "neeto-ui-rounded-lg neeto-ui-border-gray-300 neeto-ui-bg-white relative flex w-full flex-col overflow-hidden border"
|
|
361
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
362
|
+
className: "neeto-ui-border-gray-300 flex-shrink-0 border-b p-3"
|
|
363
|
+
}, /*#__PURE__*/React.createElement(BrowserIcon, null)), /*#__PURE__*/React.createElement("div", {
|
|
364
|
+
className: "flex min-h-0 flex-grow overflow-y-auto"
|
|
365
|
+
}, /*#__PURE__*/React.createElement(Component, {
|
|
366
|
+
customization: customization,
|
|
367
|
+
iframeURL: iframeURL
|
|
368
|
+
})));
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
372
|
+
|
|
373
|
+
var css = ".neeto-molecules-product-embed-size-input.neeto-ui-input__wrapper .neeto-ui-input__prefix{align-self:stretch;background-color:rgb(var(--neeto-ui-gray-200));margin-left:0!important;padding-left:12px;padding-right:12px}.neeto-molecules-product-embed-tab{gap:.5rem}.neeto-molecules-product-embed-tab .neeto-ui-tab{border-radius:var(--neeto-ui-btn-border-radius);color:rgb(var(--neeto-ui-gray-800))}.neeto-molecules-product-embed-tab .neeto-ui-tab:not(.active):hover{background-color:rgb(var(--neeto-ui-gray-100))}.neeto-molecules-product-embed-tab .neeto-ui-tab.active{background-color:rgb(var(--neeto-ui-gray-200))}.neeto-molecules-embed-left-sidebar{align-items:flex-start;display:flex;flex-direction:column;flex-shrink:0;max-width:23rem;overflow-y:auto;padding:1.5rem;width:100%}";
|
|
374
|
+
n(css,{});
|
|
375
|
+
|
|
376
|
+
var embedBaseScript = function embedBaseScript() {
|
|
377
|
+
var origin = window.location.origin;
|
|
378
|
+
return "<script\n src=\"".concat(origin, "/javascript/embed.js\">\n </script>");
|
|
379
|
+
};
|
|
380
|
+
var embedEnv = function embedEnv() {
|
|
381
|
+
return globalProps.railsEnv !== "production" ? "\n\t env: \"".concat(globalProps.railsEnv, "\",") : "";
|
|
382
|
+
};
|
|
383
|
+
var inlineEmbedCode = function inlineEmbedCode(customization, id) {
|
|
384
|
+
var elementSelector = customization.elementSelector,
|
|
385
|
+
_customization$width = customization.width,
|
|
386
|
+
width = _customization$width === void 0 ? 100 : _customization$width,
|
|
387
|
+
_customization$height = customization.height,
|
|
388
|
+
height = _customization$height === void 0 ? 100 : _customization$height;
|
|
389
|
+
return "\n <!-- ".concat(globalProps.appName, " inline embed code begins -->\n <div style=\"min-width: 90vw; height: 90vh;\" id=\"").concat(elementSelector, "\">\n <!-- ").concat(globalProps.appName, " widget will be added here -->\n </div>\n ").concat(embedBaseScript(), "\n <script>\n ").concat(globalProps.appName, ".embed({\n type: \"inline\",\n id: \"").concat(id, "\",\n organization: \"").concat(globalProps.organization.subdomain, "\",\n elementSelector: \"#").concat(elementSelector, "\",\n styles: { height: \"").concat(height, "%\", width: \"").concat(width, "%\"},").concat(embedEnv(), "\n });\n </script>\n <!-- ").concat(globalProps.appName, " inline embed code ends -->");
|
|
390
|
+
};
|
|
391
|
+
var embedCode = function embedCode(_ref) {
|
|
392
|
+
var type = _ref.type,
|
|
393
|
+
customization = _ref.customization,
|
|
394
|
+
id = _ref.id;
|
|
395
|
+
switch (type) {
|
|
396
|
+
case "inline":
|
|
397
|
+
return inlineEmbedCode(customization, id);
|
|
398
|
+
default:
|
|
399
|
+
return "";
|
|
400
|
+
}
|
|
401
|
+
};
|
|
402
|
+
var buildDefaultCustomization = function buildDefaultCustomization(defaultCustomizations) {
|
|
403
|
+
return mergeDeepLeft(defaultCustomizations, DEFAULT_CUSTOMIZATION);
|
|
404
|
+
};
|
|
405
|
+
|
|
406
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
407
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
408
|
+
var ProductEmbed = function ProductEmbed(_ref) {
|
|
409
|
+
var _ref$className = _ref.className,
|
|
410
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
411
|
+
_ref$defaultCustomiza = _ref.defaultCustomizations,
|
|
412
|
+
defaultCustomizations = _ref$defaultCustomiza === void 0 ? {} : _ref$defaultCustomiza,
|
|
413
|
+
_ref$goBackLink = _ref.goBackLink,
|
|
414
|
+
goBackLink = _ref$goBackLink === void 0 ? "" : _ref$goBackLink,
|
|
415
|
+
id = _ref.id,
|
|
416
|
+
_ref$options = _ref.options,
|
|
417
|
+
options = _ref$options === void 0 ? {} : _ref$options;
|
|
418
|
+
var _useState = useState(true),
|
|
419
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
420
|
+
isScriptLoading = _useState2[0],
|
|
421
|
+
setIsScriptLoading = _useState2[1];
|
|
422
|
+
var _useState3 = useState(TAB_KEYS.HTML),
|
|
423
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
424
|
+
tab = _useState4[0],
|
|
425
|
+
setTab = _useState4[1];
|
|
426
|
+
var _useState5 = useState(EMBED_OPTIONS.INLINE),
|
|
427
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
428
|
+
selectedOption = _useState6[0],
|
|
429
|
+
setSelectedOption = _useState6[1];
|
|
430
|
+
var _useState7 = useState(function () {
|
|
431
|
+
return buildDefaultCustomization(defaultCustomizations);
|
|
432
|
+
}),
|
|
433
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
434
|
+
customizations = _useState8[0],
|
|
435
|
+
setCustomizations = _useState8[1];
|
|
436
|
+
var _useTranslation = useTranslation(),
|
|
437
|
+
t = _useTranslation.t;
|
|
438
|
+
var code = embedCode({
|
|
439
|
+
id: id,
|
|
440
|
+
type: selectedOption,
|
|
441
|
+
customization: customizations[selectedOption]
|
|
442
|
+
});
|
|
443
|
+
var loadScript = function loadScript() {
|
|
444
|
+
var script = document.createElement("script");
|
|
445
|
+
script.id = SCRIPT_ID;
|
|
446
|
+
script.src = "".concat(window.location.protocol, "//").concat(window.location.host, "/javascript/embed.js");
|
|
447
|
+
document.head.appendChild(script);
|
|
448
|
+
setIsScriptLoading(false);
|
|
449
|
+
};
|
|
450
|
+
var updateCustomization = function updateCustomization(props) {
|
|
451
|
+
return setCustomizations(function (prevState) {
|
|
452
|
+
return _objectSpread(_objectSpread({}, prevState), {}, _defineProperty({}, selectedOption, mergeLeft(props, prevState[selectedOption])));
|
|
453
|
+
});
|
|
454
|
+
};
|
|
455
|
+
useEffect(function () {
|
|
456
|
+
var isScriptLoaded = document.getElementById(SCRIPT_ID);
|
|
457
|
+
if (!isScriptLoaded) loadScript();
|
|
458
|
+
}, []);
|
|
459
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
460
|
+
className: classnames("flex w-full flex-grow", className),
|
|
461
|
+
"data-testid": "embed-product"
|
|
462
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
463
|
+
className: "neeto-molecules-embed-left-sidebar border-r"
|
|
464
|
+
}, goBackLink && /*#__PURE__*/React.createElement(Button, {
|
|
465
|
+
className: "mb-4 px-0",
|
|
466
|
+
"data-cy": "back-button",
|
|
467
|
+
"data-testid": "back-button",
|
|
468
|
+
icon: LeftArrow,
|
|
469
|
+
iconPosition: "left",
|
|
470
|
+
label: t("neetoMolecules.productEmbed.backToShare"),
|
|
471
|
+
size: "small",
|
|
472
|
+
style: "icon",
|
|
473
|
+
to: goBackLink
|
|
474
|
+
}), /*#__PURE__*/React.createElement(Typography, {
|
|
475
|
+
"data-cy": "embed-options-header-title",
|
|
476
|
+
style: "h3"
|
|
477
|
+
}, t("neetoMolecules.productEmbed.embedOptions.title")), /*#__PURE__*/React.createElement(Typography, {
|
|
478
|
+
className: "mt-1",
|
|
479
|
+
"data-cy": "embed-options-header-description",
|
|
480
|
+
style: "body3"
|
|
481
|
+
}, t("neetoMolecules.productEmbed.embedOptions.description")), /*#__PURE__*/React.createElement("div", {
|
|
482
|
+
className: "mt-6 flex w-full flex-col gap-y-6"
|
|
483
|
+
}, /*#__PURE__*/React.createElement(Options, {
|
|
484
|
+
options: options,
|
|
485
|
+
selectedOption: selectedOption,
|
|
486
|
+
setSelectedOption: setSelectedOption
|
|
487
|
+
}), /*#__PURE__*/React.createElement(Customization, {
|
|
488
|
+
updateCustomization: updateCustomization,
|
|
489
|
+
customization: customizations[selectedOption],
|
|
490
|
+
option: selectedOption
|
|
491
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
492
|
+
className: "neeto-ui-bg-white flex w-full min-w-0 flex-grow flex-col gap-4 p-6"
|
|
493
|
+
}, /*#__PURE__*/React.createElement(Header, {
|
|
494
|
+
setTab: setTab,
|
|
495
|
+
tab: tab
|
|
496
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
497
|
+
className: "flex flex-grow overflow-y-auto"
|
|
498
|
+
}, tab === TAB_KEYS.PREVIEW ? /*#__PURE__*/React.createElement(Preview, {
|
|
499
|
+
id: id,
|
|
500
|
+
isScriptLoading: isScriptLoading,
|
|
501
|
+
selectedOption: selectedOption,
|
|
502
|
+
customization: customizations[selectedOption]
|
|
503
|
+
}) : /*#__PURE__*/React.createElement(Code, {
|
|
504
|
+
code: code
|
|
505
|
+
}))));
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
export { ProductEmbed as default };
|
|
509
|
+
//# sourceMappingURL=ProductEmbed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductEmbed.js","sources":["../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../src/components/ProductEmbed/Code.jsx","../src/components/ProductEmbed/constants.js","../src/components/ProductEmbed/Customization/Inline.jsx","../src/components/ProductEmbed/Customization/index.jsx","../src/components/ProductEmbed/Header.jsx","../src/components/ProductEmbed/HelpLink.jsx","../src/components/ProductEmbed/Options.jsx","../src/components/ProductEmbed/Preview/BrowserIcon.jsx","../src/components/ProductEmbed/Preview/Inline.jsx","../src/components/ProductEmbed/Preview/index.jsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/components/ProductEmbed/util.js","../src/components/ProductEmbed/index.jsx"],"sourcesContent":["export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import React from \"react\";\n\nimport Codeblock from \"neetomolecules/Codeblock\";\n\nconst Code = ({ code }) => (\n <div\n className=\"relative w-full overflow-y-auto\"\n data-cy=\"embed-code-block\"\n data-testid=\"embed-code-block\"\n >\n <Codeblock {...{ code }} />\n </div>\n);\n\nexport default Code;\n","import { t } from \"i18next\";\nimport { Code, Eye } from \"neetoicons\";\n\nexport const TAB_KEYS = { HTML: \"html\", PREVIEW: \"preview\" };\n\nexport const TABS = [\n {\n key: TAB_KEYS.HTML,\n label: t(\"neetoMolecules.productEmbed.tab.html\"),\n icon: Code,\n },\n {\n key: TAB_KEYS.PREVIEW,\n label: t(\"neetoMolecules.productEmbed.tab.preview\"),\n icon: Eye,\n },\n];\n\nexport const DEFAULT_CUSTOMIZATION = {\n inline: {\n width: 100,\n height: 100,\n elementSelector: \"inline-embed-container\",\n },\n};\n\nexport const EMBED_OPTIONS = { INLINE: \"inline\" };\n\nexport const SCRIPT_ID = \"embed-script\";\n","import React from \"react\";\n\nimport { Typography, Input, Label } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Inline = ({ customization, updateCustomization }) => {\n const { height, width, elementSelector } = customization;\n\n const { t } = useTranslation();\n\n const handleInputChange = ({ target: { value } }, attribute) =>\n updateCustomization({ [attribute]: value });\n\n return (\n <div className=\"flex flex-col gap-y-6\">\n <Typography data-cy=\"customization-text\" style=\"h4\">\n {t(\"neetoMolecules.productEmbed.customization.inline.title\")}\n </Typography>\n <div className=\"flex flex-col gap-2\">\n <Label data-cy=\"window-size-text\">\n {t(\n \"neetoMolecules.productEmbed.customization.inline.sizeOfEmbedWindow\"\n )}\n </Label>\n <div className=\"flex justify-between gap-x-2\">\n <Input\n className=\"neeto-molecules-product-embed-size-input\"\n data-cy=\"inline-width-input-field\"\n data-testid=\"inline-width-input-field\"\n max={100}\n min={0}\n prefix=\"W\"\n suffix=\"%\"\n type=\"number\"\n value={width}\n onChange={e => handleInputChange(e, \"width\")}\n />\n <Input\n className=\"neeto-molecules-product-embed-size-input\"\n data-cy=\"inline-height-input-field\"\n data-testid=\"inline-height-input-field\"\n max={100}\n min={0}\n prefix=\"H\"\n suffix=\"%\"\n type=\"number\"\n value={height}\n onChange={e => handleInputChange(e, \"height\")}\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n <Label data-cy=\"inline-element-id-input-label\">\n {t(\"neetoMolecules.productEmbed.customization.inline.elementId\")}\n </Label>\n <Input\n data-cy=\"inline-element-id-input-field\"\n data-testid=\"inline-element-id-input-field\"\n value={elementSelector}\n onChange={e => handleInputChange(e, \"elementSelector\")}\n />\n </div>\n </div>\n );\n};\n\nexport default Inline;\n","import React from \"react\";\n\nimport Inline from \"./Inline\";\n\nconst Customization = ({ option, customization, updateCustomization }) => {\n const type = { inline: Inline };\n const Component = type[option];\n\n return <Component {...{ customization, updateCustomization }} />;\n};\n\nexport default Customization;\n","import React from \"react\";\n\nimport { Tab } from \"neetoui\";\n\nimport { TABS } from \"./constants\";\n\nconst Header = ({ tab, setTab }) => (\n <div className=\"flex w-full pt-2\">\n <Tab noUnderline className=\"neeto-molecules-product-embed-tab\">\n {TABS.map(({ key, label, icon }) => (\n <Tab.Item\n {...{ icon }}\n active={tab === key}\n data-cy={`${key}-tab`}\n data-testid={`${key}-tab`}\n key={key}\n onClick={() => setTab(key)}\n >\n {label}\n </Tab.Item>\n ))}\n </Tab>\n </div>\n);\n\nexport default Header;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { Info } from \"neetoicons\";\n\nconst HelpLink = ({ url, size = 20, className = \"\" }) => (\n <a\n data-cy=\"info-help-link\"\n data-testid=\"info-help-link\"\n href={url}\n rel=\"noreferrer\"\n target=\"_blank\"\n >\n <Info\n {...{ size }}\n className={classnames(\n \"neeto-ui-text-primary-800 cursor-pointer\",\n className\n )}\n />\n </a>\n);\n\nexport default HelpLink;\n","import React from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { Radio, Typography } from \"neetoui\";\n\nimport HelpLink from \"./HelpLink\";\n\nconst Options = ({ options, selectedOption, setSelectedOption }) => (\n <Radio\n stacked\n containerClassName=\"w-full flex flex-col gap-y-6\"\n name=\"options\"\n >\n {Object.entries(options).map(([key, { label, description, helpLink }]) => (\n <label\n className=\"neeto-ui-border-gray-300 neeto-ui-bg-white neeto-ui-rounded-lg w-full cursor-pointer border p-4\"\n data-cy={`${key}-embed-option-label`}\n data-testid={`${key}-embed-option-label`}\n htmlFor={key}\n key={key}\n >\n <div className=\"flex items-center\">\n <Radio.Item\n {...{ label }}\n checked={key === selectedOption}\n className=\"mb-0\"\n data-cy={`${key}-embed-radio-button`}\n data-testid={`${key}-embed-radio-button`}\n id={key}\n name=\"options\"\n value={key}\n onChange={event => setSelectedOption(event.target.value)}\n />\n {isPresent(helpLink) && <HelpLink size={18} url={helpLink} />}\n </div>\n <Typography\n className=\"w-full pl-6 pt-1\"\n data-cy={`${key}-embed-option-description`}\n style=\"body2\"\n >\n {description}\n </Typography>\n </label>\n ))}\n </Radio>\n);\n\nexport default Options;\n","import React from \"react\";\n\nconst BrowserIcon = () => (\n <svg\n fill=\"none\"\n height=\"12\"\n viewBox=\"0 0 52 12\"\n width=\"52\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z\"\n fill=\"#FF5F57\"\n stroke=\"#E14640\"\n />\n <path\n d=\"M31.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z\"\n fill=\"#FFBD2E\"\n stroke=\"#DFA123\"\n />\n <path\n d=\"M51.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z\"\n fill=\"#28CA42\"\n stroke=\"#1DAD2C\"\n />\n </svg>\n);\n\nexport default BrowserIcon;\n","import React from \"react\";\n\nconst Inline = ({ iframeURL, customization }) => {\n const { height, width } = customization;\n\n return (\n <iframe\n className=\"m-auto\"\n height={`${height}%`}\n src={iframeURL}\n width={`${width}%`}\n />\n );\n};\n\nexport default Inline;\n","import React from \"react\";\n\nimport { Spinner } from \"neetoui\";\n\nimport BrowserIcon from \"./BrowserIcon\";\nimport Inline from \"./Inline\";\n\nconst Preview = ({ isScriptLoading, selectedOption, id, customization }) => {\n const preview = { inline: Inline };\n\n const iframeURL = `${location.origin}/${id}`;\n const Component = preview[selectedOption];\n\n if (isScriptLoading) {\n return (\n <div className=\"flex min-h-0 flex-grow items-center justify-center overflow-y-auto\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"neeto-ui-rounded-lg neeto-ui-border-gray-300 neeto-ui-bg-white relative flex w-full flex-col overflow-hidden border\">\n <div className=\"neeto-ui-border-gray-300 flex-shrink-0 border-b p-3\">\n <BrowserIcon />\n </div>\n <div className=\"flex min-h-0 flex-grow overflow-y-auto\">\n <Component {...{ customization, iframeURL }} />\n </div>\n </div>\n );\n};\n\nexport default Preview;\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import { mergeDeepLeft } from \"ramda\";\n\nimport { DEFAULT_CUSTOMIZATION } from \"./constants\";\n\nconst embedBaseScript = () => {\n const origin = window.location.origin;\n\n return `<script\n src=\"${origin}/javascript/embed.js\">\n </script>`;\n};\n\nconst embedEnv = () =>\n globalProps.railsEnv !== \"production\"\n ? `\\n\\t env: \"${globalProps.railsEnv}\",`\n : \"\";\n\nconst inlineEmbedCode = (customization, id) => {\n const { elementSelector, width = 100, height = 100 } = customization;\n\n return `\n <!-- ${globalProps.appName} inline embed code begins -->\n <div style=\"min-width: 90vw; height: 90vh;\" id=\"${elementSelector}\">\n <!-- ${globalProps.appName} widget will be added here -->\n </div>\n ${embedBaseScript()}\n <script>\n ${globalProps.appName}.embed({\n type: \"inline\",\n id: \"${id}\",\n organization: \"${globalProps.organization.subdomain}\",\n elementSelector: \"#${elementSelector}\",\n styles: { height: \"${height}%\", width: \"${width}%\"},${embedEnv()}\n });\n </script>\n <!-- ${globalProps.appName} inline embed code ends -->`;\n};\n\nexport const embedCode = ({ type, customization, id }) => {\n switch (type) {\n case \"inline\":\n return inlineEmbedCode(customization, id);\n default:\n return \"\";\n }\n};\n\nexport const buildDefaultCustomization = defaultCustomizations =>\n mergeDeepLeft(defaultCustomizations, DEFAULT_CUSTOMIZATION);\n","import React, { useEffect, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Code from \"./Code\";\nimport { EMBED_OPTIONS, SCRIPT_ID, TAB_KEYS } from \"./constants\";\nimport Customization from \"./Customization\";\nimport Header from \"./Header\";\nimport Options from \"./Options\";\nimport Preview from \"./Preview\";\nimport \"./product-embed.scss\";\nimport { buildDefaultCustomization, embedCode } from \"./util\";\n\nconst ProductEmbed = ({\n className = \"\",\n defaultCustomizations = {},\n goBackLink = \"\",\n id,\n options = {},\n}) => {\n const [isScriptLoading, setIsScriptLoading] = useState(true);\n const [tab, setTab] = useState(TAB_KEYS.HTML);\n const [selectedOption, setSelectedOption] = useState(EMBED_OPTIONS.INLINE);\n const [customizations, setCustomizations] = useState(() =>\n buildDefaultCustomization(defaultCustomizations)\n );\n\n const { t } = useTranslation();\n\n const code = embedCode({\n id,\n type: selectedOption,\n customization: customizations[selectedOption],\n });\n\n const loadScript = () => {\n const script = document.createElement(\"script\");\n script.id = SCRIPT_ID;\n script.src = `${window.location.protocol}//${window.location.host}/javascript/embed.js`;\n document.head.appendChild(script);\n setIsScriptLoading(false);\n };\n\n const updateCustomization = props =>\n setCustomizations(prevState => ({\n ...prevState,\n [selectedOption]: mergeLeft(props, prevState[selectedOption]),\n }));\n\n useEffect(() => {\n const isScriptLoaded = document.getElementById(SCRIPT_ID);\n if (!isScriptLoaded) loadScript();\n }, []);\n\n return (\n <div\n className={classNames(\"flex w-full flex-grow\", className)}\n data-testid=\"embed-product\"\n >\n <div className=\"neeto-molecules-embed-left-sidebar border-r\">\n {goBackLink && (\n <Button\n className=\"mb-4 px-0\"\n data-cy=\"back-button\"\n data-testid=\"back-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.productEmbed.backToShare\")}\n size=\"small\"\n style=\"icon\"\n to={goBackLink}\n />\n )}\n <Typography data-cy=\"embed-options-header-title\" style=\"h3\">\n {t(\"neetoMolecules.productEmbed.embedOptions.title\")}\n </Typography>\n <Typography\n className=\"mt-1\"\n data-cy=\"embed-options-header-description\"\n style=\"body3\"\n >\n {t(\"neetoMolecules.productEmbed.embedOptions.description\")}\n </Typography>\n <div className=\"mt-6 flex w-full flex-col gap-y-6\">\n <Options {...{ options, selectedOption, setSelectedOption }} />\n <Customization\n {...{ updateCustomization }}\n customization={customizations[selectedOption]}\n option={selectedOption}\n />\n </div>\n </div>\n <div className=\"neeto-ui-bg-white flex w-full min-w-0 flex-grow flex-col gap-4 p-6\">\n <Header {...{ setTab, tab }} />\n <div className=\"flex flex-grow overflow-y-auto\">\n {tab === TAB_KEYS.PREVIEW ? (\n <Preview\n {...{ id, isScriptLoading, selectedOption }}\n customization={customizations[selectedOption]}\n />\n ) : (\n <Code {...{ code }} />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nProductEmbed.propTypes = {\n /**\n * To set custom classNames. (optional)\n */\n className: PropTypes.string,\n /**\n * To set default customizations for each embed option. (optional)\n */\n defaultCustomizations: PropTypes.shape({\n inline: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number,\n elementSelector: PropTypes.string,\n }),\n }),\n /**\n * To show the 'Back to share' button. (optional)\n */\n goBackLink: PropTypes.string,\n /**\n * To specify the entity ID.\n */\n id: PropTypes.string,\n /**\n * To specify the Embed options for the product.\n */\n options: PropTypes.shape({\n inline: PropTypes.shape({\n label: PropTypes.string,\n description: PropTypes.string,\n }),\n }),\n};\n\nexport default ProductEmbed;\n"],"names":["toPrimitive","toPropertyKey","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","Code","_ref","code","React","createElement","className","Codeblock","TAB_KEYS","HTML","PREVIEW","TABS","key","label","t","icon","Eye","DEFAULT_CUSTOMIZATION","inline","width","height","elementSelector","EMBED_OPTIONS","INLINE","SCRIPT_ID","Inline","customization","updateCustomization","_useTranslation","useTranslation","handleInputChange","_ref2","attribute","value","target","_defineProperty","Typography","style","Label","Input","max","min","prefix","suffix","type","onChange","e","Customization","option","Component","Header","tab","setTab","Tab","noUnderline","map","Item","active","concat","onClick","HelpLink","url","_ref$size","size","_ref$className","href","rel","Info","classnames","Options","options","selectedOption","setSelectedOption","Radio","stacked","containerClassName","name","Object","entries","_ref3","_slicedToArray","_ref3$","description","helpLink","htmlFor","checked","id","event","isPresent","BrowserIcon","fill","viewBox","xmlns","d","stroke","iframeURL","src","Preview","isScriptLoading","preview","location","origin","Spinner","embedBaseScript","window","embedEnv","globalProps","railsEnv","inlineEmbedCode","_customization$width","_customization$height","appName","organization","subdomain","embedCode","buildDefaultCustomization","defaultCustomizations","mergeDeepLeft","ProductEmbed","_ref$defaultCustomiza","_ref$goBackLink","goBackLink","_ref$options","_useState","useState","_useState2","setIsScriptLoading","_useState3","_useState4","_useState5","_useState6","_useState7","_useState8","customizations","setCustomizations","loadScript","script","document","protocol","host","head","appendChild","props","prevState","_objectSpread","mergeLeft","useEffect","isScriptLoaded","getElementById","classNames","Button","LeftArrow","iconPosition","to"],"mappings":"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"}
|