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

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