Submit
Path:
~
/
home
/
getwphos
/
www
/
preferredexotics
/
wp-content
/
plugins
/
elementor
/
assets
/
js
/
File Content:
onboarding.50bce36b17131b8d21b7.bundle.js
/*! elementor - v3.32.0 - 29-09-2025 */ "use strict"; (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["onboarding"],{ /***/ "../app/modules/onboarding/assets/js/app.js": /*!**************************************************!*\ !*** ../app/modules/onboarding/assets/js/app.js ***! \**************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = App; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js"); var _router2 = _interopRequireDefault(__webpack_require__(/*! @elementor/router */ "@elementor/router")); var _context = __webpack_require__(/*! ./context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _account = _interopRequireDefault(__webpack_require__(/*! ./pages/account */ "../app/modules/onboarding/assets/js/pages/account.js")); var _helloTheme = _interopRequireDefault(__webpack_require__(/*! ./pages/hello-theme */ "../app/modules/onboarding/assets/js/pages/hello-theme.js")); var _siteName = _interopRequireDefault(__webpack_require__(/*! ./pages/site-name */ "../app/modules/onboarding/assets/js/pages/site-name.js")); var _siteLogo = _interopRequireDefault(__webpack_require__(/*! ./pages/site-logo */ "../app/modules/onboarding/assets/js/pages/site-logo.js")); var _goodToGo = _interopRequireDefault(__webpack_require__(/*! ./pages/good-to-go */ "../app/modules/onboarding/assets/js/pages/good-to-go.js")); var _uploadAndInstallPro = _interopRequireDefault(__webpack_require__(/*! ./pages/upload-and-install-pro */ "../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js")); var _chooseFeatures = _interopRequireDefault(__webpack_require__(/*! ./pages/choose-features */ "../app/modules/onboarding/assets/js/pages/choose-features.js")); var _onboardingEventTracking = __webpack_require__(/*! ./utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function App() { // Send an AJAX request to update the database option which makes sure the Onboarding process only runs once, // for new Elementor sites. (0, _react.useEffect)(function () { var _elementorAppConfig; _onboardingEventTracking.OnboardingEventTracking.initiateCoreOnboarding(); // This is to prevent dark theme in onboarding app from the frontend and not backend var darkThemeClassName = 'eps-theme-dark'; var hasDarkMode = document.body.classList.contains(darkThemeClassName); if (hasDarkMode) { document.body.classList.remove(darkThemeClassName); } if (!((_elementorAppConfig = elementorAppConfig) !== null && _elementorAppConfig !== void 0 && (_elementorAppConfig = _elementorAppConfig.onboarding) !== null && _elementorAppConfig !== void 0 && _elementorAppConfig.onboardingAlreadyRan)) { var formData = new FormData(); formData.append('_nonce', elementorCommon.config.ajax.nonce); formData.append('action', 'elementor_update_onboarding_option'); fetch(elementorCommon.config.ajax.url, { method: 'POST', body: formData }); } elementorAppConfig.return_url = elementorAppConfig.admin_url; return function () { if (hasDarkMode) { document.body.classList.add(darkThemeClassName); } }; }, []); return /*#__PURE__*/_react.default.createElement(_context.ContextProvider, null, /*#__PURE__*/_react.default.createElement(_router.LocationProvider, { history: _router2.default.appHistory }, /*#__PURE__*/_react.default.createElement(_router.Router, null, /*#__PURE__*/_react.default.createElement(_account.default, { default: true }), /*#__PURE__*/_react.default.createElement(_helloTheme.default, { path: "hello" }), /*#__PURE__*/_react.default.createElement(_chooseFeatures.default, { path: "chooseFeatures" }), /*#__PURE__*/_react.default.createElement(_siteName.default, { path: "siteName" }), /*#__PURE__*/_react.default.createElement(_siteLogo.default, { path: "siteLogo" }), /*#__PURE__*/_react.default.createElement(_goodToGo.default, { path: "goodToGo" }), /*#__PURE__*/_react.default.createElement(_uploadAndInstallPro.default, { path: "uploadAndInstallPro" })))); } /***/ }), /***/ "../app/modules/onboarding/assets/js/components/button.js": /*!****************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/button.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Button; var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react")); var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js")); var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js")); var _excluded = ["elRef"]; function Button(props) { var buttonSettings = props.buttonSettings, type = props.type; var buttonClasses = 'e-onboarding__button'; if (type) { buttonClasses += " e-onboarding__button-".concat(type); } if (buttonSettings.className) { buttonSettings.className += ' ' + buttonClasses; } else { buttonSettings.className = buttonClasses; } var elRef = buttonSettings.elRef, buttonProps = (0, _objectWithoutProperties2.default)(buttonSettings, _excluded); if (buttonSettings.href) { return /*#__PURE__*/_react.default.createElement("a", (0, _extends2.default)({ ref: elRef }, buttonProps), buttonSettings.text); } return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({ ref: elRef }, buttonProps), buttonSettings.text); } Button.propTypes = { buttonSettings: PropTypes.object.isRequired, type: PropTypes.string }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/card.js": /*!**************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/card.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Card; var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react")); function Card(_ref) { var image = _ref.image, imageAlt = _ref.imageAlt, text = _ref.text, link = _ref.link, name = _ref.name, clickAction = _ref.clickAction, _ref$target = _ref.target, target = _ref$target === void 0 ? '_self' : _ref$target; var onClick = function onClick() { elementorCommon.events.dispatchEvent({ event: 'starting canvas click', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, selection: name } }); if (clickAction) { clickAction(); } }; return /*#__PURE__*/_react.default.createElement("a", { target: target, className: "e-onboarding__card", href: link, onClick: onClick }, /*#__PURE__*/_react.default.createElement("img", { className: "e-onboarding__card-image", src: image, alt: imageAlt }), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__card-text" }, text)); } Card.propTypes = { image: PropTypes.string.isRequired, imageAlt: PropTypes.string.isRequired, text: PropTypes.string.isRequired, link: PropTypes.string.isRequired, name: PropTypes.string.isRequired, clickAction: PropTypes.func, target: PropTypes.string }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/checklist-item.js": /*!************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/checklist-item.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = ChecklistItem; var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react")); function ChecklistItem(props) { return /*#__PURE__*/_react.default.createElement("li", { className: "e-onboarding__checklist-item" }, /*#__PURE__*/_react.default.createElement("i", { className: "eicon-check-circle" }), props.children); } ChecklistItem.propTypes = { children: PropTypes.string }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/checklist.js": /*!*******************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/checklist.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Checklist; var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react")); function Checklist(props) { return /*#__PURE__*/_react.default.createElement("ul", { className: "e-onboarding__checklist" }, props.children); } Checklist.propTypes = { children: PropTypes.any.isRequired }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/go-pro-popover.js": /*!************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/go-pro-popover.js ***! \************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = GoProPopover; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _popoverDialog = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/popover-dialog/popover-dialog */ "../app/assets/js/ui/popover-dialog/popover-dialog.js")); var _checklist = _interopRequireDefault(__webpack_require__(/*! ./checklist */ "../app/modules/onboarding/assets/js/components/checklist.js")); var _checklistItem = _interopRequireDefault(__webpack_require__(/*! ./checklist-item */ "../app/modules/onboarding/assets/js/components/checklist-item.js")); var _button = _interopRequireDefault(__webpack_require__(/*! ./button */ "../app/modules/onboarding/assets/js/components/button.js")); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function GoProPopover(props) { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState; var upgradeButtonRef = (0, _react.useRef)(null); // Handle the Pro Upload popup window. var alreadyHaveProButtonRef = (0, _react.useCallback)(function (alreadyHaveProButton) { if (!alreadyHaveProButton) { return; } if (!state.currentStep || '' === state.currentStep) { return; } var existingHandler = alreadyHaveProButton._elementorProHandler; if (existingHandler) { alreadyHaveProButton.removeEventListener('click', existingHandler); } var clickHandler = function clickHandler(event) { event.preventDefault(); if (!state.currentStep || '' === state.currentStep) { return; } var stepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep); _onboardingEventTracking.OnboardingEventTracking.trackStepAction(stepNumber, 'upgrade_already_pro'); _onboardingEventTracking.OnboardingEventTracking.cancelDelayedNoClickEvent(); if (stepNumber) { _onboardingEventTracking.OnboardingEventTracking.sendTopUpgrade(stepNumber, 'already_pro_user'); } elementorCommon.events.dispatchEvent({ event: 'already have pro', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); // Open the Pro Upload screen in a popup. window.open(alreadyHaveProButton.href + '&mode=popup', 'elementorUploadPro', "toolbar=no, menubar=no, width=728, height=531, top=100, left=100"); // Run the callback for when the upload succeeds. elementorCommon.elements.$body.on('elementor/upload-and-install-pro/success', function () { updateState({ hasPro: true, proNotice: { color: 'success', children: __('Pro is now active! You can continue.', 'elementor') } }); }); }; alreadyHaveProButton._elementorProHandler = clickHandler; alreadyHaveProButton.addEventListener('click', clickHandler); }, [state.currentStep, updateState]); var getElProButton = { text: elementorAppConfig.onboarding.experiment ? __('Upgrade now', 'elementor') : __('Upgrade Now', 'elementor'), className: 'e-onboarding__go-pro-cta', target: '_blank', href: 'https://elementor.com/pro/?utm_source=onboarding-wizard&utm_campaign=gopro&utm_medium=wp-dash&utm_content=top-bar-dropdown&utm_term=' + elementorAppConfig.onboarding.onboardingVersion, tabIndex: 0, elRef: function elRef(buttonElement) { if (!buttonElement) { return; } upgradeButtonRef.current = buttonElement; }, onClick: function onClick() { if (!state.currentStep || '' === state.currentStep) { return; } var stepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep); _onboardingEventTracking.OnboardingEventTracking.trackStepAction(stepNumber, 'upgrade_now'); _onboardingEventTracking.OnboardingEventTracking.cancelDelayedNoClickEvent(); if (stepNumber) { _onboardingEventTracking.OnboardingEventTracking.sendTopUpgrade(stepNumber, 'on_tooltip'); } elementorCommon.events.dispatchEvent({ event: 'get elementor pro', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); } }; var targetRef = props.goProButtonRef || upgradeButtonRef; return /*#__PURE__*/_react.default.createElement(_popoverDialog.default, { targetRef: targetRef, wrapperClass: "e-onboarding__go-pro" }, /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__go-pro-content" }, /*#__PURE__*/_react.default.createElement("h2", { className: "e-onboarding__go-pro-title" }, __('Ready to Get Elementor Pro?', 'elementor')), /*#__PURE__*/_react.default.createElement(_checklist.default, null, /*#__PURE__*/_react.default.createElement(_checklistItem.default, null, __('90+ Basic & Pro widgets', 'elementor')), /*#__PURE__*/_react.default.createElement(_checklistItem.default, null, __('300+ Basic & Pro templates', 'elementor')), /*#__PURE__*/_react.default.createElement(_checklistItem.default, null, __('Premium Support', 'elementor'))), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__go-pro-paragraph" }, __('And so much more!', 'elementor')), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__go-pro-paragraph" }, /*#__PURE__*/_react.default.createElement(_button.default, { buttonSettings: getElProButton })), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__go-pro-paragraph" }, /*#__PURE__*/_react.default.createElement("a", { tabIndex: "0", className: "e-onboarding__go-pro-already-have", ref: alreadyHaveProButtonRef, href: elementorAppConfig.onboarding.urls.uploadPro, rel: "opener" }, __('Already have Elementor Pro?', 'elementor'))))); } GoProPopover.propTypes = { buttonsConfig: _propTypes.default.array.isRequired, goProButtonRef: _propTypes.default.object }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js": /*!*******************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/layout/footer-buttons.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = FooterButtons; var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react")); var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js")); var _button = _interopRequireDefault(__webpack_require__(/*! ../button */ "../app/modules/onboarding/assets/js/components/button.js")); var _skipButton = _interopRequireDefault(__webpack_require__(/*! ../skip-button */ "../app/modules/onboarding/assets/js/components/skip-button.js")); function FooterButtons(_ref) { var actionButton = _ref.actionButton, skipButton = _ref.skipButton, className = _ref.className; var classNames = 'e-onboarding__footer'; if (className) { classNames += ' ' + className; } return /*#__PURE__*/_react.default.createElement(_grid.default, { container: true, alignItems: "center", justify: "space-between", className: classNames }, actionButton && /*#__PURE__*/_react.default.createElement(_button.default, { buttonSettings: actionButton, type: "action" }), skipButton && /*#__PURE__*/_react.default.createElement(_skipButton.default, { button: skipButton })); } FooterButtons.propTypes = { actionButton: PropTypes.object, skipButton: PropTypes.object, className: PropTypes.string }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/layout/header.js": /*!***********************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/layout/header.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Header; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js")); var _goProPopover = _interopRequireDefault(__webpack_require__(/*! ../go-pro-popover */ "../app/modules/onboarding/assets/js/components/go-pro-popover.js")); var _headerButtons = _interopRequireDefault(__webpack_require__(/*! elementor-app/layout/header-buttons */ "../app/assets/js/layout/header-buttons.js")); var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js")); var _onboardingEventTracking = __webpack_require__(/*! ../../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function Header(props) { (0, _usePageTitle.default)({ title: props.title }); var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state; var trackXButtonExit = function trackXButtonExit() { var stepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep); _onboardingEventTracking.OnboardingEventTracking.sendExitButtonEvent(stepNumber || state.currentStep); }; var onClose = function onClose() { trackXButtonExit(); elementorCommon.events.dispatchEvent({ event: 'close modal', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); setTimeout(function () { window.top.location = elementorAppConfig.admin_url; }, 100); }; return /*#__PURE__*/_react.default.createElement(_grid.default, { container: true, alignItems: "center", justify: "space-between", className: "eps-app__header e-onboarding__header" }, /*#__PURE__*/_react.default.createElement("div", { className: "eps-app__logo-title-wrapper e-onboarding__header-logo" }, /*#__PURE__*/_react.default.createElement("i", { className: "eps-app__logo eicon-elementor" }), /*#__PURE__*/_react.default.createElement("img", { src: elementorCommon.config.urls.assets + 'images/logo-platform.svg', alt: __('Elementor Logo', 'elementor') })), /*#__PURE__*/_react.default.createElement(_headerButtons.default, { buttons: props.buttons, onClose: onClose }), !state.hasPro && /*#__PURE__*/_react.default.createElement(_goProPopover.default, { buttonsConfig: props.buttons, goProButtonRef: props.goProButtonRef })); } Header.propTypes = { title: _propTypes.default.string, buttons: _propTypes.default.arrayOf(_propTypes.default.object), goProButtonRef: _propTypes.default.object }; Header.defaultProps = { buttons: [] }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/layout/layout.js": /*!***********************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/layout/layout.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Layout; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _header = _interopRequireDefault(__webpack_require__(/*! ./header */ "../app/modules/onboarding/assets/js/components/layout/header.js")); var _progressBar = _interopRequireDefault(__webpack_require__(/*! ../progress-bar/progress-bar */ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js")); var _content = _interopRequireDefault(__webpack_require__(/*! ../../../../../../assets/js/layout/content */ "../app/assets/js/layout/content.js")); var _connect = _interopRequireDefault(__webpack_require__(/*! ../../utils/connect */ "../app/modules/onboarding/assets/js/utils/connect.js")); var _onboardingEventTracking = __webpack_require__(/*! ../../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function getCurrentStepForTracking(pageId, currentStep) { return pageId || currentStep || 'account'; } function shouldResetupButtonTracking(buttonRef, pageId, currentStep) { if (!buttonRef) { return false; } var currentStepForTracking = getCurrentStepForTracking(pageId, currentStep); var currentTrackedStep = buttonRef.dataset.onboardingStep; return currentTrackedStep !== currentStepForTracking; } function Layout(props) { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState; var stepNumber = (0, _react.useMemo)(function () { return _onboardingEventTracking.OnboardingEventTracking.getStepNumber(props.pageId); }, [props.pageId]); var goProButtonRef = (0, _react.useRef)(); var setupTopbarUpgradeTracking = (0, _react.useCallback)(function (buttonElement) { if (!buttonElement) { return; } var currentStep = getCurrentStepForTracking(props.pageId, state.currentStep); goProButtonRef.current = buttonElement; return _onboardingEventTracking.OnboardingEventTracking.setupSingleUpgradeButton(buttonElement, currentStep); }, [state.currentStep, props.pageId]); var handleTopbarConnectSuccess = (0, _react.useCallback)(function () { updateState({ isLibraryConnected: true }); }, [updateState]); (0, _react.useEffect)(function () { // Send modal load event for current step. elementorCommon.events.dispatchEvent({ event: 'modal load', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: props.pageId, user_state: elementorCommon.config.library_connect.is_connected ? 'logged' : 'anon' } }); if (goProButtonRef.current) { setupTopbarUpgradeTracking(goProButtonRef.current); } updateState({ currentStep: props.pageId, nextStep: props.nextStep || '', proNotice: null }); }, [setupTopbarUpgradeTracking, stepNumber, props.pageId, props.nextStep, updateState]); (0, _react.useEffect)(function () { if (shouldResetupButtonTracking(goProButtonRef.current, props.pageId, state.currentStep)) { setupTopbarUpgradeTracking(goProButtonRef.current); } }, [state.currentStep, props.pageId, setupTopbarUpgradeTracking]); var headerButtons = [], createAccountButton = { id: 'create-account', text: __('Create Account', 'elementor'), hideText: false, elRef: (0, _react.useRef)(), url: elementorAppConfig.onboarding.urls.signUp + elementorAppConfig.onboarding.utms.connectTopBar, target: '_blank', rel: 'opener', onClick: function onClick() { _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('CREATE_MY_ACCOUNT', { currentStep: stepNumber, createAccountClicked: 'topbar' }); elementorCommon.events.dispatchEvent({ event: 'create account', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, source: 'header' } }); } }; if (state.isLibraryConnected) { headerButtons.push({ id: 'my-elementor', text: __('My Elementor', 'elementor'), hideText: false, icon: 'eicon-user-circle-o', url: 'https://my.elementor.com/websites/?utm_source=onboarding-wizard&utm_medium=wp-dash&utm_campaign=my-account&utm_content=top-bar&utm_term=' + elementorAppConfig.onboarding.onboardingVersion, target: '_blank', onClick: function onClick() { elementorCommon.events.dispatchEvent({ event: 'my elementor click', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, source: 'header' } }); } }); } else { headerButtons.push(createAccountButton); } if (!state.hasPro) { headerButtons.push({ id: 'go-pro', text: __('Upgrade', 'elementor'), hideText: false, className: 'eps-button__go-pro-btn', url: 'https://elementor.com/pro/?utm_source=onboarding-wizard&utm_campaign=gopro&utm_medium=wp-dash&utm_content=top-bar&utm_term=' + elementorAppConfig.onboarding.onboardingVersion, target: '_blank', elRef: setupTopbarUpgradeTracking, onClick: function onClick() { var currentStep = getCurrentStepForTracking(props.pageId, state.currentStep); var currentStepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(currentStep); _onboardingEventTracking.OnboardingEventTracking.trackStepAction(currentStepNumber, 'upgrade_topbar'); elementorCommon.events.dispatchEvent({ event: 'go pro', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: currentStep } }); } }); } return /*#__PURE__*/_react.default.createElement("div", { className: "eps-app__lightbox" }, /*#__PURE__*/_react.default.createElement("div", { className: "eps-app e-onboarding" }, !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement(_connect.default, { buttonRef: createAccountButton.elRef, successCallback: handleTopbarConnectSuccess }), /*#__PURE__*/_react.default.createElement(_header.default, { title: __('Getting Started', 'elementor'), buttons: headerButtons, goProButtonRef: goProButtonRef }), /*#__PURE__*/_react.default.createElement("div", { className: 'eps-app__main e-onboarding__page-' + props.pageId }, /*#__PURE__*/_react.default.createElement(_content.default, { className: "e-onboarding__content" }, /*#__PURE__*/_react.default.createElement(_progressBar.default, null), props.children)))); } Layout.propTypes = { pageId: _propTypes.default.string.isRequired, nextStep: _propTypes.default.string, className: _propTypes.default.string, children: _propTypes.default.any.isRequired }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js": /*!************************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/layout/page-content-layout.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = PageContentLayout; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js")); var _notice = _interopRequireDefault(__webpack_require__(/*! ../notice */ "../app/modules/onboarding/assets/js/components/notice.js")); var _footerButtons = _interopRequireDefault(__webpack_require__(/*! ./footer-buttons */ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function PageContentLayout(props) { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state; var printNotices = function printNotices() { return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.noticeState && /*#__PURE__*/_react.default.createElement(_notice.default, { noticeState: props.noticeState }), state.proNotice && /*#__PURE__*/_react.default.createElement(_notice.default, { noticeState: state.proNotice })); }; return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_grid.default, { container: true, alignItems: "center", justify: "space-between", className: "e-onboarding__page-content" }, /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__page-content-start" }, /*#__PURE__*/_react.default.createElement("h1", { className: "e-onboarding__page-content-section-title" }, props.title, props.secondLineTitle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("br", null), props.secondLineTitle)), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__page-content-section-text" }, props.children)), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__page-content-end" }, /*#__PURE__*/_react.default.createElement("img", { src: props.image, alt: "Information" }))), props.noticeState && /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__notice-container" }, props.noticeState || state.proNotice ? printNotices() : /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__notice-empty-spacer" })), /*#__PURE__*/_react.default.createElement(_footerButtons.default, { actionButton: props.actionButton, skipButton: props.skipButton })); } PageContentLayout.propTypes = { title: PropTypes.string, secondLineTitle: PropTypes.string, children: PropTypes.any, image: PropTypes.string, actionButton: PropTypes.object, skipButton: PropTypes.object, noticeState: PropTypes.any }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/message.js": /*!*****************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/message.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Message; var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); function Message(_ref) { var tier = _ref.tier; /* Translators: %s: Plan name */ var translatedString = __('Based on the features you chose, we recommend the %s plan, or higher', 'elementor'); var _translatedString$spl = translatedString.split('%s'), _translatedString$spl2 = (0, _slicedToArray2.default)(_translatedString$spl, 2), messageFirstPart = _translatedString$spl2[0], messageSecondPart = _translatedString$spl2[1]; return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, messageFirstPart, /*#__PURE__*/_react.default.createElement("strong", null, tier), messageSecondPart); } Message.propTypes = { tier: PropTypes.string.isRequired }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/notice.js": /*!****************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/notice.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Notice; var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react")); function Notice(props) { return /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__notice e-onboarding__notice--".concat(props.noticeState.type) }, /*#__PURE__*/_react.default.createElement("i", { className: props.noticeState.icon }), /*#__PURE__*/_react.default.createElement("span", { className: "e-onboarding__notice-text" }, props.noticeState.message)); } Notice.propTypes = { noticeState: PropTypes.object }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js": /*!****************************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = ProgressBarItem; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function ProgressBarItem(props) { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, stepCompleted = 'completed' === state.steps[props.id], stepSkipped = 'skipped' === state.steps[props.id]; var itemClasses = 'e-onboarding__progress-bar-item'; if (props.id === state.currentStep) { itemClasses += ' e-onboarding__progress-bar-item--active'; } else if (stepCompleted) { itemClasses += ' e-onboarding__progress-bar-item--completed'; } else if (stepSkipped) { itemClasses += ' e-onboarding__progress-bar-item--skipped'; } return ( /*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions _react.default.createElement("div", { onClick: props.onClick, className: itemClasses }, /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__progress-bar-item-icon" }, stepCompleted ? /*#__PURE__*/_react.default.createElement("i", { className: "eicon-check" }) : props.index + 1), props.title) ); } ProgressBarItem.propTypes = { index: PropTypes.number.isRequired, id: PropTypes.string.isRequired, title: PropTypes.string.isRequired, route: PropTypes.string, onClick: PropTypes.func }; /***/ }), /***/ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js": /*!***********************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js ***! \***********************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = ProgressBar; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js")); var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js"); var _progressBarItem = _interopRequireDefault(__webpack_require__(/*! ./progress-bar-item */ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js")); var _onboardingEventTracking = __webpack_require__(/*! ../../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function ProgressBar() { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, navigate = (0, _router.useNavigate)(), progressBarItemsConfig = [{ id: 'account', title: __('Elementor Account', 'elementor'), route: 'account' }]; // If hello theme is already activated when onboarding starts, don't show this step in the onboarding. if (!elementorAppConfig.onboarding.helloActivated) { progressBarItemsConfig.push({ id: 'hello', title: __('Hello Biz Theme', 'elementor'), route: 'hello' }); } if (elementorAppConfig.onboarding.experiment) { progressBarItemsConfig.push({ id: 'chooseFeatures', title: __('Choose Features', 'elementor'), route: 'chooseFeatures' }); } else { progressBarItemsConfig.push({ id: 'siteName', title: __('Site Name', 'elementor'), route: 'site-name' }, { id: 'siteLogo', title: __('Site Logo', 'elementor'), route: 'site-logo' }); } progressBarItemsConfig.push({ id: 'goodToGo', title: __('Good to Go', 'elementor'), route: 'good-to-go' }); var progressBarItems = progressBarItemsConfig.map(function (itemConfig, index) { itemConfig.index = index; if (state.steps[itemConfig.id]) { itemConfig.onClick = function () { var currentStepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep); var nextStepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(itemConfig.id); if (4 === currentStepNumber) { _onboardingEventTracking.OnboardingEventTracking.trackStepAction(4, 'stepper_clicks', { from_step: currentStepNumber, to_step: nextStepNumber }); _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(4); } elementorCommon.events.dispatchEvent({ event: 'step click', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, next_step: itemConfig.id } }); navigate('/onboarding/' + itemConfig.id); }; } return /*#__PURE__*/_react.default.createElement(_progressBarItem.default, (0, _extends2.default)({ key: itemConfig.id }, itemConfig)); }); return /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__progress-bar" }, progressBarItems); } /***/ }), /***/ "../app/modules/onboarding/assets/js/components/skip-button.js": /*!*********************************************************************!*\ !*** ../app/modules/onboarding/assets/js/components/skip-button.js ***! \*********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = SkipButton; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js"); var _button = _interopRequireDefault(__webpack_require__(/*! ./button */ "../app/modules/onboarding/assets/js/components/button.js")); var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function SkipButton(props) { var button = props.button, className = props.className, _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState, navigate = (0, _router.useNavigate)(), skipStep = function skipStep() { var mutatedState = JSON.parse(JSON.stringify(state)); mutatedState.steps[state.currentStep] = 'skipped'; updateState(mutatedState); if (state.nextStep) { navigate('onboarding/' + state.nextStep); } }, action = button.action || skipStep; // Make sure the 'action' prop doesn't get printed on the button markup which causes an error. delete button.action; // Handle both href and non-href skip buttons properly button.onClick = function (event) { var stepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep); _onboardingEventTracking.OnboardingEventTracking.trackStepAction(stepNumber, 'skipped'); _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(stepNumber); _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('SKIP', { currentStep: stepNumber }); if (4 === stepNumber) { _onboardingEventTracking.OnboardingEventTracking.storeExitEventForLater('step4_skip_button', stepNumber); } elementorCommon.events.dispatchEvent({ event: 'skip', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); if (button.href) { event.preventDefault(); setTimeout(function () { window.location.href = button.href; }, 100); } else { action(); } }; return /*#__PURE__*/_react.default.createElement(_button.default, { buttonSettings: button, className: className, type: "skip" }); } SkipButton.propTypes = { button: PropTypes.object.isRequired, className: PropTypes.string }; /***/ }), /***/ "../app/modules/onboarding/assets/js/context/context.js": /*!**************************************************************!*\ !*** ../app/modules/onboarding/assets/js/context/context.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ContextProvider = ContextProvider; exports.OnboardingContext = void 0; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } 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; } 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) { (0, _defineProperty2.default)(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; } var OnboardingContext = exports.OnboardingContext = (0, _react.createContext)({}); function ContextProvider(props) { var onboardingConfig = elementorAppConfig.onboarding, initialState = { // eslint-disable-next-line camelcase hasPro: elementorAppConfig.hasPro, isLibraryConnected: onboardingConfig.isLibraryConnected, isHelloThemeInstalled: onboardingConfig.helloInstalled, isHelloThemeActivated: onboardingConfig.helloActivated, siteName: onboardingConfig.siteName, siteLogo: onboardingConfig.siteLogo, proNotice: '', currentStep: '', nextStep: '', steps: { account: false, hello: false, chooseFeatures: false, siteName: false, siteLogo: false, goodToGo: false } }, _useState = (0, _react.useState)(initialState), _useState2 = (0, _slicedToArray2.default)(_useState, 2), state = _useState2[0], setState = _useState2[1], updateState = (0, _react.useCallback)(function (newState) { setState(function (prev) { return _objectSpread(_objectSpread({}, prev), newState); }); }, [setState]), getStateObjectToUpdate = function getStateObjectToUpdate(stateObject, mainChangedPropertyKey, subChangedPropertyKey, subChangedPropertyValue) { var mutatedStateCopy = JSON.parse(JSON.stringify(stateObject)); mutatedStateCopy[mainChangedPropertyKey][subChangedPropertyKey] = subChangedPropertyValue; return mutatedStateCopy; }; return /*#__PURE__*/_react.default.createElement(OnboardingContext.Provider, { value: { state: state, setState: setState, updateState: updateState, getStateObjectToUpdate: getStateObjectToUpdate } }, props.children); } ContextProvider.propTypes = { children: PropTypes.any }; /***/ }), /***/ "../app/modules/onboarding/assets/js/pages/account.js": /*!************************************************************!*\ !*** ../app/modules/onboarding/assets/js/pages/account.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Account; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js"); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _connect = _interopRequireDefault(__webpack_require__(/*! ../utils/connect */ "../app/modules/onboarding/assets/js/utils/connect.js")); var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js")); var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js")); var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js"); var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function Account() { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState, getStateObjectToUpdate = _useContext.getStateObjectToUpdate, _useState = (0, _react.useState)(null), _useState2 = (0, _slicedToArray2.default)(_useState, 2), noticeState = _useState2[0], setNoticeState = _useState2[1], nextStep = getNextStep(), navigate = (0, _router.useNavigate)(), pageId = 'account', actionButtonRef = (0, _react.useRef)(), alreadyHaveAccountLinkRef = (0, _react.useRef)(); (0, _react.useEffect)(function () { if (!state.isLibraryConnected) { var _elementorCommon$even; (0, _utils.safeDispatchEvent)('view_account_setup', { location: 'plugin_onboarding', trigger: ((_elementorCommon$even = elementorCommon.eventsManager) === null || _elementorCommon$even === void 0 || (_elementorCommon$even = _elementorCommon$even.config) === null || _elementorCommon$even === void 0 || (_elementorCommon$even = _elementorCommon$even.triggers) === null || _elementorCommon$even === void 0 ? void 0 : _elementorCommon$even.pageLoaded) || 'page_loaded', step_number: 1, step_name: 'account_setup', is_library_connected: (state === null || state === void 0 ? void 0 : state.isLibraryConnected) || false }); } _onboardingEventTracking.OnboardingEventTracking.setupAllUpgradeButtons(state.currentStep); _onboardingEventTracking.OnboardingEventTracking.onStepLoad(1); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); var skipButton; if ('completed' !== state.steps[pageId]) { skipButton = { text: __('Skip setup', 'elementor'), action: function action() { var _elementorCommon$even2; _onboardingEventTracking.OnboardingEventTracking.trackStepAction(1, 'skip'); _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('SKIP', { currentStep: 1 }); _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(1); (0, _utils.safeDispatchEvent)('skip_setup', { location: 'plugin_onboarding', trigger: ((_elementorCommon$even2 = elementorCommon.eventsManager) === null || _elementorCommon$even2 === void 0 || (_elementorCommon$even2 = _elementorCommon$even2.config) === null || _elementorCommon$even2 === void 0 || (_elementorCommon$even2 = _elementorCommon$even2.triggers) === null || _elementorCommon$even2 === void 0 ? void 0 : _elementorCommon$even2.click) || 'click', step_number: 1, step_name: 'account_setup' }); updateState(getStateObjectToUpdate(state, 'steps', pageId, 'skipped')); navigate('onboarding/' + nextStep); } }; } var pageTexts = {}; if (state.isLibraryConnected) { pageTexts = { firstLine: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, __('To get the most out of Elementor, we\'ll help you take your', 'elementor'), " ", /*#__PURE__*/_react.default.createElement("br", null), " ", __('first steps:', 'elementor')), listItems: elementorAppConfig.onboarding.experiment ? [__('Set your site\'s theme', 'elementor'), __('Choose additional features', 'elementor'), __('Choose how to start creating', 'elementor')] : [__('Set your site\'s theme', 'elementor'), __('Give your site a name & logo', 'elementor'), __('Choose how to start creating', 'elementor')] }; } else { pageTexts = elementorAppConfig.onboarding.experiment ? { firstLine: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, __('To get the most of Elementor, we\'ll connect your account.', 'elementor'), " ", /*#__PURE__*/_react.default.createElement("br", null), " ", __('Then you can:', 'elementor')), listItems: [__('Access dozens of professionally designed templates', 'elementor'), __('Manage all your sites from the My Elementor dashboard', 'elementor'), __('Unlock tools that streamline your workflow and site setup', 'elementor')] } : { firstLine: __('To get the most out of Elementor, we’ll connect your account.', 'elementor') + ' ' + __('Then you can:', 'elementor'), listItems: [__('Choose from countless professional templates', 'elementor'), __('Manage your site with our handy dashboard', 'elementor'), __('Take part in the community forum, share & grow together', 'elementor')] }; } // If the user is not connected, the on-click action is handled by the <Connect> component, so there is no onclick // property. var actionButton = { role: 'button' }; if (state.isLibraryConnected) { actionButton.text = __('Let’s do it', 'elementor'); actionButton.onClick = function () { elementorCommon.events.dispatchEvent({ event: 'next', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); updateState(getStateObjectToUpdate(state, 'steps', pageId, 'completed')); navigate('onboarding/' + nextStep); }; } else { actionButton.text = __('Start setup', 'elementor'); actionButton.href = elementorAppConfig.onboarding.urls.signUp + elementorAppConfig.onboarding.utms.connectCta; actionButton.ref = actionButtonRef; actionButton.onClick = function () { var _elementorCommon$even3; _onboardingEventTracking.OnboardingEventTracking.trackStepAction(1, 'create'); _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('CREATE_MY_ACCOUNT', { currentStep: 1, createAccountClicked: 'main_cta' }); (0, _utils.safeDispatchEvent)('new_account_connect', { location: 'plugin_onboarding', trigger: ((_elementorCommon$even3 = elementorCommon.eventsManager) === null || _elementorCommon$even3 === void 0 || (_elementorCommon$even3 = _elementorCommon$even3.config) === null || _elementorCommon$even3 === void 0 || (_elementorCommon$even3 = _elementorCommon$even3.triggers) === null || _elementorCommon$even3 === void 0 ? void 0 : _elementorCommon$even3.click) || 'click', step_number: 1, step_name: 'account_setup', button_text: 'Start setup' }); }; } var connectSuccessCallback = function connectSuccessCallback() { var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed'); stateToUpdate.isLibraryConnected = true; updateState(stateToUpdate); elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'success', action: 'connect account' } }); setNoticeState({ type: 'success', icon: 'eicon-check-circle-o', message: 'Alrighty - your account is connected.' }); _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(1); navigate('onboarding/' + nextStep); }; function getNextStep() { if (!state.isHelloThemeActivated) { return 'hello'; } return elementorAppConfig.onboarding.experiment ? 'chooseFeatures' : 'siteName'; } var connectFailureCallback = function connectFailureCallback() { elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'failure', action: 'connect account' } }); _onboardingEventTracking.OnboardingEventTracking.sendConnectionFailureEvents(); setNoticeState({ type: 'error', icon: 'eicon-warning', message: __('Oops, the connection failed. Try again.', 'elementor') }); navigate('onboarding/' + nextStep); }; return /*#__PURE__*/_react.default.createElement(_layout.default, { pageId: pageId, nextStep: nextStep }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, { image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Account.svg', title: elementorAppConfig.onboarding.experiment ? __('You\'re here!', 'elementor') : __('You\'re here! Let\'s set things up.', 'elementor'), secondLineTitle: elementorAppConfig.onboarding.experiment ? __(' Let\'s get connected.', 'elementor') : '', actionButton: actionButton, skipButton: skipButton, noticeState: noticeState }, actionButton.ref && !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement(_connect.default, { buttonRef: actionButton.ref, successCallback: function successCallback(event, data) { return connectSuccessCallback(event, data); }, errorCallback: connectFailureCallback }), /*#__PURE__*/_react.default.createElement("span", null, pageTexts.firstLine), /*#__PURE__*/_react.default.createElement("ul", null, pageTexts.listItems.map(function (listItem, index) { return /*#__PURE__*/_react.default.createElement("li", { key: 'listItem' + index }, listItem); }))), !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__footnote" }, /*#__PURE__*/_react.default.createElement("p", null, __('Already have an account?', 'elementor') + ' ', /*#__PURE__*/_react.default.createElement("a", { ref: alreadyHaveAccountLinkRef, href: elementorAppConfig.onboarding.urls.connect + elementorAppConfig.onboarding.utms.connectCtaLink, onClick: function onClick() { var _elementorCommon$even4; _onboardingEventTracking.OnboardingEventTracking.trackStepAction(1, 'connect'); _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('STEP1_CLICKED_CONNECT', { currentStep: state.currentStep }); (0, _utils.safeDispatchEvent)('existing_account_connect', { location: 'plugin_onboarding', trigger: ((_elementorCommon$even4 = elementorCommon.eventsManager) === null || _elementorCommon$even4 === void 0 || (_elementorCommon$even4 = _elementorCommon$even4.config) === null || _elementorCommon$even4 === void 0 || (_elementorCommon$even4 = _elementorCommon$even4.triggers) === null || _elementorCommon$even4 === void 0 ? void 0 : _elementorCommon$even4.click) || 'click', step_number: 1, step_name: 'account_setup', button_text: 'Click here to connect' }); } }, __('Click here to connect', 'elementor'))), /*#__PURE__*/_react.default.createElement(_connect.default, { buttonRef: alreadyHaveAccountLinkRef, successCallback: connectSuccessCallback, errorCallback: connectFailureCallback }))); } /***/ }), /***/ "../app/modules/onboarding/assets/js/pages/choose-features.js": /*!********************************************************************!*\ !*** ../app/modules/onboarding/assets/js/pages/choose-features.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = ChooseFeatures; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js")); var _message = _interopRequireDefault(__webpack_require__(/*! ../components/message */ "../app/modules/onboarding/assets/js/components/message.js")); var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js"); var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js")); var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js")); var _useButtonAction2 = _interopRequireDefault(__webpack_require__(/*! ../utils/use-button-action */ "../app/modules/onboarding/assets/js/utils/use-button-action.js")); var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function ChooseFeatures() { var _useAjax = (0, _useAjax2.default)(), setAjax = _useAjax.setAjax, tiers = { advanced: __('Advanced', 'elementor'), essential: __('Essential', 'elementor') }, _useState = (0, _react.useState)({ essential: [], advanced: [] }), _useState2 = (0, _slicedToArray2.default)(_useState, 2), selectedFeatures = _useState2[0], setSelectedFeatures = _useState2[1], _useState3 = (0, _react.useState)(tiers.essential), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), tierName = _useState4[0], setTierName = _useState4[1], pageId = 'chooseFeatures', nextStep = 'goodToGo', _useButtonAction = (0, _useButtonAction2.default)(pageId, nextStep), state = _useButtonAction.state, handleAction = _useButtonAction.handleAction, actionButton = { text: __('Upgrade Now', 'elementor'), href: elementorAppConfig.onboarding.urls.upgrade, target: '_blank', onClick: function onClick() { _onboardingEventTracking.OnboardingEventTracking.trackStepAction(3, 'pro_features_checked', { features: _onboardingEventTracking.OnboardingEventTracking.extractSelectedFeatureKeys(selectedFeatures) }); _onboardingEventTracking.OnboardingEventTracking.trackStepAction(3, 'upgrade_now', { pro_features_checked: _onboardingEventTracking.OnboardingEventTracking.extractSelectedFeatureKeys(selectedFeatures) }); elementorCommon.events.dispatchEvent({ event: 'next', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); _onboardingEventTracking.OnboardingEventTracking.sendUpgradeNowStep3(selectedFeatures, state.currentStep); _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(3); setAjax({ data: { action: 'elementor_save_onboarding_features', data: JSON.stringify({ features: selectedFeatures }) } }); handleAction('completed'); } }; var skipButton; if ('completed' !== state.steps[pageId]) { skipButton = { text: __('Skip', 'elementor'), action: function action() { _onboardingEventTracking.OnboardingEventTracking.trackStepAction(3, 'pro_features_checked', { features: _onboardingEventTracking.OnboardingEventTracking.extractSelectedFeatureKeys(selectedFeatures) }); _onboardingEventTracking.OnboardingEventTracking.trackStepAction(3, 'skipped'); setAjax({ data: { action: 'elementor_save_onboarding_features', data: JSON.stringify({ features: selectedFeatures }) } }); handleAction('skipped'); } }; } if (!isFeatureSelected(selectedFeatures)) { actionButton.className = 'e-onboarding__button--disabled'; } (0, _react.useEffect)(function () { if (selectedFeatures.advanced.length > 0) { setTierName(tiers.advanced); } else { setTierName(tiers.essential); } }, [selectedFeatures, tiers.advanced, tiers.essential]); (0, _react.useEffect)(function () { _onboardingEventTracking.OnboardingEventTracking.setupAllUpgradeButtons(state.currentStep); _onboardingEventTracking.OnboardingEventTracking.onStepLoad(3); }, [state.currentStep]); function isFeatureSelected(features) { return !!features.advanced.length || !!features.essential.length; } return /*#__PURE__*/_react.default.createElement(_layout.default, { pageId: pageId, nextStep: nextStep }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, { image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg', title: __('Elevate your website with additional Pro features.', 'elementor'), actionButton: actionButton, skipButton: skipButton }, /*#__PURE__*/_react.default.createElement("p", null, __('Which Elementor Pro features do you need to bring your creative vision to life?', 'elementor')), /*#__PURE__*/_react.default.createElement("form", { className: "e-onboarding__choose-features-section" }, _utils.options.map(function (option, index) { var itemId = "".concat(option.plan, "-").concat(index); return /*#__PURE__*/_react.default.createElement("label", { key: itemId, className: "e-onboarding__choose-features-section__label", htmlFor: itemId }, /*#__PURE__*/_react.default.createElement("input", { className: "e-onboarding__choose-features-section__checkbox", type: "checkbox", onChange: function onChange(event) { return (0, _utils.setSelectedFeatureList)({ checked: event.currentTarget.checked, id: event.target.value, text: option.text, selectedFeatures: selectedFeatures, setSelectedFeatures: setSelectedFeatures }); }, id: itemId, value: itemId }), option.text); })), /*#__PURE__*/_react.default.createElement("p", { className: "e-onboarding__choose-features-section__message" }, isFeatureSelected(selectedFeatures) && /*#__PURE__*/_react.default.createElement(_message.default, { tier: tierName })))); } /***/ }), /***/ "../app/modules/onboarding/assets/js/pages/good-to-go.js": /*!***************************************************************!*\ !*** ../app/modules/onboarding/assets/js/pages/good-to-go.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = GoodToGo; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js")); var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js")); var _card = _interopRequireDefault(__webpack_require__(/*! ../components/card */ "../app/modules/onboarding/assets/js/components/card.js")); var _footerButtons = _interopRequireDefault(__webpack_require__(/*! ../components/layout/footer-buttons */ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js")); var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } 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; } 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) { (0, _defineProperty2.default)(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; } function GoodToGo() { var pageId = 'goodToGo', skipButton = { text: __('Skip', 'elementor'), href: elementorAppConfig.onboarding.urls.createNewPage }, kitLibraryLink = elementorAppConfig.onboarding.urls.kitLibrary + '&referrer=onboarding'; (0, _react.useEffect)(function () { _onboardingEventTracking.OnboardingEventTracking.checkAndSendReturnToStep4(); _onboardingEventTracking.OnboardingEventTracking.onStepLoad(4); }, []); return /*#__PURE__*/_react.default.createElement(_layout.default, { pageId: pageId }, /*#__PURE__*/_react.default.createElement("h1", { className: "e-onboarding__page-content-section-title" }, elementorAppConfig.onboarding.experiment ? __('Welcome aboard! What\'s next?', 'elementor') : __('That\'s a wrap! What\'s next?', 'elementor')), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__page-content-section-text" }, __('There are three ways to get started with Elementor:', 'elementor')), /*#__PURE__*/_react.default.createElement(_grid.default, { container: true, alignItems: "center", justify: "space-between", className: "e-onboarding__cards-grid e-onboarding__page-content" }, /*#__PURE__*/_react.default.createElement(_card.default, { name: "blank", image: elementorCommon.config.urls.assets + 'images/app/onboarding/Blank_Canvas.svg', imageAlt: __('Click here to create a new page and open it in Elementor Editor', 'elementor'), text: __('Edit a blank canvas with the Elementor Editor', 'elementor'), link: elementorAppConfig.onboarding.urls.createNewPage, clickAction: function clickAction() { _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('blank_canvas'); } }), /*#__PURE__*/_react.default.createElement(_card.default, { name: "template", image: elementorCommon.config.urls.assets + 'images/app/onboarding/Library.svg', imageAlt: __('Click here to go to Elementor\'s Website Templates', 'elementor'), text: __('Choose a professionally-designed template or import your own', 'elementor'), link: kitLibraryLink, clickAction: function clickAction() { _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('kit_library'); // The location is reloaded to make sure the Kit Library's state is re-created. location.href = kitLibraryLink; location.reload(); } }), /*#__PURE__*/_react.default.createElement(_card.default, { name: "site-planner", image: elementorCommon.config.urls.assets + 'images/app/onboarding/Site_Planner.svg', imageAlt: __('Click here to go to Elementor\'s Site Planner', 'elementor'), text: __('Create a professional site in minutes using AI', 'elementor'), link: elementorAppConfig.onboarding.urls.sitePlanner, target: "_blank", clickAction: function clickAction() { _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('site_planner'); } })), /*#__PURE__*/_react.default.createElement(_footerButtons.default, { skipButton: _objectSpread(_objectSpread({}, skipButton), {}, { target: '_self' }), className: "e-onboarding__good-to-go-footer" })); } /***/ }), /***/ "../app/modules/onboarding/assets/js/pages/hello-theme.js": /*!****************************************************************!*\ !*** ../app/modules/onboarding/assets/js/pages/hello-theme.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = HelloTheme; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js"); var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js")); var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js")); var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js")); var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } /* eslint-disable @wordpress/i18n-ellipsis */ function HelloTheme() { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState, getStateObjectToUpdate = _useContext.getStateObjectToUpdate, _useAjax = (0, _useAjax2.default)(), activateHelloThemeAjaxState = _useAjax.ajaxState, setActivateHelloThemeAjaxState = _useAjax.setAjax, _useState = (0, _react.useState)(false), _useState2 = (0, _slicedToArray2.default)(_useState, 2), helloInstalledInOnboarding = _useState2[0], setHelloInstalledInOnboarding = _useState2[1], _useState3 = (0, _react.useState)(false), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), isInstalling = _useState4[0], setIsInstalling = _useState4[1], noticeStateSuccess = { type: 'success', icon: 'eicon-check-circle-o', message: __('Your site’s got Hello theme. High-five!', 'elementor') }, _useState5 = (0, _react.useState)(state.isHelloThemeActivated ? noticeStateSuccess : null), _useState6 = (0, _slicedToArray2.default)(_useState5, 2), noticeState = _useState6[0], setNoticeState = _useState6[1], _useState7 = (0, _react.useState)([]), _useState8 = (0, _slicedToArray2.default)(_useState7, 2), activeTimeouts = _useState8[0], setActiveTimeouts = _useState8[1], continueWithHelloThemeText = state.isHelloThemeActivated ? __('Next', 'elementor') : __('Continue with Hello Biz Theme', 'elementor'), _useState9 = (0, _react.useState)(continueWithHelloThemeText), _useState0 = (0, _slicedToArray2.default)(_useState9, 2), actionButtonText = _useState0[0], setActionButtonText = _useState0[1], navigate = (0, _router.useNavigate)(), pageId = 'hello', nextStep = elementorAppConfig.onboarding.experiment ? 'chooseFeatures' : 'siteName', goToNextScreen = function goToNextScreen() { return navigate('onboarding/' + nextStep); }; /** * Setup * * If Hello Theme is already activated when onboarding starts, This screen is unneeded and is marked as 'completed' * and skipped. */ (0, _react.useEffect)(function () { if (!helloInstalledInOnboarding && state.isHelloThemeActivated) { var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed'); updateState(stateToUpdate); goToNextScreen(); } _onboardingEventTracking.OnboardingEventTracking.setupAllUpgradeButtons(state.currentStep); _onboardingEventTracking.OnboardingEventTracking.onStepLoad(2); }, []); var resetScreenContent = function resetScreenContent() { // Clear any active timeouts for changing the action button text during installation. activeTimeouts.forEach(function (timeoutID) { return clearTimeout(timeoutID); }); setActiveTimeouts([]); setIsInstalling(false); setActionButtonText(continueWithHelloThemeText); }; /** * Callbacks */ var onHelloThemeActivationSuccess = (0, _react.useCallback)(function () { setIsInstalling(false); elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'success', action: 'hello theme activation' } }); setNoticeState(noticeStateSuccess); setActionButtonText(__('Next', 'elementor')); var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed'); stateToUpdate.isHelloThemeActivated = true; updateState(stateToUpdate); setHelloInstalledInOnboarding(true); _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(2); goToNextScreen(); }, []); var onErrorInstallHelloTheme = function onErrorInstallHelloTheme() { elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'failure', action: 'hello theme install' } }); setNoticeState({ type: 'error', icon: 'eicon-warning', message: __('There was a problem installing Hello Biz Theme.', 'elementor') }); resetScreenContent(); }; var activateHelloTheme = function activateHelloTheme() { setIsInstalling(true); updateState({ isHelloThemeInstalled: true }); setActivateHelloThemeAjaxState({ data: { action: 'elementor_activate_hello_theme' } }); }; var installHelloTheme = function installHelloTheme() { if (!isInstalling) { setIsInstalling(true); } wp.updates.ajax('install-theme', { slug: 'hello-biz', success: function success() { return activateHelloTheme(); }, error: function error() { return onErrorInstallHelloTheme(); } }); }; var sendNextButtonEvent = function sendNextButtonEvent() { elementorCommon.events.dispatchEvent({ event: 'next', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); }; /** * Action Button */ var actionButton = { text: actionButtonText, role: 'button' }; if (isInstalling) { actionButton.className = 'e-onboarding__button--processing'; } if (state.isHelloThemeActivated) { actionButton.onClick = function () { _onboardingEventTracking.OnboardingEventTracking.trackStepAction(2, 'continue_hello_biz'); sendNextButtonEvent(); _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(2); goToNextScreen(); }; } else { actionButton.onClick = function () { _onboardingEventTracking.OnboardingEventTracking.trackStepAction(2, 'continue_hello_biz'); _onboardingEventTracking.OnboardingEventTracking.sendHelloBizContinue(state.currentStep); sendNextButtonEvent(); if (state.isHelloThemeInstalled && !state.isHelloThemeActivated) { activateHelloTheme(); } else if (!state.isHelloThemeInstalled) { installHelloTheme(); } else { _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(2); goToNextScreen(); } }; } /** * Skip Button */ var skipButton = {}; if (isInstalling) { skipButton.className = 'e-onboarding__button-skip--disabled'; } if ('completed' !== state.steps[pageId]) { skipButton.text = __('Skip', 'elementor'); } /** * Set timeouts for updating the 'Next' button text if the Hello Theme installation is taking too long. */ (0, _react.useEffect)(function () { if (isInstalling) { setActionButtonText(/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", { className: "eicon-loading eicon-animation-spin", "aria-hidden": "true" }))); } var actionTextTimeouts = []; var timeout4 = setTimeout(function () { if (!isInstalling) { return; } setActionButtonText(/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", { className: "eicon-loading eicon-animation-spin", "aria-hidden": "true" }), /*#__PURE__*/_react.default.createElement("span", { className: "e-onboarding__action-button-text" }, __('Hold on, this can take a minute...', 'elementor')))); }, 4000); actionTextTimeouts.push(timeout4); var timeout30 = setTimeout(function () { if (!isInstalling) { return; } setActionButtonText(/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", { className: "eicon-loading eicon-animation-spin", "aria-hidden": "true" }), /*#__PURE__*/_react.default.createElement("span", { className: "e-onboarding__action-button-text" }, __('Okay, now we\'re really close...', 'elementor')))); }, 30000); actionTextTimeouts.push(timeout30); setActiveTimeouts(actionTextTimeouts); }, [isInstalling]); (0, _react.useEffect)(function () { if ('initial' !== activateHelloThemeAjaxState.status) { var _activateHelloThemeAj; if ('success' === activateHelloThemeAjaxState.status && (_activateHelloThemeAj = activateHelloThemeAjaxState.response) !== null && _activateHelloThemeAj !== void 0 && _activateHelloThemeAj.helloThemeActivated) { onHelloThemeActivationSuccess(); } else if ('error' === activateHelloThemeAjaxState.status) { elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'failure', action: 'hello theme activation' } }); setNoticeState({ type: 'error', icon: 'eicon-warning', message: __('There was a problem activating Hello Biz Theme.', 'elementor') }); // Clear any active timeouts for changing the action button text during installation. resetScreenContent(); } } }, [activateHelloThemeAjaxState.status]); return /*#__PURE__*/_react.default.createElement(_layout.default, { pageId: pageId, nextStep: nextStep }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, { image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Hello_Biz.svg', title: __('Every site starts with a theme.', 'elementor'), actionButton: actionButton, skipButton: skipButton, noticeState: noticeState }, /*#__PURE__*/_react.default.createElement("p", null, __('Hello Biz by Elementor helps you launch your professional business website - fast.', 'elementor')), !elementorAppConfig.onboarding.experiment && /*#__PURE__*/_react.default.createElement("p", null, __('Here\'s why:', 'elementor')), /*#__PURE__*/_react.default.createElement("ul", { className: "e-onboarding__feature-list" }, /*#__PURE__*/_react.default.createElement("li", null, __('Get online faster', 'elementor')), /*#__PURE__*/_react.default.createElement("li", null, __('Lightweight and fast loading', 'elementor')), /*#__PURE__*/_react.default.createElement("li", null, __('Great for SEO', 'elementor')))), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__footnote" }, '* ' + __('You can switch your theme later on', 'elementor'))); } /***/ }), /***/ "../app/modules/onboarding/assets/js/pages/site-logo.js": /*!**************************************************************!*\ !*** ../app/modules/onboarding/assets/js/pages/site-logo.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = SiteLogo; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js"); var _useAjax3 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js")); var _dropZone = _interopRequireDefault(__webpack_require__(/*! elementor-app/organisms/drop-zone */ "../app/assets/js/organisms/drop-zone.js")); var _unfilteredFilesDialog = _interopRequireDefault(__webpack_require__(/*! elementor-app/organisms/unfiltered-files-dialog */ "../app/assets/js/organisms/unfiltered-files-dialog.js")); var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js")); var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } /* eslint-disable jsx-a11y/no-static-element-interactions */ /* eslint-disable jsx-a11y/click-events-have-key-events */ function SiteLogo() { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState, getStateObjectToUpdate = _useContext.getStateObjectToUpdate, _useState = (0, _react.useState)(state.siteLogo.id ? state.siteLogo : null), _useState2 = (0, _slicedToArray2.default)(_useState, 2), file = _useState2[0], setFile = _useState2[1], _useState3 = (0, _react.useState)(false), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), isUploading = _useState4[0], setIsUploading = _useState4[1], _useState5 = (0, _react.useState)(false), _useState6 = (0, _slicedToArray2.default)(_useState5, 2), showUnfilteredFilesDialog = _useState6[0], setShowUnfilteredFilesDialog = _useState6[1], _useState7 = (0, _react.useState)(), _useState8 = (0, _slicedToArray2.default)(_useState7, 2), fileSource = _useState8[0], setFileSource = _useState8[1], _useState9 = (0, _react.useState)(null), _useState0 = (0, _slicedToArray2.default)(_useState9, 2), noticeState = _useState0[0], setNoticeState = _useState0[1], _useAjax = (0, _useAjax3.default)(), updateLogoAjaxState = _useAjax.ajaxState, setUpdateLogoAjax = _useAjax.setAjax, _useAjax2 = (0, _useAjax3.default)(), uploadImageAjaxState = _useAjax2.ajaxState, setUploadImageAjax = _useAjax2.setAjax, pageId = 'siteLogo', nextStep = 'goodToGo', navigate = (0, _router.useNavigate)(), actionButton = { role: 'button', onClick: function onClick() { elementorCommon.events.dispatchEvent({ event: 'next', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); if (file.id) { if (file.id !== state.siteLogo.id) { updateSiteLogo(); } else { // If the currently displayed logo is already set as the site logo, just go to the next screen. var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed'); updateState(stateToUpdate); navigate('onboarding/' + nextStep); } } } }; var skipButton; if ('completed' !== state.steps[pageId]) { skipButton = { text: __('Skip', 'elementor') }; } if (isUploading) { actionButton.text = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", { className: "eicon-loading eicon-animation-spin", "aria-hidden": "true" })); } else { actionButton.text = __('Next', 'elementor'); } if (!file) { actionButton.className = 'e-onboarding__button--disabled'; } var updateSiteLogo = (0, _react.useCallback)(function () { setIsUploading(true); setUpdateLogoAjax({ data: { action: 'elementor_update_site_logo', data: JSON.stringify({ attachmentId: file.id }) } }); }, [file]); var uploadSiteLogo = function uploadSiteLogo(fileToUpload) { setIsUploading(true); setUploadImageAjax({ data: { action: 'elementor_upload_site_logo', fileToUpload: fileToUpload } }); }; var dismissUnfilteredFilesCallback = function dismissUnfilteredFilesCallback() { setIsUploading(false); setFile(null); setShowUnfilteredFilesDialog(false); }; var _onFileSelect = function onFileSelect(selectedFile) { setFileSource('drop'); if ('image/svg+xml' === selectedFile.type && !elementorAppConfig.onboarding.isUnfilteredFilesEnabled) { setFile(selectedFile); setIsUploading(true); setShowUnfilteredFilesDialog(true); } else { setFile(selectedFile); setNoticeState(null); uploadSiteLogo(selectedFile); } }; var onImageRemoveClick = function onImageRemoveClick() { elementorCommon.events.dispatchEvent({ event: 'remove selected logo', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement } }); setFile(null); }; /** * Ajax Callbacks */ // Run the callback for the new image upload AJAX request. (0, _react.useEffect)(function () { if ('initial' !== uploadImageAjaxState.status) { var _uploadImageAjaxState; if ('success' === uploadImageAjaxState.status && (_uploadImageAjaxState = uploadImageAjaxState.response) !== null && _uploadImageAjaxState !== void 0 && (_uploadImageAjaxState = _uploadImageAjaxState.imageAttachment) !== null && _uploadImageAjaxState !== void 0 && _uploadImageAjaxState.id) { elementorCommon.events.dispatchEvent({ event: 'logo image uploaded', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, source: fileSource } }); setIsUploading(false); setFile(uploadImageAjaxState.response.imageAttachment); if (noticeState) { setNoticeState(null); } } else if ('error' === uploadImageAjaxState.status) { setIsUploading(false); setFile(null); elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, action_state: 'failure', action: 'logo image upload' } }); setNoticeState({ type: 'error', icon: 'eicon-warning', message: 'That didn\'t work. Try uploading your file again.' }); } } }, [uploadImageAjaxState.status]); // Run the callback for the site logo update AJAX request. (0, _react.useEffect)(function () { if ('initial' !== updateLogoAjaxState.status) { var _updateLogoAjaxState$; if ('success' === updateLogoAjaxState.status && (_updateLogoAjaxState$ = updateLogoAjaxState.response) !== null && _updateLogoAjaxState$ !== void 0 && _updateLogoAjaxState$.siteLogoUpdated) { elementorCommon.events.dispatchEvent({ event: 'logo image updated', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, source: fileSource } }); setIsUploading(false); if (noticeState) { setNoticeState(null); } var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed'); stateToUpdate.siteLogo = { id: file.id, url: file.url }; updateState(stateToUpdate); navigate('onboarding/' + nextStep); } else if ('error' === updateLogoAjaxState.status) { setIsUploading(false); elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'failure', action: 'update site logo' } }); setNoticeState({ type: 'error', icon: 'eicon-warning', message: 'That didn\'t work. Try uploading your file again.' }); } } }, [updateLogoAjaxState.status]); return /*#__PURE__*/_react.default.createElement(_layout.default, { pageId: pageId, nextStep: nextStep }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, { image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg', title: __('Have a logo? Add it here.', 'elementor'), actionButton: actionButton, skipButton: skipButton, noticeState: noticeState }, /*#__PURE__*/_react.default.createElement("span", null, __('Otherwise, you can skip this and add one later.', 'elementor')), file && !showUnfilteredFilesDialog ? /*#__PURE__*/_react.default.createElement("div", { className: 'e-onboarding__logo-container' + (isUploading ? ' e-onboarding__is-uploading' : '') }, /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__logo-remove", onClick: function onClick() { return onImageRemoveClick(); } }, /*#__PURE__*/_react.default.createElement("i", { className: "eicon-trash-o" })), /*#__PURE__*/_react.default.createElement("img", { src: file.url, alt: __('Potential Site Logo', 'elementor') })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dropZone.default, { className: "e-onboarding__drop-zone", heading: __('Drop image here', 'elementor'), secondaryText: __('or', 'elementor'), buttonText: __('Open Media Library', 'elementor'), buttonVariant: "outlined", buttonColor: "cta", icon: '', type: "wp-media", filetypes: ['jpg', 'jpeg', 'png', 'svg'], onFileSelect: function onFileSelect(selectedFile) { return _onFileSelect(selectedFile); }, onWpMediaSelect: function onWpMediaSelect(frame) { // Get media attachment details from the frame state var attachment = frame.state().get('selection').first().toJSON(); setFileSource('browse'); setFile(attachment); setNoticeState(null); }, onButtonClick: function onButtonClick() { elementorCommon.events.dispatchEvent({ event: 'browse file click', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); } // TODO: DEAL WITH ERROR , onError: function onError(error) { if ('file_not_allowed' === error.id) { elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'failure', action: 'logo upload format' } }); setNoticeState({ type: 'error', icon: 'eicon-warning', message: __('This file type is not supported. Try a different type of file', 'elementor') }); } } })), /*#__PURE__*/_react.default.createElement(_unfilteredFilesDialog.default, { show: showUnfilteredFilesDialog, setShow: setShowUnfilteredFilesDialog, confirmModalText: __('This allows Elementor to scan your SVGs for malicious content. If you do not wish to allow this, use a different image format.', 'elementor'), errorModalText: __('There was a problem with enabling SVG uploads. Try again, or use another image format.', 'elementor'), onReady: function onReady() { setShowUnfilteredFilesDialog(false); elementorAppConfig.onboarding.isUnfilteredFilesEnabled = true; uploadSiteLogo(file); }, onDismiss: function onDismiss() { return dismissUnfilteredFilesCallback(); }, onCancel: function onCancel() { return dismissUnfilteredFilesCallback(); } }))); } /***/ }), /***/ "../app/modules/onboarding/assets/js/pages/site-name.js": /*!**************************************************************!*\ !*** ../app/modules/onboarding/assets/js/pages/site-name.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = SiteName; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js"); var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js")); var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js")); var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function SiteName() { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState, getStateObjectToUpdate = _useContext.getStateObjectToUpdate, _useAjax = (0, _useAjax2.default)(), ajaxState = _useAjax.ajaxState, setAjax = _useAjax.setAjax, _useState = (0, _react.useState)(null), _useState2 = (0, _slicedToArray2.default)(_useState, 2), noticeState = _useState2[0], setNoticeState = _useState2[1], _useState3 = (0, _react.useState)(state.siteName), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), siteNameInputValue = _useState4[0], setSiteNameInputValue = _useState4[1], pageId = 'siteName', nextStep = 'siteLogo', navigate = (0, _router.useNavigate)(), nameInputRef = (0, _react.useRef)(), actionButton = { text: __('Next', 'elementor'), onClick: function onClick() { elementorCommon.events.dispatchEvent({ event: 'next', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); // Only run the site name update AJAX if the new name is different than the existing one and it isn't empty. if (nameInputRef.current.value !== state.siteName && '' !== nameInputRef.current.value) { setAjax({ data: { action: 'elementor_update_site_name', data: JSON.stringify({ siteName: nameInputRef.current.value }) } }); } else if (nameInputRef.current.value === state.siteName) { var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed'); updateState(stateToUpdate); navigate('onboarding/' + nextStep); } else { var _stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'skipped'); updateState(_stateToUpdate); navigate('onboarding/' + nextStep); } } }; var skipButton; if ('completed' !== state.steps[pageId]) { skipButton = { text: __('Skip', 'elementor') }; } if (!siteNameInputValue) { actionButton.className = 'e-onboarding__button--disabled'; } // Run the callback for the site name update AJAX request. (0, _react.useEffect)(function () { if ('initial' !== ajaxState.status) { var _ajaxState$response; if ('success' === ajaxState.status && (_ajaxState$response = ajaxState.response) !== null && _ajaxState$response !== void 0 && _ajaxState$response.siteNameUpdated) { var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed'); stateToUpdate.siteName = nameInputRef.current.value; updateState(stateToUpdate); navigate('onboarding/' + nextStep); } else if ('error' === ajaxState.status) { elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'failure', action: 'site name update' } }); setNoticeState({ type: 'error', icon: 'eicon-warning', message: __('Sorry, the name wasn\'t saved. Try again, or skip for now.', 'elementor') }); } } }, [ajaxState.status]); return /*#__PURE__*/_react.default.createElement(_layout.default, { pageId: pageId, nextStep: nextStep }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, { image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg', title: __('Now, let\'s give your site a name.', 'elementor'), actionButton: actionButton, skipButton: skipButton, noticeState: noticeState }, /*#__PURE__*/_react.default.createElement("p", null, __('This is what your site is called on the WP dashboard, and can be changed later from the general settings - it\'s not your website\'s URL.', 'elementor')), /*#__PURE__*/_react.default.createElement("input", { className: "e-onboarding__text-input e-onboarding__site-name-input", type: "text", placeholder: "e.g. Eric's Space Shuttles", defaultValue: state.siteName || '', ref: nameInputRef, onChange: function onChange(event) { return setSiteNameInputValue(event.target.value); } }))); } /***/ }), /***/ "../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js": /*!***************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = UploadAndInstallPro; var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js")); var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js")); var _content = _interopRequireDefault(__webpack_require__(/*! ../../../../../assets/js/layout/content */ "../app/assets/js/layout/content.js")); var _dropZone = _interopRequireDefault(__webpack_require__(/*! ../../../../../assets/js/organisms/drop-zone */ "../app/assets/js/organisms/drop-zone.js")); var _notice = _interopRequireDefault(__webpack_require__(/*! ../components/notice */ "../app/modules/onboarding/assets/js/components/notice.js")); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _elementorLoading = _interopRequireDefault(__webpack_require__(/*! elementor-app/molecules/elementor-loading */ "../app/assets/js/molecules/elementor-loading.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function UploadAndInstallPro() { (0, _usePageTitle.default)({ title: __('Upload and Install Elementor Pro', 'elementor') }); var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, _useAjax = (0, _useAjax2.default)(), installProZipAjaxState = _useAjax.ajaxState, setInstallProZipAjaxState = _useAjax.setAjax, _useState = (0, _react.useState)(null), _useState2 = (0, _slicedToArray2.default)(_useState, 2), noticeState = _useState2[0], setNoticeState = _useState2[1], _useState3 = (0, _react.useState)(false), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), isLoading = _useState4[0], setIsLoading = _useState4[1], _useState5 = (0, _react.useState)(), _useState6 = (0, _slicedToArray2.default)(_useState5, 2), fileSource = _useState6[0], setFileSource = _useState6[1]; var uploadProZip = (0, _react.useCallback)(function (file) { setIsLoading(true); setInstallProZipAjaxState({ data: { action: 'elementor_upload_and_install_pro', fileToUpload: file } }); }, []); var setErrorNotice = function setErrorNotice() { var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'upload'; var errorMessage = (error === null || error === void 0 ? void 0 : error.message) || 'That didn\'t work. Try uploading your file again.'; elementorCommon.events.dispatchEvent({ event: 'indication prompt', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, action_state: 'failure', action: step + ' pro', source: fileSource } }); setNoticeState({ type: 'error', icon: 'eicon-warning', message: errorMessage }); }; /** * Ajax Callbacks */ // Run the callback that runs when the Pro Upload Ajax returns a response. (0, _react.useEffect)(function () { if ('initial' !== installProZipAjaxState.status) { var _installProZipAjaxSta; setIsLoading(false); if ('success' === installProZipAjaxState.status && (_installProZipAjaxSta = installProZipAjaxState.response) !== null && _installProZipAjaxSta !== void 0 && _installProZipAjaxSta.elementorProInstalled) { elementorCommon.events.dispatchEvent({ event: 'pro uploaded', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep, source: fileSource } }); if (opener && opener !== window) { opener.jQuery('body').trigger('elementor/upload-and-install-pro/success'); window.close(); opener.focus(); } } else if ('error' === installProZipAjaxState.status) { setErrorNotice('install'); } } }, [installProZipAjaxState.status]); var onProUploadHelpLinkClick = function onProUploadHelpLinkClick() { elementorCommon.events.dispatchEvent({ event: 'pro plugin upload help', version: '', details: { placement: elementorAppConfig.onboarding.eventPlacement, step: state.currentStep } }); }; if (isLoading) { return /*#__PURE__*/_react.default.createElement(_elementorLoading.default, { loadingText: __('Uploading', 'elementor') }); } return /*#__PURE__*/_react.default.createElement("div", { className: "eps-app e-onboarding__upload-pro" }, /*#__PURE__*/_react.default.createElement(_content.default, null, /*#__PURE__*/_react.default.createElement(_dropZone.default, { className: "e-onboarding__upload-pro-drop-zone", onFileSelect: function onFileSelect(file, event, source) { setFileSource(source); uploadProZip(file); }, onError: function onError(error) { return setErrorNotice(error, 'upload'); }, filetypes: ['zip'], buttonColor: "cta", buttonVariant: "contained", heading: __('Import your Elementor Pro plugin file', 'elementor'), text: __('Drag & Drop your .zip file here', 'elementor'), secondaryText: __('or', 'elementor'), buttonText: __('Browse', 'elementor') }), noticeState && /*#__PURE__*/_react.default.createElement(_notice.default, { noticeState: noticeState }), /*#__PURE__*/_react.default.createElement("div", { className: "e-onboarding__upload-pro-get-file" }, __('Don\'t know where to get the file from?', 'elementor') + ' ', /*#__PURE__*/_react.default.createElement("a", { onClick: function onClick() { return onProUploadHelpLinkClick(); }, href: 'https://my.elementor.com/subscriptions/' + elementorAppConfig.onboarding.utms.downloadPro, target: "_blank" }, __('Click here', 'elementor'))))); } /***/ }), /***/ "../app/modules/onboarding/assets/js/utils/connect.js": /*!************************************************************!*\ !*** ../app/modules/onboarding/assets/js/utils/connect.js ***! \************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = Connect; var _react = __webpack_require__(/*! react */ "react"); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _onboardingEventTracking = __webpack_require__(/*! ./onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js"); function Connect(props) { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState, getStateObjectToUpdate = _useContext.getStateObjectToUpdate; var buttonRef = props.buttonRef, successCallback = props.successCallback, errorCallback = props.errorCallback; var handleCoreConnectionLogic = (0, _react.useCallback)(function (event, data) { var isTrackingOptedInConnect = data.tracking_opted_in && elementorCommon.config.editor_events; _onboardingEventTracking.OnboardingEventTracking.updateLibraryConnectConfig(data); if (isTrackingOptedInConnect) { elementorCommon.config.editor_events.can_send_events = true; _onboardingEventTracking.OnboardingEventTracking.sendConnectionSuccessEvents(data); } }, []); var defaultConnectSuccessCallback = (0, _react.useCallback)(function () { var stateToUpdate = getStateObjectToUpdate(state, 'steps', 'account', 'completed'); stateToUpdate.isLibraryConnected = true; updateState(stateToUpdate); }, [state, getStateObjectToUpdate, updateState]); (0, _react.useEffect)(function () { jQuery(buttonRef.current).elementorConnect({ success: function success(event, data) { handleCoreConnectionLogic(event, data); if (successCallback) { successCallback(event, data); } else { defaultConnectSuccessCallback(); } }, error: function error() { if (errorCallback) { errorCallback(); } }, popup: { width: 726, height: 534 } }); }, [buttonRef, successCallback, errorCallback, handleCoreConnectionLogic, defaultConnectSuccessCallback]); return null; } Connect.propTypes = { buttonRef: PropTypes.object.isRequired, successCallback: PropTypes.func, errorCallback: PropTypes.func }; /***/ }), /***/ "../app/modules/onboarding/assets/js/utils/modules/onboarding-tracker.js": /*!*******************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/utils/modules/onboarding-tracker.js ***! \*******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "ONBOARDING_STEP_NAMES", ({ enumerable: true, get: function get() { return _eventDispatcher.ONBOARDING_STEP_NAMES; } })); Object.defineProperty(exports, "ONBOARDING_STORAGE_KEYS", ({ enumerable: true, get: function get() { return _storageManager.ONBOARDING_STORAGE_KEYS; } })); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js")); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js")); var _eventsConfig = _interopRequireDefault(__webpack_require__(/*! ../../../../../../../core/common/modules/events-manager/assets/js/events-config */ "../core/common/modules/events-manager/assets/js/events-config.js")); var _storageManager = _interopRequireWildcard(__webpack_require__(/*! ./storage-manager.js */ "../app/modules/onboarding/assets/js/utils/modules/storage-manager.js")); var _eventDispatcher = _interopRequireWildcard(__webpack_require__(/*! ./event-dispatcher.js */ "../app/modules/onboarding/assets/js/utils/modules/event-dispatcher.js")); var _timingManager = _interopRequireDefault(__webpack_require__(/*! ./timing-manager.js */ "../app/modules/onboarding/assets/js/utils/modules/timing-manager.js")); var _postOnboardingTracker = _interopRequireDefault(__webpack_require__(/*! ./post-onboarding-tracker.js */ "../app/modules/onboarding/assets/js/utils/modules/post-onboarding-tracker.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } 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; } 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) { (0, _defineProperty2.default)(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; } var OnboardingTracker = /*#__PURE__*/function () { function OnboardingTracker() { (0, _classCallCheck2.default)(this, OnboardingTracker); this.initializeEventConfigs(); this.initializeEventListeners(); } return (0, _createClass2.default)(OnboardingTracker, [{ key: "initializeEventConfigs", value: function initializeEventConfigs() { this.EVENT_CONFIGS = { SKIP: { eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.SKIP, storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_SKIP, basePayload: { location: 'plugin_onboarding', trigger: 'skip_clicked' }, payloadBuilder: function payloadBuilder(eventData) { return { action_step: eventData.currentStep, skip_timestamp: eventData.timestamp }; } }, TOP_UPGRADE: { eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.TOP_UPGRADE, storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE, isArray: true, basePayload: { location: 'plugin_onboarding', trigger: 'upgrade_interaction' }, payloadBuilder: function payloadBuilder(eventData) { return { action_step: eventData.currentStep, upgrade_clicked: eventData.upgradeClicked }; } }, CREATE_MY_ACCOUNT: { eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.CREATE_MY_ACCOUNT, storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_MY_ACCOUNT, basePayload: { location: 'plugin_onboarding', trigger: 'upgrade_interaction' }, payloadBuilder: function payloadBuilder(eventData) { return { action_step: eventData.currentStep, create_account_clicked: eventData.createAccountClicked }; } }, CREATE_ACCOUNT_STATUS: { eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.CREATE_ACCOUNT_STATUS, storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_ACCOUNT_STATUS, basePayload: { location: 'plugin_onboarding', trigger: 'create_flow_returns_status' }, payloadBuilder: function payloadBuilder(eventData) { return { onboarding_create_account_status: eventData.status }; } }, CONNECT_STATUS: { eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.CONNECT_STATUS, storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CONNECT_STATUS, basePayload: { location: 'plugin_onboarding', trigger: 'connect_flow_returns_status' }, payloadBuilder: function payloadBuilder(eventData) { return { onboarding_connect_status: eventData.status, tracking_opted_in: eventData.trackingOptedIn, user_tier: eventData.userTier }; }, stepOverride: 1, stepNameOverride: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT }, STEP1_CLICKED_CONNECT: { eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP1_CLICKED_CONNECT, storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_CLICKED_CONNECT, basePayload: { location: 'plugin_onboarding', trigger: _eventsConfig.default.triggers.click }, payloadBuilder: function payloadBuilder() { return {}; }, stepOverride: 1, stepNameOverride: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT }, STEP1_END_STATE: { eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP1_END_STATE, storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_END_STATE, isRawPayload: true, payloadBuilder: function payloadBuilder(eventData) { return eventData; } }, EXIT_BUTTON: { eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.EXIT_BUTTON, storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXIT_BUTTON, basePayload: { location: 'plugin_onboarding', trigger: 'exit_button_clicked' }, payloadBuilder: function payloadBuilder(eventData) { return { action_step: eventData.currentStep }; } } }; } }, { key: "initializeEventListeners", value: function initializeEventListeners() { var _this = this; if ('undefined' === typeof document) { return; } document.addEventListener('click', function (event) { var cardGridElement = event.target.closest('.e-onboarding__cards-grid'); if (cardGridElement) { _this.handleStep4CardClick(event); } }, true); this.setupUrlChangeDetection(); } }, { key: "setupUrlChangeDetection", value: function setupUrlChangeDetection() { var _this2 = this; var lastUrl = window.location.href; var urlChangeDetector = function urlChangeDetector() { var currentUrl = window.location.href; if (currentUrl !== lastUrl) { var isStep4 = currentUrl.includes('goodToGo') || currentUrl.includes('step4') || currentUrl.includes('site_starter'); if (isStep4) { setTimeout(function () { _timingManager.default.trackStepStartTime(4); _this2.checkAndSendReturnToStep4(); }, 100); } lastUrl = currentUrl; } }; setInterval(urlChangeDetector, 500); window.addEventListener('popstate', function () { setTimeout(urlChangeDetector, 100); }); } }, { key: "dispatchEvent", value: function dispatchEvent(eventName, payload) { return _eventDispatcher.default.dispatch(eventName, payload); } }, { key: "sendEventOrStore", value: function sendEventOrStore(eventType, eventData) { if ('TOP_UPGRADE' === eventType && 'no_click' !== eventData.upgradeClicked) { var stepNumber = this.getStepNumber(eventData.currentStep); this.markUpgradeClickSent(stepNumber); } if (_eventDispatcher.default.canSendEvents()) { return this.sendEventDirect(eventType, eventData); } this.storeEventForLater(eventType, eventData); } }, { key: "sendEventDirect", value: function sendEventDirect(eventType, eventData) { var config = this.EVENT_CONFIGS[eventType]; if (!config) { return; } if (config.isRawPayload) { return this.dispatchEvent(config.eventName, eventData); } var stepNumber = config.stepOverride || this.getStepNumber(eventData.currentStep); var stepName = config.stepNameOverride || this.getStepName(stepNumber); var eventPayload = _eventDispatcher.default.createStepEventPayload(stepNumber, stepName, _objectSpread(_objectSpread({}, config.basePayload), config.payloadBuilder(eventData))); return this.dispatchEvent(config.eventName, eventPayload); } }, { key: "storeEventForLater", value: function storeEventForLater(eventType, eventData) { var config = this.EVENT_CONFIGS[eventType]; if (!config) { return; } var dataWithTimestamp = _objectSpread(_objectSpread({}, eventData), {}, { timestamp: _timingManager.default.getCurrentTime() }); if (config.isArray) { var existingEvents = _storageManager.default.getArray(config.storageKey); existingEvents.push(dataWithTimestamp); _storageManager.default.setObject(config.storageKey, existingEvents); } else { _storageManager.default.setObject(config.storageKey, dataWithTimestamp); } } }, { key: "sendStoredEvent", value: function sendStoredEvent(eventType) { var _this3 = this; var config = this.EVENT_CONFIGS[eventType]; if (!config) { return; } var storedData = config.isArray ? _storageManager.default.getArray(config.storageKey) : _storageManager.default.getObject(config.storageKey); if (!storedData || config.isArray && 0 === storedData.length) { return; } var processEvent = function processEvent(eventData) { if (config.isRawPayload) { _this3.dispatchEvent(config.eventName, eventData); return; } var stepNumber = config.stepOverride || _this3.getStepNumber(eventData.currentStep); var stepName = config.stepNameOverride || _this3.getStepName(stepNumber); var eventPayload = _eventDispatcher.default.createStepEventPayload(stepNumber, stepName, _objectSpread(_objectSpread({}, config.basePayload), config.payloadBuilder(eventData))); _this3.dispatchEvent(config.eventName, eventPayload); }; if (config.isArray) { storedData.forEach(processEvent); } else { processEvent(storedData); } _storageManager.default.remove(config.storageKey); } }, { key: "updateLibraryConnectConfig", value: function updateLibraryConnectConfig(data) { if (!elementorCommon.config.library_connect) { return; } elementorCommon.config.library_connect.is_connected = true; elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0; elementorCommon.config.library_connect.current_access_tier = data.access_tier; elementorCommon.config.library_connect.plan_type = data.plan_type; elementorCommon.config.library_connect.user_id = data.user_id || null; } }, { key: "sendUpgradeNowStep3", value: function sendUpgradeNowStep3(selectedFeatures, currentStep) { var proFeaturesChecked = this.extractSelectedFeatureKeys(selectedFeatures); return _eventDispatcher.default.dispatchStepEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.UPGRADE_NOW_S3, currentStep, _eventDispatcher.ONBOARDING_STEP_NAMES.PRO_FEATURES, { location: 'plugin_onboarding', trigger: _eventsConfig.default.triggers.click, pro_features_checked: proFeaturesChecked }); } }, { key: "extractSelectedFeatureKeys", value: function extractSelectedFeatureKeys(selectedFeatures) { if (!selectedFeatures || !Array.isArray(selectedFeatures)) { return []; } return selectedFeatures.filter(function (feature) { return feature && feature.is_checked; }).map(function (feature) { return feature.key; }).filter(function (key) { return key; }); } }, { key: "sendHelloBizContinue", value: function sendHelloBizContinue(stepNumber) { if (_eventDispatcher.default.canSendEvents()) { return _eventDispatcher.default.dispatchStepEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.HELLO_BIZ_CONTINUE, stepNumber, _eventDispatcher.ONBOARDING_STEP_NAMES.HELLO_BIZ, { location: 'plugin_onboarding', trigger: _eventsConfig.default.triggers.click }); } } }, { key: "sendTopUpgrade", value: function sendTopUpgrade(currentStep, upgradeClicked) { return this.sendEventOrStore('TOP_UPGRADE', { currentStep: currentStep, upgradeClicked: upgradeClicked }); } }, { key: "cancelDelayedNoClickEvent", value: function cancelDelayedNoClickEvent() { _storageManager.default.remove(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE_NO_CLICK); } }, { key: "initiateCoreOnboarding", value: function initiateCoreOnboarding() { _timingManager.default.clearStaleSessionData(); _timingManager.default.initializeOnboardingStartTime(); } }, { key: "sendCoreOnboardingInitiated", value: function sendCoreOnboardingInitiated() { var startTime = _timingManager.default.initializeOnboardingStartTime(); var currentTime = _timingManager.default.getCurrentTime(); var totalOnboardingTime = Math.round((currentTime - startTime) / 1000); var eventData = _timingManager.default.addTimingToEventData({ location: 'plugin_onboarding', trigger: 'core_onboarding_initiated', step_number: 1, step_name: _eventDispatcher.ONBOARDING_STEP_NAMES.ONBOARDING_START, onboarding_start_time: startTime, total_onboarding_time_seconds: totalOnboardingTime }); this.dispatchEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.CORE_ONBOARDING, eventData); _storageManager.default.remove(_storageManager.ONBOARDING_STORAGE_KEYS.INITIATED); } }, { key: "storeSiteStarterChoice", value: function storeSiteStarterChoice(siteStarter) { var choiceData = { site_starter: siteStarter, timestamp: _timingManager.default.getCurrentTime(), return_event_sent: false }; _storageManager.default.setObject(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE, choiceData); } }, { key: "checkAndSendReturnToStep4", value: function checkAndSendReturnToStep4() { var choiceData = _storageManager.default.getObject(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE); if (!choiceData) { return; } if (!choiceData.return_event_sent) { var returnEventPayload = _eventDispatcher.default.createStepEventPayload(4, _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER, { location: 'plugin_onboarding', trigger: 'user_returns_to_onboarding', return_to_onboarding: choiceData.site_starter, original_choice_timestamp: choiceData.timestamp }); this.dispatchEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.STEP4_RETURN_STEP4, returnEventPayload); choiceData.return_event_sent = true; _storageManager.default.setObject(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE, choiceData); } } }, { key: "handleSiteStarterChoice", value: function handleSiteStarterChoice(siteStarter) { _timingManager.default.trackStepStartTime(4); this.storeSiteStarterChoice(siteStarter); this.trackStepAction(4, 'site_starter', { source_type: siteStarter }); this.sendStepEndState(4); } }, { key: "storeExitEventForLater", value: function storeExitEventForLater(exitType, currentStep) { var exitData = { exitType: exitType, currentStep: currentStep, timestamp: _timingManager.default.getCurrentTime() }; _storageManager.default.setObject(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXIT, exitData); } }, { key: "checkAndSendEditorLoadedFromOnboarding", value: function checkAndSendEditorLoadedFromOnboarding() { return _postOnboardingTracker.default.checkAndSendEditorLoadedFromOnboarding(); } }, { key: "sendExitButtonEvent", value: function sendExitButtonEvent(currentStep) { var stepNumber = this.getStepNumber(currentStep); this.trackStepAction(stepNumber, 'exit_button'); this.sendStepEndState(stepNumber); return this.sendEventOrStore('EXIT_BUTTON', { currentStep: currentStep }); } }, { key: "trackStepAction", value: function trackStepAction(stepNumber, action) { var additionalData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var stepConfig = this.getStepConfig(stepNumber); if (stepConfig) { this.trackStepActionInternal(stepNumber, action, stepConfig.storageKey, additionalData); } } }, { key: "sendStepEndState", value: function sendStepEndState(stepNumber) { var stepConfig = this.getStepConfig(stepNumber); if (stepConfig) { this.sendStepEndStateInternal(stepNumber, stepConfig.storageKey, stepConfig.eventName, stepConfig.stepName, stepConfig.endStateProperty); } } }, { key: "trackStepActionInternal", value: function trackStepActionInternal(stepNumber, action, storageKey) { var additionalData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; // Always store the action, regardless of global timing availability var existingActions = _storageManager.default.getArray(storageKey); var actionData = _objectSpread({ action: action, timestamp: _timingManager.default.getCurrentTime() }, additionalData); existingActions.push(actionData); _storageManager.default.setObject(storageKey, existingActions); } }, { key: "sendStepEndStateInternal", value: function sendStepEndStateInternal(stepNumber, storageKey, eventName, stepName, endStateProperty) { var actions = _storageManager.default.getArray(storageKey); if (0 === actions.length) { return; } var eventData = _eventDispatcher.default.createStepEventPayload(stepNumber, stepName, { location: 'plugin_onboarding', trigger: 'user_redirects_out_of_step' }); eventData = _timingManager.default.addTimingToEventData(eventData, stepNumber); var filteredActions = actions.filter(function (action) { return 'upgrade_hover' !== action.action && 'upgrade_topbar' !== action.action && 'upgrade_now' !== action.action && 'upgrade_already_pro' !== action.action; }); eventData[endStateProperty] = filteredActions; if (_eventDispatcher.default.canSendEvents()) { this.sendHoverEventsFromStepActions(actions, stepNumber); this.dispatchEvent(eventName, eventData); _storageManager.default.remove(storageKey); _timingManager.default.clearStepStartTime(stepNumber); } else if (1 === stepNumber) { this.storeStep1EndStateForLater(eventData, storageKey); } else { this.sendHoverEventsFromStepActions(actions, stepNumber); this.dispatchEvent(eventName, eventData); _storageManager.default.remove(storageKey); _timingManager.default.clearStepStartTime(stepNumber); } } }, { key: "getStepNumber", value: function getStepNumber(pageId) { if (this.isNumericPageId(pageId)) { return pageId; } if (this.isStringNumericPageId(pageId)) { return this.convertStringToNumber(pageId); } return this.mapPageIdToStepNumber(pageId); } }, { key: "isNumericPageId", value: function isNumericPageId(pageId) { return 'number' === typeof pageId; } }, { key: "isStringNumericPageId", value: function isStringNumericPageId(pageId) { return 'string' === typeof pageId && !isNaN(pageId); } }, { key: "convertStringToNumber", value: function convertStringToNumber(pageId) { return parseInt(pageId, 10); } }, { key: "mapPageIdToStepNumber", value: function mapPageIdToStepNumber(pageId) { var stepMappings = this.getStepMappings(); var mappedStep = stepMappings[pageId]; return mappedStep || null; } }, { key: "getStepMappings", value: function getStepMappings() { return { account: 1, connect: 1, hello: 2, hello_biz: 2, chooseFeatures: 3, pro_features: 3, site_starter: 4, goodToGo: 4, siteName: 5, siteLogo: 6 }; } }, { key: "getStepName", value: function getStepName(stepNumber) { var stepNames = { 1: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT, 2: _eventDispatcher.ONBOARDING_STEP_NAMES.HELLO_BIZ, 3: _eventDispatcher.ONBOARDING_STEP_NAMES.PRO_FEATURES, 4: _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER, 5: _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_NAME, 6: _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_LOGO }; return stepNames[stepNumber] || 'unknown'; } }, { key: "getStepConfig", value: function getStepConfig(stepNumber) { var stepConfigs = { 1: { storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.STEP1_ACTIONS, eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP1_END_STATE, stepName: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT, endStateProperty: 'step1_actions' }, 2: { storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_ACTIONS, eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP2_END_STATE, stepName: _eventDispatcher.ONBOARDING_STEP_NAMES.HELLO_BIZ, endStateProperty: 'step2_actions' }, 3: { storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_ACTIONS, eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP3_END_STATE, stepName: _eventDispatcher.ONBOARDING_STEP_NAMES.PRO_FEATURES, endStateProperty: 'step3_actions' }, 4: { storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_ACTIONS, eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP4_END_STATE, stepName: _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER, endStateProperty: 'step4_actions' } }; return stepConfigs[stepNumber] || null; } }, { key: "sendConnectionSuccessEvents", value: function sendConnectionSuccessEvents(data) { this.sendCoreOnboardingInitiated(); this.sendAppropriateStatusEvent('success', data); this.sendAllStoredEvents(); } }, { key: "sendConnectionFailureEvents", value: function sendConnectionFailureEvents() { this.sendAppropriateStatusEvent('fail'); } }, { key: "sendAppropriateStatusEvent", value: function sendAppropriateStatusEvent(status) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var hasCreateAccountAction = _storageManager.default.exists(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_MY_ACCOUNT); var hasConnectAction = _storageManager.default.exists(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_CLICKED_CONNECT); if (hasCreateAccountAction) { this.sendEventDirect('CREATE_ACCOUNT_STATUS', { status: status, currentStep: 1 }); } else if (hasConnectAction) { if (data) { this.sendEventDirect('CONNECT_STATUS', { status: status, trackingOptedIn: data.tracking_opted_in, userTier: data.access_tier }); } else { this.sendEventDirect('CONNECT_STATUS', { status: status, trackingOptedIn: false, userTier: null }); } } else if (data) { this.sendEventDirect('CONNECT_STATUS', { status: status, trackingOptedIn: data.tracking_opted_in, userTier: data.access_tier }); } else { this.sendEventDirect('CONNECT_STATUS', { status: status, trackingOptedIn: false, userTier: null }); } } }, { key: "sendAllStoredEvents", value: function sendAllStoredEvents() { this.sendStoredEvent('SKIP'); this.sendStoredEvent('TOP_UPGRADE'); this.sendStoredEvent('CREATE_MY_ACCOUNT'); this.sendStoredEvent('CREATE_ACCOUNT_STATUS'); this.sendStoredEvent('CONNECT_STATUS'); this.sendStoredEvent('STEP1_CLICKED_CONNECT'); this.sendStoredEvent('STEP1_END_STATE'); this.sendStoredEvent('EXIT_BUTTON'); } }, { key: "handleStep4CardClick", value: function handleStep4CardClick() { var hasPreviousClick = _storageManager.default.exists(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_HAS_PREVIOUS_CLICK); if (hasPreviousClick) { this.checkAndSendReturnToStep4(); } else { _storageManager.default.setString(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_HAS_PREVIOUS_CLICK, 'true'); } } }, { key: "setupAllUpgradeButtons", value: function setupAllUpgradeButtons(currentStep) { var _this4 = this; var upgradeButtons = document.querySelectorAll('.elementor-button[href*="upgrade"], .e-btn[href*="upgrade"], .eps-button[href*="upgrade"]'); upgradeButtons.forEach(function (button) { _this4.setupSingleUpgradeButton(button, currentStep); }); return upgradeButtons.length; } }, { key: "setupSingleUpgradeButton", value: function setupSingleUpgradeButton(buttonElement, currentStep) { var _this5 = this; if (!this.isValidButtonElement(buttonElement)) { return null; } this.cleanupButtonTracking(buttonElement); if (this.isButtonAlreadyTrackedForStep(buttonElement, currentStep)) { return null; } this.markButtonAsTracked(buttonElement, currentStep); var eventHandlers = this.createUpgradeButtonEventHandlers(buttonElement, currentStep); this.attachEventHandlersToButton(buttonElement, eventHandlers); return function () { _this5.cleanupButtonTracking(buttonElement); }; } }, { key: "isValidButtonElement", value: function isValidButtonElement(buttonElement) { return !!buttonElement; } }, { key: "isButtonAlreadyTrackedForStep", value: function isButtonAlreadyTrackedForStep(buttonElement, currentStep) { var existingStep = buttonElement.dataset.onboardingStep; return buttonElement.dataset.onboardingTracked && existingStep === currentStep; } }, { key: "markButtonAsTracked", value: function markButtonAsTracked(buttonElement, currentStep) { buttonElement.dataset.onboardingTracked = 'true'; buttonElement.dataset.onboardingStep = currentStep; } }, { key: "createUpgradeButtonEventHandlers", value: function createUpgradeButtonEventHandlers(buttonElement, currentStep) { var _this6 = this; var hasClicked = false; var hasHovered = false; var handleMouseEnter = function handleMouseEnter() { if (!hasHovered) { hasHovered = true; _this6.trackUpgradeHoverAction(currentStep, buttonElement); } }; var handleMouseLeave = function handleMouseLeave() {}; var handleClick = function handleClick() { if (_this6.preventDuplicateClick(hasClicked)) { return; } hasClicked = true; _this6.sendUpgradeClickEvent(buttonElement, currentStep); }; return { handleMouseEnter: handleMouseEnter, handleMouseLeave: handleMouseLeave, handleClick: handleClick }; } }, { key: "preventDuplicateClick", value: function preventDuplicateClick(hasClicked) { return hasClicked; } }, { key: "sendUpgradeClickEvent", value: function sendUpgradeClickEvent(buttonElement, currentStep) { var upgradeClickedValue = this.determineUpgradeClickedValue(buttonElement); this.sendEventOrStore('TOP_UPGRADE', { currentStep: currentStep, upgradeClicked: upgradeClickedValue }); } }, { key: "trackUpgradeHoverAction", value: function trackUpgradeHoverAction(currentStep, buttonElement) { var stepNumber = this.getStepNumber(currentStep); if (!stepNumber) { return; } var upgradeHoverValue = this.determineUpgradeClickedValue(buttonElement); this.trackStepAction(stepNumber, 'upgrade_hover', { upgrade_hovered: upgradeHoverValue, hover_timestamp: _timingManager.default.getCurrentTime() }); } }, { key: "sendHoverEventsFromStepActions", value: function sendHoverEventsFromStepActions(actions, stepNumber) { var _this7 = this; var hoverActions = actions.filter(function (action) { return 'upgrade_hover' === action.action; }); if (0 === hoverActions.length) { return; } var hasUpgradeClickInActions = actions.some(function (action) { return 'upgrade_topbar' === action.action || 'upgrade_tooltip' === action.action || 'upgrade_now' === action.action || 'upgrade_already_pro' === action.action; }); var hasStoredClickEvent = this.hasExistingUpgradeClickEvent(stepNumber); var hasClickBeenSent = this.hasUpgradeClickBeenSent(stepNumber); if (hasUpgradeClickInActions || hasStoredClickEvent || hasClickBeenSent) { return; } hoverActions.forEach(function (hoverAction) { _this7.sendEventOrStore('TOP_UPGRADE', { currentStep: stepNumber, upgradeClicked: 'no_click', upgradeHovered: hoverAction.upgrade_hovered, hoverTimestamp: hoverAction.hover_timestamp }); }); } }, { key: "markUpgradeClickSent", value: function markUpgradeClickSent(stepNumber) { if (!this.sentUpgradeClicks) { this.sentUpgradeClicks = new Set(); } this.sentUpgradeClicks.add(stepNumber); } }, { key: "hasUpgradeClickBeenSent", value: function hasUpgradeClickBeenSent(stepNumber) { return this.sentUpgradeClicks && this.sentUpgradeClicks.has(stepNumber); } }, { key: "hasExistingUpgradeClickEvent", value: function hasExistingUpgradeClickEvent(stepNumber) { var _this8 = this; var config = this.EVENT_CONFIGS.TOP_UPGRADE; var storedEvents = _storageManager.default.getArray(config.storageKey); return storedEvents.some(function (event) { var eventStepNumber = _this8.getStepNumber(event.currentStep); return eventStepNumber === stepNumber && event.upgradeClicked && 'no_click' !== event.upgradeClicked; }); } }, { key: "attachEventHandlersToButton", value: function attachEventHandlersToButton(buttonElement, eventHandlers) { var handleMouseEnter = eventHandlers.handleMouseEnter, handleMouseLeave = eventHandlers.handleMouseLeave, handleClick = eventHandlers.handleClick; buttonElement._onboardingHandlers = { mouseenter: handleMouseEnter, mouseleave: handleMouseLeave, click: handleClick }; buttonElement.addEventListener('mouseenter', handleMouseEnter); buttonElement.addEventListener('mouseleave', handleMouseLeave); buttonElement.addEventListener('click', handleClick); } }, { key: "cleanupButtonTracking", value: function cleanupButtonTracking(buttonElement) { if (!buttonElement) { return; } this.removeExistingEventHandlers(buttonElement); this.clearTrackingDataAttributes(buttonElement); } }, { key: "removeExistingEventHandlers", value: function removeExistingEventHandlers(buttonElement) { if (buttonElement._onboardingHandlers) { var handlers = buttonElement._onboardingHandlers; buttonElement.removeEventListener('mouseenter', handlers.mouseenter); buttonElement.removeEventListener('mouseleave', handlers.mouseleave); buttonElement.removeEventListener('click', handlers.click); delete buttonElement._onboardingHandlers; } } }, { key: "clearTrackingDataAttributes", value: function clearTrackingDataAttributes(buttonElement) { delete buttonElement.dataset.onboardingTracked; delete buttonElement.dataset.onboardingStep; } }, { key: "determineUpgradeClickedValue", value: function determineUpgradeClickedValue(buttonElement) { var _elementorCommon$conf, _elementorCommon$conf2; if ((_elementorCommon$conf = elementorCommon.config.library_connect) !== null && _elementorCommon$conf !== void 0 && _elementorCommon$conf.is_connected && 'pro' === ((_elementorCommon$conf2 = elementorCommon.config.library_connect) === null || _elementorCommon$conf2 === void 0 ? void 0 : _elementorCommon$conf2.current_access_tier)) { return 'already_pro_user'; } if (buttonElement.closest('.e-app__popover') || buttonElement.closest('.elementor-tooltip') || buttonElement.closest('.e-onboarding__go-pro-content')) { return 'on_tooltip'; } if (buttonElement.closest('.eps-app__header')) { return 'on_topbar'; } return 'on_topbar'; } }, { key: "trackExitAndSendEndState", value: function trackExitAndSendEndState(currentStep) { this.trackStepAction(currentStep, 'exit'); this.sendStepEndState(currentStep); } }, { key: "storeStep1EndStateForLater", value: function storeStep1EndStateForLater(eventData, storageKey) { this.storeEventForLater('STEP1_END_STATE', eventData); _storageManager.default.remove(storageKey); } }, { key: "onStepLoad", value: function onStepLoad(currentStep) { _timingManager.default.trackStepStartTime(this.getStepNumber(currentStep)); if (2 === this.getStepNumber(currentStep) || 'hello' === currentStep || 'hello_biz' === currentStep) { this.sendStoredStep1EventsOnStep2(); } if (4 === this.getStepNumber(currentStep) || 'goodToGo' === currentStep) { this.checkAndSendReturnToStep4(); } } }, { key: "sendStoredStep1EventsOnStep2", value: function sendStoredStep1EventsOnStep2() { this.sendStoredEvent('STEP1_CLICKED_CONNECT'); var step1Actions = _storageManager.default.getArray(_storageManager.ONBOARDING_STORAGE_KEYS.STEP1_ACTIONS); if (step1Actions.length > 0) { this.sendHoverEventsFromStepActions(step1Actions, 1); } this.sendStoredEvent('STEP1_END_STATE'); } }, { key: "setupPostOnboardingClickTracking", value: function setupPostOnboardingClickTracking() { return _postOnboardingTracker.default.setupPostOnboardingClickTracking(); } }, { key: "cleanupPostOnboardingTracking", value: function cleanupPostOnboardingTracking() { return _postOnboardingTracker.default.cleanupPostOnboardingTracking(); } }, { key: "clearAllOnboardingStorage", value: function clearAllOnboardingStorage() { return _postOnboardingTracker.default.clearAllOnboardingStorage(); } }]); }(); var onboardingTracker = new OnboardingTracker(); var _default = exports["default"] = onboardingTracker; /***/ }), /***/ "../app/modules/onboarding/assets/js/utils/modules/timing-manager.js": /*!***************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/utils/modules/timing-manager.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.addTimingToEventData = addTimingToEventData; exports.calculateStepTimeSpent = calculateStepTimeSpent; exports.calculateTotalTimeSpent = calculateTotalTimeSpent; exports.clearStaleSessionData = clearStaleSessionData; exports.clearStepStartTime = clearStepStartTime; exports.createTimeSpentData = createTimeSpentData; exports["default"] = void 0; exports.formatTimeForEvent = formatTimeForEvent; exports.getCurrentTime = getCurrentTime; exports.getOnboardingStartTime = getOnboardingStartTime; exports.hasOnboardingStarted = hasOnboardingStarted; exports.initializeOnboardingStartTime = initializeOnboardingStartTime; exports.isWithinTimeThreshold = isWithinTimeThreshold; exports.trackStepStartTime = trackStepStartTime; var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _storageManager = _interopRequireWildcard(__webpack_require__(/*! ./storage-manager.js */ "../app/modules/onboarding/assets/js/utils/modules/storage-manager.js")); var StorageManager = _storageManager; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } 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; } 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) { (0, _defineProperty2.default)(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; } function getCurrentTime() { return Date.now(); } function initializeOnboardingStartTime() { var startTime = getCurrentTime(); StorageManager.setNumber(_storageManager.ONBOARDING_STORAGE_KEYS.START_TIME, startTime); StorageManager.setString(_storageManager.ONBOARDING_STORAGE_KEYS.INITIATED, 'true'); return startTime; } function getOnboardingStartTime() { return StorageManager.getNumber(_storageManager.ONBOARDING_STORAGE_KEYS.START_TIME); } function hasOnboardingStarted() { return StorageManager.exists(_storageManager.ONBOARDING_STORAGE_KEYS.START_TIME); } function trackStepStartTime(stepNumber) { var existingStartTime = StorageManager.getStepStartTime(stepNumber); if (existingStartTime) { return existingStartTime; } var currentTime = getCurrentTime(); StorageManager.setStepStartTime(stepNumber, currentTime); return currentTime; } function calculateStepTimeSpent(stepNumber) { var stepStartTime = StorageManager.getStepStartTime(stepNumber); if (!stepStartTime) { return null; } var currentTime = getCurrentTime(); var stepTimeSpent = Math.round((currentTime - stepStartTime) / 1000); return stepTimeSpent; } function clearStepStartTime(stepNumber) { StorageManager.clearStepStartTime(stepNumber); } function calculateTotalTimeSpent() { var startTime = getOnboardingStartTime(); if (!startTime) { return null; } var currentTime = getCurrentTime(); var timeSpent = Math.round((currentTime - startTime) / 1000); return { startTime: startTime, currentTime: currentTime, timeSpent: timeSpent }; } function formatTimeForEvent(timeInSeconds) { if (null === timeInSeconds || timeInSeconds === undefined) { return null; } return "".concat(timeInSeconds, "s"); } function createTimeSpentData() { var stepNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var totalTimeData = calculateTotalTimeSpent(); var result = {}; if (totalTimeData) { result.time_spent = formatTimeForEvent(totalTimeData.timeSpent); result.total_onboarding_time_seconds = totalTimeData.timeSpent; result.onboarding_start_time = totalTimeData.startTime; } if (stepNumber) { var stepTimeSpent = calculateStepTimeSpent(stepNumber); if (stepTimeSpent !== null) { result.step_time_spent = formatTimeForEvent(stepTimeSpent); } } return Object.keys(result).length > 0 ? result : null; } function addTimingToEventData(eventData) { var stepNumber = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var timingData = createTimeSpentData(stepNumber); if (timingData) { return _objectSpread(_objectSpread({}, eventData), timingData); } return eventData; } function clearStaleSessionData() { var recentStepStartTimes = []; var currentTime = getCurrentTime(); var recentStepStartTimeThresholdMs = 5000; [_storageManager.ONBOARDING_STORAGE_KEYS.STEP1_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_START_TIME].forEach(function (key) { var value = StorageManager.getString(key); if (value) { var timestamp = parseInt(value, 10); var age = currentTime - timestamp; if (age < recentStepStartTimeThresholdMs) { recentStepStartTimes.push(key); } } }); var keysToRemove = [_storageManager.ONBOARDING_STORAGE_KEYS.START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.INITIATED, _storageManager.ONBOARDING_STORAGE_KEYS.STEP1_ACTIONS, _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_ACTIONS, _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_ACTIONS, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_ACTIONS, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_HAS_PREVIOUS_CLICK, _storageManager.ONBOARDING_STORAGE_KEYS.EDITOR_LOAD_TRACKED, _storageManager.ONBOARDING_STORAGE_KEYS.POST_ONBOARDING_CLICK_COUNT, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_SKIP, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CONNECT_STATUS, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_ACCOUNT_STATUS, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_MY_ACCOUNT, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE_NO_CLICK, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_CLICKED_CONNECT, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_END_STATE, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXIT_BUTTON, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE_MOUSEOVER]; keysToRemove.forEach(function (key) { if (!recentStepStartTimes.includes(key)) { StorageManager.remove(key); } }); [_storageManager.ONBOARDING_STORAGE_KEYS.STEP1_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_START_TIME].forEach(function (key) { if (!recentStepStartTimes.includes(key)) { StorageManager.remove(key); } }); } function isWithinTimeThreshold(timestamp) { var thresholdMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000; var currentTime = getCurrentTime(); return currentTime - timestamp < thresholdMs; } var TimingManager = { getCurrentTime: getCurrentTime, initializeOnboardingStartTime: initializeOnboardingStartTime, getOnboardingStartTime: getOnboardingStartTime, hasOnboardingStarted: hasOnboardingStarted, trackStepStartTime: trackStepStartTime, calculateStepTimeSpent: calculateStepTimeSpent, clearStepStartTime: clearStepStartTime, calculateTotalTimeSpent: calculateTotalTimeSpent, formatTimeForEvent: formatTimeForEvent, createTimeSpentData: createTimeSpentData, addTimingToEventData: addTimingToEventData, clearStaleSessionData: clearStaleSessionData, isWithinTimeThreshold: isWithinTimeThreshold }; var _default = exports["default"] = TimingManager; /***/ }), /***/ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js": /*!******************************************************************************!*\ !*** ../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "ONBOARDING_STEP_NAMES", ({ enumerable: true, get: function get() { return _onboardingTracker.ONBOARDING_STEP_NAMES; } })); Object.defineProperty(exports, "ONBOARDING_STORAGE_KEYS", ({ enumerable: true, get: function get() { return _onboardingTracker.ONBOARDING_STORAGE_KEYS; } })); exports.OnboardingEventTracking = void 0; var _onboardingTracker = _interopRequireWildcard(__webpack_require__(/*! ./modules/onboarding-tracker.js */ "../app/modules/onboarding/assets/js/utils/modules/onboarding-tracker.js")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var OnboardingEventTracking = exports.OnboardingEventTracking = _onboardingTracker.default; /***/ }), /***/ "../app/modules/onboarding/assets/js/utils/use-button-action.js": /*!**********************************************************************!*\ !*** ../app/modules/onboarding/assets/js/utils/use-button-action.js ***! \**********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = useButtonAction; var _react = __webpack_require__(/*! react */ "react"); var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js"); var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js"); function useButtonAction(pageId, nextPage) { var _useContext = (0, _react.useContext)(_context.OnboardingContext), state = _useContext.state, updateState = _useContext.updateState, getStateObjectToUpdate = _useContext.getStateObjectToUpdate; var navigate = (0, _router.useNavigate)(); var handleAction = function handleAction(action) { var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, action); updateState(stateToUpdate); navigate('onboarding/' + nextPage); }; return { state: state, handleAction: handleAction }; } /***/ }), /***/ "../app/modules/onboarding/assets/js/utils/utils.js": /*!**********************************************************!*\ !*** ../app/modules/onboarding/assets/js/utils/utils.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports.setSelectedFeatureList = exports.safeDispatchEvent = exports.options = void 0; var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); 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; } 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) { (0, _defineProperty2.default)(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; } /** * Checkboxes data. */ var options = exports.options = [{ plan: 'essential', text: __('Templates & Theme Builder', 'elementor') }, { plan: 'advanced', text: __('WooCommerce Builder', 'elementor') }, { plan: 'essential', text: __('Lead Collection & Form Builder', 'elementor') }, { plan: 'essential', text: __('Dynamic Content', 'elementor') }, { plan: 'advanced', text: __('Popup Builder', 'elementor') }, { plan: 'advanced', text: __('Custom Code & CSS', 'elementor') }, { plan: 'essential', text: __('Motion Effects & Animations', 'elementor') }, { plan: 'advanced', text: __('Notes & Collaboration', 'elementor') }]; /** * Set the selected feature list. * @param {Object} param0 * @param {boolean} param0.checked * @param {string} param0.id * @param {string} param0.text * @param {Object} param0.selectedFeatures * @param {Function} param0.setSelectedFeatures */ var setSelectedFeatureList = exports.setSelectedFeatureList = function setSelectedFeatureList(_ref) { var checked = _ref.checked, id = _ref.id, text = _ref.text, selectedFeatures = _ref.selectedFeatures, setSelectedFeatures = _ref.setSelectedFeatures; var tier = id.split('-')[0]; if (checked) { setSelectedFeatures(_objectSpread(_objectSpread({}, selectedFeatures), {}, (0, _defineProperty2.default)({}, tier, [].concat((0, _toConsumableArray2.default)(selectedFeatures[tier]), [text])))); } else { setSelectedFeatures(_objectSpread(_objectSpread({}, selectedFeatures), {}, (0, _defineProperty2.default)({}, tier, selectedFeatures[tier].filter(function (item) { return item !== text; })))); } }; var safeDispatchEvent = exports.safeDispatchEvent = function safeDispatchEvent(eventName, eventData) { try { var _elementorCommon, _elementorCommon$disp; (_elementorCommon = elementorCommon) === null || _elementorCommon === void 0 || (_elementorCommon = _elementorCommon.eventsManager) === null || _elementorCommon === void 0 || (_elementorCommon$disp = _elementorCommon.dispatchEvent) === null || _elementorCommon$disp === void 0 || _elementorCommon$disp.call(_elementorCommon, eventName, eventData); } catch (error) { // Silently fail - don't let tracking break the user experience } }; /***/ }) }]); //# sourceMappingURL=onboarding.50bce36b17131b8d21b7.bundle.js.map
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
packages
---
0755
0d1a75a41cae2a76432a.bundle.js
15095 bytes
0644
152f977e0c1304a3b0db.bundle.js
25561 bytes
0644
4102e11512e21a92ba35.bundle.js
44941 bytes
0644
45f1ae567e48fe3da9b0.bundle.min.js
266 bytes
0644
471f5dab6676072462a8.bundle.js
63415 bytes
0644
8277989eebcfba278cb0.bundle.min.js
36863 bytes
0644
9f88a0d716a691c2448a.bundle.min.js
12958 bytes
0644
a802b9aa6f4b87a294e5.bundle.js
114146 bytes
0644
accordion.28788e18d1d35c23f450.bundle.min.js
3791 bytes
0644
accordion.7b5b5744bdd225280eca.bundle.js
8086 bytes
0644
adbbe9b5d6b520e98e4c.bundle.js
14519 bytes
0644
admin-feedback.js
4612 bytes
0644
admin-feedback.min.js
1953 bytes
0644
admin-modules.js
40021 bytes
0644
admin-modules.min.js
15790 bytes
0644
admin-modules.min.js.LICENSE.txt
163 bytes
0644
admin-notifications.js
76124 bytes
0644
admin-notifications.min.js
14618 bytes
0644
admin-top-bar.js
68476 bytes
0644
admin-top-bar.min.js
11894 bytes
0644
admin.js
119490 bytes
0644
admin.min.js
53919 bytes
0644
admin.min.js.LICENSE.txt
163 bytes
0644
ai-admin.js
1983231 bytes
0644
ai-admin.min.js
610136 bytes
0644
ai-admin.min.js.LICENSE.txt
525 bytes
0644
ai-gutenberg.js
2117801 bytes
0644
ai-gutenberg.min.js
639331 bytes
0644
ai-gutenberg.min.js.LICENSE.txt
686 bytes
0644
ai-layout.js
502182 bytes
0644
ai-layout.min.js
189604 bytes
0644
ai-layout.min.js.LICENSE.txt
163 bytes
0644
ai-media-library.js
2100165 bytes
0644
ai-media-library.min.js
633969 bytes
0644
ai-media-library.min.js.LICENSE.txt
686 bytes
0644
ai-unify-product-images.js
2096482 bytes
0644
ai-unify-product-images.min.js
631174 bytes
0644
ai-unify-product-images.min.js.LICENSE.txt
686 bytes
0644
ai.js
2158988 bytes
0644
ai.min.js
657993 bytes
0644
ai.min.js.LICENSE.txt
686 bytes
0644
alert.42cc1d522ef5c60bf874.bundle.min.js
658 bytes
0644
alert.b696182ec6f18a35bc69.bundle.js
1445 bytes
0644
announcements-app.js
115506 bytes
0644
announcements-app.min.js
33629 bytes
0644
announcements-app.min.js.LICENSE.txt
163 bytes
0644
app-loader.js
261264 bytes
0644
app-loader.min.js
90270 bytes
0644
app-packages.js
365452 bytes
0644
app-packages.min.js
124117 bytes
0644
app-packages.min.js.LICENSE.txt
163 bytes
0644
app.js
1350013 bytes
0644
app.min.js
486748 bytes
0644
app.min.js.LICENSE.txt
163 bytes
0644
atomic-widgets-editor.js
96304 bytes
0644
atomic-widgets-editor.min.js
38932 bytes
0644
b96d70044d0d67c2df19.bundle.min.js
23455 bytes
0644
bb8b6cce5ae5b36077e0.bundle.js
92039 bytes
0644
beta-tester.js
21458 bytes
0644
beta-tester.min.js
8862 bytes
0644
cb72c088a03a8e0c21b1.bundle.js
38597 bytes
0644
checklist.js
163260 bytes
0644
checklist.min.js
51007 bytes
0644
checklist.min.js.LICENSE.txt
163 bytes
0644
cloud-library-screenshot.js
37836 bytes
0644
cloud-library-screenshot.min.js
15519 bytes
0644
common-modules.js
330378 bytes
0644
common-modules.min.js
119734 bytes
0644
common.js
1266891 bytes
0644
common.min.js
495602 bytes
0644
common.min.js.LICENSE.txt
163 bytes
0644
contact-buttons.c21325756a91b795f8e4.bundle.js
14886 bytes
0644
contact-buttons.d999c7d620ad8d4132c6.bundle.min.js
8707 bytes
0644
container-converter.js
52011 bytes
0644
container-converter.min.js
18320 bytes
0644
container-editor-handlers.11e3f73cbe2c3c5ffe24.bundle.js
18454 bytes
0644
container-editor-handlers.e7ee82232887ec8b73b7.bundle.min.js
9639 bytes
0644
counter.12335f45aaa79d244f24.bundle.min.js
946 bytes
0644
counter.f359dee9199f5aad06c6.bundle.js
1933 bytes
0644
d47e8857e9e2ae847efb.bundle.min.js
19785 bytes
0644
daedc6797eaad5c82711.bundle.min.js
4100 bytes
0644
dev-tools.js
23856 bytes
0644
dev-tools.min.js
7617 bytes
0644
e-home-screen.js
108705 bytes
0644
e-home-screen.min.js
26848 bytes
0644
e-react-promotions.js
124573 bytes
0644
e-react-promotions.min.js
39680 bytes
0644
e-wc-product-editor.js
107030 bytes
0644
e-wc-product-editor.min.js
17181 bytes
0644
e-wc-product-editor.min.js.LICENSE.txt
160 bytes
0644
e1cb4d726bb59646c677.bundle.min.js
5432 bytes
0644
e5d6feb1b1d6cf52126f.bundle.js
11262 bytes
0644
editor-document.js
71618 bytes
0644
editor-document.min.js
25881 bytes
0644
editor-environment-v2.js
640 bytes
0644
editor-environment-v2.min.js
246 bytes
0644
editor-loader-v1.js
372 bytes
0644
editor-loader-v1.min.js
88 bytes
0644
editor-loader-v2.js
861 bytes
0644
editor-loader-v2.min.js
440 bytes
0644
editor-modules.js
120535 bytes
0644
editor-modules.min.js
49389 bytes
0644
editor-modules.min.js.LICENSE.txt
163 bytes
0644
editor-notifications.js
86637 bytes
0644
editor-notifications.min.js
18442 bytes
0644
editor-v4-opt-in-alphachip.js
59852 bytes
0644
editor-v4-opt-in-alphachip.min.js
8550 bytes
0644
editor-v4-opt-in.js
171195 bytes
0644
editor-v4-opt-in.min.js
53556 bytes
0644
editor-v4-opt-in.min.js.LICENSE.txt
352 bytes
0644
editor-v4-welcome-opt-in.js
60055 bytes
0644
editor-v4-welcome-opt-in.min.js
9075 bytes
0644
editor.js
2949830 bytes
0644
editor.min.js
1240271 bytes
0644
editor.min.js.LICENSE.txt
352 bytes
0644
ef2100ac3eda1a957819.bundle.min.js
5090 bytes
0644
ef3edd287b253495c7d6.bundle.js
1196 bytes
0644
element-manager-admin.js
171804 bytes
0644
element-manager-admin.min.js
46330 bytes
0644
element-manager-admin.min.js.LICENSE.txt
324 bytes
0644
elementor-admin-bar.js
18643 bytes
0644
elementor-admin-bar.min.js
7353 bytes
0644
floating-bars.7efeeb8b098e55999ff1.bundle.js
15148 bytes
0644
floating-bars.a3070326b4333354cbd7.bundle.min.js
7931 bytes
0644
floating-elements-modal.js
34512 bytes
0644
floating-elements-modal.min.js
14518 bytes
0644
frontend-modules.js
211238 bytes
0644
frontend-modules.min.js
59579 bytes
0644
frontend.js
97762 bytes
0644
frontend.min.js
32362 bytes
0644
gutenberg.js
7653 bytes
0644
gutenberg.min.js
4086 bytes
0644
image-carousel.1a3e0c6222562304eed5.bundle.js
945 bytes
0644
image-carousel.6167d20b95b33386757b.bundle.min.js
448 bytes
0644
import-export-admin.js
15085 bytes
0644
import-export-admin.min.js
6321 bytes
0644
import-export-customization-admin.js
25669 bytes
0644
import-export-customization-admin.min.js
14091 bytes
0644
kit-elements-defaults-editor.js
87216 bytes
0644
kit-elements-defaults-editor.min.js
32766 bytes
0644
kit-elements-defaults-editor.min.js.LICENSE.txt
163 bytes
0644
kit-library.0807768c7dddd51542ab.bundle.min.js
111248 bytes
0644
kit-library.ed7fc5d9656556af9353.bundle.js
279236 bytes
0644
lightbox.408665be3d65f6ab17f0.bundle.min.js
28964 bytes
0644
lightbox.875994a349be8712b41c.bundle.js
50118 bytes
0644
media-hints.js
11982 bytes
0644
media-hints.min.js
6162 bytes
0644
nested-accordion.a0f28ea648b29da812a1.bundle.js
19215 bytes
0644
nested-accordion.a29d85d5aa492aef7142.bundle.min.js
9827 bytes
0644
nested-accordion.js
29736 bytes
0644
nested-accordion.min.js
10927 bytes
0644
nested-accordion.min.js.LICENSE.txt
163 bytes
0644
nested-elements.js
20735 bytes
0644
nested-elements.min.js
6450 bytes
0644
nested-tabs.213892f3e7a826d32481.bundle.js
21299 bytes
0644
nested-tabs.a542ad943214eb6c3ed8.bundle.min.js
11429 bytes
0644
nested-tabs.js
29696 bytes
0644
nested-tabs.min.js
10922 bytes
0644
nested-tabs.min.js.LICENSE.txt
163 bytes
0644
nested-title-keyboard-handler.967db65f6ba460c1f2e9.bundle.js
8062 bytes
0644
nested-title-keyboard-handler.fc9d01c2cd0ef46d20fd.bundle.min.js
4358 bytes
0644
new-template.js
15470 bytes
0644
new-template.min.js
6805 bytes
0644
notes.js
24161 bytes
0644
notes.min.js
9110 bytes
0644
onboarding.04e2ac3fd7e2a481e92e.bundle.min.js
89292 bytes
0644
onboarding.50bce36b17131b8d21b7.bundle.js
187228 bytes
0644
pro-free-trial-popup.js
59380 bytes
0644
pro-free-trial-popup.min.js
8534 bytes
0644
progress.0ea083b809812c0e3aa1.bundle.min.js
829 bytes
0644
progress.5d8492a023e85c6cc0e0.bundle.js
1980 bytes
0644
responsive-bar.js
25426 bytes
0644
responsive-bar.min.js
11593 bytes
0644
section-editor-handlers.46a034cbaaa10c6afa92.bundle.js
3498 bytes
0644
section-editor-handlers.c420276353ec5aba196e.bundle.min.js
1788 bytes
0644
section-frontend-handlers.d0665d28b9f0b188fe4f.bundle.js
1047 bytes
0644
section-frontend-handlers.d85ab872da118940910d.bundle.min.js
489 bytes
0644
shared-editor-handlers.22c8f376e58bdba40f71.bundle.js
2608 bytes
0644
shared-editor-handlers.a182e3f9ce3b8b1e4b74.bundle.min.js
1389 bytes
0644
shared-frontend-handlers.4c8abccc3e268b0767b2.bundle.min.js
8525 bytes
0644
shared-frontend-handlers.a82dc0e60728c9cb9860.bundle.js
16268 bytes
0644
styleguide-app-initiator.js
37531 bytes
0644
styleguide-app-initiator.min.js
13412 bytes
0644
styleguide-app-initiator.min.js.LICENSE.txt
163 bytes
0644
styleguide-app.04340244193733d78622.bundle.min.js
26257 bytes
0644
styleguide-app.77392704cadf8bc1ca69.bundle.js
67876 bytes
0644
styleguide.js
99000 bytes
0644
styleguide.min.js
44971 bytes
0644
tabs.1a165c2a54522842b0f1.bundle.min.js
3753 bytes
0644
tabs.e808857358793ac13db5.bundle.js
8013 bytes
0644
text-editor.abc8f59c62f2820dc25a.bundle.min.js
1392 bytes
0644
text-editor.bd4eccbd156d0b1fc3cf.bundle.js
3105 bytes
0644
text-path.ebcd5a983a56266562f3.bundle.min.js
26463 bytes
0644
text-path.ebcd5a983a56266562f3.bundle.min.js.LICENSE.txt
188 bytes
0644
text-path.ffadd93cf796f64a4d61.bundle.js
71164 bytes
0644
toggle.375da8e2f6fed12731c2.bundle.js
8117 bytes
0644
toggle.f7afe5f9f0f912b34b22.bundle.min.js
3821 bytes
0644
video.87291d1f5076f8939c18.bundle.min.js
3271 bytes
0644
video.d862fafddbe5d05459f3.bundle.js
6640 bytes
0644
web-cli.js
496119 bytes
0644
web-cli.min.js
170468 bytes
0644
web-cli.min.js.LICENSE.txt
163 bytes
0644
webpack.runtime.js
16642 bytes
0644
webpack.runtime.min.js
5707 bytes
0644
wp-audio.c91cab3152c3f241f266.bundle.js
797 bytes
0644
wp-audio.c9624cb6e5dc9de86abd.bundle.min.js
366 bytes
0644
youtube-handler.js
4871 bytes
0644
youtube-handler.min.js
1910 bytes
0644
N4ST4R_ID | Naxtarrr