PluginProbe
HubSpot All-In-One Marketing – Forms, Popups, Live Chat / 11.1.15
HubSpot All-In-One Marketing – Forms, Popups, Live Chat v11.1.15
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.1.15, at build/elementor.js

8,991 lines 353.7 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 */ "contentEmbed": () => (/* binding */ contentEmbed),
118 /* harmony export */ "deviceId": () => (/* binding */ deviceId),
119 /* harmony export */ "didDisconnect": () => (/* binding */ didDisconnect),
120 /* harmony export */ "env": () => (/* binding */ env),
121 /* harmony export */ "formsScript": () => (/* binding */ formsScript),
122 /* harmony export */ "formsScriptPayload": () => (/* binding */ formsScriptPayload),
123 /* harmony export */ "hublet": () => (/* binding */ hublet),
124 /* harmony export */ "hubspotBaseUrl": () => (/* binding */ hubspotBaseUrl),
125 /* harmony export */ "hubspotNonce": () => (/* binding */ hubspotNonce),
126 /* harmony export */ "iframeUrl": () => (/* binding */ iframeUrl),
127 /* harmony export */ "impactLink": () => (/* binding */ impactLink),
128 /* harmony export */ "lastAuthorizeTime": () => (/* binding */ lastAuthorizeTime),
129 /* harmony export */ "lastDeauthorizeTime": () => (/* binding */ lastDeauthorizeTime),
130 /* harmony export */ "lastDisconnectTime": () => (/* binding */ lastDisconnectTime),
131 /* harmony export */ "leadinPluginVersion": () => (/* binding */ leadinPluginVersion),
132 /* harmony export */ "leadinQueryParams": () => (/* binding */ leadinQueryParams),
133 /* harmony export */ "locale": () => (/* binding */ locale),
134 /* harmony export */ "loginUrl": () => (/* binding */ loginUrl),
135 /* harmony export */ "meetingsScript": () => (/* binding */ meetingsScript),
136 /* harmony export */ "phpVersion": () => (/* binding */ phpVersion),
137 /* harmony export */ "pluginPath": () => (/* binding */ pluginPath),
138 /* harmony export */ "plugins": () => (/* binding */ plugins),
139 /* harmony export */ "portalDomain": () => (/* binding */ portalDomain),
140 /* harmony export */ "portalEmail": () => (/* binding */ portalEmail),
141 /* harmony export */ "portalId": () => (/* binding */ portalId),
142 /* harmony export */ "redirectNonce": () => (/* binding */ redirectNonce),
143 /* harmony export */ "refreshToken": () => (/* binding */ refreshToken),
144 /* harmony export */ "refreshTokenError": () => (/* binding */ refreshTokenError),
145 /* harmony export */ "requiresContentEmbedScope": () => (/* binding */ requiresContentEmbedScope),
146 /* harmony export */ "restNonce": () => (/* binding */ restNonce),
147 /* harmony export */ "restUrl": () => (/* binding */ restUrl),
148 /* harmony export */ "reviewSkippedDate": () => (/* binding */ reviewSkippedDate),
149 /* harmony export */ "theme": () => (/* binding */ theme),
150 /* harmony export */ "trackConsent": () => (/* binding */ trackConsent),
151 /* harmony export */ "wpVersion": () => (/* binding */ wpVersion)
152 /* harmony export */ });
153 var _window$leadinConfig = window.leadinConfig,
154 accountName = _window$leadinConfig.accountName,
155 adminUrl = _window$leadinConfig.adminUrl,
156 activationTime = _window$leadinConfig.activationTime,
157 connectionStatus = _window$leadinConfig.connectionStatus,
158 deviceId = _window$leadinConfig.deviceId,
159 didDisconnect = _window$leadinConfig.didDisconnect,
160 env = _window$leadinConfig.env,
161 formsScript = _window$leadinConfig.formsScript,
162 meetingsScript = _window$leadinConfig.meetingsScript,
163 formsScriptPayload = _window$leadinConfig.formsScriptPayload,
164 hublet = _window$leadinConfig.hublet,
165 hubspotBaseUrl = _window$leadinConfig.hubspotBaseUrl,
166 hubspotNonce = _window$leadinConfig.hubspotNonce,
167 iframeUrl = _window$leadinConfig.iframeUrl,
168 impactLink = _window$leadinConfig.impactLink,
169 lastAuthorizeTime = _window$leadinConfig.lastAuthorizeTime,
170 lastDeauthorizeTime = _window$leadinConfig.lastDeauthorizeTime,
171 lastDisconnectTime = _window$leadinConfig.lastDisconnectTime,
172 leadinPluginVersion = _window$leadinConfig.leadinPluginVersion,
173 leadinQueryParams = _window$leadinConfig.leadinQueryParams,
174 locale = _window$leadinConfig.locale,
175 loginUrl = _window$leadinConfig.loginUrl,
176 phpVersion = _window$leadinConfig.phpVersion,
177 pluginPath = _window$leadinConfig.pluginPath,
178 plugins = _window$leadinConfig.plugins,
179 portalDomain = _window$leadinConfig.portalDomain,
180 portalEmail = _window$leadinConfig.portalEmail,
181 portalId = _window$leadinConfig.portalId,
182 redirectNonce = _window$leadinConfig.redirectNonce,
183 restNonce = _window$leadinConfig.restNonce,
184 restUrl = _window$leadinConfig.restUrl,
185 refreshToken = _window$leadinConfig.refreshToken,
186 reviewSkippedDate = _window$leadinConfig.reviewSkippedDate,
187 theme = _window$leadinConfig.theme,
188 trackConsent = _window$leadinConfig.trackConsent,
189 wpVersion = _window$leadinConfig.wpVersion,
190 contentEmbed = _window$leadinConfig.contentEmbed,
191 requiresContentEmbedScope = _window$leadinConfig.requiresContentEmbedScope,
192 refreshTokenError = _window$leadinConfig.refreshTokenError;
193
194
195 /***/ }),
196
197 /***/ "./scripts/elementor/Common/ConnectPluginBanner.tsx":
198 /*!**********************************************************!*\
199 !*** ./scripts/elementor/Common/ConnectPluginBanner.tsx ***!
200 \**********************************************************/
201 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
202
203 "use strict";
204 __webpack_require__.r(__webpack_exports__);
205 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
206 /* harmony export */ "default": () => (/* binding */ ConnectPluginBanner)
207 /* harmony export */ });
208 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
209 /* harmony import */ var _ElementorBanner__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx");
210 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
211 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
212
213
214
215 function ConnectPluginBanner() {
216 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ElementorBanner__WEBPACK_IMPORTED_MODULE_1__["default"], {
217 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
218 dangerouslySetInnerHTML: {
219 __html: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('The HubSpot plugin is not 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>')
220 }
221 })
222 });
223 }
224
225 /***/ }),
226
227 /***/ "./scripts/elementor/Common/ElementorBanner.tsx":
228 /*!******************************************************!*\
229 !*** ./scripts/elementor/Common/ElementorBanner.tsx ***!
230 \******************************************************/
231 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
232
233 "use strict";
234 __webpack_require__.r(__webpack_exports__);
235 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
236 /* harmony export */ "default": () => (/* binding */ ElementorBanner)
237 /* harmony export */ });
238 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
239
240 function ElementorBanner(_ref) {
241 var _ref$type = _ref.type,
242 type = _ref$type === void 0 ? 'warning' : _ref$type,
243 children = _ref.children;
244 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
245 className: "elementor-control-content",
246 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
247 className: "elementor-control-raw-html elementor-panel-alert elementor-panel-alert-".concat(type),
248 children: children
249 })
250 });
251 }
252
253 /***/ }),
254
255 /***/ "./scripts/elementor/Common/ElementorButton.tsx":
256 /*!******************************************************!*\
257 !*** ./scripts/elementor/Common/ElementorButton.tsx ***!
258 \******************************************************/
259 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
260
261 "use strict";
262 __webpack_require__.r(__webpack_exports__);
263 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
264 /* harmony export */ "default": () => (/* binding */ ElementorButton)
265 /* harmony export */ });
266 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
267 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
268 var _excluded = ["children"];
269
270 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; }
271
272 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; }
273
274 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; }
275
276 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; }
277
278 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; }
279
280
281
282 var Container = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('div')({
283 name: "Container",
284 "class": "czoccom",
285 propsAsIs: false
286 });
287 function ElementorButton(_ref) {
288 var children = _ref.children,
289 params = _objectWithoutProperties(_ref, _excluded);
290
291 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Container, {
292 className: "elementor-button-wrapper",
293 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", _objectSpread(_objectSpread({
294 className: "elementor-button elementor-button-default",
295 type: "button"
296 }, params), {}, {
297 children: children
298 }))
299 });
300 }
301
302 __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");
303
304 /***/ }),
305
306 /***/ "./scripts/elementor/FormWidget/ElementorFormSelect.tsx":
307 /*!**************************************************************!*\
308 !*** ./scripts/elementor/FormWidget/ElementorFormSelect.tsx ***!
309 \**************************************************************/
310 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
311
312 "use strict";
313 __webpack_require__.r(__webpack_exports__);
314 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
315 /* harmony export */ "default": () => (/* binding */ ElementorFormSelectContainer)
316 /* harmony export */ });
317 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
318 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
319 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
320 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
321 /* harmony import */ var _Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx");
322 /* harmony import */ var _shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx");
323 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
324 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
325 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
326 /* harmony import */ var _hooks_useForms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./hooks/useForms */ "./scripts/elementor/FormWidget/hooks/useForms.ts");
327 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
328 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; }
329
330 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; }
331
332 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; }
333
334
335
336
337
338
339
340
341
342
343
344 function ElementorFormSelect(_ref) {
345 var formId = _ref.formId,
346 setAttributes = _ref.setAttributes;
347
348 var _useForms = (0,_hooks_useForms__WEBPACK_IMPORTED_MODULE_7__["default"])(),
349 hasError = _useForms.hasError,
350 forms = _useForms.forms,
351 loading = _useForms.loading;
352
353 return loading ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
354 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_4__["default"], {})
355 }) : hasError ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_3__["default"], {
356 type: "danger",
357 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Please refresh your forms or try again in a few minutes', 'leadin')
358 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("select", {
359 value: formId,
360 onChange: function onChange(event) {
361 var selectedForm = forms.find(function (form) {
362 return form.value === event.target.value;
363 });
364
365 if (selectedForm) {
366 setAttributes({
367 portalId: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId,
368 formId: selectedForm.value,
369 formName: selectedForm.label
370 });
371 }
372 },
373 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
374 value: "",
375 disabled: true,
376 selected: true,
377 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Search for a form', 'leadin')
378 }), forms.map(function (form) {
379 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
380 value: form.value,
381 children: form.label
382 }, form.value);
383 })]
384 });
385 }
386
387 function ElementorFormSelectWrapper(props) {
388 var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.useBackgroundAppContext)();
389 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
390 children: !isBackgroundAppReady ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
391 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_4__["default"], {})
392 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorFormSelect, _objectSpread({}, props))
393 });
394 }
395
396 function ElementorFormSelectContainer(props) {
397 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.BackgroudAppContext.Provider, {
398 value: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.refreshToken && (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_8__.getOrCreateBackgroundApp)(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.refreshToken),
399 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorFormSelectWrapper, _objectSpread({}, props))
400 });
401 }
402
403 /***/ }),
404
405 /***/ "./scripts/elementor/FormWidget/FormControlController.tsx":
406 /*!****************************************************************!*\
407 !*** ./scripts/elementor/FormWidget/FormControlController.tsx ***!
408 \****************************************************************/
409 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
410
411 "use strict";
412 __webpack_require__.r(__webpack_exports__);
413 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
414 /* harmony export */ "default": () => (/* binding */ FormControlController)
415 /* harmony export */ });
416 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
417 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
418 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
419 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
420 /* harmony import */ var _Common_ConnectPluginBanner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ConnectPluginBanner */ "./scripts/elementor/Common/ConnectPluginBanner.tsx");
421 /* harmony import */ var _ElementorFormSelect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ElementorFormSelect */ "./scripts/elementor/FormWidget/ElementorFormSelect.tsx");
422
423
424
425
426
427 var ConnectionStatus = {
428 Connected: 'Connected',
429 NotConnected: 'NotConnected'
430 };
431 function FormControlController(attributes, setValue) {
432 return function () {
433 var render = function render() {
434 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.connectionStatus === ConnectionStatus.Connected) {
435 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ElementorFormSelect__WEBPACK_IMPORTED_MODULE_4__["default"], {
436 formId: attributes.formId,
437 setAttributes: setValue
438 });
439 } else {
440 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ConnectPluginBanner__WEBPACK_IMPORTED_MODULE_3__["default"], {});
441 }
442 };
443
444 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
445 children: render()
446 });
447 };
448 }
449
450 /***/ }),
451
452 /***/ "./scripts/elementor/FormWidget/FormWidgetController.tsx":
453 /*!***************************************************************!*\
454 !*** ./scripts/elementor/FormWidget/FormWidgetController.tsx ***!
455 \***************************************************************/
456 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
457
458 "use strict";
459 __webpack_require__.r(__webpack_exports__);
460 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
461 /* harmony export */ "default": () => (/* binding */ FormWidgetController)
462 /* harmony export */ });
463 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
464 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
465 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
466 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
467 /* harmony import */ var _shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx");
468 /* harmony import */ var _shared_Form_FormEdit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/Form/FormEdit */ "./scripts/shared/Form/FormEdit.tsx");
469 /* harmony import */ var _shared_enums_connectionStatus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/enums/connectionStatus */ "./scripts/shared/enums/connectionStatus.ts");
470
471
472
473
474
475
476 function FormWidgetController(attributes, setValue) {
477 return function () {
478 var render = function render() {
479 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.connectionStatus === _shared_enums_connectionStatus__WEBPACK_IMPORTED_MODULE_5__["default"].Connected) {
480 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Form_FormEdit__WEBPACK_IMPORTED_MODULE_4__["default"], {
481 attributes: attributes,
482 isSelected: true,
483 setAttributes: setValue,
484 preview: false,
485 origin: "elementor"
486 });
487 } else {
488 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_3__["default"], {
489 status: 401
490 });
491 }
492 };
493
494 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
495 children: render()
496 });
497 };
498 }
499
500 /***/ }),
501
502 /***/ "./scripts/elementor/FormWidget/hooks/useForms.ts":
503 /*!********************************************************!*\
504 !*** ./scripts/elementor/FormWidget/hooks/useForms.ts ***!
505 \********************************************************/
506 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
507
508 "use strict";
509 __webpack_require__.r(__webpack_exports__);
510 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
511 /* harmony export */ "default": () => (/* binding */ useForms)
512 /* harmony export */ });
513 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
514 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
515 /* harmony import */ var _shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../shared/enums/loadState */ "./scripts/shared/enums/loadState.ts");
516 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
517 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
518 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
519
520 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."); }
521
522 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); }
523
524 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; }
525
526 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; }
527
528 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
529
530
531
532
533
534 function useForms() {
535 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_3__.usePostAsyncBackgroundMessage)();
536
537 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].NotLoaded),
538 _useState2 = _slicedToArray(_useState, 2),
539 loadState = _useState2[0],
540 setLoadState = _useState2[1];
541
542 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
543 _useState4 = _slicedToArray(_useState3, 2),
544 hasError = _useState4[0],
545 setError = _useState4[1];
546
547 var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
548 _useState6 = _slicedToArray(_useState5, 2),
549 forms = _useState6[0],
550 setForms = _useState6[1];
551
552 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
553 if (loadState === _shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].NotLoaded) {
554 proxy({
555 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_2__.ProxyMessages.FetchForms,
556 payload: {
557 search: ''
558 }
559 }).then(function (data) {
560 setForms(data.map(function (form) {
561 return {
562 label: form.name,
563 value: form.guid
564 };
565 }));
566 setLoadState(_shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].Loaded);
567 })["catch"](function (error) {
568 setError(error);
569 setLoadState(_shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].Failed);
570 });
571 }
572 }, [loadState]);
573 return {
574 forms: forms,
575 loading: loadState === _shared_enums_loadState__WEBPACK_IMPORTED_MODULE_1__["default"].Loading,
576 hasError: hasError
577 };
578 }
579
580 /***/ }),
581
582 /***/ "./scripts/elementor/FormWidget/registerFormWidget.ts":
583 /*!************************************************************!*\
584 !*** ./scripts/elementor/FormWidget/registerFormWidget.ts ***!
585 \************************************************************/
586 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
587
588 "use strict";
589 __webpack_require__.r(__webpack_exports__);
590 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
591 /* harmony export */ "default": () => (/* binding */ registerFormWidget)
592 /* harmony export */ });
593 /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom */ "react-dom");
594 /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_0__);
595 /* harmony import */ var _FormControlController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormControlController */ "./scripts/elementor/FormWidget/FormControlController.tsx");
596 /* harmony import */ var _FormWidgetController__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FormWidgetController */ "./scripts/elementor/FormWidget/FormWidgetController.tsx");
597 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
598
599 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); } }
600
601 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
602
603 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; }
604
605
606
607
608
609 var registerFormWidget = /*#__PURE__*/function () {
610 function registerFormWidget(controlContainer, widgetContainer, setValue) {
611 _classCallCheck(this, registerFormWidget);
612
613 _defineProperty(this, "widgetContainer", void 0);
614
615 _defineProperty(this, "attributes", void 0);
616
617 _defineProperty(this, "controlContainer", void 0);
618
619 _defineProperty(this, "setValue", void 0);
620
621 var attributes = widgetContainer.dataset.attributes ? JSON.parse(widgetContainer.dataset.attributes) : {};
622 this.widgetContainer = widgetContainer;
623 this.controlContainer = controlContainer;
624 this.setValue = setValue;
625 this.attributes = attributes;
626 }
627
628 _createClass(registerFormWidget, [{
629 key: "render",
630 value: function render() {
631 react_dom__WEBPACK_IMPORTED_MODULE_0___default().render((0,_FormWidgetController__WEBPACK_IMPORTED_MODULE_2__["default"])(this.attributes, this.setValue)(), this.widgetContainer);
632 react_dom__WEBPACK_IMPORTED_MODULE_0___default().render((0,_FormControlController__WEBPACK_IMPORTED_MODULE_1__["default"])(this.attributes, this.setValue)(), this.controlContainer);
633 }
634 }, {
635 key: "done",
636 value: function done() {
637 react_dom__WEBPACK_IMPORTED_MODULE_0___default().unmountComponentAtNode(this.widgetContainer);
638 react_dom__WEBPACK_IMPORTED_MODULE_0___default().unmountComponentAtNode(this.controlContainer);
639 }
640 }]);
641
642 return registerFormWidget;
643 }();
644
645
646
647 /***/ }),
648
649 /***/ "./scripts/elementor/MeetingWidget/ElementorMeetingSelect.tsx":
650 /*!********************************************************************!*\
651 !*** ./scripts/elementor/MeetingWidget/ElementorMeetingSelect.tsx ***!
652 \********************************************************************/
653 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
654
655 "use strict";
656 __webpack_require__.r(__webpack_exports__);
657 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
658 /* harmony export */ "default": () => (/* binding */ ElementorMeetingsSelectContainer)
659 /* harmony export */ });
660 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
661 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
662 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
663 /* harmony import */ var _Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx");
664 /* harmony import */ var _shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx");
665 /* harmony import */ var _ElementorMeetingWarning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ElementorMeetingWarning */ "./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx");
666 /* harmony import */ var _shared_Meeting_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/Meeting/hooks/useMeetings */ "./scripts/shared/Meeting/hooks/useMeetings.ts");
667 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
668 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__);
669 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! raven-js */ "./node_modules/raven-js/src/singleton.js");
670 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(raven_js__WEBPACK_IMPORTED_MODULE_7__);
671 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
672 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
673 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
674 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; }
675
676 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; }
677
678 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; }
679
680 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
681
682 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."); }
683
684 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); }
685
686 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; }
687
688 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; }
689
690 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
691
692
693
694
695
696
697
698
699
700
701
702
703
704 function ElementorMeetingSelect(_ref) {
705 var url = _ref.url,
706 setAttributes = _ref.setAttributes;
707
708 var _useMeetings = (0,_shared_Meeting_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__["default"])(),
709 meetings = _useMeetings.mappedMeetings,
710 loading = _useMeetings.loading,
711 error = _useMeetings.error,
712 reload = _useMeetings.reload,
713 connectCalendar = _useMeetings.connectCalendar;
714
715 var selectedMeetingCalendar = (0,_shared_Meeting_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__.useSelectedMeetingCalendar)(url);
716
717 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(url),
718 _useState2 = _slicedToArray(_useState, 2),
719 localUrl = _useState2[0],
720 setLocalUrl = _useState2[1];
721
722 var handleConnectCalendar = function handleConnectCalendar() {
723 return connectCalendar().then(function () {
724 reload();
725 })["catch"](function (error) {
726 raven_js__WEBPACK_IMPORTED_MODULE_7___default().captureMessage('Unable to connect calendar', {
727 extra: {
728 error: error
729 }
730 });
731 });
732 };
733
734 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
735 children: loading ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
736 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__["default"], {})
737 }) : error ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_2__["default"], {
738 type: "danger",
739 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Please refresh your meetings or try again in a few minutes', 'leadin')
740 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
741 children: [selectedMeetingCalendar && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ElementorMeetingWarning__WEBPACK_IMPORTED_MODULE_4__["default"], {
742 status: selectedMeetingCalendar,
743 onConnectCalendar: connectCalendar
744 }), meetings.length > 1 && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("select", {
745 value: localUrl,
746 onChange: function onChange(event) {
747 var newUrl = event.target.value;
748 setLocalUrl(newUrl);
749 setAttributes({
750 url: newUrl
751 });
752 },
753 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
754 value: "",
755 disabled: true,
756 selected: true,
757 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Select a meeting', 'leadin')
758 }), meetings.map(function (item) {
759 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
760 value: item.value,
761 children: item.label
762 }, item.value);
763 })]
764 })]
765 })
766 });
767 }
768
769 function ElementorMeetingSelectWrapper(props) {
770 var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__.useBackgroundAppContext)();
771 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
772 children: !isBackgroundAppReady ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
773 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__["default"], {})
774 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorMeetingSelect, _objectSpread({}, props))
775 });
776 }
777
778 function ElementorMeetingsSelectContainer(props) {
779 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__.BackgroudAppContext.Provider, {
780 value: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_9__.refreshToken && (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_10__.getOrCreateBackgroundApp)(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_9__.refreshToken),
781 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorMeetingSelectWrapper, _objectSpread({}, props))
782 });
783 }
784
785 /***/ }),
786
787 /***/ "./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx":
788 /*!*********************************************************************!*\
789 !*** ./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx ***!
790 \*********************************************************************/
791 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
792
793 "use strict";
794 __webpack_require__.r(__webpack_exports__);
795 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
796 /* harmony export */ "default": () => (/* binding */ MeetingWarning)
797 /* harmony export */ });
798 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
799 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
800 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
801 /* harmony import */ var _shared_Meeting_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/Meeting/constants */ "./scripts/shared/Meeting/constants.ts");
802 /* harmony import */ var _Common_ElementorButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ElementorButton */ "./scripts/elementor/Common/ElementorButton.tsx");
803 /* harmony import */ var _Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Common/ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx");
804 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
805 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
806 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
807
808
809
810
811
812
813
814 var Container = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_6__.styled)('div')({
815 name: "Container",
816 "class": "c1p032ba",
817 propsAsIs: false
818 });
819 function MeetingWarning(_ref) {
820 var onConnectCalendar = _ref.onConnectCalendar,
821 status = _ref.status;
822 var isMeetingOwner = status === _shared_Meeting_constants__WEBPACK_IMPORTED_MODULE_2__.CURRENT_USER_CALENDAR_MISSING;
823 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');
824 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');
825 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
826 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Container, {
827 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_4__["default"], {
828 type: "warning",
829 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
830 children: titleText
831 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("br", {}), titleMessage]
832 })
833 }), isMeetingOwner && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ElementorButton__WEBPACK_IMPORTED_MODULE_3__["default"], {
834 id: "meetings-connect-calendar",
835 onClick: onConnectCalendar,
836 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Connect calendar', 'leadin')
837 })]
838 });
839 }
840
841 __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");
842
843 /***/ }),
844
845 /***/ "./scripts/elementor/MeetingWidget/MeetingControlController.tsx":
846 /*!**********************************************************************!*\
847 !*** ./scripts/elementor/MeetingWidget/MeetingControlController.tsx ***!
848 \**********************************************************************/
849 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
850
851 "use strict";
852 __webpack_require__.r(__webpack_exports__);
853 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
854 /* harmony export */ "default": () => (/* binding */ MeetingControlController)
855 /* harmony export */ });
856 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
857 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
858 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
859 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
860 /* harmony import */ var _Common_ConnectPluginBanner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ConnectPluginBanner */ "./scripts/elementor/Common/ConnectPluginBanner.tsx");
861 /* harmony import */ var _ElementorMeetingSelect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ElementorMeetingSelect */ "./scripts/elementor/MeetingWidget/ElementorMeetingSelect.tsx");
862
863
864
865
866
867 var ConnectionStatus = {
868 Connected: 'Connected',
869 NotConnected: 'NotConnected'
870 };
871 function MeetingControlController(attributes, setValue) {
872 return function () {
873 var render = function render() {
874 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.connectionStatus === ConnectionStatus.Connected) {
875 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ElementorMeetingSelect__WEBPACK_IMPORTED_MODULE_4__["default"], {
876 url: attributes.url,
877 setAttributes: setValue
878 });
879 } else {
880 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ConnectPluginBanner__WEBPACK_IMPORTED_MODULE_3__["default"], {});
881 }
882 };
883
884 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
885 children: render()
886 });
887 };
888 }
889
890 /***/ }),
891
892 /***/ "./scripts/elementor/MeetingWidget/MeetingWidgetController.tsx":
893 /*!*********************************************************************!*\
894 !*** ./scripts/elementor/MeetingWidget/MeetingWidgetController.tsx ***!
895 \*********************************************************************/
896 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
897
898 "use strict";
899 __webpack_require__.r(__webpack_exports__);
900 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
901 /* harmony export */ "default": () => (/* binding */ MeetingWidgetController)
902 /* harmony export */ });
903 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
904 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
905 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
906 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
907 /* harmony import */ var _shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx");
908 /* harmony import */ var _shared_Meeting_MeetingEdit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/Meeting/MeetingEdit */ "./scripts/shared/Meeting/MeetingEdit.tsx");
909
910
911
912
913
914 var ConnectionStatus = {
915 Connected: 'Connected',
916 NotConnected: 'NotConnected'
917 };
918 function MeetingWidgetController(attributes, setValue) {
919 return function () {
920 var render = function render() {
921 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.connectionStatus === ConnectionStatus.Connected) {
922 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Meeting_MeetingEdit__WEBPACK_IMPORTED_MODULE_4__["default"], {
923 attributes: attributes,
924 isSelected: true,
925 setAttributes: setValue,
926 preview: false,
927 origin: "elementor"
928 });
929 } else {
930 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_3__["default"], {
931 status: 401
932 });
933 }
934 };
935
936 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
937 children: render()
938 });
939 };
940 }
941
942 /***/ }),
943
944 /***/ "./scripts/elementor/MeetingWidget/registerMeetingWidget.ts":
945 /*!******************************************************************!*\
946 !*** ./scripts/elementor/MeetingWidget/registerMeetingWidget.ts ***!
947 \******************************************************************/
948 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
949
950 "use strict";
951 __webpack_require__.r(__webpack_exports__);
952 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
953 /* harmony export */ "default": () => (/* binding */ registerMeetingsWidget)
954 /* harmony export */ });
955 /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom */ "react-dom");
956 /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_0__);
957 /* harmony import */ var _MeetingControlController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MeetingControlController */ "./scripts/elementor/MeetingWidget/MeetingControlController.tsx");
958 /* harmony import */ var _MeetingWidgetController__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MeetingWidgetController */ "./scripts/elementor/MeetingWidget/MeetingWidgetController.tsx");
959 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
960
961 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); } }
962
963 function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
964
965 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; }
966
967
968
969
970
971 var registerMeetingsWidget = /*#__PURE__*/function () {
972 function registerMeetingsWidget(controlContainer, widgetContainer, setValue) {
973 _classCallCheck(this, registerMeetingsWidget);
974
975 _defineProperty(this, "widgetContainer", void 0);
976
977 _defineProperty(this, "controlContainer", void 0);
978
979 _defineProperty(this, "setValue", void 0);
980
981 _defineProperty(this, "attributes", void 0);
982
983 var attributes = widgetContainer.dataset.attributes ? JSON.parse(widgetContainer.dataset.attributes) : {};
984 this.widgetContainer = widgetContainer;
985 this.controlContainer = controlContainer;
986 this.setValue = setValue;
987 this.attributes = attributes;
988 }
989
990 _createClass(registerMeetingsWidget, [{
991 key: "render",
992 value: function render() {
993 react_dom__WEBPACK_IMPORTED_MODULE_0___default().render((0,_MeetingWidgetController__WEBPACK_IMPORTED_MODULE_2__["default"])(this.attributes, this.setValue)(), this.widgetContainer);
994 react_dom__WEBPACK_IMPORTED_MODULE_0___default().render((0,_MeetingControlController__WEBPACK_IMPORTED_MODULE_1__["default"])(this.attributes, this.setValue)(), this.controlContainer);
995 }
996 }, {
997 key: "done",
998 value: function done() {
999 react_dom__WEBPACK_IMPORTED_MODULE_0___default().unmountComponentAtNode(this.widgetContainer);
1000 react_dom__WEBPACK_IMPORTED_MODULE_0___default().unmountComponentAtNode(this.controlContainer);
1001 }
1002 }]);
1003
1004 return registerMeetingsWidget;
1005 }();
1006
1007
1008
1009 /***/ }),
1010
1011 /***/ "./scripts/elementor/elementorWidget.ts":
1012 /*!**********************************************!*\
1013 !*** ./scripts/elementor/elementorWidget.ts ***!
1014 \**********************************************/
1015 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1016
1017 "use strict";
1018 __webpack_require__.r(__webpack_exports__);
1019 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1020 /* harmony export */ "default": () => (/* binding */ elementorWidget)
1021 /* harmony export */ });
1022 function elementorWidget(elementor, options, callback) {
1023 var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
1024 return elementor.modules.controls.BaseData.extend({
1025 onReady: function onReady() {
1026 var self = this;
1027 var controlContainer = this.ui.contentEditable.prevObject[0].querySelector(options.controlSelector);
1028 var widgetContainer = this.options.element.$el[0].querySelector(options.containerSelector);
1029
1030 if (widgetContainer) {
1031 callback(controlContainer, widgetContainer, function (args) {
1032 return self.setValue(args);
1033 });
1034 } else {
1035 //@ts-expect-error global
1036 window.elementorFrontend.hooks.addAction("frontend/element_ready/".concat(options.widgetName, ".default"), function (element) {
1037 widgetContainer = element[0].querySelector(options.containerSelector);
1038 callback(controlContainer, widgetContainer, function (args) {
1039 return self.setValue(args);
1040 });
1041 });
1042 }
1043 },
1044 saveValue: function saveValue(props) {
1045 this.setValue(props);
1046 },
1047 onBeforeDestroy: function onBeforeDestroy() {
1048 //@ts-expect-error global
1049 window.elementorFrontend.hooks.removeAction("frontend/element_ready/".concat(options.widgetName, ".default"));
1050 done();
1051 }
1052 });
1053 }
1054
1055 /***/ }),
1056
1057 /***/ "./scripts/iframe/integratedMessages/core/CoreMessages.ts":
1058 /*!****************************************************************!*\
1059 !*** ./scripts/iframe/integratedMessages/core/CoreMessages.ts ***!
1060 \****************************************************************/
1061 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1062
1063 "use strict";
1064 __webpack_require__.r(__webpack_exports__);
1065 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1066 /* harmony export */ "CoreMessages": () => (/* binding */ CoreMessages)
1067 /* harmony export */ });
1068 var CoreMessages = {
1069 HandshakeReceive: 'INTEGRATED_APP_EMBEDDER_HANDSHAKE_RECEIVED',
1070 SendRefreshToken: 'INTEGRATED_APP_EMBEDDER_SEND_REFRESH_TOKEN',
1071 ReloadParentFrame: 'INTEGRATED_APP_EMBEDDER_RELOAD_PARENT_FRAME',
1072 RedirectParentFrame: 'INTEGRATED_APP_EMBEDDER_REDIRECT_PARENT_FRAME',
1073 SendLocale: 'INTEGRATED_APP_EMBEDDER_SEND_LOCALE',
1074 SendDeviceId: 'INTEGRATED_APP_EMBEDDER_SEND_DEVICE_ID'
1075 };
1076
1077 /***/ }),
1078
1079 /***/ "./scripts/iframe/integratedMessages/forms/FormsMessages.ts":
1080 /*!******************************************************************!*\
1081 !*** ./scripts/iframe/integratedMessages/forms/FormsMessages.ts ***!
1082 \******************************************************************/
1083 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1084
1085 "use strict";
1086 __webpack_require__.r(__webpack_exports__);
1087 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1088 /* harmony export */ "FormMessages": () => (/* binding */ FormMessages)
1089 /* harmony export */ });
1090 var FormMessages = {
1091 CreateFormAppNavigation: 'CREATE_FORM_APP_NAVIGATION'
1092 };
1093
1094 /***/ }),
1095
1096 /***/ "./scripts/iframe/integratedMessages/index.ts":
1097 /*!****************************************************!*\
1098 !*** ./scripts/iframe/integratedMessages/index.ts ***!
1099 \****************************************************/
1100 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1101
1102 "use strict";
1103 __webpack_require__.r(__webpack_exports__);
1104 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1105 /* harmony export */ "CoreMessages": () => (/* reexport safe */ _core_CoreMessages__WEBPACK_IMPORTED_MODULE_0__.CoreMessages),
1106 /* harmony export */ "FormMessages": () => (/* reexport safe */ _forms_FormsMessages__WEBPACK_IMPORTED_MODULE_1__.FormMessages),
1107 /* harmony export */ "LiveChatMessages": () => (/* reexport safe */ _livechat_LiveChatMessages__WEBPACK_IMPORTED_MODULE_2__.LiveChatMessages),
1108 /* harmony export */ "PluginMessages": () => (/* reexport safe */ _plugin_PluginMessages__WEBPACK_IMPORTED_MODULE_3__.PluginMessages),
1109 /* harmony export */ "ProxyMessages": () => (/* reexport safe */ _proxy_ProxyMessages__WEBPACK_IMPORTED_MODULE_4__.ProxyMessages)
1110 /* harmony export */ });
1111 /* harmony import */ var _core_CoreMessages__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/CoreMessages */ "./scripts/iframe/integratedMessages/core/CoreMessages.ts");
1112 /* harmony import */ var _forms_FormsMessages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./forms/FormsMessages */ "./scripts/iframe/integratedMessages/forms/FormsMessages.ts");
1113 /* harmony import */ var _livechat_LiveChatMessages__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./livechat/LiveChatMessages */ "./scripts/iframe/integratedMessages/livechat/LiveChatMessages.ts");
1114 /* harmony import */ var _plugin_PluginMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./plugin/PluginMessages */ "./scripts/iframe/integratedMessages/plugin/PluginMessages.ts");
1115 /* harmony import */ var _proxy_ProxyMessages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./proxy/ProxyMessages */ "./scripts/iframe/integratedMessages/proxy/ProxyMessages.ts");
1116
1117
1118
1119
1120
1121
1122 /***/ }),
1123
1124 /***/ "./scripts/iframe/integratedMessages/livechat/LiveChatMessages.ts":
1125 /*!************************************************************************!*\
1126 !*** ./scripts/iframe/integratedMessages/livechat/LiveChatMessages.ts ***!
1127 \************************************************************************/
1128 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1129
1130 "use strict";
1131 __webpack_require__.r(__webpack_exports__);
1132 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1133 /* harmony export */ "LiveChatMessages": () => (/* binding */ LiveChatMessages)
1134 /* harmony export */ });
1135 var LiveChatMessages = {
1136 CreateLiveChatAppNavigation: 'CREATE_LIVE_CHAT_APP_NAVIGATION'
1137 };
1138
1139 /***/ }),
1140
1141 /***/ "./scripts/iframe/integratedMessages/plugin/PluginMessages.ts":
1142 /*!********************************************************************!*\
1143 !*** ./scripts/iframe/integratedMessages/plugin/PluginMessages.ts ***!
1144 \********************************************************************/
1145 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1146
1147 "use strict";
1148 __webpack_require__.r(__webpack_exports__);
1149 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1150 /* harmony export */ "PluginMessages": () => (/* binding */ PluginMessages)
1151 /* harmony export */ });
1152 var PluginMessages = {
1153 PluginSettingsNavigation: 'PLUGIN_SETTINGS_NAVIGATION',
1154 PluginLeadinConfig: 'PLUGIN_LEADIN_CONFIG',
1155 TrackConsent: 'INTEGRATED_APP_EMBEDDER_TRACK_CONSENT',
1156 InternalTrackingFetchRequest: 'INTEGRATED_TRACKING_FETCH_REQUEST',
1157 InternalTrackingFetchResponse: 'INTEGRATED_TRACKING_FETCH_RESPONSE',
1158 InternalTrackingFetchError: 'INTEGRATED_TRACKING_FETCH_ERROR',
1159 InternalTrackingChangeRequest: 'INTEGRATED_TRACKING_CHANGE_REQUEST',
1160 InternalTrackingChangeError: 'INTEGRATED_TRACKING_CHANGE_ERROR',
1161 BusinessUnitFetchRequest: 'BUSINESS_UNIT_FETCH_REQUEST',
1162 BusinessUnitFetchResponse: 'BUSINESS_UNIT_FETCH_FETCH_RESPONSE',
1163 BusinessUnitFetchError: 'BUSINESS_UNIT_FETCH_FETCH_ERROR',
1164 BusinessUnitChangeRequest: 'BUSINESS_UNIT_CHANGE_REQUEST',
1165 BusinessUnitChangeError: 'BUSINESS_UNIT_CHANGE_ERROR',
1166 SkipReviewRequest: 'SKIP_REVIEW_REQUEST',
1167 SkipReviewResponse: 'SKIP_REVIEW_RESPONSE',
1168 SkipReviewError: 'SKIP_REVIEW_ERROR',
1169 RemoveParentQueryParam: 'REMOVE_PARENT_QUERY_PARAM',
1170 ContentEmbedInstallRequest: 'CONTENT_EMBED_INSTALL_REQUEST',
1171 ContentEmbedInstallResponse: 'CONTENT_EMBED_INSTALL_RESPONSE',
1172 ContentEmbedInstallError: 'CONTENT_EMBED_INSTALL_ERROR',
1173 ContentEmbedActivationRequest: 'CONTENT_EMBED_ACTIVATION_REQUEST',
1174 ContentEmbedActivationResponse: 'CONTENT_EMBED_ACTIVATION_RESPONSE',
1175 ContentEmbedActivationError: 'CONTENT_EMBED_ACTIVATION_ERROR'
1176 };
1177
1178 /***/ }),
1179
1180 /***/ "./scripts/iframe/integratedMessages/proxy/ProxyMessages.ts":
1181 /*!******************************************************************!*\
1182 !*** ./scripts/iframe/integratedMessages/proxy/ProxyMessages.ts ***!
1183 \******************************************************************/
1184 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1185
1186 "use strict";
1187 __webpack_require__.r(__webpack_exports__);
1188 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1189 /* harmony export */ "ProxyMessages": () => (/* binding */ ProxyMessages)
1190 /* harmony export */ });
1191 var ProxyMessages = {
1192 FetchForms: 'FETCH_FORMS',
1193 FetchForm: 'FETCH_FORM',
1194 CreateFormFromTemplate: 'CREATE_FORM_FROM_TEMPLATE',
1195 FetchAuth: 'FETCH_AUTH',
1196 FetchMeetingsAndUsers: 'FETCH_MEETINGS_AND_USERS',
1197 FetchContactsCreateSinceActivation: 'FETCH_CONTACTS_CREATED_SINCE_ACTIVATION',
1198 FetchOrCreateMeetingUser: 'FETCH_OR_CREATE_MEETING_USER',
1199 ConnectMeetingsCalendar: 'CONNECT_MEETINGS_CALENDAR',
1200 TrackFormPreviewRender: 'TRACK_FORM_PREVIEW_RENDER',
1201 TrackFormCreatedFromTemplate: 'TRACK_FORM_CREATED_FROM_TEMPLATE',
1202 TrackFormCreationFailed: 'TRACK_FORM_CREATION_FAILED',
1203 TrackMeetingPreviewRender: 'TRACK_MEETING_PREVIEW_RENDER',
1204 TrackSidebarMetaChange: 'TRACK_SIDEBAR_META_CHANGE',
1205 TrackReviewBannerRender: 'TRACK_REVIEW_BANNER_RENDER',
1206 TrackReviewBannerInteraction: 'TRACK_REVIEW_BANNER_INTERACTION',
1207 TrackReviewBannerDismissed: 'TRACK_REVIEW_BANNER_DISMISSED',
1208 TrackPluginDeactivation: 'TRACK_PLUGIN_DEACTIVATION'
1209 };
1210
1211 /***/ }),
1212
1213 /***/ "./scripts/iframe/useBackgroundApp.ts":
1214 /*!********************************************!*\
1215 !*** ./scripts/iframe/useBackgroundApp.ts ***!
1216 \********************************************/
1217 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1218
1219 "use strict";
1220 __webpack_require__.r(__webpack_exports__);
1221 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1222 /* harmony export */ "BackgroudAppContext": () => (/* binding */ BackgroudAppContext),
1223 /* harmony export */ "useBackgroundAppContext": () => (/* binding */ useBackgroundAppContext),
1224 /* harmony export */ "usePostAsyncBackgroundMessage": () => (/* binding */ usePostAsyncBackgroundMessage),
1225 /* harmony export */ "usePostBackgroundMessage": () => (/* binding */ usePostBackgroundMessage)
1226 /* harmony export */ });
1227 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1228 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1229
1230 var BackgroudAppContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
1231 function useBackgroundAppContext() {
1232 return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(BackgroudAppContext);
1233 }
1234 function usePostBackgroundMessage() {
1235 var app = useBackgroundAppContext();
1236 return function (message) {
1237 app.postMessage(message);
1238 };
1239 }
1240 function usePostAsyncBackgroundMessage() {
1241 var app = useBackgroundAppContext();
1242 return function (message) {
1243 return app.postAsyncMessage(message);
1244 };
1245 }
1246
1247 /***/ }),
1248
1249 /***/ "./scripts/lib/Raven.ts":
1250 /*!******************************!*\
1251 !*** ./scripts/lib/Raven.ts ***!
1252 \******************************/
1253 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1254
1255 "use strict";
1256 __webpack_require__.r(__webpack_exports__);
1257 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1258 /* harmony export */ "configureRaven": () => (/* binding */ configureRaven),
1259 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1260 /* harmony export */ });
1261 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! raven-js */ "./node_modules/raven-js/src/singleton.js");
1262 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(raven_js__WEBPACK_IMPORTED_MODULE_0__);
1263 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1264
1265
1266 function configureRaven() {
1267 if (_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.hubspotBaseUrl.indexOf('app.hubspot.com') === -1) {
1268 return;
1269 }
1270
1271 raven_js__WEBPACK_IMPORTED_MODULE_0___default().config('https://e9b8f382cdd130c0d415cd977d2be56f@exceptions.hubspot.com/1', {
1272 instrument: {
1273 tryCatch: false
1274 },
1275 release: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.leadinPluginVersion
1276 }).install();
1277 raven_js__WEBPACK_IMPORTED_MODULE_0___default().setTagsContext({
1278 v: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.leadinPluginVersion,
1279 php: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.phpVersion,
1280 wordpress: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.wpVersion
1281 });
1282 raven_js__WEBPACK_IMPORTED_MODULE_0___default().setExtraContext({
1283 hub: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.portalId,
1284 plugins: Object.keys(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.plugins).map(function (name) {
1285 return "".concat(name, "#").concat(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.plugins[name]);
1286 }).join(',')
1287 });
1288 }
1289 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((raven_js__WEBPACK_IMPORTED_MODULE_0___default()));
1290
1291 /***/ }),
1292
1293 /***/ "./scripts/shared/Common/AsyncSelect.tsx":
1294 /*!***********************************************!*\
1295 !*** ./scripts/shared/Common/AsyncSelect.tsx ***!
1296 \***********************************************/
1297 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1298
1299 "use strict";
1300 __webpack_require__.r(__webpack_exports__);
1301 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1302 /* harmony export */ "default": () => (/* binding */ AsyncSelect)
1303 /* harmony export */ });
1304 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1305 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1306 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1307 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
1308 /* harmony import */ var _UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/colors */ "./scripts/shared/UIComponents/colors.ts");
1309 /* harmony import */ var _UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx");
1310 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../enums/loadState */ "./scripts/shared/enums/loadState.ts");
1311 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
1312
1313 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."); }
1314
1315 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); }
1316
1317 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; }
1318
1319 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; }
1320
1321 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
1322
1323
1324
1325
1326
1327
1328
1329 var Container = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1330 name: "Container",
1331 "class": "c1wxx7eu",
1332 propsAsIs: false
1333 });
1334
1335 var _exp2 = /*#__PURE__*/function _exp2() {
1336 return function (props) {
1337 return props.focused ? '0' : '1px';
1338 };
1339 };
1340
1341 var _exp3 = /*#__PURE__*/function _exp3() {
1342 return function (props) {
1343 return props.focused ? "0 0 0 2px ".concat(_UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__.CALYPSO_MEDIUM) : 'none';
1344 };
1345 };
1346
1347 var ControlContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1348 name: "ControlContainer",
1349 "class": "c1rgwbep",
1350 propsAsIs: false,
1351 vars: {
1352 "c1rgwbep-0": [_exp2()],
1353 "c1rgwbep-1": [_exp3()]
1354 }
1355 });
1356 var ValueContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1357 name: "ValueContainer",
1358 "class": "v1mdmbaj",
1359 propsAsIs: false
1360 });
1361 var Placeholder = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1362 name: "Placeholder",
1363 "class": "p1gwkvxy",
1364 propsAsIs: false
1365 });
1366 var SingleValue = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1367 name: "SingleValue",
1368 "class": "s1bwlafs",
1369 propsAsIs: false
1370 });
1371 var IndicatorContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1372 name: "IndicatorContainer",
1373 "class": "i196z9y5",
1374 propsAsIs: false
1375 });
1376 var DropdownIndicator = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1377 name: "DropdownIndicator",
1378 "class": "d1dfo5ow",
1379 propsAsIs: false
1380 });
1381 var InputContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1382 name: "InputContainer",
1383 "class": "if3lze",
1384 propsAsIs: false
1385 });
1386 var Input = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('input')({
1387 name: "Input",
1388 "class": "i9kxf50",
1389 propsAsIs: false
1390 });
1391 var InputShadow = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1392 name: "InputShadow",
1393 "class": "igjr3uc",
1394 propsAsIs: false
1395 });
1396 var MenuContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1397 name: "MenuContainer",
1398 "class": "mhb9if7",
1399 propsAsIs: false
1400 });
1401 var MenuList = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1402 name: "MenuList",
1403 "class": "mxaof7s",
1404 propsAsIs: false
1405 });
1406 var MenuGroup = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1407 name: "MenuGroup",
1408 "class": "mw50s5v",
1409 propsAsIs: false
1410 });
1411 var MenuGroupHeader = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1412 name: "MenuGroupHeader",
1413 "class": "m11rzvjw",
1414 propsAsIs: false
1415 });
1416
1417 var _exp5 = /*#__PURE__*/function _exp5() {
1418 return function (props) {
1419 return props.selected ? _UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__.CALYPSO_MEDIUM : 'transparent';
1420 };
1421 };
1422
1423 var _exp6 = /*#__PURE__*/function _exp6() {
1424 return function (props) {
1425 return props.selected ? '#fff' : 'inherit';
1426 };
1427 };
1428
1429 var _exp7 = /*#__PURE__*/function _exp7() {
1430 return function (props) {
1431 return props.selected ? _UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__.CALYPSO_MEDIUM : _UIComponents_colors__WEBPACK_IMPORTED_MODULE_2__.CALYPSO_LIGHT;
1432 };
1433 };
1434
1435 var MenuItem = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_5__.styled)('div')({
1436 name: "MenuItem",
1437 "class": "m1jcdsjv",
1438 propsAsIs: false,
1439 vars: {
1440 "m1jcdsjv-0": [_exp5()],
1441 "m1jcdsjv-1": [_exp6()],
1442 "m1jcdsjv-2": [_exp7()]
1443 }
1444 });
1445 function AsyncSelect(_ref) {
1446 var placeholder = _ref.placeholder,
1447 value = _ref.value,
1448 loadOptions = _ref.loadOptions,
1449 onChange = _ref.onChange,
1450 defaultOptions = _ref.defaultOptions;
1451 var inputEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
1452 var inputShadowEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
1453
1454 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
1455 _useState2 = _slicedToArray(_useState, 2),
1456 isFocused = _useState2[0],
1457 setFocus = _useState2[1];
1458
1459 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(_enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].NotLoaded),
1460 _useState4 = _slicedToArray(_useState3, 2),
1461 loadState = _useState4[0],
1462 setLoadState = _useState4[1];
1463
1464 var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
1465 _useState6 = _slicedToArray(_useState5, 2),
1466 localValue = _useState6[0],
1467 setLocalValue = _useState6[1];
1468
1469 var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(defaultOptions),
1470 _useState8 = _slicedToArray(_useState7, 2),
1471 options = _useState8[0],
1472 setOptions = _useState8[1];
1473
1474 var inputSize = "".concat(inputShadowEl.current ? inputShadowEl.current.clientWidth + 10 : 2, "px");
1475 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
1476 if (loadOptions && loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].NotLoaded) {
1477 loadOptions('', function (result) {
1478 setOptions(result);
1479 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].Idle);
1480 });
1481 }
1482 }, [loadOptions, loadState]);
1483
1484 var renderItems = function renderItems() {
1485 var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1486 var parentKey = arguments.length > 1 ? arguments[1] : undefined;
1487 return items.map(function (item, index) {
1488 if (item.options) {
1489 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(MenuGroup, {
1490 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MenuGroupHeader, {
1491 id: "".concat(index, "-heading"),
1492 children: item.label
1493 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1494 children: renderItems(item.options, index)
1495 })]
1496 }, "async-select-item-".concat(index));
1497 } else {
1498 var key = "async-select-item-".concat(parentKey !== undefined ? "".concat(parentKey, "-").concat(index) : index);
1499 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MenuItem, {
1500 id: key,
1501 selected: value && item.value === value.value,
1502 onClick: function onClick() {
1503 onChange(item);
1504 setFocus(false);
1505 },
1506 children: item.label
1507 }, key);
1508 }
1509 });
1510 };
1511
1512 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Container, {
1513 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(ControlContainer, {
1514 id: "leadin-async-selector",
1515 focused: isFocused,
1516 onClick: function onClick() {
1517 if (isFocused) {
1518 if (inputEl.current) {
1519 inputEl.current.blur();
1520 }
1521
1522 setFocus(false);
1523 setLocalValue('');
1524 } else {
1525 if (inputEl.current) {
1526 inputEl.current.focus();
1527 }
1528
1529 setFocus(true);
1530 }
1531 },
1532 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(ValueContainer, {
1533 children: [localValue === '' && (!value ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Placeholder, {
1534 children: placeholder
1535 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SingleValue, {
1536 children: value.label
1537 })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(InputContainer, {
1538 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Input, {
1539 ref: inputEl,
1540 onFocus: function onFocus() {
1541 setFocus(true);
1542 },
1543 onChange: function onChange(e) {
1544 setLocalValue(e.target.value);
1545 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].Loading);
1546 loadOptions && loadOptions(e.target.value, function (result) {
1547 setOptions(result);
1548 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_4__["default"].Idle);
1549 });
1550 },
1551 value: localValue,
1552 width: inputSize,
1553 id: "asycn-select-input"
1554 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(InputShadow, {
1555 ref: inputShadowEl,
1556 children: localValue
1557 })]
1558 })]
1559 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(IndicatorContainer, {
1560 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, {})]
1561 })]
1562 }), isFocused && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MenuContainer, {
1563 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MenuList, {
1564 children: renderItems(options)
1565 })
1566 })]
1567 });
1568 }
1569
1570 __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");
1571
1572 /***/ }),
1573
1574 /***/ "./scripts/shared/Common/ErrorHandler.tsx":
1575 /*!************************************************!*\
1576 !*** ./scripts/shared/Common/ErrorHandler.tsx ***!
1577 \************************************************/
1578 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1579
1580 "use strict";
1581 __webpack_require__.r(__webpack_exports__);
1582 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1583 /* harmony export */ "default": () => (/* binding */ ErrorHandler)
1584 /* harmony export */ });
1585 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1586 /* harmony import */ var _UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../UIComponents/UIButton */ "./scripts/shared/UIComponents/UIButton.ts");
1587 /* harmony import */ var _UIComponents_UIContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIContainer */ "./scripts/shared/UIComponents/UIContainer.ts");
1588 /* harmony import */ var _HubspotWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HubspotWrapper */ "./scripts/shared/Common/HubspotWrapper.ts");
1589 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1590 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1591 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);
1592
1593
1594
1595
1596
1597
1598
1599
1600 function redirectToPlugin() {
1601 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);
1602 }
1603
1604 function ErrorHandler(_ref) {
1605 var status = _ref.status,
1606 resetErrorState = _ref.resetErrorState,
1607 _ref$errorInfo = _ref.errorInfo,
1608 errorInfo = _ref$errorInfo === void 0 ? {
1609 header: '',
1610 message: '',
1611 action: ''
1612 } : _ref$errorInfo;
1613 var isUnauthorized = status === 401 || status === 403;
1614 var errorHeader = isUnauthorized ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Your plugin isn't authorized", 'leadin') : errorInfo.header;
1615 var errorMessage = isUnauthorized ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Reauthorize your plugin to access your free HubSpot tools', 'leadin') : errorInfo.message;
1616 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HubspotWrapper__WEBPACK_IMPORTED_MODULE_3__["default"], {
1617 pluginPath: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__.pluginPath,
1618 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_UIComponents_UIContainer__WEBPACK_IMPORTED_MODULE_2__["default"], {
1619 textAlign: "center",
1620 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4", {
1621 children: errorHeader
1622 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
1623 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
1624 children: errorMessage
1625 })
1626 }), isUnauthorized ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_1__["default"], {
1627 "data-test-id": "authorize-button",
1628 onClick: redirectToPlugin,
1629 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Go to plugin', 'leadin')
1630 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_1__["default"], {
1631 "data-test-id": "retry-button",
1632 onClick: resetErrorState,
1633 children: errorInfo.action
1634 })]
1635 })
1636 });
1637 }
1638
1639 /***/ }),
1640
1641 /***/ "./scripts/shared/Common/HubspotWrapper.ts":
1642 /*!*************************************************!*\
1643 !*** ./scripts/shared/Common/HubspotWrapper.ts ***!
1644 \*************************************************/
1645 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1646
1647 "use strict";
1648 __webpack_require__.r(__webpack_exports__);
1649 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1650 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1651 /* harmony export */ });
1652 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
1653
1654
1655 var _exp = /*#__PURE__*/function _exp() {
1656 return function (props) {
1657 return "url(".concat(props.pluginPath, "/public/assets/images/hubspot.svg)");
1658 };
1659 };
1660
1661 var _exp2 = /*#__PURE__*/function _exp2() {
1662 return function (props) {
1663 return props.padding || '90px 20% 25px';
1664 };
1665 };
1666
1667 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_0__.styled)('div')({
1668 name: "HubspotWrapper0",
1669 "class": "h1q5v5ee",
1670 propsAsIs: false,
1671 vars: {
1672 "h1q5v5ee-0": [_exp()],
1673 "h1q5v5ee-1": [_exp2()]
1674 }
1675 }));
1676
1677 __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");
1678
1679 /***/ }),
1680
1681 /***/ "./scripts/shared/Common/LoadingBlock.tsx":
1682 /*!************************************************!*\
1683 !*** ./scripts/shared/Common/LoadingBlock.tsx ***!
1684 \************************************************/
1685 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1686
1687 "use strict";
1688 __webpack_require__.r(__webpack_exports__);
1689 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1690 /* harmony export */ "default": () => (/* binding */ LoadingBlock)
1691 /* harmony export */ });
1692 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1693 /* harmony import */ var _HubspotWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HubspotWrapper */ "./scripts/shared/Common/HubspotWrapper.ts");
1694 /* harmony import */ var _UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx");
1695 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1696
1697
1698
1699
1700 function LoadingBlock() {
1701 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HubspotWrapper__WEBPACK_IMPORTED_MODULE_1__["default"], {
1702 pluginPath: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__.pluginPath,
1703 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_2__["default"], {
1704 size: 50
1705 })
1706 });
1707 }
1708
1709 /***/ }),
1710
1711 /***/ "./scripts/shared/Form/FormEdit.tsx":
1712 /*!******************************************!*\
1713 !*** ./scripts/shared/Form/FormEdit.tsx ***!
1714 \******************************************/
1715 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1716
1717 "use strict";
1718 __webpack_require__.r(__webpack_exports__);
1719 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1720 /* harmony export */ "default": () => (/* binding */ FormEditContainer)
1721 /* harmony export */ });
1722 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1723 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1724 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1725 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1726 /* harmony import */ var _UIComponents_UISpacer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../UIComponents/UISpacer */ "./scripts/shared/UIComponents/UISpacer.ts");
1727 /* harmony import */ var _PreviewForm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PreviewForm */ "./scripts/shared/Form/PreviewForm.tsx");
1728 /* harmony import */ var _FormSelect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FormSelect */ "./scripts/shared/Form/FormSelect.tsx");
1729 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
1730 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
1731 /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx");
1732 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
1733 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; }
1734
1735 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; }
1736
1737 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; }
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750 function FormEdit(_ref) {
1751 var attributes = _ref.attributes,
1752 isSelected = _ref.isSelected,
1753 setAttributes = _ref.setAttributes,
1754 _ref$preview = _ref.preview,
1755 preview = _ref$preview === void 0 ? true : _ref$preview,
1756 _ref$origin = _ref.origin,
1757 origin = _ref$origin === void 0 ? 'gutenberg' : _ref$origin;
1758 var formId = attributes.formId,
1759 formName = attributes.formName;
1760 var formSelected = _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId && formId;
1761 var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.useBackgroundAppContext)();
1762 var monitorFormPreviewRender = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.usePostBackgroundMessage)();
1763
1764 var handleChange = function handleChange(selectedForm) {
1765 setAttributes({
1766 portalId: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId,
1767 formId: selectedForm.value,
1768 formName: selectedForm.label
1769 });
1770 };
1771
1772 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
1773 monitorFormPreviewRender({
1774 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__.ProxyMessages.TrackFormPreviewRender,
1775 payload: {
1776 origin: origin
1777 }
1778 });
1779 }, [origin]);
1780 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, {
1781 children: [(isSelected || !formSelected) && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FormSelect__WEBPACK_IMPORTED_MODULE_5__["default"], {
1782 formId: formId,
1783 formName: formName,
1784 handleChange: handleChange,
1785 origin: origin
1786 }), formSelected && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
1787 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"], {
1788 portalId: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId,
1789 formId: formId
1790 })]
1791 })]
1792 });
1793 }
1794
1795 function FormEditContainer(props) {
1796 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.BackgroudAppContext.Provider, {
1797 value: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.refreshToken && (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_9__.getOrCreateBackgroundApp)(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.refreshToken),
1798 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(FormEdit, _objectSpread({}, props))
1799 });
1800 }
1801
1802 /***/ }),
1803
1804 /***/ "./scripts/shared/Form/FormSelect.tsx":
1805 /*!********************************************!*\
1806 !*** ./scripts/shared/Form/FormSelect.tsx ***!
1807 \********************************************/
1808 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1809
1810 "use strict";
1811 __webpack_require__.r(__webpack_exports__);
1812 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1813 /* harmony export */ "default": () => (/* binding */ FormSelect)
1814 /* harmony export */ });
1815 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1816 /* harmony import */ var _FormSelector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormSelector */ "./scripts/shared/Form/FormSelector.tsx");
1817 /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx");
1818 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1819 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
1820 /* harmony import */ var _hooks_useForms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks/useForms */ "./scripts/shared/Form/hooks/useForms.ts");
1821 /* harmony import */ var _hooks_useCreateFormFromTemplate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks/useCreateFormFromTemplate */ "./scripts/shared/Form/hooks/useCreateFormFromTemplate.ts");
1822 /* harmony import */ var _constants_defaultFormOptions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../constants/defaultFormOptions */ "./scripts/constants/defaultFormOptions.ts");
1823 /* harmony import */ var _Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx");
1824
1825
1826
1827
1828
1829
1830
1831
1832 function FormSelect(_ref) {
1833 var formId = _ref.formId,
1834 formName = _ref.formName,
1835 handleChange = _ref.handleChange,
1836 _ref$origin = _ref.origin,
1837 origin = _ref$origin === void 0 ? 'gutenberg' : _ref$origin;
1838
1839 var _useForms = (0,_hooks_useForms__WEBPACK_IMPORTED_MODULE_4__["default"])(),
1840 search = _useForms.search,
1841 formApiError = _useForms.formApiError,
1842 reset = _useForms.reset;
1843
1844 var _useCreateFormFromTem = (0,_hooks_useCreateFormFromTemplate__WEBPACK_IMPORTED_MODULE_5__["default"])(origin),
1845 createFormByTemplate = _useCreateFormFromTem.createFormByTemplate,
1846 createReset = _useCreateFormFromTem.reset,
1847 isCreating = _useCreateFormFromTem.isCreating,
1848 hasError = _useCreateFormFromTem.hasError,
1849 createApiError = _useCreateFormFromTem.formApiError;
1850
1851 var value = formId && formName ? {
1852 label: formName,
1853 value: formId
1854 } : null;
1855
1856 var handleLocalChange = function handleLocalChange(option) {
1857 if ((0,_constants_defaultFormOptions__WEBPACK_IMPORTED_MODULE_6__.isDefaultForm)(option.value)) {
1858 createFormByTemplate(option.value).then(function (_ref2) {
1859 var guid = _ref2.guid,
1860 name = _ref2.name;
1861 handleChange({
1862 value: guid,
1863 label: name
1864 });
1865 });
1866 } else {
1867 handleChange(option);
1868 }
1869 };
1870
1871 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"], {
1872 status: formApiError ? formApiError.status : createApiError.status,
1873 resetErrorState: function resetErrorState() {
1874 if (hasError) {
1875 createReset();
1876 } else {
1877 reset();
1878 }
1879 },
1880 errorInfo: {
1881 header: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('There was a problem retrieving your forms', 'leadin'),
1882 message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Please refresh your forms or try again in a few minutes', 'leadin'),
1883 action: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Refresh forms', 'leadin')
1884 }
1885 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FormSelector__WEBPACK_IMPORTED_MODULE_1__["default"], {
1886 loadOptions: search,
1887 onChange: function onChange(option) {
1888 return handleLocalChange(option);
1889 },
1890 value: value
1891 });
1892 }
1893
1894 /***/ }),
1895
1896 /***/ "./scripts/shared/Form/FormSelector.tsx":
1897 /*!**********************************************!*\
1898 !*** ./scripts/shared/Form/FormSelector.tsx ***!
1899 \**********************************************/
1900 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1901
1902 "use strict";
1903 __webpack_require__.r(__webpack_exports__);
1904 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1905 /* harmony export */ "default": () => (/* binding */ FormSelector)
1906 /* harmony export */ });
1907 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1908 /* harmony import */ var _Common_HubspotWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Common/HubspotWrapper */ "./scripts/shared/Common/HubspotWrapper.ts");
1909 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1910 /* harmony import */ var _Common_AsyncSelect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/AsyncSelect */ "./scripts/shared/Common/AsyncSelect.tsx");
1911 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1912 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
1913
1914
1915
1916
1917
1918 function FormSelector(_ref) {
1919 var loadOptions = _ref.loadOptions,
1920 onChange = _ref.onChange,
1921 value = _ref.value;
1922 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Common_HubspotWrapper__WEBPACK_IMPORTED_MODULE_1__["default"], {
1923 pluginPath: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.pluginPath,
1924 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
1925 "data-test-id": "leadin-form-select",
1926 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
1927 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Select an existing form or create a new one from a template', 'leadin')
1928 })
1929 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_AsyncSelect__WEBPACK_IMPORTED_MODULE_3__["default"], {
1930 placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Search for a form', 'leadin'),
1931 value: value,
1932 loadOptions: loadOptions,
1933 onChange: onChange
1934 })]
1935 });
1936 }
1937
1938 /***/ }),
1939
1940 /***/ "./scripts/shared/Form/PreviewForm.tsx":
1941 /*!*********************************************!*\
1942 !*** ./scripts/shared/Form/PreviewForm.tsx ***!
1943 \*********************************************/
1944 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1945
1946 "use strict";
1947 __webpack_require__.r(__webpack_exports__);
1948 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1949 /* harmony export */ "default": () => (/* binding */ PreviewForm)
1950 /* harmony export */ });
1951 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
1952 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1953 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1954 /* harmony import */ var _UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIOverlay */ "./scripts/shared/UIComponents/UIOverlay.ts");
1955 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
1956 /* harmony import */ var _hooks_useFormsScript__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hooks/useFormsScript */ "./scripts/shared/Form/hooks/useFormsScript.ts");
1957
1958
1959
1960
1961
1962 function PreviewForm(_ref) {
1963 var portalId = _ref.portalId,
1964 formId = _ref.formId;
1965 var inputEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
1966 var ready = (0,_hooks_useFormsScript__WEBPACK_IMPORTED_MODULE_4__["default"])();
1967 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
1968 if (!ready) {
1969 return;
1970 }
1971
1972 if (inputEl.current) {
1973 inputEl.current.innerHTML = '';
1974 var embedScript = document.createElement('script');
1975 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, " });");
1976 inputEl.current.appendChild(embedScript);
1977 }
1978 }, [formId, portalId, ready, inputEl]);
1979 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__["default"], {
1980 ref: inputEl
1981 });
1982 }
1983
1984 /***/ }),
1985
1986 /***/ "./scripts/shared/Form/hooks/useCreateFormFromTemplate.ts":
1987 /*!****************************************************************!*\
1988 !*** ./scripts/shared/Form/hooks/useCreateFormFromTemplate.ts ***!
1989 \****************************************************************/
1990 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1991
1992 "use strict";
1993 __webpack_require__.r(__webpack_exports__);
1994 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1995 /* harmony export */ "default": () => (/* binding */ useCreateFormFromTemplate)
1996 /* harmony export */ });
1997 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1998 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1999 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2000 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../enums/loadState */ "./scripts/shared/enums/loadState.ts");
2001 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2002 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2003
2004 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."); }
2005
2006 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); }
2007
2008 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; }
2009
2010 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; }
2011
2012 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2013
2014
2015
2016
2017
2018 function useCreateFormFromTemplate() {
2019 var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'gutenberg';
2020 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.usePostAsyncBackgroundMessage)();
2021 var track = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.usePostBackgroundMessage)();
2022
2023 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Idle),
2024 _useState2 = _slicedToArray(_useState, 2),
2025 loadState = _useState2[0],
2026 setLoadState = _useState2[1];
2027
2028 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
2029 _useState4 = _slicedToArray(_useState3, 2),
2030 formApiError = _useState4[0],
2031 setFormApiError = _useState4[1];
2032
2033 var createFormByTemplate = function createFormByTemplate(type) {
2034 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loading);
2035 track({
2036 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.TrackFormCreatedFromTemplate,
2037 payload: {
2038 type: type,
2039 origin: origin
2040 }
2041 });
2042 return proxy({
2043 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.CreateFormFromTemplate,
2044 payload: type
2045 }).then(function (form) {
2046 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Idle);
2047 return form;
2048 })["catch"](function (err) {
2049 setFormApiError(err);
2050 track({
2051 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.TrackFormCreationFailed,
2052 payload: {
2053 origin: origin
2054 }
2055 });
2056 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Failed);
2057 });
2058 };
2059
2060 return {
2061 isCreating: loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loading,
2062 hasError: loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Failed,
2063 formApiError: formApiError,
2064 createFormByTemplate: createFormByTemplate,
2065 reset: function reset() {
2066 return setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Idle);
2067 }
2068 };
2069 }
2070
2071 /***/ }),
2072
2073 /***/ "./scripts/shared/Form/hooks/useForms.ts":
2074 /*!***********************************************!*\
2075 !*** ./scripts/shared/Form/hooks/useForms.ts ***!
2076 \***********************************************/
2077 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2078
2079 "use strict";
2080 __webpack_require__.r(__webpack_exports__);
2081 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2082 /* harmony export */ "default": () => (/* binding */ useForms)
2083 /* harmony export */ });
2084 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2085 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2086 /* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/debounce */ "./node_modules/lodash/debounce.js");
2087 /* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
2088 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2089 /* harmony import */ var _constants_defaultFormOptions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../constants/defaultFormOptions */ "./scripts/constants/defaultFormOptions.ts");
2090 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2091 function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2092
2093 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."); }
2094
2095 function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
2096
2097 function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
2098
2099 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2100
2101 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."); }
2102
2103 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); }
2104
2105 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; }
2106
2107 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; }
2108
2109 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2110
2111
2112
2113
2114
2115
2116 function useForms() {
2117 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_2__.usePostAsyncBackgroundMessage)();
2118
2119 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
2120 _useState2 = _slicedToArray(_useState, 2),
2121 formApiError = _useState2[0],
2122 setFormApiError = _useState2[1];
2123
2124 var search = lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(function (search, callback) {
2125 return proxy({
2126 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_4__.ProxyMessages.FetchForms,
2127 payload: {
2128 search: search
2129 }
2130 }).then(function (forms) {
2131 callback([].concat(_toConsumableArray(forms.map(function (form) {
2132 return {
2133 label: form.name,
2134 value: form.guid
2135 };
2136 })), [_constants_defaultFormOptions__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_OPTIONS]));
2137 })["catch"](function (error) {
2138 setFormApiError(error);
2139 });
2140 }, 300, {
2141 trailing: true
2142 });
2143 return {
2144 search: search,
2145 formApiError: formApiError,
2146 reset: function reset() {
2147 return setFormApiError(null);
2148 }
2149 };
2150 }
2151
2152 /***/ }),
2153
2154 /***/ "./scripts/shared/Form/hooks/useFormsScript.ts":
2155 /*!*****************************************************!*\
2156 !*** ./scripts/shared/Form/hooks/useFormsScript.ts ***!
2157 \*****************************************************/
2158 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2159
2160 "use strict";
2161 __webpack_require__.r(__webpack_exports__);
2162 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2163 /* harmony export */ "default": () => (/* binding */ useFormScript)
2164 /* harmony export */ });
2165 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
2166 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
2167 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2168 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2169 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
2170 /* harmony import */ var _lib_Raven__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../lib/Raven */ "./scripts/lib/Raven.ts");
2171 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2172
2173 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."); }
2174
2175 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); }
2176
2177 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; }
2178
2179 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; }
2180
2181 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2182
2183
2184
2185
2186
2187 var promise;
2188
2189 function loadFormsScript() {
2190 if (!promise) {
2191 promise = new Promise(function (resolve, reject) {
2192 return jquery__WEBPACK_IMPORTED_MODULE_0___default().getScript(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.formsScript).done(resolve).fail(reject);
2193 });
2194 }
2195
2196 return promise;
2197 }
2198
2199 function useFormScript() {
2200 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
2201 _useState2 = _slicedToArray(_useState, 2),
2202 ready = _useState2[0],
2203 setReady = _useState2[1];
2204
2205 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2206 loadFormsScript().then(function () {
2207 return setReady(true);
2208 })["catch"](function (error) {
2209 return _lib_Raven__WEBPACK_IMPORTED_MODULE_3__["default"].captureException(error);
2210 });
2211 }, []);
2212 return ready;
2213 }
2214
2215 /***/ }),
2216
2217 /***/ "./scripts/shared/Meeting/MeetingController.tsx":
2218 /*!******************************************************!*\
2219 !*** ./scripts/shared/Meeting/MeetingController.tsx ***!
2220 \******************************************************/
2221 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2222
2223 "use strict";
2224 __webpack_require__.r(__webpack_exports__);
2225 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2226 /* harmony export */ "default": () => (/* binding */ MeetingController)
2227 /* harmony export */ });
2228 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2229 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2230 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2231 /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx");
2232 /* harmony import */ var _MeetingSelector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MeetingSelector */ "./scripts/shared/Meeting/MeetingSelector.tsx");
2233 /* harmony import */ var _MeetingWarning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./MeetingWarning */ "./scripts/shared/Meeting/MeetingWarning.tsx");
2234 /* harmony import */ var _hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks/useMeetings */ "./scripts/shared/Meeting/hooks/useMeetings.ts");
2235 /* harmony import */ var _Common_HubspotWrapper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Common/HubspotWrapper */ "./scripts/shared/Common/HubspotWrapper.ts");
2236 /* harmony import */ var _Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx");
2237 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
2238 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2239 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__);
2240 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! raven-js */ "./node_modules/raven-js/src/singleton.js");
2241 /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(raven_js__WEBPACK_IMPORTED_MODULE_10__);
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253 function MeetingController(_ref) {
2254 var handleChange = _ref.handleChange,
2255 url = _ref.url;
2256
2257 var _useMeetings = (0,_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__["default"])(),
2258 meetings = _useMeetings.mappedMeetings,
2259 loading = _useMeetings.loading,
2260 error = _useMeetings.error,
2261 reload = _useMeetings.reload,
2262 connectCalendar = _useMeetings.connectCalendar;
2263
2264 var selectedMeetingOption = (0,_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__.useSelectedMeeting)(url);
2265 var selectedMeetingCalendar = (0,_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__.useSelectedMeetingCalendar)(url);
2266 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2267 if (!url && meetings.length > 0) {
2268 handleChange(meetings[0].value);
2269 }
2270 }, [meetings, url, handleChange]);
2271
2272 var handleLocalChange = function handleLocalChange(option) {
2273 handleChange(option.value);
2274 };
2275
2276 var handleConnectCalendar = function handleConnectCalendar() {
2277 return connectCalendar().then(function () {
2278 reload();
2279 })["catch"](function (error) {
2280 raven_js__WEBPACK_IMPORTED_MODULE_10___default().captureMessage('Unable to connect calendar', {
2281 extra: {
2282 error: error
2283 }
2284 });
2285 });
2286 };
2287
2288 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
2289 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"], {
2290 status: error && error.status || error,
2291 resetErrorState: function resetErrorState() {
2292 return reload();
2293 },
2294 errorInfo: {
2295 header: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('There was a problem retrieving your meetings', 'leadin'),
2296 message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Please refresh your meetings or try again in a few minutes', 'leadin'),
2297 action: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Refresh meetings', 'leadin')
2298 }
2299 }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Common_HubspotWrapper__WEBPACK_IMPORTED_MODULE_6__["default"], {
2300 padding: "90px 32px 24px",
2301 pluginPath: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_8__.pluginPath,
2302 children: [selectedMeetingCalendar && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_MeetingWarning__WEBPACK_IMPORTED_MODULE_4__["default"], {
2303 status: selectedMeetingCalendar,
2304 onConnectCalendar: handleConnectCalendar
2305 }), meetings.length > 1 && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_MeetingSelector__WEBPACK_IMPORTED_MODULE_3__["default"], {
2306 onChange: handleLocalChange,
2307 options: meetings,
2308 value: selectedMeetingOption
2309 })]
2310 })
2311 });
2312 }
2313
2314 /***/ }),
2315
2316 /***/ "./scripts/shared/Meeting/MeetingEdit.tsx":
2317 /*!************************************************!*\
2318 !*** ./scripts/shared/Meeting/MeetingEdit.tsx ***!
2319 \************************************************/
2320 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2321
2322 "use strict";
2323 __webpack_require__.r(__webpack_exports__);
2324 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2325 /* harmony export */ "default": () => (/* binding */ MeetingsEditContainer)
2326 /* harmony export */ });
2327 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2328 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2329 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2330 /* harmony import */ var _MeetingController__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MeetingController */ "./scripts/shared/Meeting/MeetingController.tsx");
2331 /* harmony import */ var _PreviewMeeting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PreviewMeeting */ "./scripts/shared/Meeting/PreviewMeeting.tsx");
2332 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2333 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
2334 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2335 /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx");
2336 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
2337 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; }
2338
2339 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; }
2340
2341 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; }
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353 function MeetingEdit(_ref) {
2354 var url = _ref.attributes.url,
2355 isSelected = _ref.isSelected,
2356 setAttributes = _ref.setAttributes,
2357 _ref$preview = _ref.preview,
2358 preview = _ref$preview === void 0 ? true : _ref$preview,
2359 _ref$origin = _ref.origin,
2360 origin = _ref$origin === void 0 ? 'gutenberg' : _ref$origin;
2361 var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__.useBackgroundAppContext)();
2362 var monitorFormPreviewRender = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__.usePostBackgroundMessage)();
2363
2364 var handleChange = function handleChange(newUrl) {
2365 setAttributes({
2366 url: newUrl
2367 });
2368 };
2369
2370 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2371 monitorFormPreviewRender({
2372 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_6__.ProxyMessages.TrackMeetingPreviewRender,
2373 payload: {
2374 origin: origin
2375 }
2376 });
2377 }, [origin]);
2378 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, {
2379 children: [(isSelected || !url) && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_MeetingController__WEBPACK_IMPORTED_MODULE_2__["default"], {
2380 url: url,
2381 handleChange: handleChange
2382 }), preview && url && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PreviewMeeting__WEBPACK_IMPORTED_MODULE_3__["default"], {
2383 url: url
2384 })]
2385 });
2386 }
2387
2388 function MeetingsEditContainer(props) {
2389 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__.BackgroudAppContext.Provider, {
2390 value: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_5__.refreshToken && (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_8__.getOrCreateBackgroundApp)(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_5__.refreshToken),
2391 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeetingEdit, _objectSpread({}, props))
2392 });
2393 }
2394
2395 /***/ }),
2396
2397 /***/ "./scripts/shared/Meeting/MeetingSelector.tsx":
2398 /*!****************************************************!*\
2399 !*** ./scripts/shared/Meeting/MeetingSelector.tsx ***!
2400 \****************************************************/
2401 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2402
2403 "use strict";
2404 __webpack_require__.r(__webpack_exports__);
2405 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2406 /* harmony export */ "default": () => (/* binding */ MeetingSelector)
2407 /* harmony export */ });
2408 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2409 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2410 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2411 /* harmony import */ var _Common_AsyncSelect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/AsyncSelect */ "./scripts/shared/Common/AsyncSelect.tsx");
2412 /* harmony import */ var _UIComponents_UISpacer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../UIComponents/UISpacer */ "./scripts/shared/UIComponents/UISpacer.ts");
2413 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2414 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
2415
2416
2417
2418
2419
2420 function MeetingSelector(_ref) {
2421 var options = _ref.options,
2422 onChange = _ref.onChange,
2423 value = _ref.value;
2424 var optionsWrapper = [{
2425 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Meeting name', 'leadin'),
2426 options: options
2427 }];
2428 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
2429 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", {
2430 "data-test-id": "leadin-meeting-select",
2431 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("b", {
2432 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Select a meeting scheduling page', 'leadin')
2433 })
2434 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_AsyncSelect__WEBPACK_IMPORTED_MODULE_2__["default"], {
2435 defaultOptions: optionsWrapper,
2436 onChange: onChange,
2437 placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Select a meeting', 'leadin'),
2438 value: value
2439 })]
2440 });
2441 }
2442
2443 /***/ }),
2444
2445 /***/ "./scripts/shared/Meeting/MeetingWarning.tsx":
2446 /*!***************************************************!*\
2447 !*** ./scripts/shared/Meeting/MeetingWarning.tsx ***!
2448 \***************************************************/
2449 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2450
2451 "use strict";
2452 __webpack_require__.r(__webpack_exports__);
2453 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2454 /* harmony export */ "default": () => (/* binding */ MeetingWarning)
2455 /* harmony export */ });
2456 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2457 /* harmony import */ var _UIComponents_UIAlert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../UIComponents/UIAlert */ "./scripts/shared/UIComponents/UIAlert.tsx");
2458 /* harmony import */ var _UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIButton */ "./scripts/shared/UIComponents/UIButton.ts");
2459 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./scripts/shared/Meeting/constants.ts");
2460 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2461 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);
2462
2463
2464
2465
2466
2467 function MeetingWarning(_ref) {
2468 var status = _ref.status,
2469 onConnectCalendar = _ref.onConnectCalendar;
2470 var isMeetingOwner = status === _constants__WEBPACK_IMPORTED_MODULE_3__.CURRENT_USER_CALENDAR_MISSING;
2471 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');
2472 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');
2473 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIAlert__WEBPACK_IMPORTED_MODULE_1__["default"], {
2474 titleText: titleText,
2475 titleMessage: titleMessage,
2476 children: isMeetingOwner && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIButton__WEBPACK_IMPORTED_MODULE_2__["default"], {
2477 use: "tertiary",
2478 id: "meetings-connect-calendar",
2479 onClick: onConnectCalendar,
2480 children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Connect calendar', 'leadin')
2481 })
2482 });
2483 }
2484
2485 /***/ }),
2486
2487 /***/ "./scripts/shared/Meeting/PreviewMeeting.tsx":
2488 /*!***************************************************!*\
2489 !*** ./scripts/shared/Meeting/PreviewMeeting.tsx ***!
2490 \***************************************************/
2491 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2492
2493 "use strict";
2494 __webpack_require__.r(__webpack_exports__);
2495 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2496 /* harmony export */ "default": () => (/* binding */ PreviewForm)
2497 /* harmony export */ });
2498 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2499 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2500 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2501 /* harmony import */ var _UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIOverlay */ "./scripts/shared/UIComponents/UIOverlay.ts");
2502 /* harmony import */ var _hooks_useMeetingsScript__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hooks/useMeetingsScript */ "./scripts/shared/Meeting/hooks/useMeetingsScript.ts");
2503
2504
2505
2506
2507 function PreviewForm(_ref) {
2508 var url = _ref.url;
2509 var ready = (0,_hooks_useMeetingsScript__WEBPACK_IMPORTED_MODULE_3__["default"])();
2510 var inputEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
2511 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2512 if (!ready) {
2513 return;
2514 }
2515
2516 if (inputEl.current) {
2517 inputEl.current.innerHTML = '';
2518 var container = document.createElement('div');
2519 container.dataset.src = "".concat(url, "?embed=true");
2520 container.classList.add('meetings-iframe-container');
2521 inputEl.current.appendChild(container);
2522 var embedScript = document.createElement('script');
2523 embedScript.innerHTML = 'hbspt.meetings.create(".meetings-iframe-container");';
2524 inputEl.current.appendChild(embedScript);
2525 }
2526 }, [url, ready, inputEl]);
2527 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
2528 children: url && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__["default"], {
2529 ref: inputEl
2530 })
2531 });
2532 }
2533
2534 /***/ }),
2535
2536 /***/ "./scripts/shared/Meeting/constants.ts":
2537 /*!*********************************************!*\
2538 !*** ./scripts/shared/Meeting/constants.ts ***!
2539 \*********************************************/
2540 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2541
2542 "use strict";
2543 __webpack_require__.r(__webpack_exports__);
2544 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2545 /* harmony export */ "CURRENT_USER_CALENDAR_MISSING": () => (/* binding */ CURRENT_USER_CALENDAR_MISSING),
2546 /* harmony export */ "OTHER_USER_CALENDAR_MISSING": () => (/* binding */ OTHER_USER_CALENDAR_MISSING)
2547 /* harmony export */ });
2548 var OTHER_USER_CALENDAR_MISSING = 'OTHER_USER_CALENDAR_MISSING';
2549 var CURRENT_USER_CALENDAR_MISSING = 'CURRENT_USER_CALENDAR_MISSING';
2550
2551 /***/ }),
2552
2553 /***/ "./scripts/shared/Meeting/hooks/useCurrentUserFetch.ts":
2554 /*!*************************************************************!*\
2555 !*** ./scripts/shared/Meeting/hooks/useCurrentUserFetch.ts ***!
2556 \*************************************************************/
2557 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2558
2559 "use strict";
2560 __webpack_require__.r(__webpack_exports__);
2561 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2562 /* harmony export */ "default": () => (/* binding */ useCurrentUserFetch)
2563 /* harmony export */ });
2564 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2565 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2566 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2567 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../enums/loadState */ "./scripts/shared/enums/loadState.ts");
2568 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2569 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2570
2571 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."); }
2572
2573 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); }
2574
2575 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; }
2576
2577 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; }
2578
2579 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2580
2581
2582
2583
2584
2585 var user = null;
2586 function useCurrentUserFetch() {
2587 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.usePostAsyncBackgroundMessage)();
2588
2589 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded),
2590 _useState2 = _slicedToArray(_useState, 2),
2591 loadState = _useState2[0],
2592 setLoadState = _useState2[1];
2593
2594 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
2595 _useState4 = _slicedToArray(_useState3, 2),
2596 error = _useState4[0],
2597 setError = _useState4[1];
2598
2599 var createUser = function createUser() {
2600 if (!user) {
2601 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded);
2602 }
2603 };
2604
2605 var reload = function reload() {
2606 user = null;
2607 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded);
2608 setError(null);
2609 };
2610
2611 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
2612 if (loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded && !user) {
2613 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loading);
2614 proxy({
2615 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.FetchOrCreateMeetingUser
2616 }).then(function (data) {
2617 user = data;
2618 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Idle);
2619 })["catch"](function (err) {
2620 setError(err);
2621 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Failed);
2622 });
2623 }
2624 }, [loadState]);
2625 return {
2626 user: user,
2627 loadUserState: loadState,
2628 error: error,
2629 createUser: createUser,
2630 reload: reload
2631 };
2632 }
2633
2634 /***/ }),
2635
2636 /***/ "./scripts/shared/Meeting/hooks/useMeetings.ts":
2637 /*!*****************************************************!*\
2638 !*** ./scripts/shared/Meeting/hooks/useMeetings.ts ***!
2639 \*****************************************************/
2640 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2641
2642 "use strict";
2643 __webpack_require__.r(__webpack_exports__);
2644 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2645 /* harmony export */ "default": () => (/* binding */ useMeetings),
2646 /* harmony export */ "useSelectedMeeting": () => (/* binding */ useSelectedMeeting),
2647 /* harmony export */ "useSelectedMeetingCalendar": () => (/* binding */ useSelectedMeetingCalendar)
2648 /* harmony export */ });
2649 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2650 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2651 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2652 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
2653 /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ "./scripts/shared/Meeting/constants.ts");
2654 /* harmony import */ var _useMeetingsFetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useMeetingsFetch */ "./scripts/shared/Meeting/hooks/useMeetingsFetch.ts");
2655 /* harmony import */ var _useCurrentUserFetch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useCurrentUserFetch */ "./scripts/shared/Meeting/hooks/useCurrentUserFetch.ts");
2656 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../enums/loadState */ "./scripts/shared/enums/loadState.ts");
2657 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2658 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2659 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; }
2660
2661 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; }
2662
2663 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; }
2664
2665 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2666
2667 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."); }
2668
2669 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); }
2670
2671 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; }
2672
2673 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; }
2674
2675 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686 function getDefaultMeetingName(meeting, currentUser, meetingUsers) {
2687 var _meeting$meetingsUser = _slicedToArray(meeting.meetingsUserIds, 1),
2688 meetingOwnerId = _meeting$meetingsUser[0];
2689
2690 var result = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Default', 'leadin');
2691
2692 if (currentUser && meetingOwnerId !== currentUser.id && meetingUsers[meetingOwnerId]) {
2693 var user = meetingUsers[meetingOwnerId];
2694 result += " (".concat(user.userProfile.fullName, ")");
2695 }
2696
2697 return result;
2698 }
2699
2700 function hasCalendarObject(user) {
2701 return user && user.meetingsUserBlob && user.meetingsUserBlob.calendarSettings && user.meetingsUserBlob.calendarSettings.email;
2702 }
2703
2704 function useMeetings() {
2705 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.usePostAsyncBackgroundMessage)();
2706
2707 var _useMeetingsFetch = (0,_useMeetingsFetch__WEBPACK_IMPORTED_MODULE_3__["default"])(),
2708 meetings = _useMeetingsFetch.meetings,
2709 meetingUsers = _useMeetingsFetch.meetingUsers,
2710 meetingsError = _useMeetingsFetch.error,
2711 loadMeetingsState = _useMeetingsFetch.loadMeetingsState,
2712 reloadMeetings = _useMeetingsFetch.reload;
2713
2714 var _useCurrentUserFetch = (0,_useCurrentUserFetch__WEBPACK_IMPORTED_MODULE_4__["default"])(),
2715 currentUser = _useCurrentUserFetch.user,
2716 userError = _useCurrentUserFetch.error,
2717 loadUserState = _useCurrentUserFetch.loadUserState,
2718 reloadUser = _useCurrentUserFetch.reload;
2719
2720 var reload = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {
2721 reloadUser();
2722 reloadMeetings();
2723 }, [reloadUser, reloadMeetings]);
2724
2725 var connectCalendar = function connectCalendar() {
2726 return proxy({
2727 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__.ProxyMessages.ConnectMeetingsCalendar
2728 });
2729 };
2730
2731 return {
2732 mappedMeetings: meetings.map(function (meet) {
2733 return {
2734 label: meet.name || getDefaultMeetingName(meet, currentUser, meetingUsers),
2735 value: meet.link
2736 };
2737 }),
2738 meetings: meetings,
2739 meetingUsers: meetingUsers,
2740 currentUser: currentUser,
2741 error: meetingsError || userError,
2742 loading: loadMeetingsState == _enums_loadState__WEBPACK_IMPORTED_MODULE_5__["default"].Loading || loadUserState === _enums_loadState__WEBPACK_IMPORTED_MODULE_5__["default"].Loading,
2743 reload: reload,
2744 connectCalendar: connectCalendar
2745 };
2746 }
2747 function useSelectedMeeting(url) {
2748 var _useMeetings = useMeetings(),
2749 meetings = _useMeetings.mappedMeetings;
2750
2751 var option = meetings.find(function (_ref) {
2752 var value = _ref.value;
2753 return value === url;
2754 });
2755 return option;
2756 }
2757 function useSelectedMeetingCalendar(url) {
2758 var _useMeetings2 = useMeetings(),
2759 meetings = _useMeetings2.meetings,
2760 meetingUsers = _useMeetings2.meetingUsers,
2761 currentUser = _useMeetings2.currentUser;
2762
2763 var meeting = meetings.find(function (meet) {
2764 return meet.link === url;
2765 });
2766 var mappedMeetingUsersId = meetingUsers.reduce(function (p, c) {
2767 return _objectSpread(_objectSpread({}, p), {}, _defineProperty({}, c.id, c));
2768 }, {});
2769
2770 if (!meeting) {
2771 return null;
2772 } else {
2773 var meetingsUserIds = meeting.meetingsUserIds;
2774
2775 if (currentUser && meetingsUserIds.includes(currentUser.id) && !hasCalendarObject(currentUser)) {
2776 return _constants__WEBPACK_IMPORTED_MODULE_2__.CURRENT_USER_CALENDAR_MISSING;
2777 } else if (meetingsUserIds.map(function (id) {
2778 return mappedMeetingUsersId[id];
2779 }).some(function (user) {
2780 return !hasCalendarObject(user);
2781 })) {
2782 return _constants__WEBPACK_IMPORTED_MODULE_2__.OTHER_USER_CALENDAR_MISSING;
2783 } else {
2784 return null;
2785 }
2786 }
2787 }
2788
2789 /***/ }),
2790
2791 /***/ "./scripts/shared/Meeting/hooks/useMeetingsFetch.ts":
2792 /*!**********************************************************!*\
2793 !*** ./scripts/shared/Meeting/hooks/useMeetingsFetch.ts ***!
2794 \**********************************************************/
2795 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2796
2797 "use strict";
2798 __webpack_require__.r(__webpack_exports__);
2799 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2800 /* harmony export */ "default": () => (/* binding */ useMeetingsFetch)
2801 /* harmony export */ });
2802 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2803 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2804 /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts");
2805 /* harmony import */ var _enums_loadState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../enums/loadState */ "./scripts/shared/enums/loadState.ts");
2806 /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts");
2807 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2808
2809 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."); }
2810
2811 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); }
2812
2813 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; }
2814
2815 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; }
2816
2817 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2818
2819
2820
2821
2822
2823 var meetings = [];
2824 var meetingUsers = [];
2825 function useMeetingsFetch() {
2826 var proxy = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.usePostAsyncBackgroundMessage)();
2827
2828 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded),
2829 _useState2 = _slicedToArray(_useState, 2),
2830 loadState = _useState2[0],
2831 setLoadState = _useState2[1];
2832
2833 var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
2834 _useState4 = _slicedToArray(_useState3, 2),
2835 error = _useState4[0],
2836 setError = _useState4[1];
2837
2838 var reload = function reload() {
2839 meetings = [];
2840 setError(null);
2841 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded);
2842 };
2843
2844 (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
2845 if (loadState === _enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].NotLoaded && meetings.length === 0) {
2846 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loading);
2847 proxy({
2848 key: _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_3__.ProxyMessages.FetchMeetingsAndUsers
2849 }).then(function (data) {
2850 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Loaded);
2851 meetings = data && data.meetingLinks;
2852 meetingUsers = data && data.meetingUsers;
2853 })["catch"](function (e) {
2854 setError(e);
2855 setLoadState(_enums_loadState__WEBPACK_IMPORTED_MODULE_2__["default"].Failed);
2856 });
2857 }
2858 }, [loadState]);
2859 return {
2860 meetings: meetings,
2861 meetingUsers: meetingUsers,
2862 loadMeetingsState: loadState,
2863 error: error,
2864 reload: reload
2865 };
2866 }
2867
2868 /***/ }),
2869
2870 /***/ "./scripts/shared/Meeting/hooks/useMeetingsScript.ts":
2871 /*!***********************************************************!*\
2872 !*** ./scripts/shared/Meeting/hooks/useMeetingsScript.ts ***!
2873 \***********************************************************/
2874 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2875
2876 "use strict";
2877 __webpack_require__.r(__webpack_exports__);
2878 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2879 /* harmony export */ "default": () => (/* binding */ useMeetingsScript)
2880 /* harmony export */ });
2881 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
2882 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
2883 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2884 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2885 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
2886 /* harmony import */ var _lib_Raven__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../lib/Raven */ "./scripts/lib/Raven.ts");
2887 function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2888
2889 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."); }
2890
2891 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); }
2892
2893 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; }
2894
2895 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; }
2896
2897 function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
2898
2899
2900
2901
2902
2903 var promise;
2904
2905 function loadMeetingsScript() {
2906 if (!promise) {
2907 promise = new Promise(function (resolve, reject) {
2908 return jquery__WEBPACK_IMPORTED_MODULE_0___default().getScript(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.meetingsScript).done(resolve).fail(reject);
2909 });
2910 }
2911
2912 return promise;
2913 }
2914
2915 function useMeetingsScript() {
2916 var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
2917 _useState2 = _slicedToArray(_useState, 2),
2918 ready = _useState2[0],
2919 setReady = _useState2[1];
2920
2921 (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2922 loadMeetingsScript().then(function () {
2923 return setReady(true);
2924 })["catch"](function (error) {
2925 return _lib_Raven__WEBPACK_IMPORTED_MODULE_3__["default"].captureException(error);
2926 });
2927 }, []);
2928 return ready;
2929 }
2930
2931 /***/ }),
2932
2933 /***/ "./scripts/shared/UIComponents/UIAlert.tsx":
2934 /*!*************************************************!*\
2935 !*** ./scripts/shared/UIComponents/UIAlert.tsx ***!
2936 \*************************************************/
2937 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2938
2939 "use strict";
2940 __webpack_require__.r(__webpack_exports__);
2941 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2942 /* harmony export */ "default": () => (/* binding */ UIAlert)
2943 /* harmony export */ });
2944 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
2945 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
2946
2947
2948 var AlertContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('div')({
2949 name: "AlertContainer",
2950 "class": "a1h8m4fo",
2951 propsAsIs: false
2952 });
2953 var Title = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('p')({
2954 name: "Title",
2955 "class": "tyndzxk",
2956 propsAsIs: false
2957 });
2958 var Message = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('p')({
2959 name: "Message",
2960 "class": "m1m9sbk4",
2961 propsAsIs: false
2962 });
2963 var MessageContainer = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('div')({
2964 name: "MessageContainer",
2965 "class": "mg5o421",
2966 propsAsIs: false
2967 });
2968 function UIAlert(_ref) {
2969 var titleText = _ref.titleText,
2970 titleMessage = _ref.titleMessage,
2971 children = _ref.children;
2972 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(AlertContainer, {
2973 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(MessageContainer, {
2974 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Title, {
2975 children: titleText
2976 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Message, {
2977 children: titleMessage
2978 })]
2979 }), children]
2980 });
2981 }
2982
2983 __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");
2984
2985 /***/ }),
2986
2987 /***/ "./scripts/shared/UIComponents/UIButton.ts":
2988 /*!*************************************************!*\
2989 !*** ./scripts/shared/UIComponents/UIButton.ts ***!
2990 \*************************************************/
2991 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2992
2993 "use strict";
2994 __webpack_require__.r(__webpack_exports__);
2995 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2996 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2997 /* harmony export */ });
2998 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
2999 /* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colors */ "./scripts/shared/UIComponents/colors.ts");
3000
3001
3002
3003 var _exp2 = /*#__PURE__*/function _exp2() {
3004 return function (props) {
3005 return props.use === 'tertiary' ? _colors__WEBPACK_IMPORTED_MODULE_0__.HEFFALUMP : _colors__WEBPACK_IMPORTED_MODULE_0__.LORAX;
3006 };
3007 };
3008
3009 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_1__.styled)('button')({
3010 name: "UIButton0",
3011 "class": "ug152ch",
3012 propsAsIs: false,
3013 vars: {
3014 "ug152ch-0": [_exp2()]
3015 }
3016 }));
3017
3018 __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");
3019
3020 /***/ }),
3021
3022 /***/ "./scripts/shared/UIComponents/UIContainer.ts":
3023 /*!****************************************************!*\
3024 !*** ./scripts/shared/UIComponents/UIContainer.ts ***!
3025 \****************************************************/
3026 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3027
3028 "use strict";
3029 __webpack_require__.r(__webpack_exports__);
3030 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3031 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3032 /* harmony export */ });
3033 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
3034
3035
3036 var _exp = /*#__PURE__*/function _exp() {
3037 return function (props) {
3038 return props.textAlign ? props.textAlign : 'inherit';
3039 };
3040 };
3041
3042 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_0__.styled)('div')({
3043 name: "UIContainer0",
3044 "class": "ua13n1c",
3045 propsAsIs: false,
3046 vars: {
3047 "ua13n1c-0": [_exp()]
3048 }
3049 }));
3050
3051 __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");
3052
3053 /***/ }),
3054
3055 /***/ "./scripts/shared/UIComponents/UIOverlay.ts":
3056 /*!**************************************************!*\
3057 !*** ./scripts/shared/UIComponents/UIOverlay.ts ***!
3058 \**************************************************/
3059 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3060
3061 "use strict";
3062 __webpack_require__.r(__webpack_exports__);
3063 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3064 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3065 /* harmony export */ });
3066 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
3067
3068 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_0__.styled)('div')({
3069 name: "UIOverlay0",
3070 "class": "u1q7a48k",
3071 propsAsIs: false
3072 }));
3073
3074 __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");
3075
3076 /***/ }),
3077
3078 /***/ "./scripts/shared/UIComponents/UISpacer.ts":
3079 /*!*************************************************!*\
3080 !*** ./scripts/shared/UIComponents/UISpacer.ts ***!
3081 \*************************************************/
3082 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3083
3084 "use strict";
3085 __webpack_require__.r(__webpack_exports__);
3086 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3087 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3088 /* harmony export */ });
3089 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
3090
3091 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_0__.styled)('div')({
3092 name: "UISpacer0",
3093 "class": "u3qxofx",
3094 propsAsIs: false
3095 }));
3096
3097 __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");
3098
3099 /***/ }),
3100
3101 /***/ "./scripts/shared/UIComponents/UISpinner.tsx":
3102 /*!***************************************************!*\
3103 !*** ./scripts/shared/UIComponents/UISpinner.tsx ***!
3104 \***************************************************/
3105 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3106
3107 "use strict";
3108 __webpack_require__.r(__webpack_exports__);
3109 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3110 /* harmony export */ "default": () => (/* binding */ UISpinner)
3111 /* harmony export */ });
3112 /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
3113 /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @linaria/react */ "./node_modules/@linaria/react/dist/index.mjs");
3114 /* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colors */ "./scripts/shared/UIComponents/colors.ts");
3115
3116
3117
3118 var SpinnerOuter = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_2__.styled)('div')({
3119 name: "SpinnerOuter",
3120 "class": "sxa9zrc",
3121 propsAsIs: false
3122 });
3123 var SpinnerInner = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_2__.styled)('div')({
3124 name: "SpinnerInner",
3125 "class": "s14430wa",
3126 propsAsIs: false
3127 });
3128
3129 var _exp = /*#__PURE__*/function _exp() {
3130 return function (props) {
3131 return props.color;
3132 };
3133 };
3134
3135 var Circle = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_2__.styled)('circle')({
3136 name: "Circle",
3137 "class": "ct87ghk",
3138 propsAsIs: true,
3139 vars: {
3140 "ct87ghk-0": [_exp()]
3141 }
3142 });
3143
3144 var _exp2 = /*#__PURE__*/function _exp2() {
3145 return function (props) {
3146 return props.color;
3147 };
3148 };
3149
3150 var AnimatedCircle = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_2__.styled)('circle')({
3151 name: "AnimatedCircle",
3152 "class": "avili0h",
3153 propsAsIs: true,
3154 vars: {
3155 "avili0h-0": [_exp2()]
3156 }
3157 });
3158 function UISpinner(_ref) {
3159 var _ref$size = _ref.size,
3160 size = _ref$size === void 0 ? 20 : _ref$size;
3161 return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SpinnerOuter, {
3162 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SpinnerInner, {
3163 children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("svg", {
3164 height: size,
3165 width: size,
3166 viewBox: "0 0 50 50",
3167 children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Circle, {
3168 color: _colors__WEBPACK_IMPORTED_MODULE_1__.CALYPSO_MEDIUM,
3169 cx: "25",
3170 cy: "25",
3171 r: "22.5"
3172 }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AnimatedCircle, {
3173 color: _colors__WEBPACK_IMPORTED_MODULE_1__.CALYPSO,
3174 cx: "25",
3175 cy: "25",
3176 r: "22.5"
3177 })]
3178 })
3179 })
3180 });
3181 }
3182
3183 __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");
3184
3185 /***/ }),
3186
3187 /***/ "./scripts/shared/UIComponents/colors.ts":
3188 /*!***********************************************!*\
3189 !*** ./scripts/shared/UIComponents/colors.ts ***!
3190 \***********************************************/
3191 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3192
3193 "use strict";
3194 __webpack_require__.r(__webpack_exports__);
3195 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3196 /* harmony export */ "CALYPSO": () => (/* binding */ CALYPSO),
3197 /* harmony export */ "CALYPSO_LIGHT": () => (/* binding */ CALYPSO_LIGHT),
3198 /* harmony export */ "CALYPSO_MEDIUM": () => (/* binding */ CALYPSO_MEDIUM),
3199 /* harmony export */ "HEFFALUMP": () => (/* binding */ HEFFALUMP),
3200 /* harmony export */ "LORAX": () => (/* binding */ LORAX),
3201 /* harmony export */ "MARIGOLD_LIGHT": () => (/* binding */ MARIGOLD_LIGHT),
3202 /* harmony export */ "MARIGOLD_MEDIUM": () => (/* binding */ MARIGOLD_MEDIUM),
3203 /* harmony export */ "OBSIDIAN": () => (/* binding */ OBSIDIAN),
3204 /* harmony export */ "OLAF": () => (/* binding */ OLAF)
3205 /* harmony export */ });
3206 var CALYPSO = '#00a4bd';
3207 var CALYPSO_MEDIUM = '#7fd1de';
3208 var CALYPSO_LIGHT = '#e5f5f8';
3209 var LORAX = '#ff7a59';
3210 var OLAF = '#ffffff';
3211 var HEFFALUMP = '#425b76';
3212 var MARIGOLD_LIGHT = '#fef8f0';
3213 var MARIGOLD_MEDIUM = '#fae0b5';
3214 var OBSIDIAN = '#33475b';
3215
3216 /***/ }),
3217
3218 /***/ "./scripts/shared/enums/connectionStatus.ts":
3219 /*!**************************************************!*\
3220 !*** ./scripts/shared/enums/connectionStatus.ts ***!
3221 \**************************************************/
3222 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3223
3224 "use strict";
3225 __webpack_require__.r(__webpack_exports__);
3226 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3227 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3228 /* harmony export */ });
3229 var ConnectionStatus = {
3230 Connected: 'Connected',
3231 NotConnected: 'NotConnected'
3232 };
3233 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ConnectionStatus);
3234
3235 /***/ }),
3236
3237 /***/ "./scripts/shared/enums/loadState.ts":
3238 /*!*******************************************!*\
3239 !*** ./scripts/shared/enums/loadState.ts ***!
3240 \*******************************************/
3241 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3242
3243 "use strict";
3244 __webpack_require__.r(__webpack_exports__);
3245 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3246 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3247 /* harmony export */ });
3248 var LoadState = {
3249 NotLoaded: 'NotLoaded',
3250 Loading: 'Loading',
3251 Loaded: 'Loaded',
3252 Idle: 'Idle',
3253 Failed: 'Failed'
3254 };
3255 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LoadState);
3256
3257 /***/ }),
3258
3259 /***/ "./scripts/utils/appUtils.ts":
3260 /*!***********************************!*\
3261 !*** ./scripts/utils/appUtils.ts ***!
3262 \***********************************/
3263 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3264
3265 "use strict";
3266 __webpack_require__.r(__webpack_exports__);
3267 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3268 /* harmony export */ "initApp": () => (/* binding */ initApp),
3269 /* harmony export */ "initAppOnReady": () => (/* binding */ initAppOnReady)
3270 /* harmony export */ });
3271 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
3272 /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
3273 /* harmony import */ var _lib_Raven__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/Raven */ "./scripts/lib/Raven.ts");
3274
3275
3276 function initApp(initFn) {
3277 (0,_lib_Raven__WEBPACK_IMPORTED_MODULE_1__.configureRaven)();
3278 _lib_Raven__WEBPACK_IMPORTED_MODULE_1__["default"].context(initFn);
3279 }
3280 function initAppOnReady(initFn) {
3281 function main() {
3282 jquery__WEBPACK_IMPORTED_MODULE_0___default()(initFn);
3283 }
3284
3285 initApp(main);
3286 }
3287
3288 /***/ }),
3289
3290 /***/ "./scripts/utils/backgroundAppUtils.ts":
3291 /*!*********************************************!*\
3292 !*** ./scripts/utils/backgroundAppUtils.ts ***!
3293 \*********************************************/
3294 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3295
3296 "use strict";
3297 __webpack_require__.r(__webpack_exports__);
3298 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3299 /* harmony export */ "getOrCreateBackgroundApp": () => (/* binding */ getOrCreateBackgroundApp),
3300 /* harmony export */ "initBackgroundApp": () => (/* binding */ initBackgroundApp)
3301 /* harmony export */ });
3302 /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts");
3303 /* harmony import */ var _appUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./appUtils */ "./scripts/utils/appUtils.ts");
3304
3305
3306 function initBackgroundApp(initFn) {
3307 function main() {
3308 if (Array.isArray(initFn)) {
3309 initFn.forEach(function (callback) {
3310 return callback();
3311 });
3312 } else {
3313 initFn();
3314 }
3315 }
3316
3317 (0,_appUtils__WEBPACK_IMPORTED_MODULE_1__.initApp)(main);
3318 }
3319 var getOrCreateBackgroundApp = function getOrCreateBackgroundApp(refreshToken) {
3320 if (window.LeadinBackgroundApp) {
3321 return window.LeadinBackgroundApp;
3322 }
3323
3324 var _window = window,
3325 IntegratedAppEmbedder = _window.IntegratedAppEmbedder,
3326 IntegratedAppOptions = _window.IntegratedAppOptions;
3327 var options = new IntegratedAppOptions().setLocale(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.locale).setDeviceId(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.deviceId).setRefreshToken(refreshToken);
3328 var embedder = new IntegratedAppEmbedder('integrated-plugin-proxy', _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.portalId, _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.hubspotBaseUrl, function () {}).setOptions(options);
3329 embedder.attachTo(document.body, false);
3330 embedder.postStartAppMessage(); // lets the app know all all data has been passed to it
3331
3332 window.LeadinBackgroundApp = embedder;
3333 return window.LeadinBackgroundApp;
3334 };
3335
3336 /***/ }),
3337
3338 /***/ "./node_modules/lodash/_Symbol.js":
3339 /*!****************************************!*\
3340 !*** ./node_modules/lodash/_Symbol.js ***!
3341 \****************************************/
3342 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3343
3344 var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
3345
3346 /** Built-in value references. */
3347 var Symbol = root.Symbol;
3348
3349 module.exports = Symbol;
3350
3351
3352 /***/ }),
3353
3354 /***/ "./node_modules/lodash/_baseGetTag.js":
3355 /*!********************************************!*\
3356 !*** ./node_modules/lodash/_baseGetTag.js ***!
3357 \********************************************/
3358 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3359
3360 var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
3361 getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"),
3362 objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js");
3363
3364 /** `Object#toString` result references. */
3365 var nullTag = '[object Null]',
3366 undefinedTag = '[object Undefined]';
3367
3368 /** Built-in value references. */
3369 var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
3370
3371 /**
3372 * The base implementation of `getTag` without fallbacks for buggy environments.
3373 *
3374 * @private
3375 * @param {*} value The value to query.
3376 * @returns {string} Returns the `toStringTag`.
3377 */
3378 function baseGetTag(value) {
3379 if (value == null) {
3380 return value === undefined ? undefinedTag : nullTag;
3381 }
3382 return (symToStringTag && symToStringTag in Object(value))
3383 ? getRawTag(value)
3384 : objectToString(value);
3385 }
3386
3387 module.exports = baseGetTag;
3388
3389
3390 /***/ }),
3391
3392 /***/ "./node_modules/lodash/_baseTrim.js":
3393 /*!******************************************!*\
3394 !*** ./node_modules/lodash/_baseTrim.js ***!
3395 \******************************************/
3396 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3397
3398 var trimmedEndIndex = __webpack_require__(/*! ./_trimmedEndIndex */ "./node_modules/lodash/_trimmedEndIndex.js");
3399
3400 /** Used to match leading whitespace. */
3401 var reTrimStart = /^\s+/;
3402
3403 /**
3404 * The base implementation of `_.trim`.
3405 *
3406 * @private
3407 * @param {string} string The string to trim.
3408 * @returns {string} Returns the trimmed string.
3409 */
3410 function baseTrim(string) {
3411 return string
3412 ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
3413 : string;
3414 }
3415
3416 module.exports = baseTrim;
3417
3418
3419 /***/ }),
3420
3421 /***/ "./node_modules/lodash/_freeGlobal.js":
3422 /*!********************************************!*\
3423 !*** ./node_modules/lodash/_freeGlobal.js ***!
3424 \********************************************/
3425 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3426
3427 /** Detect free variable `global` from Node.js. */
3428 var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
3429
3430 module.exports = freeGlobal;
3431
3432
3433 /***/ }),
3434
3435 /***/ "./node_modules/lodash/_getRawTag.js":
3436 /*!*******************************************!*\
3437 !*** ./node_modules/lodash/_getRawTag.js ***!
3438 \*******************************************/
3439 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3440
3441 var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");
3442
3443 /** Used for built-in method references. */
3444 var objectProto = Object.prototype;
3445
3446 /** Used to check objects for own properties. */
3447 var hasOwnProperty = objectProto.hasOwnProperty;
3448
3449 /**
3450 * Used to resolve the
3451 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
3452 * of values.
3453 */
3454 var nativeObjectToString = objectProto.toString;
3455
3456 /** Built-in value references. */
3457 var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
3458
3459 /**
3460 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
3461 *
3462 * @private
3463 * @param {*} value The value to query.
3464 * @returns {string} Returns the raw `toStringTag`.
3465 */
3466 function getRawTag(value) {
3467 var isOwn = hasOwnProperty.call(value, symToStringTag),
3468 tag = value[symToStringTag];
3469
3470 try {
3471 value[symToStringTag] = undefined;
3472 var unmasked = true;
3473 } catch (e) {}
3474
3475 var result = nativeObjectToString.call(value);
3476 if (unmasked) {
3477 if (isOwn) {
3478 value[symToStringTag] = tag;
3479 } else {
3480 delete value[symToStringTag];
3481 }
3482 }
3483 return result;
3484 }
3485
3486 module.exports = getRawTag;
3487
3488
3489 /***/ }),
3490
3491 /***/ "./node_modules/lodash/_objectToString.js":
3492 /*!************************************************!*\
3493 !*** ./node_modules/lodash/_objectToString.js ***!
3494 \************************************************/
3495 /***/ ((module) => {
3496
3497 /** Used for built-in method references. */
3498 var objectProto = Object.prototype;
3499
3500 /**
3501 * Used to resolve the
3502 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
3503 * of values.
3504 */
3505 var nativeObjectToString = objectProto.toString;
3506
3507 /**
3508 * Converts `value` to a string using `Object.prototype.toString`.
3509 *
3510 * @private
3511 * @param {*} value The value to convert.
3512 * @returns {string} Returns the converted string.
3513 */
3514 function objectToString(value) {
3515 return nativeObjectToString.call(value);
3516 }
3517
3518 module.exports = objectToString;
3519
3520
3521 /***/ }),
3522
3523 /***/ "./node_modules/lodash/_root.js":
3524 /*!**************************************!*\
3525 !*** ./node_modules/lodash/_root.js ***!
3526 \**************************************/
3527 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3528
3529 var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");
3530
3531 /** Detect free variable `self`. */
3532 var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
3533
3534 /** Used as a reference to the global object. */
3535 var root = freeGlobal || freeSelf || Function('return this')();
3536
3537 module.exports = root;
3538
3539
3540 /***/ }),
3541
3542 /***/ "./node_modules/lodash/_trimmedEndIndex.js":
3543 /*!*************************************************!*\
3544 !*** ./node_modules/lodash/_trimmedEndIndex.js ***!
3545 \*************************************************/
3546 /***/ ((module) => {
3547
3548 /** Used to match a single whitespace character. */
3549 var reWhitespace = /\s/;
3550
3551 /**
3552 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
3553 * character of `string`.
3554 *
3555 * @private
3556 * @param {string} string The string to inspect.
3557 * @returns {number} Returns the index of the last non-whitespace character.
3558 */
3559 function trimmedEndIndex(string) {
3560 var index = string.length;
3561
3562 while (index-- && reWhitespace.test(string.charAt(index))) {}
3563 return index;
3564 }
3565
3566 module.exports = trimmedEndIndex;
3567
3568
3569 /***/ }),
3570
3571 /***/ "./node_modules/lodash/debounce.js":
3572 /*!*****************************************!*\
3573 !*** ./node_modules/lodash/debounce.js ***!
3574 \*****************************************/
3575 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3576
3577 var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
3578 now = __webpack_require__(/*! ./now */ "./node_modules/lodash/now.js"),
3579 toNumber = __webpack_require__(/*! ./toNumber */ "./node_modules/lodash/toNumber.js");
3580
3581 /** Error message constants. */
3582 var FUNC_ERROR_TEXT = 'Expected a function';
3583
3584 /* Built-in method references for those with the same name as other `lodash` methods. */
3585 var nativeMax = Math.max,
3586 nativeMin = Math.min;
3587
3588 /**
3589 * Creates a debounced function that delays invoking `func` until after `wait`
3590 * milliseconds have elapsed since the last time the debounced function was
3591 * invoked. The debounced function comes with a `cancel` method to cancel
3592 * delayed `func` invocations and a `flush` method to immediately invoke them.
3593 * Provide `options` to indicate whether `func` should be invoked on the
3594 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
3595 * with the last arguments provided to the debounced function. Subsequent
3596 * calls to the debounced function return the result of the last `func`
3597 * invocation.
3598 *
3599 * **Note:** If `leading` and `trailing` options are `true`, `func` is
3600 * invoked on the trailing edge of the timeout only if the debounced function
3601 * is invoked more than once during the `wait` timeout.
3602 *
3603 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
3604 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
3605 *
3606 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
3607 * for details over the differences between `_.debounce` and `_.throttle`.
3608 *
3609 * @static
3610 * @memberOf _
3611 * @since 0.1.0
3612 * @category Function
3613 * @param {Function} func The function to debounce.
3614 * @param {number} [wait=0] The number of milliseconds to delay.
3615 * @param {Object} [options={}] The options object.
3616 * @param {boolean} [options.leading=false]
3617 * Specify invoking on the leading edge of the timeout.
3618 * @param {number} [options.maxWait]
3619 * The maximum time `func` is allowed to be delayed before it's invoked.
3620 * @param {boolean} [options.trailing=true]
3621 * Specify invoking on the trailing edge of the timeout.
3622 * @returns {Function} Returns the new debounced function.
3623 * @example
3624 *
3625 * // Avoid costly calculations while the window size is in flux.
3626 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
3627 *
3628 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
3629 * jQuery(element).on('click', _.debounce(sendMail, 300, {
3630 * 'leading': true,
3631 * 'trailing': false
3632 * }));
3633 *
3634 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
3635 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
3636 * var source = new EventSource('/stream');
3637 * jQuery(source).on('message', debounced);
3638 *
3639 * // Cancel the trailing debounced invocation.
3640 * jQuery(window).on('popstate', debounced.cancel);
3641 */
3642 function debounce(func, wait, options) {
3643 var lastArgs,
3644 lastThis,
3645 maxWait,
3646 result,
3647 timerId,
3648 lastCallTime,
3649 lastInvokeTime = 0,
3650 leading = false,
3651 maxing = false,
3652 trailing = true;
3653
3654 if (typeof func != 'function') {
3655 throw new TypeError(FUNC_ERROR_TEXT);
3656 }
3657 wait = toNumber(wait) || 0;
3658 if (isObject(options)) {
3659 leading = !!options.leading;
3660 maxing = 'maxWait' in options;
3661 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
3662 trailing = 'trailing' in options ? !!options.trailing : trailing;
3663 }
3664
3665 function invokeFunc(time) {
3666 var args = lastArgs,
3667 thisArg = lastThis;
3668
3669 lastArgs = lastThis = undefined;
3670 lastInvokeTime = time;
3671 result = func.apply(thisArg, args);
3672 return result;
3673 }
3674
3675 function leadingEdge(time) {
3676 // Reset any `maxWait` timer.
3677 lastInvokeTime = time;
3678 // Start the timer for the trailing edge.
3679 timerId = setTimeout(timerExpired, wait);
3680 // Invoke the leading edge.
3681 return leading ? invokeFunc(time) : result;
3682 }
3683
3684 function remainingWait(time) {
3685 var timeSinceLastCall = time - lastCallTime,
3686 timeSinceLastInvoke = time - lastInvokeTime,
3687 timeWaiting = wait - timeSinceLastCall;
3688
3689 return maxing
3690 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
3691 : timeWaiting;
3692 }
3693
3694 function shouldInvoke(time) {
3695 var timeSinceLastCall = time - lastCallTime,
3696 timeSinceLastInvoke = time - lastInvokeTime;
3697
3698 // Either this is the first call, activity has stopped and we're at the
3699 // trailing edge, the system time has gone backwards and we're treating
3700 // it as the trailing edge, or we've hit the `maxWait` limit.
3701 return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
3702 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
3703 }
3704
3705 function timerExpired() {
3706 var time = now();
3707 if (shouldInvoke(time)) {
3708 return trailingEdge(time);
3709 }
3710 // Restart the timer.
3711 timerId = setTimeout(timerExpired, remainingWait(time));
3712 }
3713
3714 function trailingEdge(time) {
3715 timerId = undefined;
3716
3717 // Only invoke if we have `lastArgs` which means `func` has been
3718 // debounced at least once.
3719 if (trailing && lastArgs) {
3720 return invokeFunc(time);
3721 }
3722 lastArgs = lastThis = undefined;
3723 return result;
3724 }
3725
3726 function cancel() {
3727 if (timerId !== undefined) {
3728 clearTimeout(timerId);
3729 }
3730 lastInvokeTime = 0;
3731 lastArgs = lastCallTime = lastThis = timerId = undefined;
3732 }
3733
3734 function flush() {
3735 return timerId === undefined ? result : trailingEdge(now());
3736 }
3737
3738 function debounced() {
3739 var time = now(),
3740 isInvoking = shouldInvoke(time);
3741
3742 lastArgs = arguments;
3743 lastThis = this;
3744 lastCallTime = time;
3745
3746 if (isInvoking) {
3747 if (timerId === undefined) {
3748 return leadingEdge(lastCallTime);
3749 }
3750 if (maxing) {
3751 // Handle invocations in a tight loop.
3752 clearTimeout(timerId);
3753 timerId = setTimeout(timerExpired, wait);
3754 return invokeFunc(lastCallTime);
3755 }
3756 }
3757 if (timerId === undefined) {
3758 timerId = setTimeout(timerExpired, wait);
3759 }
3760 return result;
3761 }
3762 debounced.cancel = cancel;
3763 debounced.flush = flush;
3764 return debounced;
3765 }
3766
3767 module.exports = debounce;
3768
3769
3770 /***/ }),
3771
3772 /***/ "./node_modules/lodash/isObject.js":
3773 /*!*****************************************!*\
3774 !*** ./node_modules/lodash/isObject.js ***!
3775 \*****************************************/
3776 /***/ ((module) => {
3777
3778 /**
3779 * Checks if `value` is the
3780 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
3781 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
3782 *
3783 * @static
3784 * @memberOf _
3785 * @since 0.1.0
3786 * @category Lang
3787 * @param {*} value The value to check.
3788 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
3789 * @example
3790 *
3791 * _.isObject({});
3792 * // => true
3793 *
3794 * _.isObject([1, 2, 3]);
3795 * // => true
3796 *
3797 * _.isObject(_.noop);
3798 * // => true
3799 *
3800 * _.isObject(null);
3801 * // => false
3802 */
3803 function isObject(value) {
3804 var type = typeof value;
3805 return value != null && (type == 'object' || type == 'function');
3806 }
3807
3808 module.exports = isObject;
3809
3810
3811 /***/ }),
3812
3813 /***/ "./node_modules/lodash/isObjectLike.js":
3814 /*!*********************************************!*\
3815 !*** ./node_modules/lodash/isObjectLike.js ***!
3816 \*********************************************/
3817 /***/ ((module) => {
3818
3819 /**
3820 * Checks if `value` is object-like. A value is object-like if it's not `null`
3821 * and has a `typeof` result of "object".
3822 *
3823 * @static
3824 * @memberOf _
3825 * @since 4.0.0
3826 * @category Lang
3827 * @param {*} value The value to check.
3828 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
3829 * @example
3830 *
3831 * _.isObjectLike({});
3832 * // => true
3833 *
3834 * _.isObjectLike([1, 2, 3]);
3835 * // => true
3836 *
3837 * _.isObjectLike(_.noop);
3838 * // => false
3839 *
3840 * _.isObjectLike(null);
3841 * // => false
3842 */
3843 function isObjectLike(value) {
3844 return value != null && typeof value == 'object';
3845 }
3846
3847 module.exports = isObjectLike;
3848
3849
3850 /***/ }),
3851
3852 /***/ "./node_modules/lodash/isSymbol.js":
3853 /*!*****************************************!*\
3854 !*** ./node_modules/lodash/isSymbol.js ***!
3855 \*****************************************/
3856 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3857
3858 var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
3859 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
3860
3861 /** `Object#toString` result references. */
3862 var symbolTag = '[object Symbol]';
3863
3864 /**
3865 * Checks if `value` is classified as a `Symbol` primitive or object.
3866 *
3867 * @static
3868 * @memberOf _
3869 * @since 4.0.0
3870 * @category Lang
3871 * @param {*} value The value to check.
3872 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
3873 * @example
3874 *
3875 * _.isSymbol(Symbol.iterator);
3876 * // => true
3877 *
3878 * _.isSymbol('abc');
3879 * // => false
3880 */
3881 function isSymbol(value) {
3882 return typeof value == 'symbol' ||
3883 (isObjectLike(value) && baseGetTag(value) == symbolTag);
3884 }
3885
3886 module.exports = isSymbol;
3887
3888
3889 /***/ }),
3890
3891 /***/ "./node_modules/lodash/now.js":
3892 /*!************************************!*\
3893 !*** ./node_modules/lodash/now.js ***!
3894 \************************************/
3895 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3896
3897 var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
3898
3899 /**
3900 * Gets the timestamp of the number of milliseconds that have elapsed since
3901 * the Unix epoch (1 January 1970 00:00:00 UTC).
3902 *
3903 * @static
3904 * @memberOf _
3905 * @since 2.4.0
3906 * @category Date
3907 * @returns {number} Returns the timestamp.
3908 * @example
3909 *
3910 * _.defer(function(stamp) {
3911 * console.log(_.now() - stamp);
3912 * }, _.now());
3913 * // => Logs the number of milliseconds it took for the deferred invocation.
3914 */
3915 var now = function() {
3916 return root.Date.now();
3917 };
3918
3919 module.exports = now;
3920
3921
3922 /***/ }),
3923
3924 /***/ "./node_modules/lodash/toNumber.js":
3925 /*!*****************************************!*\
3926 !*** ./node_modules/lodash/toNumber.js ***!
3927 \*****************************************/
3928 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3929
3930 var baseTrim = __webpack_require__(/*! ./_baseTrim */ "./node_modules/lodash/_baseTrim.js"),
3931 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
3932 isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
3933
3934 /** Used as references for various `Number` constants. */
3935 var NAN = 0 / 0;
3936
3937 /** Used to detect bad signed hexadecimal string values. */
3938 var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
3939
3940 /** Used to detect binary string values. */
3941 var reIsBinary = /^0b[01]+$/i;
3942
3943 /** Used to detect octal string values. */
3944 var reIsOctal = /^0o[0-7]+$/i;
3945
3946 /** Built-in method references without a dependency on `root`. */
3947 var freeParseInt = parseInt;
3948
3949 /**
3950 * Converts `value` to a number.
3951 *
3952 * @static
3953 * @memberOf _
3954 * @since 4.0.0
3955 * @category Lang
3956 * @param {*} value The value to process.
3957 * @returns {number} Returns the number.
3958 * @example
3959 *
3960 * _.toNumber(3.2);
3961 * // => 3.2
3962 *
3963 * _.toNumber(Number.MIN_VALUE);
3964 * // => 5e-324
3965 *
3966 * _.toNumber(Infinity);
3967 * // => Infinity
3968 *
3969 * _.toNumber('3.2');
3970 * // => 3.2
3971 */
3972 function toNumber(value) {
3973 if (typeof value == 'number') {
3974 return value;
3975 }
3976 if (isSymbol(value)) {
3977 return NAN;
3978 }
3979 if (isObject(value)) {
3980 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
3981 value = isObject(other) ? (other + '') : other;
3982 }
3983 if (typeof value != 'string') {
3984 return value === 0 ? value : +value;
3985 }
3986 value = baseTrim(value);
3987 var isBinary = reIsBinary.test(value);
3988 return (isBinary || reIsOctal.test(value))
3989 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
3990 : (reIsBadHex.test(value) ? NAN : +value);
3991 }
3992
3993 module.exports = toNumber;
3994
3995
3996 /***/ }),
3997
3998 /***/ "./scripts/elementor/Common/ElementorButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/Common/ElementorButton.tsx":
3999 /*!*********************************************************************************************************************************************************************************************!*\
4000 !*** ./scripts/elementor/Common/ElementorButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/Common/ElementorButton.tsx ***!
4001 \*********************************************************************************************************************************************************************************************/
4002 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4003
4004 "use strict";
4005 __webpack_require__.r(__webpack_exports__);
4006 // extracted by mini-css-extract-plugin
4007
4008
4009 /***/ }),
4010
4011 /***/ "./scripts/elementor/MeetingWidget/ElementorMeetingWarning.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx":
4012 /*!***************************************************************************************************************************************************************************************************************************!*\
4013 !*** ./scripts/elementor/MeetingWidget/ElementorMeetingWarning.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/elementor/MeetingWidget/ElementorMeetingWarning.tsx ***!
4014 \***************************************************************************************************************************************************************************************************************************/
4015 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4016
4017 "use strict";
4018 __webpack_require__.r(__webpack_exports__);
4019 // extracted by mini-css-extract-plugin
4020
4021
4022 /***/ }),
4023
4024 /***/ "./scripts/shared/Common/AsyncSelect.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/AsyncSelect.tsx":
4025 /*!*******************************************************************************************************************************************************************************!*\
4026 !*** ./scripts/shared/Common/AsyncSelect.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/AsyncSelect.tsx ***!
4027 \*******************************************************************************************************************************************************************************/
4028 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4029
4030 "use strict";
4031 __webpack_require__.r(__webpack_exports__);
4032 // extracted by mini-css-extract-plugin
4033
4034
4035 /***/ }),
4036
4037 /***/ "./scripts/shared/Common/HubspotWrapper.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/HubspotWrapper.ts":
4038 /*!************************************************************************************************************************************************************************************!*\
4039 !*** ./scripts/shared/Common/HubspotWrapper.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/Common/HubspotWrapper.ts ***!
4040 \************************************************************************************************************************************************************************************/
4041 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4042
4043 "use strict";
4044 __webpack_require__.r(__webpack_exports__);
4045 // extracted by mini-css-extract-plugin
4046
4047
4048 /***/ }),
4049
4050 /***/ "./scripts/shared/UIComponents/UIAlert.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIAlert.tsx":
4051 /*!***********************************************************************************************************************************************************************************!*\
4052 !*** ./scripts/shared/UIComponents/UIAlert.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIAlert.tsx ***!
4053 \***********************************************************************************************************************************************************************************/
4054 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4055
4056 "use strict";
4057 __webpack_require__.r(__webpack_exports__);
4058 // extracted by mini-css-extract-plugin
4059
4060
4061 /***/ }),
4062
4063 /***/ "./scripts/shared/UIComponents/UIButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIButton.ts":
4064 /*!************************************************************************************************************************************************************************************!*\
4065 !*** ./scripts/shared/UIComponents/UIButton.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIButton.ts ***!
4066 \************************************************************************************************************************************************************************************/
4067 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4068
4069 "use strict";
4070 __webpack_require__.r(__webpack_exports__);
4071 // extracted by mini-css-extract-plugin
4072
4073
4074 /***/ }),
4075
4076 /***/ "./scripts/shared/UIComponents/UIContainer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIContainer.ts":
4077 /*!******************************************************************************************************************************************************************************************!*\
4078 !*** ./scripts/shared/UIComponents/UIContainer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIContainer.ts ***!
4079 \******************************************************************************************************************************************************************************************/
4080 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4081
4082 "use strict";
4083 __webpack_require__.r(__webpack_exports__);
4084 // extracted by mini-css-extract-plugin
4085
4086
4087 /***/ }),
4088
4089 /***/ "./scripts/shared/UIComponents/UIOverlay.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIOverlay.ts":
4090 /*!**************************************************************************************************************************************************************************************!*\
4091 !*** ./scripts/shared/UIComponents/UIOverlay.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UIOverlay.ts ***!
4092 \**************************************************************************************************************************************************************************************/
4093 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4094
4095 "use strict";
4096 __webpack_require__.r(__webpack_exports__);
4097 // extracted by mini-css-extract-plugin
4098
4099
4100 /***/ }),
4101
4102 /***/ "./scripts/shared/UIComponents/UISpacer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpacer.ts":
4103 /*!************************************************************************************************************************************************************************************!*\
4104 !*** ./scripts/shared/UIComponents/UISpacer.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpacer.ts ***!
4105 \************************************************************************************************************************************************************************************/
4106 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4107
4108 "use strict";
4109 __webpack_require__.r(__webpack_exports__);
4110 // extracted by mini-css-extract-plugin
4111
4112
4113 /***/ }),
4114
4115 /***/ "./scripts/shared/UIComponents/UISpinner.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpinner.tsx":
4116 /*!***************************************************************************************************************************************************************************************!*\
4117 !*** ./scripts/shared/UIComponents/UISpinner.linaria.css!=!./node_modules/@linaria/webpack5-loader/lib/outputCssLoader.js?cacheProvider=!./scripts/shared/UIComponents/UISpinner.tsx ***!
4118 \***************************************************************************************************************************************************************************************/
4119 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4120
4121 "use strict";
4122 __webpack_require__.r(__webpack_exports__);
4123 // extracted by mini-css-extract-plugin
4124
4125
4126 /***/ }),
4127
4128 /***/ "./node_modules/object-assign/index.js":
4129 /*!*********************************************!*\
4130 !*** ./node_modules/object-assign/index.js ***!
4131 \*********************************************/
4132 /***/ ((module) => {
4133
4134 "use strict";
4135 /*
4136 object-assign
4137 (c) Sindre Sorhus
4138 @license MIT
4139 */
4140
4141
4142 /* eslint-disable no-unused-vars */
4143 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
4144 var hasOwnProperty = Object.prototype.hasOwnProperty;
4145 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
4146
4147 function toObject(val) {
4148 if (val === null || val === undefined) {
4149 throw new TypeError('Object.assign cannot be called with null or undefined');
4150 }
4151
4152 return Object(val);
4153 }
4154
4155 function shouldUseNative() {
4156 try {
4157 if (!Object.assign) {
4158 return false;
4159 }
4160
4161 // Detect buggy property enumeration order in older V8 versions.
4162
4163 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
4164 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
4165 test1[5] = 'de';
4166 if (Object.getOwnPropertyNames(test1)[0] === '5') {
4167 return false;
4168 }
4169
4170 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
4171 var test2 = {};
4172 for (var i = 0; i < 10; i++) {
4173 test2['_' + String.fromCharCode(i)] = i;
4174 }
4175 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
4176 return test2[n];
4177 });
4178 if (order2.join('') !== '0123456789') {
4179 return false;
4180 }
4181
4182 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
4183 var test3 = {};
4184 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
4185 test3[letter] = letter;
4186 });
4187 if (Object.keys(Object.assign({}, test3)).join('') !==
4188 'abcdefghijklmnopqrst') {
4189 return false;
4190 }
4191
4192 return true;
4193 } catch (err) {
4194 // We don't expect any of the above to throw, but better to be safe.
4195 return false;
4196 }
4197 }
4198
4199 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
4200 var from;
4201 var to = toObject(target);
4202 var symbols;
4203
4204 for (var s = 1; s < arguments.length; s++) {
4205 from = Object(arguments[s]);
4206
4207 for (var key in from) {
4208 if (hasOwnProperty.call(from, key)) {
4209 to[key] = from[key];
4210 }
4211 }
4212
4213 if (getOwnPropertySymbols) {
4214 symbols = getOwnPropertySymbols(from);
4215 for (var i = 0; i < symbols.length; i++) {
4216 if (propIsEnumerable.call(from, symbols[i])) {
4217 to[symbols[i]] = from[symbols[i]];
4218 }
4219 }
4220 }
4221 }
4222
4223 return to;
4224 };
4225
4226
4227 /***/ }),
4228
4229 /***/ "./node_modules/raven-js/src/configError.js":
4230 /*!**************************************************!*\
4231 !*** ./node_modules/raven-js/src/configError.js ***!
4232 \**************************************************/
4233 /***/ ((module) => {
4234
4235 function RavenConfigError(message) {
4236 this.name = 'RavenConfigError';
4237 this.message = message;
4238 }
4239 RavenConfigError.prototype = new Error();
4240 RavenConfigError.prototype.constructor = RavenConfigError;
4241
4242 module.exports = RavenConfigError;
4243
4244
4245 /***/ }),
4246
4247 /***/ "./node_modules/raven-js/src/console.js":
4248 /*!**********************************************!*\
4249 !*** ./node_modules/raven-js/src/console.js ***!
4250 \**********************************************/
4251 /***/ ((module) => {
4252
4253 var wrapMethod = function(console, level, callback) {
4254 var originalConsoleLevel = console[level];
4255 var originalConsole = console;
4256
4257 if (!(level in console)) {
4258 return;
4259 }
4260
4261 var sentryLevel = level === 'warn' ? 'warning' : level;
4262
4263 console[level] = function() {
4264 var args = [].slice.call(arguments);
4265
4266 var msg = '' + args.join(' ');
4267 var data = {level: sentryLevel, logger: 'console', extra: {arguments: args}};
4268
4269 if (level === 'assert') {
4270 if (args[0] === false) {
4271 // Default browsers message
4272 msg = 'Assertion failed: ' + (args.slice(1).join(' ') || 'console.assert');
4273 data.extra.arguments = args.slice(1);
4274 callback && callback(msg, data);
4275 }
4276 } else {
4277 callback && callback(msg, data);
4278 }
4279
4280 // this fails for some browsers. :(
4281 if (originalConsoleLevel) {
4282 // IE9 doesn't allow calling apply on console functions directly
4283 // See: https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193
4284 Function.prototype.apply.call(originalConsoleLevel, originalConsole, args);
4285 }
4286 };
4287 };
4288
4289 module.exports = {
4290 wrapMethod: wrapMethod
4291 };
4292
4293
4294 /***/ }),
4295
4296 /***/ "./node_modules/raven-js/src/raven.js":
4297 /*!********************************************!*\
4298 !*** ./node_modules/raven-js/src/raven.js ***!
4299 \********************************************/
4300 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
4301
4302 /*global XDomainRequest:false */
4303
4304 var TraceKit = __webpack_require__(/*! ../vendor/TraceKit/tracekit */ "./node_modules/raven-js/vendor/TraceKit/tracekit.js");
4305 var stringify = __webpack_require__(/*! ../vendor/json-stringify-safe/stringify */ "./node_modules/raven-js/vendor/json-stringify-safe/stringify.js");
4306 var RavenConfigError = __webpack_require__(/*! ./configError */ "./node_modules/raven-js/src/configError.js");
4307
4308 var utils = __webpack_require__(/*! ./utils */ "./node_modules/raven-js/src/utils.js");
4309 var isError = utils.isError;
4310 var isObject = utils.isObject;
4311 var isObject = utils.isObject;
4312 var isErrorEvent = utils.isErrorEvent;
4313 var isUndefined = utils.isUndefined;
4314 var isFunction = utils.isFunction;
4315 var isString = utils.isString;
4316 var isEmptyObject = utils.isEmptyObject;
4317 var each = utils.each;
4318 var objectMerge = utils.objectMerge;
4319 var truncate = utils.truncate;
4320 var objectFrozen = utils.objectFrozen;
4321 var hasKey = utils.hasKey;
4322 var joinRegExp = utils.joinRegExp;
4323 var urlencode = utils.urlencode;
4324 var uuid4 = utils.uuid4;
4325 var htmlTreeAsString = utils.htmlTreeAsString;
4326 var isSameException = utils.isSameException;
4327 var isSameStacktrace = utils.isSameStacktrace;
4328 var parseUrl = utils.parseUrl;
4329 var fill = utils.fill;
4330
4331 var wrapConsoleMethod = (__webpack_require__(/*! ./console */ "./node_modules/raven-js/src/console.js").wrapMethod);
4332
4333 var dsnKeys = 'source protocol user pass host port path'.split(' '),
4334 dsnPattern = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/;
4335
4336 function now() {
4337 return +new Date();
4338 }
4339
4340 // This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)
4341 var _window =
4342 typeof window !== 'undefined'
4343 ? window
4344 : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
4345 var _document = _window.document;
4346 var _navigator = _window.navigator;
4347
4348 function keepOriginalCallback(original, callback) {
4349 return isFunction(callback)
4350 ? function(data) {
4351 return callback(data, original);
4352 }
4353 : callback;
4354 }
4355
4356 // First, check for JSON support
4357 // If there is no JSON, we no-op the core features of Raven
4358 // since JSON is required to encode the payload
4359 function Raven() {
4360 this._hasJSON = !!(typeof JSON === 'object' && JSON.stringify);
4361 // Raven can run in contexts where there's no document (react-native)
4362 this._hasDocument = !isUndefined(_document);
4363 this._hasNavigator = !isUndefined(_navigator);
4364 this._lastCapturedException = null;
4365 this._lastData = null;
4366 this._lastEventId = null;
4367 this._globalServer = null;
4368 this._globalKey = null;
4369 this._globalProject = null;
4370 this._globalContext = {};
4371 this._globalOptions = {
4372 logger: 'javascript',
4373 ignoreErrors: [],
4374 ignoreUrls: [],
4375 whitelistUrls: [],
4376 includePaths: [],
4377 collectWindowErrors: true,
4378 maxMessageLength: 0,
4379
4380 // By default, truncates URL values to 250 chars
4381 maxUrlLength: 250,
4382 stackTraceLimit: 50,
4383 autoBreadcrumbs: true,
4384 instrument: true,
4385 sampleRate: 1
4386 };
4387 this._ignoreOnError = 0;
4388 this._isRavenInstalled = false;
4389 this._originalErrorStackTraceLimit = Error.stackTraceLimit;
4390 // capture references to window.console *and* all its methods first
4391 // before the console plugin has a chance to monkey patch
4392 this._originalConsole = _window.console || {};
4393 this._originalConsoleMethods = {};
4394 this._plugins = [];
4395 this._startTime = now();
4396 this._wrappedBuiltIns = [];
4397 this._breadcrumbs = [];
4398 this._lastCapturedEvent = null;
4399 this._keypressTimeout;
4400 this._location = _window.location;
4401 this._lastHref = this._location && this._location.href;
4402 this._resetBackoff();
4403
4404 // eslint-disable-next-line guard-for-in
4405 for (var method in this._originalConsole) {
4406 this._originalConsoleMethods[method] = this._originalConsole[method];
4407 }
4408 }
4409
4410 /*
4411 * The core Raven singleton
4412 *
4413 * @this {Raven}
4414 */
4415
4416 Raven.prototype = {
4417 // Hardcode version string so that raven source can be loaded directly via
4418 // webpack (using a build step causes webpack #1617). Grunt verifies that
4419 // this value matches package.json during build.
4420 // See: https://github.com/getsentry/raven-js/issues/465
4421 VERSION: '3.19.1',
4422
4423 debug: false,
4424
4425 TraceKit: TraceKit, // alias to TraceKit
4426
4427 /*
4428 * Configure Raven with a DSN and extra options
4429 *
4430 * @param {string} dsn The public Sentry DSN
4431 * @param {object} options Set of global options [optional]
4432 * @return {Raven}
4433 */
4434 config: function(dsn, options) {
4435 var self = this;
4436
4437 if (self._globalServer) {
4438 this._logDebug('error', 'Error: Raven has already been configured');
4439 return self;
4440 }
4441 if (!dsn) return self;
4442
4443 var globalOptions = self._globalOptions;
4444
4445 // merge in options
4446 if (options) {
4447 each(options, function(key, value) {
4448 // tags and extra are special and need to be put into context
4449 if (key === 'tags' || key === 'extra' || key === 'user') {
4450 self._globalContext[key] = value;
4451 } else {
4452 globalOptions[key] = value;
4453 }
4454 });
4455 }
4456
4457 self.setDSN(dsn);
4458
4459 // "Script error." is hard coded into browsers for errors that it can't read.
4460 // this is the result of a script being pulled in from an external domain and CORS.
4461 globalOptions.ignoreErrors.push(/^Script error\.?$/);
4462 globalOptions.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/);
4463
4464 // join regexp rules into one big rule
4465 globalOptions.ignoreErrors = joinRegExp(globalOptions.ignoreErrors);
4466 globalOptions.ignoreUrls = globalOptions.ignoreUrls.length
4467 ? joinRegExp(globalOptions.ignoreUrls)
4468 : false;
4469 globalOptions.whitelistUrls = globalOptions.whitelistUrls.length
4470 ? joinRegExp(globalOptions.whitelistUrls)
4471 : false;
4472 globalOptions.includePaths = joinRegExp(globalOptions.includePaths);
4473 globalOptions.maxBreadcrumbs = Math.max(
4474 0,
4475 Math.min(globalOptions.maxBreadcrumbs || 100, 100)
4476 ); // default and hard limit is 100
4477
4478 var autoBreadcrumbDefaults = {
4479 xhr: true,
4480 console: true,
4481 dom: true,
4482 location: true
4483 };
4484
4485 var autoBreadcrumbs = globalOptions.autoBreadcrumbs;
4486 if ({}.toString.call(autoBreadcrumbs) === '[object Object]') {
4487 autoBreadcrumbs = objectMerge(autoBreadcrumbDefaults, autoBreadcrumbs);
4488 } else if (autoBreadcrumbs !== false) {
4489 autoBreadcrumbs = autoBreadcrumbDefaults;
4490 }
4491 globalOptions.autoBreadcrumbs = autoBreadcrumbs;
4492
4493 var instrumentDefaults = {
4494 tryCatch: true
4495 };
4496
4497 var instrument = globalOptions.instrument;
4498 if ({}.toString.call(instrument) === '[object Object]') {
4499 instrument = objectMerge(instrumentDefaults, instrument);
4500 } else if (instrument !== false) {
4501 instrument = instrumentDefaults;
4502 }
4503 globalOptions.instrument = instrument;
4504
4505 TraceKit.collectWindowErrors = !!globalOptions.collectWindowErrors;
4506
4507 // return for chaining
4508 return self;
4509 },
4510
4511 /*
4512 * Installs a global window.onerror error handler
4513 * to capture and report uncaught exceptions.
4514 * At this point, install() is required to be called due
4515 * to the way TraceKit is set up.
4516 *
4517 * @return {Raven}
4518 */
4519 install: function() {
4520 var self = this;
4521 if (self.isSetup() && !self._isRavenInstalled) {
4522 TraceKit.report.subscribe(function() {
4523 self._handleOnErrorStackInfo.apply(self, arguments);
4524 });
4525 if (self._globalOptions.instrument && self._globalOptions.instrument.tryCatch) {
4526 self._instrumentTryCatch();
4527 }
4528
4529 if (self._globalOptions.autoBreadcrumbs) self._instrumentBreadcrumbs();
4530
4531 // Install all of the plugins
4532 self._drainPlugins();
4533
4534 self._isRavenInstalled = true;
4535 }
4536
4537 Error.stackTraceLimit = self._globalOptions.stackTraceLimit;
4538 return this;
4539 },
4540
4541 /*
4542 * Set the DSN (can be called multiple time unlike config)
4543 *
4544 * @param {string} dsn The public Sentry DSN
4545 */
4546 setDSN: function(dsn) {
4547 var self = this,
4548 uri = self._parseDSN(dsn),
4549 lastSlash = uri.path.lastIndexOf('/'),
4550 path = uri.path.substr(1, lastSlash);
4551
4552 self._dsn = dsn;
4553 self._globalKey = uri.user;
4554 self._globalSecret = uri.pass && uri.pass.substr(1);
4555 self._globalProject = uri.path.substr(lastSlash + 1);
4556
4557 self._globalServer = self._getGlobalServer(uri);
4558
4559 self._globalEndpoint =
4560 self._globalServer + '/' + path + 'api/' + self._globalProject + '/store/';
4561
4562 // Reset backoff state since we may be pointing at a
4563 // new project/server
4564 this._resetBackoff();
4565 },
4566
4567 /*
4568 * Wrap code within a context so Raven can capture errors
4569 * reliably across domains that is executed immediately.
4570 *
4571 * @param {object} options A specific set of options for this context [optional]
4572 * @param {function} func The callback to be immediately executed within the context
4573 * @param {array} args An array of arguments to be called with the callback [optional]
4574 */
4575 context: function(options, func, args) {
4576 if (isFunction(options)) {
4577 args = func || [];
4578 func = options;
4579 options = undefined;
4580 }
4581
4582 return this.wrap(options, func).apply(this, args);
4583 },
4584
4585 /*
4586 * Wrap code within a context and returns back a new function to be executed
4587 *
4588 * @param {object} options A specific set of options for this context [optional]
4589 * @param {function} func The function to be wrapped in a new context
4590 * @param {function} func A function to call before the try/catch wrapper [optional, private]
4591 * @return {function} The newly wrapped functions with a context
4592 */
4593 wrap: function(options, func, _before) {
4594 var self = this;
4595 // 1 argument has been passed, and it's not a function
4596 // so just return it
4597 if (isUndefined(func) && !isFunction(options)) {
4598 return options;
4599 }
4600
4601 // options is optional
4602 if (isFunction(options)) {
4603 func = options;
4604 options = undefined;
4605 }
4606
4607 // At this point, we've passed along 2 arguments, and the second one
4608 // is not a function either, so we'll just return the second argument.
4609 if (!isFunction(func)) {
4610 return func;
4611 }
4612
4613 // We don't wanna wrap it twice!
4614 try {
4615 if (func.__raven__) {
4616 return func;
4617 }
4618
4619 // If this has already been wrapped in the past, return that
4620 if (func.__raven_wrapper__) {
4621 return func.__raven_wrapper__;
4622 }
4623 } catch (e) {
4624 // Just accessing custom props in some Selenium environments
4625 // can cause a "Permission denied" exception (see raven-js#495).
4626 // Bail on wrapping and return the function as-is (defers to window.onerror).
4627 return func;
4628 }
4629
4630 function wrapped() {
4631 var args = [],
4632 i = arguments.length,
4633 deep = !options || (options && options.deep !== false);
4634
4635 if (_before && isFunction(_before)) {
4636 _before.apply(this, arguments);
4637 }
4638
4639 // Recursively wrap all of a function's arguments that are
4640 // functions themselves.
4641 while (i--) args[i] = deep ? self.wrap(options, arguments[i]) : arguments[i];
4642
4643 try {
4644 // Attempt to invoke user-land function
4645 // NOTE: If you are a Sentry user, and you are seeing this stack frame, it
4646 // means Raven caught an error invoking your application code. This is
4647 // expected behavior and NOT indicative of a bug with Raven.js.
4648 return func.apply(this, args);
4649 } catch (e) {
4650 self._ignoreNextOnError();
4651 self.captureException(e, options);
4652 throw e;
4653 }
4654 }
4655
4656 // copy over properties of the old function
4657 for (var property in func) {
4658 if (hasKey(func, property)) {
4659 wrapped[property] = func[property];
4660 }
4661 }
4662 wrapped.prototype = func.prototype;
4663
4664 func.__raven_wrapper__ = wrapped;
4665 // Signal that this function has been wrapped already
4666 // for both debugging and to prevent it to being wrapped twice
4667 wrapped.__raven__ = true;
4668 wrapped.__inner__ = func;
4669
4670 return wrapped;
4671 },
4672
4673 /*
4674 * Uninstalls the global error handler.
4675 *
4676 * @return {Raven}
4677 */
4678 uninstall: function() {
4679 TraceKit.report.uninstall();
4680
4681 this._restoreBuiltIns();
4682
4683 Error.stackTraceLimit = this._originalErrorStackTraceLimit;
4684 this._isRavenInstalled = false;
4685
4686 return this;
4687 },
4688
4689 /*
4690 * Manually capture an exception and send it over to Sentry
4691 *
4692 * @param {error} ex An exception to be logged
4693 * @param {object} options A specific set of options for this error [optional]
4694 * @return {Raven}
4695 */
4696 captureException: function(ex, options) {
4697 // Cases for sending ex as a message, rather than an exception
4698 var isNotError = !isError(ex);
4699 var isNotErrorEvent = !isErrorEvent(ex);
4700 var isErrorEventWithoutError = isErrorEvent(ex) && !ex.error;
4701
4702 if ((isNotError && isNotErrorEvent) || isErrorEventWithoutError) {
4703 return this.captureMessage(
4704 ex,
4705 objectMerge(
4706 {
4707 trimHeadFrames: 1,
4708 stacktrace: true // if we fall back to captureMessage, default to attempting a new trace
4709 },
4710 options
4711 )
4712 );
4713 }
4714
4715 // Get actual Error from ErrorEvent
4716 if (isErrorEvent(ex)) ex = ex.error;
4717
4718 // Store the raw exception object for potential debugging and introspection
4719 this._lastCapturedException = ex;
4720
4721 // TraceKit.report will re-raise any exception passed to it,
4722 // which means you have to wrap it in try/catch. Instead, we
4723 // can wrap it here and only re-raise if TraceKit.report
4724 // raises an exception different from the one we asked to
4725 // report on.
4726 try {
4727 var stack = TraceKit.computeStackTrace(ex);
4728 this._handleStackInfo(stack, options);
4729 } catch (ex1) {
4730 if (ex !== ex1) {
4731 throw ex1;
4732 }
4733 }
4734
4735 return this;
4736 },
4737
4738 /*
4739 * Manually send a message to Sentry
4740 *
4741 * @param {string} msg A plain message to be captured in Sentry
4742 * @param {object} options A specific set of options for this message [optional]
4743 * @return {Raven}
4744 */
4745 captureMessage: function(msg, options) {
4746 // config() automagically converts ignoreErrors from a list to a RegExp so we need to test for an
4747 // early call; we'll error on the side of logging anything called before configuration since it's
4748 // probably something you should see:
4749 if (
4750 !!this._globalOptions.ignoreErrors.test &&
4751 this._globalOptions.ignoreErrors.test(msg)
4752 ) {
4753 return;
4754 }
4755
4756 options = options || {};
4757
4758 var data = objectMerge(
4759 {
4760 message: msg + '' // Make sure it's actually a string
4761 },
4762 options
4763 );
4764
4765 var ex;
4766 // Generate a "synthetic" stack trace from this point.
4767 // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative
4768 // of a bug with Raven.js. Sentry generates synthetic traces either by configuration,
4769 // or if it catches a thrown object without a "stack" property.
4770 try {
4771 throw new Error(msg);
4772 } catch (ex1) {
4773 ex = ex1;
4774 }
4775
4776 // null exception name so `Error` isn't prefixed to msg
4777 ex.name = null;
4778 var stack = TraceKit.computeStackTrace(ex);
4779
4780 // stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1]
4781 var initialCall = stack.stack[1];
4782
4783 var fileurl = (initialCall && initialCall.url) || '';
4784
4785 if (
4786 !!this._globalOptions.ignoreUrls.test &&
4787 this._globalOptions.ignoreUrls.test(fileurl)
4788 ) {
4789 return;
4790 }
4791
4792 if (
4793 !!this._globalOptions.whitelistUrls.test &&
4794 !this._globalOptions.whitelistUrls.test(fileurl)
4795 ) {
4796 return;
4797 }
4798
4799 if (this._globalOptions.stacktrace || (options && options.stacktrace)) {
4800 options = objectMerge(
4801 {
4802 // fingerprint on msg, not stack trace (legacy behavior, could be
4803 // revisited)
4804 fingerprint: msg,
4805 // since we know this is a synthetic trace, the top N-most frames
4806 // MUST be from Raven.js, so mark them as in_app later by setting
4807 // trimHeadFrames
4808 trimHeadFrames: (options.trimHeadFrames || 0) + 1
4809 },
4810 options
4811 );
4812
4813 var frames = this._prepareFrames(stack, options);
4814 data.stacktrace = {
4815 // Sentry expects frames oldest to newest
4816 frames: frames.reverse()
4817 };
4818 }
4819
4820 // Fire away!
4821 this._send(data);
4822
4823 return this;
4824 },
4825
4826 captureBreadcrumb: function(obj) {
4827 var crumb = objectMerge(
4828 {
4829 timestamp: now() / 1000
4830 },
4831 obj
4832 );
4833
4834 if (isFunction(this._globalOptions.breadcrumbCallback)) {
4835 var result = this._globalOptions.breadcrumbCallback(crumb);
4836
4837 if (isObject(result) && !isEmptyObject(result)) {
4838 crumb = result;
4839 } else if (result === false) {
4840 return this;
4841 }
4842 }
4843
4844 this._breadcrumbs.push(crumb);
4845 if (this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs) {
4846 this._breadcrumbs.shift();
4847 }
4848 return this;
4849 },
4850
4851 addPlugin: function(plugin /*arg1, arg2, ... argN*/) {
4852 var pluginArgs = [].slice.call(arguments, 1);
4853
4854 this._plugins.push([plugin, pluginArgs]);
4855 if (this._isRavenInstalled) {
4856 this._drainPlugins();
4857 }
4858
4859 return this;
4860 },
4861
4862 /*
4863 * Set/clear a user to be sent along with the payload.
4864 *
4865 * @param {object} user An object representing user data [optional]
4866 * @return {Raven}
4867 */
4868 setUserContext: function(user) {
4869 // Intentionally do not merge here since that's an unexpected behavior.
4870 this._globalContext.user = user;
4871
4872 return this;
4873 },
4874
4875 /*
4876 * Merge extra attributes to be sent along with the payload.
4877 *
4878 * @param {object} extra An object representing extra data [optional]
4879 * @return {Raven}
4880 */
4881 setExtraContext: function(extra) {
4882 this._mergeContext('extra', extra);
4883
4884 return this;
4885 },
4886
4887 /*
4888 * Merge tags to be sent along with the payload.
4889 *
4890 * @param {object} tags An object representing tags [optional]
4891 * @return {Raven}
4892 */
4893 setTagsContext: function(tags) {
4894 this._mergeContext('tags', tags);
4895
4896 return this;
4897 },
4898
4899 /*
4900 * Clear all of the context.
4901 *
4902 * @return {Raven}
4903 */
4904 clearContext: function() {
4905 this._globalContext = {};
4906
4907 return this;
4908 },
4909
4910 /*
4911 * Get a copy of the current context. This cannot be mutated.
4912 *
4913 * @return {object} copy of context
4914 */
4915 getContext: function() {
4916 // lol javascript
4917 return JSON.parse(stringify(this._globalContext));
4918 },
4919
4920 /*
4921 * Set environment of application
4922 *
4923 * @param {string} environment Typically something like 'production'.
4924 * @return {Raven}
4925 */
4926 setEnvironment: function(environment) {
4927 this._globalOptions.environment = environment;
4928
4929 return this;
4930 },
4931
4932 /*
4933 * Set release version of application
4934 *
4935 * @param {string} release Typically something like a git SHA to identify version
4936 * @return {Raven}
4937 */
4938 setRelease: function(release) {
4939 this._globalOptions.release = release;
4940
4941 return this;
4942 },
4943
4944 /*
4945 * Set the dataCallback option
4946 *
4947 * @param {function} callback The callback to run which allows the
4948 * data blob to be mutated before sending
4949 * @return {Raven}
4950 */
4951 setDataCallback: function(callback) {
4952 var original = this._globalOptions.dataCallback;
4953 this._globalOptions.dataCallback = keepOriginalCallback(original, callback);
4954 return this;
4955 },
4956
4957 /*
4958 * Set the breadcrumbCallback option
4959 *
4960 * @param {function} callback The callback to run which allows filtering
4961 * or mutating breadcrumbs
4962 * @return {Raven}
4963 */
4964 setBreadcrumbCallback: function(callback) {
4965 var original = this._globalOptions.breadcrumbCallback;
4966 this._globalOptions.breadcrumbCallback = keepOriginalCallback(original, callback);
4967 return this;
4968 },
4969
4970 /*
4971 * Set the shouldSendCallback option
4972 *
4973 * @param {function} callback The callback to run which allows
4974 * introspecting the blob before sending
4975 * @return {Raven}
4976 */
4977 setShouldSendCallback: function(callback) {
4978 var original = this._globalOptions.shouldSendCallback;
4979 this._globalOptions.shouldSendCallback = keepOriginalCallback(original, callback);
4980 return this;
4981 },
4982
4983 /**
4984 * Override the default HTTP transport mechanism that transmits data
4985 * to the Sentry server.
4986 *
4987 * @param {function} transport Function invoked instead of the default
4988 * `makeRequest` handler.
4989 *
4990 * @return {Raven}
4991 */
4992 setTransport: function(transport) {
4993 this._globalOptions.transport = transport;
4994
4995 return this;
4996 },
4997
4998 /*
4999 * Get the latest raw exception that was captured by Raven.
5000 *
5001 * @return {error}
5002 */
5003 lastException: function() {
5004 return this._lastCapturedException;
5005 },
5006
5007 /*
5008 * Get the last event id
5009 *
5010 * @return {string}
5011 */
5012 lastEventId: function() {
5013 return this._lastEventId;
5014 },
5015
5016 /*
5017 * Determine if Raven is setup and ready to go.
5018 *
5019 * @return {boolean}
5020 */
5021 isSetup: function() {
5022 if (!this._hasJSON) return false; // needs JSON support
5023 if (!this._globalServer) {
5024 if (!this.ravenNotConfiguredError) {
5025 this.ravenNotConfiguredError = true;
5026 this._logDebug('error', 'Error: Raven has not been configured.');
5027 }
5028 return false;
5029 }
5030 return true;
5031 },
5032
5033 afterLoad: function() {
5034 // TODO: remove window dependence?
5035
5036 // Attempt to initialize Raven on load
5037 var RavenConfig = _window.RavenConfig;
5038 if (RavenConfig) {
5039 this.config(RavenConfig.dsn, RavenConfig.config).install();
5040 }
5041 },
5042
5043 showReportDialog: function(options) {
5044 if (
5045 !_document // doesn't work without a document (React native)
5046 )
5047 return;
5048
5049 options = options || {};
5050
5051 var lastEventId = options.eventId || this.lastEventId();
5052 if (!lastEventId) {
5053 throw new RavenConfigError('Missing eventId');
5054 }
5055
5056 var dsn = options.dsn || this._dsn;
5057 if (!dsn) {
5058 throw new RavenConfigError('Missing DSN');
5059 }
5060
5061 var encode = encodeURIComponent;
5062 var qs = '';
5063 qs += '?eventId=' + encode(lastEventId);
5064 qs += '&dsn=' + encode(dsn);
5065
5066 var user = options.user || this._globalContext.user;
5067 if (user) {
5068 if (user.name) qs += '&name=' + encode(user.name);
5069 if (user.email) qs += '&email=' + encode(user.email);
5070 }
5071
5072 var globalServer = this._getGlobalServer(this._parseDSN(dsn));
5073
5074 var script = _document.createElement('script');
5075 script.async = true;
5076 script.src = globalServer + '/api/embed/error-page/' + qs;
5077 (_document.head || _document.body).appendChild(script);
5078 },
5079
5080 /**** Private functions ****/
5081 _ignoreNextOnError: function() {
5082 var self = this;
5083 this._ignoreOnError += 1;
5084 setTimeout(function() {
5085 // onerror should trigger before setTimeout
5086 self._ignoreOnError -= 1;
5087 });
5088 },
5089
5090 _triggerEvent: function(eventType, options) {
5091 // NOTE: `event` is a native browser thing, so let's avoid conflicting wiht it
5092 var evt, key;
5093
5094 if (!this._hasDocument) return;
5095
5096 options = options || {};
5097
5098 eventType = 'raven' + eventType.substr(0, 1).toUpperCase() + eventType.substr(1);
5099
5100 if (_document.createEvent) {
5101 evt = _document.createEvent('HTMLEvents');
5102 evt.initEvent(eventType, true, true);
5103 } else {
5104 evt = _document.createEventObject();
5105 evt.eventType = eventType;
5106 }
5107
5108 for (key in options)
5109 if (hasKey(options, key)) {
5110 evt[key] = options[key];
5111 }
5112
5113 if (_document.createEvent) {
5114 // IE9 if standards
5115 _document.dispatchEvent(evt);
5116 } else {
5117 // IE8 regardless of Quirks or Standards
5118 // IE9 if quirks
5119 try {
5120 _document.fireEvent('on' + evt.eventType.toLowerCase(), evt);
5121 } catch (e) {
5122 // Do nothing
5123 }
5124 }
5125 },
5126
5127 /**
5128 * Wraps addEventListener to capture UI breadcrumbs
5129 * @param evtName the event name (e.g. "click")
5130 * @returns {Function}
5131 * @private
5132 */
5133 _breadcrumbEventHandler: function(evtName) {
5134 var self = this;
5135 return function(evt) {
5136 // reset keypress timeout; e.g. triggering a 'click' after
5137 // a 'keypress' will reset the keypress debounce so that a new
5138 // set of keypresses can be recorded
5139 self._keypressTimeout = null;
5140
5141 // It's possible this handler might trigger multiple times for the same
5142 // event (e.g. event propagation through node ancestors). Ignore if we've
5143 // already captured the event.
5144 if (self._lastCapturedEvent === evt) return;
5145
5146 self._lastCapturedEvent = evt;
5147
5148 // try/catch both:
5149 // - accessing evt.target (see getsentry/raven-js#838, #768)
5150 // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly
5151 // can throw an exception in some circumstances.
5152 var target;
5153 try {
5154 target = htmlTreeAsString(evt.target);
5155 } catch (e) {
5156 target = '<unknown>';
5157 }
5158
5159 self.captureBreadcrumb({
5160 category: 'ui.' + evtName, // e.g. ui.click, ui.input
5161 message: target
5162 });
5163 };
5164 },
5165
5166 /**
5167 * Wraps addEventListener to capture keypress UI events
5168 * @returns {Function}
5169 * @private
5170 */
5171 _keypressEventHandler: function() {
5172 var self = this,
5173 debounceDuration = 1000; // milliseconds
5174
5175 // TODO: if somehow user switches keypress target before
5176 // debounce timeout is triggered, we will only capture
5177 // a single breadcrumb from the FIRST target (acceptable?)
5178 return function(evt) {
5179 var target;
5180 try {
5181 target = evt.target;
5182 } catch (e) {
5183 // just accessing event properties can throw an exception in some rare circumstances
5184 // see: https://github.com/getsentry/raven-js/issues/838
5185 return;
5186 }
5187 var tagName = target && target.tagName;
5188
5189 // only consider keypress events on actual input elements
5190 // this will disregard keypresses targeting body (e.g. tabbing
5191 // through elements, hotkeys, etc)
5192 if (
5193 !tagName ||
5194 (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable)
5195 )
5196 return;
5197
5198 // record first keypress in a series, but ignore subsequent
5199 // keypresses until debounce clears
5200 var timeout = self._keypressTimeout;
5201 if (!timeout) {
5202 self._breadcrumbEventHandler('input')(evt);
5203 }
5204 clearTimeout(timeout);
5205 self._keypressTimeout = setTimeout(function() {
5206 self._keypressTimeout = null;
5207 }, debounceDuration);
5208 };
5209 },
5210
5211 /**
5212 * Captures a breadcrumb of type "navigation", normalizing input URLs
5213 * @param to the originating URL
5214 * @param from the target URL
5215 * @private
5216 */
5217 _captureUrlChange: function(from, to) {
5218 var parsedLoc = parseUrl(this._location.href);
5219 var parsedTo = parseUrl(to);
5220 var parsedFrom = parseUrl(from);
5221
5222 // because onpopstate only tells you the "new" (to) value of location.href, and
5223 // not the previous (from) value, we need to track the value of the current URL
5224 // state ourselves
5225 this._lastHref = to;
5226
5227 // Use only the path component of the URL if the URL matches the current
5228 // document (almost all the time when using pushState)
5229 if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host)
5230 to = parsedTo.relative;
5231 if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host)
5232 from = parsedFrom.relative;
5233
5234 this.captureBreadcrumb({
5235 category: 'navigation',
5236 data: {
5237 to: to,
5238 from: from
5239 }
5240 });
5241 },
5242
5243 /**
5244 * Wrap timer functions and event targets to catch errors and provide
5245 * better metadata.
5246 */
5247 _instrumentTryCatch: function() {
5248 var self = this;
5249
5250 var wrappedBuiltIns = self._wrappedBuiltIns;
5251
5252 function wrapTimeFn(orig) {
5253 return function(fn, t) {
5254 // preserve arity
5255 // Make a copy of the arguments to prevent deoptimization
5256 // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments
5257 var args = new Array(arguments.length);
5258 for (var i = 0; i < args.length; ++i) {
5259 args[i] = arguments[i];
5260 }
5261 var originalCallback = args[0];
5262 if (isFunction(originalCallback)) {
5263 args[0] = self.wrap(originalCallback);
5264 }
5265
5266 // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it
5267 // also supports only two arguments and doesn't care what this is, so we
5268 // can just call the original function directly.
5269 if (orig.apply) {
5270 return orig.apply(this, args);
5271 } else {
5272 return orig(args[0], args[1]);
5273 }
5274 };
5275 }
5276
5277 var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;
5278
5279 function wrapEventTarget(global) {
5280 var proto = _window[global] && _window[global].prototype;
5281 if (proto && proto.hasOwnProperty && proto.hasOwnProperty('addEventListener')) {
5282 fill(
5283 proto,
5284 'addEventListener',
5285 function(orig) {
5286 return function(evtName, fn, capture, secure) {
5287 // preserve arity
5288 try {
5289 if (fn && fn.handleEvent) {
5290 fn.handleEvent = self.wrap(fn.handleEvent);
5291 }
5292 } catch (err) {
5293 // can sometimes get 'Permission denied to access property "handle Event'
5294 }
5295
5296 // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs`
5297 // so that we don't have more than one wrapper function
5298 var before, clickHandler, keypressHandler;
5299
5300 if (
5301 autoBreadcrumbs &&
5302 autoBreadcrumbs.dom &&
5303 (global === 'EventTarget' || global === 'Node')
5304 ) {
5305 // NOTE: generating multiple handlers per addEventListener invocation, should
5306 // revisit and verify we can just use one (almost certainly)
5307 clickHandler = self._breadcrumbEventHandler('click');
5308 keypressHandler = self._keypressEventHandler();
5309 before = function(evt) {
5310 // need to intercept every DOM event in `before` argument, in case that
5311 // same wrapped method is re-used for different events (e.g. mousemove THEN click)
5312 // see #724
5313 if (!evt) return;
5314
5315 var eventType;
5316 try {
5317 eventType = evt.type;
5318 } catch (e) {
5319 // just accessing event properties can throw an exception in some rare circumstances
5320 // see: https://github.com/getsentry/raven-js/issues/838
5321 return;
5322 }
5323 if (eventType === 'click') return clickHandler(evt);
5324 else if (eventType === 'keypress') return keypressHandler(evt);
5325 };
5326 }
5327 return orig.call(
5328 this,
5329 evtName,
5330 self.wrap(fn, undefined, before),
5331 capture,
5332 secure
5333 );
5334 };
5335 },
5336 wrappedBuiltIns
5337 );
5338 fill(
5339 proto,
5340 'removeEventListener',
5341 function(orig) {
5342 return function(evt, fn, capture, secure) {
5343 try {
5344 fn = fn && (fn.__raven_wrapper__ ? fn.__raven_wrapper__ : fn);
5345 } catch (e) {
5346 // ignore, accessing __raven_wrapper__ will throw in some Selenium environments
5347 }
5348 return orig.call(this, evt, fn, capture, secure);
5349 };
5350 },
5351 wrappedBuiltIns
5352 );
5353 }
5354 }
5355
5356 fill(_window, 'setTimeout', wrapTimeFn, wrappedBuiltIns);
5357 fill(_window, 'setInterval', wrapTimeFn, wrappedBuiltIns);
5358 if (_window.requestAnimationFrame) {
5359 fill(
5360 _window,
5361 'requestAnimationFrame',
5362 function(orig) {
5363 return function(cb) {
5364 return orig(self.wrap(cb));
5365 };
5366 },
5367 wrappedBuiltIns
5368 );
5369 }
5370
5371 // event targets borrowed from bugsnag-js:
5372 // https://github.com/bugsnag/bugsnag-js/blob/master/src/bugsnag.js#L666
5373 var eventTargets = [
5374 'EventTarget',
5375 'Window',
5376 'Node',
5377 'ApplicationCache',
5378 'AudioTrackList',
5379 'ChannelMergerNode',
5380 'CryptoOperation',
5381 'EventSource',
5382 'FileReader',
5383 'HTMLUnknownElement',
5384 'IDBDatabase',
5385 'IDBRequest',
5386 'IDBTransaction',
5387 'KeyOperation',
5388 'MediaController',
5389 'MessagePort',
5390 'ModalWindow',
5391 'Notification',
5392 'SVGElementInstance',
5393 'Screen',
5394 'TextTrack',
5395 'TextTrackCue',
5396 'TextTrackList',
5397 'WebSocket',
5398 'WebSocketWorker',
5399 'Worker',
5400 'XMLHttpRequest',
5401 'XMLHttpRequestEventTarget',
5402 'XMLHttpRequestUpload'
5403 ];
5404 for (var i = 0; i < eventTargets.length; i++) {
5405 wrapEventTarget(eventTargets[i]);
5406 }
5407 },
5408
5409 /**
5410 * Instrument browser built-ins w/ breadcrumb capturing
5411 * - XMLHttpRequests
5412 * - DOM interactions (click/typing)
5413 * - window.location changes
5414 * - console
5415 *
5416 * Can be disabled or individually configured via the `autoBreadcrumbs` config option
5417 */
5418 _instrumentBreadcrumbs: function() {
5419 var self = this;
5420 var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;
5421
5422 var wrappedBuiltIns = self._wrappedBuiltIns;
5423
5424 function wrapProp(prop, xhr) {
5425 if (prop in xhr && isFunction(xhr[prop])) {
5426 fill(xhr, prop, function(orig) {
5427 return self.wrap(orig);
5428 }); // intentionally don't track filled methods on XHR instances
5429 }
5430 }
5431
5432 if (autoBreadcrumbs.xhr && 'XMLHttpRequest' in _window) {
5433 var xhrproto = XMLHttpRequest.prototype;
5434 fill(
5435 xhrproto,
5436 'open',
5437 function(origOpen) {
5438 return function(method, url) {
5439 // preserve arity
5440
5441 // if Sentry key appears in URL, don't capture
5442 if (isString(url) && url.indexOf(self._globalKey) === -1) {
5443 this.__raven_xhr = {
5444 method: method,
5445 url: url,
5446 status_code: null
5447 };
5448 }
5449
5450 return origOpen.apply(this, arguments);
5451 };
5452 },
5453 wrappedBuiltIns
5454 );
5455
5456 fill(
5457 xhrproto,
5458 'send',
5459 function(origSend) {
5460 return function(data) {
5461 // preserve arity
5462 var xhr = this;
5463
5464 function onreadystatechangeHandler() {
5465 if (xhr.__raven_xhr && xhr.readyState === 4) {
5466 try {
5467 // touching statusCode in some platforms throws
5468 // an exception
5469 xhr.__raven_xhr.status_code = xhr.status;
5470 } catch (e) {
5471 /* do nothing */
5472 }
5473
5474 self.captureBreadcrumb({
5475 type: 'http',
5476 category: 'xhr',
5477 data: xhr.__raven_xhr
5478 });
5479 }
5480 }
5481
5482 var props = ['onload', 'onerror', 'onprogress'];
5483 for (var j = 0; j < props.length; j++) {
5484 wrapProp(props[j], xhr);
5485 }
5486
5487 if ('onreadystatechange' in xhr && isFunction(xhr.onreadystatechange)) {
5488 fill(
5489 xhr,
5490 'onreadystatechange',
5491 function(orig) {
5492 return self.wrap(orig, undefined, onreadystatechangeHandler);
5493 } /* intentionally don't track this instrumentation */
5494 );
5495 } else {
5496 // if onreadystatechange wasn't actually set by the page on this xhr, we
5497 // are free to set our own and capture the breadcrumb
5498 xhr.onreadystatechange = onreadystatechangeHandler;
5499 }
5500
5501 return origSend.apply(this, arguments);
5502 };
5503 },
5504 wrappedBuiltIns
5505 );
5506 }
5507
5508 if (autoBreadcrumbs.xhr && 'fetch' in _window) {
5509 fill(
5510 _window,
5511 'fetch',
5512 function(origFetch) {
5513 return function(fn, t) {
5514 // preserve arity
5515 // Make a copy of the arguments to prevent deoptimization
5516 // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments
5517 var args = new Array(arguments.length);
5518 for (var i = 0; i < args.length; ++i) {
5519 args[i] = arguments[i];
5520 }
5521
5522 var fetchInput = args[0];
5523 var method = 'GET';
5524 var url;
5525
5526 if (typeof fetchInput === 'string') {
5527 url = fetchInput;
5528 } else if ('Request' in _window && fetchInput instanceof _window.Request) {
5529 url = fetchInput.url;
5530 if (fetchInput.method) {
5531 method = fetchInput.method;
5532 }
5533 } else {
5534 url = '' + fetchInput;
5535 }
5536
5537 if (args[1] && args[1].method) {
5538 method = args[1].method;
5539 }
5540
5541 var fetchData = {
5542 method: method,
5543 url: url,
5544 status_code: null
5545 };
5546
5547 self.captureBreadcrumb({
5548 type: 'http',
5549 category: 'fetch',
5550 data: fetchData
5551 });
5552
5553 return origFetch.apply(this, args).then(function(response) {
5554 fetchData.status_code = response.status;
5555
5556 return response;
5557 });
5558 };
5559 },
5560 wrappedBuiltIns
5561 );
5562 }
5563
5564 // Capture breadcrumbs from any click that is unhandled / bubbled up all the way
5565 // to the document. Do this before we instrument addEventListener.
5566 if (autoBreadcrumbs.dom && this._hasDocument) {
5567 if (_document.addEventListener) {
5568 _document.addEventListener('click', self._breadcrumbEventHandler('click'), false);
5569 _document.addEventListener('keypress', self._keypressEventHandler(), false);
5570 } else {
5571 // IE8 Compatibility
5572 _document.attachEvent('onclick', self._breadcrumbEventHandler('click'));
5573 _document.attachEvent('onkeypress', self._keypressEventHandler());
5574 }
5575 }
5576
5577 // record navigation (URL) changes
5578 // NOTE: in Chrome App environment, touching history.pushState, *even inside
5579 // a try/catch block*, will cause Chrome to output an error to console.error
5580 // borrowed from: https://github.com/angular/angular.js/pull/13945/files
5581 var chrome = _window.chrome;
5582 var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;
5583 var hasPushAndReplaceState =
5584 !isChromePackagedApp &&
5585 _window.history &&
5586 history.pushState &&
5587 history.replaceState;
5588 if (autoBreadcrumbs.location && hasPushAndReplaceState) {
5589 // TODO: remove onpopstate handler on uninstall()
5590 var oldOnPopState = _window.onpopstate;
5591 _window.onpopstate = function() {
5592 var currentHref = self._location.href;
5593 self._captureUrlChange(self._lastHref, currentHref);
5594
5595 if (oldOnPopState) {
5596 return oldOnPopState.apply(this, arguments);
5597 }
5598 };
5599
5600 var historyReplacementFunction = function(origHistFunction) {
5601 // note history.pushState.length is 0; intentionally not declaring
5602 // params to preserve 0 arity
5603 return function(/* state, title, url */) {
5604 var url = arguments.length > 2 ? arguments[2] : undefined;
5605
5606 // url argument is optional
5607 if (url) {
5608 // coerce to string (this is what pushState does)
5609 self._captureUrlChange(self._lastHref, url + '');
5610 }
5611
5612 return origHistFunction.apply(this, arguments);
5613 };
5614 };
5615
5616 fill(history, 'pushState', historyReplacementFunction, wrappedBuiltIns);
5617 fill(history, 'replaceState', historyReplacementFunction, wrappedBuiltIns);
5618 }
5619
5620 if (autoBreadcrumbs.console && 'console' in _window && console.log) {
5621 // console
5622 var consoleMethodCallback = function(msg, data) {
5623 self.captureBreadcrumb({
5624 message: msg,
5625 level: data.level,
5626 category: 'console'
5627 });
5628 };
5629
5630 each(['debug', 'info', 'warn', 'error', 'log'], function(_, level) {
5631 wrapConsoleMethod(console, level, consoleMethodCallback);
5632 });
5633 }
5634 },
5635
5636 _restoreBuiltIns: function() {
5637 // restore any wrapped builtins
5638 var builtin;
5639 while (this._wrappedBuiltIns.length) {
5640 builtin = this._wrappedBuiltIns.shift();
5641
5642 var obj = builtin[0],
5643 name = builtin[1],
5644 orig = builtin[2];
5645
5646 obj[name] = orig;
5647 }
5648 },
5649
5650 _drainPlugins: function() {
5651 var self = this;
5652
5653 // FIX ME TODO
5654 each(this._plugins, function(_, plugin) {
5655 var installer = plugin[0];
5656 var args = plugin[1];
5657 installer.apply(self, [self].concat(args));
5658 });
5659 },
5660
5661 _parseDSN: function(str) {
5662 var m = dsnPattern.exec(str),
5663 dsn = {},
5664 i = 7;
5665
5666 try {
5667 while (i--) dsn[dsnKeys[i]] = m[i] || '';
5668 } catch (e) {
5669 throw new RavenConfigError('Invalid DSN: ' + str);
5670 }
5671
5672 if (dsn.pass && !this._globalOptions.allowSecretKey) {
5673 throw new RavenConfigError(
5674 'Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key'
5675 );
5676 }
5677
5678 return dsn;
5679 },
5680
5681 _getGlobalServer: function(uri) {
5682 // assemble the endpoint from the uri pieces
5683 var globalServer = '//' + uri.host + (uri.port ? ':' + uri.port : '');
5684
5685 if (uri.protocol) {
5686 globalServer = uri.protocol + ':' + globalServer;
5687 }
5688 return globalServer;
5689 },
5690
5691 _handleOnErrorStackInfo: function() {
5692 // if we are intentionally ignoring errors via onerror, bail out
5693 if (!this._ignoreOnError) {
5694 this._handleStackInfo.apply(this, arguments);
5695 }
5696 },
5697
5698 _handleStackInfo: function(stackInfo, options) {
5699 var frames = this._prepareFrames(stackInfo, options);
5700
5701 this._triggerEvent('handle', {
5702 stackInfo: stackInfo,
5703 options: options
5704 });
5705
5706 this._processException(
5707 stackInfo.name,
5708 stackInfo.message,
5709 stackInfo.url,
5710 stackInfo.lineno,
5711 frames,
5712 options
5713 );
5714 },
5715
5716 _prepareFrames: function(stackInfo, options) {
5717 var self = this;
5718 var frames = [];
5719 if (stackInfo.stack && stackInfo.stack.length) {
5720 each(stackInfo.stack, function(i, stack) {
5721 var frame = self._normalizeFrame(stack, stackInfo.url);
5722 if (frame) {
5723 frames.push(frame);
5724 }
5725 });
5726
5727 // e.g. frames captured via captureMessage throw
5728 if (options && options.trimHeadFrames) {
5729 for (var j = 0; j < options.trimHeadFrames && j < frames.length; j++) {
5730 frames[j].in_app = false;
5731 }
5732 }
5733 }
5734 frames = frames.slice(0, this._globalOptions.stackTraceLimit);
5735 return frames;
5736 },
5737
5738 _normalizeFrame: function(frame, stackInfoUrl) {
5739 // normalize the frames data
5740 var normalized = {
5741 filename: frame.url,
5742 lineno: frame.line,
5743 colno: frame.column,
5744 function: frame.func || '?'
5745 };
5746
5747 // Case when we don't have any information about the error
5748 // E.g. throwing a string or raw object, instead of an `Error` in Firefox
5749 // Generating synthetic error doesn't add any value here
5750 //
5751 // We should probably somehow let a user know that they should fix their code
5752 if (!frame.url) {
5753 normalized.filename = stackInfoUrl; // fallback to whole stacks url from onerror handler
5754 }
5755
5756 normalized.in_app = !// determine if an exception came from outside of our app
5757 // first we check the global includePaths list.
5758 (
5759 (!!this._globalOptions.includePaths.test &&
5760 !this._globalOptions.includePaths.test(normalized.filename)) ||
5761 // Now we check for fun, if the function name is Raven or TraceKit
5762 /(Raven|TraceKit)\./.test(normalized['function']) ||
5763 // finally, we do a last ditch effort and check for raven.min.js
5764 /raven\.(min\.)?js$/.test(normalized.filename)
5765 );
5766
5767 return normalized;
5768 },
5769
5770 _processException: function(type, message, fileurl, lineno, frames, options) {
5771 var prefixedMessage = (type ? type + ': ' : '') + (message || '');
5772 if (
5773 !!this._globalOptions.ignoreErrors.test &&
5774 (this._globalOptions.ignoreErrors.test(message) ||
5775 this._globalOptions.ignoreErrors.test(prefixedMessage))
5776 ) {
5777 return;
5778 }
5779
5780 var stacktrace;
5781
5782 if (frames && frames.length) {
5783 fileurl = frames[0].filename || fileurl;
5784 // Sentry expects frames oldest to newest
5785 // and JS sends them as newest to oldest
5786 frames.reverse();
5787 stacktrace = {frames: frames};
5788 } else if (fileurl) {
5789 stacktrace = {
5790 frames: [
5791 {
5792 filename: fileurl,
5793 lineno: lineno,
5794 in_app: true
5795 }
5796 ]
5797 };
5798 }
5799
5800 if (
5801 !!this._globalOptions.ignoreUrls.test &&
5802 this._globalOptions.ignoreUrls.test(fileurl)
5803 ) {
5804 return;
5805 }
5806
5807 if (
5808 !!this._globalOptions.whitelistUrls.test &&
5809 !this._globalOptions.whitelistUrls.test(fileurl)
5810 ) {
5811 return;
5812 }
5813
5814 var data = objectMerge(
5815 {
5816 // sentry.interfaces.Exception
5817 exception: {
5818 values: [
5819 {
5820 type: type,
5821 value: message,
5822 stacktrace: stacktrace
5823 }
5824 ]
5825 },
5826 culprit: fileurl
5827 },
5828 options
5829 );
5830
5831 // Fire away!
5832 this._send(data);
5833 },
5834
5835 _trimPacket: function(data) {
5836 // For now, we only want to truncate the two different messages
5837 // but this could/should be expanded to just trim everything
5838 var max = this._globalOptions.maxMessageLength;
5839 if (data.message) {
5840 data.message = truncate(data.message, max);
5841 }
5842 if (data.exception) {
5843 var exception = data.exception.values[0];
5844 exception.value = truncate(exception.value, max);
5845 }
5846
5847 var request = data.request;
5848 if (request) {
5849 if (request.url) {
5850 request.url = truncate(request.url, this._globalOptions.maxUrlLength);
5851 }
5852 if (request.Referer) {
5853 request.Referer = truncate(request.Referer, this._globalOptions.maxUrlLength);
5854 }
5855 }
5856
5857 if (data.breadcrumbs && data.breadcrumbs.values)
5858 this._trimBreadcrumbs(data.breadcrumbs);
5859
5860 return data;
5861 },
5862
5863 /**
5864 * Truncate breadcrumb values (right now just URLs)
5865 */
5866 _trimBreadcrumbs: function(breadcrumbs) {
5867 // known breadcrumb properties with urls
5868 // TODO: also consider arbitrary prop values that start with (https?)?://
5869 var urlProps = ['to', 'from', 'url'],
5870 urlProp,
5871 crumb,
5872 data;
5873
5874 for (var i = 0; i < breadcrumbs.values.length; ++i) {
5875 crumb = breadcrumbs.values[i];
5876 if (
5877 !crumb.hasOwnProperty('data') ||
5878 !isObject(crumb.data) ||
5879 objectFrozen(crumb.data)
5880 )
5881 continue;
5882
5883 data = objectMerge({}, crumb.data);
5884 for (var j = 0; j < urlProps.length; ++j) {
5885 urlProp = urlProps[j];
5886 if (data.hasOwnProperty(urlProp) && data[urlProp]) {
5887 data[urlProp] = truncate(data[urlProp], this._globalOptions.maxUrlLength);
5888 }
5889 }
5890 breadcrumbs.values[i].data = data;
5891 }
5892 },
5893
5894 _getHttpData: function() {
5895 if (!this._hasNavigator && !this._hasDocument) return;
5896 var httpData = {};
5897
5898 if (this._hasNavigator && _navigator.userAgent) {
5899 httpData.headers = {
5900 'User-Agent': navigator.userAgent
5901 };
5902 }
5903
5904 if (this._hasDocument) {
5905 if (_document.location && _document.location.href) {
5906 httpData.url = _document.location.href;
5907 }
5908 if (_document.referrer) {
5909 if (!httpData.headers) httpData.headers = {};
5910 httpData.headers.Referer = _document.referrer;
5911 }
5912 }
5913
5914 return httpData;
5915 },
5916
5917 _resetBackoff: function() {
5918 this._backoffDuration = 0;
5919 this._backoffStart = null;
5920 },
5921
5922 _shouldBackoff: function() {
5923 return this._backoffDuration && now() - this._backoffStart < this._backoffDuration;
5924 },
5925
5926 /**
5927 * Returns true if the in-process data payload matches the signature
5928 * of the previously-sent data
5929 *
5930 * NOTE: This has to be done at this level because TraceKit can generate
5931 * data from window.onerror WITHOUT an exception object (IE8, IE9,
5932 * other old browsers). This can take the form of an "exception"
5933 * data object with a single frame (derived from the onerror args).
5934 */
5935 _isRepeatData: function(current) {
5936 var last = this._lastData;
5937
5938 if (
5939 !last ||
5940 current.message !== last.message || // defined for captureMessage
5941 current.culprit !== last.culprit // defined for captureException/onerror
5942 )
5943 return false;
5944
5945 // Stacktrace interface (i.e. from captureMessage)
5946 if (current.stacktrace || last.stacktrace) {
5947 return isSameStacktrace(current.stacktrace, last.stacktrace);
5948 } else if (current.exception || last.exception) {
5949 // Exception interface (i.e. from captureException/onerror)
5950 return isSameException(current.exception, last.exception);
5951 }
5952
5953 return true;
5954 },
5955
5956 _setBackoffState: function(request) {
5957 // If we are already in a backoff state, don't change anything
5958 if (this._shouldBackoff()) {
5959 return;
5960 }
5961
5962 var status = request.status;
5963
5964 // 400 - project_id doesn't exist or some other fatal
5965 // 401 - invalid/revoked dsn
5966 // 429 - too many requests
5967 if (!(status === 400 || status === 401 || status === 429)) return;
5968
5969 var retry;
5970 try {
5971 // If Retry-After is not in Access-Control-Expose-Headers, most
5972 // browsers will throw an exception trying to access it
5973 retry = request.getResponseHeader('Retry-After');
5974 retry = parseInt(retry, 10) * 1000; // Retry-After is returned in seconds
5975 } catch (e) {
5976 /* eslint no-empty:0 */
5977 }
5978
5979 this._backoffDuration = retry
5980 ? // If Sentry server returned a Retry-After value, use it
5981 retry
5982 : // Otherwise, double the last backoff duration (starts at 1 sec)
5983 this._backoffDuration * 2 || 1000;
5984
5985 this._backoffStart = now();
5986 },
5987
5988 _send: function(data) {
5989 var globalOptions = this._globalOptions;
5990
5991 var baseData = {
5992 project: this._globalProject,
5993 logger: globalOptions.logger,
5994 platform: 'javascript'
5995 },
5996 httpData = this._getHttpData();
5997
5998 if (httpData) {
5999 baseData.request = httpData;
6000 }
6001
6002 // HACK: delete `trimHeadFrames` to prevent from appearing in outbound payload
6003 if (data.trimHeadFrames) delete data.trimHeadFrames;
6004
6005 data = objectMerge(baseData, data);
6006
6007 // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge
6008 data.tags = objectMerge(objectMerge({}, this._globalContext.tags), data.tags);
6009 data.extra = objectMerge(objectMerge({}, this._globalContext.extra), data.extra);
6010
6011 // Send along our own collected metadata with extra
6012 data.extra['session:duration'] = now() - this._startTime;
6013
6014 if (this._breadcrumbs && this._breadcrumbs.length > 0) {
6015 // intentionally make shallow copy so that additions
6016 // to breadcrumbs aren't accidentally sent in this request
6017 data.breadcrumbs = {
6018 values: [].slice.call(this._breadcrumbs, 0)
6019 };
6020 }
6021
6022 // If there are no tags/extra, strip the key from the payload alltogther.
6023 if (isEmptyObject(data.tags)) delete data.tags;
6024
6025 if (this._globalContext.user) {
6026 // sentry.interfaces.User
6027 data.user = this._globalContext.user;
6028 }
6029
6030 // Include the environment if it's defined in globalOptions
6031 if (globalOptions.environment) data.environment = globalOptions.environment;
6032
6033 // Include the release if it's defined in globalOptions
6034 if (globalOptions.release) data.release = globalOptions.release;
6035
6036 // Include server_name if it's defined in globalOptions
6037 if (globalOptions.serverName) data.server_name = globalOptions.serverName;
6038
6039 if (isFunction(globalOptions.dataCallback)) {
6040 data = globalOptions.dataCallback(data) || data;
6041 }
6042
6043 // Why??????????
6044 if (!data || isEmptyObject(data)) {
6045 return;
6046 }
6047
6048 // Check if the request should be filtered or not
6049 if (
6050 isFunction(globalOptions.shouldSendCallback) &&
6051 !globalOptions.shouldSendCallback(data)
6052 ) {
6053 return;
6054 }
6055
6056 // Backoff state: Sentry server previously responded w/ an error (e.g. 429 - too many requests),
6057 // so drop requests until "cool-off" period has elapsed.
6058 if (this._shouldBackoff()) {
6059 this._logDebug('warn', 'Raven dropped error due to backoff: ', data);
6060 return;
6061 }
6062
6063 if (typeof globalOptions.sampleRate === 'number') {
6064 if (Math.random() < globalOptions.sampleRate) {
6065 this._sendProcessedPayload(data);
6066 }
6067 } else {
6068 this._sendProcessedPayload(data);
6069 }
6070 },
6071
6072 _getUuid: function() {
6073 return uuid4();
6074 },
6075
6076 _sendProcessedPayload: function(data, callback) {
6077 var self = this;
6078 var globalOptions = this._globalOptions;
6079
6080 if (!this.isSetup()) return;
6081
6082 // Try and clean up the packet before sending by truncating long values
6083 data = this._trimPacket(data);
6084
6085 // ideally duplicate error testing should occur *before* dataCallback/shouldSendCallback,
6086 // but this would require copying an un-truncated copy of the data packet, which can be
6087 // arbitrarily deep (extra_data) -- could be worthwhile? will revisit
6088 if (!this._globalOptions.allowDuplicates && this._isRepeatData(data)) {
6089 this._logDebug('warn', 'Raven dropped repeat event: ', data);
6090 return;
6091 }
6092
6093 // Send along an event_id if not explicitly passed.
6094 // This event_id can be used to reference the error within Sentry itself.
6095 // Set lastEventId after we know the error should actually be sent
6096 this._lastEventId = data.event_id || (data.event_id = this._getUuid());
6097
6098 // Store outbound payload after trim
6099 this._lastData = data;
6100
6101 this._logDebug('debug', 'Raven about to send:', data);
6102
6103 var auth = {
6104 sentry_version: '7',
6105 sentry_client: 'raven-js/' + this.VERSION,
6106 sentry_key: this._globalKey
6107 };
6108
6109 if (this._globalSecret) {
6110 auth.sentry_secret = this._globalSecret;
6111 }
6112
6113 var exception = data.exception && data.exception.values[0];
6114 this.captureBreadcrumb({
6115 category: 'sentry',
6116 message: exception
6117 ? (exception.type ? exception.type + ': ' : '') + exception.value
6118 : data.message,
6119 event_id: data.event_id,
6120 level: data.level || 'error' // presume error unless specified
6121 });
6122
6123 var url = this._globalEndpoint;
6124 (globalOptions.transport || this._makeRequest).call(this, {
6125 url: url,
6126 auth: auth,
6127 data: data,
6128 options: globalOptions,
6129 onSuccess: function success() {
6130 self._resetBackoff();
6131
6132 self._triggerEvent('success', {
6133 data: data,
6134 src: url
6135 });
6136 callback && callback();
6137 },
6138 onError: function failure(error) {
6139 self._logDebug('error', 'Raven transport failed to send: ', error);
6140
6141 if (error.request) {
6142 self._setBackoffState(error.request);
6143 }
6144
6145 self._triggerEvent('failure', {
6146 data: data,
6147 src: url
6148 });
6149 error = error || new Error('Raven send failed (no additional details provided)');
6150 callback && callback(error);
6151 }
6152 });
6153 },
6154
6155 _makeRequest: function(opts) {
6156 var request = _window.XMLHttpRequest && new _window.XMLHttpRequest();
6157 if (!request) return;
6158
6159 // if browser doesn't support CORS (e.g. IE7), we are out of luck
6160 var hasCORS = 'withCredentials' in request || typeof XDomainRequest !== 'undefined';
6161
6162 if (!hasCORS) return;
6163
6164 var url = opts.url;
6165
6166 if ('withCredentials' in request) {
6167 request.onreadystatechange = function() {
6168 if (request.readyState !== 4) {
6169 return;
6170 } else if (request.status === 200) {
6171 opts.onSuccess && opts.onSuccess();
6172 } else if (opts.onError) {
6173 var err = new Error('Sentry error code: ' + request.status);
6174 err.request = request;
6175 opts.onError(err);
6176 }
6177 };
6178 } else {
6179 request = new XDomainRequest();
6180 // xdomainrequest cannot go http -> https (or vice versa),
6181 // so always use protocol relative
6182 url = url.replace(/^https?:/, '');
6183
6184 // onreadystatechange not supported by XDomainRequest
6185 if (opts.onSuccess) {
6186 request.onload = opts.onSuccess;
6187 }
6188 if (opts.onError) {
6189 request.onerror = function() {
6190 var err = new Error('Sentry error code: XDomainRequest');
6191 err.request = request;
6192 opts.onError(err);
6193 };
6194 }
6195 }
6196
6197 // NOTE: auth is intentionally sent as part of query string (NOT as custom
6198 // HTTP header) so as to avoid preflight CORS requests
6199 request.open('POST', url + '?' + urlencode(opts.auth));
6200 request.send(stringify(opts.data));
6201 },
6202
6203 _logDebug: function(level) {
6204 if (this._originalConsoleMethods[level] && this.debug) {
6205 // In IE<10 console methods do not have their own 'apply' method
6206 Function.prototype.apply.call(
6207 this._originalConsoleMethods[level],
6208 this._originalConsole,
6209 [].slice.call(arguments, 1)
6210 );
6211 }
6212 },
6213
6214 _mergeContext: function(key, context) {
6215 if (isUndefined(context)) {
6216 delete this._globalContext[key];
6217 } else {
6218 this._globalContext[key] = objectMerge(this._globalContext[key] || {}, context);
6219 }
6220 }
6221 };
6222
6223 // Deprecations
6224 Raven.prototype.setUser = Raven.prototype.setUserContext;
6225 Raven.prototype.setReleaseContext = Raven.prototype.setRelease;
6226
6227 module.exports = Raven;
6228
6229
6230 /***/ }),
6231
6232 /***/ "./node_modules/raven-js/src/singleton.js":
6233 /*!************************************************!*\
6234 !*** ./node_modules/raven-js/src/singleton.js ***!
6235 \************************************************/
6236 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6237
6238 /**
6239 * Enforces a single instance of the Raven client, and the
6240 * main entry point for Raven. If you are a consumer of the
6241 * Raven library, you SHOULD load this file (vs raven.js).
6242 **/
6243
6244 var RavenConstructor = __webpack_require__(/*! ./raven */ "./node_modules/raven-js/src/raven.js");
6245
6246 // This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)
6247 var _window =
6248 typeof window !== 'undefined'
6249 ? window
6250 : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
6251 var _Raven = _window.Raven;
6252
6253 var Raven = new RavenConstructor();
6254
6255 /*
6256 * Allow multiple versions of Raven to be installed.
6257 * Strip Raven from the global context and returns the instance.
6258 *
6259 * @return {Raven}
6260 */
6261 Raven.noConflict = function() {
6262 _window.Raven = _Raven;
6263 return Raven;
6264 };
6265
6266 Raven.afterLoad();
6267
6268 module.exports = Raven;
6269
6270
6271 /***/ }),
6272
6273 /***/ "./node_modules/raven-js/src/utils.js":
6274 /*!********************************************!*\
6275 !*** ./node_modules/raven-js/src/utils.js ***!
6276 \********************************************/
6277 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6278
6279 var _window =
6280 typeof window !== 'undefined'
6281 ? window
6282 : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
6283
6284 function isObject(what) {
6285 return typeof what === 'object' && what !== null;
6286 }
6287
6288 // Yanked from https://git.io/vS8DV re-used under CC0
6289 // with some tiny modifications
6290 function isError(value) {
6291 switch ({}.toString.call(value)) {
6292 case '[object Error]':
6293 return true;
6294 case '[object Exception]':
6295 return true;
6296 case '[object DOMException]':
6297 return true;
6298 default:
6299 return value instanceof Error;
6300 }
6301 }
6302
6303 function isErrorEvent(value) {
6304 return supportsErrorEvent() && {}.toString.call(value) === '[object ErrorEvent]';
6305 }
6306
6307 function isUndefined(what) {
6308 return what === void 0;
6309 }
6310
6311 function isFunction(what) {
6312 return typeof what === 'function';
6313 }
6314
6315 function isString(what) {
6316 return Object.prototype.toString.call(what) === '[object String]';
6317 }
6318
6319 function isEmptyObject(what) {
6320 for (var _ in what) return false; // eslint-disable-line guard-for-in, no-unused-vars
6321 return true;
6322 }
6323
6324 function supportsErrorEvent() {
6325 try {
6326 new ErrorEvent(''); // eslint-disable-line no-new
6327 return true;
6328 } catch (e) {
6329 return false;
6330 }
6331 }
6332
6333 function wrappedCallback(callback) {
6334 function dataCallback(data, original) {
6335 var normalizedData = callback(data) || data;
6336 if (original) {
6337 return original(normalizedData) || normalizedData;
6338 }
6339 return normalizedData;
6340 }
6341
6342 return dataCallback;
6343 }
6344
6345 function each(obj, callback) {
6346 var i, j;
6347
6348 if (isUndefined(obj.length)) {
6349 for (i in obj) {
6350 if (hasKey(obj, i)) {
6351 callback.call(null, i, obj[i]);
6352 }
6353 }
6354 } else {
6355 j = obj.length;
6356 if (j) {
6357 for (i = 0; i < j; i++) {
6358 callback.call(null, i, obj[i]);
6359 }
6360 }
6361 }
6362 }
6363
6364 function objectMerge(obj1, obj2) {
6365 if (!obj2) {
6366 return obj1;
6367 }
6368 each(obj2, function(key, value) {
6369 obj1[key] = value;
6370 });
6371 return obj1;
6372 }
6373
6374 /**
6375 * This function is only used for react-native.
6376 * react-native freezes object that have already been sent over the
6377 * js bridge. We need this function in order to check if the object is frozen.
6378 * So it's ok that objectFrozen returns false if Object.isFrozen is not
6379 * supported because it's not relevant for other "platforms". See related issue:
6380 * https://github.com/getsentry/react-native-sentry/issues/57
6381 */
6382 function objectFrozen(obj) {
6383 if (!Object.isFrozen) {
6384 return false;
6385 }
6386 return Object.isFrozen(obj);
6387 }
6388
6389 function truncate(str, max) {
6390 return !max || str.length <= max ? str : str.substr(0, max) + '\u2026';
6391 }
6392
6393 /**
6394 * hasKey, a better form of hasOwnProperty
6395 * Example: hasKey(MainHostObject, property) === true/false
6396 *
6397 * @param {Object} host object to check property
6398 * @param {string} key to check
6399 */
6400 function hasKey(object, key) {
6401 return Object.prototype.hasOwnProperty.call(object, key);
6402 }
6403
6404 function joinRegExp(patterns) {
6405 // Combine an array of regular expressions and strings into one large regexp
6406 // Be mad.
6407 var sources = [],
6408 i = 0,
6409 len = patterns.length,
6410 pattern;
6411
6412 for (; i < len; i++) {
6413 pattern = patterns[i];
6414 if (isString(pattern)) {
6415 // If it's a string, we need to escape it
6416 // Taken from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
6417 sources.push(pattern.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'));
6418 } else if (pattern && pattern.source) {
6419 // If it's a regexp already, we want to extract the source
6420 sources.push(pattern.source);
6421 }
6422 // Intentionally skip other cases
6423 }
6424 return new RegExp(sources.join('|'), 'i');
6425 }
6426
6427 function urlencode(o) {
6428 var pairs = [];
6429 each(o, function(key, value) {
6430 pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
6431 });
6432 return pairs.join('&');
6433 }
6434
6435 // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B
6436 // intentionally using regex and not <a/> href parsing trick because React Native and other
6437 // environments where DOM might not be available
6438 function parseUrl(url) {
6439 var match = url.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);
6440 if (!match) return {};
6441
6442 // coerce to undefined values to empty string so we don't get 'undefined'
6443 var query = match[6] || '';
6444 var fragment = match[8] || '';
6445 return {
6446 protocol: match[2],
6447 host: match[4],
6448 path: match[5],
6449 relative: match[5] + query + fragment // everything minus origin
6450 };
6451 }
6452 function uuid4() {
6453 var crypto = _window.crypto || _window.msCrypto;
6454
6455 if (!isUndefined(crypto) && crypto.getRandomValues) {
6456 // Use window.crypto API if available
6457 // eslint-disable-next-line no-undef
6458 var arr = new Uint16Array(8);
6459 crypto.getRandomValues(arr);
6460
6461 // set 4 in byte 7
6462 arr[3] = (arr[3] & 0xfff) | 0x4000;
6463 // set 2 most significant bits of byte 9 to '10'
6464 arr[4] = (arr[4] & 0x3fff) | 0x8000;
6465
6466 var pad = function(num) {
6467 var v = num.toString(16);
6468 while (v.length < 4) {
6469 v = '0' + v;
6470 }
6471 return v;
6472 };
6473
6474 return (
6475 pad(arr[0]) +
6476 pad(arr[1]) +
6477 pad(arr[2]) +
6478 pad(arr[3]) +
6479 pad(arr[4]) +
6480 pad(arr[5]) +
6481 pad(arr[6]) +
6482 pad(arr[7])
6483 );
6484 } else {
6485 // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523
6486 return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
6487 var r = (Math.random() * 16) | 0,
6488 v = c === 'x' ? r : (r & 0x3) | 0x8;
6489 return v.toString(16);
6490 });
6491 }
6492 }
6493
6494 /**
6495 * Given a child DOM element, returns a query-selector statement describing that
6496 * and its ancestors
6497 * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]
6498 * @param elem
6499 * @returns {string}
6500 */
6501 function htmlTreeAsString(elem) {
6502 /* eslint no-extra-parens:0*/
6503 var MAX_TRAVERSE_HEIGHT = 5,
6504 MAX_OUTPUT_LEN = 80,
6505 out = [],
6506 height = 0,
6507 len = 0,
6508 separator = ' > ',
6509 sepLength = separator.length,
6510 nextStr;
6511
6512 while (elem && height++ < MAX_TRAVERSE_HEIGHT) {
6513 nextStr = htmlElementAsString(elem);
6514 // bail out if
6515 // - nextStr is the 'html' element
6516 // - the length of the string that would be created exceeds MAX_OUTPUT_LEN
6517 // (ignore this limit if we are on the first iteration)
6518 if (
6519 nextStr === 'html' ||
6520 (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)
6521 ) {
6522 break;
6523 }
6524
6525 out.push(nextStr);
6526
6527 len += nextStr.length;
6528 elem = elem.parentNode;
6529 }
6530
6531 return out.reverse().join(separator);
6532 }
6533
6534 /**
6535 * Returns a simple, query-selector representation of a DOM element
6536 * e.g. [HTMLElement] => input#foo.btn[name=baz]
6537 * @param HTMLElement
6538 * @returns {string}
6539 */
6540 function htmlElementAsString(elem) {
6541 var out = [],
6542 className,
6543 classes,
6544 key,
6545 attr,
6546 i;
6547
6548 if (!elem || !elem.tagName) {
6549 return '';
6550 }
6551
6552 out.push(elem.tagName.toLowerCase());
6553 if (elem.id) {
6554 out.push('#' + elem.id);
6555 }
6556
6557 className = elem.className;
6558 if (className && isString(className)) {
6559 classes = className.split(/\s+/);
6560 for (i = 0; i < classes.length; i++) {
6561 out.push('.' + classes[i]);
6562 }
6563 }
6564 var attrWhitelist = ['type', 'name', 'title', 'alt'];
6565 for (i = 0; i < attrWhitelist.length; i++) {
6566 key = attrWhitelist[i];
6567 attr = elem.getAttribute(key);
6568 if (attr) {
6569 out.push('[' + key + '="' + attr + '"]');
6570 }
6571 }
6572 return out.join('');
6573 }
6574
6575 /**
6576 * Returns true if either a OR b is truthy, but not both
6577 */
6578 function isOnlyOneTruthy(a, b) {
6579 return !!(!!a ^ !!b);
6580 }
6581
6582 /**
6583 * Returns true if the two input exception interfaces have the same content
6584 */
6585 function isSameException(ex1, ex2) {
6586 if (isOnlyOneTruthy(ex1, ex2)) return false;
6587
6588 ex1 = ex1.values[0];
6589 ex2 = ex2.values[0];
6590
6591 if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false;
6592
6593 return isSameStacktrace(ex1.stacktrace, ex2.stacktrace);
6594 }
6595
6596 /**
6597 * Returns true if the two input stack trace interfaces have the same content
6598 */
6599 function isSameStacktrace(stack1, stack2) {
6600 if (isOnlyOneTruthy(stack1, stack2)) return false;
6601
6602 var frames1 = stack1.frames;
6603 var frames2 = stack2.frames;
6604
6605 // Exit early if frame count differs
6606 if (frames1.length !== frames2.length) return false;
6607
6608 // Iterate through every frame; bail out if anything differs
6609 var a, b;
6610 for (var i = 0; i < frames1.length; i++) {
6611 a = frames1[i];
6612 b = frames2[i];
6613 if (
6614 a.filename !== b.filename ||
6615 a.lineno !== b.lineno ||
6616 a.colno !== b.colno ||
6617 a['function'] !== b['function']
6618 )
6619 return false;
6620 }
6621 return true;
6622 }
6623
6624 /**
6625 * Polyfill a method
6626 * @param obj object e.g. `document`
6627 * @param name method name present on object e.g. `addEventListener`
6628 * @param replacement replacement function
6629 * @param track {optional} record instrumentation to an array
6630 */
6631 function fill(obj, name, replacement, track) {
6632 var orig = obj[name];
6633 obj[name] = replacement(orig);
6634 if (track) {
6635 track.push([obj, name, orig]);
6636 }
6637 }
6638
6639 module.exports = {
6640 isObject: isObject,
6641 isError: isError,
6642 isErrorEvent: isErrorEvent,
6643 isUndefined: isUndefined,
6644 isFunction: isFunction,
6645 isString: isString,
6646 isEmptyObject: isEmptyObject,
6647 supportsErrorEvent: supportsErrorEvent,
6648 wrappedCallback: wrappedCallback,
6649 each: each,
6650 objectMerge: objectMerge,
6651 truncate: truncate,
6652 objectFrozen: objectFrozen,
6653 hasKey: hasKey,
6654 joinRegExp: joinRegExp,
6655 urlencode: urlencode,
6656 uuid4: uuid4,
6657 htmlTreeAsString: htmlTreeAsString,
6658 htmlElementAsString: htmlElementAsString,
6659 isSameException: isSameException,
6660 isSameStacktrace: isSameStacktrace,
6661 parseUrl: parseUrl,
6662 fill: fill
6663 };
6664
6665
6666 /***/ }),
6667
6668 /***/ "./node_modules/raven-js/vendor/TraceKit/tracekit.js":
6669 /*!***********************************************************!*\
6670 !*** ./node_modules/raven-js/vendor/TraceKit/tracekit.js ***!
6671 \***********************************************************/
6672 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6673
6674 var utils = __webpack_require__(/*! ../../src/utils */ "./node_modules/raven-js/src/utils.js");
6675
6676 /*
6677 TraceKit - Cross brower stack traces
6678
6679 This was originally forked from github.com/occ/TraceKit, but has since been
6680 largely re-written and is now maintained as part of raven-js. Tests for
6681 this are in test/vendor.
6682
6683 MIT license
6684 */
6685
6686 var TraceKit = {
6687 collectWindowErrors: true,
6688 debug: false
6689 };
6690
6691 // This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)
6692 var _window =
6693 typeof window !== 'undefined'
6694 ? window
6695 : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
6696
6697 // global reference to slice
6698 var _slice = [].slice;
6699 var UNKNOWN_FUNCTION = '?';
6700
6701 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types
6702 var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;
6703
6704 function getLocationHref() {
6705 if (typeof document === 'undefined' || document.location == null) return '';
6706
6707 return document.location.href;
6708 }
6709
6710 /**
6711 * TraceKit.report: cross-browser processing of unhandled exceptions
6712 *
6713 * Syntax:
6714 * TraceKit.report.subscribe(function(stackInfo) { ... })
6715 * TraceKit.report.unsubscribe(function(stackInfo) { ... })
6716 * TraceKit.report(exception)
6717 * try { ...code... } catch(ex) { TraceKit.report(ex); }
6718 *
6719 * Supports:
6720 * - Firefox: full stack trace with line numbers, plus column number
6721 * on top frame; column number is not guaranteed
6722 * - Opera: full stack trace with line and column numbers
6723 * - Chrome: full stack trace with line and column numbers
6724 * - Safari: line and column number for the top frame only; some frames
6725 * may be missing, and column number is not guaranteed
6726 * - IE: line and column number for the top frame only; some frames
6727 * may be missing, and column number is not guaranteed
6728 *
6729 * In theory, TraceKit should work on all of the following versions:
6730 * - IE5.5+ (only 8.0 tested)
6731 * - Firefox 0.9+ (only 3.5+ tested)
6732 * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require
6733 * Exceptions Have Stacktrace to be enabled in opera:config)
6734 * - Safari 3+ (only 4+ tested)
6735 * - Chrome 1+ (only 5+ tested)
6736 * - Konqueror 3.5+ (untested)
6737 *
6738 * Requires TraceKit.computeStackTrace.
6739 *
6740 * Tries to catch all unhandled exceptions and report them to the
6741 * subscribed handlers. Please note that TraceKit.report will rethrow the
6742 * exception. This is REQUIRED in order to get a useful stack trace in IE.
6743 * If the exception does not reach the top of the browser, you will only
6744 * get a stack trace from the point where TraceKit.report was called.
6745 *
6746 * Handlers receive a stackInfo object as described in the
6747 * TraceKit.computeStackTrace docs.
6748 */
6749 TraceKit.report = (function reportModuleWrapper() {
6750 var handlers = [],
6751 lastArgs = null,
6752 lastException = null,
6753 lastExceptionStack = null;
6754
6755 /**
6756 * Add a crash handler.
6757 * @param {Function} handler
6758 */
6759 function subscribe(handler) {
6760 installGlobalHandler();
6761 handlers.push(handler);
6762 }
6763
6764 /**
6765 * Remove a crash handler.
6766 * @param {Function} handler
6767 */
6768 function unsubscribe(handler) {
6769 for (var i = handlers.length - 1; i >= 0; --i) {
6770 if (handlers[i] === handler) {
6771 handlers.splice(i, 1);
6772 }
6773 }
6774 }
6775
6776 /**
6777 * Remove all crash handlers.
6778 */
6779 function unsubscribeAll() {
6780 uninstallGlobalHandler();
6781 handlers = [];
6782 }
6783
6784 /**
6785 * Dispatch stack information to all handlers.
6786 * @param {Object.<string, *>} stack
6787 */
6788 function notifyHandlers(stack, isWindowError) {
6789 var exception = null;
6790 if (isWindowError && !TraceKit.collectWindowErrors) {
6791 return;
6792 }
6793 for (var i in handlers) {
6794 if (handlers.hasOwnProperty(i)) {
6795 try {
6796 handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));
6797 } catch (inner) {
6798 exception = inner;
6799 }
6800 }
6801 }
6802
6803 if (exception) {
6804 throw exception;
6805 }
6806 }
6807
6808 var _oldOnerrorHandler, _onErrorHandlerInstalled;
6809
6810 /**
6811 * Ensures all global unhandled exceptions are recorded.
6812 * Supported by Gecko and IE.
6813 * @param {string} message Error message.
6814 * @param {string} url URL of script that generated the exception.
6815 * @param {(number|string)} lineNo The line number at which the error
6816 * occurred.
6817 * @param {?(number|string)} colNo The column number at which the error
6818 * occurred.
6819 * @param {?Error} ex The actual Error object.
6820 */
6821 function traceKitWindowOnError(message, url, lineNo, colNo, ex) {
6822 var stack = null;
6823
6824 if (lastExceptionStack) {
6825 TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(
6826 lastExceptionStack,
6827 url,
6828 lineNo,
6829 message
6830 );
6831 processLastException();
6832 } else if (ex && utils.isError(ex)) {
6833 // non-string `ex` arg; attempt to extract stack trace
6834
6835 // New chrome and blink send along a real error object
6836 // Let's just report that like a normal error.
6837 // See: https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror
6838 stack = TraceKit.computeStackTrace(ex);
6839 notifyHandlers(stack, true);
6840 } else {
6841 var location = {
6842 url: url,
6843 line: lineNo,
6844 column: colNo
6845 };
6846
6847 var name = undefined;
6848 var msg = message; // must be new var or will modify original `arguments`
6849 var groups;
6850 if ({}.toString.call(message) === '[object String]') {
6851 var groups = message.match(ERROR_TYPES_RE);
6852 if (groups) {
6853 name = groups[1];
6854 msg = groups[2];
6855 }
6856 }
6857
6858 location.func = UNKNOWN_FUNCTION;
6859
6860 stack = {
6861 name: name,
6862 message: msg,
6863 url: getLocationHref(),
6864 stack: [location]
6865 };
6866 notifyHandlers(stack, true);
6867 }
6868
6869 if (_oldOnerrorHandler) {
6870 return _oldOnerrorHandler.apply(this, arguments);
6871 }
6872
6873 return false;
6874 }
6875
6876 function installGlobalHandler() {
6877 if (_onErrorHandlerInstalled) {
6878 return;
6879 }
6880 _oldOnerrorHandler = _window.onerror;
6881 _window.onerror = traceKitWindowOnError;
6882 _onErrorHandlerInstalled = true;
6883 }
6884
6885 function uninstallGlobalHandler() {
6886 if (!_onErrorHandlerInstalled) {
6887 return;
6888 }
6889 _window.onerror = _oldOnerrorHandler;
6890 _onErrorHandlerInstalled = false;
6891 _oldOnerrorHandler = undefined;
6892 }
6893
6894 function processLastException() {
6895 var _lastExceptionStack = lastExceptionStack,
6896 _lastArgs = lastArgs;
6897 lastArgs = null;
6898 lastExceptionStack = null;
6899 lastException = null;
6900 notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));
6901 }
6902
6903 /**
6904 * Reports an unhandled Error to TraceKit.
6905 * @param {Error} ex
6906 * @param {?boolean} rethrow If false, do not re-throw the exception.
6907 * Only used for window.onerror to not cause an infinite loop of
6908 * rethrowing.
6909 */
6910 function report(ex, rethrow) {
6911 var args = _slice.call(arguments, 1);
6912 if (lastExceptionStack) {
6913 if (lastException === ex) {
6914 return; // already caught by an inner catch block, ignore
6915 } else {
6916 processLastException();
6917 }
6918 }
6919
6920 var stack = TraceKit.computeStackTrace(ex);
6921 lastExceptionStack = stack;
6922 lastException = ex;
6923 lastArgs = args;
6924
6925 // If the stack trace is incomplete, wait for 2 seconds for
6926 // slow slow IE to see if onerror occurs or not before reporting
6927 // this exception; otherwise, we will end up with an incomplete
6928 // stack trace
6929 setTimeout(function() {
6930 if (lastException === ex) {
6931 processLastException();
6932 }
6933 }, stack.incomplete ? 2000 : 0);
6934
6935 if (rethrow !== false) {
6936 throw ex; // re-throw to propagate to the top level (and cause window.onerror)
6937 }
6938 }
6939
6940 report.subscribe = subscribe;
6941 report.unsubscribe = unsubscribe;
6942 report.uninstall = unsubscribeAll;
6943 return report;
6944 })();
6945
6946 /**
6947 * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript
6948 *
6949 * Syntax:
6950 * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)
6951 * Returns:
6952 * s.name - exception name
6953 * s.message - exception message
6954 * s.stack[i].url - JavaScript or HTML file URL
6955 * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work)
6956 * s.stack[i].args - arguments passed to the function, if known
6957 * s.stack[i].line - line number, if known
6958 * s.stack[i].column - column number, if known
6959 *
6960 * Supports:
6961 * - Firefox: full stack trace with line numbers and unreliable column
6962 * number on top frame
6963 * - Opera 10: full stack trace with line and column numbers
6964 * - Opera 9-: full stack trace with line numbers
6965 * - Chrome: full stack trace with line and column numbers
6966 * - Safari: line and column number for the topmost stacktrace element
6967 * only
6968 * - IE: no line numbers whatsoever
6969 *
6970 * Tries to guess names of anonymous functions by looking for assignments
6971 * in the source code. In IE and Safari, we have to guess source file names
6972 * by searching for function bodies inside all page scripts. This will not
6973 * work for scripts that are loaded cross-domain.
6974 * Here be dragons: some function names may be guessed incorrectly, and
6975 * duplicate functions may be mismatched.
6976 *
6977 * TraceKit.computeStackTrace should only be used for tracing purposes.
6978 * Logging of unhandled exceptions should be done with TraceKit.report,
6979 * which builds on top of TraceKit.computeStackTrace and provides better
6980 * IE support by utilizing the window.onerror event to retrieve information
6981 * about the top of the stack.
6982 *
6983 * Note: In IE and Safari, no stack trace is recorded on the Error object,
6984 * so computeStackTrace instead walks its *own* chain of callers.
6985 * This means that:
6986 * * in Safari, some methods may be missing from the stack trace;
6987 * * in IE, the topmost function in the stack trace will always be the
6988 * caller of computeStackTrace.
6989 *
6990 * This is okay for tracing (because you are likely to be calling
6991 * computeStackTrace from the function you want to be the topmost element
6992 * of the stack trace anyway), but not okay for logging unhandled
6993 * exceptions (because your catch block will likely be far away from the
6994 * inner function that actually caused the exception).
6995 *
6996 */
6997 TraceKit.computeStackTrace = (function computeStackTraceWrapper() {
6998 // Contents of Exception in various browsers.
6999 //
7000 // SAFARI:
7001 // ex.message = Can't find variable: qq
7002 // ex.line = 59
7003 // ex.sourceId = 580238192
7004 // ex.sourceURL = http://...
7005 // ex.expressionBeginOffset = 96
7006 // ex.expressionCaretOffset = 98
7007 // ex.expressionEndOffset = 98
7008 // ex.name = ReferenceError
7009 //
7010 // FIREFOX:
7011 // ex.message = qq is not defined
7012 // ex.fileName = http://...
7013 // ex.lineNumber = 59
7014 // ex.columnNumber = 69
7015 // ex.stack = ...stack trace... (see the example below)
7016 // ex.name = ReferenceError
7017 //
7018 // CHROME:
7019 // ex.message = qq is not defined
7020 // ex.name = ReferenceError
7021 // ex.type = not_defined
7022 // ex.arguments = ['aa']
7023 // ex.stack = ...stack trace...
7024 //
7025 // INTERNET EXPLORER:
7026 // ex.message = ...
7027 // ex.name = ReferenceError
7028 //
7029 // OPERA:
7030 // ex.message = ...message... (see the example below)
7031 // ex.name = ReferenceError
7032 // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)
7033 // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'
7034
7035 /**
7036 * Computes stack trace information from the stack property.
7037 * Chrome and Gecko use this property.
7038 * @param {Error} ex
7039 * @return {?Object.<string, *>} Stack trace information.
7040 */
7041 function computeStackTraceFromStackProp(ex) {
7042 if (typeof ex.stack === 'undefined' || !ex.stack) return;
7043
7044 var chrome = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,
7045 gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,
7046 winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,
7047 // Used to additionally parse URL/line/column from eval frames
7048 geckoEval = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i,
7049 chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/,
7050 lines = ex.stack.split('\n'),
7051 stack = [],
7052 submatch,
7053 parts,
7054 element,
7055 reference = /^(.*) is undefined$/.exec(ex.message);
7056
7057 for (var i = 0, j = lines.length; i < j; ++i) {
7058 if ((parts = chrome.exec(lines[i]))) {
7059 var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line
7060 var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line
7061 if (isEval && (submatch = chromeEval.exec(parts[2]))) {
7062 // throw out eval line/column and use top-most line/column number
7063 parts[2] = submatch[1]; // url
7064 parts[3] = submatch[2]; // line
7065 parts[4] = submatch[3]; // column
7066 }
7067 element = {
7068 url: !isNative ? parts[2] : null,
7069 func: parts[1] || UNKNOWN_FUNCTION,
7070 args: isNative ? [parts[2]] : [],
7071 line: parts[3] ? +parts[3] : null,
7072 column: parts[4] ? +parts[4] : null
7073 };
7074 } else if ((parts = winjs.exec(lines[i]))) {
7075 element = {
7076 url: parts[2],
7077 func: parts[1] || UNKNOWN_FUNCTION,
7078 args: [],
7079 line: +parts[3],
7080 column: parts[4] ? +parts[4] : null
7081 };
7082 } else if ((parts = gecko.exec(lines[i]))) {
7083 var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
7084 if (isEval && (submatch = geckoEval.exec(parts[3]))) {
7085 // throw out eval line/column and use top-most line number
7086 parts[3] = submatch[1];
7087 parts[4] = submatch[2];
7088 parts[5] = null; // no column when eval
7089 } else if (i === 0 && !parts[5] && typeof ex.columnNumber !== 'undefined') {
7090 // FireFox uses this awesome columnNumber property for its top frame
7091 // Also note, Firefox's column number is 0-based and everything else expects 1-based,
7092 // so adding 1
7093 // NOTE: this hack doesn't work if top-most frame is eval
7094 stack[0].column = ex.columnNumber + 1;
7095 }
7096 element = {
7097 url: parts[3],
7098 func: parts[1] || UNKNOWN_FUNCTION,
7099 args: parts[2] ? parts[2].split(',') : [],
7100 line: parts[4] ? +parts[4] : null,
7101 column: parts[5] ? +parts[5] : null
7102 };
7103 } else {
7104 continue;
7105 }
7106
7107 if (!element.func && element.line) {
7108 element.func = UNKNOWN_FUNCTION;
7109 }
7110
7111 stack.push(element);
7112 }
7113
7114 if (!stack.length) {
7115 return null;
7116 }
7117
7118 return {
7119 name: ex.name,
7120 message: ex.message,
7121 url: getLocationHref(),
7122 stack: stack
7123 };
7124 }
7125
7126 /**
7127 * Adds information about the first frame to incomplete stack traces.
7128 * Safari and IE require this to get complete data on the first frame.
7129 * @param {Object.<string, *>} stackInfo Stack trace information from
7130 * one of the compute* methods.
7131 * @param {string} url The URL of the script that caused an error.
7132 * @param {(number|string)} lineNo The line number of the script that
7133 * caused an error.
7134 * @param {string=} message The error generated by the browser, which
7135 * hopefully contains the name of the object that caused the error.
7136 * @return {boolean} Whether or not the stack information was
7137 * augmented.
7138 */
7139 function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) {
7140 var initial = {
7141 url: url,
7142 line: lineNo
7143 };
7144
7145 if (initial.url && initial.line) {
7146 stackInfo.incomplete = false;
7147
7148 if (!initial.func) {
7149 initial.func = UNKNOWN_FUNCTION;
7150 }
7151
7152 if (stackInfo.stack.length > 0) {
7153 if (stackInfo.stack[0].url === initial.url) {
7154 if (stackInfo.stack[0].line === initial.line) {
7155 return false; // already in stack trace
7156 } else if (
7157 !stackInfo.stack[0].line &&
7158 stackInfo.stack[0].func === initial.func
7159 ) {
7160 stackInfo.stack[0].line = initial.line;
7161 return false;
7162 }
7163 }
7164 }
7165
7166 stackInfo.stack.unshift(initial);
7167 stackInfo.partial = true;
7168 return true;
7169 } else {
7170 stackInfo.incomplete = true;
7171 }
7172
7173 return false;
7174 }
7175
7176 /**
7177 * Computes stack trace information by walking the arguments.caller
7178 * chain at the time the exception occurred. This will cause earlier
7179 * frames to be missed but is the only way to get any stack trace in
7180 * Safari and IE. The top frame is restored by
7181 * {@link augmentStackTraceWithInitialElement}.
7182 * @param {Error} ex
7183 * @return {?Object.<string, *>} Stack trace information.
7184 */
7185 function computeStackTraceByWalkingCallerChain(ex, depth) {
7186 var functionName = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,
7187 stack = [],
7188 funcs = {},
7189 recursion = false,
7190 parts,
7191 item,
7192 source;
7193
7194 for (
7195 var curr = computeStackTraceByWalkingCallerChain.caller;
7196 curr && !recursion;
7197 curr = curr.caller
7198 ) {
7199 if (curr === computeStackTrace || curr === TraceKit.report) {
7200 // console.log('skipping internal function');
7201 continue;
7202 }
7203
7204 item = {
7205 url: null,
7206 func: UNKNOWN_FUNCTION,
7207 line: null,
7208 column: null
7209 };
7210
7211 if (curr.name) {
7212 item.func = curr.name;
7213 } else if ((parts = functionName.exec(curr.toString()))) {
7214 item.func = parts[1];
7215 }
7216
7217 if (typeof item.func === 'undefined') {
7218 try {
7219 item.func = parts.input.substring(0, parts.input.indexOf('{'));
7220 } catch (e) {}
7221 }
7222
7223 if (funcs['' + curr]) {
7224 recursion = true;
7225 } else {
7226 funcs['' + curr] = true;
7227 }
7228
7229 stack.push(item);
7230 }
7231
7232 if (depth) {
7233 // console.log('depth is ' + depth);
7234 // console.log('stack is ' + stack.length);
7235 stack.splice(0, depth);
7236 }
7237
7238 var result = {
7239 name: ex.name,
7240 message: ex.message,
7241 url: getLocationHref(),
7242 stack: stack
7243 };
7244 augmentStackTraceWithInitialElement(
7245 result,
7246 ex.sourceURL || ex.fileName,
7247 ex.line || ex.lineNumber,
7248 ex.message || ex.description
7249 );
7250 return result;
7251 }
7252
7253 /**
7254 * Computes a stack trace for an exception.
7255 * @param {Error} ex
7256 * @param {(string|number)=} depth
7257 */
7258 function computeStackTrace(ex, depth) {
7259 var stack = null;
7260 depth = depth == null ? 0 : +depth;
7261
7262 try {
7263 stack = computeStackTraceFromStackProp(ex);
7264 if (stack) {
7265 return stack;
7266 }
7267 } catch (e) {
7268 if (TraceKit.debug) {
7269 throw e;
7270 }
7271 }
7272
7273 try {
7274 stack = computeStackTraceByWalkingCallerChain(ex, depth + 1);
7275 if (stack) {
7276 return stack;
7277 }
7278 } catch (e) {
7279 if (TraceKit.debug) {
7280 throw e;
7281 }
7282 }
7283 return {
7284 name: ex.name,
7285 message: ex.message,
7286 url: getLocationHref()
7287 };
7288 }
7289
7290 computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement;
7291 computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp;
7292
7293 return computeStackTrace;
7294 })();
7295
7296 module.exports = TraceKit;
7297
7298
7299 /***/ }),
7300
7301 /***/ "./node_modules/raven-js/vendor/json-stringify-safe/stringify.js":
7302 /*!***********************************************************************!*\
7303 !*** ./node_modules/raven-js/vendor/json-stringify-safe/stringify.js ***!
7304 \***********************************************************************/
7305 /***/ ((module, exports) => {
7306
7307 /*
7308 json-stringify-safe
7309 Like JSON.stringify, but doesn't throw on circular references.
7310
7311 Originally forked from https://github.com/isaacs/json-stringify-safe
7312 version 5.0.1 on 3/8/2017 and modified to handle Errors serialization
7313 and IE8 compatibility. Tests for this are in test/vendor.
7314
7315 ISC license: https://github.com/isaacs/json-stringify-safe/blob/master/LICENSE
7316 */
7317
7318 exports = module.exports = stringify;
7319 exports.getSerialize = serializer;
7320
7321 function indexOf(haystack, needle) {
7322 for (var i = 0; i < haystack.length; ++i) {
7323 if (haystack[i] === needle) return i;
7324 }
7325 return -1;
7326 }
7327
7328 function stringify(obj, replacer, spaces, cycleReplacer) {
7329 return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces);
7330 }
7331
7332 // https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106
7333 function stringifyError(value) {
7334 var err = {
7335 // These properties are implemented as magical getters and don't show up in for in
7336 stack: value.stack,
7337 message: value.message,
7338 name: value.name
7339 };
7340
7341 for (var i in value) {
7342 if (Object.prototype.hasOwnProperty.call(value, i)) {
7343 err[i] = value[i];
7344 }
7345 }
7346
7347 return err;
7348 }
7349
7350 function serializer(replacer, cycleReplacer) {
7351 var stack = [];
7352 var keys = [];
7353
7354 if (cycleReplacer == null) {
7355 cycleReplacer = function(key, value) {
7356 if (stack[0] === value) {
7357 return '[Circular ~]';
7358 }
7359 return '[Circular ~.' + keys.slice(0, indexOf(stack, value)).join('.') + ']';
7360 };
7361 }
7362
7363 return function(key, value) {
7364 if (stack.length > 0) {
7365 var thisPos = indexOf(stack, this);
7366 ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);
7367 ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);
7368
7369 if (~indexOf(stack, value)) {
7370 value = cycleReplacer.call(this, key, value);
7371 }
7372 } else {
7373 stack.push(value);
7374 }
7375
7376 return replacer == null
7377 ? value instanceof Error ? stringifyError(value) : value
7378 : replacer.call(this, key, value);
7379 };
7380 }
7381
7382
7383 /***/ }),
7384
7385 /***/ "./node_modules/react/cjs/react-jsx-runtime.development.js":
7386 /*!*****************************************************************!*\
7387 !*** ./node_modules/react/cjs/react-jsx-runtime.development.js ***!
7388 \*****************************************************************/
7389 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7390
7391 "use strict";
7392 /** @license React v17.0.2
7393 * react-jsx-runtime.development.js
7394 *
7395 * Copyright (c) Facebook, Inc. and its affiliates.
7396 *
7397 * This source code is licensed under the MIT license found in the
7398 * LICENSE file in the root directory of this source tree.
7399 */
7400
7401
7402
7403 if (true) {
7404 (function() {
7405 'use strict';
7406
7407 var React = __webpack_require__(/*! react */ "react");
7408 var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
7409
7410 // ATTENTION
7411 // When adding new symbols to this file,
7412 // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
7413 // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
7414 // nor polyfill, then a plain number is used for performance.
7415 var REACT_ELEMENT_TYPE = 0xeac7;
7416 var REACT_PORTAL_TYPE = 0xeaca;
7417 exports.Fragment = 0xeacb;
7418 var REACT_STRICT_MODE_TYPE = 0xeacc;
7419 var REACT_PROFILER_TYPE = 0xead2;
7420 var REACT_PROVIDER_TYPE = 0xeacd;
7421 var REACT_CONTEXT_TYPE = 0xeace;
7422 var REACT_FORWARD_REF_TYPE = 0xead0;
7423 var REACT_SUSPENSE_TYPE = 0xead1;
7424 var REACT_SUSPENSE_LIST_TYPE = 0xead8;
7425 var REACT_MEMO_TYPE = 0xead3;
7426 var REACT_LAZY_TYPE = 0xead4;
7427 var REACT_BLOCK_TYPE = 0xead9;
7428 var REACT_SERVER_BLOCK_TYPE = 0xeada;
7429 var REACT_FUNDAMENTAL_TYPE = 0xead5;
7430 var REACT_SCOPE_TYPE = 0xead7;
7431 var REACT_OPAQUE_ID_TYPE = 0xeae0;
7432 var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
7433 var REACT_OFFSCREEN_TYPE = 0xeae2;
7434 var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
7435
7436 if (typeof Symbol === 'function' && Symbol.for) {
7437 var symbolFor = Symbol.for;
7438 REACT_ELEMENT_TYPE = symbolFor('react.element');
7439 REACT_PORTAL_TYPE = symbolFor('react.portal');
7440 exports.Fragment = symbolFor('react.fragment');
7441 REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');
7442 REACT_PROFILER_TYPE = symbolFor('react.profiler');
7443 REACT_PROVIDER_TYPE = symbolFor('react.provider');
7444 REACT_CONTEXT_TYPE = symbolFor('react.context');
7445 REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
7446 REACT_SUSPENSE_TYPE = symbolFor('react.suspense');
7447 REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
7448 REACT_MEMO_TYPE = symbolFor('react.memo');
7449 REACT_LAZY_TYPE = symbolFor('react.lazy');
7450 REACT_BLOCK_TYPE = symbolFor('react.block');
7451 REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
7452 REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
7453 REACT_SCOPE_TYPE = symbolFor('react.scope');
7454 REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
7455 REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
7456 REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
7457 REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
7458 }
7459
7460 var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
7461 var FAUX_ITERATOR_SYMBOL = '@@iterator';
7462 function getIteratorFn(maybeIterable) {
7463 if (maybeIterable === null || typeof maybeIterable !== 'object') {
7464 return null;
7465 }
7466
7467 var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
7468
7469 if (typeof maybeIterator === 'function') {
7470 return maybeIterator;
7471 }
7472
7473 return null;
7474 }
7475
7476 var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
7477
7478 function error(format) {
7479 {
7480 for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
7481 args[_key2 - 1] = arguments[_key2];
7482 }
7483
7484 printWarning('error', format, args);
7485 }
7486 }
7487
7488 function printWarning(level, format, args) {
7489 // When changing this logic, you might want to also
7490 // update consoleWithStackDev.www.js as well.
7491 {
7492 var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
7493 var stack = ReactDebugCurrentFrame.getStackAddendum();
7494
7495 if (stack !== '') {
7496 format += '%s';
7497 args = args.concat([stack]);
7498 }
7499
7500 var argsWithFormat = args.map(function (item) {
7501 return '' + item;
7502 }); // Careful: RN currently depends on this prefix
7503
7504 argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
7505 // breaks IE9: https://github.com/facebook/react/issues/13610
7506 // eslint-disable-next-line react-internal/no-production-logging
7507
7508 Function.prototype.apply.call(console[level], console, argsWithFormat);
7509 }
7510 }
7511
7512 // Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
7513
7514 var enableScopeAPI = false; // Experimental Create Event Handle API.
7515
7516 function isValidElementType(type) {
7517 if (typeof type === 'string' || typeof type === 'function') {
7518 return true;
7519 } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
7520
7521
7522 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 ) {
7523 return true;
7524 }
7525
7526 if (typeof type === 'object' && type !== null) {
7527 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) {
7528 return true;
7529 }
7530 }
7531
7532 return false;
7533 }
7534
7535 function getWrappedName(outerType, innerType, wrapperName) {
7536 var functionName = innerType.displayName || innerType.name || '';
7537 return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
7538 }
7539
7540 function getContextName(type) {
7541 return type.displayName || 'Context';
7542 }
7543
7544 function getComponentName(type) {
7545 if (type == null) {
7546 // Host root, text node or just invalid type.
7547 return null;
7548 }
7549
7550 {
7551 if (typeof type.tag === 'number') {
7552 error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
7553 }
7554 }
7555
7556 if (typeof type === 'function') {
7557 return type.displayName || type.name || null;
7558 }
7559
7560 if (typeof type === 'string') {
7561 return type;
7562 }
7563
7564 switch (type) {
7565 case exports.Fragment:
7566 return 'Fragment';
7567
7568 case REACT_PORTAL_TYPE:
7569 return 'Portal';
7570
7571 case REACT_PROFILER_TYPE:
7572 return 'Profiler';
7573
7574 case REACT_STRICT_MODE_TYPE:
7575 return 'StrictMode';
7576
7577 case REACT_SUSPENSE_TYPE:
7578 return 'Suspense';
7579
7580 case REACT_SUSPENSE_LIST_TYPE:
7581 return 'SuspenseList';
7582 }
7583
7584 if (typeof type === 'object') {
7585 switch (type.$$typeof) {
7586 case REACT_CONTEXT_TYPE:
7587 var context = type;
7588 return getContextName(context) + '.Consumer';
7589
7590 case REACT_PROVIDER_TYPE:
7591 var provider = type;
7592 return getContextName(provider._context) + '.Provider';
7593
7594 case REACT_FORWARD_REF_TYPE:
7595 return getWrappedName(type, type.render, 'ForwardRef');
7596
7597 case REACT_MEMO_TYPE:
7598 return getComponentName(type.type);
7599
7600 case REACT_BLOCK_TYPE:
7601 return getComponentName(type._render);
7602
7603 case REACT_LAZY_TYPE:
7604 {
7605 var lazyComponent = type;
7606 var payload = lazyComponent._payload;
7607 var init = lazyComponent._init;
7608
7609 try {
7610 return getComponentName(init(payload));
7611 } catch (x) {
7612 return null;
7613 }
7614 }
7615 }
7616 }
7617
7618 return null;
7619 }
7620
7621 // Helpers to patch console.logs to avoid logging during side-effect free
7622 // replaying on render function. This currently only patches the object
7623 // lazily which won't cover if the log function was extracted eagerly.
7624 // We could also eagerly patch the method.
7625 var disabledDepth = 0;
7626 var prevLog;
7627 var prevInfo;
7628 var prevWarn;
7629 var prevError;
7630 var prevGroup;
7631 var prevGroupCollapsed;
7632 var prevGroupEnd;
7633
7634 function disabledLog() {}
7635
7636 disabledLog.__reactDisabledLog = true;
7637 function disableLogs() {
7638 {
7639 if (disabledDepth === 0) {
7640 /* eslint-disable react-internal/no-production-logging */
7641 prevLog = console.log;
7642 prevInfo = console.info;
7643 prevWarn = console.warn;
7644 prevError = console.error;
7645 prevGroup = console.group;
7646 prevGroupCollapsed = console.groupCollapsed;
7647 prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
7648
7649 var props = {
7650 configurable: true,
7651 enumerable: true,
7652 value: disabledLog,
7653 writable: true
7654 }; // $FlowFixMe Flow thinks console is immutable.
7655
7656 Object.defineProperties(console, {
7657 info: props,
7658 log: props,
7659 warn: props,
7660 error: props,
7661 group: props,
7662 groupCollapsed: props,
7663 groupEnd: props
7664 });
7665 /* eslint-enable react-internal/no-production-logging */
7666 }
7667
7668 disabledDepth++;
7669 }
7670 }
7671 function reenableLogs() {
7672 {
7673 disabledDepth--;
7674
7675 if (disabledDepth === 0) {
7676 /* eslint-disable react-internal/no-production-logging */
7677 var props = {
7678 configurable: true,
7679 enumerable: true,
7680 writable: true
7681 }; // $FlowFixMe Flow thinks console is immutable.
7682
7683 Object.defineProperties(console, {
7684 log: _assign({}, props, {
7685 value: prevLog
7686 }),
7687 info: _assign({}, props, {
7688 value: prevInfo
7689 }),
7690 warn: _assign({}, props, {
7691 value: prevWarn
7692 }),
7693 error: _assign({}, props, {
7694 value: prevError
7695 }),
7696 group: _assign({}, props, {
7697 value: prevGroup
7698 }),
7699 groupCollapsed: _assign({}, props, {
7700 value: prevGroupCollapsed
7701 }),
7702 groupEnd: _assign({}, props, {
7703 value: prevGroupEnd
7704 })
7705 });
7706 /* eslint-enable react-internal/no-production-logging */
7707 }
7708
7709 if (disabledDepth < 0) {
7710 error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
7711 }
7712 }
7713 }
7714
7715 var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
7716 var prefix;
7717 function describeBuiltInComponentFrame(name, source, ownerFn) {
7718 {
7719 if (prefix === undefined) {
7720 // Extract the VM specific prefix used by each line.
7721 try {
7722 throw Error();
7723 } catch (x) {
7724 var match = x.stack.trim().match(/\n( *(at )?)/);
7725 prefix = match && match[1] || '';
7726 }
7727 } // We use the prefix to ensure our stacks line up with native stack frames.
7728
7729
7730 return '\n' + prefix + name;
7731 }
7732 }
7733 var reentry = false;
7734 var componentFrameCache;
7735
7736 {
7737 var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
7738 componentFrameCache = new PossiblyWeakMap();
7739 }
7740
7741 function describeNativeComponentFrame(fn, construct) {
7742 // If something asked for a stack inside a fake render, it should get ignored.
7743 if (!fn || reentry) {
7744 return '';
7745 }
7746
7747 {
7748 var frame = componentFrameCache.get(fn);
7749
7750 if (frame !== undefined) {
7751 return frame;
7752 }
7753 }
7754
7755 var control;
7756 reentry = true;
7757 var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
7758
7759 Error.prepareStackTrace = undefined;
7760 var previousDispatcher;
7761
7762 {
7763 previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function
7764 // for warnings.
7765
7766 ReactCurrentDispatcher.current = null;
7767 disableLogs();
7768 }
7769
7770 try {
7771 // This should throw.
7772 if (construct) {
7773 // Something should be setting the props in the constructor.
7774 var Fake = function () {
7775 throw Error();
7776 }; // $FlowFixMe
7777
7778
7779 Object.defineProperty(Fake.prototype, 'props', {
7780 set: function () {
7781 // We use a throwing setter instead of frozen or non-writable props
7782 // because that won't throw in a non-strict mode function.
7783 throw Error();
7784 }
7785 });
7786
7787 if (typeof Reflect === 'object' && Reflect.construct) {
7788 // We construct a different control for this case to include any extra
7789 // frames added by the construct call.
7790 try {
7791 Reflect.construct(Fake, []);
7792 } catch (x) {
7793 control = x;
7794 }
7795
7796 Reflect.construct(fn, [], Fake);
7797 } else {
7798 try {
7799 Fake.call();
7800 } catch (x) {
7801 control = x;
7802 }
7803
7804 fn.call(Fake.prototype);
7805 }
7806 } else {
7807 try {
7808 throw Error();
7809 } catch (x) {
7810 control = x;
7811 }
7812
7813 fn();
7814 }
7815 } catch (sample) {
7816 // This is inlined manually because closure doesn't do it for us.
7817 if (sample && control && typeof sample.stack === 'string') {
7818 // This extracts the first frame from the sample that isn't also in the control.
7819 // Skipping one frame that we assume is the frame that calls the two.
7820 var sampleLines = sample.stack.split('\n');
7821 var controlLines = control.stack.split('\n');
7822 var s = sampleLines.length - 1;
7823 var c = controlLines.length - 1;
7824
7825 while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
7826 // We expect at least one stack frame to be shared.
7827 // Typically this will be the root most one. However, stack frames may be
7828 // cut off due to maximum stack limits. In this case, one maybe cut off
7829 // earlier than the other. We assume that the sample is longer or the same
7830 // and there for cut off earlier. So we should find the root most frame in
7831 // the sample somewhere in the control.
7832 c--;
7833 }
7834
7835 for (; s >= 1 && c >= 0; s--, c--) {
7836 // Next we find the first one that isn't the same which should be the
7837 // frame that called our sample function and the control.
7838 if (sampleLines[s] !== controlLines[c]) {
7839 // In V8, the first line is describing the message but other VMs don't.
7840 // If we're about to return the first line, and the control is also on the same
7841 // line, that's a pretty good indicator that our sample threw at same line as
7842 // the control. I.e. before we entered the sample frame. So we ignore this result.
7843 // This can happen if you passed a class to function component, or non-function.
7844 if (s !== 1 || c !== 1) {
7845 do {
7846 s--;
7847 c--; // We may still have similar intermediate frames from the construct call.
7848 // The next one that isn't the same should be our match though.
7849
7850 if (c < 0 || sampleLines[s] !== controlLines[c]) {
7851 // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
7852 var _frame = '\n' + sampleLines[s].replace(' at new ', ' at ');
7853
7854 {
7855 if (typeof fn === 'function') {
7856 componentFrameCache.set(fn, _frame);
7857 }
7858 } // Return the line we found.
7859
7860
7861 return _frame;
7862 }
7863 } while (s >= 1 && c >= 0);
7864 }
7865
7866 break;
7867 }
7868 }
7869 }
7870 } finally {
7871 reentry = false;
7872
7873 {
7874 ReactCurrentDispatcher.current = previousDispatcher;
7875 reenableLogs();
7876 }
7877
7878 Error.prepareStackTrace = previousPrepareStackTrace;
7879 } // Fallback to just using the name if we couldn't make it throw.
7880
7881
7882 var name = fn ? fn.displayName || fn.name : '';
7883 var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
7884
7885 {
7886 if (typeof fn === 'function') {
7887 componentFrameCache.set(fn, syntheticFrame);
7888 }
7889 }
7890
7891 return syntheticFrame;
7892 }
7893 function describeFunctionComponentFrame(fn, source, ownerFn) {
7894 {
7895 return describeNativeComponentFrame(fn, false);
7896 }
7897 }
7898
7899 function shouldConstruct(Component) {
7900 var prototype = Component.prototype;
7901 return !!(prototype && prototype.isReactComponent);
7902 }
7903
7904 function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
7905
7906 if (type == null) {
7907 return '';
7908 }
7909
7910 if (typeof type === 'function') {
7911 {
7912 return describeNativeComponentFrame(type, shouldConstruct(type));
7913 }
7914 }
7915
7916 if (typeof type === 'string') {
7917 return describeBuiltInComponentFrame(type);
7918 }
7919
7920 switch (type) {
7921 case REACT_SUSPENSE_TYPE:
7922 return describeBuiltInComponentFrame('Suspense');
7923
7924 case REACT_SUSPENSE_LIST_TYPE:
7925 return describeBuiltInComponentFrame('SuspenseList');
7926 }
7927
7928 if (typeof type === 'object') {
7929 switch (type.$$typeof) {
7930 case REACT_FORWARD_REF_TYPE:
7931 return describeFunctionComponentFrame(type.render);
7932
7933 case REACT_MEMO_TYPE:
7934 // Memo may contain any component type so we recursively resolve it.
7935 return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
7936
7937 case REACT_BLOCK_TYPE:
7938 return describeFunctionComponentFrame(type._render);
7939
7940 case REACT_LAZY_TYPE:
7941 {
7942 var lazyComponent = type;
7943 var payload = lazyComponent._payload;
7944 var init = lazyComponent._init;
7945
7946 try {
7947 // Lazy may contain any component type so we recursively resolve it.
7948 return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
7949 } catch (x) {}
7950 }
7951 }
7952 }
7953
7954 return '';
7955 }
7956
7957 var loggedTypeFailures = {};
7958 var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
7959
7960 function setCurrentlyValidatingElement(element) {
7961 {
7962 if (element) {
7963 var owner = element._owner;
7964 var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
7965 ReactDebugCurrentFrame.setExtraStackFrame(stack);
7966 } else {
7967 ReactDebugCurrentFrame.setExtraStackFrame(null);
7968 }
7969 }
7970 }
7971
7972 function checkPropTypes(typeSpecs, values, location, componentName, element) {
7973 {
7974 // $FlowFixMe This is okay but Flow doesn't know it.
7975 var has = Function.call.bind(Object.prototype.hasOwnProperty);
7976
7977 for (var typeSpecName in typeSpecs) {
7978 if (has(typeSpecs, typeSpecName)) {
7979 var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
7980 // fail the render phase where it didn't fail before. So we log it.
7981 // After these have been cleaned up, we'll let them throw.
7982
7983 try {
7984 // This is intentionally an invariant that gets caught. It's the same
7985 // behavior as without this statement except with a better message.
7986 if (typeof typeSpecs[typeSpecName] !== 'function') {
7987 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`.');
7988 err.name = 'Invariant Violation';
7989 throw err;
7990 }
7991
7992 error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
7993 } catch (ex) {
7994 error$1 = ex;
7995 }
7996
7997 if (error$1 && !(error$1 instanceof Error)) {
7998 setCurrentlyValidatingElement(element);
7999
8000 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);
8001
8002 setCurrentlyValidatingElement(null);
8003 }
8004
8005 if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
8006 // Only monitor this failure once because there tends to be a lot of the
8007 // same error.
8008 loggedTypeFailures[error$1.message] = true;
8009 setCurrentlyValidatingElement(element);
8010
8011 error('Failed %s type: %s', location, error$1.message);
8012
8013 setCurrentlyValidatingElement(null);
8014 }
8015 }
8016 }
8017 }
8018 }
8019
8020 var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
8021 var hasOwnProperty = Object.prototype.hasOwnProperty;
8022 var RESERVED_PROPS = {
8023 key: true,
8024 ref: true,
8025 __self: true,
8026 __source: true
8027 };
8028 var specialPropKeyWarningShown;
8029 var specialPropRefWarningShown;
8030 var didWarnAboutStringRefs;
8031
8032 {
8033 didWarnAboutStringRefs = {};
8034 }
8035
8036 function hasValidRef(config) {
8037 {
8038 if (hasOwnProperty.call(config, 'ref')) {
8039 var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
8040
8041 if (getter && getter.isReactWarning) {
8042 return false;
8043 }
8044 }
8045 }
8046
8047 return config.ref !== undefined;
8048 }
8049
8050 function hasValidKey(config) {
8051 {
8052 if (hasOwnProperty.call(config, 'key')) {
8053 var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
8054
8055 if (getter && getter.isReactWarning) {
8056 return false;
8057 }
8058 }
8059 }
8060
8061 return config.key !== undefined;
8062 }
8063
8064 function warnIfStringRefCannotBeAutoConverted(config, self) {
8065 {
8066 if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {
8067 var componentName = getComponentName(ReactCurrentOwner.current.type);
8068
8069 if (!didWarnAboutStringRefs[componentName]) {
8070 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);
8071
8072 didWarnAboutStringRefs[componentName] = true;
8073 }
8074 }
8075 }
8076 }
8077
8078 function defineKeyPropWarningGetter(props, displayName) {
8079 {
8080 var warnAboutAccessingKey = function () {
8081 if (!specialPropKeyWarningShown) {
8082 specialPropKeyWarningShown = true;
8083
8084 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);
8085 }
8086 };
8087
8088 warnAboutAccessingKey.isReactWarning = true;
8089 Object.defineProperty(props, 'key', {
8090 get: warnAboutAccessingKey,
8091 configurable: true
8092 });
8093 }
8094 }
8095
8096 function defineRefPropWarningGetter(props, displayName) {
8097 {
8098 var warnAboutAccessingRef = function () {
8099 if (!specialPropRefWarningShown) {
8100 specialPropRefWarningShown = true;
8101
8102 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);
8103 }
8104 };
8105
8106 warnAboutAccessingRef.isReactWarning = true;
8107 Object.defineProperty(props, 'ref', {
8108 get: warnAboutAccessingRef,
8109 configurable: true
8110 });
8111 }
8112 }
8113 /**
8114 * Factory method to create a new React element. This no longer adheres to
8115 * the class pattern, so do not use new to call it. Also, instanceof check
8116 * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
8117 * if something is a React Element.
8118 *
8119 * @param {*} type
8120 * @param {*} props
8121 * @param {*} key
8122 * @param {string|object} ref
8123 * @param {*} owner
8124 * @param {*} self A *temporary* helper to detect places where `this` is
8125 * different from the `owner` when React.createElement is called, so that we
8126 * can warn. We want to get rid of owner and replace string `ref`s with arrow
8127 * functions, and as long as `this` and owner are the same, there will be no
8128 * change in behavior.
8129 * @param {*} source An annotation object (added by a transpiler or otherwise)
8130 * indicating filename, line number, and/or other information.
8131 * @internal
8132 */
8133
8134
8135 var ReactElement = function (type, key, ref, self, source, owner, props) {
8136 var element = {
8137 // This tag allows us to uniquely identify this as a React Element
8138 $$typeof: REACT_ELEMENT_TYPE,
8139 // Built-in properties that belong on the element
8140 type: type,
8141 key: key,
8142 ref: ref,
8143 props: props,
8144 // Record the component responsible for creating this element.
8145 _owner: owner
8146 };
8147
8148 {
8149 // The validation flag is currently mutative. We put it on
8150 // an external backing store so that we can freeze the whole object.
8151 // This can be replaced with a WeakMap once they are implemented in
8152 // commonly used development environments.
8153 element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
8154 // the validation flag non-enumerable (where possible, which should
8155 // include every environment we run tests in), so the test framework
8156 // ignores it.
8157
8158 Object.defineProperty(element._store, 'validated', {
8159 configurable: false,
8160 enumerable: false,
8161 writable: true,
8162 value: false
8163 }); // self and source are DEV only properties.
8164
8165 Object.defineProperty(element, '_self', {
8166 configurable: false,
8167 enumerable: false,
8168 writable: false,
8169 value: self
8170 }); // Two elements created in two different places should be considered
8171 // equal for testing purposes and therefore we hide it from enumeration.
8172
8173 Object.defineProperty(element, '_source', {
8174 configurable: false,
8175 enumerable: false,
8176 writable: false,
8177 value: source
8178 });
8179
8180 if (Object.freeze) {
8181 Object.freeze(element.props);
8182 Object.freeze(element);
8183 }
8184 }
8185
8186 return element;
8187 };
8188 /**
8189 * https://github.com/reactjs/rfcs/pull/107
8190 * @param {*} type
8191 * @param {object} props
8192 * @param {string} key
8193 */
8194
8195 function jsxDEV(type, config, maybeKey, source, self) {
8196 {
8197 var propName; // Reserved names are extracted
8198
8199 var props = {};
8200 var key = null;
8201 var ref = null; // Currently, key can be spread in as a prop. This causes a potential
8202 // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
8203 // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
8204 // but as an intermediary step, we will use jsxDEV for everything except
8205 // <div {...props} key="Hi" />, because we aren't currently able to tell if
8206 // key is explicitly declared to be undefined or not.
8207
8208 if (maybeKey !== undefined) {
8209 key = '' + maybeKey;
8210 }
8211
8212 if (hasValidKey(config)) {
8213 key = '' + config.key;
8214 }
8215
8216 if (hasValidRef(config)) {
8217 ref = config.ref;
8218 warnIfStringRefCannotBeAutoConverted(config, self);
8219 } // Remaining properties are added to a new props object
8220
8221
8222 for (propName in config) {
8223 if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
8224 props[propName] = config[propName];
8225 }
8226 } // Resolve default props
8227
8228
8229 if (type && type.defaultProps) {
8230 var defaultProps = type.defaultProps;
8231
8232 for (propName in defaultProps) {
8233 if (props[propName] === undefined) {
8234 props[propName] = defaultProps[propName];
8235 }
8236 }
8237 }
8238
8239 if (key || ref) {
8240 var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
8241
8242 if (key) {
8243 defineKeyPropWarningGetter(props, displayName);
8244 }
8245
8246 if (ref) {
8247 defineRefPropWarningGetter(props, displayName);
8248 }
8249 }
8250
8251 return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
8252 }
8253 }
8254
8255 var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
8256 var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
8257
8258 function setCurrentlyValidatingElement$1(element) {
8259 {
8260 if (element) {
8261 var owner = element._owner;
8262 var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
8263 ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
8264 } else {
8265 ReactDebugCurrentFrame$1.setExtraStackFrame(null);
8266 }
8267 }
8268 }
8269
8270 var propTypesMisspellWarningShown;
8271
8272 {
8273 propTypesMisspellWarningShown = false;
8274 }
8275 /**
8276 * Verifies the object is a ReactElement.
8277 * See https://reactjs.org/docs/react-api.html#isvalidelement
8278 * @param {?object} object
8279 * @return {boolean} True if `object` is a ReactElement.
8280 * @final
8281 */
8282
8283 function isValidElement(object) {
8284 {
8285 return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
8286 }
8287 }
8288
8289 function getDeclarationErrorAddendum() {
8290 {
8291 if (ReactCurrentOwner$1.current) {
8292 var name = getComponentName(ReactCurrentOwner$1.current.type);
8293
8294 if (name) {
8295 return '\n\nCheck the render method of `' + name + '`.';
8296 }
8297 }
8298
8299 return '';
8300 }
8301 }
8302
8303 function getSourceInfoErrorAddendum(source) {
8304 {
8305 if (source !== undefined) {
8306 var fileName = source.fileName.replace(/^.*[\\\/]/, '');
8307 var lineNumber = source.lineNumber;
8308 return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
8309 }
8310
8311 return '';
8312 }
8313 }
8314 /**
8315 * Warn if there's no key explicitly set on dynamic arrays of children or
8316 * object keys are not valid. This allows us to keep track of children between
8317 * updates.
8318 */
8319
8320
8321 var ownerHasKeyUseWarning = {};
8322
8323 function getCurrentComponentErrorInfo(parentType) {
8324 {
8325 var info = getDeclarationErrorAddendum();
8326
8327 if (!info) {
8328 var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
8329
8330 if (parentName) {
8331 info = "\n\nCheck the top-level render call using <" + parentName + ">.";
8332 }
8333 }
8334
8335 return info;
8336 }
8337 }
8338 /**
8339 * Warn if the element doesn't have an explicit key assigned to it.
8340 * This element is in an array. The array could grow and shrink or be
8341 * reordered. All children that haven't already been validated are required to
8342 * have a "key" property assigned to it. Error statuses are cached so a warning
8343 * will only be shown once.
8344 *
8345 * @internal
8346 * @param {ReactElement} element Element that requires a key.
8347 * @param {*} parentType element's parent's type.
8348 */
8349
8350
8351 function validateExplicitKey(element, parentType) {
8352 {
8353 if (!element._store || element._store.validated || element.key != null) {
8354 return;
8355 }
8356
8357 element._store.validated = true;
8358 var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
8359
8360 if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
8361 return;
8362 }
8363
8364 ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
8365 // property, it may be the creator of the child that's responsible for
8366 // assigning it a key.
8367
8368 var childOwner = '';
8369
8370 if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
8371 // Give the component that originally created this child.
8372 childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
8373 }
8374
8375 setCurrentlyValidatingElement$1(element);
8376
8377 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);
8378
8379 setCurrentlyValidatingElement$1(null);
8380 }
8381 }
8382 /**
8383 * Ensure that every element either is passed in a static location, in an
8384 * array with an explicit keys property defined, or in an object literal
8385 * with valid key property.
8386 *
8387 * @internal
8388 * @param {ReactNode} node Statically passed child of any type.
8389 * @param {*} parentType node's parent's type.
8390 */
8391
8392
8393 function validateChildKeys(node, parentType) {
8394 {
8395 if (typeof node !== 'object') {
8396 return;
8397 }
8398
8399 if (Array.isArray(node)) {
8400 for (var i = 0; i < node.length; i++) {
8401 var child = node[i];
8402
8403 if (isValidElement(child)) {
8404 validateExplicitKey(child, parentType);
8405 }
8406 }
8407 } else if (isValidElement(node)) {
8408 // This element was passed in a valid location.
8409 if (node._store) {
8410 node._store.validated = true;
8411 }
8412 } else if (node) {
8413 var iteratorFn = getIteratorFn(node);
8414
8415 if (typeof iteratorFn === 'function') {
8416 // Entry iterators used to provide implicit keys,
8417 // but now we print a separate warning for them later.
8418 if (iteratorFn !== node.entries) {
8419 var iterator = iteratorFn.call(node);
8420 var step;
8421
8422 while (!(step = iterator.next()).done) {
8423 if (isValidElement(step.value)) {
8424 validateExplicitKey(step.value, parentType);
8425 }
8426 }
8427 }
8428 }
8429 }
8430 }
8431 }
8432 /**
8433 * Given an element, validate that its props follow the propTypes definition,
8434 * provided by the type.
8435 *
8436 * @param {ReactElement} element
8437 */
8438
8439
8440 function validatePropTypes(element) {
8441 {
8442 var type = element.type;
8443
8444 if (type === null || type === undefined || typeof type === 'string') {
8445 return;
8446 }
8447
8448 var propTypes;
8449
8450 if (typeof type === 'function') {
8451 propTypes = type.propTypes;
8452 } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
8453 // Inner props are checked in the reconciler.
8454 type.$$typeof === REACT_MEMO_TYPE)) {
8455 propTypes = type.propTypes;
8456 } else {
8457 return;
8458 }
8459
8460 if (propTypes) {
8461 // Intentionally inside to avoid triggering lazy initializers:
8462 var name = getComponentName(type);
8463 checkPropTypes(propTypes, element.props, 'prop', name, element);
8464 } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
8465 propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
8466
8467 var _name = getComponentName(type);
8468
8469 error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
8470 }
8471
8472 if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
8473 error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
8474 }
8475 }
8476 }
8477 /**
8478 * Given a fragment, validate that it can only be provided with fragment props
8479 * @param {ReactElement} fragment
8480 */
8481
8482
8483 function validateFragmentProps(fragment) {
8484 {
8485 var keys = Object.keys(fragment.props);
8486
8487 for (var i = 0; i < keys.length; i++) {
8488 var key = keys[i];
8489
8490 if (key !== 'children' && key !== 'key') {
8491 setCurrentlyValidatingElement$1(fragment);
8492
8493 error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
8494
8495 setCurrentlyValidatingElement$1(null);
8496 break;
8497 }
8498 }
8499
8500 if (fragment.ref !== null) {
8501 setCurrentlyValidatingElement$1(fragment);
8502
8503 error('Invalid attribute `ref` supplied to `React.Fragment`.');
8504
8505 setCurrentlyValidatingElement$1(null);
8506 }
8507 }
8508 }
8509
8510 function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
8511 {
8512 var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
8513 // succeed and there will likely be errors in render.
8514
8515 if (!validType) {
8516 var info = '';
8517
8518 if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
8519 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.";
8520 }
8521
8522 var sourceInfo = getSourceInfoErrorAddendum(source);
8523
8524 if (sourceInfo) {
8525 info += sourceInfo;
8526 } else {
8527 info += getDeclarationErrorAddendum();
8528 }
8529
8530 var typeString;
8531
8532 if (type === null) {
8533 typeString = 'null';
8534 } else if (Array.isArray(type)) {
8535 typeString = 'array';
8536 } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
8537 typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
8538 info = ' Did you accidentally export a JSX literal instead of a component?';
8539 } else {
8540 typeString = typeof type;
8541 }
8542
8543 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);
8544 }
8545
8546 var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
8547 // TODO: Drop this when these are no longer allowed as the type argument.
8548
8549 if (element == null) {
8550 return element;
8551 } // Skip key warning if the type isn't valid since our key validation logic
8552 // doesn't expect a non-string/function type and can throw confusing errors.
8553 // We don't want exception behavior to differ between dev and prod.
8554 // (Rendering will throw with a helpful message and as soon as the type is
8555 // fixed, the key warnings will appear.)
8556
8557
8558 if (validType) {
8559 var children = props.children;
8560
8561 if (children !== undefined) {
8562 if (isStaticChildren) {
8563 if (Array.isArray(children)) {
8564 for (var i = 0; i < children.length; i++) {
8565 validateChildKeys(children[i], type);
8566 }
8567
8568 if (Object.freeze) {
8569 Object.freeze(children);
8570 }
8571 } else {
8572 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.');
8573 }
8574 } else {
8575 validateChildKeys(children, type);
8576 }
8577 }
8578 }
8579
8580 if (type === exports.Fragment) {
8581 validateFragmentProps(element);
8582 } else {
8583 validatePropTypes(element);
8584 }
8585
8586 return element;
8587 }
8588 } // These two functions exist to still get child warnings in dev
8589 // even with the prod transform. This means that jsxDEV is purely
8590 // opt-in behavior for better messages but that we won't stop
8591 // giving you warnings if you use production apis.
8592
8593 function jsxWithValidationStatic(type, props, key) {
8594 {
8595 return jsxWithValidation(type, props, key, true);
8596 }
8597 }
8598 function jsxWithValidationDynamic(type, props, key) {
8599 {
8600 return jsxWithValidation(type, props, key, false);
8601 }
8602 }
8603
8604 var jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.
8605 // for now we can ship identical prod functions
8606
8607 var jsxs = jsxWithValidationStatic ;
8608
8609 exports.jsx = jsx;
8610 exports.jsxs = jsxs;
8611 })();
8612 }
8613
8614
8615 /***/ }),
8616
8617 /***/ "./node_modules/react/jsx-runtime.js":
8618 /*!*******************************************!*\
8619 !*** ./node_modules/react/jsx-runtime.js ***!
8620 \*******************************************/
8621 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8622
8623 "use strict";
8624
8625
8626 if (false) {} else {
8627 module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ "./node_modules/react/cjs/react-jsx-runtime.development.js");
8628 }
8629
8630
8631 /***/ }),
8632
8633 /***/ "react":
8634 /*!************************!*\
8635 !*** external "React" ***!
8636 \************************/
8637 /***/ ((module) => {
8638
8639 "use strict";
8640 module.exports = window["React"];
8641
8642 /***/ }),
8643
8644 /***/ "react-dom":
8645 /*!***************************!*\
8646 !*** external "ReactDOM" ***!
8647 \***************************/
8648 /***/ ((module) => {
8649
8650 "use strict";
8651 module.exports = window["ReactDOM"];
8652
8653 /***/ }),
8654
8655 /***/ "jquery":
8656 /*!*************************!*\
8657 !*** external "jQuery" ***!
8658 \*************************/
8659 /***/ ((module) => {
8660
8661 "use strict";
8662 module.exports = window["jQuery"];
8663
8664 /***/ }),
8665
8666 /***/ "@wordpress/i18n":
8667 /*!******************************!*\
8668 !*** external ["wp","i18n"] ***!
8669 \******************************/
8670 /***/ ((module) => {
8671
8672 "use strict";
8673 module.exports = window["wp"]["i18n"];
8674
8675 /***/ }),
8676
8677 /***/ "./node_modules/@linaria/react/dist/index.mjs":
8678 /*!****************************************************!*\
8679 !*** ./node_modules/@linaria/react/dist/index.mjs ***!
8680 \****************************************************/
8681 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
8682
8683 "use strict";
8684 __webpack_require__.r(__webpack_exports__);
8685 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8686 /* harmony export */ "styled": () => (/* binding */ styled_default)
8687 /* harmony export */ });
8688 /* 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");
8689 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
8690 /* harmony import */ var _linaria_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @linaria/core */ "./node_modules/@linaria/react/node_modules/@linaria/core/dist/index.mjs");
8691 // src/styled.ts
8692
8693
8694
8695 var isCapital = (ch) => ch.toUpperCase() === ch;
8696 var filterKey = (keys) => (key) => keys.indexOf(key) === -1;
8697 var omit = (obj, keys) => {
8698 const res = {};
8699 Object.keys(obj).filter(filterKey(keys)).forEach((key) => {
8700 res[key] = obj[key];
8701 });
8702 return res;
8703 };
8704 function filterProps(asIs, props, omitKeys) {
8705 const filteredProps = omit(props, omitKeys);
8706 if (!asIs) {
8707 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"];
8708 Object.keys(filteredProps).forEach((key) => {
8709 if (!interopValidAttr.default(key)) {
8710 delete filteredProps[key];
8711 }
8712 });
8713 }
8714 return filteredProps;
8715 }
8716 var warnIfInvalid = (value, componentName) => {
8717 if (true) {
8718 if (typeof value === "string" || typeof value === "number" && isFinite(value)) {
8719 return;
8720 }
8721 const stringified = typeof value === "object" ? JSON.stringify(value) : String(value);
8722 console.warn(
8723 `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.`
8724 );
8725 }
8726 };
8727 function styled(tag) {
8728 return (options) => {
8729 if (true) {
8730 if (Array.isArray(options)) {
8731 throw new Error(
8732 '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'
8733 );
8734 }
8735 }
8736 const render = (props, ref) => {
8737 const { as: component = tag, class: className } = props;
8738 const shouldKeepProps = options.propsAsIs === void 0 ? !(typeof component === "string" && component.indexOf("-") === -1 && !isCapital(component[0])) : options.propsAsIs;
8739 const filteredProps = filterProps(shouldKeepProps, props, [
8740 "as",
8741 "class"
8742 ]);
8743 filteredProps.ref = ref;
8744 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);
8745 const { vars } = options;
8746 if (vars) {
8747 const style = {};
8748 for (const name in vars) {
8749 const variable = vars[name];
8750 const result = variable[0];
8751 const unit = variable[1] || "";
8752 const value = typeof result === "function" ? result(props) : result;
8753 warnIfInvalid(value, options.name);
8754 style[`--${name}`] = `${value}${unit}`;
8755 }
8756 const ownStyle = filteredProps.style || {};
8757 const keys = Object.keys(ownStyle);
8758 if (keys.length > 0) {
8759 keys.forEach((key) => {
8760 style[key] = ownStyle[key];
8761 });
8762 }
8763 filteredProps.style = style;
8764 }
8765 if (tag.__linaria && tag !== component) {
8766 filteredProps.as = component;
8767 return react__WEBPACK_IMPORTED_MODULE_1__.createElement(tag, filteredProps);
8768 }
8769 return react__WEBPACK_IMPORTED_MODULE_1__.createElement(component, filteredProps);
8770 };
8771 const Result = react__WEBPACK_IMPORTED_MODULE_1__.forwardRef ? react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(render) : (props) => {
8772 const rest = omit(props, ["innerRef"]);
8773 return render(rest, props.innerRef);
8774 };
8775 Result.displayName = options.name;
8776 Result.__linaria = {
8777 className: options.class,
8778 extends: tag
8779 };
8780 return Result;
8781 };
8782 }
8783 var styled_default = true ? new Proxy(styled, {
8784 get(o, prop) {
8785 return o(prop);
8786 }
8787 }) : 0;
8788
8789 //# sourceMappingURL=index.mjs.map
8790
8791 /***/ }),
8792
8793 /***/ "./node_modules/@linaria/react/node_modules/@linaria/core/dist/index.mjs":
8794 /*!*******************************************************************************!*\
8795 !*** ./node_modules/@linaria/react/node_modules/@linaria/core/dist/index.mjs ***!
8796 \*******************************************************************************/
8797 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
8798
8799 "use strict";
8800 __webpack_require__.r(__webpack_exports__);
8801 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8802 /* harmony export */ "css": () => (/* binding */ css_default),
8803 /* harmony export */ "cx": () => (/* binding */ cx_default)
8804 /* harmony export */ });
8805 // src/css.ts
8806 var css = () => {
8807 throw new Error(
8808 'Using the "css" tag in runtime is not supported. Make sure you have set up the Babel plugin correctly.'
8809 );
8810 };
8811 var css_default = css;
8812
8813 // src/cx.ts
8814 var cx = function cx2() {
8815 const presentClassNames = Array.prototype.slice.call(arguments).filter(Boolean);
8816 const atomicClasses = {};
8817 const nonAtomicClasses = [];
8818 presentClassNames.forEach((arg) => {
8819 const individualClassNames = arg ? arg.split(" ") : [];
8820 individualClassNames.forEach((className) => {
8821 if (className.startsWith("atm_")) {
8822 const [, keyHash] = className.split("_");
8823 atomicClasses[keyHash] = className;
8824 } else {
8825 nonAtomicClasses.push(className);
8826 }
8827 });
8828 });
8829 const result = [];
8830 for (const keyHash in atomicClasses) {
8831 if (Object.prototype.hasOwnProperty.call(atomicClasses, keyHash)) {
8832 result.push(atomicClasses[keyHash]);
8833 }
8834 }
8835 result.push(...nonAtomicClasses);
8836 return result.join(" ");
8837 };
8838 var cx_default = cx;
8839
8840 //# sourceMappingURL=index.mjs.map
8841
8842 /***/ })
8843
8844 /******/ });
8845 /************************************************************************/
8846 /******/ // The module cache
8847 /******/ var __webpack_module_cache__ = {};
8848 /******/
8849 /******/ // The require function
8850 /******/ function __webpack_require__(moduleId) {
8851 /******/ // Check if module is in cache
8852 /******/ var cachedModule = __webpack_module_cache__[moduleId];
8853 /******/ if (cachedModule !== undefined) {
8854 /******/ return cachedModule.exports;
8855 /******/ }
8856 /******/ // Create a new module (and put it into the cache)
8857 /******/ var module = __webpack_module_cache__[moduleId] = {
8858 /******/ // no module.id needed
8859 /******/ // no module.loaded needed
8860 /******/ exports: {}
8861 /******/ };
8862 /******/
8863 /******/ // Execute the module function
8864 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
8865 /******/
8866 /******/ // Return the exports of the module
8867 /******/ return module.exports;
8868 /******/ }
8869 /******/
8870 /************************************************************************/
8871 /******/ /* webpack/runtime/compat get default export */
8872 /******/ (() => {
8873 /******/ // getDefaultExport function for compatibility with non-harmony modules
8874 /******/ __webpack_require__.n = (module) => {
8875 /******/ var getter = module && module.__esModule ?
8876 /******/ () => (module['default']) :
8877 /******/ () => (module);
8878 /******/ __webpack_require__.d(getter, { a: getter });
8879 /******/ return getter;
8880 /******/ };
8881 /******/ })();
8882 /******/
8883 /******/ /* webpack/runtime/define property getters */
8884 /******/ (() => {
8885 /******/ // define getter functions for harmony exports
8886 /******/ __webpack_require__.d = (exports, definition) => {
8887 /******/ for(var key in definition) {
8888 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
8889 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
8890 /******/ }
8891 /******/ }
8892 /******/ };
8893 /******/ })();
8894 /******/
8895 /******/ /* webpack/runtime/global */
8896 /******/ (() => {
8897 /******/ __webpack_require__.g = (function() {
8898 /******/ if (typeof globalThis === 'object') return globalThis;
8899 /******/ try {
8900 /******/ return this || new Function('return this')();
8901 /******/ } catch (e) {
8902 /******/ if (typeof window === 'object') return window;
8903 /******/ }
8904 /******/ })();
8905 /******/ })();
8906 /******/
8907 /******/ /* webpack/runtime/hasOwnProperty shorthand */
8908 /******/ (() => {
8909 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
8910 /******/ })();
8911 /******/
8912 /******/ /* webpack/runtime/make namespace object */
8913 /******/ (() => {
8914 /******/ // define __esModule on exports
8915 /******/ __webpack_require__.r = (exports) => {
8916 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
8917 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
8918 /******/ }
8919 /******/ Object.defineProperty(exports, '__esModule', { value: true });
8920 /******/ };
8921 /******/ })();
8922 /******/
8923 /************************************************************************/
8924 var __webpack_exports__ = {};
8925 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
8926 (() => {
8927 "use strict";
8928 /*!**************************************!*\
8929 !*** ./scripts/entries/elementor.ts ***!
8930 \**************************************/
8931 __webpack_require__.r(__webpack_exports__);
8932 /* harmony import */ var _elementor_elementorWidget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elementor/elementorWidget */ "./scripts/elementor/elementorWidget.ts");
8933 /* harmony import */ var _elementor_FormWidget_registerFormWidget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../elementor/FormWidget/registerFormWidget */ "./scripts/elementor/FormWidget/registerFormWidget.ts");
8934 /* harmony import */ var _utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts");
8935 /* harmony import */ var _elementor_MeetingWidget_registerMeetingWidget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../elementor/MeetingWidget/registerMeetingWidget */ "./scripts/elementor/MeetingWidget/registerMeetingWidget.ts");
8936
8937
8938
8939
8940 var ELEMENTOR_READY_INTERVAL = 500;
8941 var MAX_POLL_TIMEOUT = 30000;
8942
8943 var registerElementorWidgets = function registerElementorWidgets() {
8944 (0,_utils_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_2__.initBackgroundApp)(function () {
8945 var FormWidget;
8946 var MeetingsWidget;
8947 var leadinSelectFormItemView = (0,_elementor_elementorWidget__WEBPACK_IMPORTED_MODULE_0__["default"])( //@ts-expect-error global
8948 window.elementor, {
8949 widgetName: 'hubspot-form',
8950 controlSelector: '.elementor-hbspt-form-selector',
8951 containerSelector: '.hubspot-form-edit-mode'
8952 }, function (controlContainer, widgetContainer, setValue) {
8953 FormWidget = new _elementor_FormWidget_registerFormWidget__WEBPACK_IMPORTED_MODULE_1__["default"](controlContainer, widgetContainer, setValue);
8954 FormWidget.render();
8955 }, function () {
8956 FormWidget.done();
8957 });
8958 var leadinSelectMeetingItemView = (0,_elementor_elementorWidget__WEBPACK_IMPORTED_MODULE_0__["default"])( //@ts-expect-error global
8959 window.elementor, {
8960 widgetName: 'hubspot-meeting',
8961 controlSelector: '.elementor-hbspt-meeting-selector',
8962 containerSelector: '.hubspot-meeting-edit-mode'
8963 }, function (controlContainer, widgetContainer, setValue) {
8964 MeetingsWidget = new _elementor_MeetingWidget_registerMeetingWidget__WEBPACK_IMPORTED_MODULE_3__["default"](controlContainer, widgetContainer, setValue);
8965 MeetingsWidget.render();
8966 }, function () {
8967 MeetingsWidget.done();
8968 }); //@ts-expect-error global
8969
8970 window.elementor.addControlView('leadinformselect', leadinSelectFormItemView); //@ts-expect-error global
8971
8972 window.elementor.addControlView('leadinmeetingselect', leadinSelectMeetingItemView);
8973 });
8974 };
8975
8976 var pollForElementorReady = setInterval(function () {
8977 var elementorFrontend = window.elementorFrontend;
8978
8979 if (elementorFrontend) {
8980 registerElementorWidgets();
8981 clearInterval(pollForElementorReady);
8982 }
8983 }, ELEMENTOR_READY_INTERVAL);
8984 setTimeout(function () {
8985 clearInterval(pollForElementorReady);
8986 }, MAX_POLL_TIMEOUT);
8987 })();
8988
8989 /******/ })()
8990 ;
8991 //# sourceMappingURL=elementor.js.map