PluginProbe
HubSpot All-In-One Marketing – Forms, Popups, Live Chat / 11.0.31
HubSpot All-In-One Marketing – Forms, Popups, Live Chat v11.0.31
11.3.75 11.3.73 11.3.71 11.3.70 11.3.69 11.3.64 11.3.65 11.3.62 11.3.61 11.3.56 11.3.58 11.0.31 11.0.52 11.0.54 11.0.56 11.0.58 11.0.7 11.1.10 11.1.11 11.1.13 11.1.14 11.1.15 11.1.2 11.1.20 11.1.21 All 73 releases
leadin / build / elementor.js

elementor.js in HubSpot All-In-One Marketing – Forms, Popups, Live Chat 11.0.31, at build/elementor.js

8,958 lines 352.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (() => { // webpackBootstrap
2 /******/ var __webpack_modules__ = ({
3
4 /***/ "./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js":
5 /*!*******************************************************************!*\
6 !*** ./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js ***!
7 \*******************************************************************/
8 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
10 "use strict";
11 __webpack_require__.r(__webpack_exports__);
12 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
14 /* harmony export */ });
15 function memoize(fn) {
16 var cache = Object.create(null);
17 return function (arg) {
18 if (cache[arg] === undefined) cache[arg] = fn(arg);
19 return cache[arg];
20 };
21 }
22
23 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (memoize);
24
25
26 /***/ }),
27
28 /***/ "./node_modules/@linaria/react/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js":
29 /*!***********************************************************************************************************!*\
30 !*** ./node_modules/@linaria/react/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js ***!
31 \***********************************************************************************************************/
32 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33
34 "use strict";
35 __webpack_require__.r(__webpack_exports__);
36 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
38 /* harmony export */ });
39 /* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/memoize */ "./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js");
40
41
42 var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
43
44 var isPropValid = /* #__PURE__ */(0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__["default"])(function (prop) {
45 return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
46 /* o */
47 && prop.charCodeAt(1) === 110
48 /* n */
49 && prop.charCodeAt(2) < 91;
50 }
51 /* Z+1 */
52 );
53
54 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isPropValid);
55
56
57 /***/ }),
58
59 /***/ "./scripts/constants/defaultFormOptions.ts":
60 /*!*************************************************!*\
61 !*** ./scripts/constants/defaultFormOptions.ts ***!
62 \*************************************************/
63 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
64
65 "use strict";
66 __webpack_require__.r(__webpack_exports__);
67 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
68 /* harmony export */ "DEFAULT_OPTIONS": () => (/* binding */ DEFAULT_OPTIONS),
69 /* harmony export */ "isDefaultForm": () => (/* binding */ isDefaultForm)
70 /* harmony export */ });
71 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
72 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
73
74 var REGISTRATION_FORM = 'REGISTRATION_FORM';
75 var CONTACT_US_FORM = 'CONTACT_US_FORM';
76 var NEWSLETTER_FORM = 'NEWSLETTER_FORM';
77 var SUPPORT_FORM = 'SUPPORT_FORM';
78 var EVENT_FORM = 'EVENT_FORM';
79 var DEFAULT_OPTIONS = {
80 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Templates', 'leadin'),
81 options: [{
82 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Registration Form', 'leadin'),
83 value: REGISTRATION_FORM
84 }, {
85 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Contact us Form', 'leadin'),
86 value: CONTACT_US_FORM
87 }, {
88 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Newsletter sign-up Form', 'leadin'),
89 value: NEWSLETTER_FORM
90 }, {
91 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Support Form', 'leadin'),
92 value: SUPPORT_FORM
93 }, {
94 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Event Registration Form', 'leadin'),
95 value: EVENT_FORM
96 }]
97 };
98 function isDefaultForm(value) {
99 return value === REGISTRATION_FORM || value === CONTACT_US_FORM || value === NEWSLETTER_FORM || value === SUPPORT_FORM || value === EVENT_FORM;
100 }
101
102 /***/ }),
103
104 /***/ "./scripts/constants/leadinConfig.ts":
105 /*!*******************************************!*\
106 !*** ./scripts/constants/leadinConfig.ts ***!
107 \*******************************************/
108 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
109
110 "use strict";
111 __webpack_require__.r(__webpack_exports__);
112 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
113 /* harmony export */ "accountName": () => (/* binding */ accountName),
114 /* harmony export */ "activationTime": () => (/* binding */ activationTime),
115 /* harmony export */ "adminUrl": () => (/* binding */ adminUrl),
116 /* harmony export */ "connectionStatus": () => (/* binding */ connectionStatus),
117 /* harmony export */ "deviceId": () => (/* binding */ deviceId),
118 /* harmony export */ "didDisconnect": () => (/* binding */ didDisconnect),
119 /* harmony export */ "env": () => (/* binding */ env),
120 /* harmony export */ "formsScript": () => (/* binding */ formsScript),
121 /* harmony export */ "formsScriptPayload": () => (/* binding */ formsScriptPayload),
122 /* harmony export */ "hublet": () => (/* binding */ hublet),
123 /* harmony export */ "hubspotBaseUrl": () => (/* binding */ hubspotBaseUrl),
124 /* harmony export */ "hubspotNonce": () => (/* binding */ hubspotNonce),
125 /* harmony export */ "iframeUrl": () => (/* binding */ iframeUrl),
126 /* harmony export */ "impactLink": () => (/* binding */ impactLink),
127 /* harmony export */ "leadinPluginVersion": () => (/* binding */ leadinPluginVersion),
128 /* harmony export */ "leadinQueryParams": () => (/* binding */ leadinQueryParams),
129 /* harmony export */ "locale": () => (/* binding */ locale),
130 /* harmony export */ "loginUrl": () => (/* binding */ loginUrl),
131 /* harmony export */ "meetingsScript": () => (/* binding */ meetingsScript),
132 /* harmony export */ "phpVersion": () => (/* binding */ phpVersion),
133 /* harmony export */ "pluginPath": () => (/* binding */ pluginPath),
134 /* harmony export */ "plugins": () => (/* binding */ plugins),
135 /* harmony export */ "portalDomain": () => (/* binding */ portalDomain),
136 /* harmony export */ "portalEmail": () => (/* binding */ portalEmail),
137 /* harmony export */ "portalId": () => (/* binding */ portalId),
138 /* harmony export */ "redirectNonce": () => (/* binding */ redirectNonce),
139 /* harmony export */ "refreshToken": () => (/* binding */ refreshToken),
140 /* harmony export */ "restNonce": () => (/* binding */ restNonce),
141 /* harmony export */ "restUrl": () => (/* binding */ restUrl),
142 /* harmony export */ "reviewSkippedDate": () => (/* binding */ reviewSkippedDate),
143 /* harmony export */ "theme": () => (/* binding */ theme),
144 /* harmony export */ "trackConsent": () => (/* binding */ trackConsent),
145 /* harmony export */ "wpVersion": () => (/* binding */ wpVersion)
146 /* harmony export */ });
147 var _window$leadinConfig = window.leadinConfig,
148 accountName = _window$leadinConfig.accountName,
149 adminUrl = _window$leadinConfig.adminUrl,
150 activationTime = _window$leadinConfig.activationTime,
151 connectionStatus = _window$leadinConfig.connectionStatus,
152 deviceId = _window$leadinConfig.deviceId,
153 didDisconnect = _window$leadinConfig.didDisconnect,
154 env = _window$leadinConfig.env,
155 formsScript = _window$leadinConfig.formsScript,
156 meetingsScript = _window$leadinConfig.meetingsScript,
157 formsScriptPayload = _window$leadinConfig.formsScriptPayload,
158 hublet = _window$leadinConfig.hublet,
159 hubspotBaseUrl = _window$leadinConfig.hubspotBaseUrl,
160 hubspotNonce = _window$leadinConfig.hubspotNonce,
161 iframeUrl = _window$leadinConfig.iframeUrl,
162 impactLink = _window$leadinConfig.impactLink,
163 leadinPluginVersion = _window$leadinConfig.leadinPluginVersion,
164 leadinQueryParams = _window$leadinConfig.leadinQueryParams,
165 locale = _window$leadinConfig.locale,
166 loginUrl = _window$leadinConfig.loginUrl,
167 phpVersion = _window$leadinConfig.phpVersion,
168 pluginPath = _window$leadinConfig.pluginPath,
169 plugins = _window$leadinConfig.plugins,
170 portalDomain = _window$leadinConfig.portalDomain,
171 portalEmail = _window$leadinConfig.portalEmail,
172 portalId = _window$leadinConfig.portalId,
173 redirectNonce = _window$leadinConfig.redirectNonce,
174 restNonce = _window$leadinConfig.restNonce,
175 restUrl = _window$leadinConfig.restUrl,
176 refreshToken = _window$leadinConfig.refreshToken,
177 reviewSkippedDate = _window$leadinConfig.reviewSkippedDate,
178 theme = _window$leadinConfig.theme,
179 trackConsent = _window$leadinConfig.trackConsent,
180 wpVersion = _window$leadinConfig.wpVersion;
181
182
183 /***/ }),
184
185 /***/ "./scripts/elementor/Common/ConnectPluginBanner.tsx":
186 /*!**********************************************************!*\
187 !*** ./scripts/elementor/Common/ConnectPluginBanner.tsx ***!
188 \**********************************************************/
189 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
190
191 "use strict";
192 __webpack_require__.r(__webpack_exports__);
193 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
194 /* harmony export */ "default": () => (/* binding */ ConnectPluginBanner)
195 /* harmony export */ });
196 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
197 /* harmony import */ var _ElementorBanner__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx");
198 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
199 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
200
201
202
203 function ConnectPluginBanner() {
204 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ElementorBanner__WEBPACK_IMPORTED_MODULE_1__["default"], {
205 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
206 dangerouslySetInnerHTML: {
207 __html: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("The HubSpot plugin isn't connected right now. To use HubSpot tools on your WordPress site, %1$sconnect the plugin now%2$s.").replace('%1$s', '<a class="leadin-banner__link" href="admin.php?page=leadin&bannerClick=true">').replace('%2$s', '</a>')
208 }
209 })
210 });
211 }
212
213 /***/ }),
214
215 /***/ "./scripts/elementor/Common/ElementorBanner.tsx":
216 /*!******************************************************!*\
217 !*** ./scripts/elementor/Common/ElementorBanner.tsx ***!
218 \******************************************************/
219 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
220
221 "use strict";
222 __webpack_require__.r(__webpack_exports__);
223 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
224 /* harmony export */ "default": () => (/* binding */ ElementorBanner)
225 /* harmony export */ });
226 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
227
228 function ElementorBanner(_ref) {
229 var _ref$type = _ref.type,
230 type = _ref$type === void 0 ? 'warning' : _ref$type,
231 children = _ref.children;
232 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
233 className: "elementor-control-content",
234 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
235 className: "elementor-control-raw-html elementor-panel-alert elementor-panel-alert-".concat(type),
236 children: children
237 })
238 });
239 }
240
241 /***/ }),
242
243 /***/ "./scripts/elementor/Common/ElementorButton.tsx":
244 /*!******************************************************!*\
245 !*** ./scripts/elementor/Common/ElementorButton.tsx ***!
246 \******************************************************/
247 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
248
249 "use strict";
250 __webpack_require__.r(__webpack_exports__);
251 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
252 /* harmony export */ "default": () => (/* binding */ ElementorButton)
253 /* harmony export */ });
254 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
255 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
256 var _excluded = ["children"];
257
258 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
259
260 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
261
262 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
263
264 function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
265
266 function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
267
268
269
270 var Container = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('div')({
271 name: "Container",
272 "class": "czoccom",
273 propsAsIs: false
274 });
275 function ElementorButton(_ref) {
276 var children = _ref.children,
277 params = _objectWithoutProperties(_ref, _excluded);
278
279 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Container, {
280 className: "elementor-button-wrapper",
281 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", _objectSpread(_objectSpread({
282 className: "elementor-button elementor-button-default",
283 type: "button"
284 }, params), {}, {
285 children: children
286 }))
287 });
288 }
289
290 __webpack_require__(/*! ./ElementorButton.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./ElementorButton.tsx */ "./scripts/elementor/Common/ElementorButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/Common/ElementorButton.tsx");
291
292 /***/ }),
293
294 /***/ "./scripts/elementor/FormWidget/ElementorFormSelect.tsx":
295 /*!**************************************************************!*\
296 !*** ./scripts/elementor/FormWidget/ElementorFormSelect.tsx ***!
297 \**************************************************************/
298 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
299
300 "use strict";
301 __webpack_require__.r(__webpack_exports__);
302 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
303 /* harmony export */ "default": () => (/* binding */ ElementorFormSelectContainer)
304 /* harmony export */ });
305 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
306 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
307 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
308 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
309 /* harmony import */ var _Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx");
310 /* harmony import */ var _shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx");
311 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
312 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
313 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
314 /* harmony import */ var _hooks_useForms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./hooks/useForms */ "./scripts/elementor/FormWidget/hooks/useForms.ts");
315 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
316 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
317
318 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
319
320 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
321
322
323
324
325
326
327
328
329
330
331
332 function ElementorFormSelect(_ref) {
333 var formId = _ref.formId,
334 setAttributes = _ref.setAttributes;
335
336 var _useForms = (0,_hooks_useForms__WEBPACK_IMPORTED_MODULE_7__["default"])(),
337 hasError = _useForms.hasError,
338 forms = _useForms.forms,
339 loading = _useForms.loading;
340
341 return loading ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
342 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_4__["default"], {})
343 }) : hasError ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_3__["default"], {
344 type: "danger",
345 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Please refresh your forms or try again in a few minutes.', 'leadin')
346 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("select", {
347 value: formId,
348 onChange: function onChange(event) {
349 var selectedForm = forms.find(function (form) {
350 return form.value === event.target.value;
351 });
352
353 if (selectedForm) {
354 setAttributes({
355 portalId: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId,
356 formId: selectedForm.value,
357 formName: selectedForm.label
358 });
359 }
360 },
361 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
362 value: "",
363 disabled: true,
364 selected: true,
365 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Search for a form', 'leadin')
366 }), forms.map(function (form) {
367 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
368 value: form.value,
369 children: form.label
370 }, form.value);
371 })]
372 });
373 }
374
375 function ElementorFormSelectWrapper(props) {
376 var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.useBackgroundAppContext)();
377 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
378 children: !isBackgroundAppReady ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
379 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_4__["default"], {})
380 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorFormSelect, _objectSpread({}, props))
381 });
382 }
383
384 function ElementorFormSelectContainer(props) {
385 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.BackgroudAppContext.Provider, {
386 value: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.refreshToken && (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_8__.getOrCreateBackgroundApp)(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.refreshToken),
387 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorFormSelectWrapper, _objectSpread({}, props))
388 });
389 }
390
391 /***/ }),
392
393 /***/ "./scripts/elementor/FormWidget/FormControlController.tsx":
394 /*!****************************************************************!*\
395 !*** ./scripts/elementor/FormWidget/FormControlController.tsx ***!
396 \****************************************************************/
397 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
398
399 "use strict";
400 __webpack_require__.r(__webpack_exports__);
401 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
402 /* harmony export */ "default": () => (/* binding */ FormControlController)
403 /* harmony export */ });
404 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
405 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
406 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
407 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
408 /* harmony import */ var _Common_ConnectPluginBanner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ConnectPluginBanner */ "./scripts/elementor/Common/ConnectPluginBanner.tsx");
409 /* harmony import */ var _ElementorFormSelect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ElementorFormSelect */ "./scripts/elementor/FormWidget/ElementorFormSelect.tsx");
410
411
412
413
414
415 var ConnectionStatus = {
416 Connected: 'Connected',
417 NotConnected: 'NotConnected'
418 };
419 function FormControlController(attributes, setValue) {
420 return function () {
421 var render = function render() {
422 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.connectionStatus === ConnectionStatus.Connected) {
423 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ElementorFormSelect__WEBPACK_IMPORTED_MODULE_4__["default"], {
424 formId: attributes.formId,
425 setAttributes: setValue
426 });
427 } else {
428 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ConnectPluginBanner__WEBPACK_IMPORTED_MODULE_3__["default"], {});
429 }
430 };
431
432 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
433 children: render()
434 });
435 };
436 }
437
438 /***/ }),
439
440 /***/ "./scripts/elementor/FormWidget/FormWidgetController.tsx":
441 /*!***************************************************************!*\
442 !*** ./scripts/elementor/FormWidget/FormWidgetController.tsx ***!
443 \***************************************************************/
444 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
445
446 "use strict";
447 __webpack_require__.r(__webpack_exports__);
448 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
449 /* harmony export */ "default": () => (/* binding */ FormWidgetController)
450 /* harmony export */ });
451 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
452 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
453 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
454 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
455 /* harmony import */ var _shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx");
456 /* harmony import */ var _shared_Form_FormEdit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/Form/FormEdit */ "./scripts/shared/Form/FormEdit.tsx");
457 /* harmony import */ var _shared_enums_connectionStatus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/enums/connectionStatus */ "./scripts/shared/enums/connectionStatus.ts");
458
459
460
461
462
463
464 function FormWidgetController(attributes, setValue) {
465 return function () {
466 var render = function render() {
467 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.connectionStatus === _shared_enums_connectionStatus__WEBPACK_IMPORTED_MODULE_5__["default"].Connected) {
468 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Form_FormEdit__WEBPACK_IMPORTED_MODULE_4__["default"], {
469 attributes: attributes,
470 isSelected: true,
471 setAttributes: setValue,
472 preview: false,
473 origin: "elementor"
474 });
475 } else {
476 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_3__["default"], {
477 status: 401
478 });
479 }
480 };
481
482 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
483 children: render()
484 });
485 };
486 }
487
488 /***/ }),
489
490 /***/ "./scripts/elementor/FormWidget/hooks/useForms.ts":
491 /*!********************************************************!*\
492 !*** ./scripts/elementor/FormWidget/hooks/useForms.ts ***!
493 \********************************************************/
494 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
495
496 "use strict";
497 __webpack_require__.r(__webpack_exports__);
498 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
499 /* harmony export */ "default": () => (/* binding */ useForms)
500 /* harmony export */ });
501 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
502 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
503 /* harmony import */ var _shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/enums/loadState */ "./scripts/shared/enums/loadState.ts");
504 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
505 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
506 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
507
508 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
509
510 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
511
512 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
513
514 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
515
516 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
517
518
519
520
521
522 function useForms() {
523 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_3__.usePostAsyncBackgroundMessage)();
524
525 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].NotLoaded),
526 _useState2 = _slicedToArray(_useState, 2),
527 loadState = _useState2[0],
528 setLoadState = _useState2[1];
529
530 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
531 _useState4 = _slicedToArray(_useState3, 2),
532 hasError = _useState4[0],
533 setError = _useState4[1];
534
535 var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
536 _useState6 = _slicedToArray(_useState5, 2),
537 forms = _useState6[0],
538 setForms = _useState6[1];
539
540 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
541 if (loadState === _shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].NotLoaded) {
542 proxy({
543 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_2__.ProxyMessages.FetchForms,
544 payload: {
545 search: ''
546 }
547 }).then(function (data) {
548 setForms(data.map(function (form) {
549 return {
550 label: form.name,
551 value: form.guid
552 };
553 }));
554 setLoadState(_shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].Loaded);
555 })["catch"](function (error) {
556 setError(error);
557 setLoadState(_shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].Failed);
558 });
559 }
560 }, [loadState]);
561 return {
562 forms: forms,
563 loading: loadState === _shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].Loading,
564 hasError: hasError
565 };
566 }
567
568 /***/ }),
569
570 /***/ "./scripts/elementor/FormWidget/registerFormWidget.ts":
571 /*!************************************************************!*\
572 !*** ./scripts/elementor/FormWidget/registerFormWidget.ts ***!
573 \************************************************************/
574 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
575
576 "use strict";
577 __webpack_require__.r(__webpack_exports__);
578 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
579 /* harmony export */ "default": () => (/* binding */ registerFormWidget)
580 /* harmony export */ });
581 /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom */ "react-dom");
582 /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_0__);
583 /* harmony import */ var _FormControlController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormControlController */ "./scripts/elementor/FormWidget/FormControlController.tsx");
584 /* harmony import */ var _FormWidgetController__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FormWidgetController */ "./scripts/elementor/FormWidget/FormWidgetController.tsx");
585 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
586
587 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
588
589 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
590
591 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
592
593
594
595
596
597 var registerFormWidget = /*#__PURE__*/function () {
598 function registerFormWidget(controlContainer, widgetContainer, setValue) {
599 _classCallCheck(this, registerFormWidget);
600
601 _defineProperty(this, "widgetContainer", void 0);
602
603 _defineProperty(this, "attributes", void 0);
604
605 _defineProperty(this, "controlContainer", void 0);
606
607 _defineProperty(this, "setValue", void 0);
608
609 var attributes = widgetContainer.dataset.attributes ? JSON.parse(widgetContainer.dataset.attributes) : {};
610 this.widgetContainer = widgetContainer;
611 this.controlContainer = controlContainer;
612 this.setValue = setValue;
613 this.attributes = attributes;
614 }
615
616 _createClass(registerFormWidget, [{
617 key: "render",
618 value: function render() {
619 react_dom__WEBPACK_IMPORTED_MODULE_0___default().render((0,_FormWidgetController__WEBPACK_IMPORTED_MODULE_2__["default"])(this.attributes, this.setValue)(), this.widgetContainer);
620 react_dom__WEBPACK_IMPORTED_MODULE_0___default().render((0,_FormControlController__WEBPACK_IMPORTED_MODULE_1__["default"])(this.attributes, this.setValue)(), this.controlContainer);
621 }
622 }, {
623 key: "done",
624 value: function done() {
625 react_dom__WEBPACK_IMPORTED_MODULE_0___default().unmountComponentAtNode(this.widgetContainer);
626 react_dom__WEBPACK_IMPORTED_MODULE_0___default().unmountComponentAtNode(this.controlContainer);
627 }
628 }]);
629
630 return registerFormWidget;
631 }();
632
633
634
635 /***/ }),
636
637 /***/ "./scripts/elementor/MeetingWidget/ElementorMeetingSelect.tsx":
638 /*!********************************************************************!*\
639 !*** ./scripts/elementor/MeetingWidget/ElementorMeetingSelect.tsx ***!
640 \********************************************************************/
641 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
642
643 "use strict";
644 __webpack_require__.r(__webpack_exports__);
645 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
646 /* harmony export */ "default": () => (/* binding */ ElementorMeetingsSelectContainer)
647 /* harmony export */ });
648 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
649 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
650 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
651 /* harmony import */ var _Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx");
652 /* harmony import */ var _shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx");
653 /* harmony import */ var _ElementorMeetingWarning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ElementorMeetingWarning */ "./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx");
654 /* harmony import */ var _shared_Meeting_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/Meeting/hooks/useMeetings */ "./scripts/shared/Meeting/hooks/useMeetings.ts");
655 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
656 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__);
657 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! raven-js */ "./node_modules/raven-js/src/singleton.js");
658 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(raven_js__WEBPACK_IMPORTED_MODULE_7__);
659 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
660 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
661 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
662 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
663
664 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
665
666 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
667
668 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
669
670 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
671
672 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
673
674 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
675
676 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
677
678 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
679
680
681
682
683
684
685
686
687
688
689
690
691
692 function ElementorMeetingSelect(_ref) {
693 var url = _ref.url,
694 setAttributes = _ref.setAttributes;
695
696 var _useMeetings = (0,_shared_Meeting_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__["default"])(),
697 meetings = _useMeetings.mappedMeetings,
698 loading = _useMeetings.loading,
699 error = _useMeetings.error,
700 reload = _useMeetings.reload,
701 connectCalendar = _useMeetings.connectCalendar;
702
703 var selectedMeetingCalendar = (0,_shared_Meeting_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__.useSelectedMeetingCalendar)(url);
704
705 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(url),
706 _useState2 = _slicedToArray(_useState, 2),
707 localUrl = _useState2[0],
708 setLocalUrl = _useState2[1];
709
710 var handleConnectCalendar = function handleConnectCalendar() {
711 return connectCalendar().then(function () {
712 reload();
713 })["catch"](function (error) {
714 raven_js__WEBPACK_IMPORTED_MODULE_7___default().captureMessage('Unable to connect calendar', {
715 extra: {
716 error: error
717 }
718 });
719 });
720 };
721
722 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
723 children: loading ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
724 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__["default"], {})
725 }) : error ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_2__["default"], {
726 type: "danger",
727 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Please refresh your meetings or try again in a few minutes.', 'leadin')
728 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
729 children: [selectedMeetingCalendar && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ElementorMeetingWarning__WEBPACK_IMPORTED_MODULE_4__["default"], {
730 status: selectedMeetingCalendar,
731 onConnectCalendar: connectCalendar
732 }), meetings.length > 1 && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("select", {
733 value: localUrl,
734 onChange: function onChange(event) {
735 var newUrl = event.target.value;
736 setLocalUrl(newUrl);
737 setAttributes({
738 url: newUrl
739 });
740 },
741 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
742 value: "",
743 disabled: true,
744 selected: true,
745 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Select a meeting', 'leadin')
746 }), meetings.map(function (item) {
747 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
748 value: item.value,
749 children: item.label
750 }, item.value);
751 })]
752 })]
753 })
754 });
755 }
756
757 function ElementorMeetingSelectWrapper(props) {
758 var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__.useBackgroundAppContext)();
759 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
760 children: !isBackgroundAppReady ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
761 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__["default"], {})
762 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorMeetingSelect, _objectSpread({}, props))
763 });
764 }
765
766 function ElementorMeetingsSelectContainer(props) {
767 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__.BackgroudAppContext.Provider, {
768 value: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_9__.refreshToken && (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_10__.getOrCreateBackgroundApp)(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_9__.refreshToken),
769 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorMeetingSelectWrapper, _objectSpread({}, props))
770 });
771 }
772
773 /***/ }),
774
775 /***/ "./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx":
776 /*!*********************************************************************!*\
777 !*** ./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx ***!
778 \*********************************************************************/
779 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
780
781 "use strict";
782 __webpack_require__.r(__webpack_exports__);
783 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
784 /* harmony export */ "default": () => (/* binding */ MeetingWarning)
785 /* harmony export */ });
786 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
787 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
788 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
789 /* harmony import */ var _shared_Meeting_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/Meeting/constants */ "./scripts/shared/Meeting/constants.ts");
790 /* harmony import */ var _Common_ElementorButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ElementorButton */ "./scripts/elementor/Common/ElementorButton.tsx");
791 /* harmony import */ var _Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Common/ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx");
792 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
793 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
794 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
795
796
797
798
799
800
801
802 var Container = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_6__.styled)('div')({
803 name: "Container",
804 "class": "c1p032ba",
805 propsAsIs: false
806 });
807 function MeetingWarning(_ref) {
808 var onConnectCalendar = _ref.onConnectCalendar,
809 status = _ref.status;
810 var isMeetingOwner = status === _shared_Meeting_constants__WEBPACK_IMPORTED_MODULE_2__.CURRENT_USER_CALENDAR_MISSING;
811 var titleText = isMeetingOwner ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Your calendar is not connected.', 'leadin') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Calendar is not connected.', 'leadin');
812 var titleMessage = isMeetingOwner ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Please connect your calendar to activate your scheduling pages.', 'leadin') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Make sure that everybody in this meeting has connected their calendar from the Meetings page in HubSpot.', 'leadin');
813 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
814 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Container, {
815 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_4__["default"], {
816 type: "warning",
817 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
818 children: titleText
819 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("br", {}), titleMessage]
820 })
821 }), isMeetingOwner && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ElementorButton__WEBPACK_IMPORTED_MODULE_3__["default"], {
822 id: "meetings-connect-calendar",
823 onClick: onConnectCalendar,
824 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Connect calendar', 'leadin')
825 })]
826 });
827 }
828
829 __webpack_require__(/*! ./ElementorMeetingWarning.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./ElementorMeetingWarning.tsx */ "./scripts/elementor/MeetingWidget/ElementorMeetingWarning.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx");
830
831 /***/ }),
832
833 /***/ "./scripts/elementor/MeetingWidget/MeetingControlController.tsx":
834 /*!**********************************************************************!*\
835 !*** ./scripts/elementor/MeetingWidget/MeetingControlController.tsx ***!
836 \**********************************************************************/
837 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
838
839 "use strict";
840 __webpack_require__.r(__webpack_exports__);
841 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
842 /* harmony export */ "default": () => (/* binding */ MeetingControlController)
843 /* harmony export */ });
844 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
845 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
846 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
847 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
848 /* harmony import */ var _Common_ConnectPluginBanner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ConnectPluginBanner */ "./scripts/elementor/Common/ConnectPluginBanner.tsx");
849 /* harmony import */ var _ElementorMeetingSelect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ElementorMeetingSelect */ "./scripts/elementor/MeetingWidget/ElementorMeetingSelect.tsx");
850
851
852
853
854
855 var ConnectionStatus = {
856 Connected: 'Connected',
857 NotConnected: 'NotConnected'
858 };
859 function MeetingControlController(attributes, setValue) {
860 return function () {
861 var render = function render() {
862 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.connectionStatus === ConnectionStatus.Connected) {
863 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ElementorMeetingSelect__WEBPACK_IMPORTED_MODULE_4__["default"], {
864 url: attributes.url,
865 setAttributes: setValue
866 });
867 } else {
868 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ConnectPluginBanner__WEBPACK_IMPORTED_MODULE_3__["default"], {});
869 }
870 };
871
872 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
873 children: render()
874 });
875 };
876 }
877
878 /***/ }),
879
880 /***/ "./scripts/elementor/MeetingWidget/MeetingWidgetController.tsx":
881 /*!*********************************************************************!*\
882 !*** ./scripts/elementor/MeetingWidget/MeetingWidgetController.tsx ***!
883 \*********************************************************************/
884 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
885
886 "use strict";
887 __webpack_require__.r(__webpack_exports__);
888 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
889 /* harmony export */ "default": () => (/* binding */ MeetingWidgetController)
890 /* harmony export */ });
891 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
892 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
893 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
894 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
895 /* harmony import */ var _shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx");
896 /* harmony import */ var _shared_Meeting_MeetingEdit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/Meeting/MeetingEdit */ "./scripts/shared/Meeting/MeetingEdit.tsx");
897
898
899
900
901
902 var ConnectionStatus = {
903 Connected: 'Connected',
904 NotConnected: 'NotConnected'
905 };
906 function MeetingWidgetController(attributes, setValue) {
907 return function () {
908 var render = function render() {
909 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.connectionStatus === ConnectionStatus.Connected) {
910 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Meeting_MeetingEdit__WEBPACK_IMPORTED_MODULE_4__["default"], {
911 attributes: attributes,
912 isSelected: true,
913 setAttributes: setValue,
914 preview: false,
915 origin: "elementor"
916 });
917 } else {
918 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_3__["default"], {
919 status: 401
920 });
921 }
922 };
923
924 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
925 children: render()
926 });
927 };
928 }
929
930 /***/ }),
931
932 /***/ "./scripts/elementor/MeetingWidget/registerMeetingWidget.ts":
933 /*!******************************************************************!*\
934 !*** ./scripts/elementor/MeetingWidget/registerMeetingWidget.ts ***!
935 \******************************************************************/
936 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
937
938 "use strict";
939 __webpack_require__.r(__webpack_exports__);
940 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
941 /* harmony export */ "default": () => (/* binding */ registerMeetingsWidget)
942 /* harmony export */ });
943 /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom */ "react-dom");
944 /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_0__);
945 /* harmony import */ var _MeetingControlController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MeetingControlController */ "./scripts/elementor/MeetingWidget/MeetingControlController.tsx");
946 /* harmony import */ var _MeetingWidgetController__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MeetingWidgetController */ "./scripts/elementor/MeetingWidget/MeetingWidgetController.tsx");
947 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
948
949 function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
950
951 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
952
953 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
954
955
956
957
958
959 var registerMeetingsWidget = /*#__PURE__*/function () {
960 function registerMeetingsWidget(controlContainer, widgetContainer, setValue) {
961 _classCallCheck(this, registerMeetingsWidget);
962
963 _defineProperty(this, "widgetContainer", void 0);
964
965 _defineProperty(this, "controlContainer", void 0);
966
967 _defineProperty(this, "setValue", void 0);
968
969 _defineProperty(this, "attributes", void 0);
970
971 var attributes = widgetContainer.dataset.attributes ? JSON.parse(widgetContainer.dataset.attributes) : {};
972 this.widgetContainer = widgetContainer;
973 this.controlContainer = controlContainer;
974 this.setValue = setValue;
975 this.attributes = attributes;
976 }
977
978 _createClass(registerMeetingsWidget, [{
979 key: "render",
980 value: function render() {
981 react_dom__WEBPACK_IMPORTED_MODULE_0___default().render((0,_MeetingWidgetController__WEBPACK_IMPORTED_MODULE_2__["default"])(this.attributes, this.setValue)(), this.widgetContainer);
982 react_dom__WEBPACK_IMPORTED_MODULE_0___default().render((0,_MeetingControlController__WEBPACK_IMPORTED_MODULE_1__["default"])(this.attributes, this.setValue)(), this.controlContainer);
983 }
984 }, {
985 key: "done",
986 value: function done() {
987 react_dom__WEBPACK_IMPORTED_MODULE_0___default().unmountComponentAtNode(this.widgetContainer);
988 react_dom__WEBPACK_IMPORTED_MODULE_0___default().unmountComponentAtNode(this.controlContainer);
989 }
990 }]);
991
992 return registerMeetingsWidget;
993 }();
994
995
996
997 /***/ }),
998
999 /***/ "./scripts/elementor/elementorWidget.ts":
1000 /*!**********************************************!*\
1001 !*** ./scripts/elementor/elementorWidget.ts ***!
1002 \**********************************************/
1003 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1004
1005 "use strict";
1006 __webpack_require__.r(__webpack_exports__);
1007 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1008 /* harmony export */ "default": () => (/* binding */ elementorWidget)
1009 /* harmony export */ });
1010 function elementorWidget(elementor, options, callback) {
1011 var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
1012 return elementor.modules.controls.BaseData.extend({
1013 onReady: function onReady() {
1014 var self = this;
1015 var controlContainer = this.ui.contentEditable.prevObject[0].querySelector(options.controlSelector);
1016 var widgetContainer = this.options.element.$el[0].querySelector(options.containerSelector);
1017
1018 if (widgetContainer) {
1019 callback(controlContainer, widgetContainer, function (args) {
1020 return self.setValue(args);
1021 });
1022 } else {
1023 //@ts-expect-error global
1024 window.elementorFrontend.hooks.addAction("frontend/element_ready/".concat(options.widgetName, ".default"), function (element) {
1025 widgetContainer = element[0].querySelector(options.containerSelector);
1026 callback(controlContainer, widgetContainer, function (args) {
1027 return self.setValue(args);
1028 });
1029 });
1030 }
1031 },
1032 saveValue: function saveValue(props) {
1033 this.setValue(props);
1034 },
1035 onBeforeDestroy: function onBeforeDestroy() {
1036 //@ts-expect-error global
1037 window.elementorFrontend.hooks.removeAction("frontend/element_ready/".concat(options.widgetName, ".default"));
1038 done();
1039 }
1040 });
1041 }
1042
1043 /***/ }),
1044
1045 /***/ "./scripts/iframe/integratedMessages/core/CoreMessages.ts":
1046 /*!****************************************************************!*\
1047 !*** ./scripts/iframe/integratedMessages/core/CoreMessages.ts ***!
1048 \****************************************************************/
1049 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1050
1051 "use strict";
1052 __webpack_require__.r(__webpack_exports__);
1053 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1054 /* harmony export */ "CoreMessages": () => (/* binding */ CoreMessages)
1055 /* harmony export */ });
1056 var CoreMessages = {
1057 HandshakeReceive: 'INTEGRATED_APP_EMBEDDER_HANDSHAKE_RECEIVED',
1058 SendRefreshToken: 'INTEGRATED_APP_EMBEDDER_SEND_REFRESH_TOKEN',
1059 ReloadParentFrame: 'INTEGRATED_APP_EMBEDDER_RELOAD_PARENT_FRAME',
1060 RedirectParentFrame: 'INTEGRATED_APP_EMBEDDER_REDIRECT_PARENT_FRAME',
1061 SendLocale: 'INTEGRATED_APP_EMBEDDER_SEND_LOCALE',
1062 SendDeviceId: 'INTEGRATED_APP_EMBEDDER_SEND_DEVICE_ID'
1063 };
1064
1065 /***/ }),
1066
1067 /***/ "./scripts/iframe/integratedMessages/forms/FormsMessages.ts":
1068 /*!******************************************************************!*\
1069 !*** ./scripts/iframe/integratedMessages/forms/FormsMessages.ts ***!
1070 \******************************************************************/
1071 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1072
1073 "use strict";
1074 __webpack_require__.r(__webpack_exports__);
1075 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1076 /* harmony export */ "FormMessages": () => (/* binding */ FormMessages)
1077 /* harmony export */ });
1078 var FormMessages = {
1079 CreateFormAppNavigation: 'CREATE_FORM_APP_NAVIGATION'
1080 };
1081
1082 /***/ }),
1083
1084 /***/ "./scripts/iframe/integratedMessages/index.ts":
1085 /*!****************************************************!*\
1086 !*** ./scripts/iframe/integratedMessages/index.ts ***!
1087 \****************************************************/
1088 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1089
1090 "use strict";
1091 __webpack_require__.r(__webpack_exports__);
1092 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1093 /* harmony export */ "CoreMessages": () => (/* reexport safe */ _core_CoreMessages__WEBPACK_IMPORTED_MODULE_0__.CoreMessages),
1094 /* harmony export */ "FormMessages": () => (/* reexport safe */ _forms_FormsMessages__WEBPACK_IMPORTED_MODULE_1__.FormMessages),
1095 /* harmony export */ "LiveChatMessages": () => (/* reexport safe */ _livechat_LiveChatMessages__WEBPACK_IMPORTED_MODULE_2__.LiveChatMessages),
1096 /* harmony export */ "PluginMessages": () => (/* reexport safe */ _plugin_PluginMessages__WEBPACK_IMPORTED_MODULE_3__.PluginMessages),
1097 /* harmony export */ "ProxyMessages": () => (/* reexport safe */ _proxy_ProxyMessages__WEBPACK_IMPORTED_MODULE_4__.ProxyMessages)
1098 /* harmony export */ });
1099 /* harmony import */ var _core_CoreMessages__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/CoreMessages */ "./scripts/iframe/integratedMessages/core/CoreMessages.ts");
1100 /* harmony import */ var _forms_FormsMessages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./forms/FormsMessages */ "./scripts/iframe/integratedMessages/forms/FormsMessages.ts");
1101 /* harmony import */ var _livechat_LiveChatMessages__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./livechat/LiveChatMessages */ "./scripts/iframe/integratedMessages/livechat/LiveChatMessages.ts");
1102 /* harmony import */ var _plugin_PluginMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./plugin/PluginMessages */ "./scripts/iframe/integratedMessages/plugin/PluginMessages.ts");
1103 /* harmony import */ var _proxy_ProxyMessages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./proxy/ProxyMessages */ "./scripts/iframe/integratedMessages/proxy/ProxyMessages.ts");
1104
1105
1106
1107
1108
1109
1110 /***/ }),
1111
1112 /***/ "./scripts/iframe/integratedMessages/livechat/LiveChatMessages.ts":
1113 /*!************************************************************************!*\
1114 !*** ./scripts/iframe/integratedMessages/livechat/LiveChatMessages.ts ***!
1115 \************************************************************************/
1116 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1117
1118 "use strict";
1119 __webpack_require__.r(__webpack_exports__);
1120 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1121 /* harmony export */ "LiveChatMessages": () => (/* binding */ LiveChatMessages)
1122 /* harmony export */ });
1123 var LiveChatMessages = {
1124 CreateLiveChatAppNavigation: 'CREATE_LIVE_CHAT_APP_NAVIGATION'
1125 };
1126
1127 /***/ }),
1128
1129 /***/ "./scripts/iframe/integratedMessages/plugin/PluginMessages.ts":
1130 /*!********************************************************************!*\
1131 !*** ./scripts/iframe/integratedMessages/plugin/PluginMessages.ts ***!
1132 \********************************************************************/
1133 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1134
1135 "use strict";
1136 __webpack_require__.r(__webpack_exports__);
1137 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1138 /* harmony export */ "PluginMessages": () => (/* binding */ PluginMessages)
1139 /* harmony export */ });
1140 var PluginMessages = {
1141 PluginSettingsNavigation: 'PLUGIN_SETTINGS_NAVIGATION',
1142 PluginLeadinConfig: 'PLUGIN_LEADIN_CONFIG',
1143 TrackConsent: 'INTEGRATED_APP_EMBEDDER_TRACK_CONSENT',
1144 InternalTrackingFetchRequest: 'INTEGRATED_TRACKING_FETCH_REQUEST',
1145 InternalTrackingFetchResponse: 'INTEGRATED_TRACKING_FETCH_RESPONSE',
1146 InternalTrackingFetchError: 'INTEGRATED_TRACKING_FETCH_ERROR',
1147 InternalTrackingChangeRequest: 'INTEGRATED_TRACKING_CHANGE_REQUEST',
1148 InternalTrackingChangeError: 'INTEGRATED_TRACKING_CHANGE_ERROR',
1149 BusinessUnitFetchRequest: 'BUSINESS_UNIT_FETCH_REQUEST',
1150 BusinessUnitFetchResponse: 'BUSINESS_UNIT_FETCH_FETCH_RESPONSE',
1151 BusinessUnitFetchError: 'BUSINESS_UNIT_FETCH_FETCH_ERROR',
1152 BusinessUnitChangeRequest: 'BUSINESS_UNIT_CHANGE_REQUEST',
1153 BusinessUnitChangeError: 'BUSINESS_UNIT_CHANGE_ERROR',
1154 SkipReviewRequest: 'SKIP_REVIEW_REQUEST',
1155 SkipReviewResponse: 'SKIP_REVIEW_RESPONSE',
1156 SkipReviewError: 'SKIP_REVIEW_ERROR',
1157 RemoveParentQueryParam: 'REMOVE_PARENT_QUERY_PARAM'
1158 };
1159
1160 /***/ }),
1161
1162 /***/ "./scripts/iframe/integratedMessages/proxy/ProxyMessages.ts":
1163 /*!******************************************************************!*\
1164 !*** ./scripts/iframe/integratedMessages/proxy/ProxyMessages.ts ***!
1165 \******************************************************************/
1166 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1167
1168 "use strict";
1169 __webpack_require__.r(__webpack_exports__);
1170 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1171 /* harmony export */ "ProxyMessages": () => (/* binding */ ProxyMessages)
1172 /* harmony export */ });
1173 var ProxyMessages = {
1174 FetchForms: 'FETCH_FORMS',
1175 FetchForm: 'FETCH_FORM',
1176 CreateFormFromTemplate: 'CREATE_FORM_FROM_TEMPLATE',
1177 FetchAuth: 'FETCH_AUTH',
1178 FetchMeetingsAndUsers: 'FETCH_MEETINGS_AND_USERS',
1179 FetchContactsCreateSinceActivation: 'FETCH_CONTACTS_CREATED_SINCE_ACTIVATION',
1180 FetchOrCreateMeetingUser: 'FETCH_OR_CREATE_MEETING_USER',
1181 ConnectMeetingsCalendar: 'CONNECT_MEETINGS_CALENDAR',
1182 TrackFormPreviewRender: 'TRACK_FORM_PREVIEW_RENDER',
1183 TrackFormCreatedFromTemplate: 'TRACK_FORM_CREATED_FROM_TEMPLATE',
1184 TrackFormCreationFailed: 'TRACK_FORM_CREATION_FAILED',
1185 TrackMeetingPreviewRender: 'TRACK_MEETING_PREVIEW_RENDER',
1186 TrackSidebarMetaChange: 'TRACK_SIDEBAR_META_CHANGE',
1187 TrackReviewBannerRender: 'TRACK_REVIEW_BANNER_RENDER',
1188 TrackReviewBannerInteraction: 'TRACK_REVIEW_BANNER_INTERACTION',
1189 TrackReviewBannerDismissed: 'TRACK_REVIEW_BANNER_DISMISSED',
1190 TrackPluginDeactivation: 'TRACK_PLUGIN_DEACTIVATION'
1191 };
1192
1193 /***/ }),
1194
1195 /***/ "./scripts/iframe/useBackgroundApp.ts":
1196 /*!********************************************!*\
1197 !*** ./scripts/iframe/useBackgroundApp.ts ***!
1198 \********************************************/
1199 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1200
1201 "use strict";
1202 __webpack_require__.r(__webpack_exports__);
1203 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1204 /* harmony export */ "BackgroudAppContext": () => (/* binding */ BackgroudAppContext),
1205 /* harmony export */ "useBackgroundAppContext": () => (/* binding */ useBackgroundAppContext),
1206 /* harmony export */ "usePostAsyncBackgroundMessage": () => (/* binding */ usePostAsyncBackgroundMessage),
1207 /* harmony export */ "usePostBackgroundMessage": () => (/* binding */ usePostBackgroundMessage)
1208 /* harmony export */ });
1209 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1210 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1211
1212 var BackgroudAppContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
1213 function useBackgroundAppContext() {
1214 return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(BackgroudAppContext);
1215 }
1216 function usePostBackgroundMessage() {
1217 var app = useBackgroundAppContext();
1218 return function (message) {
1219 app.postMessage(message);
1220 };
1221 }
1222 function usePostAsyncBackgroundMessage() {
1223 var app = useBackgroundAppContext();
1224 return function (message) {
1225 return app.postAsyncMessage(message);
1226 };
1227 }
1228
1229 /***/ }),
1230
1231 /***/ "./scripts/lib/Raven.ts":
1232 /*!******************************!*\
1233 !*** ./scripts/lib/Raven.ts ***!
1234 \******************************/
1235 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1236
1237 "use strict";
1238 __webpack_require__.r(__webpack_exports__);
1239 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1240 /* harmony export */ "configureRaven": () => (/* binding */ configureRaven),
1241 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1242 /* harmony export */ });
1243 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! raven-js */ "./node_modules/raven-js/src/singleton.js");
1244 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(raven_js__WEBPACK_IMPORTED_MODULE_0__);
1245 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1246
1247
1248 function configureRaven() {
1249 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.hubspotBaseUrl.indexOf('app.hubspot.com') === -1) {
1250 return;
1251 }
1252
1253 raven_js__WEBPACK_IMPORTED_MODULE_0___default().config('https://e9b8f382cdd130c0d415cd977d2be56f@exceptions.hubspot.com/1', {
1254 instrument: {
1255 tryCatch: false
1256 },
1257 release: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.leadinPluginVersion
1258 }).install();
1259 raven_js__WEBPACK_IMPORTED_MODULE_0___default().setTagsContext({
1260 v: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.leadinPluginVersion,
1261 php: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.phpVersion,
1262 wordpress: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.wpVersion
1263 });
1264 raven_js__WEBPACK_IMPORTED_MODULE_0___default().setExtraContext({
1265 hub: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.portalId,
1266 plugins: Object.keys(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.plugins).map(function (name) {
1267 return "".concat(name, "#").concat(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.plugins[name]);
1268 }).join(',')
1269 });
1270 }
1271 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((raven_js__WEBPACK_IMPORTED_MODULE_0___default()));
1272
1273 /***/ }),
1274
1275 /***/ "./scripts/shared/Common/AsyncSelect.tsx":
1276 /*!***********************************************!*\
1277 !*** ./scripts/shared/Common/AsyncSelect.tsx ***!
1278 \***********************************************/
1279 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1280
1281 "use strict";
1282 __webpack_require__.r(__webpack_exports__);
1283 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1284 /* harmony export */ "default": () => (/* binding */ AsyncSelect)
1285 /* harmony export */ });
1286 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1287 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1288 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1289 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
1290 /* harmony import */ var _UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/colors */ "./scripts/shared/UIComponents/colors.ts");
1291 /* harmony import */ var _UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx");
1292 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../enums/loadState */ "./scripts/shared/enums/loadState.ts");
1293 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1294
1295 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1296
1297 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1298
1299 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1300
1301 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1302
1303 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1304
1305
1306
1307
1308
1309
1310
1311 var Container = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1312 name: "Container",
1313 "class": "c1wxx7eu",
1314 propsAsIs: false
1315 });
1316
1317 var _exp2 = /*#__PURE__*/function _exp2() {
1318 return function (props) {
1319 return props.focused ? '0' : '1px';
1320 };
1321 };
1322
1323 var _exp3 = /*#__PURE__*/function _exp3() {
1324 return function (props) {
1325 return props.focused ? "0 0 0 2px ".concat(_UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__.CALYPSO_MEDIUM) : 'none';
1326 };
1327 };
1328
1329 var ControlContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1330 name: "ControlContainer",
1331 "class": "c1rgwbep",
1332 propsAsIs: false,
1333 vars: {
1334 "c1rgwbep-0": [_exp2()],
1335 "c1rgwbep-1": [_exp3()]
1336 }
1337 });
1338 var ValueContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1339 name: "ValueContainer",
1340 "class": "v1mdmbaj",
1341 propsAsIs: false
1342 });
1343 var Placeholder = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1344 name: "Placeholder",
1345 "class": "p1gwkvxy",
1346 propsAsIs: false
1347 });
1348 var SingleValue = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1349 name: "SingleValue",
1350 "class": "s1bwlafs",
1351 propsAsIs: false
1352 });
1353 var IndicatorContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1354 name: "IndicatorContainer",
1355 "class": "i196z9y5",
1356 propsAsIs: false
1357 });
1358 var DropdownIndicator = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1359 name: "DropdownIndicator",
1360 "class": "d1dfo5ow",
1361 propsAsIs: false
1362 });
1363 var InputContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1364 name: "InputContainer",
1365 "class": "if3lze",
1366 propsAsIs: false
1367 });
1368 var Input = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('input')({
1369 name: "Input",
1370 "class": "i9kxf50",
1371 propsAsIs: false
1372 });
1373 var InputShadow = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1374 name: "InputShadow",
1375 "class": "igjr3uc",
1376 propsAsIs: false
1377 });
1378 var MenuContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1379 name: "MenuContainer",
1380 "class": "mhb9if7",
1381 propsAsIs: false
1382 });
1383 var MenuList = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1384 name: "MenuList",
1385 "class": "mxaof7s",
1386 propsAsIs: false
1387 });
1388 var MenuGroup = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1389 name: "MenuGroup",
1390 "class": "mw50s5v",
1391 propsAsIs: false
1392 });
1393 var MenuGroupHeader = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1394 name: "MenuGroupHeader",
1395 "class": "m11rzvjw",
1396 propsAsIs: false
1397 });
1398
1399 var _exp5 = /*#__PURE__*/function _exp5() {
1400 return function (props) {
1401 return props.selected ? _UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__.CALYPSO_MEDIUM : 'transparent';
1402 };
1403 };
1404
1405 var _exp6 = /*#__PURE__*/function _exp6() {
1406 return function (props) {
1407 return props.selected ? '#fff' : 'inherit';
1408 };
1409 };
1410
1411 var _exp7 = /*#__PURE__*/function _exp7() {
1412 return function (props) {
1413 return props.selected ? _UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__.CALYPSO_MEDIUM : _UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__.CALYPSO_LIGHT;
1414 };
1415 };
1416
1417 var MenuItem = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1418 name: "MenuItem",
1419 "class": "m1jcdsjv",
1420 propsAsIs: false,
1421 vars: {
1422 "m1jcdsjv-0": [_exp5()],
1423 "m1jcdsjv-1": [_exp6()],
1424 "m1jcdsjv-2": [_exp7()]
1425 }
1426 });
1427 function AsyncSelect(_ref) {
1428 var placeholder = _ref.placeholder,
1429 value = _ref.value,
1430 loadOptions = _ref.loadOptions,
1431 onChange = _ref.onChange,
1432 defaultOptions = _ref.defaultOptions;
1433 var inputEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
1434 var inputShadowEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
1435
1436 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
1437 _useState2 = _slicedToArray(_useState, 2),
1438 isFocused = _useState2[0],
1439 setFocus = _useState2[1];
1440
1441 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(_enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].NotLoaded),
1442 _useState4 = _slicedToArray(_useState3, 2),
1443 loadState = _useState4[0],
1444 setLoadState = _useState4[1];
1445
1446 var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
1447 _useState6 = _slicedToArray(_useState5, 2),
1448 localValue = _useState6[0],
1449 setLocalValue = _useState6[1];
1450
1451 var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(defaultOptions),
1452 _useState8 = _slicedToArray(_useState7, 2),
1453 options = _useState8[0],
1454 setOptions = _useState8[1];
1455
1456 var inputSize = "".concat(inputShadowEl.current ? inputShadowEl.current.clientWidth + 10 : 2, "px");
1457 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
1458 if (loadOptions && loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].NotLoaded) {
1459 loadOptions('', function (result) {
1460 setOptions(result);
1461 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].Idle);
1462 });
1463 }
1464 }, [loadOptions, loadState]);
1465
1466 var renderItems = function renderItems() {
1467 var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1468 var parentKey = arguments.length > 1 ? arguments[1] : undefined;
1469 return items.map(function (item, index) {
1470 if (item.options) {
1471 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(MenuGroup, {
1472 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MenuGroupHeader, {
1473 id: "".concat(index, "-heading"),
1474 children: item.label
1475 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1476 children: renderItems(item.options, index)
1477 })]
1478 }, "async-select-item-".concat(index));
1479 } else {
1480 var key = "async-select-item-".concat(parentKey !== undefined ? "".concat(parentKey, "-").concat(index) : index);
1481 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MenuItem, {
1482 id: key,
1483 selected: value && item.value === value.value,
1484 onClick: function onClick() {
1485 onChange(item);
1486 setFocus(false);
1487 },
1488 children: item.label
1489 }, key);
1490 }
1491 });
1492 };
1493
1494 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Container, {
1495 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(ControlContainer, {
1496 id: "leadin-async-selector",
1497 focused: isFocused,
1498 onClick: function onClick() {
1499 if (isFocused) {
1500 if (inputEl.current) {
1501 inputEl.current.blur();
1502 }
1503
1504 setFocus(false);
1505 setLocalValue('');
1506 } else {
1507 if (inputEl.current) {
1508 inputEl.current.focus();
1509 }
1510
1511 setFocus(true);
1512 }
1513 },
1514 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(ValueContainer, {
1515 children: [localValue === '' && (!value ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Placeholder, {
1516 children: placeholder
1517 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SingleValue, {
1518 children: value.label
1519 })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(InputContainer, {
1520 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Input, {
1521 ref: inputEl,
1522 onFocus: function onFocus() {
1523 setFocus(true);
1524 },
1525 onChange: function onChange(e) {
1526 setLocalValue(e.target.value);
1527 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].Loading);
1528 loadOptions && loadOptions(e.target.value, function (result) {
1529 setOptions(result);
1530 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].Idle);
1531 });
1532 },
1533 value: localValue,
1534 width: inputSize,
1535 id: "asycn-select-input"
1536 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(InputShadow, {
1537 ref: inputShadowEl,
1538 children: localValue
1539 })]
1540 })]
1541 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(IndicatorContainer, {
1542 children: [loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].Loading && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__["default"], {}), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(DropdownIndicator, {})]
1543 })]
1544 }), isFocused && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MenuContainer, {
1545 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MenuList, {
1546 children: renderItems(options)
1547 })
1548 })]
1549 });
1550 }
1551
1552 __webpack_require__(/*! ./AsyncSelect.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./AsyncSelect.tsx */ "./scripts/shared/Common/AsyncSelect.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/AsyncSelect.tsx");
1553
1554 /***/ }),
1555
1556 /***/ "./scripts/shared/Common/ErrorHandler.tsx":
1557 /*!************************************************!*\
1558 !*** ./scripts/shared/Common/ErrorHandler.tsx ***!
1559 \************************************************/
1560 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1561
1562 "use strict";
1563 __webpack_require__.r(__webpack_exports__);
1564 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1565 /* harmony export */ "default": () => (/* binding */ ErrorHandler)
1566 /* harmony export */ });
1567 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1568 /* harmony import */ var _UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../UIComponents/UIButton */ "./scripts/shared/UIComponents/UIButton.ts");
1569 /* harmony import */ var _UIComponents_UIContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIContainer */ "./scripts/shared/UIComponents/UIContainer.ts");
1570 /* harmony import */ var _HubspotWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HubspotWrapper */ "./scripts/shared/Common/HubspotWrapper.ts");
1571 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1572 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1573 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
1574
1575
1576
1577
1578
1579
1580
1581
1582 function redirectToPlugin() {
1583 window.location.href = "".concat(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__.adminUrl, "admin.php?page=leadin&leadin_expired=").concat(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__.redirectNonce);
1584 }
1585
1586 function ErrorHandler(_ref) {
1587 var status = _ref.status,
1588 resetErrorState = _ref.resetErrorState,
1589 _ref$errorInfo = _ref.errorInfo,
1590 errorInfo = _ref$errorInfo === void 0 ? {
1591 header: '',
1592 message: '',
1593 action: ''
1594 } : _ref$errorInfo;
1595 var isUnauthorized = status === 401 || status === 403;
1596 var errorHeader = isUnauthorized ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Your plugin isn't authorized", 'leadin') : errorInfo.header;
1597 var errorMessage = isUnauthorized ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Reauthorize your plugin to access your free HubSpot tools.', 'leadin') : errorInfo.message;
1598 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HubspotWrapper__WEBPACK_IMPORTED_MODULE_3__["default"], {
1599 pluginPath: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__.pluginPath,
1600 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_UIComponents_UIContainer__WEBPACK_IMPORTED_MODULE_2__["default"], {
1601 textAlign: "center",
1602 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4", {
1603 children: errorHeader
1604 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
1605 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
1606 children: errorMessage
1607 })
1608 }), isUnauthorized ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_1__["default"], {
1609 "data-test-id": "authorize-button",
1610 onClick: redirectToPlugin,
1611 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Go to plugin', 'leadin')
1612 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_1__["default"], {
1613 "data-test-id": "retry-button",
1614 onClick: resetErrorState,
1615 children: errorInfo.action
1616 })]
1617 })
1618 });
1619 }
1620
1621 /***/ }),
1622
1623 /***/ "./scripts/shared/Common/HubspotWrapper.ts":
1624 /*!*************************************************!*\
1625 !*** ./scripts/shared/Common/HubspotWrapper.ts ***!
1626 \*************************************************/
1627 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1628
1629 "use strict";
1630 __webpack_require__.r(__webpack_exports__);
1631 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1632 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1633 /* harmony export */ });
1634 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
1635
1636
1637 var _exp = /*#__PURE__*/function _exp() {
1638 return function (props) {
1639 return "url(".concat(props.pluginPath, "/public/assets/images/hubspot.svg)");
1640 };
1641 };
1642
1643 var _exp2 = /*#__PURE__*/function _exp2() {
1644 return function (props) {
1645 return props.padding || '90px 20% 25px';
1646 };
1647 };
1648
1649 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_0__.styled)('div')({
1650 name: "HubspotWrapper0",
1651 "class": "h1q5v5ee",
1652 propsAsIs: false,
1653 vars: {
1654 "h1q5v5ee-0": [_exp()],
1655 "h1q5v5ee-1": [_exp2()]
1656 }
1657 }));
1658
1659 __webpack_require__(/*! ./HubspotWrapper.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./HubspotWrapper.ts */ "./scripts/shared/Common/HubspotWrapper.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/HubspotWrapper.ts");
1660
1661 /***/ }),
1662
1663 /***/ "./scripts/shared/Common/LoadingBlock.tsx":
1664 /*!************************************************!*\
1665 !*** ./scripts/shared/Common/LoadingBlock.tsx ***!
1666 \************************************************/
1667 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1668
1669 "use strict";
1670 __webpack_require__.r(__webpack_exports__);
1671 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1672 /* harmony export */ "default": () => (/* binding */ LoadingBlock)
1673 /* harmony export */ });
1674 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1675 /* harmony import */ var _HubspotWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HubspotWrapper */ "./scripts/shared/Common/HubspotWrapper.ts");
1676 /* harmony import */ var _UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx");
1677 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1678
1679
1680
1681
1682 function LoadingBlock() {
1683 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HubspotWrapper__WEBPACK_IMPORTED_MODULE_1__["default"], {
1684 pluginPath: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__.pluginPath,
1685 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_2__["default"], {
1686 size: 50
1687 })
1688 });
1689 }
1690
1691 /***/ }),
1692
1693 /***/ "./scripts/shared/Form/FormEdit.tsx":
1694 /*!******************************************!*\
1695 !*** ./scripts/shared/Form/FormEdit.tsx ***!
1696 \******************************************/
1697 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1698
1699 "use strict";
1700 __webpack_require__.r(__webpack_exports__);
1701 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1702 /* harmony export */ "default": () => (/* binding */ FormEditContainer)
1703 /* harmony export */ });
1704 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1705 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1706 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1707 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1708 /* harmony import */ var _UIComponents_UISpacer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../UIComponents/UISpacer */ "./scripts/shared/UIComponents/UISpacer.ts");
1709 /* harmony import */ var _PreviewForm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PreviewForm */ "./scripts/shared/Form/PreviewForm.tsx");
1710 /* harmony import */ var _FormSelect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FormSelect */ "./scripts/shared/Form/FormSelect.tsx");
1711 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
1712 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
1713 /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx");
1714 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
1715 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1716
1717 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1718
1719 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732 function FormEdit(_ref) {
1733 var attributes = _ref.attributes,
1734 isSelected = _ref.isSelected,
1735 setAttributes = _ref.setAttributes,
1736 _ref$preview = _ref.preview,
1737 preview = _ref$preview === void 0 ? true : _ref$preview,
1738 _ref$origin = _ref.origin,
1739 origin = _ref$origin === void 0 ? 'gutenberg' : _ref$origin;
1740 var formId = attributes.formId,
1741 formName = attributes.formName;
1742 var formSelected = _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId && formId;
1743 var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.useBackgroundAppContext)();
1744 var monitorFormPreviewRender = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.usePostBackgroundMessage)();
1745
1746 var handleChange = function handleChange(selectedForm) {
1747 setAttributes({
1748 portalId: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId,
1749 formId: selectedForm.value,
1750 formName: selectedForm.label
1751 });
1752 };
1753
1754 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
1755 monitorFormPreviewRender({
1756 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__.ProxyMessages.TrackFormPreviewRender,
1757 payload: {
1758 origin: origin
1759 }
1760 });
1761 }, [origin]);
1762 return !isBackgroundAppReady ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_8__["default"], {}) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
1763 children: [(isSelected || !formSelected) && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FormSelect__WEBPACK_IMPORTED_MODULE_5__["default"], {
1764 formId: formId,
1765 formName: formName,
1766 handleChange: handleChange,
1767 origin: origin
1768 }), formSelected && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
1769 children: [isSelected && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UISpacer__WEBPACK_IMPORTED_MODULE_3__["default"], {}), preview && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PreviewForm__WEBPACK_IMPORTED_MODULE_4__["default"], {
1770 portalId: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId,
1771 formId: formId
1772 })]
1773 })]
1774 });
1775 }
1776
1777 function FormEditContainer(props) {
1778 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.BackgroudAppContext.Provider, {
1779 value: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.refreshToken && (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_9__.getOrCreateBackgroundApp)(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.refreshToken),
1780 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(FormEdit, _objectSpread({}, props))
1781 });
1782 }
1783
1784 /***/ }),
1785
1786 /***/ "./scripts/shared/Form/FormSelect.tsx":
1787 /*!********************************************!*\
1788 !*** ./scripts/shared/Form/FormSelect.tsx ***!
1789 \********************************************/
1790 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1791
1792 "use strict";
1793 __webpack_require__.r(__webpack_exports__);
1794 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1795 /* harmony export */ "default": () => (/* binding */ FormSelect)
1796 /* harmony export */ });
1797 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1798 /* harmony import */ var _FormSelector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormSelector */ "./scripts/shared/Form/FormSelector.tsx");
1799 /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx");
1800 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1801 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
1802 /* harmony import */ var _hooks_useForms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks/useForms */ "./scripts/shared/Form/hooks/useForms.ts");
1803 /* harmony import */ var _hooks_useCreateFormFromTemplate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks/useCreateFormFromTemplate */ "./scripts/shared/Form/hooks/useCreateFormFromTemplate.ts");
1804 /* harmony import */ var _constants_defaultFormOptions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../constants/defaultFormOptions */ "./scripts/constants/defaultFormOptions.ts");
1805 /* harmony import */ var _Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx");
1806
1807
1808
1809
1810
1811
1812
1813
1814 function FormSelect(_ref) {
1815 var formId = _ref.formId,
1816 formName = _ref.formName,
1817 handleChange = _ref.handleChange,
1818 _ref$origin = _ref.origin,
1819 origin = _ref$origin === void 0 ? 'gutenberg' : _ref$origin;
1820
1821 var _useForms = (0,_hooks_useForms__WEBPACK_IMPORTED_MODULE_4__["default"])(),
1822 search = _useForms.search,
1823 formApiError = _useForms.formApiError,
1824 reset = _useForms.reset;
1825
1826 var _useCreateFormFromTem = (0,_hooks_useCreateFormFromTemplate__WEBPACK_IMPORTED_MODULE_5__["default"])(origin),
1827 createFormByTemplate = _useCreateFormFromTem.createFormByTemplate,
1828 createReset = _useCreateFormFromTem.reset,
1829 isCreating = _useCreateFormFromTem.isCreating,
1830 hasError = _useCreateFormFromTem.hasError,
1831 createApiError = _useCreateFormFromTem.formApiError;
1832
1833 var value = formId && formName ? {
1834 label: formName,
1835 value: formId
1836 } : null;
1837
1838 var handleLocalChange = function handleLocalChange(option) {
1839 if ((0,_constants_defaultFormOptions__WEBPACK_IMPORTED_MODULE_6__.isDefaultForm)(option.value)) {
1840 createFormByTemplate(option.value).then(function (_ref2) {
1841 var guid = _ref2.guid,
1842 name = _ref2.name;
1843 handleChange({
1844 value: guid,
1845 label: name
1846 });
1847 });
1848 } else {
1849 handleChange(option);
1850 }
1851 };
1852
1853 return isCreating ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_2__["default"], {}) : formApiError || createApiError ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_7__["default"], {
1854 status: formApiError ? formApiError.status : createApiError.status,
1855 resetErrorState: function resetErrorState() {
1856 if (hasError) {
1857 createReset();
1858 } else {
1859 reset();
1860 }
1861 },
1862 errorInfo: {
1863 header: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('There was a problem retrieving your forms', 'leadin'),
1864 message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Please refresh your forms or try again in a few minutes.', 'leadin'),
1865 action: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Refresh forms', 'leadin')
1866 }
1867 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FormSelector__WEBPACK_IMPORTED_MODULE_1__["default"], {
1868 loadOptions: search,
1869 onChange: function onChange(option) {
1870 return handleLocalChange(option);
1871 },
1872 value: value
1873 });
1874 }
1875
1876 /***/ }),
1877
1878 /***/ "./scripts/shared/Form/FormSelector.tsx":
1879 /*!**********************************************!*\
1880 !*** ./scripts/shared/Form/FormSelector.tsx ***!
1881 \**********************************************/
1882 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1883
1884 "use strict";
1885 __webpack_require__.r(__webpack_exports__);
1886 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1887 /* harmony export */ "default": () => (/* binding */ FormSelector)
1888 /* harmony export */ });
1889 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1890 /* harmony import */ var _Common_HubspotWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Common/HubspotWrapper */ "./scripts/shared/Common/HubspotWrapper.ts");
1891 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1892 /* harmony import */ var _Common_AsyncSelect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/AsyncSelect */ "./scripts/shared/Common/AsyncSelect.tsx");
1893 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1894 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
1895
1896
1897
1898
1899
1900 function FormSelector(_ref) {
1901 var loadOptions = _ref.loadOptions,
1902 onChange = _ref.onChange,
1903 value = _ref.value;
1904 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Common_HubspotWrapper__WEBPACK_IMPORTED_MODULE_1__["default"], {
1905 pluginPath: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.pluginPath,
1906 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
1907 "data-test-id": "leadin-form-select",
1908 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
1909 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Select an existing form or create a new one from a template', 'leadin')
1910 })
1911 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_AsyncSelect__WEBPACK_IMPORTED_MODULE_3__["default"], {
1912 placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Search for a form', 'leadin'),
1913 value: value,
1914 loadOptions: loadOptions,
1915 onChange: onChange
1916 })]
1917 });
1918 }
1919
1920 /***/ }),
1921
1922 /***/ "./scripts/shared/Form/PreviewForm.tsx":
1923 /*!*********************************************!*\
1924 !*** ./scripts/shared/Form/PreviewForm.tsx ***!
1925 \*********************************************/
1926 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1927
1928 "use strict";
1929 __webpack_require__.r(__webpack_exports__);
1930 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1931 /* harmony export */ "default": () => (/* binding */ PreviewForm)
1932 /* harmony export */ });
1933 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1934 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1935 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1936 /* harmony import */ var _UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIOverlay */ "./scripts/shared/UIComponents/UIOverlay.ts");
1937 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1938 /* harmony import */ var _hooks_useFormsScript__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks/useFormsScript */ "./scripts/shared/Form/hooks/useFormsScript.ts");
1939
1940
1941
1942
1943
1944 function PreviewForm(_ref) {
1945 var portalId = _ref.portalId,
1946 formId = _ref.formId;
1947 var inputEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
1948 var ready = (0,_hooks_useFormsScript__WEBPACK_IMPORTED_MODULE_4__["default"])();
1949 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
1950 if (!ready) {
1951 return;
1952 }
1953
1954 if (inputEl.current) {
1955 inputEl.current.innerHTML = '';
1956 var embedScript = document.createElement('script');
1957 embedScript.innerHTML = "hbspt.forms.create({ portalId: '".concat(portalId, "', formId: '").concat(formId, "', region: '").concat(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__.hublet, "', ").concat(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__.formsScriptPayload, " });");
1958 inputEl.current.appendChild(embedScript);
1959 }
1960 }, [formId, portalId, ready, inputEl]);
1961 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__["default"], {
1962 ref: inputEl
1963 });
1964 }
1965
1966 /***/ }),
1967
1968 /***/ "./scripts/shared/Form/hooks/useCreateFormFromTemplate.ts":
1969 /*!****************************************************************!*\
1970 !*** ./scripts/shared/Form/hooks/useCreateFormFromTemplate.ts ***!
1971 \****************************************************************/
1972 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1973
1974 "use strict";
1975 __webpack_require__.r(__webpack_exports__);
1976 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1977 /* harmony export */ "default": () => (/* binding */ useCreateFormFromTemplate)
1978 /* harmony export */ });
1979 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1980 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1981 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
1982 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../enums/loadState */ "./scripts/shared/enums/loadState.ts");
1983 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
1984 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1985
1986 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
1987
1988 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
1989
1990 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
1991
1992 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
1993
1994 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1995
1996
1997
1998
1999
2000 function useCreateFormFromTemplate() {
2001 var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'gutenberg';
2002 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.usePostAsyncBackgroundMessage)();
2003 var track = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.usePostBackgroundMessage)();
2004
2005 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Idle),
2006 _useState2 = _slicedToArray(_useState, 2),
2007 loadState = _useState2[0],
2008 setLoadState = _useState2[1];
2009
2010 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
2011 _useState4 = _slicedToArray(_useState3, 2),
2012 formApiError = _useState4[0],
2013 setFormApiError = _useState4[1];
2014
2015 var createFormByTemplate = function createFormByTemplate(type) {
2016 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loading);
2017 track({
2018 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.TrackFormCreatedFromTemplate,
2019 payload: {
2020 type: type,
2021 origin: origin
2022 }
2023 });
2024 return proxy({
2025 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.CreateFormFromTemplate,
2026 payload: type
2027 }).then(function (form) {
2028 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Idle);
2029 return form;
2030 })["catch"](function (err) {
2031 setFormApiError(err);
2032 track({
2033 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.TrackFormCreationFailed,
2034 payload: {
2035 origin: origin
2036 }
2037 });
2038 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Failed);
2039 });
2040 };
2041
2042 return {
2043 isCreating: loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loading,
2044 hasError: loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Failed,
2045 formApiError: formApiError,
2046 createFormByTemplate: createFormByTemplate,
2047 reset: function reset() {
2048 return setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Idle);
2049 }
2050 };
2051 }
2052
2053 /***/ }),
2054
2055 /***/ "./scripts/shared/Form/hooks/useForms.ts":
2056 /*!***********************************************!*\
2057 !*** ./scripts/shared/Form/hooks/useForms.ts ***!
2058 \***********************************************/
2059 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2060
2061 "use strict";
2062 __webpack_require__.r(__webpack_exports__);
2063 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2064 /* harmony export */ "default": () => (/* binding */ useForms)
2065 /* harmony export */ });
2066 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2067 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2068 /* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/debounce */ "./node_modules/lodash/debounce.js");
2069 /* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
2070 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2071 /* harmony import */ var _constants_defaultFormOptions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../constants/defaultFormOptions */ "./scripts/constants/defaultFormOptions.ts");
2072 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2073 function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2074
2075 function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2076
2077 function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
2078
2079 function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
2080
2081 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2082
2083 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2084
2085 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2086
2087 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2088
2089 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
2090
2091 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2092
2093
2094
2095
2096
2097
2098 function useForms() {
2099 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_2__.usePostAsyncBackgroundMessage)();
2100
2101 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
2102 _useState2 = _slicedToArray(_useState, 2),
2103 formApiError = _useState2[0],
2104 setFormApiError = _useState2[1];
2105
2106 var search = lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(function (search, callback) {
2107 return proxy({
2108 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_4__.ProxyMessages.FetchForms,
2109 payload: {
2110 search: search
2111 }
2112 }).then(function (forms) {
2113 callback([].concat(_toConsumableArray(forms.map(function (form) {
2114 return {
2115 label: form.name,
2116 value: form.guid
2117 };
2118 })), [_constants_defaultFormOptions__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_OPTIONS]));
2119 })["catch"](function (error) {
2120 setFormApiError(error);
2121 });
2122 }, 300, {
2123 trailing: true
2124 });
2125 return {
2126 search: search,
2127 formApiError: formApiError,
2128 reset: function reset() {
2129 return setFormApiError(null);
2130 }
2131 };
2132 }
2133
2134 /***/ }),
2135
2136 /***/ "./scripts/shared/Form/hooks/useFormsScript.ts":
2137 /*!*****************************************************!*\
2138 !*** ./scripts/shared/Form/hooks/useFormsScript.ts ***!
2139 \*****************************************************/
2140 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2141
2142 "use strict";
2143 __webpack_require__.r(__webpack_exports__);
2144 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2145 /* harmony export */ "default": () => (/* binding */ useFormScript)
2146 /* harmony export */ });
2147 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
2148 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
2149 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2150 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2151 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
2152 /* harmony import */ var _lib_Raven__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../lib/Raven */ "./scripts/lib/Raven.ts");
2153 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2154
2155 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2156
2157 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2158
2159 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2160
2161 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
2162
2163 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2164
2165
2166
2167
2168
2169 var promise;
2170
2171 function loadFormsScript() {
2172 if (!promise) {
2173 promise = new Promise(function (resolve, reject) {
2174 return jquery__WEBPACK_IMPORTED_MODULE_0___default().getScript(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.formsScript).done(resolve).fail(reject);
2175 });
2176 }
2177
2178 return promise;
2179 }
2180
2181 function useFormScript() {
2182 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
2183 _useState2 = _slicedToArray(_useState, 2),
2184 ready = _useState2[0],
2185 setReady = _useState2[1];
2186
2187 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2188 loadFormsScript().then(function () {
2189 return setReady(true);
2190 })["catch"](function (error) {
2191 return _lib_Raven__WEBPACK_IMPORTED_MODULE_3__["default"].captureException(error);
2192 });
2193 }, []);
2194 return ready;
2195 }
2196
2197 /***/ }),
2198
2199 /***/ "./scripts/shared/Meeting/MeetingController.tsx":
2200 /*!******************************************************!*\
2201 !*** ./scripts/shared/Meeting/MeetingController.tsx ***!
2202 \******************************************************/
2203 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2204
2205 "use strict";
2206 __webpack_require__.r(__webpack_exports__);
2207 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2208 /* harmony export */ "default": () => (/* binding */ MeetingController)
2209 /* harmony export */ });
2210 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2211 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2212 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2213 /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx");
2214 /* harmony import */ var _MeetingSelector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MeetingSelector */ "./scripts/shared/Meeting/MeetingSelector.tsx");
2215 /* harmony import */ var _MeetingWarning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./MeetingWarning */ "./scripts/shared/Meeting/MeetingWarning.tsx");
2216 /* harmony import */ var _hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks/useMeetings */ "./scripts/shared/Meeting/hooks/useMeetings.ts");
2217 /* harmony import */ var _Common_HubspotWrapper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Common/HubspotWrapper */ "./scripts/shared/Common/HubspotWrapper.ts");
2218 /* harmony import */ var _Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx");
2219 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
2220 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2221 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__);
2222 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! raven-js */ "./node_modules/raven-js/src/singleton.js");
2223 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(raven_js__WEBPACK_IMPORTED_MODULE_10__);
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235 function MeetingController(_ref) {
2236 var handleChange = _ref.handleChange,
2237 url = _ref.url;
2238
2239 var _useMeetings = (0,_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__["default"])(),
2240 meetings = _useMeetings.mappedMeetings,
2241 loading = _useMeetings.loading,
2242 error = _useMeetings.error,
2243 reload = _useMeetings.reload,
2244 connectCalendar = _useMeetings.connectCalendar;
2245
2246 var selectedMeetingOption = (0,_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__.useSelectedMeeting)(url);
2247 var selectedMeetingCalendar = (0,_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__.useSelectedMeetingCalendar)(url);
2248 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2249 if (!url && meetings.length > 0) {
2250 handleChange(meetings[0].value);
2251 }
2252 }, [meetings, url, handleChange]);
2253
2254 var handleLocalChange = function handleLocalChange(option) {
2255 handleChange(option.value);
2256 };
2257
2258 var handleConnectCalendar = function handleConnectCalendar() {
2259 return connectCalendar().then(function () {
2260 reload();
2261 })["catch"](function (error) {
2262 raven_js__WEBPACK_IMPORTED_MODULE_10___default().captureMessage('Unable to connect calendar', {
2263 extra: {
2264 error: error
2265 }
2266 });
2267 });
2268 };
2269
2270 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
2271 children: loading ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_2__["default"], {}) : error ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_7__["default"], {
2272 status: error && error.status || error,
2273 resetErrorState: function resetErrorState() {
2274 return reload();
2275 },
2276 errorInfo: {
2277 header: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('There was a problem retrieving your meetings', 'leadin'),
2278 message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Please refresh your meetings or try again in a few minutes.', 'leadin'),
2279 action: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Refresh meetings', 'leadin')
2280 }
2281 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Common_HubspotWrapper__WEBPACK_IMPORTED_MODULE_6__["default"], {
2282 padding: "90px 32px 24px",
2283 pluginPath: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_8__.pluginPath,
2284 children: [selectedMeetingCalendar && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_MeetingWarning__WEBPACK_IMPORTED_MODULE_4__["default"], {
2285 status: selectedMeetingCalendar,
2286 onConnectCalendar: handleConnectCalendar
2287 }), meetings.length > 1 && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_MeetingSelector__WEBPACK_IMPORTED_MODULE_3__["default"], {
2288 onChange: handleLocalChange,
2289 options: meetings,
2290 value: selectedMeetingOption
2291 })]
2292 })
2293 });
2294 }
2295
2296 /***/ }),
2297
2298 /***/ "./scripts/shared/Meeting/MeetingEdit.tsx":
2299 /*!************************************************!*\
2300 !*** ./scripts/shared/Meeting/MeetingEdit.tsx ***!
2301 \************************************************/
2302 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2303
2304 "use strict";
2305 __webpack_require__.r(__webpack_exports__);
2306 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2307 /* harmony export */ "default": () => (/* binding */ MeetingsEditContainer)
2308 /* harmony export */ });
2309 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2310 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2311 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2312 /* harmony import */ var _MeetingController__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MeetingController */ "./scripts/shared/Meeting/MeetingController.tsx");
2313 /* harmony import */ var _PreviewMeeting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PreviewMeeting */ "./scripts/shared/Meeting/PreviewMeeting.tsx");
2314 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2315 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
2316 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2317 /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx");
2318 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
2319 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2320
2321 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2322
2323 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335 function MeetingEdit(_ref) {
2336 var url = _ref.attributes.url,
2337 isSelected = _ref.isSelected,
2338 setAttributes = _ref.setAttributes,
2339 _ref$preview = _ref.preview,
2340 preview = _ref$preview === void 0 ? true : _ref$preview,
2341 _ref$origin = _ref.origin,
2342 origin = _ref$origin === void 0 ? 'gutenberg' : _ref$origin;
2343 var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__.useBackgroundAppContext)();
2344 var monitorFormPreviewRender = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__.usePostBackgroundMessage)();
2345
2346 var handleChange = function handleChange(newUrl) {
2347 setAttributes({
2348 url: newUrl
2349 });
2350 };
2351
2352 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2353 monitorFormPreviewRender({
2354 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_6__.ProxyMessages.TrackMeetingPreviewRender,
2355 payload: {
2356 origin: origin
2357 }
2358 });
2359 }, [origin]);
2360 return !isBackgroundAppReady ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_7__["default"], {}) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
2361 children: [(isSelected || !url) && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_MeetingController__WEBPACK_IMPORTED_MODULE_2__["default"], {
2362 url: url,
2363 handleChange: handleChange
2364 }), preview && url && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PreviewMeeting__WEBPACK_IMPORTED_MODULE_3__["default"], {
2365 url: url
2366 })]
2367 });
2368 }
2369
2370 function MeetingsEditContainer(props) {
2371 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__.BackgroudAppContext.Provider, {
2372 value: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_5__.refreshToken && (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_8__.getOrCreateBackgroundApp)(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_5__.refreshToken),
2373 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeetingEdit, _objectSpread({}, props))
2374 });
2375 }
2376
2377 /***/ }),
2378
2379 /***/ "./scripts/shared/Meeting/MeetingSelector.tsx":
2380 /*!****************************************************!*\
2381 !*** ./scripts/shared/Meeting/MeetingSelector.tsx ***!
2382 \****************************************************/
2383 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2384
2385 "use strict";
2386 __webpack_require__.r(__webpack_exports__);
2387 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2388 /* harmony export */ "default": () => (/* binding */ MeetingSelector)
2389 /* harmony export */ });
2390 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2391 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2392 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2393 /* harmony import */ var _Common_AsyncSelect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/AsyncSelect */ "./scripts/shared/Common/AsyncSelect.tsx");
2394 /* harmony import */ var _UIComponents_UISpacer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../UIComponents/UISpacer */ "./scripts/shared/UIComponents/UISpacer.ts");
2395 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2396 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
2397
2398
2399
2400
2401
2402 function MeetingSelector(_ref) {
2403 var options = _ref.options,
2404 onChange = _ref.onChange,
2405 value = _ref.value;
2406 var optionsWrapper = [{
2407 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Meeting name', 'leadin'),
2408 options: options
2409 }];
2410 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
2411 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UISpacer__WEBPACK_IMPORTED_MODULE_3__["default"], {}), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
2412 "data-test-id": "leadin-meeting-select",
2413 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
2414 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Select a meeting scheduling page', 'leadin')
2415 })
2416 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_AsyncSelect__WEBPACK_IMPORTED_MODULE_2__["default"], {
2417 defaultOptions: optionsWrapper,
2418 onChange: onChange,
2419 placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Select a meeting', 'leadin'),
2420 value: value
2421 })]
2422 });
2423 }
2424
2425 /***/ }),
2426
2427 /***/ "./scripts/shared/Meeting/MeetingWarning.tsx":
2428 /*!***************************************************!*\
2429 !*** ./scripts/shared/Meeting/MeetingWarning.tsx ***!
2430 \***************************************************/
2431 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2432
2433 "use strict";
2434 __webpack_require__.r(__webpack_exports__);
2435 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2436 /* harmony export */ "default": () => (/* binding */ MeetingWarning)
2437 /* harmony export */ });
2438 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2439 /* harmony import */ var _UIComponents_UIAlert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../UIComponents/UIAlert */ "./scripts/shared/UIComponents/UIAlert.tsx");
2440 /* harmony import */ var _UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIButton */ "./scripts/shared/UIComponents/UIButton.ts");
2441 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./scripts/shared/Meeting/constants.ts");
2442 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2443 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
2444
2445
2446
2447
2448
2449 function MeetingWarning(_ref) {
2450 var status = _ref.status,
2451 onConnectCalendar = _ref.onConnectCalendar;
2452 var isMeetingOwner = status === _constants__WEBPACK_IMPORTED_MODULE_3__.CURRENT_USER_CALENDAR_MISSING;
2453 var titleText = isMeetingOwner ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Your calendar is not connected.', 'leadin') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Calendar is not connected.', 'leadin');
2454 var titleMessage = isMeetingOwner ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Please connect your calendar to activate your scheduling pages.', 'leadin') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Make sure that everybody in this meeting has connected their calendar from the Meetings page in HubSpot.', 'leadin');
2455 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIAlert__WEBPACK_IMPORTED_MODULE_1__["default"], {
2456 titleText: titleText,
2457 titleMessage: titleMessage,
2458 children: isMeetingOwner && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_2__["default"], {
2459 use: "tertiary",
2460 id: "meetings-connect-calendar",
2461 onClick: onConnectCalendar,
2462 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Connect calendar', 'leadin')
2463 })
2464 });
2465 }
2466
2467 /***/ }),
2468
2469 /***/ "./scripts/shared/Meeting/PreviewMeeting.tsx":
2470 /*!***************************************************!*\
2471 !*** ./scripts/shared/Meeting/PreviewMeeting.tsx ***!
2472 \***************************************************/
2473 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2474
2475 "use strict";
2476 __webpack_require__.r(__webpack_exports__);
2477 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2478 /* harmony export */ "default": () => (/* binding */ PreviewForm)
2479 /* harmony export */ });
2480 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2481 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2482 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2483 /* harmony import */ var _UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIOverlay */ "./scripts/shared/UIComponents/UIOverlay.ts");
2484 /* harmony import */ var _hooks_useMeetingsScript__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hooks/useMeetingsScript */ "./scripts/shared/Meeting/hooks/useMeetingsScript.ts");
2485
2486
2487
2488
2489 function PreviewForm(_ref) {
2490 var url = _ref.url;
2491 var ready = (0,_hooks_useMeetingsScript__WEBPACK_IMPORTED_MODULE_3__["default"])();
2492 var inputEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
2493 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2494 if (!ready) {
2495 return;
2496 }
2497
2498 if (inputEl.current) {
2499 inputEl.current.innerHTML = '';
2500 var container = document.createElement('div');
2501 container.dataset.src = "".concat(url, "?embed=true");
2502 container.classList.add('meetings-iframe-container');
2503 inputEl.current.appendChild(container);
2504 var embedScript = document.createElement('script');
2505 embedScript.innerHTML = 'hbspt.meetings.create(".meetings-iframe-container");';
2506 inputEl.current.appendChild(embedScript);
2507 }
2508 }, [url, ready, inputEl]);
2509 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
2510 children: url && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__["default"], {
2511 ref: inputEl
2512 })
2513 });
2514 }
2515
2516 /***/ }),
2517
2518 /***/ "./scripts/shared/Meeting/constants.ts":
2519 /*!*********************************************!*\
2520 !*** ./scripts/shared/Meeting/constants.ts ***!
2521 \*********************************************/
2522 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2523
2524 "use strict";
2525 __webpack_require__.r(__webpack_exports__);
2526 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2527 /* harmony export */ "CURRENT_USER_CALENDAR_MISSING": () => (/* binding */ CURRENT_USER_CALENDAR_MISSING),
2528 /* harmony export */ "OTHER_USER_CALENDAR_MISSING": () => (/* binding */ OTHER_USER_CALENDAR_MISSING)
2529 /* harmony export */ });
2530 var OTHER_USER_CALENDAR_MISSING = 'OTHER_USER_CALENDAR_MISSING';
2531 var CURRENT_USER_CALENDAR_MISSING = 'CURRENT_USER_CALENDAR_MISSING';
2532
2533 /***/ }),
2534
2535 /***/ "./scripts/shared/Meeting/hooks/useCurrentUserFetch.ts":
2536 /*!*************************************************************!*\
2537 !*** ./scripts/shared/Meeting/hooks/useCurrentUserFetch.ts ***!
2538 \*************************************************************/
2539 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2540
2541 "use strict";
2542 __webpack_require__.r(__webpack_exports__);
2543 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2544 /* harmony export */ "default": () => (/* binding */ useCurrentUserFetch)
2545 /* harmony export */ });
2546 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2547 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2548 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2549 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../enums/loadState */ "./scripts/shared/enums/loadState.ts");
2550 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2551 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2552
2553 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2554
2555 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2556
2557 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2558
2559 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
2560
2561 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2562
2563
2564
2565
2566
2567 var user = null;
2568 function useCurrentUserFetch() {
2569 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.usePostAsyncBackgroundMessage)();
2570
2571 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded),
2572 _useState2 = _slicedToArray(_useState, 2),
2573 loadState = _useState2[0],
2574 setLoadState = _useState2[1];
2575
2576 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
2577 _useState4 = _slicedToArray(_useState3, 2),
2578 error = _useState4[0],
2579 setError = _useState4[1];
2580
2581 var createUser = function createUser() {
2582 if (!user) {
2583 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded);
2584 }
2585 };
2586
2587 var reload = function reload() {
2588 user = null;
2589 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded);
2590 setError(null);
2591 };
2592
2593 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
2594 if (loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded && !user) {
2595 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loading);
2596 proxy({
2597 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.FetchOrCreateMeetingUser
2598 }).then(function (data) {
2599 user = data;
2600 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Idle);
2601 })["catch"](function (err) {
2602 setError(err);
2603 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Failed);
2604 });
2605 }
2606 }, [loadState]);
2607 return {
2608 user: user,
2609 loadUserState: loadState,
2610 error: error,
2611 createUser: createUser,
2612 reload: reload
2613 };
2614 }
2615
2616 /***/ }),
2617
2618 /***/ "./scripts/shared/Meeting/hooks/useMeetings.ts":
2619 /*!*****************************************************!*\
2620 !*** ./scripts/shared/Meeting/hooks/useMeetings.ts ***!
2621 \*****************************************************/
2622 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2623
2624 "use strict";
2625 __webpack_require__.r(__webpack_exports__);
2626 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2627 /* harmony export */ "default": () => (/* binding */ useMeetings),
2628 /* harmony export */ "useSelectedMeeting": () => (/* binding */ useSelectedMeeting),
2629 /* harmony export */ "useSelectedMeetingCalendar": () => (/* binding */ useSelectedMeetingCalendar)
2630 /* harmony export */ });
2631 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2632 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2633 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2634 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
2635 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./scripts/shared/Meeting/constants.ts");
2636 /* harmony import */ var _useMeetingsFetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useMeetingsFetch */ "./scripts/shared/Meeting/hooks/useMeetingsFetch.ts");
2637 /* harmony import */ var _useCurrentUserFetch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useCurrentUserFetch */ "./scripts/shared/Meeting/hooks/useCurrentUserFetch.ts");
2638 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../enums/loadState */ "./scripts/shared/enums/loadState.ts");
2639 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2640 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2641 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2642
2643 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2644
2645 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2646
2647 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2648
2649 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2650
2651 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2652
2653 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2654
2655 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
2656
2657 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668 function getDefaultMeetingName(meeting, currentUser, meetingUsers) {
2669 var _meeting$meetingsUser = _slicedToArray(meeting.meetingsUserIds, 1),
2670 meetingOwnerId = _meeting$meetingsUser[0];
2671
2672 var result = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Default', 'leadin');
2673
2674 if (currentUser && meetingOwnerId !== currentUser.id && meetingUsers[meetingOwnerId]) {
2675 var user = meetingUsers[meetingOwnerId];
2676 result += " (".concat(user.userProfile.fullName, ")");
2677 }
2678
2679 return result;
2680 }
2681
2682 function hasCalendarObject(user) {
2683 return user && user.meetingsUserBlob && user.meetingsUserBlob.calendarSettings && user.meetingsUserBlob.calendarSettings.email;
2684 }
2685
2686 function useMeetings() {
2687 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.usePostAsyncBackgroundMessage)();
2688
2689 var _useMeetingsFetch = (0,_useMeetingsFetch__WEBPACK_IMPORTED_MODULE_3__["default"])(),
2690 meetings = _useMeetingsFetch.meetings,
2691 meetingUsers = _useMeetingsFetch.meetingUsers,
2692 meetingsError = _useMeetingsFetch.error,
2693 loadMeetingsState = _useMeetingsFetch.loadMeetingsState,
2694 reloadMeetings = _useMeetingsFetch.reload;
2695
2696 var _useCurrentUserFetch = (0,_useCurrentUserFetch__WEBPACK_IMPORTED_MODULE_4__["default"])(),
2697 currentUser = _useCurrentUserFetch.user,
2698 userError = _useCurrentUserFetch.error,
2699 loadUserState = _useCurrentUserFetch.loadUserState,
2700 reloadUser = _useCurrentUserFetch.reload;
2701
2702 var reload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {
2703 reloadUser();
2704 reloadMeetings();
2705 }, [reloadUser, reloadMeetings]);
2706
2707 var connectCalendar = function connectCalendar() {
2708 return proxy({
2709 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__.ProxyMessages.ConnectMeetingsCalendar
2710 });
2711 };
2712
2713 return {
2714 mappedMeetings: meetings.map(function (meet) {
2715 return {
2716 label: meet.name || getDefaultMeetingName(meet, currentUser, meetingUsers),
2717 value: meet.link
2718 };
2719 }),
2720 meetings: meetings,
2721 meetingUsers: meetingUsers,
2722 currentUser: currentUser,
2723 error: meetingsError || userError,
2724 loading: loadMeetingsState == _enums_loadState__WEBPACK_IMPORTED_MODULE_5__["default"].Loading || loadUserState === _enums_loadState__WEBPACK_IMPORTED_MODULE_5__["default"].Loading,
2725 reload: reload,
2726 connectCalendar: connectCalendar
2727 };
2728 }
2729 function useSelectedMeeting(url) {
2730 var _useMeetings = useMeetings(),
2731 meetings = _useMeetings.mappedMeetings;
2732
2733 var option = meetings.find(function (_ref) {
2734 var value = _ref.value;
2735 return value === url;
2736 });
2737 return option;
2738 }
2739 function useSelectedMeetingCalendar(url) {
2740 var _useMeetings2 = useMeetings(),
2741 meetings = _useMeetings2.meetings,
2742 meetingUsers = _useMeetings2.meetingUsers,
2743 currentUser = _useMeetings2.currentUser;
2744
2745 var meeting = meetings.find(function (meet) {
2746 return meet.link === url;
2747 });
2748 var mappedMeetingUsersId = meetingUsers.reduce(function (p, c) {
2749 return _objectSpread(_objectSpread({}, p), {}, _defineProperty({}, c.id, c));
2750 }, {});
2751
2752 if (!meeting) {
2753 return null;
2754 } else {
2755 var meetingsUserIds = meeting.meetingsUserIds;
2756
2757 if (currentUser && meetingsUserIds.includes(currentUser.id) && !hasCalendarObject(currentUser)) {
2758 return _constants__WEBPACK_IMPORTED_MODULE_2__.CURRENT_USER_CALENDAR_MISSING;
2759 } else if (meetingsUserIds.map(function (id) {
2760 return mappedMeetingUsersId[id];
2761 }).some(function (user) {
2762 return !hasCalendarObject(user);
2763 })) {
2764 return _constants__WEBPACK_IMPORTED_MODULE_2__.OTHER_USER_CALENDAR_MISSING;
2765 } else {
2766 return null;
2767 }
2768 }
2769 }
2770
2771 /***/ }),
2772
2773 /***/ "./scripts/shared/Meeting/hooks/useMeetingsFetch.ts":
2774 /*!**********************************************************!*\
2775 !*** ./scripts/shared/Meeting/hooks/useMeetingsFetch.ts ***!
2776 \**********************************************************/
2777 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2778
2779 "use strict";
2780 __webpack_require__.r(__webpack_exports__);
2781 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2782 /* harmony export */ "default": () => (/* binding */ useMeetingsFetch)
2783 /* harmony export */ });
2784 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2785 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2786 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2787 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../enums/loadState */ "./scripts/shared/enums/loadState.ts");
2788 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2789 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2790
2791 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2792
2793 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2794
2795 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2796
2797 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
2798
2799 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2800
2801
2802
2803
2804
2805 var meetings = [];
2806 var meetingUsers = [];
2807 function useMeetingsFetch() {
2808 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.usePostAsyncBackgroundMessage)();
2809
2810 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded),
2811 _useState2 = _slicedToArray(_useState, 2),
2812 loadState = _useState2[0],
2813 setLoadState = _useState2[1];
2814
2815 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
2816 _useState4 = _slicedToArray(_useState3, 2),
2817 error = _useState4[0],
2818 setError = _useState4[1];
2819
2820 var reload = function reload() {
2821 meetings = [];
2822 setError(null);
2823 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded);
2824 };
2825
2826 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
2827 if (loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded && meetings.length === 0) {
2828 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loading);
2829 proxy({
2830 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.FetchMeetingsAndUsers
2831 }).then(function (data) {
2832 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loaded);
2833 meetings = data && data.meetingLinks;
2834 meetingUsers = data && data.meetingUsers;
2835 })["catch"](function (e) {
2836 setError(e);
2837 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Failed);
2838 });
2839 }
2840 }, [loadState]);
2841 return {
2842 meetings: meetings,
2843 meetingUsers: meetingUsers,
2844 loadMeetingsState: loadState,
2845 error: error,
2846 reload: reload
2847 };
2848 }
2849
2850 /***/ }),
2851
2852 /***/ "./scripts/shared/Meeting/hooks/useMeetingsScript.ts":
2853 /*!***********************************************************!*\
2854 !*** ./scripts/shared/Meeting/hooks/useMeetingsScript.ts ***!
2855 \***********************************************************/
2856 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2857
2858 "use strict";
2859 __webpack_require__.r(__webpack_exports__);
2860 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2861 /* harmony export */ "default": () => (/* binding */ useMeetingsScript)
2862 /* harmony export */ });
2863 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
2864 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
2865 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2866 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2867 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
2868 /* harmony import */ var _lib_Raven__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../lib/Raven */ "./scripts/lib/Raven.ts");
2869 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2870
2871 function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
2872
2873 function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
2874
2875 function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
2876
2877 function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
2878
2879 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2880
2881
2882
2883
2884
2885 var promise;
2886
2887 function loadMeetingsScript() {
2888 if (!promise) {
2889 promise = new Promise(function (resolve, reject) {
2890 return jquery__WEBPACK_IMPORTED_MODULE_0___default().getScript(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.meetingsScript).done(resolve).fail(reject);
2891 });
2892 }
2893
2894 return promise;
2895 }
2896
2897 function useMeetingsScript() {
2898 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
2899 _useState2 = _slicedToArray(_useState, 2),
2900 ready = _useState2[0],
2901 setReady = _useState2[1];
2902
2903 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2904 loadMeetingsScript().then(function () {
2905 return setReady(true);
2906 })["catch"](function (error) {
2907 return _lib_Raven__WEBPACK_IMPORTED_MODULE_3__["default"].captureException(error);
2908 });
2909 }, []);
2910 return ready;
2911 }
2912
2913 /***/ }),
2914
2915 /***/ "./scripts/shared/UIComponents/UIAlert.tsx":
2916 /*!*************************************************!*\
2917 !*** ./scripts/shared/UIComponents/UIAlert.tsx ***!
2918 \*************************************************/
2919 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2920
2921 "use strict";
2922 __webpack_require__.r(__webpack_exports__);
2923 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2924 /* harmony export */ "default": () => (/* binding */ UIAlert)
2925 /* harmony export */ });
2926 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2927 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
2928
2929
2930 var AlertContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('div')({
2931 name: "AlertContainer",
2932 "class": "a1h8m4fo",
2933 propsAsIs: false
2934 });
2935 var Title = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('p')({
2936 name: "Title",
2937 "class": "tyndzxk",
2938 propsAsIs: false
2939 });
2940 var Message = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('p')({
2941 name: "Message",
2942 "class": "m1m9sbk4",
2943 propsAsIs: false
2944 });
2945 var MessageContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('div')({
2946 name: "MessageContainer",
2947 "class": "mg5o421",
2948 propsAsIs: false
2949 });
2950 function UIAlert(_ref) {
2951 var titleText = _ref.titleText,
2952 titleMessage = _ref.titleMessage,
2953 children = _ref.children;
2954 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(AlertContainer, {
2955 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(MessageContainer, {
2956 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Title, {
2957 children: titleText
2958 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Message, {
2959 children: titleMessage
2960 })]
2961 }), children]
2962 });
2963 }
2964
2965 __webpack_require__(/*! ./UIAlert.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./UIAlert.tsx */ "./scripts/shared/UIComponents/UIAlert.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIAlert.tsx");
2966
2967 /***/ }),
2968
2969 /***/ "./scripts/shared/UIComponents/UIButton.ts":
2970 /*!*************************************************!*\
2971 !*** ./scripts/shared/UIComponents/UIButton.ts ***!
2972 \*************************************************/
2973 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2974
2975 "use strict";
2976 __webpack_require__.r(__webpack_exports__);
2977 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2978 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2979 /* harmony export */ });
2980 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
2981 /* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colors */ "./scripts/shared/UIComponents/colors.ts");
2982
2983
2984
2985 var _exp2 = /*#__PURE__*/function _exp2() {
2986 return function (props) {
2987 return props.use === 'tertiary' ? _colors__WEBPACK_IMPORTED_MODULE_0__.HEFFALUMP : _colors__WEBPACK_IMPORTED_MODULE_0__.LORAX;
2988 };
2989 };
2990
2991 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('button')({
2992 name: "UIButton0",
2993 "class": "ug152ch",
2994 propsAsIs: false,
2995 vars: {
2996 "ug152ch-0": [_exp2()]
2997 }
2998 }));
2999
3000 __webpack_require__(/*! ./UIButton.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./UIButton.ts */ "./scripts/shared/UIComponents/UIButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIButton.ts");
3001
3002 /***/ }),
3003
3004 /***/ "./scripts/shared/UIComponents/UIContainer.ts":
3005 /*!****************************************************!*\
3006 !*** ./scripts/shared/UIComponents/UIContainer.ts ***!
3007 \****************************************************/
3008 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3009
3010 "use strict";
3011 __webpack_require__.r(__webpack_exports__);
3012 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3013 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3014 /* harmony export */ });
3015 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
3016
3017
3018 var _exp = /*#__PURE__*/function _exp() {
3019 return function (props) {
3020 return props.textAlign ? props.textAlign : 'inherit';
3021 };
3022 };
3023
3024 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_0__.styled)('div')({
3025 name: "UIContainer0",
3026 "class": "ua13n1c",
3027 propsAsIs: false,
3028 vars: {
3029 "ua13n1c-0": [_exp()]
3030 }
3031 }));
3032
3033 __webpack_require__(/*! ./UIContainer.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./UIContainer.ts */ "./scripts/shared/UIComponents/UIContainer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIContainer.ts");
3034
3035 /***/ }),
3036
3037 /***/ "./scripts/shared/UIComponents/UIOverlay.ts":
3038 /*!**************************************************!*\
3039 !*** ./scripts/shared/UIComponents/UIOverlay.ts ***!
3040 \**************************************************/
3041 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3042
3043 "use strict";
3044 __webpack_require__.r(__webpack_exports__);
3045 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3046 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3047 /* harmony export */ });
3048 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
3049
3050 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_0__.styled)('div')({
3051 name: "UIOverlay0",
3052 "class": "u1q7a48k",
3053 propsAsIs: false
3054 }));
3055
3056 __webpack_require__(/*! ./UIOverlay.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./UIOverlay.ts */ "./scripts/shared/UIComponents/UIOverlay.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIOverlay.ts");
3057
3058 /***/ }),
3059
3060 /***/ "./scripts/shared/UIComponents/UISpacer.ts":
3061 /*!*************************************************!*\
3062 !*** ./scripts/shared/UIComponents/UISpacer.ts ***!
3063 \*************************************************/
3064 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3065
3066 "use strict";
3067 __webpack_require__.r(__webpack_exports__);
3068 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3069 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3070 /* harmony export */ });
3071 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
3072
3073 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_0__.styled)('div')({
3074 name: "UISpacer0",
3075 "class": "u3qxofx",
3076 propsAsIs: false
3077 }));
3078
3079 __webpack_require__(/*! ./UISpacer.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./UISpacer.ts */ "./scripts/shared/UIComponents/UISpacer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpacer.ts");
3080
3081 /***/ }),
3082
3083 /***/ "./scripts/shared/UIComponents/UISpinner.tsx":
3084 /*!***************************************************!*\
3085 !*** ./scripts/shared/UIComponents/UISpinner.tsx ***!
3086 \***************************************************/
3087 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3088
3089 "use strict";
3090 __webpack_require__.r(__webpack_exports__);
3091 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3092 /* harmony export */ "default": () => (/* binding */ UISpinner)
3093 /* harmony export */ });
3094 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
3095 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
3096 /* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colors */ "./scripts/shared/UIComponents/colors.ts");
3097
3098
3099
3100 var SpinnerOuter = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_2__.styled)('div')({
3101 name: "SpinnerOuter",
3102 "class": "sxa9zrc",
3103 propsAsIs: false
3104 });
3105 var SpinnerInner = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_2__.styled)('div')({
3106 name: "SpinnerInner",
3107 "class": "s14430wa",
3108 propsAsIs: false
3109 });
3110
3111 var _exp = /*#__PURE__*/function _exp() {
3112 return function (props) {
3113 return props.color;
3114 };
3115 };
3116
3117 var Circle = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_2__.styled)('circle')({
3118 name: "Circle",
3119 "class": "ct87ghk",
3120 propsAsIs: true,
3121 vars: {
3122 "ct87ghk-0": [_exp()]
3123 }
3124 });
3125
3126 var _exp2 = /*#__PURE__*/function _exp2() {
3127 return function (props) {
3128 return props.color;
3129 };
3130 };
3131
3132 var AnimatedCircle = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_2__.styled)('circle')({
3133 name: "AnimatedCircle",
3134 "class": "avili0h",
3135 propsAsIs: true,
3136 vars: {
3137 "avili0h-0": [_exp2()]
3138 }
3139 });
3140 function UISpinner(_ref) {
3141 var _ref$size = _ref.size,
3142 size = _ref$size === void 0 ? 20 : _ref$size;
3143 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SpinnerOuter, {
3144 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SpinnerInner, {
3145 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("svg", {
3146 height: size,
3147 width: size,
3148 viewBox: "0 0 50 50",
3149 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Circle, {
3150 color: _colors__WEBPACK_IMPORTED_MODULE_1__.CALYPSO_MEDIUM,
3151 cx: "25",
3152 cy: "25",
3153 r: "22.5"
3154 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AnimatedCircle, {
3155 color: _colors__WEBPACK_IMPORTED_MODULE_1__.CALYPSO,
3156 cx: "25",
3157 cy: "25",
3158 r: "22.5"
3159 })]
3160 })
3161 })
3162 });
3163 }
3164
3165 __webpack_require__(/*! ./UISpinner.linaria.css!=!../../../node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./UISpinner.tsx */ "./scripts/shared/UIComponents/UISpinner.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpinner.tsx");
3166
3167 /***/ }),
3168
3169 /***/ "./scripts/shared/UIComponents/colors.ts":
3170 /*!***********************************************!*\
3171 !*** ./scripts/shared/UIComponents/colors.ts ***!
3172 \***********************************************/
3173 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3174
3175 "use strict";
3176 __webpack_require__.r(__webpack_exports__);
3177 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3178 /* harmony export */ "CALYPSO": () => (/* binding */ CALYPSO),
3179 /* harmony export */ "CALYPSO_LIGHT": () => (/* binding */ CALYPSO_LIGHT),
3180 /* harmony export */ "CALYPSO_MEDIUM": () => (/* binding */ CALYPSO_MEDIUM),
3181 /* harmony export */ "HEFFALUMP": () => (/* binding */ HEFFALUMP),
3182 /* harmony export */ "LORAX": () => (/* binding */ LORAX),
3183 /* harmony export */ "MARIGOLD_LIGHT": () => (/* binding */ MARIGOLD_LIGHT),
3184 /* harmony export */ "MARIGOLD_MEDIUM": () => (/* binding */ MARIGOLD_MEDIUM),
3185 /* harmony export */ "OBSIDIAN": () => (/* binding */ OBSIDIAN),
3186 /* harmony export */ "OLAF": () => (/* binding */ OLAF)
3187 /* harmony export */ });
3188 var CALYPSO = '#00a4bd';
3189 var CALYPSO_MEDIUM = '#7fd1de';
3190 var CALYPSO_LIGHT = '#e5f5f8';
3191 var LORAX = '#ff7a59';
3192 var OLAF = '#ffffff';
3193 var HEFFALUMP = '#425b76';
3194 var MARIGOLD_LIGHT = '#fef8f0';
3195 var MARIGOLD_MEDIUM = '#fae0b5';
3196 var OBSIDIAN = '#33475b';
3197
3198 /***/ }),
3199
3200 /***/ "./scripts/shared/enums/connectionStatus.ts":
3201 /*!**************************************************!*\
3202 !*** ./scripts/shared/enums/connectionStatus.ts ***!
3203 \**************************************************/
3204 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3205
3206 "use strict";
3207 __webpack_require__.r(__webpack_exports__);
3208 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3209 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3210 /* harmony export */ });
3211 var ConnectionStatus = {
3212 Connected: 'Connected',
3213 NotConnected: 'NotConnected'
3214 };
3215 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ConnectionStatus);
3216
3217 /***/ }),
3218
3219 /***/ "./scripts/shared/enums/loadState.ts":
3220 /*!*******************************************!*\
3221 !*** ./scripts/shared/enums/loadState.ts ***!
3222 \*******************************************/
3223 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3224
3225 "use strict";
3226 __webpack_require__.r(__webpack_exports__);
3227 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3228 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3229 /* harmony export */ });
3230 var LoadState = {
3231 NotLoaded: 'NotLoaded',
3232 Loading: 'Loading',
3233 Loaded: 'Loaded',
3234 Idle: 'Idle',
3235 Failed: 'Failed'
3236 };
3237 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LoadState);
3238
3239 /***/ }),
3240
3241 /***/ "./scripts/utils/appUtils.ts":
3242 /*!***********************************!*\
3243 !*** ./scripts/utils/appUtils.ts ***!
3244 \***********************************/
3245 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3246
3247 "use strict";
3248 __webpack_require__.r(__webpack_exports__);
3249 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3250 /* harmony export */ "initApp": () => (/* binding */ initApp),
3251 /* harmony export */ "initAppOnReady": () => (/* binding */ initAppOnReady)
3252 /* harmony export */ });
3253 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
3254 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
3255 /* harmony import */ var _lib_Raven__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/Raven */ "./scripts/lib/Raven.ts");
3256
3257
3258 function initApp(initFn) {
3259 (0,_lib_Raven__WEBPACK_IMPORTED_MODULE_1__.configureRaven)();
3260 _lib_Raven__WEBPACK_IMPORTED_MODULE_1__["default"].context(initFn);
3261 }
3262 function initAppOnReady(initFn) {
3263 function main() {
3264 jquery__WEBPACK_IMPORTED_MODULE_0___default()(initFn);
3265 }
3266
3267 initApp(main);
3268 }
3269
3270 /***/ }),
3271
3272 /***/ "./scripts/utils/backgroundAppUtils.ts":
3273 /*!*********************************************!*\
3274 !*** ./scripts/utils/backgroundAppUtils.ts ***!
3275 \*********************************************/
3276 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3277
3278 "use strict";
3279 __webpack_require__.r(__webpack_exports__);
3280 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3281 /* harmony export */ "getOrCreateBackgroundApp": () => (/* binding */ getOrCreateBackgroundApp),
3282 /* harmony export */ "initBackgroundApp": () => (/* binding */ initBackgroundApp)
3283 /* harmony export */ });
3284 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
3285 /* harmony import */ var _appUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./appUtils */ "./scripts/utils/appUtils.ts");
3286
3287
3288 function initBackgroundApp(initFn) {
3289 function main() {
3290 if (Array.isArray(initFn)) {
3291 initFn.forEach(function (callback) {
3292 return callback();
3293 });
3294 } else {
3295 initFn();
3296 }
3297 }
3298
3299 (0,_appUtils__WEBPACK_IMPORTED_MODULE_1__.initApp)(main);
3300 }
3301 var getOrCreateBackgroundApp = function getOrCreateBackgroundApp(refreshToken) {
3302 if (window.LeadinBackgroundApp) {
3303 return window.LeadinBackgroundApp;
3304 }
3305
3306 var _window = window,
3307 IntegratedAppEmbedder = _window.IntegratedAppEmbedder,
3308 IntegratedAppOptions = _window.IntegratedAppOptions;
3309 var options = new IntegratedAppOptions().setLocale(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.locale).setDeviceId(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.deviceId).setRefreshToken(refreshToken);
3310 var embedder = new IntegratedAppEmbedder('integrated-plugin-proxy', _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.portalId, _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.hubspotBaseUrl, function () {}).setOptions(options);
3311 embedder.attachTo(document.body, false);
3312 embedder.postStartAppMessage(); // lets the app know all all data has been passed to it
3313
3314 window.LeadinBackgroundApp = embedder;
3315 return window.LeadinBackgroundApp;
3316 };
3317
3318 /***/ }),
3319
3320 /***/ "./node_modules/lodash/_Symbol.js":
3321 /*!****************************************!*\
3322 !*** ./node_modules/lodash/_Symbol.js ***!
3323 \****************************************/
3324 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3325
3326 var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
3327
3328 /** Built-in value references. */
3329 var Symbol = root.Symbol;
3330
3331 module.exports = Symbol;
3332
3333
3334 /***/ }),
3335
3336 /***/ "./node_modules/lodash/_baseGetTag.js":
3337 /*!********************************************!*\
3338 !*** ./node_modules/lodash/_baseGetTag.js ***!
3339 \********************************************/
3340 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3341
3342 var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
3343 getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"),
3344 objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js");
3345
3346 /** `Object#toString` result references. */
3347 var nullTag = '[object Null]',
3348 undefinedTag = '[object Undefined]';
3349
3350 /** Built-in value references. */
3351 var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
3352
3353 /**
3354 * The base implementation of `getTag` without fallbacks for buggy environments.
3355 *
3356 * @private
3357 * @param {*} value The value to query.
3358 * @returns {string} Returns the `toStringTag`.
3359 */
3360 function baseGetTag(value) {
3361 if (value == null) {
3362 return value === undefined ? undefinedTag : nullTag;
3363 }
3364 return (symToStringTag && symToStringTag in Object(value))
3365 ? getRawTag(value)
3366 : objectToString(value);
3367 }
3368
3369 module.exports = baseGetTag;
3370
3371
3372 /***/ }),
3373
3374 /***/ "./node_modules/lodash/_baseTrim.js":
3375 /*!******************************************!*\
3376 !*** ./node_modules/lodash/_baseTrim.js ***!
3377 \******************************************/
3378 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3379
3380 var trimmedEndIndex = __webpack_require__(/*! ./_trimmedEndIndex */ "./node_modules/lodash/_trimmedEndIndex.js");
3381
3382 /** Used to match leading whitespace. */
3383 var reTrimStart = /^\s+/;
3384
3385 /**
3386 * The base implementation of `_.trim`.
3387 *
3388 * @private
3389 * @param {string} string The string to trim.
3390 * @returns {string} Returns the trimmed string.
3391 */
3392 function baseTrim(string) {
3393 return string
3394 ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
3395 : string;
3396 }
3397
3398 module.exports = baseTrim;
3399
3400
3401 /***/ }),
3402
3403 /***/ "./node_modules/lodash/_freeGlobal.js":
3404 /*!********************************************!*\
3405 !*** ./node_modules/lodash/_freeGlobal.js ***!
3406 \********************************************/
3407 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3408
3409 /** Detect free variable `global` from Node.js. */
3410 var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
3411
3412 module.exports = freeGlobal;
3413
3414
3415 /***/ }),
3416
3417 /***/ "./node_modules/lodash/_getRawTag.js":
3418 /*!*******************************************!*\
3419 !*** ./node_modules/lodash/_getRawTag.js ***!
3420 \*******************************************/
3421 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3422
3423 var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");
3424
3425 /** Used for built-in method references. */
3426 var objectProto = Object.prototype;
3427
3428 /** Used to check objects for own properties. */
3429 var hasOwnProperty = objectProto.hasOwnProperty;
3430
3431 /**
3432 * Used to resolve the
3433 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
3434 * of values.
3435 */
3436 var nativeObjectToString = objectProto.toString;
3437
3438 /** Built-in value references. */
3439 var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
3440
3441 /**
3442 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
3443 *
3444 * @private
3445 * @param {*} value The value to query.
3446 * @returns {string} Returns the raw `toStringTag`.
3447 */
3448 function getRawTag(value) {
3449 var isOwn = hasOwnProperty.call(value, symToStringTag),
3450 tag = value[symToStringTag];
3451
3452 try {
3453 value[symToStringTag] = undefined;
3454 var unmasked = true;
3455 } catch (e) {}
3456
3457 var result = nativeObjectToString.call(value);
3458 if (unmasked) {
3459 if (isOwn) {
3460 value[symToStringTag] = tag;
3461 } else {
3462 delete value[symToStringTag];
3463 }
3464 }
3465 return result;
3466 }
3467
3468 module.exports = getRawTag;
3469
3470
3471 /***/ }),
3472
3473 /***/ "./node_modules/lodash/_objectToString.js":
3474 /*!************************************************!*\
3475 !*** ./node_modules/lodash/_objectToString.js ***!
3476 \************************************************/
3477 /***/ ((module) => {
3478
3479 /** Used for built-in method references. */
3480 var objectProto = Object.prototype;
3481
3482 /**
3483 * Used to resolve the
3484 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
3485 * of values.
3486 */
3487 var nativeObjectToString = objectProto.toString;
3488
3489 /**
3490 * Converts `value` to a string using `Object.prototype.toString`.
3491 *
3492 * @private
3493 * @param {*} value The value to convert.
3494 * @returns {string} Returns the converted string.
3495 */
3496 function objectToString(value) {
3497 return nativeObjectToString.call(value);
3498 }
3499
3500 module.exports = objectToString;
3501
3502
3503 /***/ }),
3504
3505 /***/ "./node_modules/lodash/_root.js":
3506 /*!**************************************!*\
3507 !*** ./node_modules/lodash/_root.js ***!
3508 \**************************************/
3509 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3510
3511 var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");
3512
3513 /** Detect free variable `self`. */
3514 var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
3515
3516 /** Used as a reference to the global object. */
3517 var root = freeGlobal || freeSelf || Function('return this')();
3518
3519 module.exports = root;
3520
3521
3522 /***/ }),
3523
3524 /***/ "./node_modules/lodash/_trimmedEndIndex.js":
3525 /*!*************************************************!*\
3526 !*** ./node_modules/lodash/_trimmedEndIndex.js ***!
3527 \*************************************************/
3528 /***/ ((module) => {
3529
3530 /** Used to match a single whitespace character. */
3531 var reWhitespace = /\s/;
3532
3533 /**
3534 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
3535 * character of `string`.
3536 *
3537 * @private
3538 * @param {string} string The string to inspect.
3539 * @returns {number} Returns the index of the last non-whitespace character.
3540 */
3541 function trimmedEndIndex(string) {
3542 var index = string.length;
3543
3544 while (index-- && reWhitespace.test(string.charAt(index))) {}
3545 return index;
3546 }
3547
3548 module.exports = trimmedEndIndex;
3549
3550
3551 /***/ }),
3552
3553 /***/ "./node_modules/lodash/debounce.js":
3554 /*!*****************************************!*\
3555 !*** ./node_modules/lodash/debounce.js ***!
3556 \*****************************************/
3557 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3558
3559 var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
3560 now = __webpack_require__(/*! ./now */ "./node_modules/lodash/now.js"),
3561 toNumber = __webpack_require__(/*! ./toNumber */ "./node_modules/lodash/toNumber.js");
3562
3563 /** Error message constants. */
3564 var FUNC_ERROR_TEXT = 'Expected a function';
3565
3566 /* Built-in method references for those with the same name as other `lodash` methods. */
3567 var nativeMax = Math.max,
3568 nativeMin = Math.min;
3569
3570 /**
3571 * Creates a debounced function that delays invoking `func` until after `wait`
3572 * milliseconds have elapsed since the last time the debounced function was
3573 * invoked. The debounced function comes with a `cancel` method to cancel
3574 * delayed `func` invocations and a `flush` method to immediately invoke them.
3575 * Provide `options` to indicate whether `func` should be invoked on the
3576 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
3577 * with the last arguments provided to the debounced function. Subsequent
3578 * calls to the debounced function return the result of the last `func`
3579 * invocation.
3580 *
3581 * **Note:** If `leading` and `trailing` options are `true`, `func` is
3582 * invoked on the trailing edge of the timeout only if the debounced function
3583 * is invoked more than once during the `wait` timeout.
3584 *
3585 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
3586 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
3587 *
3588 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
3589 * for details over the differences between `_.debounce` and `_.throttle`.
3590 *
3591 * @static
3592 * @memberOf _
3593 * @since 0.1.0
3594 * @category Function
3595 * @param {Function} func The function to debounce.
3596 * @param {number} [wait=0] The number of milliseconds to delay.
3597 * @param {Object} [options={}] The options object.
3598 * @param {boolean} [options.leading=false]
3599 * Specify invoking on the leading edge of the timeout.
3600 * @param {number} [options.maxWait]
3601 * The maximum time `func` is allowed to be delayed before it's invoked.
3602 * @param {boolean} [options.trailing=true]
3603 * Specify invoking on the trailing edge of the timeout.
3604 * @returns {Function} Returns the new debounced function.
3605 * @example
3606 *
3607 * // Avoid costly calculations while the window size is in flux.
3608 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
3609 *
3610 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
3611 * jQuery(element).on('click', _.debounce(sendMail, 300, {
3612 * 'leading': true,
3613 * 'trailing': false
3614 * }));
3615 *
3616 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
3617 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
3618 * var source = new EventSource('/stream');
3619 * jQuery(source).on('message', debounced);
3620 *
3621 * // Cancel the trailing debounced invocation.
3622 * jQuery(window).on('popstate', debounced.cancel);
3623 */
3624 function debounce(func, wait, options) {
3625 var lastArgs,
3626 lastThis,
3627 maxWait,
3628 result,
3629 timerId,
3630 lastCallTime,
3631 lastInvokeTime = 0,
3632 leading = false,
3633 maxing = false,
3634 trailing = true;
3635
3636 if (typeof func != 'function') {
3637 throw new TypeError(FUNC_ERROR_TEXT);
3638 }
3639 wait = toNumber(wait) || 0;
3640 if (isObject(options)) {
3641 leading = !!options.leading;
3642 maxing = 'maxWait' in options;
3643 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
3644 trailing = 'trailing' in options ? !!options.trailing : trailing;
3645 }
3646
3647 function invokeFunc(time) {
3648 var args = lastArgs,
3649 thisArg = lastThis;
3650
3651 lastArgs = lastThis = undefined;
3652 lastInvokeTime = time;
3653 result = func.apply(thisArg, args);
3654 return result;
3655 }
3656
3657 function leadingEdge(time) {
3658 // Reset any `maxWait` timer.
3659 lastInvokeTime = time;
3660 // Start the timer for the trailing edge.
3661 timerId = setTimeout(timerExpired, wait);
3662 // Invoke the leading edge.
3663 return leading ? invokeFunc(time) : result;
3664 }
3665
3666 function remainingWait(time) {
3667 var timeSinceLastCall = time - lastCallTime,
3668 timeSinceLastInvoke = time - lastInvokeTime,
3669 timeWaiting = wait - timeSinceLastCall;
3670
3671 return maxing
3672 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
3673 : timeWaiting;
3674 }
3675
3676 function shouldInvoke(time) {
3677 var timeSinceLastCall = time - lastCallTime,
3678 timeSinceLastInvoke = time - lastInvokeTime;
3679
3680 // Either this is the first call, activity has stopped and we're at the
3681 // trailing edge, the system time has gone backwards and we're treating
3682 // it as the trailing edge, or we've hit the `maxWait` limit.
3683 return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
3684 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
3685 }
3686
3687 function timerExpired() {
3688 var time = now();
3689 if (shouldInvoke(time)) {
3690 return trailingEdge(time);
3691 }
3692 // Restart the timer.
3693 timerId = setTimeout(timerExpired, remainingWait(time));
3694 }
3695
3696 function trailingEdge(time) {
3697 timerId = undefined;
3698
3699 // Only invoke if we have `lastArgs` which means `func` has been
3700 // debounced at least once.
3701 if (trailing && lastArgs) {
3702 return invokeFunc(time);
3703 }
3704 lastArgs = lastThis = undefined;
3705 return result;
3706 }
3707
3708 function cancel() {
3709 if (timerId !== undefined) {
3710 clearTimeout(timerId);
3711 }
3712 lastInvokeTime = 0;
3713 lastArgs = lastCallTime = lastThis = timerId = undefined;
3714 }
3715
3716 function flush() {
3717 return timerId === undefined ? result : trailingEdge(now());
3718 }
3719
3720 function debounced() {
3721 var time = now(),
3722 isInvoking = shouldInvoke(time);
3723
3724 lastArgs = arguments;
3725 lastThis = this;
3726 lastCallTime = time;
3727
3728 if (isInvoking) {
3729 if (timerId === undefined) {
3730 return leadingEdge(lastCallTime);
3731 }
3732 if (maxing) {
3733 // Handle invocations in a tight loop.
3734 clearTimeout(timerId);
3735 timerId = setTimeout(timerExpired, wait);
3736 return invokeFunc(lastCallTime);
3737 }
3738 }
3739 if (timerId === undefined) {
3740 timerId = setTimeout(timerExpired, wait);
3741 }
3742 return result;
3743 }
3744 debounced.cancel = cancel;
3745 debounced.flush = flush;
3746 return debounced;
3747 }
3748
3749 module.exports = debounce;
3750
3751
3752 /***/ }),
3753
3754 /***/ "./node_modules/lodash/isObject.js":
3755 /*!*****************************************!*\
3756 !*** ./node_modules/lodash/isObject.js ***!
3757 \*****************************************/
3758 /***/ ((module) => {
3759
3760 /**
3761 * Checks if `value` is the
3762 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
3763 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
3764 *
3765 * @static
3766 * @memberOf _
3767 * @since 0.1.0
3768 * @category Lang
3769 * @param {*} value The value to check.
3770 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
3771 * @example
3772 *
3773 * _.isObject({});
3774 * // => true
3775 *
3776 * _.isObject([1, 2, 3]);
3777 * // => true
3778 *
3779 * _.isObject(_.noop);
3780 * // => true
3781 *
3782 * _.isObject(null);
3783 * // => false
3784 */
3785 function isObject(value) {
3786 var type = typeof value;
3787 return value != null && (type == 'object' || type == 'function');
3788 }
3789
3790 module.exports = isObject;
3791
3792
3793 /***/ }),
3794
3795 /***/ "./node_modules/lodash/isObjectLike.js":
3796 /*!*********************************************!*\
3797 !*** ./node_modules/lodash/isObjectLike.js ***!
3798 \*********************************************/
3799 /***/ ((module) => {
3800
3801 /**
3802 * Checks if `value` is object-like. A value is object-like if it's not `null`
3803 * and has a `typeof` result of "object".
3804 *
3805 * @static
3806 * @memberOf _
3807 * @since 4.0.0
3808 * @category Lang
3809 * @param {*} value The value to check.
3810 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
3811 * @example
3812 *
3813 * _.isObjectLike({});
3814 * // => true
3815 *
3816 * _.isObjectLike([1, 2, 3]);
3817 * // => true
3818 *
3819 * _.isObjectLike(_.noop);
3820 * // => false
3821 *
3822 * _.isObjectLike(null);
3823 * // => false
3824 */
3825 function isObjectLike(value) {
3826 return value != null && typeof value == 'object';
3827 }
3828
3829 module.exports = isObjectLike;
3830
3831
3832 /***/ }),
3833
3834 /***/ "./node_modules/lodash/isSymbol.js":
3835 /*!*****************************************!*\
3836 !*** ./node_modules/lodash/isSymbol.js ***!
3837 \*****************************************/
3838 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3839
3840 var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
3841 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
3842
3843 /** `Object#toString` result references. */
3844 var symbolTag = '[object Symbol]';
3845
3846 /**
3847 * Checks if `value` is classified as a `Symbol` primitive or object.
3848 *
3849 * @static
3850 * @memberOf _
3851 * @since 4.0.0
3852 * @category Lang
3853 * @param {*} value The value to check.
3854 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
3855 * @example
3856 *
3857 * _.isSymbol(Symbol.iterator);
3858 * // => true
3859 *
3860 * _.isSymbol('abc');
3861 * // => false
3862 */
3863 function isSymbol(value) {
3864 return typeof value == 'symbol' ||
3865 (isObjectLike(value) && baseGetTag(value) == symbolTag);
3866 }
3867
3868 module.exports = isSymbol;
3869
3870
3871 /***/ }),
3872
3873 /***/ "./node_modules/lodash/now.js":
3874 /*!************************************!*\
3875 !*** ./node_modules/lodash/now.js ***!
3876 \************************************/
3877 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3878
3879 var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
3880
3881 /**
3882 * Gets the timestamp of the number of milliseconds that have elapsed since
3883 * the Unix epoch (1 January 1970 00:00:00 UTC).
3884 *
3885 * @static
3886 * @memberOf _
3887 * @since 2.4.0
3888 * @category Date
3889 * @returns {number} Returns the timestamp.
3890 * @example
3891 *
3892 * _.defer(function(stamp) {
3893 * console.log(_.now() - stamp);
3894 * }, _.now());
3895 * // => Logs the number of milliseconds it took for the deferred invocation.
3896 */
3897 var now = function() {
3898 return root.Date.now();
3899 };
3900
3901 module.exports = now;
3902
3903
3904 /***/ }),
3905
3906 /***/ "./node_modules/lodash/toNumber.js":
3907 /*!*****************************************!*\
3908 !*** ./node_modules/lodash/toNumber.js ***!
3909 \*****************************************/
3910 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3911
3912 var baseTrim = __webpack_require__(/*! ./_baseTrim */ "./node_modules/lodash/_baseTrim.js"),
3913 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
3914 isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
3915
3916 /** Used as references for various `Number` constants. */
3917 var NAN = 0 / 0;
3918
3919 /** Used to detect bad signed hexadecimal string values. */
3920 var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
3921
3922 /** Used to detect binary string values. */
3923 var reIsBinary = /^0b[01]+$/i;
3924
3925 /** Used to detect octal string values. */
3926 var reIsOctal = /^0o[0-7]+$/i;
3927
3928 /** Built-in method references without a dependency on `root`. */
3929 var freeParseInt = parseInt;
3930
3931 /**
3932 * Converts `value` to a number.
3933 *
3934 * @static
3935 * @memberOf _
3936 * @since 4.0.0
3937 * @category Lang
3938 * @param {*} value The value to process.
3939 * @returns {number} Returns the number.
3940 * @example
3941 *
3942 * _.toNumber(3.2);
3943 * // => 3.2
3944 *
3945 * _.toNumber(Number.MIN_VALUE);
3946 * // => 5e-324
3947 *
3948 * _.toNumber(Infinity);
3949 * // => Infinity
3950 *
3951 * _.toNumber('3.2');
3952 * // => 3.2
3953 */
3954 function toNumber(value) {
3955 if (typeof value == 'number') {
3956 return value;
3957 }
3958 if (isSymbol(value)) {
3959 return NAN;
3960 }
3961 if (isObject(value)) {
3962 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
3963 value = isObject(other) ? (other + '') : other;
3964 }
3965 if (typeof value != 'string') {
3966 return value === 0 ? value : +value;
3967 }
3968 value = baseTrim(value);
3969 var isBinary = reIsBinary.test(value);
3970 return (isBinary || reIsOctal.test(value))
3971 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
3972 : (reIsBadHex.test(value) ? NAN : +value);
3973 }
3974
3975 module.exports = toNumber;
3976
3977
3978 /***/ }),
3979
3980 /***/ "./scripts/elementor/Common/ElementorButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/Common/ElementorButton.tsx":
3981 /*!*********************************************************************************************************************************************************************************************!*\
3982 !*** ./scripts/elementor/Common/ElementorButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/Common/ElementorButton.tsx ***!
3983 \*********************************************************************************************************************************************************************************************/
3984 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3985
3986 "use strict";
3987 __webpack_require__.r(__webpack_exports__);
3988 // extracted by mini-css-extract-plugin
3989
3990
3991 /***/ }),
3992
3993 /***/ "./scripts/elementor/MeetingWidget/ElementorMeetingWarning.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx":
3994 /*!***************************************************************************************************************************************************************************************************************************!*\
3995 !*** ./scripts/elementor/MeetingWidget/ElementorMeetingWarning.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx ***!
3996 \***************************************************************************************************************************************************************************************************************************/
3997 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3998
3999 "use strict";
4000 __webpack_require__.r(__webpack_exports__);
4001 // extracted by mini-css-extract-plugin
4002
4003
4004 /***/ }),
4005
4006 /***/ "./scripts/shared/Common/AsyncSelect.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/AsyncSelect.tsx":
4007 /*!*******************************************************************************************************************************************************************************!*\
4008 !*** ./scripts/shared/Common/AsyncSelect.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/AsyncSelect.tsx ***!
4009 \*******************************************************************************************************************************************************************************/
4010 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4011
4012 "use strict";
4013 __webpack_require__.r(__webpack_exports__);
4014 // extracted by mini-css-extract-plugin
4015
4016
4017 /***/ }),
4018
4019 /***/ "./scripts/shared/Common/HubspotWrapper.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/HubspotWrapper.ts":
4020 /*!************************************************************************************************************************************************************************************!*\
4021 !*** ./scripts/shared/Common/HubspotWrapper.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/HubspotWrapper.ts ***!
4022 \************************************************************************************************************************************************************************************/
4023 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4024
4025 "use strict";
4026 __webpack_require__.r(__webpack_exports__);
4027 // extracted by mini-css-extract-plugin
4028
4029
4030 /***/ }),
4031
4032 /***/ "./scripts/shared/UIComponents/UIAlert.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIAlert.tsx":
4033 /*!***********************************************************************************************************************************************************************************!*\
4034 !*** ./scripts/shared/UIComponents/UIAlert.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIAlert.tsx ***!
4035 \***********************************************************************************************************************************************************************************/
4036 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4037
4038 "use strict";
4039 __webpack_require__.r(__webpack_exports__);
4040 // extracted by mini-css-extract-plugin
4041
4042
4043 /***/ }),
4044
4045 /***/ "./scripts/shared/UIComponents/UIButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIButton.ts":
4046 /*!************************************************************************************************************************************************************************************!*\
4047 !*** ./scripts/shared/UIComponents/UIButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIButton.ts ***!
4048 \************************************************************************************************************************************************************************************/
4049 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4050
4051 "use strict";
4052 __webpack_require__.r(__webpack_exports__);
4053 // extracted by mini-css-extract-plugin
4054
4055
4056 /***/ }),
4057
4058 /***/ "./scripts/shared/UIComponents/UIContainer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIContainer.ts":
4059 /*!******************************************************************************************************************************************************************************************!*\
4060 !*** ./scripts/shared/UIComponents/UIContainer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIContainer.ts ***!
4061 \******************************************************************************************************************************************************************************************/
4062 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4063
4064 "use strict";
4065 __webpack_require__.r(__webpack_exports__);
4066 // extracted by mini-css-extract-plugin
4067
4068
4069 /***/ }),
4070
4071 /***/ "./scripts/shared/UIComponents/UIOverlay.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIOverlay.ts":
4072 /*!**************************************************************************************************************************************************************************************!*\
4073 !*** ./scripts/shared/UIComponents/UIOverlay.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIOverlay.ts ***!
4074 \**************************************************************************************************************************************************************************************/
4075 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4076
4077 "use strict";
4078 __webpack_require__.r(__webpack_exports__);
4079 // extracted by mini-css-extract-plugin
4080
4081
4082 /***/ }),
4083
4084 /***/ "./scripts/shared/UIComponents/UISpacer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpacer.ts":
4085 /*!************************************************************************************************************************************************************************************!*\
4086 !*** ./scripts/shared/UIComponents/UISpacer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpacer.ts ***!
4087 \************************************************************************************************************************************************************************************/
4088 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4089
4090 "use strict";
4091 __webpack_require__.r(__webpack_exports__);
4092 // extracted by mini-css-extract-plugin
4093
4094
4095 /***/ }),
4096
4097 /***/ "./scripts/shared/UIComponents/UISpinner.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpinner.tsx":
4098 /*!***************************************************************************************************************************************************************************************!*\
4099 !*** ./scripts/shared/UIComponents/UISpinner.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpinner.tsx ***!
4100 \***************************************************************************************************************************************************************************************/
4101 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4102
4103 "use strict";
4104 __webpack_require__.r(__webpack_exports__);
4105 // extracted by mini-css-extract-plugin
4106
4107
4108 /***/ }),
4109
4110 /***/ "./node_modules/object-assign/index.js":
4111 /*!*********************************************!*\
4112 !*** ./node_modules/object-assign/index.js ***!
4113 \*********************************************/
4114 /***/ ((module) => {
4115
4116 "use strict";
4117 /*
4118 object-assign
4119 (c) Sindre Sorhus
4120 @license MIT
4121 */
4122
4123
4124 /* eslint-disable no-unused-vars */
4125 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
4126 var hasOwnProperty = Object.prototype.hasOwnProperty;
4127 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
4128
4129 function toObject(val) {
4130 if (val === null || val === undefined) {
4131 throw new TypeError('Object.assign cannot be called with null or undefined');
4132 }
4133
4134 return Object(val);
4135 }
4136
4137 function shouldUseNative() {
4138 try {
4139 if (!Object.assign) {
4140 return false;
4141 }
4142
4143 // Detect buggy property enumeration order in older V8 versions.
4144
4145 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
4146 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
4147 test1[5] = 'de';
4148 if (Object.getOwnPropertyNames(test1)[0] === '5') {
4149 return false;
4150 }
4151
4152 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
4153 var test2 = {};
4154 for (var i = 0; i < 10; i++) {
4155 test2['_' + String.fromCharCode(i)] = i;
4156 }
4157 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
4158 return test2[n];
4159 });
4160 if (order2.join('') !== '0123456789') {
4161 return false;
4162 }
4163
4164 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
4165 var test3 = {};
4166 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
4167 test3[letter] = letter;
4168 });
4169 if (Object.keys(Object.assign({}, test3)).join('') !==
4170 'abcdefghijklmnopqrst') {
4171 return false;
4172 }
4173
4174 return true;
4175 } catch (err) {
4176 // We don't expect any of the above to throw, but better to be safe.
4177 return false;
4178 }
4179 }
4180
4181 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
4182 var from;
4183 var to = toObject(target);
4184 var symbols;
4185
4186 for (var s = 1; s < arguments.length; s++) {
4187 from = Object(arguments[s]);
4188
4189 for (var key in from) {
4190 if (hasOwnProperty.call(from, key)) {
4191 to[key] = from[key];
4192 }
4193 }
4194
4195 if (getOwnPropertySymbols) {
4196 symbols = getOwnPropertySymbols(from);
4197 for (var i = 0; i < symbols.length; i++) {
4198 if (propIsEnumerable.call(from, symbols[i])) {
4199 to[symbols[i]] = from[symbols[i]];
4200 }
4201 }
4202 }
4203 }
4204
4205 return to;
4206 };
4207
4208
4209 /***/ }),
4210
4211 /***/ "./node_modules/raven-js/src/configError.js":
4212 /*!**************************************************!*\
4213 !*** ./node_modules/raven-js/src/configError.js ***!
4214 \**************************************************/
4215 /***/ ((module) => {
4216
4217 function RavenConfigError(message) {
4218 this.name = 'RavenConfigError';
4219 this.message = message;
4220 }
4221 RavenConfigError.prototype = new Error();
4222 RavenConfigError.prototype.constructor = RavenConfigError;
4223
4224 module.exports = RavenConfigError;
4225
4226
4227 /***/ }),
4228
4229 /***/ "./node_modules/raven-js/src/console.js":
4230 /*!**********************************************!*\
4231 !*** ./node_modules/raven-js/src/console.js ***!
4232 \**********************************************/
4233 /***/ ((module) => {
4234
4235 var wrapMethod = function(console, level, callback) {
4236 var originalConsoleLevel = console[level];
4237 var originalConsole = console;
4238
4239 if (!(level in console)) {
4240 return;
4241 }
4242
4243 var sentryLevel = level === 'warn' ? 'warning' : level;
4244
4245 console[level] = function() {
4246 var args = [].slice.call(arguments);
4247
4248 var msg = '' + args.join(' ');
4249 var data = {level: sentryLevel, logger: 'console', extra: {arguments: args}};
4250
4251 if (level === 'assert') {
4252 if (args[0] === false) {
4253 // Default browsers message
4254 msg = 'Assertion failed: ' + (args.slice(1).join(' ') || 'console.assert');
4255 data.extra.arguments = args.slice(1);
4256 callback && callback(msg, data);
4257 }
4258 } else {
4259 callback && callback(msg, data);
4260 }
4261
4262 // this fails for some browsers. :(
4263 if (originalConsoleLevel) {
4264 // IE9 doesn't allow calling apply on console functions directly
4265 // See: https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193
4266 Function.prototype.apply.call(originalConsoleLevel, originalConsole, args);
4267 }
4268 };
4269 };
4270
4271 module.exports = {
4272 wrapMethod: wrapMethod
4273 };
4274
4275
4276 /***/ }),
4277
4278 /***/ "./node_modules/raven-js/src/raven.js":
4279 /*!********************************************!*\
4280 !*** ./node_modules/raven-js/src/raven.js ***!
4281 \********************************************/
4282 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
4283
4284 /*global XDomainRequest:false */
4285
4286 var TraceKit = __webpack_require__(/*! ../vendor/TraceKit/tracekit */ "./node_modules/raven-js/vendor/TraceKit/tracekit.js");
4287 var stringify = __webpack_require__(/*! ../vendor/json-stringify-safe/stringify */ "./node_modules/raven-js/vendor/json-stringify-safe/stringify.js");
4288 var RavenConfigError = __webpack_require__(/*! ./configError */ "./node_modules/raven-js/src/configError.js");
4289
4290 var utils = __webpack_require__(/*! ./utils */ "./node_modules/raven-js/src/utils.js");
4291 var isError = utils.isError;
4292 var isObject = utils.isObject;
4293 var isObject = utils.isObject;
4294 var isErrorEvent = utils.isErrorEvent;
4295 var isUndefined = utils.isUndefined;
4296 var isFunction = utils.isFunction;
4297 var isString = utils.isString;
4298 var isEmptyObject = utils.isEmptyObject;
4299 var each = utils.each;
4300 var objectMerge = utils.objectMerge;
4301 var truncate = utils.truncate;
4302 var objectFrozen = utils.objectFrozen;
4303 var hasKey = utils.hasKey;
4304 var joinRegExp = utils.joinRegExp;
4305 var urlencode = utils.urlencode;
4306 var uuid4 = utils.uuid4;
4307 var htmlTreeAsString = utils.htmlTreeAsString;
4308 var isSameException = utils.isSameException;
4309 var isSameStacktrace = utils.isSameStacktrace;
4310 var parseUrl = utils.parseUrl;
4311 var fill = utils.fill;
4312
4313 var wrapConsoleMethod = (__webpack_require__(/*! ./console */ "./node_modules/raven-js/src/console.js").wrapMethod);
4314
4315 var dsnKeys = 'source protocol user pass host port path'.split(' '),
4316 dsnPattern = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/;
4317
4318 function now() {
4319 return +new Date();
4320 }
4321
4322 // This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)
4323 var _window =
4324 typeof window !== 'undefined'
4325 ? window
4326 : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
4327 var _document = _window.document;
4328 var _navigator = _window.navigator;
4329
4330 function keepOriginalCallback(original, callback) {
4331 return isFunction(callback)
4332 ? function(data) {
4333 return callback(data, original);
4334 }
4335 : callback;
4336 }
4337
4338 // First, check for JSON support
4339 // If there is no JSON, we no-op the core features of Raven
4340 // since JSON is required to encode the payload
4341 function Raven() {
4342 this._hasJSON = !!(typeof JSON === 'object' && JSON.stringify);
4343 // Raven can run in contexts where there's no document (react-native)
4344 this._hasDocument = !isUndefined(_document);
4345 this._hasNavigator = !isUndefined(_navigator);
4346 this._lastCapturedException = null;
4347 this._lastData = null;
4348 this._lastEventId = null;
4349 this._globalServer = null;
4350 this._globalKey = null;
4351 this._globalProject = null;
4352 this._globalContext = {};
4353 this._globalOptions = {
4354 logger: 'javascript',
4355 ignoreErrors: [],
4356 ignoreUrls: [],
4357 whitelistUrls: [],
4358 includePaths: [],
4359 collectWindowErrors: true,
4360 maxMessageLength: 0,
4361
4362 // By default, truncates URL values to 250 chars
4363 maxUrlLength: 250,
4364 stackTraceLimit: 50,
4365 autoBreadcrumbs: true,
4366 instrument: true,
4367 sampleRate: 1
4368 };
4369 this._ignoreOnError = 0;
4370 this._isRavenInstalled = false;
4371 this._originalErrorStackTraceLimit = Error.stackTraceLimit;
4372 // capture references to window.console *and* all its methods first
4373 // before the console plugin has a chance to monkey patch
4374 this._originalConsole = _window.console || {};
4375 this._originalConsoleMethods = {};
4376 this._plugins = [];
4377 this._startTime = now();
4378 this._wrappedBuiltIns = [];
4379 this._breadcrumbs = [];
4380 this._lastCapturedEvent = null;
4381 this._keypressTimeout;
4382 this._location = _window.location;
4383 this._lastHref = this._location && this._location.href;
4384 this._resetBackoff();
4385
4386 // eslint-disable-next-line guard-for-in
4387 for (var method in this._originalConsole) {
4388 this._originalConsoleMethods[method] = this._originalConsole[method];
4389 }
4390 }
4391
4392 /*
4393 * The core Raven singleton
4394 *
4395 * @this {Raven}
4396 */
4397
4398 Raven.prototype = {
4399 // Hardcode version string so that raven source can be loaded directly via
4400 // webpack (using a build step causes webpack #1617). Grunt verifies that
4401 // this value matches package.json during build.
4402 // See: https://github.com/getsentry/raven-js/issues/465
4403 VERSION: '3.19.1',
4404
4405 debug: false,
4406
4407 TraceKit: TraceKit, // alias to TraceKit
4408
4409 /*
4410 * Configure Raven with a DSN and extra options
4411 *
4412 * @param {string} dsn The public Sentry DSN
4413 * @param {object} options Set of global options [optional]
4414 * @return {Raven}
4415 */
4416 config: function(dsn, options) {
4417 var self = this;
4418
4419 if (self._globalServer) {
4420 this._logDebug('error', 'Error: Raven has already been configured');
4421 return self;
4422 }
4423 if (!dsn) return self;
4424
4425 var globalOptions = self._globalOptions;
4426
4427 // merge in options
4428 if (options) {
4429 each(options, function(key, value) {
4430 // tags and extra are special and need to be put into context
4431 if (key === 'tags' || key === 'extra' || key === 'user') {
4432 self._globalContext[key] = value;
4433 } else {
4434 globalOptions[key] = value;
4435 }
4436 });
4437 }
4438
4439 self.setDSN(dsn);
4440
4441 // "Script error." is hard coded into browsers for errors that it can't read.
4442 // this is the result of a script being pulled in from an external domain and CORS.
4443 globalOptions.ignoreErrors.push(/^Script error\.?$/);
4444 globalOptions.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/);
4445
4446 // join regexp rules into one big rule
4447 globalOptions.ignoreErrors = joinRegExp(globalOptions.ignoreErrors);
4448 globalOptions.ignoreUrls = globalOptions.ignoreUrls.length
4449 ? joinRegExp(globalOptions.ignoreUrls)
4450 : false;
4451 globalOptions.whitelistUrls = globalOptions.whitelistUrls.length
4452 ? joinRegExp(globalOptions.whitelistUrls)
4453 : false;
4454 globalOptions.includePaths = joinRegExp(globalOptions.includePaths);
4455 globalOptions.maxBreadcrumbs = Math.max(
4456 0,
4457 Math.min(globalOptions.maxBreadcrumbs || 100, 100)
4458 ); // default and hard limit is 100
4459
4460 var autoBreadcrumbDefaults = {
4461 xhr: true,
4462 console: true,
4463 dom: true,
4464 location: true
4465 };
4466
4467 var autoBreadcrumbs = globalOptions.autoBreadcrumbs;
4468 if ({}.toString.call(autoBreadcrumbs) === '[object Object]') {
4469 autoBreadcrumbs = objectMerge(autoBreadcrumbDefaults, autoBreadcrumbs);
4470 } else if (autoBreadcrumbs !== false) {
4471 autoBreadcrumbs = autoBreadcrumbDefaults;
4472 }
4473 globalOptions.autoBreadcrumbs = autoBreadcrumbs;
4474
4475 var instrumentDefaults = {
4476 tryCatch: true
4477 };
4478
4479 var instrument = globalOptions.instrument;
4480 if ({}.toString.call(instrument) === '[object Object]') {
4481 instrument = objectMerge(instrumentDefaults, instrument);
4482 } else if (instrument !== false) {
4483 instrument = instrumentDefaults;
4484 }
4485 globalOptions.instrument = instrument;
4486
4487 TraceKit.collectWindowErrors = !!globalOptions.collectWindowErrors;
4488
4489 // return for chaining
4490 return self;
4491 },
4492
4493 /*
4494 * Installs a global window.onerror error handler
4495 * to capture and report uncaught exceptions.
4496 * At this point, install() is required to be called due
4497 * to the way TraceKit is set up.
4498 *
4499 * @return {Raven}
4500 */
4501 install: function() {
4502 var self = this;
4503 if (self.isSetup() && !self._isRavenInstalled) {
4504 TraceKit.report.subscribe(function() {
4505 self._handleOnErrorStackInfo.apply(self, arguments);
4506 });
4507 if (self._globalOptions.instrument && self._globalOptions.instrument.tryCatch) {
4508 self._instrumentTryCatch();
4509 }
4510
4511 if (self._globalOptions.autoBreadcrumbs) self._instrumentBreadcrumbs();
4512
4513 // Install all of the plugins
4514 self._drainPlugins();
4515
4516 self._isRavenInstalled = true;
4517 }
4518
4519 Error.stackTraceLimit = self._globalOptions.stackTraceLimit;
4520 return this;
4521 },
4522
4523 /*
4524 * Set the DSN (can be called multiple time unlike config)
4525 *
4526 * @param {string} dsn The public Sentry DSN
4527 */
4528 setDSN: function(dsn) {
4529 var self = this,
4530 uri = self._parseDSN(dsn),
4531 lastSlash = uri.path.lastIndexOf('/'),
4532 path = uri.path.substr(1, lastSlash);
4533
4534 self._dsn = dsn;
4535 self._globalKey = uri.user;
4536 self._globalSecret = uri.pass && uri.pass.substr(1);
4537 self._globalProject = uri.path.substr(lastSlash + 1);
4538
4539 self._globalServer = self._getGlobalServer(uri);
4540
4541 self._globalEndpoint =
4542 self._globalServer + '/' + path + 'api/' + self._globalProject + '/store/';
4543
4544 // Reset backoff state since we may be pointing at a
4545 // new project/server
4546 this._resetBackoff();
4547 },
4548
4549 /*
4550 * Wrap code within a context so Raven can capture errors
4551 * reliably across domains that is executed immediately.
4552 *
4553 * @param {object} options A specific set of options for this context [optional]
4554 * @param {function} func The callback to be immediately executed within the context
4555 * @param {array} args An array of arguments to be called with the callback [optional]
4556 */
4557 context: function(options, func, args) {
4558 if (isFunction(options)) {
4559 args = func || [];
4560 func = options;
4561 options = undefined;
4562 }
4563
4564 return this.wrap(options, func).apply(this, args);
4565 },
4566
4567 /*
4568 * Wrap code within a context and returns back a new function to be executed
4569 *
4570 * @param {object} options A specific set of options for this context [optional]
4571 * @param {function} func The function to be wrapped in a new context
4572 * @param {function} func A function to call before the try/catch wrapper [optional, private]
4573 * @return {function} The newly wrapped functions with a context
4574 */
4575 wrap: function(options, func, _before) {
4576 var self = this;
4577 // 1 argument has been passed, and it's not a function
4578 // so just return it
4579 if (isUndefined(func) && !isFunction(options)) {
4580 return options;
4581 }
4582
4583 // options is optional
4584 if (isFunction(options)) {
4585 func = options;
4586 options = undefined;
4587 }
4588
4589 // At this point, we've passed along 2 arguments, and the second one
4590 // is not a function either, so we'll just return the second argument.
4591 if (!isFunction(func)) {
4592 return func;
4593 }
4594
4595 // We don't wanna wrap it twice!
4596 try {
4597 if (func.__raven__) {
4598 return func;
4599 }
4600
4601 // If this has already been wrapped in the past, return that
4602 if (func.__raven_wrapper__) {
4603 return func.__raven_wrapper__;
4604 }
4605 } catch (e) {
4606 // Just accessing custom props in some Selenium environments
4607 // can cause a "Permission denied" exception (see raven-js#495).
4608 // Bail on wrapping and return the function as-is (defers to window.onerror).
4609 return func;
4610 }
4611
4612 function wrapped() {
4613 var args = [],
4614 i = arguments.length,
4615 deep = !options || (options && options.deep !== false);
4616
4617 if (_before && isFunction(_before)) {
4618 _before.apply(this, arguments);
4619 }
4620
4621 // Recursively wrap all of a function's arguments that are
4622 // functions themselves.
4623 while (i--) args[i] = deep ? self.wrap(options, arguments[i]) : arguments[i];
4624
4625 try {
4626 // Attempt to invoke user-land function
4627 // NOTE: If you are a Sentry user, and you are seeing this stack frame, it
4628 // means Raven caught an error invoking your application code. This is
4629 // expected behavior and NOT indicative of a bug with Raven.js.
4630 return func.apply(this, args);
4631 } catch (e) {
4632 self._ignoreNextOnError();
4633 self.captureException(e, options);
4634 throw e;
4635 }
4636 }
4637
4638 // copy over properties of the old function
4639 for (var property in func) {
4640 if (hasKey(func, property)) {
4641 wrapped[property] = func[property];
4642 }
4643 }
4644 wrapped.prototype = func.prototype;
4645
4646 func.__raven_wrapper__ = wrapped;
4647 // Signal that this function has been wrapped already
4648 // for both debugging and to prevent it to being wrapped twice
4649 wrapped.__raven__ = true;
4650 wrapped.__inner__ = func;
4651
4652 return wrapped;
4653 },
4654
4655 /*
4656 * Uninstalls the global error handler.
4657 *
4658 * @return {Raven}
4659 */
4660 uninstall: function() {
4661 TraceKit.report.uninstall();
4662
4663 this._restoreBuiltIns();
4664
4665 Error.stackTraceLimit = this._originalErrorStackTraceLimit;
4666 this._isRavenInstalled = false;
4667
4668 return this;
4669 },
4670
4671 /*
4672 * Manually capture an exception and send it over to Sentry
4673 *
4674 * @param {error} ex An exception to be logged
4675 * @param {object} options A specific set of options for this error [optional]
4676 * @return {Raven}
4677 */
4678 captureException: function(ex, options) {
4679 // Cases for sending ex as a message, rather than an exception
4680 var isNotError = !isError(ex);
4681 var isNotErrorEvent = !isErrorEvent(ex);
4682 var isErrorEventWithoutError = isErrorEvent(ex) && !ex.error;
4683
4684 if ((isNotError && isNotErrorEvent) || isErrorEventWithoutError) {
4685 return this.captureMessage(
4686 ex,
4687 objectMerge(
4688 {
4689 trimHeadFrames: 1,
4690 stacktrace: true // if we fall back to captureMessage, default to attempting a new trace
4691 },
4692 options
4693 )
4694 );
4695 }
4696
4697 // Get actual Error from ErrorEvent
4698 if (isErrorEvent(ex)) ex = ex.error;
4699
4700 // Store the raw exception object for potential debugging and introspection
4701 this._lastCapturedException = ex;
4702
4703 // TraceKit.report will re-raise any exception passed to it,
4704 // which means you have to wrap it in try/catch. Instead, we
4705 // can wrap it here and only re-raise if TraceKit.report
4706 // raises an exception different from the one we asked to
4707 // report on.
4708 try {
4709 var stack = TraceKit.computeStackTrace(ex);
4710 this._handleStackInfo(stack, options);
4711 } catch (ex1) {
4712 if (ex !== ex1) {
4713 throw ex1;
4714 }
4715 }
4716
4717 return this;
4718 },
4719
4720 /*
4721 * Manually send a message to Sentry
4722 *
4723 * @param {string} msg A plain message to be captured in Sentry
4724 * @param {object} options A specific set of options for this message [optional]
4725 * @return {Raven}
4726 */
4727 captureMessage: function(msg, options) {
4728 // config() automagically converts ignoreErrors from a list to a RegExp so we need to test for an
4729 // early call; we'll error on the side of logging anything called before configuration since it's
4730 // probably something you should see:
4731 if (
4732 !!this._globalOptions.ignoreErrors.test &&
4733 this._globalOptions.ignoreErrors.test(msg)
4734 ) {
4735 return;
4736 }
4737
4738 options = options || {};
4739
4740 var data = objectMerge(
4741 {
4742 message: msg + '' // Make sure it's actually a string
4743 },
4744 options
4745 );
4746
4747 var ex;
4748 // Generate a "synthetic" stack trace from this point.
4749 // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative
4750 // of a bug with Raven.js. Sentry generates synthetic traces either by configuration,
4751 // or if it catches a thrown object without a "stack" property.
4752 try {
4753 throw new Error(msg);
4754 } catch (ex1) {
4755 ex = ex1;
4756 }
4757
4758 // null exception name so `Error` isn't prefixed to msg
4759 ex.name = null;
4760 var stack = TraceKit.computeStackTrace(ex);
4761
4762 // stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1]
4763 var initialCall = stack.stack[1];
4764
4765 var fileurl = (initialCall && initialCall.url) || '';
4766
4767 if (
4768 !!this._globalOptions.ignoreUrls.test &&
4769 this._globalOptions.ignoreUrls.test(fileurl)
4770 ) {
4771 return;
4772 }
4773
4774 if (
4775 !!this._globalOptions.whitelistUrls.test &&
4776 !this._globalOptions.whitelistUrls.test(fileurl)
4777 ) {
4778 return;
4779 }
4780
4781 if (this._globalOptions.stacktrace || (options && options.stacktrace)) {
4782 options = objectMerge(
4783 {
4784 // fingerprint on msg, not stack trace (legacy behavior, could be
4785 // revisited)
4786 fingerprint: msg,
4787 // since we know this is a synthetic trace, the top N-most frames
4788 // MUST be from Raven.js, so mark them as in_app later by setting
4789 // trimHeadFrames
4790 trimHeadFrames: (options.trimHeadFrames || 0) + 1
4791 },
4792 options
4793 );
4794
4795 var frames = this._prepareFrames(stack, options);
4796 data.stacktrace = {
4797 // Sentry expects frames oldest to newest
4798 frames: frames.reverse()
4799 };
4800 }
4801
4802 // Fire away!
4803 this._send(data);
4804
4805 return this;
4806 },
4807
4808 captureBreadcrumb: function(obj) {
4809 var crumb = objectMerge(
4810 {
4811 timestamp: now() / 1000
4812 },
4813 obj
4814 );
4815
4816 if (isFunction(this._globalOptions.breadcrumbCallback)) {
4817 var result = this._globalOptions.breadcrumbCallback(crumb);
4818
4819 if (isObject(result) && !isEmptyObject(result)) {
4820 crumb = result;
4821 } else if (result === false) {
4822 return this;
4823 }
4824 }
4825
4826 this._breadcrumbs.push(crumb);
4827 if (this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs) {
4828 this._breadcrumbs.shift();
4829 }
4830 return this;
4831 },
4832
4833 addPlugin: function(plugin /*arg1, arg2, ... argN*/) {
4834 var pluginArgs = [].slice.call(arguments, 1);
4835
4836 this._plugins.push([plugin, pluginArgs]);
4837 if (this._isRavenInstalled) {
4838 this._drainPlugins();
4839 }
4840
4841 return this;
4842 },
4843
4844 /*
4845 * Set/clear a user to be sent along with the payload.
4846 *
4847 * @param {object} user An object representing user data [optional]
4848 * @return {Raven}
4849 */
4850 setUserContext: function(user) {
4851 // Intentionally do not merge here since that's an unexpected behavior.
4852 this._globalContext.user = user;
4853
4854 return this;
4855 },
4856
4857 /*
4858 * Merge extra attributes to be sent along with the payload.
4859 *
4860 * @param {object} extra An object representing extra data [optional]
4861 * @return {Raven}
4862 */
4863 setExtraContext: function(extra) {
4864 this._mergeContext('extra', extra);
4865
4866 return this;
4867 },
4868
4869 /*
4870 * Merge tags to be sent along with the payload.
4871 *
4872 * @param {object} tags An object representing tags [optional]
4873 * @return {Raven}
4874 */
4875 setTagsContext: function(tags) {
4876 this._mergeContext('tags', tags);
4877
4878 return this;
4879 },
4880
4881 /*
4882 * Clear all of the context.
4883 *
4884 * @return {Raven}
4885 */
4886 clearContext: function() {
4887 this._globalContext = {};
4888
4889 return this;
4890 },
4891
4892 /*
4893 * Get a copy of the current context. This cannot be mutated.
4894 *
4895 * @return {object} copy of context
4896 */
4897 getContext: function() {
4898 // lol javascript
4899 return JSON.parse(stringify(this._globalContext));
4900 },
4901
4902 /*
4903 * Set environment of application
4904 *
4905 * @param {string} environment Typically something like 'production'.
4906 * @return {Raven}
4907 */
4908 setEnvironment: function(environment) {
4909 this._globalOptions.environment = environment;
4910
4911 return this;
4912 },
4913
4914 /*
4915 * Set release version of application
4916 *
4917 * @param {string} release Typically something like a git SHA to identify version
4918 * @return {Raven}
4919 */
4920 setRelease: function(release) {
4921 this._globalOptions.release = release;
4922
4923 return this;
4924 },
4925
4926 /*
4927 * Set the dataCallback option
4928 *
4929 * @param {function} callback The callback to run which allows the
4930 * data blob to be mutated before sending
4931 * @return {Raven}
4932 */
4933 setDataCallback: function(callback) {
4934 var original = this._globalOptions.dataCallback;
4935 this._globalOptions.dataCallback = keepOriginalCallback(original, callback);
4936 return this;
4937 },
4938
4939 /*
4940 * Set the breadcrumbCallback option
4941 *
4942 * @param {function} callback The callback to run which allows filtering
4943 * or mutating breadcrumbs
4944 * @return {Raven}
4945 */
4946 setBreadcrumbCallback: function(callback) {
4947 var original = this._globalOptions.breadcrumbCallback;
4948 this._globalOptions.breadcrumbCallback = keepOriginalCallback(original, callback);
4949 return this;
4950 },
4951
4952 /*
4953 * Set the shouldSendCallback option
4954 *
4955 * @param {function} callback The callback to run which allows
4956 * introspecting the blob before sending
4957 * @return {Raven}
4958 */
4959 setShouldSendCallback: function(callback) {
4960 var original = this._globalOptions.shouldSendCallback;
4961 this._globalOptions.shouldSendCallback = keepOriginalCallback(original, callback);
4962 return this;
4963 },
4964
4965 /**
4966 * Override the default HTTP transport mechanism that transmits data
4967 * to the Sentry server.
4968 *
4969 * @param {function} transport Function invoked instead of the default
4970 * `makeRequest` handler.
4971 *
4972 * @return {Raven}
4973 */
4974 setTransport: function(transport) {
4975 this._globalOptions.transport = transport;
4976
4977 return this;
4978 },
4979
4980 /*
4981 * Get the latest raw exception that was captured by Raven.
4982 *
4983 * @return {error}
4984 */
4985 lastException: function() {
4986 return this._lastCapturedException;
4987 },
4988
4989 /*
4990 * Get the last event id
4991 *
4992 * @return {string}
4993 */
4994 lastEventId: function() {
4995 return this._lastEventId;
4996 },
4997
4998 /*
4999 * Determine if Raven is setup and ready to go.
5000 *
5001 * @return {boolean}
5002 */
5003 isSetup: function() {
5004 if (!this._hasJSON) return false; // needs JSON support
5005 if (!this._globalServer) {
5006 if (!this.ravenNotConfiguredError) {
5007 this.ravenNotConfiguredError = true;
5008 this._logDebug('error', 'Error: Raven has not been configured.');
5009 }
5010 return false;
5011 }
5012 return true;
5013 },
5014
5015 afterLoad: function() {
5016 // TODO: remove window dependence?
5017
5018 // Attempt to initialize Raven on load
5019 var RavenConfig = _window.RavenConfig;
5020 if (RavenConfig) {
5021 this.config(RavenConfig.dsn, RavenConfig.config).install();
5022 }
5023 },
5024
5025 showReportDialog: function(options) {
5026 if (
5027 !_document // doesn't work without a document (React native)
5028 )
5029 return;
5030
5031 options = options || {};
5032
5033 var lastEventId = options.eventId || this.lastEventId();
5034 if (!lastEventId) {
5035 throw new RavenConfigError('Missing eventId');
5036 }
5037
5038 var dsn = options.dsn || this._dsn;
5039 if (!dsn) {
5040 throw new RavenConfigError('Missing DSN');
5041 }
5042
5043 var encode = encodeURIComponent;
5044 var qs = '';
5045 qs += '?eventId=' + encode(lastEventId);
5046 qs += '&dsn=' + encode(dsn);
5047
5048 var user = options.user || this._globalContext.user;
5049 if (user) {
5050 if (user.name) qs += '&name=' + encode(user.name);
5051 if (user.email) qs += '&email=' + encode(user.email);
5052 }
5053
5054 var globalServer = this._getGlobalServer(this._parseDSN(dsn));
5055
5056 var script = _document.createElement('script');
5057 script.async = true;
5058 script.src = globalServer + '/api/embed/error-page/' + qs;
5059 (_document.head || _document.body).appendChild(script);
5060 },
5061
5062 /**** Private functions ****/
5063 _ignoreNextOnError: function() {
5064 var self = this;
5065 this._ignoreOnError += 1;
5066 setTimeout(function() {
5067 // onerror should trigger before setTimeout
5068 self._ignoreOnError -= 1;
5069 });
5070 },
5071
5072 _triggerEvent: function(eventType, options) {
5073 // NOTE: `event` is a native browser thing, so let's avoid conflicting wiht it
5074 var evt, key;
5075
5076 if (!this._hasDocument) return;
5077
5078 options = options || {};
5079
5080 eventType = 'raven' + eventType.substr(0, 1).toUpperCase() + eventType.substr(1);
5081
5082 if (_document.createEvent) {
5083 evt = _document.createEvent('HTMLEvents');
5084 evt.initEvent(eventType, true, true);
5085 } else {
5086 evt = _document.createEventObject();
5087 evt.eventType = eventType;
5088 }
5089
5090 for (key in options)
5091 if (hasKey(options, key)) {
5092 evt[key] = options[key];
5093 }
5094
5095 if (_document.createEvent) {
5096 // IE9 if standards
5097 _document.dispatchEvent(evt);
5098 } else {
5099 // IE8 regardless of Quirks or Standards
5100 // IE9 if quirks
5101 try {
5102 _document.fireEvent('on' + evt.eventType.toLowerCase(), evt);
5103 } catch (e) {
5104 // Do nothing
5105 }
5106 }
5107 },
5108
5109 /**
5110 * Wraps addEventListener to capture UI breadcrumbs
5111 * @param evtName the event name (e.g. "click")
5112 * @returns {Function}
5113 * @private
5114 */
5115 _breadcrumbEventHandler: function(evtName) {
5116 var self = this;
5117 return function(evt) {
5118 // reset keypress timeout; e.g. triggering a 'click' after
5119 // a 'keypress' will reset the keypress debounce so that a new
5120 // set of keypresses can be recorded
5121 self._keypressTimeout = null;
5122
5123 // It's possible this handler might trigger multiple times for the same
5124 // event (e.g. event propagation through node ancestors). Ignore if we've
5125 // already captured the event.
5126 if (self._lastCapturedEvent === evt) return;
5127
5128 self._lastCapturedEvent = evt;
5129
5130 // try/catch both:
5131 // - accessing evt.target (see getsentry/raven-js#838, #768)
5132 // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly
5133 // can throw an exception in some circumstances.
5134 var target;
5135 try {
5136 target = htmlTreeAsString(evt.target);
5137 } catch (e) {
5138 target = '<unknown>';
5139 }
5140
5141 self.captureBreadcrumb({
5142 category: 'ui.' + evtName, // e.g. ui.click, ui.input
5143 message: target
5144 });
5145 };
5146 },
5147
5148 /**
5149 * Wraps addEventListener to capture keypress UI events
5150 * @returns {Function}
5151 * @private
5152 */
5153 _keypressEventHandler: function() {
5154 var self = this,
5155 debounceDuration = 1000; // milliseconds
5156
5157 // TODO: if somehow user switches keypress target before
5158 // debounce timeout is triggered, we will only capture
5159 // a single breadcrumb from the FIRST target (acceptable?)
5160 return function(evt) {
5161 var target;
5162 try {
5163 target = evt.target;
5164 } catch (e) {
5165 // just accessing event properties can throw an exception in some rare circumstances
5166 // see: https://github.com/getsentry/raven-js/issues/838
5167 return;
5168 }
5169 var tagName = target && target.tagName;
5170
5171 // only consider keypress events on actual input elements
5172 // this will disregard keypresses targeting body (e.g. tabbing
5173 // through elements, hotkeys, etc)
5174 if (
5175 !tagName ||
5176 (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable)
5177 )
5178 return;
5179
5180 // record first keypress in a series, but ignore subsequent
5181 // keypresses until debounce clears
5182 var timeout = self._keypressTimeout;
5183 if (!timeout) {
5184 self._breadcrumbEventHandler('input')(evt);
5185 }
5186 clearTimeout(timeout);
5187 self._keypressTimeout = setTimeout(function() {
5188 self._keypressTimeout = null;
5189 }, debounceDuration);
5190 };
5191 },
5192
5193 /**
5194 * Captures a breadcrumb of type "navigation", normalizing input URLs
5195 * @param to the originating URL
5196 * @param from the target URL
5197 * @private
5198 */
5199 _captureUrlChange: function(from, to) {
5200 var parsedLoc = parseUrl(this._location.href);
5201 var parsedTo = parseUrl(to);
5202 var parsedFrom = parseUrl(from);
5203
5204 // because onpopstate only tells you the "new" (to) value of location.href, and
5205 // not the previous (from) value, we need to track the value of the current URL
5206 // state ourselves
5207 this._lastHref = to;
5208
5209 // Use only the path component of the URL if the URL matches the current
5210 // document (almost all the time when using pushState)
5211 if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host)
5212 to = parsedTo.relative;
5213 if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host)
5214 from = parsedFrom.relative;
5215
5216 this.captureBreadcrumb({
5217 category: 'navigation',
5218 data: {
5219 to: to,
5220 from: from
5221 }
5222 });
5223 },
5224
5225 /**
5226 * Wrap timer functions and event targets to catch errors and provide
5227 * better metadata.
5228 */
5229 _instrumentTryCatch: function() {
5230 var self = this;
5231
5232 var wrappedBuiltIns = self._wrappedBuiltIns;
5233
5234 function wrapTimeFn(orig) {
5235 return function(fn, t) {
5236 // preserve arity
5237 // Make a copy of the arguments to prevent deoptimization
5238 // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments
5239 var args = new Array(arguments.length);
5240 for (var i = 0; i < args.length; ++i) {
5241 args[i] = arguments[i];
5242 }
5243 var originalCallback = args[0];
5244 if (isFunction(originalCallback)) {
5245 args[0] = self.wrap(originalCallback);
5246 }
5247
5248 // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it
5249 // also supports only two arguments and doesn't care what this is, so we
5250 // can just call the original function directly.
5251 if (orig.apply) {
5252 return orig.apply(this, args);
5253 } else {
5254 return orig(args[0], args[1]);
5255 }
5256 };
5257 }
5258
5259 var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;
5260
5261 function wrapEventTarget(global) {
5262 var proto = _window[global] && _window[global].prototype;
5263 if (proto && proto.hasOwnProperty && proto.hasOwnProperty('addEventListener')) {
5264 fill(
5265 proto,
5266 'addEventListener',
5267 function(orig) {
5268 return function(evtName, fn, capture, secure) {
5269 // preserve arity
5270 try {
5271 if (fn && fn.handleEvent) {
5272 fn.handleEvent = self.wrap(fn.handleEvent);
5273 }
5274 } catch (err) {
5275 // can sometimes get 'Permission denied to access property "handle Event'
5276 }
5277
5278 // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs`
5279 // so that we don't have more than one wrapper function
5280 var before, clickHandler, keypressHandler;
5281
5282 if (
5283 autoBreadcrumbs &&
5284 autoBreadcrumbs.dom &&
5285 (global === 'EventTarget' || global === 'Node')
5286 ) {
5287 // NOTE: generating multiple handlers per addEventListener invocation, should
5288 // revisit and verify we can just use one (almost certainly)
5289 clickHandler = self._breadcrumbEventHandler('click');
5290 keypressHandler = self._keypressEventHandler();
5291 before = function(evt) {
5292 // need to intercept every DOM event in `before` argument, in case that
5293 // same wrapped method is re-used for different events (e.g. mousemove THEN click)
5294 // see #724
5295 if (!evt) return;
5296
5297 var eventType;
5298 try {
5299 eventType = evt.type;
5300 } catch (e) {
5301 // just accessing event properties can throw an exception in some rare circumstances
5302 // see: https://github.com/getsentry/raven-js/issues/838
5303 return;
5304 }
5305 if (eventType === 'click') return clickHandler(evt);
5306 else if (eventType === 'keypress') return keypressHandler(evt);
5307 };
5308 }
5309 return orig.call(
5310 this,
5311 evtName,
5312 self.wrap(fn, undefined, before),
5313 capture,
5314 secure
5315 );
5316 };
5317 },
5318 wrappedBuiltIns
5319 );
5320 fill(
5321 proto,
5322 'removeEventListener',
5323 function(orig) {
5324 return function(evt, fn, capture, secure) {
5325 try {
5326 fn = fn && (fn.__raven_wrapper__ ? fn.__raven_wrapper__ : fn);
5327 } catch (e) {
5328 // ignore, accessing __raven_wrapper__ will throw in some Selenium environments
5329 }
5330 return orig.call(this, evt, fn, capture, secure);
5331 };
5332 },
5333 wrappedBuiltIns
5334 );
5335 }
5336 }
5337
5338 fill(_window, 'setTimeout', wrapTimeFn, wrappedBuiltIns);
5339 fill(_window, 'setInterval', wrapTimeFn, wrappedBuiltIns);
5340 if (_window.requestAnimationFrame) {
5341 fill(
5342 _window,
5343 'requestAnimationFrame',
5344 function(orig) {
5345 return function(cb) {
5346 return orig(self.wrap(cb));
5347 };
5348 },
5349 wrappedBuiltIns
5350 );
5351 }
5352
5353 // event targets borrowed from bugsnag-js:
5354 // https://github.com/bugsnag/bugsnag-js/blob/master/src/bugsnag.js#L666
5355 var eventTargets = [
5356 'EventTarget',
5357 'Window',
5358 'Node',
5359 'ApplicationCache',
5360 'AudioTrackList',
5361 'ChannelMergerNode',
5362 'CryptoOperation',
5363 'EventSource',
5364 'FileReader',
5365 'HTMLUnknownElement',
5366 'IDBDatabase',
5367 'IDBRequest',
5368 'IDBTransaction',
5369 'KeyOperation',
5370 'MediaController',
5371 'MessagePort',
5372 'ModalWindow',
5373 'Notification',
5374 'SVGElementInstance',
5375 'Screen',
5376 'TextTrack',
5377 'TextTrackCue',
5378 'TextTrackList',
5379 'WebSocket',
5380 'WebSocketWorker',
5381 'Worker',
5382 'XMLHttpRequest',
5383 'XMLHttpRequestEventTarget',
5384 'XMLHttpRequestUpload'
5385 ];
5386 for (var i = 0; i < eventTargets.length; i++) {
5387 wrapEventTarget(eventTargets[i]);
5388 }
5389 },
5390
5391 /**
5392 * Instrument browser built-ins w/ breadcrumb capturing
5393 * - XMLHttpRequests
5394 * - DOM interactions (click/typing)
5395 * - window.location changes
5396 * - console
5397 *
5398 * Can be disabled or individually configured via the `autoBreadcrumbs` config option
5399 */
5400 _instrumentBreadcrumbs: function() {
5401 var self = this;
5402 var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;
5403
5404 var wrappedBuiltIns = self._wrappedBuiltIns;
5405
5406 function wrapProp(prop, xhr) {
5407 if (prop in xhr && isFunction(xhr[prop])) {
5408 fill(xhr, prop, function(orig) {
5409 return self.wrap(orig);
5410 }); // intentionally don't track filled methods on XHR instances
5411 }
5412 }
5413
5414 if (autoBreadcrumbs.xhr && 'XMLHttpRequest' in _window) {
5415 var xhrproto = XMLHttpRequest.prototype;
5416 fill(
5417 xhrproto,
5418 'open',
5419 function(origOpen) {
5420 return function(method, url) {
5421 // preserve arity
5422
5423 // if Sentry key appears in URL, don't capture
5424 if (isString(url) && url.indexOf(self._globalKey) === -1) {
5425 this.__raven_xhr = {
5426 method: method,
5427 url: url,
5428 status_code: null
5429 };
5430 }
5431
5432 return origOpen.apply(this, arguments);
5433 };
5434 },
5435 wrappedBuiltIns
5436 );
5437
5438 fill(
5439 xhrproto,
5440 'send',
5441 function(origSend) {
5442 return function(data) {
5443 // preserve arity
5444 var xhr = this;
5445
5446 function onreadystatechangeHandler() {
5447 if (xhr.__raven_xhr && xhr.readyState === 4) {
5448 try {
5449 // touching statusCode in some platforms throws
5450 // an exception
5451 xhr.__raven_xhr.status_code = xhr.status;
5452 } catch (e) {
5453 /* do nothing */
5454 }
5455
5456 self.captureBreadcrumb({
5457 type: 'http',
5458 category: 'xhr',
5459 data: xhr.__raven_xhr
5460 });
5461 }
5462 }
5463
5464 var props = ['onload', 'onerror', 'onprogress'];
5465 for (var j = 0; j < props.length; j++) {
5466 wrapProp(props[j], xhr);
5467 }
5468
5469 if ('onreadystatechange' in xhr && isFunction(xhr.onreadystatechange)) {
5470 fill(
5471 xhr,
5472 'onreadystatechange',
5473 function(orig) {
5474 return self.wrap(orig, undefined, onreadystatechangeHandler);
5475 } /* intentionally don't track this instrumentation */
5476 );
5477 } else {
5478 // if onreadystatechange wasn't actually set by the page on this xhr, we
5479 // are free to set our own and capture the breadcrumb
5480 xhr.onreadystatechange = onreadystatechangeHandler;
5481 }
5482
5483 return origSend.apply(this, arguments);
5484 };
5485 },
5486 wrappedBuiltIns
5487 );
5488 }
5489
5490 if (autoBreadcrumbs.xhr && 'fetch' in _window) {
5491 fill(
5492 _window,
5493 'fetch',
5494 function(origFetch) {
5495 return function(fn, t) {
5496 // preserve arity
5497 // Make a copy of the arguments to prevent deoptimization
5498 // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments
5499 var args = new Array(arguments.length);
5500 for (var i = 0; i < args.length; ++i) {
5501 args[i] = arguments[i];
5502 }
5503
5504 var fetchInput = args[0];
5505 var method = 'GET';
5506 var url;
5507
5508 if (typeof fetchInput === 'string') {
5509 url = fetchInput;
5510 } else if ('Request' in _window && fetchInput instanceof _window.Request) {
5511 url = fetchInput.url;
5512 if (fetchInput.method) {
5513 method = fetchInput.method;
5514 }
5515 } else {
5516 url = '' + fetchInput;
5517 }
5518
5519 if (args[1] && args[1].method) {
5520 method = args[1].method;
5521 }
5522
5523 var fetchData = {
5524 method: method,
5525 url: url,
5526 status_code: null
5527 };
5528
5529 self.captureBreadcrumb({
5530 type: 'http',
5531 category: 'fetch',
5532 data: fetchData
5533 });
5534
5535 return origFetch.apply(this, args).then(function(response) {
5536 fetchData.status_code = response.status;
5537
5538 return response;
5539 });
5540 };
5541 },
5542 wrappedBuiltIns
5543 );
5544 }
5545
5546 // Capture breadcrumbs from any click that is unhandled / bubbled up all the way
5547 // to the document. Do this before we instrument addEventListener.
5548 if (autoBreadcrumbs.dom && this._hasDocument) {
5549 if (_document.addEventListener) {
5550 _document.addEventListener('click', self._breadcrumbEventHandler('click'), false);
5551 _document.addEventListener('keypress', self._keypressEventHandler(), false);
5552 } else {
5553 // IE8 Compatibility
5554 _document.attachEvent('onclick', self._breadcrumbEventHandler('click'));
5555 _document.attachEvent('onkeypress', self._keypressEventHandler());
5556 }
5557 }
5558
5559 // record navigation (URL) changes
5560 // NOTE: in Chrome App environment, touching history.pushState, *even inside
5561 // a try/catch block*, will cause Chrome to output an error to console.error
5562 // borrowed from: https://github.com/angular/angular.js/pull/13945/files
5563 var chrome = _window.chrome;
5564 var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;
5565 var hasPushAndReplaceState =
5566 !isChromePackagedApp &&
5567 _window.history &&
5568 history.pushState &&
5569 history.replaceState;
5570 if (autoBreadcrumbs.location && hasPushAndReplaceState) {
5571 // TODO: remove onpopstate handler on uninstall()
5572 var oldOnPopState = _window.onpopstate;
5573 _window.onpopstate = function() {
5574 var currentHref = self._location.href;
5575 self._captureUrlChange(self._lastHref, currentHref);
5576
5577 if (oldOnPopState) {
5578 return oldOnPopState.apply(this, arguments);
5579 }
5580 };
5581
5582 var historyReplacementFunction = function(origHistFunction) {
5583 // note history.pushState.length is 0; intentionally not declaring
5584 // params to preserve 0 arity
5585 return function(/* state, title, url */) {
5586 var url = arguments.length > 2 ? arguments[2] : undefined;
5587
5588 // url argument is optional
5589 if (url) {
5590 // coerce to string (this is what pushState does)
5591 self._captureUrlChange(self._lastHref, url + '');
5592 }
5593
5594 return origHistFunction.apply(this, arguments);
5595 };
5596 };
5597
5598 fill(history, 'pushState', historyReplacementFunction, wrappedBuiltIns);
5599 fill(history, 'replaceState', historyReplacementFunction, wrappedBuiltIns);
5600 }
5601
5602 if (autoBreadcrumbs.console && 'console' in _window && console.log) {
5603 // console
5604 var consoleMethodCallback = function(msg, data) {
5605 self.captureBreadcrumb({
5606 message: msg,
5607 level: data.level,
5608 category: 'console'
5609 });
5610 };
5611
5612 each(['debug', 'info', 'warn', 'error', 'log'], function(_, level) {
5613 wrapConsoleMethod(console, level, consoleMethodCallback);
5614 });
5615 }
5616 },
5617
5618 _restoreBuiltIns: function() {
5619 // restore any wrapped builtins
5620 var builtin;
5621 while (this._wrappedBuiltIns.length) {
5622 builtin = this._wrappedBuiltIns.shift();
5623
5624 var obj = builtin[0],
5625 name = builtin[1],
5626 orig = builtin[2];
5627
5628 obj[name] = orig;
5629 }
5630 },
5631
5632 _drainPlugins: function() {
5633 var self = this;
5634
5635 // FIX ME TODO
5636 each(this._plugins, function(_, plugin) {
5637 var installer = plugin[0];
5638 var args = plugin[1];
5639 installer.apply(self, [self].concat(args));
5640 });
5641 },
5642
5643 _parseDSN: function(str) {
5644 var m = dsnPattern.exec(str),
5645 dsn = {},
5646 i = 7;
5647
5648 try {
5649 while (i--) dsn[dsnKeys[i]] = m[i] || '';
5650 } catch (e) {
5651 throw new RavenConfigError('Invalid DSN: ' + str);
5652 }
5653
5654 if (dsn.pass && !this._globalOptions.allowSecretKey) {
5655 throw new RavenConfigError(
5656 'Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key'
5657 );
5658 }
5659
5660 return dsn;
5661 },
5662
5663 _getGlobalServer: function(uri) {
5664 // assemble the endpoint from the uri pieces
5665 var globalServer = '//' + uri.host + (uri.port ? ':' + uri.port : '');
5666
5667 if (uri.protocol) {
5668 globalServer = uri.protocol + ':' + globalServer;
5669 }
5670 return globalServer;
5671 },
5672
5673 _handleOnErrorStackInfo: function() {
5674 // if we are intentionally ignoring errors via onerror, bail out
5675 if (!this._ignoreOnError) {
5676 this._handleStackInfo.apply(this, arguments);
5677 }
5678 },
5679
5680 _handleStackInfo: function(stackInfo, options) {
5681 var frames = this._prepareFrames(stackInfo, options);
5682
5683 this._triggerEvent('handle', {
5684 stackInfo: stackInfo,
5685 options: options
5686 });
5687
5688 this._processException(
5689 stackInfo.name,
5690 stackInfo.message,
5691 stackInfo.url,
5692 stackInfo.lineno,
5693 frames,
5694 options
5695 );
5696 },
5697
5698 _prepareFrames: function(stackInfo, options) {
5699 var self = this;
5700 var frames = [];
5701 if (stackInfo.stack && stackInfo.stack.length) {
5702 each(stackInfo.stack, function(i, stack) {
5703 var frame = self._normalizeFrame(stack, stackInfo.url);
5704 if (frame) {
5705 frames.push(frame);
5706 }
5707 });
5708
5709 // e.g. frames captured via captureMessage throw
5710 if (options && options.trimHeadFrames) {
5711 for (var j = 0; j < options.trimHeadFrames && j < frames.length; j++) {
5712 frames[j].in_app = false;
5713 }
5714 }
5715 }
5716 frames = frames.slice(0, this._globalOptions.stackTraceLimit);
5717 return frames;
5718 },
5719
5720 _normalizeFrame: function(frame, stackInfoUrl) {
5721 // normalize the frames data
5722 var normalized = {
5723 filename: frame.url,
5724 lineno: frame.line,
5725 colno: frame.column,
5726 function: frame.func || '?'
5727 };
5728
5729 // Case when we don't have any information about the error
5730 // E.g. throwing a string or raw object, instead of an `Error` in Firefox
5731 // Generating synthetic error doesn't add any value here
5732 //
5733 // We should probably somehow let a user know that they should fix their code
5734 if (!frame.url) {
5735 normalized.filename = stackInfoUrl; // fallback to whole stacks url from onerror handler
5736 }
5737
5738 normalized.in_app = !// determine if an exception came from outside of our app
5739 // first we check the global includePaths list.
5740 (
5741 (!!this._globalOptions.includePaths.test &&
5742 !this._globalOptions.includePaths.test(normalized.filename)) ||
5743 // Now we check for fun, if the function name is Raven or TraceKit
5744 /(Raven|TraceKit)\./.test(normalized['function']) ||
5745 // finally, we do a last ditch effort and check for raven.min.js
5746 /raven\.(min\.)?js$/.test(normalized.filename)
5747 );
5748
5749 return normalized;
5750 },
5751
5752 _processException: function(type, message, fileurl, lineno, frames, options) {
5753 var prefixedMessage = (type ? type + ': ' : '') + (message || '');
5754 if (
5755 !!this._globalOptions.ignoreErrors.test &&
5756 (this._globalOptions.ignoreErrors.test(message) ||
5757 this._globalOptions.ignoreErrors.test(prefixedMessage))
5758 ) {
5759 return;
5760 }
5761
5762 var stacktrace;
5763
5764 if (frames && frames.length) {
5765 fileurl = frames[0].filename || fileurl;
5766 // Sentry expects frames oldest to newest
5767 // and JS sends them as newest to oldest
5768 frames.reverse();
5769 stacktrace = {frames: frames};
5770 } else if (fileurl) {
5771 stacktrace = {
5772 frames: [
5773 {
5774 filename: fileurl,
5775 lineno: lineno,
5776 in_app: true
5777 }
5778 ]
5779 };
5780 }
5781
5782 if (
5783 !!this._globalOptions.ignoreUrls.test &&
5784 this._globalOptions.ignoreUrls.test(fileurl)
5785 ) {
5786 return;
5787 }
5788
5789 if (
5790 !!this._globalOptions.whitelistUrls.test &&
5791 !this._globalOptions.whitelistUrls.test(fileurl)
5792 ) {
5793 return;
5794 }
5795
5796 var data = objectMerge(
5797 {
5798 // sentry.interfaces.Exception
5799 exception: {
5800 values: [
5801 {
5802 type: type,
5803 value: message,
5804 stacktrace: stacktrace
5805 }
5806 ]
5807 },
5808 culprit: fileurl
5809 },
5810 options
5811 );
5812
5813 // Fire away!
5814 this._send(data);
5815 },
5816
5817 _trimPacket: function(data) {
5818 // For now, we only want to truncate the two different messages
5819 // but this could/should be expanded to just trim everything
5820 var max = this._globalOptions.maxMessageLength;
5821 if (data.message) {
5822 data.message = truncate(data.message, max);
5823 }
5824 if (data.exception) {
5825 var exception = data.exception.values[0];
5826 exception.value = truncate(exception.value, max);
5827 }
5828
5829 var request = data.request;
5830 if (request) {
5831 if (request.url) {
5832 request.url = truncate(request.url, this._globalOptions.maxUrlLength);
5833 }
5834 if (request.Referer) {
5835 request.Referer = truncate(request.Referer, this._globalOptions.maxUrlLength);
5836 }
5837 }
5838
5839 if (data.breadcrumbs && data.breadcrumbs.values)
5840 this._trimBreadcrumbs(data.breadcrumbs);
5841
5842 return data;
5843 },
5844
5845 /**
5846 * Truncate breadcrumb values (right now just URLs)
5847 */
5848 _trimBreadcrumbs: function(breadcrumbs) {
5849 // known breadcrumb properties with urls
5850 // TODO: also consider arbitrary prop values that start with (https?)?://
5851 var urlProps = ['to', 'from', 'url'],
5852 urlProp,
5853 crumb,
5854 data;
5855
5856 for (var i = 0; i < breadcrumbs.values.length; ++i) {
5857 crumb = breadcrumbs.values[i];
5858 if (
5859 !crumb.hasOwnProperty('data') ||
5860 !isObject(crumb.data) ||
5861 objectFrozen(crumb.data)
5862 )
5863 continue;
5864
5865 data = objectMerge({}, crumb.data);
5866 for (var j = 0; j < urlProps.length; ++j) {
5867 urlProp = urlProps[j];
5868 if (data.hasOwnProperty(urlProp) && data[urlProp]) {
5869 data[urlProp] = truncate(data[urlProp], this._globalOptions.maxUrlLength);
5870 }
5871 }
5872 breadcrumbs.values[i].data = data;
5873 }
5874 },
5875
5876 _getHttpData: function() {
5877 if (!this._hasNavigator && !this._hasDocument) return;
5878 var httpData = {};
5879
5880 if (this._hasNavigator && _navigator.userAgent) {
5881 httpData.headers = {
5882 'User-Agent': navigator.userAgent
5883 };
5884 }
5885
5886 if (this._hasDocument) {
5887 if (_document.location && _document.location.href) {
5888 httpData.url = _document.location.href;
5889 }
5890 if (_document.referrer) {
5891 if (!httpData.headers) httpData.headers = {};
5892 httpData.headers.Referer = _document.referrer;
5893 }
5894 }
5895
5896 return httpData;
5897 },
5898
5899 _resetBackoff: function() {
5900 this._backoffDuration = 0;
5901 this._backoffStart = null;
5902 },
5903
5904 _shouldBackoff: function() {
5905 return this._backoffDuration && now() - this._backoffStart < this._backoffDuration;
5906 },
5907
5908 /**
5909 * Returns true if the in-process data payload matches the signature
5910 * of the previously-sent data
5911 *
5912 * NOTE: This has to be done at this level because TraceKit can generate
5913 * data from window.onerror WITHOUT an exception object (IE8, IE9,
5914 * other old browsers). This can take the form of an "exception"
5915 * data object with a single frame (derived from the onerror args).
5916 */
5917 _isRepeatData: function(current) {
5918 var last = this._lastData;
5919
5920 if (
5921 !last ||
5922 current.message !== last.message || // defined for captureMessage
5923 current.culprit !== last.culprit // defined for captureException/onerror
5924 )
5925 return false;
5926
5927 // Stacktrace interface (i.e. from captureMessage)
5928 if (current.stacktrace || last.stacktrace) {
5929 return isSameStacktrace(current.stacktrace, last.stacktrace);
5930 } else if (current.exception || last.exception) {
5931 // Exception interface (i.e. from captureException/onerror)
5932 return isSameException(current.exception, last.exception);
5933 }
5934
5935 return true;
5936 },
5937
5938 _setBackoffState: function(request) {
5939 // If we are already in a backoff state, don't change anything
5940 if (this._shouldBackoff()) {
5941 return;
5942 }
5943
5944 var status = request.status;
5945
5946 // 400 - project_id doesn't exist or some other fatal
5947 // 401 - invalid/revoked dsn
5948 // 429 - too many requests
5949 if (!(status === 400 || status === 401 || status === 429)) return;
5950
5951 var retry;
5952 try {
5953 // If Retry-After is not in Access-Control-Expose-Headers, most
5954 // browsers will throw an exception trying to access it
5955 retry = request.getResponseHeader('Retry-After');
5956 retry = parseInt(retry, 10) * 1000; // Retry-After is returned in seconds
5957 } catch (e) {
5958 /* eslint no-empty:0 */
5959 }
5960
5961 this._backoffDuration = retry
5962 ? // If Sentry server returned a Retry-After value, use it
5963 retry
5964 : // Otherwise, double the last backoff duration (starts at 1 sec)
5965 this._backoffDuration * 2 || 1000;
5966
5967 this._backoffStart = now();
5968 },
5969
5970 _send: function(data) {
5971 var globalOptions = this._globalOptions;
5972
5973 var baseData = {
5974 project: this._globalProject,
5975 logger: globalOptions.logger,
5976 platform: 'javascript'
5977 },
5978 httpData = this._getHttpData();
5979
5980 if (httpData) {
5981 baseData.request = httpData;
5982 }
5983
5984 // HACK: delete `trimHeadFrames` to prevent from appearing in outbound payload
5985 if (data.trimHeadFrames) delete data.trimHeadFrames;
5986
5987 data = objectMerge(baseData, data);
5988
5989 // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge
5990 data.tags = objectMerge(objectMerge({}, this._globalContext.tags), data.tags);
5991 data.extra = objectMerge(objectMerge({}, this._globalContext.extra), data.extra);
5992
5993 // Send along our own collected metadata with extra
5994 data.extra['session:duration'] = now() - this._startTime;
5995
5996 if (this._breadcrumbs && this._breadcrumbs.length > 0) {
5997 // intentionally make shallow copy so that additions
5998 // to breadcrumbs aren't accidentally sent in this request
5999 data.breadcrumbs = {
6000 values: [].slice.call(this._breadcrumbs, 0)
6001 };
6002 }
6003
6004 // If there are no tags/extra, strip the key from the payload alltogther.
6005 if (isEmptyObject(data.tags)) delete data.tags;
6006
6007 if (this._globalContext.user) {
6008 // sentry.interfaces.User
6009 data.user = this._globalContext.user;
6010 }
6011
6012 // Include the environment if it's defined in globalOptions
6013 if (globalOptions.environment) data.environment = globalOptions.environment;
6014
6015 // Include the release if it's defined in globalOptions
6016 if (globalOptions.release) data.release = globalOptions.release;
6017
6018 // Include server_name if it's defined in globalOptions
6019 if (globalOptions.serverName) data.server_name = globalOptions.serverName;
6020
6021 if (isFunction(globalOptions.dataCallback)) {
6022 data = globalOptions.dataCallback(data) || data;
6023 }
6024
6025 // Why??????????
6026 if (!data || isEmptyObject(data)) {
6027 return;
6028 }
6029
6030 // Check if the request should be filtered or not
6031 if (
6032 isFunction(globalOptions.shouldSendCallback) &&
6033 !globalOptions.shouldSendCallback(data)
6034 ) {
6035 return;
6036 }
6037
6038 // Backoff state: Sentry server previously responded w/ an error (e.g. 429 - too many requests),
6039 // so drop requests until "cool-off" period has elapsed.
6040 if (this._shouldBackoff()) {
6041 this._logDebug('warn', 'Raven dropped error due to backoff: ', data);
6042 return;
6043 }
6044
6045 if (typeof globalOptions.sampleRate === 'number') {
6046 if (Math.random() < globalOptions.sampleRate) {
6047 this._sendProcessedPayload(data);
6048 }
6049 } else {
6050 this._sendProcessedPayload(data);
6051 }
6052 },
6053
6054 _getUuid: function() {
6055 return uuid4();
6056 },
6057
6058 _sendProcessedPayload: function(data, callback) {
6059 var self = this;
6060 var globalOptions = this._globalOptions;
6061
6062 if (!this.isSetup()) return;
6063
6064 // Try and clean up the packet before sending by truncating long values
6065 data = this._trimPacket(data);
6066
6067 // ideally duplicate error testing should occur *before* dataCallback/shouldSendCallback,
6068 // but this would require copying an un-truncated copy of the data packet, which can be
6069 // arbitrarily deep (extra_data) -- could be worthwhile? will revisit
6070 if (!this._globalOptions.allowDuplicates && this._isRepeatData(data)) {
6071 this._logDebug('warn', 'Raven dropped repeat event: ', data);
6072 return;
6073 }
6074
6075 // Send along an event_id if not explicitly passed.
6076 // This event_id can be used to reference the error within Sentry itself.
6077 // Set lastEventId after we know the error should actually be sent
6078 this._lastEventId = data.event_id || (data.event_id = this._getUuid());
6079
6080 // Store outbound payload after trim
6081 this._lastData = data;
6082
6083 this._logDebug('debug', 'Raven about to send:', data);
6084
6085 var auth = {
6086 sentry_version: '7',
6087 sentry_client: 'raven-js/' + this.VERSION,
6088 sentry_key: this._globalKey
6089 };
6090
6091 if (this._globalSecret) {
6092 auth.sentry_secret = this._globalSecret;
6093 }
6094
6095 var exception = data.exception && data.exception.values[0];
6096 this.captureBreadcrumb({
6097 category: 'sentry',
6098 message: exception
6099 ? (exception.type ? exception.type + ': ' : '') + exception.value
6100 : data.message,
6101 event_id: data.event_id,
6102 level: data.level || 'error' // presume error unless specified
6103 });
6104
6105 var url = this._globalEndpoint;
6106 (globalOptions.transport || this._makeRequest).call(this, {
6107 url: url,
6108 auth: auth,
6109 data: data,
6110 options: globalOptions,
6111 onSuccess: function success() {
6112 self._resetBackoff();
6113
6114 self._triggerEvent('success', {
6115 data: data,
6116 src: url
6117 });
6118 callback && callback();
6119 },
6120 onError: function failure(error) {
6121 self._logDebug('error', 'Raven transport failed to send: ', error);
6122
6123 if (error.request) {
6124 self._setBackoffState(error.request);
6125 }
6126
6127 self._triggerEvent('failure', {
6128 data: data,
6129 src: url
6130 });
6131 error = error || new Error('Raven send failed (no additional details provided)');
6132 callback && callback(error);
6133 }
6134 });
6135 },
6136
6137 _makeRequest: function(opts) {
6138 var request = _window.XMLHttpRequest && new _window.XMLHttpRequest();
6139 if (!request) return;
6140
6141 // if browser doesn't support CORS (e.g. IE7), we are out of luck
6142 var hasCORS = 'withCredentials' in request || typeof XDomainRequest !== 'undefined';
6143
6144 if (!hasCORS) return;
6145
6146 var url = opts.url;
6147
6148 if ('withCredentials' in request) {
6149 request.onreadystatechange = function() {
6150 if (request.readyState !== 4) {
6151 return;
6152 } else if (request.status === 200) {
6153 opts.onSuccess && opts.onSuccess();
6154 } else if (opts.onError) {
6155 var err = new Error('Sentry error code: ' + request.status);
6156 err.request = request;
6157 opts.onError(err);
6158 }
6159 };
6160 } else {
6161 request = new XDomainRequest();
6162 // xdomainrequest cannot go http -> https (or vice versa),
6163 // so always use protocol relative
6164 url = url.replace(/^https?:/, '');
6165
6166 // onreadystatechange not supported by XDomainRequest
6167 if (opts.onSuccess) {
6168 request.onload = opts.onSuccess;
6169 }
6170 if (opts.onError) {
6171 request.onerror = function() {
6172 var err = new Error('Sentry error code: XDomainRequest');
6173 err.request = request;
6174 opts.onError(err);
6175 };
6176 }
6177 }
6178
6179 // NOTE: auth is intentionally sent as part of query string (NOT as custom
6180 // HTTP header) so as to avoid preflight CORS requests
6181 request.open('POST', url + '?' + urlencode(opts.auth));
6182 request.send(stringify(opts.data));
6183 },
6184
6185 _logDebug: function(level) {
6186 if (this._originalConsoleMethods[level] && this.debug) {
6187 // In IE<10 console methods do not have their own 'apply' method
6188 Function.prototype.apply.call(
6189 this._originalConsoleMethods[level],
6190 this._originalConsole,
6191 [].slice.call(arguments, 1)
6192 );
6193 }
6194 },
6195
6196 _mergeContext: function(key, context) {
6197 if (isUndefined(context)) {
6198 delete this._globalContext[key];
6199 } else {
6200 this._globalContext[key] = objectMerge(this._globalContext[key] || {}, context);
6201 }
6202 }
6203 };
6204
6205 // Deprecations
6206 Raven.prototype.setUser = Raven.prototype.setUserContext;
6207 Raven.prototype.setReleaseContext = Raven.prototype.setRelease;
6208
6209 module.exports = Raven;
6210
6211
6212 /***/ }),
6213
6214 /***/ "./node_modules/raven-js/src/singleton.js":
6215 /*!************************************************!*\
6216 !*** ./node_modules/raven-js/src/singleton.js ***!
6217 \************************************************/
6218 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6219
6220 /**
6221 * Enforces a single instance of the Raven client, and the
6222 * main entry point for Raven. If you are a consumer of the
6223 * Raven library, you SHOULD load this file (vs raven.js).
6224 **/
6225
6226 var RavenConstructor = __webpack_require__(/*! ./raven */ "./node_modules/raven-js/src/raven.js");
6227
6228 // This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)
6229 var _window =
6230 typeof window !== 'undefined'
6231 ? window
6232 : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
6233 var _Raven = _window.Raven;
6234
6235 var Raven = new RavenConstructor();
6236
6237 /*
6238 * Allow multiple versions of Raven to be installed.
6239 * Strip Raven from the global context and returns the instance.
6240 *
6241 * @return {Raven}
6242 */
6243 Raven.noConflict = function() {
6244 _window.Raven = _Raven;
6245 return Raven;
6246 };
6247
6248 Raven.afterLoad();
6249
6250 module.exports = Raven;
6251
6252
6253 /***/ }),
6254
6255 /***/ "./node_modules/raven-js/src/utils.js":
6256 /*!********************************************!*\
6257 !*** ./node_modules/raven-js/src/utils.js ***!
6258 \********************************************/
6259 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6260
6261 var _window =
6262 typeof window !== 'undefined'
6263 ? window
6264 : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
6265
6266 function isObject(what) {
6267 return typeof what === 'object' && what !== null;
6268 }
6269
6270 // Yanked from https://git.io/vS8DV re-used under CC0
6271 // with some tiny modifications
6272 function isError(value) {
6273 switch ({}.toString.call(value)) {
6274 case '[object Error]':
6275 return true;
6276 case '[object Exception]':
6277 return true;
6278 case '[object DOMException]':
6279 return true;
6280 default:
6281 return value instanceof Error;
6282 }
6283 }
6284
6285 function isErrorEvent(value) {
6286 return supportsErrorEvent() && {}.toString.call(value) === '[object ErrorEvent]';
6287 }
6288
6289 function isUndefined(what) {
6290 return what === void 0;
6291 }
6292
6293 function isFunction(what) {
6294 return typeof what === 'function';
6295 }
6296
6297 function isString(what) {
6298 return Object.prototype.toString.call(what) === '[object String]';
6299 }
6300
6301 function isEmptyObject(what) {
6302 for (var _ in what) return false; // eslint-disable-line guard-for-in, no-unused-vars
6303 return true;
6304 }
6305
6306 function supportsErrorEvent() {
6307 try {
6308 new ErrorEvent(''); // eslint-disable-line no-new
6309 return true;
6310 } catch (e) {
6311 return false;
6312 }
6313 }
6314
6315 function wrappedCallback(callback) {
6316 function dataCallback(data, original) {
6317 var normalizedData = callback(data) || data;
6318 if (original) {
6319 return original(normalizedData) || normalizedData;
6320 }
6321 return normalizedData;
6322 }
6323
6324 return dataCallback;
6325 }
6326
6327 function each(obj, callback) {
6328 var i, j;
6329
6330 if (isUndefined(obj.length)) {
6331 for (i in obj) {
6332 if (hasKey(obj, i)) {
6333 callback.call(null, i, obj[i]);
6334 }
6335 }
6336 } else {
6337 j = obj.length;
6338 if (j) {
6339 for (i = 0; i < j; i++) {
6340 callback.call(null, i, obj[i]);
6341 }
6342 }
6343 }
6344 }
6345
6346 function objectMerge(obj1, obj2) {
6347 if (!obj2) {
6348 return obj1;
6349 }
6350 each(obj2, function(key, value) {
6351 obj1[key] = value;
6352 });
6353 return obj1;
6354 }
6355
6356 /**
6357 * This function is only used for react-native.
6358 * react-native freezes object that have already been sent over the
6359 * js bridge. We need this function in order to check if the object is frozen.
6360 * So it's ok that objectFrozen returns false if Object.isFrozen is not
6361 * supported because it's not relevant for other "platforms". See related issue:
6362 * https://github.com/getsentry/react-native-sentry/issues/57
6363 */
6364 function objectFrozen(obj) {
6365 if (!Object.isFrozen) {
6366 return false;
6367 }
6368 return Object.isFrozen(obj);
6369 }
6370
6371 function truncate(str, max) {
6372 return !max || str.length <= max ? str : str.substr(0, max) + '\u2026';
6373 }
6374
6375 /**
6376 * hasKey, a better form of hasOwnProperty
6377 * Example: hasKey(MainHostObject, property) === true/false
6378 *
6379 * @param {Object} host object to check property
6380 * @param {string} key to check
6381 */
6382 function hasKey(object, key) {
6383 return Object.prototype.hasOwnProperty.call(object, key);
6384 }
6385
6386 function joinRegExp(patterns) {
6387 // Combine an array of regular expressions and strings into one large regexp
6388 // Be mad.
6389 var sources = [],
6390 i = 0,
6391 len = patterns.length,
6392 pattern;
6393
6394 for (; i < len; i++) {
6395 pattern = patterns[i];
6396 if (isString(pattern)) {
6397 // If it's a string, we need to escape it
6398 // Taken from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
6399 sources.push(pattern.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'));
6400 } else if (pattern && pattern.source) {
6401 // If it's a regexp already, we want to extract the source
6402 sources.push(pattern.source);
6403 }
6404 // Intentionally skip other cases
6405 }
6406 return new RegExp(sources.join('|'), 'i');
6407 }
6408
6409 function urlencode(o) {
6410 var pairs = [];
6411 each(o, function(key, value) {
6412 pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
6413 });
6414 return pairs.join('&');
6415 }
6416
6417 // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B
6418 // intentionally using regex and not <a/> href parsing trick because React Native and other
6419 // environments where DOM might not be available
6420 function parseUrl(url) {
6421 var match = url.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);
6422 if (!match) return {};
6423
6424 // coerce to undefined values to empty string so we don't get 'undefined'
6425 var query = match[6] || '';
6426 var fragment = match[8] || '';
6427 return {
6428 protocol: match[2],
6429 host: match[4],
6430 path: match[5],
6431 relative: match[5] + query + fragment // everything minus origin
6432 };
6433 }
6434 function uuid4() {
6435 var crypto = _window.crypto || _window.msCrypto;
6436
6437 if (!isUndefined(crypto) && crypto.getRandomValues) {
6438 // Use window.crypto API if available
6439 // eslint-disable-next-line no-undef
6440 var arr = new Uint16Array(8);
6441 crypto.getRandomValues(arr);
6442
6443 // set 4 in byte 7
6444 arr[3] = (arr[3] & 0xfff) | 0x4000;
6445 // set 2 most significant bits of byte 9 to '10'
6446 arr[4] = (arr[4] & 0x3fff) | 0x8000;
6447
6448 var pad = function(num) {
6449 var v = num.toString(16);
6450 while (v.length < 4) {
6451 v = '0' + v;
6452 }
6453 return v;
6454 };
6455
6456 return (
6457 pad(arr[0]) +
6458 pad(arr[1]) +
6459 pad(arr[2]) +
6460 pad(arr[3]) +
6461 pad(arr[4]) +
6462 pad(arr[5]) +
6463 pad(arr[6]) +
6464 pad(arr[7])
6465 );
6466 } else {
6467 // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523
6468 return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
6469 var r = (Math.random() * 16) | 0,
6470 v = c === 'x' ? r : (r & 0x3) | 0x8;
6471 return v.toString(16);
6472 });
6473 }
6474 }
6475
6476 /**
6477 * Given a child DOM element, returns a query-selector statement describing that
6478 * and its ancestors
6479 * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]
6480 * @param elem
6481 * @returns {string}
6482 */
6483 function htmlTreeAsString(elem) {
6484 /* eslint no-extra-parens:0*/
6485 var MAX_TRAVERSE_HEIGHT = 5,
6486 MAX_OUTPUT_LEN = 80,
6487 out = [],
6488 height = 0,
6489 len = 0,
6490 separator = ' > ',
6491 sepLength = separator.length,
6492 nextStr;
6493
6494 while (elem && height++ < MAX_TRAVERSE_HEIGHT) {
6495 nextStr = htmlElementAsString(elem);
6496 // bail out if
6497 // - nextStr is the 'html' element
6498 // - the length of the string that would be created exceeds MAX_OUTPUT_LEN
6499 // (ignore this limit if we are on the first iteration)
6500 if (
6501 nextStr === 'html' ||
6502 (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)
6503 ) {
6504 break;
6505 }
6506
6507 out.push(nextStr);
6508
6509 len += nextStr.length;
6510 elem = elem.parentNode;
6511 }
6512
6513 return out.reverse().join(separator);
6514 }
6515
6516 /**
6517 * Returns a simple, query-selector representation of a DOM element
6518 * e.g. [HTMLElement] => input#foo.btn[name=baz]
6519 * @param HTMLElement
6520 * @returns {string}
6521 */
6522 function htmlElementAsString(elem) {
6523 var out = [],
6524 className,
6525 classes,
6526 key,
6527 attr,
6528 i;
6529
6530 if (!elem || !elem.tagName) {
6531 return '';
6532 }
6533
6534 out.push(elem.tagName.toLowerCase());
6535 if (elem.id) {
6536 out.push('#' + elem.id);
6537 }
6538
6539 className = elem.className;
6540 if (className && isString(className)) {
6541 classes = className.split(/\s+/);
6542 for (i = 0; i < classes.length; i++) {
6543 out.push('.' + classes[i]);
6544 }
6545 }
6546 var attrWhitelist = ['type', 'name', 'title', 'alt'];
6547 for (i = 0; i < attrWhitelist.length; i++) {
6548 key = attrWhitelist[i];
6549 attr = elem.getAttribute(key);
6550 if (attr) {
6551 out.push('[' + key + '="' + attr + '"]');
6552 }
6553 }
6554 return out.join('');
6555 }
6556
6557 /**
6558 * Returns true if either a OR b is truthy, but not both
6559 */
6560 function isOnlyOneTruthy(a, b) {
6561 return !!(!!a ^ !!b);
6562 }
6563
6564 /**
6565 * Returns true if the two input exception interfaces have the same content
6566 */
6567 function isSameException(ex1, ex2) {
6568 if (isOnlyOneTruthy(ex1, ex2)) return false;
6569
6570 ex1 = ex1.values[0];
6571 ex2 = ex2.values[0];
6572
6573 if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false;
6574
6575 return isSameStacktrace(ex1.stacktrace, ex2.stacktrace);
6576 }
6577
6578 /**
6579 * Returns true if the two input stack trace interfaces have the same content
6580 */
6581 function isSameStacktrace(stack1, stack2) {
6582 if (isOnlyOneTruthy(stack1, stack2)) return false;
6583
6584 var frames1 = stack1.frames;
6585 var frames2 = stack2.frames;
6586
6587 // Exit early if frame count differs
6588 if (frames1.length !== frames2.length) return false;
6589
6590 // Iterate through every frame; bail out if anything differs
6591 var a, b;
6592 for (var i = 0; i < frames1.length; i++) {
6593 a = frames1[i];
6594 b = frames2[i];
6595 if (
6596 a.filename !== b.filename ||
6597 a.lineno !== b.lineno ||
6598 a.colno !== b.colno ||
6599 a['function'] !== b['function']
6600 )
6601 return false;
6602 }
6603 return true;
6604 }
6605
6606 /**
6607 * Polyfill a method
6608 * @param obj object e.g. `document`
6609 * @param name method name present on object e.g. `addEventListener`
6610 * @param replacement replacement function
6611 * @param track {optional} record instrumentation to an array
6612 */
6613 function fill(obj, name, replacement, track) {
6614 var orig = obj[name];
6615 obj[name] = replacement(orig);
6616 if (track) {
6617 track.push([obj, name, orig]);
6618 }
6619 }
6620
6621 module.exports = {
6622 isObject: isObject,
6623 isError: isError,
6624 isErrorEvent: isErrorEvent,
6625 isUndefined: isUndefined,
6626 isFunction: isFunction,
6627 isString: isString,
6628 isEmptyObject: isEmptyObject,
6629 supportsErrorEvent: supportsErrorEvent,
6630 wrappedCallback: wrappedCallback,
6631 each: each,
6632 objectMerge: objectMerge,
6633 truncate: truncate,
6634 objectFrozen: objectFrozen,
6635 hasKey: hasKey,
6636 joinRegExp: joinRegExp,
6637 urlencode: urlencode,
6638 uuid4: uuid4,
6639 htmlTreeAsString: htmlTreeAsString,
6640 htmlElementAsString: htmlElementAsString,
6641 isSameException: isSameException,
6642 isSameStacktrace: isSameStacktrace,
6643 parseUrl: parseUrl,
6644 fill: fill
6645 };
6646
6647
6648 /***/ }),
6649
6650 /***/ "./node_modules/raven-js/vendor/TraceKit/tracekit.js":
6651 /*!***********************************************************!*\
6652 !*** ./node_modules/raven-js/vendor/TraceKit/tracekit.js ***!
6653 \***********************************************************/
6654 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6655
6656 var utils = __webpack_require__(/*! ../../src/utils */ "./node_modules/raven-js/src/utils.js");
6657
6658 /*
6659 TraceKit - Cross brower stack traces
6660
6661 This was originally forked from github.com/occ/TraceKit, but has since been
6662 largely re-written and is now maintained as part of raven-js. Tests for
6663 this are in test/vendor.
6664
6665 MIT license
6666 */
6667
6668 var TraceKit = {
6669 collectWindowErrors: true,
6670 debug: false
6671 };
6672
6673 // This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)
6674 var _window =
6675 typeof window !== 'undefined'
6676 ? window
6677 : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
6678
6679 // global reference to slice
6680 var _slice = [].slice;
6681 var UNKNOWN_FUNCTION = '?';
6682
6683 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types
6684 var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;
6685
6686 function getLocationHref() {
6687 if (typeof document === 'undefined' || document.location == null) return '';
6688
6689 return document.location.href;
6690 }
6691
6692 /**
6693 * TraceKit.report: cross-browser processing of unhandled exceptions
6694 *
6695 * Syntax:
6696 * TraceKit.report.subscribe(function(stackInfo) { ... })
6697 * TraceKit.report.unsubscribe(function(stackInfo) { ... })
6698 * TraceKit.report(exception)
6699 * try { ...code... } catch(ex) { TraceKit.report(ex); }
6700 *
6701 * Supports:
6702 * - Firefox: full stack trace with line numbers, plus column number
6703 * on top frame; column number is not guaranteed
6704 * - Opera: full stack trace with line and column numbers
6705 * - Chrome: full stack trace with line and column numbers
6706 * - Safari: line and column number for the top frame only; some frames
6707 * may be missing, and column number is not guaranteed
6708 * - IE: line and column number for the top frame only; some frames
6709 * may be missing, and column number is not guaranteed
6710 *
6711 * In theory, TraceKit should work on all of the following versions:
6712 * - IE5.5+ (only 8.0 tested)
6713 * - Firefox 0.9+ (only 3.5+ tested)
6714 * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require
6715 * Exceptions Have Stacktrace to be enabled in opera:config)
6716 * - Safari 3+ (only 4+ tested)
6717 * - Chrome 1+ (only 5+ tested)
6718 * - Konqueror 3.5+ (untested)
6719 *
6720 * Requires TraceKit.computeStackTrace.
6721 *
6722 * Tries to catch all unhandled exceptions and report them to the
6723 * subscribed handlers. Please note that TraceKit.report will rethrow the
6724 * exception. This is REQUIRED in order to get a useful stack trace in IE.
6725 * If the exception does not reach the top of the browser, you will only
6726 * get a stack trace from the point where TraceKit.report was called.
6727 *
6728 * Handlers receive a stackInfo object as described in the
6729 * TraceKit.computeStackTrace docs.
6730 */
6731 TraceKit.report = (function reportModuleWrapper() {
6732 var handlers = [],
6733 lastArgs = null,
6734 lastException = null,
6735 lastExceptionStack = null;
6736
6737 /**
6738 * Add a crash handler.
6739 * @param {Function} handler
6740 */
6741 function subscribe(handler) {
6742 installGlobalHandler();
6743 handlers.push(handler);
6744 }
6745
6746 /**
6747 * Remove a crash handler.
6748 * @param {Function} handler
6749 */
6750 function unsubscribe(handler) {
6751 for (var i = handlers.length - 1; i >= 0; --i) {
6752 if (handlers[i] === handler) {
6753 handlers.splice(i, 1);
6754 }
6755 }
6756 }
6757
6758 /**
6759 * Remove all crash handlers.
6760 */
6761 function unsubscribeAll() {
6762 uninstallGlobalHandler();
6763 handlers = [];
6764 }
6765
6766 /**
6767 * Dispatch stack information to all handlers.
6768 * @param {Object.<string, *>} stack
6769 */
6770 function notifyHandlers(stack, isWindowError) {
6771 var exception = null;
6772 if (isWindowError && !TraceKit.collectWindowErrors) {
6773 return;
6774 }
6775 for (var i in handlers) {
6776 if (handlers.hasOwnProperty(i)) {
6777 try {
6778 handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));
6779 } catch (inner) {
6780 exception = inner;
6781 }
6782 }
6783 }
6784
6785 if (exception) {
6786 throw exception;
6787 }
6788 }
6789
6790 var _oldOnerrorHandler, _onErrorHandlerInstalled;
6791
6792 /**
6793 * Ensures all global unhandled exceptions are recorded.
6794 * Supported by Gecko and IE.
6795 * @param {string} message Error message.
6796 * @param {string} url URL of script that generated the exception.
6797 * @param {(number|string)} lineNo The line number at which the error
6798 * occurred.
6799 * @param {?(number|string)} colNo The column number at which the error
6800 * occurred.
6801 * @param {?Error} ex The actual Error object.
6802 */
6803 function traceKitWindowOnError(message, url, lineNo, colNo, ex) {
6804 var stack = null;
6805
6806 if (lastExceptionStack) {
6807 TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(
6808 lastExceptionStack,
6809 url,
6810 lineNo,
6811 message
6812 );
6813 processLastException();
6814 } else if (ex && utils.isError(ex)) {
6815 // non-string `ex` arg; attempt to extract stack trace
6816
6817 // New chrome and blink send along a real error object
6818 // Let's just report that like a normal error.
6819 // See: https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror
6820 stack = TraceKit.computeStackTrace(ex);
6821 notifyHandlers(stack, true);
6822 } else {
6823 var location = {
6824 url: url,
6825 line: lineNo,
6826 column: colNo
6827 };
6828
6829 var name = undefined;
6830 var msg = message; // must be new var or will modify original `arguments`
6831 var groups;
6832 if ({}.toString.call(message) === '[object String]') {
6833 var groups = message.match(ERROR_TYPES_RE);
6834 if (groups) {
6835 name = groups[1];
6836 msg = groups[2];
6837 }
6838 }
6839
6840 location.func = UNKNOWN_FUNCTION;
6841
6842 stack = {
6843 name: name,
6844 message: msg,
6845 url: getLocationHref(),
6846 stack: [location]
6847 };
6848 notifyHandlers(stack, true);
6849 }
6850
6851 if (_oldOnerrorHandler) {
6852 return _oldOnerrorHandler.apply(this, arguments);
6853 }
6854
6855 return false;
6856 }
6857
6858 function installGlobalHandler() {
6859 if (_onErrorHandlerInstalled) {
6860 return;
6861 }
6862 _oldOnerrorHandler = _window.onerror;
6863 _window.onerror = traceKitWindowOnError;
6864 _onErrorHandlerInstalled = true;
6865 }
6866
6867 function uninstallGlobalHandler() {
6868 if (!_onErrorHandlerInstalled) {
6869 return;
6870 }
6871 _window.onerror = _oldOnerrorHandler;
6872 _onErrorHandlerInstalled = false;
6873 _oldOnerrorHandler = undefined;
6874 }
6875
6876 function processLastException() {
6877 var _lastExceptionStack = lastExceptionStack,
6878 _lastArgs = lastArgs;
6879 lastArgs = null;
6880 lastExceptionStack = null;
6881 lastException = null;
6882 notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));
6883 }
6884
6885 /**
6886 * Reports an unhandled Error to TraceKit.
6887 * @param {Error} ex
6888 * @param {?boolean} rethrow If false, do not re-throw the exception.
6889 * Only used for window.onerror to not cause an infinite loop of
6890 * rethrowing.
6891 */
6892 function report(ex, rethrow) {
6893 var args = _slice.call(arguments, 1);
6894 if (lastExceptionStack) {
6895 if (lastException === ex) {
6896 return; // already caught by an inner catch block, ignore
6897 } else {
6898 processLastException();
6899 }
6900 }
6901
6902 var stack = TraceKit.computeStackTrace(ex);
6903 lastExceptionStack = stack;
6904 lastException = ex;
6905 lastArgs = args;
6906
6907 // If the stack trace is incomplete, wait for 2 seconds for
6908 // slow slow IE to see if onerror occurs or not before reporting
6909 // this exception; otherwise, we will end up with an incomplete
6910 // stack trace
6911 setTimeout(function() {
6912 if (lastException === ex) {
6913 processLastException();
6914 }
6915 }, stack.incomplete ? 2000 : 0);
6916
6917 if (rethrow !== false) {
6918 throw ex; // re-throw to propagate to the top level (and cause window.onerror)
6919 }
6920 }
6921
6922 report.subscribe = subscribe;
6923 report.unsubscribe = unsubscribe;
6924 report.uninstall = unsubscribeAll;
6925 return report;
6926 })();
6927
6928 /**
6929 * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript
6930 *
6931 * Syntax:
6932 * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)
6933 * Returns:
6934 * s.name - exception name
6935 * s.message - exception message
6936 * s.stack[i].url - JavaScript or HTML file URL
6937 * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work)
6938 * s.stack[i].args - arguments passed to the function, if known
6939 * s.stack[i].line - line number, if known
6940 * s.stack[i].column - column number, if known
6941 *
6942 * Supports:
6943 * - Firefox: full stack trace with line numbers and unreliable column
6944 * number on top frame
6945 * - Opera 10: full stack trace with line and column numbers
6946 * - Opera 9-: full stack trace with line numbers
6947 * - Chrome: full stack trace with line and column numbers
6948 * - Safari: line and column number for the topmost stacktrace element
6949 * only
6950 * - IE: no line numbers whatsoever
6951 *
6952 * Tries to guess names of anonymous functions by looking for assignments
6953 * in the source code. In IE and Safari, we have to guess source file names
6954 * by searching for function bodies inside all page scripts. This will not
6955 * work for scripts that are loaded cross-domain.
6956 * Here be dragons: some function names may be guessed incorrectly, and
6957 * duplicate functions may be mismatched.
6958 *
6959 * TraceKit.computeStackTrace should only be used for tracing purposes.
6960 * Logging of unhandled exceptions should be done with TraceKit.report,
6961 * which builds on top of TraceKit.computeStackTrace and provides better
6962 * IE support by utilizing the window.onerror event to retrieve information
6963 * about the top of the stack.
6964 *
6965 * Note: In IE and Safari, no stack trace is recorded on the Error object,
6966 * so computeStackTrace instead walks its *own* chain of callers.
6967 * This means that:
6968 * * in Safari, some methods may be missing from the stack trace;
6969 * * in IE, the topmost function in the stack trace will always be the
6970 * caller of computeStackTrace.
6971 *
6972 * This is okay for tracing (because you are likely to be calling
6973 * computeStackTrace from the function you want to be the topmost element
6974 * of the stack trace anyway), but not okay for logging unhandled
6975 * exceptions (because your catch block will likely be far away from the
6976 * inner function that actually caused the exception).
6977 *
6978 */
6979 TraceKit.computeStackTrace = (function computeStackTraceWrapper() {
6980 // Contents of Exception in various browsers.
6981 //
6982 // SAFARI:
6983 // ex.message = Can't find variable: qq
6984 // ex.line = 59
6985 // ex.sourceId = 580238192
6986 // ex.sourceURL = http://...
6987 // ex.expressionBeginOffset = 96
6988 // ex.expressionCaretOffset = 98
6989 // ex.expressionEndOffset = 98
6990 // ex.name = ReferenceError
6991 //
6992 // FIREFOX:
6993 // ex.message = qq is not defined
6994 // ex.fileName = http://...
6995 // ex.lineNumber = 59
6996 // ex.columnNumber = 69
6997 // ex.stack = ...stack trace... (see the example below)
6998 // ex.name = ReferenceError
6999 //
7000 // CHROME:
7001 // ex.message = qq is not defined
7002 // ex.name = ReferenceError
7003 // ex.type = not_defined
7004 // ex.arguments = ['aa']
7005 // ex.stack = ...stack trace...
7006 //
7007 // INTERNET EXPLORER:
7008 // ex.message = ...
7009 // ex.name = ReferenceError
7010 //
7011 // OPERA:
7012 // ex.message = ...message... (see the example below)
7013 // ex.name = ReferenceError
7014 // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)
7015 // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'
7016
7017 /**
7018 * Computes stack trace information from the stack property.
7019 * Chrome and Gecko use this property.
7020 * @param {Error} ex
7021 * @return {?Object.<string, *>} Stack trace information.
7022 */
7023 function computeStackTraceFromStackProp(ex) {
7024 if (typeof ex.stack === 'undefined' || !ex.stack) return;
7025
7026 var chrome = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,
7027 gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,
7028 winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,
7029 // Used to additionally parse URL/line/column from eval frames
7030 geckoEval = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i,
7031 chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/,
7032 lines = ex.stack.split('\n'),
7033 stack = [],
7034 submatch,
7035 parts,
7036 element,
7037 reference = /^(.*) is undefined$/.exec(ex.message);
7038
7039 for (var i = 0, j = lines.length; i < j; ++i) {
7040 if ((parts = chrome.exec(lines[i]))) {
7041 var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line
7042 var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line
7043 if (isEval && (submatch = chromeEval.exec(parts[2]))) {
7044 // throw out eval line/column and use top-most line/column number
7045 parts[2] = submatch[1]; // url
7046 parts[3] = submatch[2]; // line
7047 parts[4] = submatch[3]; // column
7048 }
7049 element = {
7050 url: !isNative ? parts[2] : null,
7051 func: parts[1] || UNKNOWN_FUNCTION,
7052 args: isNative ? [parts[2]] : [],
7053 line: parts[3] ? +parts[3] : null,
7054 column: parts[4] ? +parts[4] : null
7055 };
7056 } else if ((parts = winjs.exec(lines[i]))) {
7057 element = {
7058 url: parts[2],
7059 func: parts[1] || UNKNOWN_FUNCTION,
7060 args: [],
7061 line: +parts[3],
7062 column: parts[4] ? +parts[4] : null
7063 };
7064 } else if ((parts = gecko.exec(lines[i]))) {
7065 var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
7066 if (isEval && (submatch = geckoEval.exec(parts[3]))) {
7067 // throw out eval line/column and use top-most line number
7068 parts[3] = submatch[1];
7069 parts[4] = submatch[2];
7070 parts[5] = null; // no column when eval
7071 } else if (i === 0 && !parts[5] && typeof ex.columnNumber !== 'undefined') {
7072 // FireFox uses this awesome columnNumber property for its top frame
7073 // Also note, Firefox's column number is 0-based and everything else expects 1-based,
7074 // so adding 1
7075 // NOTE: this hack doesn't work if top-most frame is eval
7076 stack[0].column = ex.columnNumber + 1;
7077 }
7078 element = {
7079 url: parts[3],
7080 func: parts[1] || UNKNOWN_FUNCTION,
7081 args: parts[2] ? parts[2].split(',') : [],
7082 line: parts[4] ? +parts[4] : null,
7083 column: parts[5] ? +parts[5] : null
7084 };
7085 } else {
7086 continue;
7087 }
7088
7089 if (!element.func && element.line) {
7090 element.func = UNKNOWN_FUNCTION;
7091 }
7092
7093 stack.push(element);
7094 }
7095
7096 if (!stack.length) {
7097 return null;
7098 }
7099
7100 return {
7101 name: ex.name,
7102 message: ex.message,
7103 url: getLocationHref(),
7104 stack: stack
7105 };
7106 }
7107
7108 /**
7109 * Adds information about the first frame to incomplete stack traces.
7110 * Safari and IE require this to get complete data on the first frame.
7111 * @param {Object.<string, *>} stackInfo Stack trace information from
7112 * one of the compute* methods.
7113 * @param {string} url The URL of the script that caused an error.
7114 * @param {(number|string)} lineNo The line number of the script that
7115 * caused an error.
7116 * @param {string=} message The error generated by the browser, which
7117 * hopefully contains the name of the object that caused the error.
7118 * @return {boolean} Whether or not the stack information was
7119 * augmented.
7120 */
7121 function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) {
7122 var initial = {
7123 url: url,
7124 line: lineNo
7125 };
7126
7127 if (initial.url && initial.line) {
7128 stackInfo.incomplete = false;
7129
7130 if (!initial.func) {
7131 initial.func = UNKNOWN_FUNCTION;
7132 }
7133
7134 if (stackInfo.stack.length > 0) {
7135 if (stackInfo.stack[0].url === initial.url) {
7136 if (stackInfo.stack[0].line === initial.line) {
7137 return false; // already in stack trace
7138 } else if (
7139 !stackInfo.stack[0].line &&
7140 stackInfo.stack[0].func === initial.func
7141 ) {
7142 stackInfo.stack[0].line = initial.line;
7143 return false;
7144 }
7145 }
7146 }
7147
7148 stackInfo.stack.unshift(initial);
7149 stackInfo.partial = true;
7150 return true;
7151 } else {
7152 stackInfo.incomplete = true;
7153 }
7154
7155 return false;
7156 }
7157
7158 /**
7159 * Computes stack trace information by walking the arguments.caller
7160 * chain at the time the exception occurred. This will cause earlier
7161 * frames to be missed but is the only way to get any stack trace in
7162 * Safari and IE. The top frame is restored by
7163 * {@link augmentStackTraceWithInitialElement}.
7164 * @param {Error} ex
7165 * @return {?Object.<string, *>} Stack trace information.
7166 */
7167 function computeStackTraceByWalkingCallerChain(ex, depth) {
7168 var functionName = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,
7169 stack = [],
7170 funcs = {},
7171 recursion = false,
7172 parts,
7173 item,
7174 source;
7175
7176 for (
7177 var curr = computeStackTraceByWalkingCallerChain.caller;
7178 curr && !recursion;
7179 curr = curr.caller
7180 ) {
7181 if (curr === computeStackTrace || curr === TraceKit.report) {
7182 // console.log('skipping internal function');
7183 continue;
7184 }
7185
7186 item = {
7187 url: null,
7188 func: UNKNOWN_FUNCTION,
7189 line: null,
7190 column: null
7191 };
7192
7193 if (curr.name) {
7194 item.func = curr.name;
7195 } else if ((parts = functionName.exec(curr.toString()))) {
7196 item.func = parts[1];
7197 }
7198
7199 if (typeof item.func === 'undefined') {
7200 try {
7201 item.func = parts.input.substring(0, parts.input.indexOf('{'));
7202 } catch (e) {}
7203 }
7204
7205 if (funcs['' + curr]) {
7206 recursion = true;
7207 } else {
7208 funcs['' + curr] = true;
7209 }
7210
7211 stack.push(item);
7212 }
7213
7214 if (depth) {
7215 // console.log('depth is ' + depth);
7216 // console.log('stack is ' + stack.length);
7217 stack.splice(0, depth);
7218 }
7219
7220 var result = {
7221 name: ex.name,
7222 message: ex.message,
7223 url: getLocationHref(),
7224 stack: stack
7225 };
7226 augmentStackTraceWithInitialElement(
7227 result,
7228 ex.sourceURL || ex.fileName,
7229 ex.line || ex.lineNumber,
7230 ex.message || ex.description
7231 );
7232 return result;
7233 }
7234
7235 /**
7236 * Computes a stack trace for an exception.
7237 * @param {Error} ex
7238 * @param {(string|number)=} depth
7239 */
7240 function computeStackTrace(ex, depth) {
7241 var stack = null;
7242 depth = depth == null ? 0 : +depth;
7243
7244 try {
7245 stack = computeStackTraceFromStackProp(ex);
7246 if (stack) {
7247 return stack;
7248 }
7249 } catch (e) {
7250 if (TraceKit.debug) {
7251 throw e;
7252 }
7253 }
7254
7255 try {
7256 stack = computeStackTraceByWalkingCallerChain(ex, depth + 1);
7257 if (stack) {
7258 return stack;
7259 }
7260 } catch (e) {
7261 if (TraceKit.debug) {
7262 throw e;
7263 }
7264 }
7265 return {
7266 name: ex.name,
7267 message: ex.message,
7268 url: getLocationHref()
7269 };
7270 }
7271
7272 computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement;
7273 computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp;
7274
7275 return computeStackTrace;
7276 })();
7277
7278 module.exports = TraceKit;
7279
7280
7281 /***/ }),
7282
7283 /***/ "./node_modules/raven-js/vendor/json-stringify-safe/stringify.js":
7284 /*!***********************************************************************!*\
7285 !*** ./node_modules/raven-js/vendor/json-stringify-safe/stringify.js ***!
7286 \***********************************************************************/
7287 /***/ ((module, exports) => {
7288
7289 /*
7290 json-stringify-safe
7291 Like JSON.stringify, but doesn't throw on circular references.
7292
7293 Originally forked from https://github.com/isaacs/json-stringify-safe
7294 version 5.0.1 on 3/8/2017 and modified to handle Errors serialization
7295 and IE8 compatibility. Tests for this are in test/vendor.
7296
7297 ISC license: https://github.com/isaacs/json-stringify-safe/blob/master/LICENSE
7298 */
7299
7300 exports = module.exports = stringify;
7301 exports.getSerialize = serializer;
7302
7303 function indexOf(haystack, needle) {
7304 for (var i = 0; i < haystack.length; ++i) {
7305 if (haystack[i] === needle) return i;
7306 }
7307 return -1;
7308 }
7309
7310 function stringify(obj, replacer, spaces, cycleReplacer) {
7311 return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces);
7312 }
7313
7314 // https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106
7315 function stringifyError(value) {
7316 var err = {
7317 // These properties are implemented as magical getters and don't show up in for in
7318 stack: value.stack,
7319 message: value.message,
7320 name: value.name
7321 };
7322
7323 for (var i in value) {
7324 if (Object.prototype.hasOwnProperty.call(value, i)) {
7325 err[i] = value[i];
7326 }
7327 }
7328
7329 return err;
7330 }
7331
7332 function serializer(replacer, cycleReplacer) {
7333 var stack = [];
7334 var keys = [];
7335
7336 if (cycleReplacer == null) {
7337 cycleReplacer = function(key, value) {
7338 if (stack[0] === value) {
7339 return '[Circular ~]';
7340 }
7341 return '[Circular ~.' + keys.slice(0, indexOf(stack, value)).join('.') + ']';
7342 };
7343 }
7344
7345 return function(key, value) {
7346 if (stack.length > 0) {
7347 var thisPos = indexOf(stack, this);
7348 ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);
7349 ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);
7350
7351 if (~indexOf(stack, value)) {
7352 value = cycleReplacer.call(this, key, value);
7353 }
7354 } else {
7355 stack.push(value);
7356 }
7357
7358 return replacer == null
7359 ? value instanceof Error ? stringifyError(value) : value
7360 : replacer.call(this, key, value);
7361 };
7362 }
7363
7364
7365 /***/ }),
7366
7367 /***/ "./node_modules/react/cjs/react-jsx-runtime.development.js":
7368 /*!*****************************************************************!*\
7369 !*** ./node_modules/react/cjs/react-jsx-runtime.development.js ***!
7370 \*****************************************************************/
7371 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7372
7373 "use strict";
7374 /** @license React v17.0.2
7375 * react-jsx-runtime.development.js
7376 *
7377 * Copyright (c) Facebook, Inc. and its affiliates.
7378 *
7379 * This source code is licensed under the MIT license found in the
7380 * LICENSE file in the root directory of this source tree.
7381 */
7382
7383
7384
7385 if (true) {
7386 (function() {
7387 'use strict';
7388
7389 var React = __webpack_require__(/*! react */ "react");
7390 var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
7391
7392 // ATTENTION
7393 // When adding new symbols to this file,
7394 // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
7395 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
7396 // nor polyfill, then a plain number is used for performance.
7397 var REACT_ELEMENT_TYPE = 0xeac7;
7398 var REACT_PORTAL_TYPE = 0xeaca;
7399 exports.Fragment = 0xeacb;
7400 var REACT_STRICT_MODE_TYPE = 0xeacc;
7401 var REACT_PROFILER_TYPE = 0xead2;
7402 var REACT_PROVIDER_TYPE = 0xeacd;
7403 var REACT_CONTEXT_TYPE = 0xeace;
7404 var REACT_FORWARD_REF_TYPE = 0xead0;
7405 var REACT_SUSPENSE_TYPE = 0xead1;
7406 var REACT_SUSPENSE_LIST_TYPE = 0xead8;
7407 var REACT_MEMO_TYPE = 0xead3;
7408 var REACT_LAZY_TYPE = 0xead4;
7409 var REACT_BLOCK_TYPE = 0xead9;
7410 var REACT_SERVER_BLOCK_TYPE = 0xeada;
7411 var REACT_FUNDAMENTAL_TYPE = 0xead5;
7412 var REACT_SCOPE_TYPE = 0xead7;
7413 var REACT_OPAQUE_ID_TYPE = 0xeae0;
7414 var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
7415 var REACT_OFFSCREEN_TYPE = 0xeae2;
7416 var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
7417
7418 if (typeof Symbol === 'function' && Symbol.for) {
7419 var symbolFor = Symbol.for;
7420 REACT_ELEMENT_TYPE = symbolFor('react.element');
7421 REACT_PORTAL_TYPE = symbolFor('react.portal');
7422 exports.Fragment = symbolFor('react.fragment');
7423 REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
7424 REACT_PROFILER_TYPE = symbolFor('react.profiler');
7425 REACT_PROVIDER_TYPE = symbolFor('react.provider');
7426 REACT_CONTEXT_TYPE = symbolFor('react.context');
7427 REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
7428 REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
7429 REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
7430 REACT_MEMO_TYPE = symbolFor('react.memo');
7431 REACT_LAZY_TYPE = symbolFor('react.lazy');
7432 REACT_BLOCK_TYPE = symbolFor('react.block');
7433 REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
7434 REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
7435 REACT_SCOPE_TYPE = symbolFor('react.scope');
7436 REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
7437 REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
7438 REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
7439 REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
7440 }
7441
7442 var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
7443 var FAUX_ITERATOR_SYMBOL = '@@iterator';
7444 function getIteratorFn(maybeIterable) {
7445 if (maybeIterable === null || typeof maybeIterable !== 'object') {
7446 return null;
7447 }
7448
7449 var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
7450
7451 if (typeof maybeIterator === 'function') {
7452 return maybeIterator;
7453 }
7454
7455 return null;
7456 }
7457
7458 var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
7459
7460 function error(format) {
7461 {
7462 for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
7463 args[_key2 - 1] = arguments[_key2];
7464 }
7465
7466 printWarning('error', format, args);
7467 }
7468 }
7469
7470 function printWarning(level, format, args) {
7471 // When changing this logic, you might want to also
7472 // update consoleWithStackDev.www.js as well.
7473 {
7474 var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
7475 var stack = ReactDebugCurrentFrame.getStackAddendum();
7476
7477 if (stack !== '') {
7478 format += '%s';
7479 args = args.concat([stack]);
7480 }
7481
7482 var argsWithFormat = args.map(function (item) {
7483 return '' + item;
7484 }); // Careful: RN currently depends on this prefix
7485
7486 argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
7487 // breaks IE9: https://github.com/facebook/react/issues/13610
7488 // eslint-disable-next-line react-internal/no-production-logging
7489
7490 Function.prototype.apply.call(console[level], console, argsWithFormat);
7491 }
7492 }
7493
7494 // Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
7495
7496 var enableScopeAPI = false; // Experimental Create Event Handle API.
7497
7498 function isValidElementType(type) {
7499 if (typeof type === 'string' || typeof type === 'function') {
7500 return true;
7501 } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
7502
7503
7504 if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
7505 return true;
7506 }
7507
7508 if (typeof type === 'object' && type !== null) {
7509 if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
7510 return true;
7511 }
7512 }
7513
7514 return false;
7515 }
7516
7517 function getWrappedName(outerType, innerType, wrapperName) {
7518 var functionName = innerType.displayName || innerType.name || '';
7519 return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
7520 }
7521
7522 function getContextName(type) {
7523 return type.displayName || 'Context';
7524 }
7525
7526 function getComponentName(type) {
7527 if (type == null) {
7528 // Host root, text node or just invalid type.
7529 return null;
7530 }
7531
7532 {
7533 if (typeof type.tag === 'number') {
7534 error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
7535 }
7536 }
7537
7538 if (typeof type === 'function') {
7539 return type.displayName || type.name || null;
7540 }
7541
7542 if (typeof type === 'string') {
7543 return type;
7544 }
7545
7546 switch (type) {
7547 case exports.Fragment:
7548 return 'Fragment';
7549
7550 case REACT_PORTAL_TYPE:
7551 return 'Portal';
7552
7553 case REACT_PROFILER_TYPE:
7554 return 'Profiler';
7555
7556 case REACT_STRICT_MODE_TYPE:
7557 return 'StrictMode';
7558
7559 case REACT_SUSPENSE_TYPE:
7560 return 'Suspense';
7561
7562 case REACT_SUSPENSE_LIST_TYPE:
7563 return 'SuspenseList';
7564 }
7565
7566 if (typeof type === 'object') {
7567 switch (type.$$typeof) {
7568 case REACT_CONTEXT_TYPE:
7569 var context = type;
7570 return getContextName(context) + '.Consumer';
7571
7572 case REACT_PROVIDER_TYPE:
7573 var provider = type;
7574 return getContextName(provider._context) + '.Provider';
7575
7576 case REACT_FORWARD_REF_TYPE:
7577 return getWrappedName(type, type.render, 'ForwardRef');
7578
7579 case REACT_MEMO_TYPE:
7580 return getComponentName(type.type);
7581
7582 case REACT_BLOCK_TYPE:
7583 return getComponentName(type._render);
7584
7585 case REACT_LAZY_TYPE:
7586 {
7587 var lazyComponent = type;
7588 var payload = lazyComponent._payload;
7589 var init = lazyComponent._init;
7590
7591 try {
7592 return getComponentName(init(payload));
7593 } catch (x) {
7594 return null;
7595 }
7596 }
7597 }
7598 }
7599
7600 return null;
7601 }
7602
7603 // Helpers to patch console.logs to avoid logging during side-effect free
7604 // replaying on render function. This currently only patches the object
7605 // lazily which won't cover if the log function was extracted eagerly.
7606 // We could also eagerly patch the method.
7607 var disabledDepth = 0;
7608 var prevLog;
7609 var prevInfo;
7610 var prevWarn;
7611 var prevError;
7612 var prevGroup;
7613 var prevGroupCollapsed;
7614 var prevGroupEnd;
7615
7616 function disabledLog() {}
7617
7618 disabledLog.__reactDisabledLog = true;
7619 function disableLogs() {
7620 {
7621 if (disabledDepth === 0) {
7622 /* eslint-disable react-internal/no-production-logging */
7623 prevLog = console.log;
7624 prevInfo = console.info;
7625 prevWarn = console.warn;
7626 prevError = console.error;
7627 prevGroup = console.group;
7628 prevGroupCollapsed = console.groupCollapsed;
7629 prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
7630
7631 var props = {
7632 configurable: true,
7633 enumerable: true,
7634 value: disabledLog,
7635 writable: true
7636 }; // $FlowFixMe Flow thinks console is immutable.
7637
7638 Object.defineProperties(console, {
7639 info: props,
7640 log: props,
7641 warn: props,
7642 error: props,
7643 group: props,
7644 groupCollapsed: props,
7645 groupEnd: props
7646 });
7647 /* eslint-enable react-internal/no-production-logging */
7648 }
7649
7650 disabledDepth++;
7651 }
7652 }
7653 function reenableLogs() {
7654 {
7655 disabledDepth--;
7656
7657 if (disabledDepth === 0) {
7658 /* eslint-disable react-internal/no-production-logging */
7659 var props = {
7660 configurable: true,
7661 enumerable: true,
7662 writable: true
7663 }; // $FlowFixMe Flow thinks console is immutable.
7664
7665 Object.defineProperties(console, {
7666 log: _assign({}, props, {
7667 value: prevLog
7668 }),
7669 info: _assign({}, props, {
7670 value: prevInfo
7671 }),
7672 warn: _assign({}, props, {
7673 value: prevWarn
7674 }),
7675 error: _assign({}, props, {
7676 value: prevError
7677 }),
7678 group: _assign({}, props, {
7679 value: prevGroup
7680 }),
7681 groupCollapsed: _assign({}, props, {
7682 value: prevGroupCollapsed
7683 }),
7684 groupEnd: _assign({}, props, {
7685 value: prevGroupEnd
7686 })
7687 });
7688 /* eslint-enable react-internal/no-production-logging */
7689 }
7690
7691 if (disabledDepth < 0) {
7692 error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
7693 }
7694 }
7695 }
7696
7697 var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
7698 var prefix;
7699 function describeBuiltInComponentFrame(name, source, ownerFn) {
7700 {
7701 if (prefix === undefined) {
7702 // Extract the VM specific prefix used by each line.
7703 try {
7704 throw Error();
7705 } catch (x) {
7706 var match = x.stack.trim().match(/\n( *(at )?)/);
7707 prefix = match && match[1] || '';
7708 }
7709 } // We use the prefix to ensure our stacks line up with native stack frames.
7710
7711
7712 return '\n' + prefix + name;
7713 }
7714 }
7715 var reentry = false;
7716 var componentFrameCache;
7717
7718 {
7719 var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
7720 componentFrameCache = new PossiblyWeakMap();
7721 }
7722
7723 function describeNativeComponentFrame(fn, construct) {
7724 // If something asked for a stack inside a fake render, it should get ignored.
7725 if (!fn || reentry) {
7726 return '';
7727 }
7728
7729 {
7730 var frame = componentFrameCache.get(fn);
7731
7732 if (frame !== undefined) {
7733 return frame;
7734 }
7735 }
7736
7737 var control;
7738 reentry = true;
7739 var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
7740
7741 Error.prepareStackTrace = undefined;
7742 var previousDispatcher;
7743
7744 {
7745 previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function
7746 // for warnings.
7747
7748 ReactCurrentDispatcher.current = null;
7749 disableLogs();
7750 }
7751
7752 try {
7753 // This should throw.
7754 if (construct) {
7755 // Something should be setting the props in the constructor.
7756 var Fake = function () {
7757 throw Error();
7758 }; // $FlowFixMe
7759
7760
7761 Object.defineProperty(Fake.prototype, 'props', {
7762 set: function () {
7763 // We use a throwing setter instead of frozen or non-writable props
7764 // because that won't throw in a non-strict mode function.
7765 throw Error();
7766 }
7767 });
7768
7769 if (typeof Reflect === 'object' && Reflect.construct) {
7770 // We construct a different control for this case to include any extra
7771 // frames added by the construct call.
7772 try {
7773 Reflect.construct(Fake, []);
7774 } catch (x) {
7775 control = x;
7776 }
7777
7778 Reflect.construct(fn, [], Fake);
7779 } else {
7780 try {
7781 Fake.call();
7782 } catch (x) {
7783 control = x;
7784 }
7785
7786 fn.call(Fake.prototype);
7787 }
7788 } else {
7789 try {
7790 throw Error();
7791 } catch (x) {
7792 control = x;
7793 }
7794
7795 fn();
7796 }
7797 } catch (sample) {
7798 // This is inlined manually because closure doesn't do it for us.
7799 if (sample && control && typeof sample.stack === 'string') {
7800 // This extracts the first frame from the sample that isn't also in the control.
7801 // Skipping one frame that we assume is the frame that calls the two.
7802 var sampleLines = sample.stack.split('\n');
7803 var controlLines = control.stack.split('\n');
7804 var s = sampleLines.length - 1;
7805 var c = controlLines.length - 1;
7806
7807 while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
7808 // We expect at least one stack frame to be shared.
7809 // Typically this will be the root most one. However, stack frames may be
7810 // cut off due to maximum stack limits. In this case, one maybe cut off
7811 // earlier than the other. We assume that the sample is longer or the same
7812 // and there for cut off earlier. So we should find the root most frame in
7813 // the sample somewhere in the control.
7814 c--;
7815 }
7816
7817 for (; s >= 1 && c >= 0; s--, c--) {
7818 // Next we find the first one that isn't the same which should be the
7819 // frame that called our sample function and the control.
7820 if (sampleLines[s] !== controlLines[c]) {
7821 // In V8, the first line is describing the message but other VMs don't.
7822 // If we're about to return the first line, and the control is also on the same
7823 // line, that's a pretty good indicator that our sample threw at same line as
7824 // the control. I.e. before we entered the sample frame. So we ignore this result.
7825 // This can happen if you passed a class to function component, or non-function.
7826 if (s !== 1 || c !== 1) {
7827 do {
7828 s--;
7829 c--; // We may still have similar intermediate frames from the construct call.
7830 // The next one that isn't the same should be our match though.
7831
7832 if (c < 0 || sampleLines[s] !== controlLines[c]) {
7833 // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
7834 var _frame = '\n' + sampleLines[s].replace(' at new ', ' at ');
7835
7836 {
7837 if (typeof fn === 'function') {
7838 componentFrameCache.set(fn, _frame);
7839 }
7840 } // Return the line we found.
7841
7842
7843 return _frame;
7844 }
7845 } while (s >= 1 && c >= 0);
7846 }
7847
7848 break;
7849 }
7850 }
7851 }
7852 } finally {
7853 reentry = false;
7854
7855 {
7856 ReactCurrentDispatcher.current = previousDispatcher;
7857 reenableLogs();
7858 }
7859
7860 Error.prepareStackTrace = previousPrepareStackTrace;
7861 } // Fallback to just using the name if we couldn't make it throw.
7862
7863
7864 var name = fn ? fn.displayName || fn.name : '';
7865 var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
7866
7867 {
7868 if (typeof fn === 'function') {
7869 componentFrameCache.set(fn, syntheticFrame);
7870 }
7871 }
7872
7873 return syntheticFrame;
7874 }
7875 function describeFunctionComponentFrame(fn, source, ownerFn) {
7876 {
7877 return describeNativeComponentFrame(fn, false);
7878 }
7879 }
7880
7881 function shouldConstruct(Component) {
7882 var prototype = Component.prototype;
7883 return !!(prototype && prototype.isReactComponent);
7884 }
7885
7886 function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
7887
7888 if (type == null) {
7889 return '';
7890 }
7891
7892 if (typeof type === 'function') {
7893 {
7894 return describeNativeComponentFrame(type, shouldConstruct(type));
7895 }
7896 }
7897
7898 if (typeof type === 'string') {
7899 return describeBuiltInComponentFrame(type);
7900 }
7901
7902 switch (type) {
7903 case REACT_SUSPENSE_TYPE:
7904 return describeBuiltInComponentFrame('Suspense');
7905
7906 case REACT_SUSPENSE_LIST_TYPE:
7907 return describeBuiltInComponentFrame('SuspenseList');
7908 }
7909
7910 if (typeof type === 'object') {
7911 switch (type.$$typeof) {
7912 case REACT_FORWARD_REF_TYPE:
7913 return describeFunctionComponentFrame(type.render);
7914
7915 case REACT_MEMO_TYPE:
7916 // Memo may contain any component type so we recursively resolve it.
7917 return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
7918
7919 case REACT_BLOCK_TYPE:
7920 return describeFunctionComponentFrame(type._render);
7921
7922 case REACT_LAZY_TYPE:
7923 {
7924 var lazyComponent = type;
7925 var payload = lazyComponent._payload;
7926 var init = lazyComponent._init;
7927
7928 try {
7929 // Lazy may contain any component type so we recursively resolve it.
7930 return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
7931 } catch (x) {}
7932 }
7933 }
7934 }
7935
7936 return '';
7937 }
7938
7939 var loggedTypeFailures = {};
7940 var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
7941
7942 function setCurrentlyValidatingElement(element) {
7943 {
7944 if (element) {
7945 var owner = element._owner;
7946 var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
7947 ReactDebugCurrentFrame.setExtraStackFrame(stack);
7948 } else {
7949 ReactDebugCurrentFrame.setExtraStackFrame(null);
7950 }
7951 }
7952 }
7953
7954 function checkPropTypes(typeSpecs, values, location, componentName, element) {
7955 {
7956 // $FlowFixMe This is okay but Flow doesn't know it.
7957 var has = Function.call.bind(Object.prototype.hasOwnProperty);
7958
7959 for (var typeSpecName in typeSpecs) {
7960 if (has(typeSpecs, typeSpecName)) {
7961 var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
7962 // fail the render phase where it didn't fail before. So we log it.
7963 // After these have been cleaned up, we'll let them throw.
7964
7965 try {
7966 // This is intentionally an invariant that gets caught. It's the same
7967 // behavior as without this statement except with a better message.
7968 if (typeof typeSpecs[typeSpecName] !== 'function') {
7969 var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
7970 err.name = 'Invariant Violation';
7971 throw err;
7972 }
7973
7974 error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
7975 } catch (ex) {
7976 error$1 = ex;
7977 }
7978
7979 if (error$1 && !(error$1 instanceof Error)) {
7980 setCurrentlyValidatingElement(element);
7981
7982 error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
7983
7984 setCurrentlyValidatingElement(null);
7985 }
7986
7987 if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
7988 // Only monitor this failure once because there tends to be a lot of the
7989 // same error.
7990 loggedTypeFailures[error$1.message] = true;
7991 setCurrentlyValidatingElement(element);
7992
7993 error('Failed %s type: %s', location, error$1.message);
7994
7995 setCurrentlyValidatingElement(null);
7996 }
7997 }
7998 }
7999 }
8000 }
8001
8002 var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
8003 var hasOwnProperty = Object.prototype.hasOwnProperty;
8004 var RESERVED_PROPS = {
8005 key: true,
8006 ref: true,
8007 __self: true,
8008 __source: true
8009 };
8010 var specialPropKeyWarningShown;
8011 var specialPropRefWarningShown;
8012 var didWarnAboutStringRefs;
8013
8014 {
8015 didWarnAboutStringRefs = {};
8016 }
8017
8018 function hasValidRef(config) {
8019 {
8020 if (hasOwnProperty.call(config, 'ref')) {
8021 var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
8022
8023 if (getter && getter.isReactWarning) {
8024 return false;
8025 }
8026 }
8027 }
8028
8029 return config.ref !== undefined;
8030 }
8031
8032 function hasValidKey(config) {
8033 {
8034 if (hasOwnProperty.call(config, 'key')) {
8035 var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
8036
8037 if (getter && getter.isReactWarning) {
8038 return false;
8039 }
8040 }
8041 }
8042
8043 return config.key !== undefined;
8044 }
8045
8046 function warnIfStringRefCannotBeAutoConverted(config, self) {
8047 {
8048 if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {
8049 var componentName = getComponentName(ReactCurrentOwner.current.type);
8050
8051 if (!didWarnAboutStringRefs[componentName]) {
8052 error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);
8053
8054 didWarnAboutStringRefs[componentName] = true;
8055 }
8056 }
8057 }
8058 }
8059
8060 function defineKeyPropWarningGetter(props, displayName) {
8061 {
8062 var warnAboutAccessingKey = function () {
8063 if (!specialPropKeyWarningShown) {
8064 specialPropKeyWarningShown = true;
8065
8066 error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
8067 }
8068 };
8069
8070 warnAboutAccessingKey.isReactWarning = true;
8071 Object.defineProperty(props, 'key', {
8072 get: warnAboutAccessingKey,
8073 configurable: true
8074 });
8075 }
8076 }
8077
8078 function defineRefPropWarningGetter(props, displayName) {
8079 {
8080 var warnAboutAccessingRef = function () {
8081 if (!specialPropRefWarningShown) {
8082 specialPropRefWarningShown = true;
8083
8084 error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
8085 }
8086 };
8087
8088 warnAboutAccessingRef.isReactWarning = true;
8089 Object.defineProperty(props, 'ref', {
8090 get: warnAboutAccessingRef,
8091 configurable: true
8092 });
8093 }
8094 }
8095 /**
8096 * Factory method to create a new React element. This no longer adheres to
8097 * the class pattern, so do not use new to call it. Also, instanceof check
8098 * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
8099 * if something is a React Element.
8100 *
8101 * @param {*} type
8102 * @param {*} props
8103 * @param {*} key
8104 * @param {string|object} ref
8105 * @param {*} owner
8106 * @param {*} self A *temporary* helper to detect places where `this` is
8107 * different from the `owner` when React.createElement is called, so that we
8108 * can warn. We want to get rid of owner and replace string `ref`s with arrow
8109 * functions, and as long as `this` and owner are the same, there will be no
8110 * change in behavior.
8111 * @param {*} source An annotation object (added by a transpiler or otherwise)
8112 * indicating filename, line number, and/or other information.
8113 * @internal
8114 */
8115
8116
8117 var ReactElement = function (type, key, ref, self, source, owner, props) {
8118 var element = {
8119 // This tag allows us to uniquely identify this as a React Element
8120 $$typeof: REACT_ELEMENT_TYPE,
8121 // Built-in properties that belong on the element
8122 type: type,
8123 key: key,
8124 ref: ref,
8125 props: props,
8126 // Record the component responsible for creating this element.
8127 _owner: owner
8128 };
8129
8130 {
8131 // The validation flag is currently mutative. We put it on
8132 // an external backing store so that we can freeze the whole object.
8133 // This can be replaced with a WeakMap once they are implemented in
8134 // commonly used development environments.
8135 element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
8136 // the validation flag non-enumerable (where possible, which should
8137 // include every environment we run tests in), so the test framework
8138 // ignores it.
8139
8140 Object.defineProperty(element._store, 'validated', {
8141 configurable: false,
8142 enumerable: false,
8143 writable: true,
8144 value: false
8145 }); // self and source are DEV only properties.
8146
8147 Object.defineProperty(element, '_self', {
8148 configurable: false,
8149 enumerable: false,
8150 writable: false,
8151 value: self
8152 }); // Two elements created in two different places should be considered
8153 // equal for testing purposes and therefore we hide it from enumeration.
8154
8155 Object.defineProperty(element, '_source', {
8156 configurable: false,
8157 enumerable: false,
8158 writable: false,
8159 value: source
8160 });
8161
8162 if (Object.freeze) {
8163 Object.freeze(element.props);
8164 Object.freeze(element);
8165 }
8166 }
8167
8168 return element;
8169 };
8170 /**
8171 * https://github.com/reactjs/rfcs/pull/107
8172 * @param {*} type
8173 * @param {object} props
8174 * @param {string} key
8175 */
8176
8177 function jsxDEV(type, config, maybeKey, source, self) {
8178 {
8179 var propName; // Reserved names are extracted
8180
8181 var props = {};
8182 var key = null;
8183 var ref = null; // Currently, key can be spread in as a prop. This causes a potential
8184 // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
8185 // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
8186 // but as an intermediary step, we will use jsxDEV for everything except
8187 // <div {...props} key="Hi" />, because we aren't currently able to tell if
8188 // key is explicitly declared to be undefined or not.
8189
8190 if (maybeKey !== undefined) {
8191 key = '' + maybeKey;
8192 }
8193
8194 if (hasValidKey(config)) {
8195 key = '' + config.key;
8196 }
8197
8198 if (hasValidRef(config)) {
8199 ref = config.ref;
8200 warnIfStringRefCannotBeAutoConverted(config, self);
8201 } // Remaining properties are added to a new props object
8202
8203
8204 for (propName in config) {
8205 if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
8206 props[propName] = config[propName];
8207 }
8208 } // Resolve default props
8209
8210
8211 if (type && type.defaultProps) {
8212 var defaultProps = type.defaultProps;
8213
8214 for (propName in defaultProps) {
8215 if (props[propName] === undefined) {
8216 props[propName] = defaultProps[propName];
8217 }
8218 }
8219 }
8220
8221 if (key || ref) {
8222 var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
8223
8224 if (key) {
8225 defineKeyPropWarningGetter(props, displayName);
8226 }
8227
8228 if (ref) {
8229 defineRefPropWarningGetter(props, displayName);
8230 }
8231 }
8232
8233 return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
8234 }
8235 }
8236
8237 var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
8238 var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
8239
8240 function setCurrentlyValidatingElement$1(element) {
8241 {
8242 if (element) {
8243 var owner = element._owner;
8244 var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
8245 ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
8246 } else {
8247 ReactDebugCurrentFrame$1.setExtraStackFrame(null);
8248 }
8249 }
8250 }
8251
8252 var propTypesMisspellWarningShown;
8253
8254 {
8255 propTypesMisspellWarningShown = false;
8256 }
8257 /**
8258 * Verifies the object is a ReactElement.
8259 * See https://reactjs.org/docs/react-api.html#isvalidelement
8260 * @param {?object} object
8261 * @return {boolean} True if `object` is a ReactElement.
8262 * @final
8263 */
8264
8265 function isValidElement(object) {
8266 {
8267 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
8268 }
8269 }
8270
8271 function getDeclarationErrorAddendum() {
8272 {
8273 if (ReactCurrentOwner$1.current) {
8274 var name = getComponentName(ReactCurrentOwner$1.current.type);
8275
8276 if (name) {
8277 return '\n\nCheck the render method of `' + name + '`.';
8278 }
8279 }
8280
8281 return '';
8282 }
8283 }
8284
8285 function getSourceInfoErrorAddendum(source) {
8286 {
8287 if (source !== undefined) {
8288 var fileName = source.fileName.replace(/^.*[\\\/]/, '');
8289 var lineNumber = source.lineNumber;
8290 return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
8291 }
8292
8293 return '';
8294 }
8295 }
8296 /**
8297 * Warn if there's no key explicitly set on dynamic arrays of children or
8298 * object keys are not valid. This allows us to keep track of children between
8299 * updates.
8300 */
8301
8302
8303 var ownerHasKeyUseWarning = {};
8304
8305 function getCurrentComponentErrorInfo(parentType) {
8306 {
8307 var info = getDeclarationErrorAddendum();
8308
8309 if (!info) {
8310 var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
8311
8312 if (parentName) {
8313 info = "\n\nCheck the top-level render call using <" + parentName + ">.";
8314 }
8315 }
8316
8317 return info;
8318 }
8319 }
8320 /**
8321 * Warn if the element doesn't have an explicit key assigned to it.
8322 * This element is in an array. The array could grow and shrink or be
8323 * reordered. All children that haven't already been validated are required to
8324 * have a "key" property assigned to it. Error statuses are cached so a warning
8325 * will only be shown once.
8326 *
8327 * @internal
8328 * @param {ReactElement} element Element that requires a key.
8329 * @param {*} parentType element's parent's type.
8330 */
8331
8332
8333 function validateExplicitKey(element, parentType) {
8334 {
8335 if (!element._store || element._store.validated || element.key != null) {
8336 return;
8337 }
8338
8339 element._store.validated = true;
8340 var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
8341
8342 if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
8343 return;
8344 }
8345
8346 ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
8347 // property, it may be the creator of the child that's responsible for
8348 // assigning it a key.
8349
8350 var childOwner = '';
8351
8352 if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
8353 // Give the component that originally created this child.
8354 childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
8355 }
8356
8357 setCurrentlyValidatingElement$1(element);
8358
8359 error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
8360
8361 setCurrentlyValidatingElement$1(null);
8362 }
8363 }
8364 /**
8365 * Ensure that every element either is passed in a static location, in an
8366 * array with an explicit keys property defined, or in an object literal
8367 * with valid key property.
8368 *
8369 * @internal
8370 * @param {ReactNode} node Statically passed child of any type.
8371 * @param {*} parentType node's parent's type.
8372 */
8373
8374
8375 function validateChildKeys(node, parentType) {
8376 {
8377 if (typeof node !== 'object') {
8378 return;
8379 }
8380
8381 if (Array.isArray(node)) {
8382 for (var i = 0; i < node.length; i++) {
8383 var child = node[i];
8384
8385 if (isValidElement(child)) {
8386 validateExplicitKey(child, parentType);
8387 }
8388 }
8389 } else if (isValidElement(node)) {
8390 // This element was passed in a valid location.
8391 if (node._store) {
8392 node._store.validated = true;
8393 }
8394 } else if (node) {
8395 var iteratorFn = getIteratorFn(node);
8396
8397 if (typeof iteratorFn === 'function') {
8398 // Entry iterators used to provide implicit keys,
8399 // but now we print a separate warning for them later.
8400 if (iteratorFn !== node.entries) {
8401 var iterator = iteratorFn.call(node);
8402 var step;
8403
8404 while (!(step = iterator.next()).done) {
8405 if (isValidElement(step.value)) {
8406 validateExplicitKey(step.value, parentType);
8407 }
8408 }
8409 }
8410 }
8411 }
8412 }
8413 }
8414 /**
8415 * Given an element, validate that its props follow the propTypes definition,
8416 * provided by the type.
8417 *
8418 * @param {ReactElement} element
8419 */
8420
8421
8422 function validatePropTypes(element) {
8423 {
8424 var type = element.type;
8425
8426 if (type === null || type === undefined || typeof type === 'string') {
8427 return;
8428 }
8429
8430 var propTypes;
8431
8432 if (typeof type === 'function') {
8433 propTypes = type.propTypes;
8434 } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
8435 // Inner props are checked in the reconciler.
8436 type.$$typeof === REACT_MEMO_TYPE)) {
8437 propTypes = type.propTypes;
8438 } else {
8439 return;
8440 }
8441
8442 if (propTypes) {
8443 // Intentionally inside to avoid triggering lazy initializers:
8444 var name = getComponentName(type);
8445 checkPropTypes(propTypes, element.props, 'prop', name, element);
8446 } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
8447 propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
8448
8449 var _name = getComponentName(type);
8450
8451 error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
8452 }
8453
8454 if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
8455 error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
8456 }
8457 }
8458 }
8459 /**
8460 * Given a fragment, validate that it can only be provided with fragment props
8461 * @param {ReactElement} fragment
8462 */
8463
8464
8465 function validateFragmentProps(fragment) {
8466 {
8467 var keys = Object.keys(fragment.props);
8468
8469 for (var i = 0; i < keys.length; i++) {
8470 var key = keys[i];
8471
8472 if (key !== 'children' && key !== 'key') {
8473 setCurrentlyValidatingElement$1(fragment);
8474
8475 error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
8476
8477 setCurrentlyValidatingElement$1(null);
8478 break;
8479 }
8480 }
8481
8482 if (fragment.ref !== null) {
8483 setCurrentlyValidatingElement$1(fragment);
8484
8485 error('Invalid attribute `ref` supplied to `React.Fragment`.');
8486
8487 setCurrentlyValidatingElement$1(null);
8488 }
8489 }
8490 }
8491
8492 function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
8493 {
8494 var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
8495 // succeed and there will likely be errors in render.
8496
8497 if (!validType) {
8498 var info = '';
8499
8500 if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
8501 info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
8502 }
8503
8504 var sourceInfo = getSourceInfoErrorAddendum(source);
8505
8506 if (sourceInfo) {
8507 info += sourceInfo;
8508 } else {
8509 info += getDeclarationErrorAddendum();
8510 }
8511
8512 var typeString;
8513
8514 if (type === null) {
8515 typeString = 'null';
8516 } else if (Array.isArray(type)) {
8517 typeString = 'array';
8518 } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
8519 typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
8520 info = ' Did you accidentally export a JSX literal instead of a component?';
8521 } else {
8522 typeString = typeof type;
8523 }
8524
8525 error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
8526 }
8527
8528 var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
8529 // TODO: Drop this when these are no longer allowed as the type argument.
8530
8531 if (element == null) {
8532 return element;
8533 } // Skip key warning if the type isn't valid since our key validation logic
8534 // doesn't expect a non-string/function type and can throw confusing errors.
8535 // We don't want exception behavior to differ between dev and prod.
8536 // (Rendering will throw with a helpful message and as soon as the type is
8537 // fixed, the key warnings will appear.)
8538
8539
8540 if (validType) {
8541 var children = props.children;
8542
8543 if (children !== undefined) {
8544 if (isStaticChildren) {
8545 if (Array.isArray(children)) {
8546 for (var i = 0; i < children.length; i++) {
8547 validateChildKeys(children[i], type);
8548 }
8549
8550 if (Object.freeze) {
8551 Object.freeze(children);
8552 }
8553 } else {
8554 error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
8555 }
8556 } else {
8557 validateChildKeys(children, type);
8558 }
8559 }
8560 }
8561
8562 if (type === exports.Fragment) {
8563 validateFragmentProps(element);
8564 } else {
8565 validatePropTypes(element);
8566 }
8567
8568 return element;
8569 }
8570 } // These two functions exist to still get child warnings in dev
8571 // even with the prod transform. This means that jsxDEV is purely
8572 // opt-in behavior for better messages but that we won't stop
8573 // giving you warnings if you use production apis.
8574
8575 function jsxWithValidationStatic(type, props, key) {
8576 {
8577 return jsxWithValidation(type, props, key, true);
8578 }
8579 }
8580 function jsxWithValidationDynamic(type, props, key) {
8581 {
8582 return jsxWithValidation(type, props, key, false);
8583 }
8584 }
8585
8586 var jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.
8587 // for now we can ship identical prod functions
8588
8589 var jsxs = jsxWithValidationStatic ;
8590
8591 exports.jsx = jsx;
8592 exports.jsxs = jsxs;
8593 })();
8594 }
8595
8596
8597 /***/ }),
8598
8599 /***/ "./node_modules/react/jsx-runtime.js":
8600 /*!*******************************************!*\
8601 !*** ./node_modules/react/jsx-runtime.js ***!
8602 \*******************************************/
8603 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8604
8605 "use strict";
8606
8607
8608 if (false) {} else {
8609 module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ "./node_modules/react/cjs/react-jsx-runtime.development.js");
8610 }
8611
8612
8613 /***/ }),
8614
8615 /***/ "react":
8616 /*!************************!*\
8617 !*** external "React" ***!
8618 \************************/
8619 /***/ ((module) => {
8620
8621 "use strict";
8622 module.exports = window["React"];
8623
8624 /***/ }),
8625
8626 /***/ "react-dom":
8627 /*!***************************!*\
8628 !*** external "ReactDOM" ***!
8629 \***************************/
8630 /***/ ((module) => {
8631
8632 "use strict";
8633 module.exports = window["ReactDOM"];
8634
8635 /***/ }),
8636
8637 /***/ "jquery":
8638 /*!*************************!*\
8639 !*** external "jQuery" ***!
8640 \*************************/
8641 /***/ ((module) => {
8642
8643 "use strict";
8644 module.exports = window["jQuery"];
8645
8646 /***/ }),
8647
8648 /***/ "@wordpress/i18n":
8649 /*!******************************!*\
8650 !*** external ["wp","i18n"] ***!
8651 \******************************/
8652 /***/ ((module) => {
8653
8654 "use strict";
8655 module.exports = window["wp"]["i18n"];
8656
8657 /***/ }),
8658
8659 /***/ "./node_modules/@linaria/react/dist/index.mjs":
8660 /*!****************************************************!*\
8661 !*** ./node_modules/@linaria/react/dist/index.mjs ***!
8662 \****************************************************/
8663 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
8664
8665 "use strict";
8666 __webpack_require__.r(__webpack_exports__);
8667 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8668 /* harmony export */ "styled": () => (/* binding */ styled_default)
8669 /* harmony export */ });
8670 /* harmony import */ var _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/is-prop-valid */ "./node_modules/@linaria/react/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js");
8671 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
8672 /* harmony import */ var _linaria_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @linaria/core */ "./node_modules/@linaria/react/node_modules/@linaria/core/dist/index.mjs");
8673 // src/styled.ts
8674
8675
8676
8677 var isCapital = (ch) => ch.toUpperCase() === ch;
8678 var filterKey = (keys) => (key) => keys.indexOf(key) === -1;
8679 var omit = (obj, keys) => {
8680 const res = {};
8681 Object.keys(obj).filter(filterKey(keys)).forEach((key) => {
8682 res[key] = obj[key];
8683 });
8684 return res;
8685 };
8686 function filterProps(asIs, props, omitKeys) {
8687 const filteredProps = omit(props, omitKeys);
8688 if (!asIs) {
8689 const interopValidAttr = typeof _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_0__["default"] === "function" ? { default: _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_0__["default"] } : _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_0__["default"];
8690 Object.keys(filteredProps).forEach((key) => {
8691 if (!interopValidAttr.default(key)) {
8692 delete filteredProps[key];
8693 }
8694 });
8695 }
8696 return filteredProps;
8697 }
8698 var warnIfInvalid = (value, componentName) => {
8699 if (true) {
8700 if (typeof value === "string" || typeof value === "number" && isFinite(value)) {
8701 return;
8702 }
8703 const stringified = typeof value === "object" ? JSON.stringify(value) : String(value);
8704 console.warn(
8705 `An interpolation evaluated to '${stringified}' in the component '${componentName}', which is probably a mistake. You should explicitly cast or transform the value to a string.`
8706 );
8707 }
8708 };
8709 function styled(tag) {
8710 return (options) => {
8711 if (true) {
8712 if (Array.isArray(options)) {
8713 throw new Error(
8714 'Using the "styled" tag in runtime is not supported. Make sure you have set up the Babel plugin correctly. See https://github.com/callstack/linaria#setup'
8715 );
8716 }
8717 }
8718 const render = (props, ref) => {
8719 const { as: component = tag, class: className } = props;
8720 const shouldKeepProps = options.propsAsIs === void 0 ? !(typeof component === "string" && component.indexOf("-") === -1 && !isCapital(component[0])) : options.propsAsIs;
8721 const filteredProps = filterProps(shouldKeepProps, props, [
8722 "as",
8723 "class"
8724 ]);
8725 filteredProps.ref = ref;
8726 filteredProps.className = options.atomic ? (0,_linaria_core__WEBPACK_IMPORTED_MODULE_2__.cx)(options.class, filteredProps.className || className) : (0,_linaria_core__WEBPACK_IMPORTED_MODULE_2__.cx)(filteredProps.className || className, options.class);
8727 const { vars } = options;
8728 if (vars) {
8729 const style = {};
8730 for (const name in vars) {
8731 const variable = vars[name];
8732 const result = variable[0];
8733 const unit = variable[1] || "";
8734 const value = typeof result === "function" ? result(props) : result;
8735 warnIfInvalid(value, options.name);
8736 style[`--${name}`] = `${value}${unit}`;
8737 }
8738 const ownStyle = filteredProps.style || {};
8739 const keys = Object.keys(ownStyle);
8740 if (keys.length > 0) {
8741 keys.forEach((key) => {
8742 style[key] = ownStyle[key];
8743 });
8744 }
8745 filteredProps.style = style;
8746 }
8747 if (tag.__linaria && tag !== component) {
8748 filteredProps.as = component;
8749 return react__WEBPACK_IMPORTED_MODULE_1__.createElement(tag, filteredProps);
8750 }
8751 return react__WEBPACK_IMPORTED_MODULE_1__.createElement(component, filteredProps);
8752 };
8753 const Result = react__WEBPACK_IMPORTED_MODULE_1__.forwardRef ? react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(render) : (props) => {
8754 const rest = omit(props, ["innerRef"]);
8755 return render(rest, props.innerRef);
8756 };
8757 Result.displayName = options.name;
8758 Result.__linaria = {
8759 className: options.class,
8760 extends: tag
8761 };
8762 return Result;
8763 };
8764 }
8765 var styled_default = true ? new Proxy(styled, {
8766 get(o, prop) {
8767 return o(prop);
8768 }
8769 }) : 0;
8770
8771 //# sourceMappingURL=index.mjs.map
8772
8773 /***/ }),
8774
8775 /***/ "./node_modules/@linaria/react/node_modules/@linaria/core/dist/index.mjs":
8776 /*!*******************************************************************************!*\
8777 !*** ./node_modules/@linaria/react/node_modules/@linaria/core/dist/index.mjs ***!
8778 \*******************************************************************************/
8779 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
8780
8781 "use strict";
8782 __webpack_require__.r(__webpack_exports__);
8783 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8784 /* harmony export */ "css": () => (/* binding */ css_default),
8785 /* harmony export */ "cx": () => (/* binding */ cx_default)
8786 /* harmony export */ });
8787 // src/css.ts
8788 var css = () => {
8789 throw new Error(
8790 'Using the "css" tag in runtime is not supported. Make sure you have set up the Babel plugin correctly.'
8791 );
8792 };
8793 var css_default = css;
8794
8795 // src/cx.ts
8796 var cx = function cx2() {
8797 const presentClassNames = Array.prototype.slice.call(arguments).filter(Boolean);
8798 const atomicClasses = {};
8799 const nonAtomicClasses = [];
8800 presentClassNames.forEach((arg) => {
8801 const individualClassNames = arg ? arg.split(" ") : [];
8802 individualClassNames.forEach((className) => {
8803 if (className.startsWith("atm_")) {
8804 const [, keyHash] = className.split("_");
8805 atomicClasses[keyHash] = className;
8806 } else {
8807 nonAtomicClasses.push(className);
8808 }
8809 });
8810 });
8811 const result = [];
8812 for (const keyHash in atomicClasses) {
8813 if (Object.prototype.hasOwnProperty.call(atomicClasses, keyHash)) {
8814 result.push(atomicClasses[keyHash]);
8815 }
8816 }
8817 result.push(...nonAtomicClasses);
8818 return result.join(" ");
8819 };
8820 var cx_default = cx;
8821
8822 //# sourceMappingURL=index.mjs.map
8823
8824 /***/ })
8825
8826 /******/ });
8827 /************************************************************************/
8828 /******/ // The module cache
8829 /******/ var __webpack_module_cache__ = {};
8830 /******/
8831 /******/ // The require function
8832 /******/ function __webpack_require__(moduleId) {
8833 /******/ // Check if module is in cache
8834 /******/ var cachedModule = __webpack_module_cache__[moduleId];
8835 /******/ if (cachedModule !== undefined) {
8836 /******/ return cachedModule.exports;
8837 /******/ }
8838 /******/ // Create a new module (and put it into the cache)
8839 /******/ var module = __webpack_module_cache__[moduleId] = {
8840 /******/ // no module.id needed
8841 /******/ // no module.loaded needed
8842 /******/ exports: {}
8843 /******/ };
8844 /******/
8845 /******/ // Execute the module function
8846 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
8847 /******/
8848 /******/ // Return the exports of the module
8849 /******/ return module.exports;
8850 /******/ }
8851 /******/
8852 /************************************************************************/
8853 /******/ /* webpack/runtime/compat get default export */
8854 /******/ (() => {
8855 /******/ // getDefaultExport function for compatibility with non-harmony modules
8856 /******/ __webpack_require__.n = (module) => {
8857 /******/ var getter = module && module.__esModule ?
8858 /******/ () => (module['default']) :
8859 /******/ () => (module);
8860 /******/ __webpack_require__.d(getter, { a: getter });
8861 /******/ return getter;
8862 /******/ };
8863 /******/ })();
8864 /******/
8865 /******/ /* webpack/runtime/define property getters */
8866 /******/ (() => {
8867 /******/ // define getter functions for harmony exports
8868 /******/ __webpack_require__.d = (exports, definition) => {
8869 /******/ for(var key in definition) {
8870 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
8871 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
8872 /******/ }
8873 /******/ }
8874 /******/ };
8875 /******/ })();
8876 /******/
8877 /******/ /* webpack/runtime/global */
8878 /******/ (() => {
8879 /******/ __webpack_require__.g = (function() {
8880 /******/ if (typeof globalThis === 'object') return globalThis;
8881 /******/ try {
8882 /******/ return this || new Function('return this')();
8883 /******/ } catch (e) {
8884 /******/ if (typeof window === 'object') return window;
8885 /******/ }
8886 /******/ })();
8887 /******/ })();
8888 /******/
8889 /******/ /* webpack/runtime/hasOwnProperty shorthand */
8890 /******/ (() => {
8891 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
8892 /******/ })();
8893 /******/
8894 /******/ /* webpack/runtime/make namespace object */
8895 /******/ (() => {
8896 /******/ // define __esModule on exports
8897 /******/ __webpack_require__.r = (exports) => {
8898 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
8899 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
8900 /******/ }
8901 /******/ Object.defineProperty(exports, '__esModule', { value: true });
8902 /******/ };
8903 /******/ })();
8904 /******/
8905 /************************************************************************/
8906 var __webpack_exports__ = {};
8907 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
8908 (() => {
8909 "use strict";
8910 /*!**************************************!*\
8911 !*** ./scripts/entries/elementor.ts ***!
8912 \**************************************/
8913 __webpack_require__.r(__webpack_exports__);
8914 /* harmony import */ var _elementor_elementorWidget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elementor/elementorWidget */ "./scripts/elementor/elementorWidget.ts");
8915 /* harmony import */ var _elementor_FormWidget_registerFormWidget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elementor/FormWidget/registerFormWidget */ "./scripts/elementor/FormWidget/registerFormWidget.ts");
8916 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
8917 /* harmony import */ var _elementor_MeetingWidget_registerMeetingWidget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elementor/MeetingWidget/registerMeetingWidget */ "./scripts/elementor/MeetingWidget/registerMeetingWidget.ts");
8918
8919
8920
8921
8922 window.addEventListener('elementor/init', function () {
8923 (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_2__.initBackgroundApp)(function () {
8924 var FormWidget;
8925 var MeetingsWidget;
8926 var leadinSelectFormItemView = (0,_elementor_elementorWidget__WEBPACK_IMPORTED_MODULE_0__["default"])( //@ts-expect-error global
8927 window.elementor, {
8928 widgetName: 'hubspot-form',
8929 controlSelector: '.elementor-hbspt-form-selector',
8930 containerSelector: '.hubspot-form-edit-mode'
8931 }, function (controlContainer, widgetContainer, setValue) {
8932 FormWidget = new _elementor_FormWidget_registerFormWidget__WEBPACK_IMPORTED_MODULE_1__["default"](controlContainer, widgetContainer, setValue);
8933 FormWidget.render();
8934 }, function () {
8935 FormWidget.done();
8936 });
8937 var leadinSelectMeetingItemView = (0,_elementor_elementorWidget__WEBPACK_IMPORTED_MODULE_0__["default"])( //@ts-expect-error global
8938 window.elementor, {
8939 widgetName: 'hubspot-meeting',
8940 controlSelector: '.elementor-hbspt-meeting-selector',
8941 containerSelector: '.hubspot-meeting-edit-mode'
8942 }, function (controlContainer, widgetContainer, setValue) {
8943 MeetingsWidget = new _elementor_MeetingWidget_registerMeetingWidget__WEBPACK_IMPORTED_MODULE_3__["default"](controlContainer, widgetContainer, setValue);
8944 MeetingsWidget.render();
8945 }, function () {
8946 MeetingsWidget.done();
8947 }); //@ts-expect-error global
8948
8949 window.elementor.addControlView('leadinformselect', leadinSelectFormItemView); //@ts-expect-error global
8950
8951 window.elementor.addControlView('leadinmeetingselect', leadinSelectMeetingItemView);
8952 });
8953 });
8954 })();
8955
8956 /******/ })()
8957 ;
8958 //# sourceMappingURL=elementor.js.map