| @@ -460,18 +460,15 @@ | ||
| 460 | 460 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 461 | 461 | /* harmony export */ "default": () => (/* binding */ ElementorFormSelectContainer) |
| 462 | 462 | /* harmony export */ }); |
| 463 | 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 _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 468 | -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); | |
| 469 | -/* harmony import */ var _Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Common/ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx"); | |
| 470 | -/* harmony import */ var _shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../shared/UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx"); | |
| 471 | -/* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts"); | |
| 472 | -/* harmony import */ var _hooks_useForms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./hooks/useForms */ "./scripts/elementor/FormWidget/hooks/useForms.ts"); | |
| 473 | -/* harmony import */ var _utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/useGetEmbedder */ "./scripts/utils/useGetEmbedder.ts"); | |
| 464 | +/* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts"); | |
| 465 | +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); | |
| 466 | +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); | |
| 467 | +/* harmony import */ var _Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/ElementorBanner */ "./scripts/elementor/Common/ElementorBanner.tsx"); | |
| 468 | +/* harmony import */ var _shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/UIComponents/UISpinner */ "./scripts/shared/UIComponents/UISpinner.tsx"); | |
| 469 | +/* harmony import */ var _hooks_useForms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hooks/useForms */ "./scripts/elementor/FormWidget/hooks/useForms.ts"); | |
| 470 | +/* harmony import */ var _shared_Common_EmbedderContainer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../shared/Common/EmbedderContainer */ "./scripts/shared/Common/EmbedderContainer.tsx"); | |
| 474 | 471 | function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } |
| 475 | 472 | function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } |
| 476 | 473 | function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } |
| 477 | 474 | function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } |
| @@ -483,22 +480,20 @@ | ||
| 483 | 480 | |
| 484 | 481 | |
| 485 | 482 | |
| 486 | 483 | |
| 487 | - | |
| 488 | - | |
| 489 | 484 | function ElementorFormSelect(_ref) { |
| 490 | 485 | var formId = _ref.formId, |
| 491 | 486 | setAttributes = _ref.setAttributes; |
| 492 | - var _useForms = (0,_hooks_useForms__WEBPACK_IMPORTED_MODULE_7__["default"])(), | |
| 487 | + var _useForms = (0,_hooks_useForms__WEBPACK_IMPORTED_MODULE_5__["default"])(), | |
| 493 | 488 | hasError = _useForms.hasError, |
| 494 | 489 | forms = _useForms.forms, |
| 495 | 490 | loading = _useForms.loading; |
| 496 | 491 | return loading ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { |
| 497 | - children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_5__["default"], {}) | |
| 498 | - }) : hasError ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_4__["default"], { | |
| 492 | + children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_4__["default"], {}) | |
| 493 | + }) : hasError ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_ElementorBanner__WEBPACK_IMPORTED_MODULE_3__["default"], { | |
| 499 | 494 | type: "danger", |
| 500 | - children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Please refresh your forms or try again in a few minutes', 'leadin') | |
| 495 | + children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Please refresh your forms or try again in a few minutes', 'leadin') | |
| 501 | 496 | }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("select", { |
| 502 | 497 | value: formId, |
| 503 | 498 | onChange: function onChange(event) { |
| 504 | 499 | var selectedForm = forms.find(function (form) { |
| @@ -505,9 +500,9 @@ | ||
| 505 | 500 | return form.value === event.target.value; |
| 506 | 501 | }); |
| 507 | 502 | if (selectedForm) { |
| 508 | 503 | setAttributes({ |
| 509 | - portalId: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_2__.portalId, | |
| 504 | + portalId: _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_1__.portalId, | |
| 510 | 505 | formId: selectedForm.value, |
| 511 | 506 | formName: selectedForm.label, |
| 512 | 507 | embedVersion: selectedForm.embedVersion |
| 513 | 508 | }); |
| @@ -516,9 +511,9 @@ | ||
| 516 | 511 | children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", { |
| 517 | 512 | value: "", |
| 518 | 513 | disabled: true, |
| 519 | 514 | selected: true, |
| 520 | - children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Search for a form', 'leadin') | |
| 515 | + children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Search for a form', 'leadin') | |
| 521 | 516 | }), forms.map(function (form) { |
| 522 | 517 | return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", { |
| 523 | 518 | value: form.value, |
| 524 | 519 | children: form.label |
| @@ -525,32 +520,11 @@ | ||
| 525 | 520 | }, form.value); |
| 526 | 521 | })] |
| 527 | 522 | }); |
| 528 | 523 | } |
| 529 | -function ElementorFormSelectWrapper(props) { | |
| 530 | - var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.useBackgroundAppContext)(); | |
| 531 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, { | |
| 532 | - children: !isBackgroundAppReady ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { | |
| 533 | - children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_5__["default"], {}) | |
| 534 | - }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorFormSelect, _objectSpread({}, props)) | |
| 535 | - }); | |
| 536 | -} | |
| 537 | 524 | function ElementorFormSelectContainer(props) { |
| 538 | - var _useGetEmbedder = (0,_utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_8__.useGetEmbedder)(), | |
| 539 | - embedder = _useGetEmbedder.embedder, | |
| 540 | - errorElement = _useGetEmbedder.errorElement, | |
| 541 | - isLoading = _useGetEmbedder.isLoading; | |
| 542 | - if (errorElement) { | |
| 543 | - return errorElement; | |
| 544 | - } | |
| 545 | - if (isLoading) { | |
| 546 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { | |
| 547 | - children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_5__["default"], {}) | |
| 548 | - }); | |
| 549 | - } | |
| 550 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.BackgroudAppContext.Provider, { | |
| 551 | - value: embedder, | |
| 552 | - children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorFormSelectWrapper, _objectSpread({}, props)) | |
| 525 | + return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Common_EmbedderContainer__WEBPACK_IMPORTED_MODULE_6__["default"], { | |
| 526 | + children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorFormSelect, _objectSpread({}, props)) | |
| 553 | 527 | }); |
| 554 | 528 | } |
| 555 | 529 | |
| 556 | 530 | /***/ }), |
| @@ -798,10 +772,9 @@ | ||
| 798 | 772 | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); |
| 799 | 773 | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__); |
| 800 | 774 | /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! raven-js */ "./node_modules/raven-js/src/singleton.js"); |
| 801 | 775 | /* harmony import */ var raven_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(raven_js__WEBPACK_IMPORTED_MODULE_7__); |
| 802 | -/* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts"); | |
| 803 | -/* harmony import */ var _utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/useGetEmbedder */ "./scripts/utils/useGetEmbedder.ts"); | |
| 776 | +/* harmony import */ var _shared_Common_EmbedderContainer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../shared/Common/EmbedderContainer */ "./scripts/shared/Common/EmbedderContainer.tsx"); | |
| 804 | 777 | function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } |
| 805 | 778 | function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } |
| 806 | 779 | function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } |
| 807 | 780 | function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } |
| @@ -821,9 +794,8 @@ | ||
| 821 | 794 | |
| 822 | 795 | |
| 823 | 796 | |
| 824 | 797 | |
| 825 | - | |
| 826 | 798 | function ElementorMeetingSelect(_ref) { |
| 827 | 799 | var url = _ref.url, |
| 828 | 800 | setAttributes = _ref.setAttributes; |
| 829 | 801 | var _useMeetings = (0,_shared_Meeting_hooks_useMeetings__WEBPACK_IMPORTED_MODULE_5__["default"])(), |
| @@ -881,32 +853,11 @@ | ||
| 881 | 853 | })] |
| 882 | 854 | }) |
| 883 | 855 | }); |
| 884 | 856 | } |
| 885 | -function ElementorMeetingSelectWrapper(props) { | |
| 886 | - var isBackgroundAppReady = (0,_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__.useBackgroundAppContext)(); | |
| 887 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, { | |
| 888 | - children: !isBackgroundAppReady ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { | |
| 889 | - children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__["default"], {}) | |
| 890 | - }) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorMeetingSelect, _objectSpread({}, props)) | |
| 891 | - }); | |
| 892 | -} | |
| 893 | 857 | function ElementorMeetingsSelectContainer(props) { |
| 894 | - var _useGetEmbedder = (0,_utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_9__.useGetEmbedder)(), | |
| 895 | - embedder = _useGetEmbedder.embedder, | |
| 896 | - errorElement = _useGetEmbedder.errorElement, | |
| 897 | - isLoading = _useGetEmbedder.isLoading; | |
| 898 | - if (errorElement) { | |
| 899 | - return errorElement; | |
| 900 | - } | |
| 901 | - if (isLoading) { | |
| 902 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { | |
| 903 | - children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_UIComponents_UISpinner__WEBPACK_IMPORTED_MODULE_3__["default"], {}) | |
| 904 | - }); | |
| 905 | - } | |
| 906 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_8__.BackgroudAppContext.Provider, { | |
| 907 | - value: embedder, | |
| 908 | - children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorMeetingSelectWrapper, _objectSpread({}, props)) | |
| 858 | + return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_shared_Common_EmbedderContainer__WEBPACK_IMPORTED_MODULE_8__["default"], { | |
| 859 | + children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ElementorMeetingSelect, _objectSpread({}, props)) | |
| 909 | 860 | }); |
| 910 | 861 | } |
| 911 | 862 | |
| 912 | 863 | /***/ }), |
| @@ -1672,8 +1623,47 @@ | ||
| 1672 | 1623 | __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"); |
| 1673 | 1624 | |
| 1674 | 1625 | /***/ }), |
| 1675 | 1626 | |
| 1627 | +/***/ "./scripts/shared/Common/EmbedderContainer.tsx": | |
| 1628 | +/*!*****************************************************!*\ | |
| 1629 | + !*** ./scripts/shared/Common/EmbedderContainer.tsx ***! | |
| 1630 | + \*****************************************************/ | |
| 1631 | +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 1632 | + | |
| 1633 | +"use strict"; | |
| 1634 | +__webpack_require__.r(__webpack_exports__); | |
| 1635 | +/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 1636 | +/* harmony export */ "default": () => (/* binding */ EmbedderContainer) | |
| 1637 | +/* harmony export */ }); | |
| 1638 | +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); | |
| 1639 | +/* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts"); | |
| 1640 | +/* harmony import */ var _utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/useGetEmbedder */ "./scripts/utils/useGetEmbedder.ts"); | |
| 1641 | +/* harmony import */ var _LoadingBlock__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx"); | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | +function EmbedderContainer(_ref) { | |
| 1647 | + var children = _ref.children; | |
| 1648 | + var _useGetEmbedder = (0,_utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_2__.useGetEmbedder)(), | |
| 1649 | + embedder = _useGetEmbedder.embedder, | |
| 1650 | + errorElement = _useGetEmbedder.errorElement, | |
| 1651 | + isLoading = _useGetEmbedder.isLoading; | |
| 1652 | + if (errorElement) { | |
| 1653 | + return errorElement; | |
| 1654 | + } | |
| 1655 | + if (isLoading) { | |
| 1656 | + return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LoadingBlock__WEBPACK_IMPORTED_MODULE_3__["default"], {}); | |
| 1657 | + } | |
| 1658 | + return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_1__.BackgroudAppContext.Provider, { | |
| 1659 | + value: embedder, | |
| 1660 | + children: children | |
| 1661 | + }); | |
| 1662 | +} | |
| 1663 | + | |
| 1664 | +/***/ }), | |
| 1665 | + | |
| 1676 | 1666 | /***/ "./scripts/shared/Common/ErrorHandler.tsx": |
| 1677 | 1667 | /*!************************************************!*\ |
| 1678 | 1668 | !*** ./scripts/shared/Common/ErrorHandler.tsx ***! |
| 1679 | 1669 | \************************************************/ |
| @@ -1866,9 +1856,9 @@ | ||
| 1866 | 1856 | /* harmony import */ var _FormSelect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FormSelect */ "./scripts/shared/Form/FormSelect.tsx"); |
| 1867 | 1857 | /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts"); |
| 1868 | 1858 | /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts"); |
| 1869 | 1859 | /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx"); |
| 1870 | -/* harmony import */ var _utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/useGetEmbedder */ "./scripts/utils/useGetEmbedder.ts"); | |
| 1860 | +/* harmony import */ var _Common_EmbedderContainer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Common/EmbedderContainer */ "./scripts/shared/Common/EmbedderContainer.tsx"); | |
| 1871 | 1861 | function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } |
| 1872 | 1862 | function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } |
| 1873 | 1863 | function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } |
| 1874 | 1864 | function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } |
| @@ -1932,20 +1922,9 @@ | ||
| 1932 | 1922 | })] |
| 1933 | 1923 | }); |
| 1934 | 1924 | } |
| 1935 | 1925 | function FormEditContainer(props) { |
| 1936 | - var _useGetEmbedder = (0,_utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_9__.useGetEmbedder)(), | |
| 1937 | - embedder = _useGetEmbedder.embedder, | |
| 1938 | - errorElement = _useGetEmbedder.errorElement, | |
| 1939 | - isLoading = _useGetEmbedder.isLoading; | |
| 1940 | - if (errorElement) { | |
| 1941 | - return errorElement; | |
| 1942 | - } | |
| 1943 | - if (isLoading) { | |
| 1944 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_8__["default"], {}); | |
| 1945 | - } | |
| 1946 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_6__.BackgroudAppContext.Provider, { | |
| 1947 | - value: embedder, | |
| 1926 | + return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_EmbedderContainer__WEBPACK_IMPORTED_MODULE_9__["default"], { | |
| 1948 | 1927 | children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(FormEdit, _objectSpread({}, props)) |
| 1949 | 1928 | }); |
| 1950 | 1929 | } |
| 1951 | 1930 | |
| @@ -2126,9 +2105,20 @@ | ||
| 2126 | 2105 | var hbspt = window.parent.hbspt || window.hbspt; |
| 2127 | 2106 | inputEl.current.innerHTML = ''; |
| 2128 | 2107 | var isQa = _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__.formsScriptPayload.includes('qa'); |
| 2129 | 2108 | if (isFormV4) { |
| 2130 | - var container = document.createElement('div'); | |
| 2109 | + // WP 6.3+ renders the block-editor canvas inside an iframe | |
| 2110 | + // (iframe[name="editor-canvas"]). The block's DOM lives in that iframe, | |
| 2111 | + // but our React runs in the top window's JS realm, so the global | |
| 2112 | + // `document` here is the TOP frame's document, not the iframe's. The v4 | |
| 2113 | + // forms embed script scans its executing context's local `document` | |
| 2114 | + // (getElementsByClassName('hs-form-frame') + MutationObserver on | |
| 2115 | + // document.body) and has no programmatic create() API. So both the | |
| 2116 | + // placeholder and the embed script must live in the IFRAME's document | |
| 2117 | + // for hydration to happen. Route everything through the placeholder's | |
| 2118 | + // ownerDocument to target the correct realm. | |
| 2119 | + var doc = inputEl.current.ownerDocument; | |
| 2120 | + var container = doc.createElement('div'); | |
| 2131 | 2121 | container.classList.add('hs-form-frame'); |
| 2132 | 2122 | container.dataset.region = _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__.hublet; |
| 2133 | 2123 | container.dataset.formId = formId; |
| 2134 | 2124 | container.dataset.portalId = portalId.toString(); |
| @@ -2133,8 +2123,25 @@ | ||
| 2133 | 2123 | container.dataset.formId = formId; |
| 2134 | 2124 | container.dataset.portalId = portalId.toString(); |
| 2135 | 2125 | container.dataset.env = isQa ? 'qa' : ''; |
| 2136 | 2126 | inputEl.current.appendChild(container); |
| 2127 | + // Derive the portal-specific embed URL from the v2 script URL: take its | |
| 2128 | + // host (origin) so we follow whatever host a PHP filter applies to the | |
| 2129 | + // v2 URL, and append the v4 embed path. Inject it into the iframe's | |
| 2130 | + // document so it executes in the iframe window and scans the iframe | |
| 2131 | + // document where the placeholder is. Running post-mount means doc.body | |
| 2132 | + // exists, so the script's MutationObserver initializes without the | |
| 2133 | + // "not a Node" crash seen when it's loaded too early in the iframe | |
| 2134 | + // head. One copy per iframe window is enough — its MutationObserver | |
| 2135 | + // hydrates any later placeholders too. | |
| 2136 | + var v4EmbedUrl = _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__.formsScript ? "".concat(new URL(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_3__.formsScript).origin, "/forms/embed/").concat(portalId, ".js") : ''; | |
| 2137 | + var v4AlreadyPresent = !v4EmbedUrl || !!doc.querySelector("script[src=\"".concat(v4EmbedUrl, "\"]")); | |
| 2138 | + if (v4EmbedUrl && !v4AlreadyPresent) { | |
| 2139 | + var embedScript = doc.createElement('script'); | |
| 2140 | + embedScript.src = v4EmbedUrl; | |
| 2141 | + embedScript.defer = true; | |
| 2142 | + doc.body.appendChild(embedScript); | |
| 2143 | + } | |
| 2137 | 2144 | } else { |
| 2138 | 2145 | var additionalParams = isQa ? { |
| 2139 | 2146 | env: 'qa' |
| 2140 | 2147 | } : {}; |
| @@ -2504,9 +2511,9 @@ | ||
| 2504 | 2511 | /* harmony import */ var _PreviewMeeting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PreviewMeeting */ "./scripts/shared/Meeting/PreviewMeeting.tsx"); |
| 2505 | 2512 | /* harmony import */ var _iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../iframe/useBackgroundApp */ "./scripts/iframe/useBackgroundApp.ts"); |
| 2506 | 2513 | /* harmony import */ var _iframe_integratedMessages__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../iframe/integratedMessages */ "./scripts/iframe/integratedMessages/index.ts"); |
| 2507 | 2514 | /* harmony import */ var _Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Common/LoadingBlock */ "./scripts/shared/Common/LoadingBlock.tsx"); |
| 2508 | -/* harmony import */ var _utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/useGetEmbedder */ "./scripts/utils/useGetEmbedder.ts"); | |
| 2515 | +/* harmony import */ var _Common_EmbedderContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Common/EmbedderContainer */ "./scripts/shared/Common/EmbedderContainer.tsx"); | |
| 2509 | 2516 | function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } |
| 2510 | 2517 | function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } |
| 2511 | 2518 | function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } |
| 2512 | 2519 | function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } |
| @@ -2554,20 +2561,9 @@ | ||
| 2554 | 2561 | })] |
| 2555 | 2562 | }); |
| 2556 | 2563 | } |
| 2557 | 2564 | function MeetingsEditContainer(props) { |
| 2558 | - var _useGetEmbedder = (0,_utils_useGetEmbedder__WEBPACK_IMPORTED_MODULE_7__.useGetEmbedder)(), | |
| 2559 | - embedder = _useGetEmbedder.embedder, | |
| 2560 | - errorElement = _useGetEmbedder.errorElement, | |
| 2561 | - isLoading = _useGetEmbedder.isLoading; | |
| 2562 | - if (errorElement) { | |
| 2563 | - return errorElement; | |
| 2564 | - } | |
| 2565 | - if (isLoading) { | |
| 2566 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_LoadingBlock__WEBPACK_IMPORTED_MODULE_6__["default"], {}); | |
| 2567 | - } | |
| 2568 | - return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_iframe_useBackgroundApp__WEBPACK_IMPORTED_MODULE_4__.BackgroudAppContext.Provider, { | |
| 2569 | - value: embedder, | |
| 2565 | + return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_EmbedderContainer__WEBPACK_IMPORTED_MODULE_7__["default"], { | |
| 2570 | 2566 | children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeetingEdit, _objectSpread({}, props)) |
| 2571 | 2567 | }); |
| 2572 | 2568 | } |
| 2573 | 2569 | |
| @@ -2678,23 +2674,62 @@ | ||
| 2678 | 2674 | /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); |
| 2679 | 2675 | /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); |
| 2680 | 2676 | /* harmony import */ var _UIComponents_UIOverlay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../UIComponents/UIOverlay */ "./scripts/shared/UIComponents/UIOverlay.ts"); |
| 2681 | 2677 | /* harmony import */ var _Common_PreviewDisabled__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Common/PreviewDisabled */ "./scripts/shared/Common/PreviewDisabled.tsx"); |
| 2678 | +/* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts"); | |
| 2682 | 2679 | |
| 2683 | 2680 | |
| 2684 | 2681 | |
| 2685 | 2682 | |
| 2683 | + | |
| 2684 | +function getHbspt(win) { | |
| 2685 | + if (!win) { | |
| 2686 | + return undefined; | |
| 2687 | + } | |
| 2688 | + return win.hbspt; | |
| 2689 | +} | |
| 2686 | 2690 | function PreviewForm(_ref) { |
| 2687 | 2691 | var url = _ref.url, |
| 2688 | 2692 | fullSiteEditor = _ref.fullSiteEditor; |
| 2689 | 2693 | var inputEl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); |
| 2690 | 2694 | (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () { |
| 2691 | - if (inputEl.current) { | |
| 2692 | - //@ts-expect-error Hubspot global | |
| 2693 | - var hbspt = window.parent.hbspt || window.hbspt; | |
| 2694 | - hbspt.meetings.create('.meetings-iframe-container'); | |
| 2695 | + var el = inputEl.current; | |
| 2696 | + if (!el) { | |
| 2697 | + return; | |
| 2695 | 2698 | } |
| 2696 | - }, [url, inputEl]); | |
| 2699 | + // WP 6.3+ renders the block-editor canvas inside an iframe | |
| 2700 | + // (iframe[name="editor-canvas"]). The `.meetings-iframe-container` lives in | |
| 2701 | + // that iframe's document, but `hbspt.meetings.create(selector)` resolves the | |
| 2702 | + // selector against the document of the realm `hbspt` belongs to. The | |
| 2703 | + // top-frame hbspt therefore scans the top document and never finds the | |
| 2704 | + // container, so the preview stays blank. Run the embed in the container's | |
| 2705 | + // own realm: reuse that realm's hbspt if it is already present, otherwise | |
| 2706 | + // inject MeetingsEmbedCode into that document and create once it loads. | |
| 2707 | + // (Mirrors the v4 form block fix.) | |
| 2708 | + var doc = el.ownerDocument; | |
| 2709 | + var win = doc.defaultView; | |
| 2710 | + var create = function create() { | |
| 2711 | + var hbspt = getHbspt(win) || getHbspt(window.parent) || getHbspt(window); | |
| 2712 | + if (hbspt && hbspt.meetings) { | |
| 2713 | + hbspt.meetings.create('.meetings-iframe-container'); | |
| 2714 | + } | |
| 2715 | + }; | |
| 2716 | + var realmHbspt = getHbspt(win); | |
| 2717 | + if (realmHbspt && realmHbspt.meetings) { | |
| 2718 | + create(); | |
| 2719 | + return; | |
| 2720 | + } | |
| 2721 | + var existing = doc.querySelector("script[src=\"".concat(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__.meetingsScript, "\"]")); | |
| 2722 | + if (existing) { | |
| 2723 | + existing.addEventListener('load', create); | |
| 2724 | + return; | |
| 2725 | + } | |
| 2726 | + var script = doc.createElement('script'); | |
| 2727 | + script.src = _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_4__.meetingsScript; | |
| 2728 | + script.defer = true; | |
| 2729 | + script.addEventListener('load', create); | |
| 2730 | + doc.body.appendChild(script); | |
| 2731 | + }, [url]); | |
| 2697 | 2732 | if (fullSiteEditor) { |
| 2698 | 2733 | return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Common_PreviewDisabled__WEBPACK_IMPORTED_MODULE_3__["default"], {}); |
| 2699 | 2734 | } |
| 2700 | 2735 | return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, { |
| @@ -3396,11 +3431,13 @@ | ||
| 3396 | 3431 | /* harmony export */ }); |
| 3397 | 3432 | /* harmony import */ var _constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants/leadinConfig */ "./scripts/constants/leadinConfig.ts"); |
| 3398 | 3433 | /* harmony import */ var _appUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./appUtils */ "./scripts/utils/appUtils.ts"); |
| 3399 | 3434 | /* harmony import */ var _api_wordpressApiClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api/wordpressApiClient */ "./scripts/api/wordpressApiClient.ts"); |
| 3435 | +/* harmony import */ var _embedderReady__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embedderReady */ "./scripts/utils/embedderReady.ts"); | |
| 3400 | 3436 | |
| 3401 | 3437 | |
| 3402 | 3438 | |
| 3439 | + | |
| 3403 | 3440 | function initBackgroundApp(initFn) { |
| 3404 | 3441 | function main() { |
| 3405 | 3442 | if (Array.isArray(initFn)) { |
| 3406 | 3443 | initFn.forEach(function (callback) { |
| @@ -3422,8 +3459,11 @@ | ||
| 3422 | 3459 | var expiresIn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; |
| 3423 | 3460 | if (window.LeadinBackgroundApp) { |
| 3424 | 3461 | return window.LeadinBackgroundApp; |
| 3425 | 3462 | } |
| 3463 | + if (!(0,_embedderReady__WEBPACK_IMPORTED_MODULE_3__.isEmbedderReady)()) { | |
| 3464 | + return null; | |
| 3465 | + } | |
| 3426 | 3466 | var _window = window, |
| 3427 | 3467 | IntegratedAppEmbedder = _window.IntegratedAppEmbedder, |
| 3428 | 3468 | IntegratedAppOptions = _window.IntegratedAppOptions; |
| 3429 | 3469 | var options = new IntegratedAppOptions().setLocale(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.locale).setDeviceId(_constants_leadinConfig__WEBPACK_IMPORTED_MODULE_0__.deviceId).setLeadinConfig(getLeadinConfig()).setAccessToken(accessToken, expiresIn); |
| @@ -3436,8 +3476,114 @@ | ||
| 3436 | 3476 | }; |
| 3437 | 3477 | |
| 3438 | 3478 | /***/ }), |
| 3439 | 3479 | |
| 3480 | +/***/ "./scripts/utils/embedderReady.ts": | |
| 3481 | +/*!****************************************!*\ | |
| 3482 | + !*** ./scripts/utils/embedderReady.ts ***! | |
| 3483 | + \****************************************/ | |
| 3484 | +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { | |
| 3485 | + | |
| 3486 | +"use strict"; | |
| 3487 | +__webpack_require__.r(__webpack_exports__); | |
| 3488 | +/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 3489 | +/* harmony export */ "isEmbedderReady": () => (/* binding */ isEmbedderReady), | |
| 3490 | +/* harmony export */ "reportEmbedderUnavailable": () => (/* binding */ reportEmbedderUnavailable), | |
| 3491 | +/* harmony export */ "whenEmbedderReady": () => (/* binding */ whenEmbedderReady) | |
| 3492 | +/* harmony export */ }); | |
| 3493 | +/* harmony import */ var _lib_Raven__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/Raven */ "./scripts/lib/Raven.ts"); | |
| 3494 | +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } | |
| 3495 | +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } | |
| 3496 | +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } | |
| 3497 | +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } | |
| 3498 | +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } | |
| 3499 | +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } | |
| 3500 | + | |
| 3501 | +var POLL_INTERVAL_MS = 250; | |
| 3502 | +var DEFAULT_TIMEOUT_MS = 15000; | |
| 3503 | +var EMBEDDER_SCRIPT_SELECTOR = 'script[src*="/integrated-app-embedder/"]'; | |
| 3504 | +function isEmbedderReady() { | |
| 3505 | + var _window = window, | |
| 3506 | + IntegratedAppEmbedder = _window.IntegratedAppEmbedder, | |
| 3507 | + IntegratedAppOptions = _window.IntegratedAppOptions; | |
| 3508 | + return !!IntegratedAppEmbedder && typeof IntegratedAppOptions === 'function'; | |
| 3509 | +} | |
| 3510 | +function getEmbedderDiagnostics() { | |
| 3511 | + var scriptTag = document.querySelector(EMBEDDER_SCRIPT_SELECTOR); | |
| 3512 | + return { | |
| 3513 | + hasScriptTag: !!scriptTag, | |
| 3514 | + scriptSrc: scriptTag ? scriptTag.src : null, | |
| 3515 | + readyState: document.readyState, | |
| 3516 | + hasEmbedder: !!window.IntegratedAppEmbedder, | |
| 3517 | + typeofOptions: _typeof(window.IntegratedAppOptions) | |
| 3518 | + }; | |
| 3519 | +} | |
| 3520 | +/** | |
| 3521 | + * The embedder script is a cross-origin script from js.hubspot.com, and nothing | |
| 3522 | + * makes the widgets wait for it: they read its globals off `window` the moment a | |
| 3523 | + * control renders. On sites where an asset pipeline defers it, or where the | |
| 3524 | + * editor is simply slow, the widget can lose that race and fail permanently even | |
| 3525 | + * though the script arrives seconds later. | |
| 3526 | + * | |
| 3527 | + * Resolves true as soon as the globals appear, or false once the wait is up. | |
| 3528 | + */ | |
| 3529 | +function whenEmbedderReady() { | |
| 3530 | + var timeoutMs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_TIMEOUT_MS; | |
| 3531 | + var intervalId; | |
| 3532 | + var cancel = function cancel() { | |
| 3533 | + if (intervalId !== undefined) { | |
| 3534 | + window.clearInterval(intervalId); | |
| 3535 | + intervalId = undefined; | |
| 3536 | + } | |
| 3537 | + }; | |
| 3538 | + var promise = new Promise(function (resolve) { | |
| 3539 | + if (isEmbedderReady()) { | |
| 3540 | + console.info('HubSpot plugin - embedder ready immediately'); | |
| 3541 | + resolve(true); | |
| 3542 | + return; | |
| 3543 | + } | |
| 3544 | + var startedAt = Date.now(); | |
| 3545 | + console.info("HubSpot plugin - waiting up to ".concat(timeoutMs, "ms for embedder script"), getEmbedderDiagnostics()); | |
| 3546 | + intervalId = window.setInterval(function () { | |
| 3547 | + var waitedMs = Date.now() - startedAt; | |
| 3548 | + if (isEmbedderReady()) { | |
| 3549 | + cancel(); | |
| 3550 | + console.info("HubSpot plugin - embedder ready after ".concat(waitedMs, "ms")); | |
| 3551 | + resolve(true); | |
| 3552 | + } else if (waitedMs >= timeoutMs) { | |
| 3553 | + cancel(); | |
| 3554 | + resolve(false); | |
| 3555 | + } | |
| 3556 | + }, POLL_INTERVAL_MS); | |
| 3557 | + }); | |
| 3558 | + return { | |
| 3559 | + promise: promise, | |
| 3560 | + cancel: cancel | |
| 3561 | + }; | |
| 3562 | +} | |
| 3563 | +/** | |
| 3564 | + * Reports a give-up so these failures stop being invisible. Until now the widget | |
| 3565 | + * rendered its error box without telling anyone, so the only signal we had for | |
| 3566 | + * this whole class of problem came from unrelated admin pages. | |
| 3567 | + * | |
| 3568 | + * Uses captureException rather than captureMessage on purpose: Raven is | |
| 3569 | + * configured with a shouldSendCallback that drops any event whose culprit does | |
| 3570 | + * not match plugins/leadin/, and captureMessage does not attach a stack trace, | |
| 3571 | + * so it has no culprit to match on. | |
| 3572 | + */ | |
| 3573 | +function reportEmbedderUnavailable(waitedMs) { | |
| 3574 | + var diagnostics = getEmbedderDiagnostics(); | |
| 3575 | + console.error("HubSpot plugin - embedder unavailable after ".concat(waitedMs, "ms"), diagnostics); | |
| 3576 | + _lib_Raven__WEBPACK_IMPORTED_MODULE_0__["default"].captureException(new Error('Leadin embedder unavailable'), { | |
| 3577 | + fingerprint: ['EMBEDDER_UNAVAILABLE'], | |
| 3578 | + extra: _objectSpread({ | |
| 3579 | + waitedMs: waitedMs | |
| 3580 | + }, diagnostics) | |
| 3581 | + }); | |
| 3582 | +} | |
| 3583 | + | |
| 3584 | +/***/ }), | |
| 3585 | + | |
| 3440 | 3586 | /***/ "./scripts/utils/isRefreshTokenAvailable.ts": |
| 3441 | 3587 | /*!**************************************************!*\ |
| 3442 | 3588 | !*** ./scripts/utils/isRefreshTokenAvailable.ts ***! |
| 3443 | 3589 | \**************************************************/ |
| @@ -3498,9 +3644,10 @@ | ||
| 3498 | 3644 | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); |
| 3499 | 3645 | /* harmony import */ var _api_wordpressApiClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../api/wordpressApiClient */ "./scripts/api/wordpressApiClient.ts"); |
| 3500 | 3646 | /* harmony import */ var _backgroundAppUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./backgroundAppUtils */ "./scripts/utils/backgroundAppUtils.ts"); |
| 3501 | 3647 | /* harmony import */ var _isRefreshTokenAvailable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isRefreshTokenAvailable */ "./scripts/utils/isRefreshTokenAvailable.ts"); |
| 3502 | -/* harmony import */ var _shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx"); | |
| 3648 | +/* harmony import */ var _embedderReady__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./embedderReady */ "./scripts/utils/embedderReady.ts"); | |
| 3649 | +/* harmony import */ var _shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../shared/Common/ErrorHandler */ "./scripts/shared/Common/ErrorHandler.tsx"); | |
| 3503 | 3650 | function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } |
| 3504 | 3651 | 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."); } |
| 3505 | 3652 | function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } |
| 3506 | 3653 | function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } |
| @@ -3512,8 +3659,9 @@ | ||
| 3512 | 3659 | |
| 3513 | 3660 | |
| 3514 | 3661 | |
| 3515 | 3662 | |
| 3663 | + | |
| 3516 | 3664 | function useGetEmbedder() { |
| 3517 | 3665 | var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), |
| 3518 | 3666 | _useState2 = _slicedToArray(_useState, 2), |
| 3519 | 3667 | embedder = _useState2[0], |
| @@ -3521,15 +3669,36 @@ | ||
| 3521 | 3669 | var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), |
| 3522 | 3670 | _useState4 = _slicedToArray(_useState3, 2), |
| 3523 | 3671 | errorStatus = _useState4[0], |
| 3524 | 3672 | setErrorStatus = _useState4[1]; |
| 3673 | + var cancelWaitRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); | |
| 3674 | + var mountedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(true); | |
| 3525 | 3675 | var loadEmbedder = function loadEmbedder() { |
| 3526 | 3676 | (0,_api_wordpressApiClient__WEBPACK_IMPORTED_MODULE_2__.fetchAccessToken)().then(function (_ref) { |
| 3527 | 3677 | var accessToken = _ref.accessToken, |
| 3528 | 3678 | expiresIn = _ref.expiresIn; |
| 3529 | - setEmbedder((0,_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_3__.getOrCreateBackgroundApp)(accessToken, expiresIn)); | |
| 3679 | + if (!mountedRef.current) return; | |
| 3680 | + var startedAt = Date.now(); | |
| 3681 | + var _whenEmbedderReady = (0,_embedderReady__WEBPACK_IMPORTED_MODULE_5__.whenEmbedderReady)(), | |
| 3682 | + promise = _whenEmbedderReady.promise, | |
| 3683 | + cancel = _whenEmbedderReady.cancel; | |
| 3684 | + cancelWaitRef.current = cancel; | |
| 3685 | + return promise.then(function (isReady) { | |
| 3686 | + cancelWaitRef.current = null; | |
| 3687 | + if (!mountedRef.current) return; | |
| 3688 | + var app = isReady ? (0,_backgroundAppUtils__WEBPACK_IMPORTED_MODULE_3__.getOrCreateBackgroundApp)(accessToken, expiresIn) : null; | |
| 3689 | + if (app) { | |
| 3690 | + console.info('HubSpot plugin - embedder ready, rendering widget'); | |
| 3691 | + setEmbedder(app); | |
| 3692 | + } else { | |
| 3693 | + (0,_embedderReady__WEBPACK_IMPORTED_MODULE_5__.reportEmbedderUnavailable)(Date.now() - startedAt); | |
| 3694 | + setErrorStatus(500); | |
| 3695 | + } | |
| 3696 | + }); | |
| 3530 | 3697 | })["catch"](function (err) { |
| 3531 | - return setErrorStatus(err && err.status || 500); | |
| 3698 | + if (!mountedRef.current) return; | |
| 3699 | + console.error('HubSpot plugin - access token request failed', err && err.status || 'no status'); | |
| 3700 | + setErrorStatus(err && err.status || 500); | |
| 3532 | 3701 | }); |
| 3533 | 3702 | }; |
| 3534 | 3703 | (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { |
| 3535 | 3704 | if ((0,_isRefreshTokenAvailable__WEBPACK_IMPORTED_MODULE_4__.isRefreshTokenAvailable)()) { |
| @@ -3534,10 +3703,17 @@ | ||
| 3534 | 3703 | (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { |
| 3535 | 3704 | if ((0,_isRefreshTokenAvailable__WEBPACK_IMPORTED_MODULE_4__.isRefreshTokenAvailable)()) { |
| 3536 | 3705 | loadEmbedder(); |
| 3537 | 3706 | } |
| 3707 | + return function () { | |
| 3708 | + mountedRef.current = false; | |
| 3709 | + if (cancelWaitRef.current) { | |
| 3710 | + cancelWaitRef.current(); | |
| 3711 | + cancelWaitRef.current = null; | |
| 3712 | + } | |
| 3713 | + }; | |
| 3538 | 3714 | }, []); |
| 3539 | - var errorElement = errorStatus !== null ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_5__["default"], { | |
| 3715 | + var errorElement = errorStatus !== null ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_shared_Common_ErrorHandler__WEBPACK_IMPORTED_MODULE_6__["default"], { | |
| 3540 | 3716 | status: errorStatus, |
| 3541 | 3717 | resetErrorState: function resetErrorState() { |
| 3542 | 3718 | setErrorStatus(null); |
| 3543 | 3719 | loadEmbedder(); |