PluginProbe ʕ •ᴥ•ʔ
Elementor Website Builder – more than just a page builder / 3.25.0-beta2
Elementor Website Builder – more than just a page builder v3.25.0-beta2
4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.22.0-dev1 4.0.0-beta3 3.22.0-dev2 4.0.0-beta4 3.22.0-dev3 4.0.0-beta5 3.22.0-dev4 4.0.0-dev1 3.22.0-dev5 4.0.0-dev2 3.22.0-dev6 4.0.0-dev3 3.22.1 4.0.0-dev4 3.22.2 4.0.0-dev5 3.22.3 4.0.1 3.23.0 4.0.2 3.23.0-beta1 3.23.0-beta2 3.23.0-beta3 3.23.0-beta4 3.23.0-beta5 3.23.0-beta6 3.23.0-dev1 3.23.0-dev2 3.23.0-dev3 3.23.0-dev4 3.23.0-dev5 3.23.0-dev6 3.23.1 3.23.2 3.23.3 3.23.4 3.24.0 3.24.0-beta1 3.24.0-beta2 3.24.0-beta3 3.24.0-dev1 3.24.0-dev2 3.24.0-dev3 3.24.1 3.24.2 3.24.3 3.24.4 3.24.5 3.24.6 3.24.7 3.24.8 3.25.0 3.25.0-beta1 3.25.0-beta2 3.25.0-beta3 3.25.0-dev1 3.25.0-dev2 3.25.0-dev3 3.25.1 3.25.10 3.25.11 3.25.2 3.25.3 3.25.4 3.25.5 3.25.6 3.25.7 3.25.8 3.25.9 3.26.0 3.26.0-beta1 3.26.0-beta2 3.26.0-beta3 3.26.0-beta4 3.26.0-beta5 3.26.0-dev1 3.26.0-dev2 3.26.0-dev3 3.26.0-dev4 3.26.0-dev5 3.26.1 3.26.2 3.26.3 3.26.4 3.26.5 3.27.0 3.27.0-beta1 3.27.0-beta2 3.27.0-dev1 3.27.0-dev2 3.27.1 3.27.2 3.27.3 3.27.4 3.27.5 3.27.6 3.27.7 3.28.0 3.28.0-beta1 3.28.0-beta2 3.28.0-beta3 3.28.0-dev1 3.28.0-dev2 3.28.0-dev3 3.28.1 3.28.2 3.28.3 3.28.4 3.29.0 3.29.0-beta1 trunk 3.29.0-beta2 3.0.0 3.29.0-beta3 3.0.1 3.29.0-beta4 3.0.10 3.29.0-dev1 3.0.11 3.29.0-dev2 3.0.12 3.29.0-dev3 3.0.13 3.29.0-dev4 3.0.14 3.29.1 3.0.15 3.29.2 3.0.16 3.3.0 3.0.2 3.3.1 3.0.3 3.30.0 3.0.4 3.30.0-beta1 3.0.5 3.30.0-beta2 3.0.6 3.30.0-beta3 3.0.7 3.30.0-dev1 3.0.8 3.30.0-dev2 3.0.8.1 3.30.0-dev3 3.0.9 3.30.1 3.1.0 3.30.2 3.1.0-beta1 3.30.3 3.1.0-beta2 3.30.4 3.1.0-beta3 3.31.0 3.1.0-beta4 3.31.0-beta1 3.1.0-dev1 3.31.0-beta2 3.1.0-dev2 3.31.0-dev1 3.1.0-dev3 3.31.0-dev2 3.1.1 3.31.1 3.1.2 3.31.2 3.1.3 3.31.3 3.1.4 3.31.4 3.10.0 3.31.5 3.10.0-dev1 3.32.0 3.10.1 3.32.0-beta1 3.10.2 3.32.0-beta2 3.11.0 3.32.0-beta3 3.11.0-beta1 3.32.0-dev1 3.11.0-beta2 3.32.0-dev2 3.11.0-beta3 3.32.0-dev3 3.11.0-dev1 3.32.1 3.11.0-dev2 3.32.2 3.11.0-dev3 3.32.3 3.11.1 3.32.4 3.11.2 3.32.5 3.11.3 3.33.0 3.11.4 3.33.0-beta1 3.11.5 3.33.0-beta2 3.12.0 3.33.0-beta3 3.12.1 3.33.0-beta4 3.12.2 3.33.0-dev1 3.13.0 3.33.0-dev2 3.13.0-beta1 3.33.0-dev3 3.13.0-beta2 3.33.0-dev4 3.13.0-beta3 3.33.1 3.13.0-dev3 3.33.2 3.13.0-dev4 3.33.3 3.13.1 3.33.4 3.13.2 3.33.5 3.13.3 3.33.6 3.13.4 3.34.0 3.14.0 3.34.0-beta1 3.14.0-beta1 3.34.0-beta2 3.14.0-beta2 3.34.0-beta3 3.14.0-beta3 3.34.0-dev1 3.14.0-beta4 3.34.0-dev2 3.14.0-beta5 3.34.1 3.14.1 3.34.2 3.15.0 3.34.3 3.15.1 3.34.4 3.15.2 3.35.0 3.15.3 3.35.0-beta1 3.16.0 3.35.0-beta2 3.16.0-beta3 3.35.0-beta3 3.16.0-beta4 3.35.0-beta4 3.16.0-dev1 3.35.0-dev1 3.16.0-dev2 3.35.0-dev2 3.16.1 3.35.0-dev3 3.16.2 3.35.0-dev4 3.16.3 3.35.1 3.16.4 3.35.2 3.16.5 3.35.3 3.16.6 3.35.4 3.17.0 3.35.5 3.17.0-dev2 3.35.6 3.17.0-dev3 3.35.7 3.17.0-dev4 3.35.8 3.17.1 3.35.9 3.17.2 3.4.0 3.17.3 3.4.0-dev7 3.18.0 3.4.0-dev8 3.18.0-beta1 3.4.0-dev9 3.18.0-beta2 3.4.1 3.18.0-beta3 3.4.2 3.18.0-beta4 3.4.3 3.18.0-dev1 3.4.4 3.18.1 3.4.5 3.18.2 3.4.6 3.18.3 3.4.7 3.19.0 3.4.8 3.19.0-beta1 3.5.0 3.19.0-beta2 3.5.0-beta1 3.19.0-beta3 3.5.0-beta2 3.19.0-beta4 3.5.0-beta3 3.19.0-beta5 3.5.0-beta4 3.19.0-beta6 3.5.0-beta5 3.19.0-dev1 3.5.0-beta7 3.19.0-dev2 3.5.0-beta8 3.19.0-dev3 3.5.0-dev8 3.19.0-dev4 3.5.0-dev9 3.19.0-dev5 3.5.1 3.19.0-dev6 3.5.2 3.19.1 3.5.3 3.19.2 3.5.4 3.19.3 3.5.5 3.19.4 3.5.6 3.2.0 3.6.0 3.2.1 3.6.0-beta1 3.2.2 3.6.0-beta2 3.2.3 3.6.0-beta3 3.2.4 3.6.0-beta4 3.2.5 3.6.0-beta5 3.20.0 3.6.0-dev1 3.20.0-beta1 3.6.0-dev10 3.20.0-beta2 3.6.1 3.20.0-beta3 3.6.2 3.20.0-beta4 3.6.3 3.20.0-dev1 3.6.4 3.20.0-dev2 3.6.5 3.20.0-dev3 3.6.6 3.20.0-dev4 3.6.7 3.20.1 3.6.8 3.20.2 3.7.0 3.20.3 3.7.0-beta1 3.20.4 3.7.0-beta2 3.21.0 3.7.0-beta3 3.21.0-beta1 3.7.0-beta4 3.21.0-beta2 3.7.0-dev1 3.21.0-beta3 3.7.1 3.21.0-dev1 3.7.2 3.21.0-dev2 3.7.3 3.21.0-dev3 3.7.4 3.21.1 3.7.5 3.21.2 3.7.6 3.21.3 3.7.7 3.21.4 3.7.8 3.21.5 3.8.0 3.21.6 3.8.0-beta1 3.21.7 3.8.0-beta2 3.21.8 3.8.0-beta3 3.22.0 3.8.1 3.22.0-beta1 3.9.0 3.22.0-beta2 3.9.1 3.22.0-beta3 3.9.2 3.22.0-beta4 4.0.0 3.22.0-beta5 4.0.0-beta1 3.22.0-beta6 4.0.0-beta2
elementor / assets / js / onboarding.5ceee1b219b66e943cb0.bundle.js
elementor / assets / js Last commit date
packages 1 year ago 152486453d0e39071cdb.bundle.js 1 year ago 294b4bf3066815c5927f.bundle.min.js 1 year ago 2f08057553c95b827d30.bundle.min.js 1 year ago 4748df03726015eef04f.bundle.min.js 1 year ago 49d9a23b08ff2c138b03.bundle.min.js 1 year ago 49d9a23b08ff2c138b03.bundle.min.js.LICENSE.txt 1 year ago 7b18c3f2f2bfffda289f.bundle.js 1 year ago 9c42cff515a6191fddaf.bundle.min.js 1 year ago a730ee9caa710006b307.bundle.js 1 year ago accordion.8799675460c73eb48972.bundle.min.js 1 year ago accordion.c16b88b2e8a0c50189bc.bundle.js 1 year ago admin-feedback.js 1 year ago admin-feedback.min.js 1 year ago admin-modules.js 1 year ago admin-modules.min.js 1 year ago admin-modules.min.js.LICENSE.txt 3 years ago admin-notifications.js 1 year ago admin-notifications.min.js 1 year ago admin-notifications.min.js.LICENSE.txt 1 year ago admin-top-bar.js 1 year ago admin-top-bar.min.js 1 year ago admin.js 1 year ago admin.min.js 1 year ago admin.min.js.LICENSE.txt 3 years ago ai-admin.js 1 year ago ai-admin.min.js 1 year ago ai-admin.min.js.LICENSE.txt 2 years ago ai-gutenberg.js 1 year ago ai-gutenberg.min.js 1 year ago ai-gutenberg.min.js.LICENSE.txt 2 years ago ai-layout.js 1 year ago ai-layout.min.js 1 year ago ai-layout.min.js.LICENSE.txt 2 years ago ai-media-library.js 1 year ago ai-media-library.min.js 1 year ago ai-media-library.min.js.LICENSE.txt 2 years ago ai.js 1 year ago ai.min.js 1 year ago ai.min.js.LICENSE.txt 1 year ago alert.c3c6a3fdf4745bd26b7f.bundle.js 1 year ago alert.cbc2a0fee74ee3ed0419.bundle.min.js 1 year ago announcements-app.js 1 year ago announcements-app.min.js 1 year ago announcements-app.min.js.LICENSE.txt 3 years ago app-loader.js 1 year ago app-loader.min.js 1 year ago app-packages.js 1 year ago app-packages.min.js 1 year ago app-packages.min.js.LICENSE.txt 3 years ago app.js 1 year ago app.min.js 1 year ago app.min.js.LICENSE.txt 3 years ago atomic-widgets-editor.js 1 year ago atomic-widgets-editor.min.js 1 year ago b7931adecb98651a09c7.bundle.min.js 1 year ago bdd4030576f6a94a4f0d.bundle.js 1 year ago beta-tester.js 1 year ago beta-tester.min.js 1 year ago c96bb3445f3bc9de7d26.bundle.min.js 1 year ago checklist.js 1 year ago checklist.min.js 1 year ago checklist.min.js.LICENSE.txt 1 year ago common-modules.js 1 year ago common-modules.min.js 1 year ago common.js 1 year ago common.min.js 1 year ago common.min.js.LICENSE.txt 3 years ago contact-buttons.31aad77620f461830ce9.bundle.min.js 1 year ago contact-buttons.a5e2cc7274ba4c94eb66.bundle.js 1 year ago container-converter.js 1 year ago container-converter.min.js 1 year ago container.a7f0a15dfa05df34e1f7.bundle.js 1 year ago container.c65a2a923085e1120e75.bundle.min.js 1 year ago counter.02cef29c589e742d4c8c.bundle.min.js 1 year ago counter.3f74a246dff765f39aea.bundle.js 1 year ago d91e4d7f57d57af2aab9.bundle.min.js 1 year ago d9299811bc70ddb82fbf.bundle.js 1 year ago dev-tools.js 1 year ago dev-tools.min.js 1 year ago e-home-screen.js 1 year ago e-home-screen.min.js 1 year ago e-wc-product-editor.js 1 year ago e-wc-product-editor.min.js 1 year ago e-wc-product-editor.min.js.LICENSE.txt 1 year ago e3f753621bf9be55ec4d.bundle.js 1 year ago editor-document.js 1 year ago editor-document.min.js 1 year ago editor-environment-v2.js 1 year ago editor-environment-v2.min.js 1 year ago editor-loader-v1.js 1 year ago editor-loader-v1.min.js 1 year ago editor-loader-v2.js 1 year ago editor-loader-v2.min.js 1 year ago editor-modules.js 1 year ago editor-modules.min.js 1 year ago editor-modules.min.js.LICENSE.txt 3 years ago editor-notifications.js 1 year ago editor-notifications.min.js 1 year ago editor-notifications.min.js.LICENSE.txt 1 year ago editor.js 1 year ago editor.min.js 1 year ago editor.min.js.LICENSE.txt 1 year ago element-manager-admin.js 1 year ago element-manager-admin.min.js 1 year ago element-manager-admin.min.js.LICENSE.txt 2 years ago elementor-admin-bar.js 1 year ago elementor-admin-bar.min.js 1 year ago f634673e5824ceb13f3d.bundle.js 1 year ago fa0cbd4c7b6a8ad83224.bundle.js 1 year ago fd6a00ae23a1bc2c6190.bundle.js 1 year ago floating-bars.1ebb83f158244b35bda6.bundle.js 1 year ago floating-bars.e4547b87bc6fb09381ca.bundle.min.js 1 year ago floating-elements-modal.js 1 year ago floating-elements-modal.min.js 1 year ago frontend-modules.js 1 year ago frontend-modules.min.js 1 year ago frontend.js 1 year ago frontend.min.js 1 year ago gutenberg.js 1 year ago gutenberg.min.js 1 year ago image-carousel.4455c6362492d9067512.bundle.min.js 1 year ago image-carousel.9399f19d95d7300cbc2e.bundle.js 1 year ago import-export-admin.js 1 year ago import-export-admin.min.js 1 year ago kit-elements-defaults-editor.js 1 year ago kit-elements-defaults-editor.min.js 1 year ago kit-elements-defaults-editor.min.js.LICENSE.txt 3 years ago kit-library.1f8d31888dc9d19dd031.bundle.min.js 1 year ago kit-library.ac1a4cd5deae5526ce49.bundle.js 1 year ago lightbox.01a419d1fcdd47a75a77.bundle.min.js 1 year ago lightbox.2c9ae19597fcd2a76c3a.bundle.js 1 year ago media-hints.js 1 year ago media-hints.min.js 1 year ago nested-accordion.82e5c4e9017e457a5f2e.bundle.js 1 year ago nested-accordion.c3b109b714293a16bd95.bundle.min.js 1 year ago nested-accordion.js 1 year ago nested-accordion.min.js 1 year ago nested-accordion.min.js.LICENSE.txt 3 years ago nested-elements.js 1 year ago nested-elements.min.js 1 year ago nested-tabs.js 1 year ago nested-tabs.min.js 1 year ago nested-tabs.min.js.LICENSE.txt 3 years ago nested-title-keyboard-handler.0b608656da2be746fb80.bundle.min.js 1 year ago nested-title-keyboard-handler.92a73d7a8a75bcb8cd67.bundle.js 1 year ago new-template.js 1 year ago new-template.min.js 1 year ago notes.js 1 year ago notes.min.js 1 year ago onboarding.4a4002ff7ea58bfa166e.bundle.min.js 1 year ago onboarding.5ceee1b219b66e943cb0.bundle.js 1 year ago progress.6d15c16f0f5c4792940f.bundle.js 1 year ago progress.985f012a6336ab21cb44.bundle.min.js 1 year ago responsive-bar.js 1 year ago responsive-bar.min.js 1 year ago styleguide-app-initiator.js 1 year ago styleguide-app-initiator.min.js 1 year ago styleguide-app-initiator.min.js.LICENSE.txt 3 years ago styleguide.js 1 year ago styleguide.min.js 1 year ago tabs.520bc2ed4560c561029e.bundle.js 1 year ago tabs.c2af5be7f9cb3cdcf3d5.bundle.min.js 1 year ago text-editor.2c35aafbe5bf0e127950.bundle.min.js 1 year ago text-editor.2f2f7e0ea1e16387a004.bundle.js 1 year ago text-path.39fb59e43970222f5a3e.bundle.min.js 1 year ago text-path.39fb59e43970222f5a3e.bundle.min.js.LICENSE.txt 1 year ago text-path.a20877e832db83423958.bundle.js 1 year ago toggle.31881477c45ff5cf9d4d.bundle.min.js 1 year ago toggle.d79746a764407a0828ee.bundle.js 1 year ago video.78c625e89ab767d621c5.bundle.min.js 1 year ago video.817bd6a65a1542503aac.bundle.js 1 year ago web-cli.js 1 year ago web-cli.min.js 1 year ago web-cli.min.js.LICENSE.txt 3 years ago webpack.runtime.js 1 year ago webpack.runtime.min.js 1 year ago wp-audio.75f0ced143febb8cd31a.bundle.min.js 1 year ago wp-audio.b8efdc046bc9df72a075.bundle.js 1 year ago
onboarding.5ceee1b219b66e943cb0.bundle.js
2696 lines
1 /*! elementor - v3.25.0 - 16-10-2024 */
2 "use strict";
3 (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["onboarding"],{
4
5 /***/ "../app/assets/js/molecules/elementor-loading.js":
6 /*!*******************************************************!*\
7 !*** ../app/assets/js/molecules/elementor-loading.js ***!
8 \*******************************************************/
9 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10
11 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
12 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
13
14
15 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
16 Object.defineProperty(exports, "__esModule", ({
17 value: true
18 }));
19 exports["default"] = ElementorLoading;
20 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
21 function ElementorLoading(props) {
22 return /*#__PURE__*/_react.default.createElement("div", {
23 className: "elementor-loading"
24 }, /*#__PURE__*/_react.default.createElement("div", {
25 className: "elementor-loader-wrapper"
26 }, /*#__PURE__*/_react.default.createElement("div", {
27 className: "elementor-loader"
28 }, /*#__PURE__*/_react.default.createElement("div", {
29 className: "elementor-loader-boxes"
30 }, /*#__PURE__*/_react.default.createElement("div", {
31 className: "elementor-loader-box"
32 }), /*#__PURE__*/_react.default.createElement("div", {
33 className: "elementor-loader-box"
34 }), /*#__PURE__*/_react.default.createElement("div", {
35 className: "elementor-loader-box"
36 }), /*#__PURE__*/_react.default.createElement("div", {
37 className: "elementor-loader-box"
38 }))), /*#__PURE__*/_react.default.createElement("div", {
39 className: "elementor-loading-title"
40 }, props.loadingText)));
41 }
42 ElementorLoading.propTypes = {
43 loadingText: PropTypes.string
44 };
45 ElementorLoading.defaultProps = {
46 loadingText: __('Loading', 'elementor')
47 };
48
49 /***/ }),
50
51 /***/ "../app/assets/js/ui/popover-dialog/popover-dialog.js":
52 /*!************************************************************!*\
53 !*** ../app/assets/js/ui/popover-dialog/popover-dialog.js ***!
54 \************************************************************/
55 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
56
57 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
58
59
60 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
61 Object.defineProperty(exports, "__esModule", ({
62 value: true
63 }));
64 exports["default"] = PopoverDialog;
65 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
66 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
67 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
68 function PopoverDialog(props) {
69 var targetRef = props.targetRef,
70 offsetTop = props.offsetTop,
71 offsetLeft = props.offsetLeft,
72 wrapperClass = props.wrapperClass,
73 trigger = props.trigger,
74 hideAfter = props.hideAfter,
75 popoverRef = (0, _react.useCallback)(function (popoverEl) {
76 var target = targetRef === null || targetRef === void 0 ? void 0 : targetRef.current;
77
78 // If the target or the popover element does not exist on the page anymore after a re-render, do nothing.
79 if (!target || !popoverEl) {
80 return;
81 }
82
83 /**
84 * Show Popover
85 */
86 var showPopover = function showPopover() {
87 popoverEl.style.display = 'block';
88 popoverEl.setAttribute('aria-expanded', true);
89 var targetRect = target.getBoundingClientRect(),
90 popoverRect = popoverEl.getBoundingClientRect(),
91 widthDifference = popoverRect.width - targetRect.width;
92 popoverEl.style.top = targetRect.bottom + offsetTop + 'px';
93 popoverEl.style.left = targetRect.left - widthDifference / 2 - offsetLeft + 'px';
94
95 // 16px to compensate for the arrow width.
96 popoverEl.style.setProperty('--popover-arrow-offset-end', (popoverRect.width - 16) / 2 + 'px');
97 };
98
99 /**
100 * Hide Popover
101 */
102 var hidePopover = function hidePopover() {
103 popoverEl.style.display = 'none';
104 popoverEl.setAttribute('aria-expanded', false);
105 };
106
107 /**
108 * Handle the Popover's hover functionality
109 */
110 var handlePopoverHover = function handlePopoverHover() {
111 var hideOnMouseOut = true,
112 timeOut = null;
113
114 // Show popover on hover of the target
115 target.addEventListener('mouseover', function () {
116 hideOnMouseOut = true;
117 showPopover();
118 });
119
120 // Hide popover when not overing over the target or the popover itself
121 target.addEventListener('mouseleave', function () {
122 timeOut = setTimeout(function () {
123 if (hideOnMouseOut) {
124 if ('block' === popoverEl.style.display) {
125 hidePopover();
126 }
127 }
128 }, hideAfter);
129 });
130
131 // Don't hide the popover if the user is still hovering over it.
132 popoverEl.addEventListener('mouseover', function () {
133 hideOnMouseOut = false;
134 if (timeOut) {
135 clearTimeout(timeOut);
136 timeOut = null;
137 }
138 });
139
140 // Once the user stops hovering over the popover, hide it.
141 popoverEl.addEventListener('mouseleave', function () {
142 timeOut = setTimeout(function () {
143 if (hideOnMouseOut) {
144 if ('block' === popoverEl.style.display) {
145 hidePopover();
146 }
147 }
148 }, hideAfter);
149 hideOnMouseOut = true;
150 });
151 };
152
153 /**
154 * Handle the Popover's click functionality
155 */
156 var handlePopoverClick = function handlePopoverClick() {
157 var popoverIsActive = false;
158 target.addEventListener('click', function (e) {
159 e.preventDefault();
160 e.stopPropagation();
161 if (popoverIsActive) {
162 hidePopover();
163 popoverIsActive = false;
164 } else {
165 showPopover();
166 popoverIsActive = true;
167 }
168 });
169
170 // Make sure the popover doesn't close when it is clicked on.
171 popoverEl.addEventListener('click', function (e) {
172 e.stopPropagation();
173 });
174
175 // Hide the popover when clicking outside of it.
176 document.body.addEventListener('click', function () {
177 if (popoverIsActive) {
178 hidePopover();
179 popoverIsActive = false;
180 }
181 });
182 };
183 if ('hover' === trigger) {
184 handlePopoverHover();
185 } else if ('click' === trigger) {
186 handlePopoverClick();
187 }
188 }, [targetRef]);
189 var wrapperClasses = 'e-app__popover';
190 if (wrapperClass) {
191 wrapperClasses += ' ' + wrapperClass;
192 }
193 return /*#__PURE__*/_react.default.createElement("div", {
194 className: wrapperClasses,
195 ref: popoverRef
196 }, props.children);
197 }
198 PopoverDialog.propTypes = {
199 targetRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
200 current: PropTypes.any
201 })]).isRequired,
202 trigger: PropTypes.string,
203 direction: PropTypes.string,
204 offsetTop: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
205 offsetLeft: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
206 wrapperClass: PropTypes.string,
207 children: PropTypes.any,
208 hideAfter: PropTypes.number
209 };
210 PopoverDialog.defaultProps = {
211 direction: 'bottom',
212 trigger: 'hover',
213 offsetTop: 10,
214 offsetLeft: 0,
215 hideAfter: 300
216 };
217
218 /***/ }),
219
220 /***/ "../app/modules/onboarding/assets/js/app.js":
221 /*!**************************************************!*\
222 !*** ../app/modules/onboarding/assets/js/app.js ***!
223 \**************************************************/
224 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
225
226
227
228 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
229 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
230 Object.defineProperty(exports, "__esModule", ({
231 value: true
232 }));
233 exports["default"] = App;
234 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
235 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
236 var _router2 = _interopRequireDefault(__webpack_require__(/*! @elementor/router */ "@elementor/router"));
237 var _context = __webpack_require__(/*! ./context/context */ "../app/modules/onboarding/assets/js/context/context.js");
238 var _account = _interopRequireDefault(__webpack_require__(/*! ./pages/account */ "../app/modules/onboarding/assets/js/pages/account.js"));
239 var _helloTheme = _interopRequireDefault(__webpack_require__(/*! ./pages/hello-theme */ "../app/modules/onboarding/assets/js/pages/hello-theme.js"));
240 var _siteName = _interopRequireDefault(__webpack_require__(/*! ./pages/site-name */ "../app/modules/onboarding/assets/js/pages/site-name.js"));
241 var _siteLogo = _interopRequireDefault(__webpack_require__(/*! ./pages/site-logo */ "../app/modules/onboarding/assets/js/pages/site-logo.js"));
242 var _goodToGo = _interopRequireDefault(__webpack_require__(/*! ./pages/good-to-go */ "../app/modules/onboarding/assets/js/pages/good-to-go.js"));
243 var _uploadAndInstallPro = _interopRequireDefault(__webpack_require__(/*! ./pages/upload-and-install-pro */ "../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js"));
244 var _chooseFeatures = _interopRequireDefault(__webpack_require__(/*! ./pages/choose-features */ "../app/modules/onboarding/assets/js/pages/choose-features.js"));
245 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
246 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
247 function App() {
248 // Send an AJAX request to update the database option which makes sure the Onboarding process only runs once,
249 // for new Elementor sites.
250 (0, _react.useEffect)(function () {
251 // This is to prevent dark theme in onboarding app from the frontend and not backend
252 var darkThemeClassName = 'eps-theme-dark';
253 var hasDarkMode = document.body.classList.contains(darkThemeClassName);
254 if (hasDarkMode) {
255 document.body.classList.remove(darkThemeClassName);
256 }
257 if (!elementorAppConfig.onboarding.onboardingAlreadyRan) {
258 var formData = new FormData();
259 formData.append('_nonce', elementorCommon.config.ajax.nonce);
260 formData.append('action', 'elementor_update_onboarding_option');
261 fetch(elementorCommon.config.ajax.url, {
262 method: 'POST',
263 body: formData
264 });
265 }
266 elementorAppConfig.return_url = elementorAppConfig.admin_url;
267 return function () {
268 if (hasDarkMode) {
269 document.body.classList.add(darkThemeClassName);
270 }
271 };
272 }, []);
273 return /*#__PURE__*/_react.default.createElement(_context.ContextProvider, null, /*#__PURE__*/_react.default.createElement(_router.LocationProvider, {
274 history: _router2.default.appHistory
275 }, /*#__PURE__*/_react.default.createElement(_router.Router, null, /*#__PURE__*/_react.default.createElement(_account.default, {
276 default: true
277 }), /*#__PURE__*/_react.default.createElement(_helloTheme.default, {
278 path: "hello"
279 }), /*#__PURE__*/_react.default.createElement(_chooseFeatures.default, {
280 path: "chooseFeatures"
281 }), /*#__PURE__*/_react.default.createElement(_siteName.default, {
282 path: "siteName"
283 }), /*#__PURE__*/_react.default.createElement(_siteLogo.default, {
284 path: "siteLogo"
285 }), /*#__PURE__*/_react.default.createElement(_goodToGo.default, {
286 path: "goodToGo"
287 }), /*#__PURE__*/_react.default.createElement(_uploadAndInstallPro.default, {
288 path: "uploadAndInstallPro"
289 }))));
290 }
291
292 /***/ }),
293
294 /***/ "../app/modules/onboarding/assets/js/components/button.js":
295 /*!****************************************************************!*\
296 !*** ../app/modules/onboarding/assets/js/components/button.js ***!
297 \****************************************************************/
298 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
299
300 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
301
302
303 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
304 Object.defineProperty(exports, "__esModule", ({
305 value: true
306 }));
307 exports["default"] = Button;
308 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
309 function Button(props) {
310 var buttonSettings = props.buttonSettings,
311 type = props.type;
312 var buttonClasses = 'e-onboarding__button';
313 if (type) {
314 buttonClasses += " e-onboarding__button-".concat(type);
315 }
316 if (buttonSettings.className) {
317 buttonSettings.className += ' ' + buttonClasses;
318 } else {
319 buttonSettings.className = buttonClasses;
320 }
321 if (buttonSettings.href) {
322 return /*#__PURE__*/_react.default.createElement("a", buttonSettings, buttonSettings.text);
323 }
324 return /*#__PURE__*/_react.default.createElement("div", buttonSettings, buttonSettings.text);
325 }
326 Button.propTypes = {
327 buttonSettings: PropTypes.object.isRequired,
328 type: PropTypes.string
329 };
330
331 /***/ }),
332
333 /***/ "../app/modules/onboarding/assets/js/components/card.js":
334 /*!**************************************************************!*\
335 !*** ../app/modules/onboarding/assets/js/components/card.js ***!
336 \**************************************************************/
337 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
338
339 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
340
341
342 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
343 Object.defineProperty(exports, "__esModule", ({
344 value: true
345 }));
346 exports["default"] = Card;
347 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
348 function Card(_ref) {
349 var image = _ref.image,
350 imageAlt = _ref.imageAlt,
351 text = _ref.text,
352 link = _ref.link,
353 name = _ref.name,
354 clickAction = _ref.clickAction;
355 var onClick = function onClick() {
356 elementorCommon.events.dispatchEvent({
357 event: 'starting canvas click',
358 version: '',
359 details: {
360 placement: elementorAppConfig.onboarding.eventPlacement,
361 selection: name
362 }
363 });
364 if (clickAction) {
365 clickAction();
366 }
367 };
368 return /*#__PURE__*/_react.default.createElement("a", {
369 target: "_self",
370 className: "e-onboarding__card",
371 href: link,
372 onClick: onClick
373 }, /*#__PURE__*/_react.default.createElement("img", {
374 className: "e-onboarding__card-image",
375 src: image,
376 alt: imageAlt
377 }), /*#__PURE__*/_react.default.createElement("div", {
378 className: "e-onboarding__card-text"
379 }, text));
380 }
381 Card.propTypes = {
382 image: PropTypes.string.isRequired,
383 imageAlt: PropTypes.string.isRequired,
384 text: PropTypes.string.isRequired,
385 link: PropTypes.string.isRequired,
386 name: PropTypes.string.isRequired,
387 clickAction: PropTypes.func
388 };
389
390 /***/ }),
391
392 /***/ "../app/modules/onboarding/assets/js/components/checklist-item.js":
393 /*!************************************************************************!*\
394 !*** ../app/modules/onboarding/assets/js/components/checklist-item.js ***!
395 \************************************************************************/
396 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
397
398 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
399
400
401 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
402 Object.defineProperty(exports, "__esModule", ({
403 value: true
404 }));
405 exports["default"] = ChecklistItem;
406 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
407 function ChecklistItem(props) {
408 return /*#__PURE__*/_react.default.createElement("li", {
409 className: "e-onboarding__checklist-item"
410 }, /*#__PURE__*/_react.default.createElement("i", {
411 className: "eicon-check-circle"
412 }), props.children);
413 }
414 ChecklistItem.propTypes = {
415 children: PropTypes.string
416 };
417
418 /***/ }),
419
420 /***/ "../app/modules/onboarding/assets/js/components/checklist.js":
421 /*!*******************************************************************!*\
422 !*** ../app/modules/onboarding/assets/js/components/checklist.js ***!
423 \*******************************************************************/
424 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
425
426 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
427
428
429 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
430 Object.defineProperty(exports, "__esModule", ({
431 value: true
432 }));
433 exports["default"] = Checklist;
434 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
435 function Checklist(props) {
436 return /*#__PURE__*/_react.default.createElement("ul", {
437 className: "e-onboarding__checklist"
438 }, props.children);
439 }
440 Checklist.propTypes = {
441 children: PropTypes.any.isRequired
442 };
443
444 /***/ }),
445
446 /***/ "../app/modules/onboarding/assets/js/components/go-pro-popover.js":
447 /*!************************************************************************!*\
448 !*** ../app/modules/onboarding/assets/js/components/go-pro-popover.js ***!
449 \************************************************************************/
450 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
451
452 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
453 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
454
455
456 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
457 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
458 Object.defineProperty(exports, "__esModule", ({
459 value: true
460 }));
461 exports["default"] = GoProPopover;
462 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
463 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
464 var _popoverDialog = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/popover-dialog/popover-dialog */ "../app/assets/js/ui/popover-dialog/popover-dialog.js"));
465 var _checklist = _interopRequireDefault(__webpack_require__(/*! ./checklist */ "../app/modules/onboarding/assets/js/components/checklist.js"));
466 var _checklistItem = _interopRequireDefault(__webpack_require__(/*! ./checklist-item */ "../app/modules/onboarding/assets/js/components/checklist-item.js"));
467 var _button = _interopRequireDefault(__webpack_require__(/*! ./button */ "../app/modules/onboarding/assets/js/components/button.js"));
468 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
469 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
470 function GoProPopover(props) {
471 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
472 state = _useContext.state,
473 updateState = _useContext.updateState;
474
475 // Handle the Pro Upload popup window.
476 var alreadyHaveProButtonRef = (0, _react.useCallback)(function (alreadyHaveProButton) {
477 if (!alreadyHaveProButton) {
478 return;
479 }
480 alreadyHaveProButton.addEventListener('click', function (event) {
481 event.preventDefault();
482 elementorCommon.events.dispatchEvent({
483 event: 'already have pro',
484 version: '',
485 details: {
486 placement: elementorAppConfig.onboarding.eventPlacement,
487 step: state.currentStep
488 }
489 });
490
491 // Open the Pro Upload screen in a popup.
492 window.open(alreadyHaveProButton.href + '&mode=popup', 'elementorUploadPro', "toolbar=no, menubar=no, width=728, height=531, top=100, left=100");
493
494 // Run the callback for when the upload succeeds.
495 elementorCommon.elements.$body.on('elementor/upload-and-install-pro/success', function () {
496 updateState({
497 hasPro: true,
498 proNotice: {
499 type: 'success',
500 icon: 'eicon-check-circle-o',
501 message: __('Elementor Pro has been successfully installed.', 'elementor')
502 }
503 });
504 });
505 });
506 }, []);
507
508 // The buttonsConfig prop is an array of objects. To find the 'Upgrade Now' button, we need to iterate over the object.
509 var goProButton = props.buttonsConfig.find(function (button) {
510 return 'go-pro' === button.id;
511 }),
512 getElProButton = {
513 text: elementorAppConfig.onboarding.experiment ? __('Upgrade now', 'elementor') : __('Upgrade Now', 'elementor'),
514 className: 'e-onboarding__go-pro-cta',
515 target: '_blank',
516 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,
517 tabIndex: 0,
518 onClick: function onClick() {
519 elementorCommon.events.dispatchEvent({
520 event: 'get elementor pro',
521 version: '',
522 details: {
523 placement: elementorAppConfig.onboarding.eventPlacement,
524 step: state.currentStep
525 }
526 });
527 }
528 };
529 return /*#__PURE__*/_react.default.createElement(_popoverDialog.default, {
530 targetRef: goProButton.elRef,
531 wrapperClass: "e-onboarding__go-pro"
532 }, /*#__PURE__*/_react.default.createElement("div", {
533 className: "e-onboarding__go-pro-content"
534 }, /*#__PURE__*/_react.default.createElement("h2", {
535 className: "e-onboarding__go-pro-title"
536 }, __('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", {
537 className: "e-onboarding__go-pro-paragraph"
538 }, __('And so much more!', 'elementor')), /*#__PURE__*/_react.default.createElement("div", {
539 className: "e-onboarding__go-pro-paragraph"
540 }, /*#__PURE__*/_react.default.createElement(_button.default, {
541 buttonSettings: getElProButton
542 })), /*#__PURE__*/_react.default.createElement("div", {
543 className: "e-onboarding__go-pro-paragraph"
544 }, /*#__PURE__*/_react.default.createElement("a", {
545 tabIndex: "0",
546 className: "e-onboarding__go-pro-already-have",
547 ref: alreadyHaveProButtonRef,
548 href: elementorAppConfig.onboarding.urls.uploadPro,
549 rel: "opener"
550 }, __('Already have Elementor Pro?', 'elementor')))));
551 }
552 GoProPopover.propTypes = {
553 buttonsConfig: PropTypes.array.isRequired
554 };
555
556 /***/ }),
557
558 /***/ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js":
559 /*!*******************************************************************************!*\
560 !*** ../app/modules/onboarding/assets/js/components/layout/footer-buttons.js ***!
561 \*******************************************************************************/
562 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
563
564 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
565
566
567 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
568 Object.defineProperty(exports, "__esModule", ({
569 value: true
570 }));
571 exports["default"] = FooterButtons;
572 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
573 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
574 var _button = _interopRequireDefault(__webpack_require__(/*! ../button */ "../app/modules/onboarding/assets/js/components/button.js"));
575 var _skipButton = _interopRequireDefault(__webpack_require__(/*! ../skip-button */ "../app/modules/onboarding/assets/js/components/skip-button.js"));
576 function FooterButtons(_ref) {
577 var actionButton = _ref.actionButton,
578 skipButton = _ref.skipButton,
579 className = _ref.className;
580 var classNames = 'e-onboarding__footer';
581 if (className) {
582 classNames += ' ' + className;
583 }
584 return /*#__PURE__*/_react.default.createElement(_grid.default, {
585 container: true,
586 alignItems: "center",
587 justify: "space-between",
588 className: classNames
589 }, actionButton && /*#__PURE__*/_react.default.createElement(_button.default, {
590 buttonSettings: actionButton,
591 type: "action"
592 }), skipButton && /*#__PURE__*/_react.default.createElement(_skipButton.default, {
593 button: skipButton
594 }));
595 }
596 FooterButtons.propTypes = {
597 actionButton: PropTypes.object,
598 skipButton: PropTypes.object,
599 className: PropTypes.string
600 };
601
602 /***/ }),
603
604 /***/ "../app/modules/onboarding/assets/js/components/layout/header.js":
605 /*!***********************************************************************!*\
606 !*** ../app/modules/onboarding/assets/js/components/layout/header.js ***!
607 \***********************************************************************/
608 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
609
610 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
611 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
612
613
614 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
615 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
616 Object.defineProperty(exports, "__esModule", ({
617 value: true
618 }));
619 exports["default"] = Header;
620 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
621 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
622 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
623 var _goProPopover = _interopRequireDefault(__webpack_require__(/*! ../go-pro-popover */ "../app/modules/onboarding/assets/js/components/go-pro-popover.js"));
624 var _headerButtons = _interopRequireDefault(__webpack_require__(/*! elementor-app/layout/header-buttons */ "../app/assets/js/layout/header-buttons.js"));
625 var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js"));
626 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
627 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
628 function Header(props) {
629 (0, _usePageTitle.default)({
630 title: props.title
631 });
632 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
633 state = _useContext.state;
634 var onClose = function onClose() {
635 elementorCommon.events.dispatchEvent({
636 event: 'close modal',
637 version: '',
638 details: {
639 placement: elementorAppConfig.onboarding.eventPlacement,
640 step: state.currentStep
641 }
642 });
643 window.top.location = elementorAppConfig.admin_url;
644 };
645 return /*#__PURE__*/_react.default.createElement(_grid.default, {
646 container: true,
647 alignItems: "center",
648 justify: "space-between",
649 className: "eps-app__header e-onboarding__header"
650 }, /*#__PURE__*/_react.default.createElement("div", {
651 className: "eps-app__logo-title-wrapper e-onboarding__header-logo"
652 }, /*#__PURE__*/_react.default.createElement("i", {
653 className: "eps-app__logo eicon-elementor"
654 }), /*#__PURE__*/_react.default.createElement("img", {
655 src: elementorCommon.config.urls.assets + 'images/logo-platform.svg',
656 alt: __('Elementor Logo', 'elementor')
657 })), /*#__PURE__*/_react.default.createElement(_headerButtons.default, {
658 buttons: props.buttons,
659 onClose: onClose
660 }), !state.hasPro && /*#__PURE__*/_react.default.createElement(_goProPopover.default, {
661 buttonsConfig: props.buttons
662 }));
663 }
664 Header.propTypes = {
665 title: PropTypes.string,
666 buttons: PropTypes.arrayOf(PropTypes.object)
667 };
668 Header.defaultProps = {
669 buttons: []
670 };
671
672 /***/ }),
673
674 /***/ "../app/modules/onboarding/assets/js/components/layout/layout.js":
675 /*!***********************************************************************!*\
676 !*** ../app/modules/onboarding/assets/js/components/layout/layout.js ***!
677 \***********************************************************************/
678 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
679
680 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
681 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
682
683
684 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
685 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
686 Object.defineProperty(exports, "__esModule", ({
687 value: true
688 }));
689 exports["default"] = Layout;
690 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
691 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
692 var _header = _interopRequireDefault(__webpack_require__(/*! ./header */ "../app/modules/onboarding/assets/js/components/layout/header.js"));
693 var _progressBar = _interopRequireDefault(__webpack_require__(/*! ../progress-bar/progress-bar */ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js"));
694 var _content = _interopRequireDefault(__webpack_require__(/*! ../../../../../../assets/js/layout/content */ "../app/assets/js/layout/content.js"));
695 var _connect = _interopRequireDefault(__webpack_require__(/*! ../../utils/connect */ "../app/modules/onboarding/assets/js/utils/connect.js"));
696 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
697 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
698 function Layout(props) {
699 (0, _react.useEffect)(function () {
700 // Send modal load event for current step.
701 elementorCommon.events.dispatchEvent({
702 event: 'modal load',
703 version: '',
704 details: {
705 placement: elementorAppConfig.onboarding.eventPlacement,
706 step: props.pageId,
707 user_state: elementorCommon.config.library_connect.is_connected ? 'logged' : 'anon'
708 }
709 });
710 updateState({
711 currentStep: props.pageId,
712 nextStep: props.nextStep || '',
713 proNotice: null
714 });
715 }, [props.pageId]);
716 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
717 state = _useContext.state,
718 updateState = _useContext.updateState,
719 headerButtons = [],
720 goProButtonRef = (0, _react.useRef)(),
721 createAccountButton = {
722 id: 'create-account',
723 text: __('Create Account', 'elementor'),
724 hideText: false,
725 elRef: (0, _react.useRef)(),
726 url: elementorAppConfig.onboarding.urls.signUp + elementorAppConfig.onboarding.utms.connectTopBar,
727 target: '_blank',
728 rel: 'opener',
729 onClick: function onClick() {
730 elementorCommon.events.dispatchEvent({
731 event: 'create account',
732 version: '',
733 details: {
734 placement: elementorAppConfig.onboarding.eventPlacement,
735 step: state.currentStep,
736 source: 'header'
737 }
738 });
739 }
740 };
741 if (state.isLibraryConnected) {
742 headerButtons.push({
743 id: 'my-elementor',
744 text: __('My Elementor', 'elementor'),
745 hideText: false,
746 icon: 'eicon-user-circle-o',
747 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,
748 target: '_blank',
749 onClick: function onClick() {
750 elementorCommon.events.dispatchEvent({
751 event: 'my elementor click',
752 version: '',
753 details: {
754 placement: elementorAppConfig.onboarding.eventPlacement,
755 step: state.currentStep,
756 source: 'header'
757 }
758 });
759 }
760 });
761 } else {
762 headerButtons.push(createAccountButton);
763 }
764 if (!state.hasPro) {
765 headerButtons.push({
766 id: 'go-pro',
767 text: __('Upgrade', 'elementor'),
768 hideText: false,
769 className: 'eps-button__go-pro-btn',
770 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,
771 target: '_blank',
772 elRef: goProButtonRef,
773 onClick: function onClick() {
774 elementorCommon.events.dispatchEvent({
775 event: 'go pro',
776 version: '',
777 details: {
778 placement: elementorAppConfig.onboarding.eventPlacement,
779 step: state.currentStep
780 }
781 });
782 }
783 });
784 }
785 return /*#__PURE__*/_react.default.createElement("div", {
786 className: "eps-app__lightbox"
787 }, /*#__PURE__*/_react.default.createElement("div", {
788 className: "eps-app e-onboarding"
789 }, !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement(_connect.default, {
790 buttonRef: createAccountButton.elRef
791 }), /*#__PURE__*/_react.default.createElement(_header.default, {
792 title: __('Getting Started', 'elementor'),
793 buttons: headerButtons
794 }), /*#__PURE__*/_react.default.createElement("div", {
795 className: 'eps-app__main e-onboarding__page-' + props.pageId
796 }, /*#__PURE__*/_react.default.createElement(_content.default, {
797 className: "e-onboarding__content"
798 }, /*#__PURE__*/_react.default.createElement(_progressBar.default, null), props.children))));
799 }
800 Layout.propTypes = {
801 pageId: PropTypes.string.isRequired,
802 nextStep: PropTypes.string,
803 className: PropTypes.string,
804 children: PropTypes.any.isRequired
805 };
806
807 /***/ }),
808
809 /***/ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js":
810 /*!************************************************************************************!*\
811 !*** ../app/modules/onboarding/assets/js/components/layout/page-content-layout.js ***!
812 \************************************************************************************/
813 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
814
815 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
816
817
818 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
819 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
820 Object.defineProperty(exports, "__esModule", ({
821 value: true
822 }));
823 exports["default"] = PageContentLayout;
824 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
825 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
826 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
827 var _notice = _interopRequireDefault(__webpack_require__(/*! ../notice */ "../app/modules/onboarding/assets/js/components/notice.js"));
828 var _footerButtons = _interopRequireDefault(__webpack_require__(/*! ./footer-buttons */ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js"));
829 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
830 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
831 function PageContentLayout(props) {
832 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
833 state = _useContext.state;
834 var printNotices = function printNotices() {
835 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.noticeState && /*#__PURE__*/_react.default.createElement(_notice.default, {
836 noticeState: props.noticeState
837 }), state.proNotice && /*#__PURE__*/_react.default.createElement(_notice.default, {
838 noticeState: state.proNotice
839 }));
840 };
841 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_grid.default, {
842 container: true,
843 alignItems: "center",
844 justify: "space-between",
845 className: "e-onboarding__page-content"
846 }, /*#__PURE__*/_react.default.createElement("div", {
847 className: "e-onboarding__page-content-start"
848 }, /*#__PURE__*/_react.default.createElement("h1", {
849 className: "e-onboarding__page-content-section-title"
850 }, 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", {
851 className: "e-onboarding__page-content-section-text"
852 }, props.children)), /*#__PURE__*/_react.default.createElement("div", {
853 className: "e-onboarding__page-content-end"
854 }, /*#__PURE__*/_react.default.createElement("img", {
855 src: props.image,
856 alt: "Information"
857 }))), props.noticeState && /*#__PURE__*/_react.default.createElement("div", {
858 className: "e-onboarding__notice-container"
859 }, props.noticeState || state.proNotice ? printNotices() : /*#__PURE__*/_react.default.createElement("div", {
860 className: "e-onboarding__notice-empty-spacer"
861 })), /*#__PURE__*/_react.default.createElement(_footerButtons.default, {
862 actionButton: props.actionButton,
863 skipButton: props.skipButton
864 }));
865 }
866 PageContentLayout.propTypes = {
867 title: PropTypes.string,
868 secondLineTitle: PropTypes.string,
869 children: PropTypes.any,
870 image: PropTypes.string,
871 actionButton: PropTypes.object,
872 skipButton: PropTypes.object,
873 noticeState: PropTypes.any
874 };
875
876 /***/ }),
877
878 /***/ "../app/modules/onboarding/assets/js/components/message.js":
879 /*!*****************************************************************!*\
880 !*** ../app/modules/onboarding/assets/js/components/message.js ***!
881 \*****************************************************************/
882 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
883
884 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
885 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
886
887
888 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
889 Object.defineProperty(exports, "__esModule", ({
890 value: true
891 }));
892 exports["default"] = Message;
893 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
894 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
895 function Message(_ref) {
896 var tier = _ref.tier;
897 /* Translators: %s: Plan name */
898 var translatedString = __('Based on the features you chose, we recommend the %s plan, or higher', 'elementor');
899 var _translatedString$spl = translatedString.split('%s'),
900 _translatedString$spl2 = (0, _slicedToArray2.default)(_translatedString$spl, 2),
901 messageFirstPart = _translatedString$spl2[0],
902 messageSecondPart = _translatedString$spl2[1];
903 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, messageFirstPart, /*#__PURE__*/_react.default.createElement("strong", null, tier), messageSecondPart);
904 }
905 Message.propTypes = {
906 tier: PropTypes.string.isRequired
907 };
908
909 /***/ }),
910
911 /***/ "../app/modules/onboarding/assets/js/components/notice.js":
912 /*!****************************************************************!*\
913 !*** ../app/modules/onboarding/assets/js/components/notice.js ***!
914 \****************************************************************/
915 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
916
917 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
918
919
920 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
921 Object.defineProperty(exports, "__esModule", ({
922 value: true
923 }));
924 exports["default"] = Notice;
925 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
926 function Notice(props) {
927 return /*#__PURE__*/_react.default.createElement("div", {
928 className: "e-onboarding__notice e-onboarding__notice--".concat(props.noticeState.type)
929 }, /*#__PURE__*/_react.default.createElement("i", {
930 className: props.noticeState.icon
931 }), /*#__PURE__*/_react.default.createElement("span", {
932 className: "e-onboarding__notice-text"
933 }, props.noticeState.message));
934 }
935 Notice.propTypes = {
936 noticeState: PropTypes.object
937 };
938
939 /***/ }),
940
941 /***/ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js":
942 /*!****************************************************************************************!*\
943 !*** ../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js ***!
944 \****************************************************************************************/
945 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
946
947 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
948
949
950 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
951 Object.defineProperty(exports, "__esModule", ({
952 value: true
953 }));
954 exports["default"] = ProgressBarItem;
955 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
956 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
957 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
958 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
959 function ProgressBarItem(props) {
960 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
961 state = _useContext.state,
962 stepCompleted = 'completed' === state.steps[props.id],
963 stepSkipped = 'skipped' === state.steps[props.id];
964 var itemClasses = 'e-onboarding__progress-bar-item';
965 if (props.id === state.currentStep) {
966 itemClasses += ' e-onboarding__progress-bar-item--active';
967 } else if (stepCompleted) {
968 itemClasses += ' e-onboarding__progress-bar-item--completed';
969 } else if (stepSkipped) {
970 itemClasses += ' e-onboarding__progress-bar-item--skipped';
971 }
972 return (
973 /*#__PURE__*/
974 // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
975 _react.default.createElement("div", {
976 onClick: props.onClick,
977 className: itemClasses
978 }, /*#__PURE__*/_react.default.createElement("div", {
979 className: "e-onboarding__progress-bar-item-icon"
980 }, stepCompleted ? /*#__PURE__*/_react.default.createElement("i", {
981 className: "eicon-check"
982 }) : props.index + 1), props.title)
983 );
984 }
985 ProgressBarItem.propTypes = {
986 index: PropTypes.number.isRequired,
987 id: PropTypes.string.isRequired,
988 title: PropTypes.string.isRequired,
989 route: PropTypes.string,
990 onClick: PropTypes.func
991 };
992
993 /***/ }),
994
995 /***/ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js":
996 /*!***********************************************************************************!*\
997 !*** ../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js ***!
998 \***********************************************************************************/
999 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1000
1001 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1002
1003
1004 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1005 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1006 Object.defineProperty(exports, "__esModule", ({
1007 value: true
1008 }));
1009 exports["default"] = ProgressBar;
1010 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1011 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1012 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1013 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1014 var _progressBarItem = _interopRequireDefault(__webpack_require__(/*! ./progress-bar-item */ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js"));
1015 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1016 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1017 function ProgressBar() {
1018 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1019 state = _useContext.state,
1020 navigate = (0, _router.useNavigate)(),
1021 progressBarItemsConfig = [{
1022 id: 'account',
1023 title: __('Elementor Account', 'elementor'),
1024 route: 'account'
1025 }];
1026
1027 // If hello theme is already activated when onboarding starts, don't show this step in the onboarding.
1028 if (!elementorAppConfig.onboarding.helloActivated) {
1029 progressBarItemsConfig.push({
1030 id: 'hello',
1031 title: __('Hello Theme', 'elementor'),
1032 route: 'hello'
1033 });
1034 }
1035 if (elementorAppConfig.onboarding.experiment) {
1036 progressBarItemsConfig.push({
1037 id: 'chooseFeatures',
1038 title: __('Choose Features', 'elementor'),
1039 route: 'chooseFeatures'
1040 });
1041 } else {
1042 progressBarItemsConfig.push({
1043 id: 'siteName',
1044 title: __('Site Name', 'elementor'),
1045 route: 'site-name'
1046 }, {
1047 id: 'siteLogo',
1048 title: __('Site Logo', 'elementor'),
1049 route: 'site-logo'
1050 });
1051 }
1052 progressBarItemsConfig.push({
1053 id: 'goodToGo',
1054 title: __('Good to Go', 'elementor'),
1055 route: 'good-to-go'
1056 });
1057 var progressBarItems = progressBarItemsConfig.map(function (itemConfig, index) {
1058 itemConfig.index = index;
1059 if (state.steps[itemConfig.id]) {
1060 itemConfig.onClick = function () {
1061 elementorCommon.events.dispatchEvent({
1062 event: 'step click',
1063 version: '',
1064 details: {
1065 placement: elementorAppConfig.onboarding.eventPlacement,
1066 step: state.currentStep,
1067 next_step: itemConfig.id
1068 }
1069 });
1070 navigate('/onboarding/' + itemConfig.id);
1071 };
1072 }
1073 return /*#__PURE__*/_react.default.createElement(_progressBarItem.default, (0, _extends2.default)({
1074 key: itemConfig.id
1075 }, itemConfig));
1076 });
1077 return /*#__PURE__*/_react.default.createElement("div", {
1078 className: "e-onboarding__progress-bar"
1079 }, progressBarItems);
1080 }
1081
1082 /***/ }),
1083
1084 /***/ "../app/modules/onboarding/assets/js/components/skip-button.js":
1085 /*!*********************************************************************!*\
1086 !*** ../app/modules/onboarding/assets/js/components/skip-button.js ***!
1087 \*********************************************************************/
1088 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1089
1090 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1091
1092
1093 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1094 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1095 Object.defineProperty(exports, "__esModule", ({
1096 value: true
1097 }));
1098 exports["default"] = SkipButton;
1099 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1100 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1101 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1102 var _button = _interopRequireDefault(__webpack_require__(/*! ./button */ "../app/modules/onboarding/assets/js/components/button.js"));
1103 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1104 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1105 function SkipButton(props) {
1106 var button = props.button,
1107 className = props.className,
1108 _useContext = (0, _react.useContext)(_context.OnboardingContext),
1109 state = _useContext.state,
1110 updateState = _useContext.updateState,
1111 navigate = (0, _router.useNavigate)(),
1112 skipStep = function skipStep() {
1113 var mutatedState = JSON.parse(JSON.stringify(state));
1114 mutatedState.steps[state.currentStep] = 'skipped';
1115 updateState(mutatedState);
1116 if (state.nextStep) {
1117 navigate('onboarding/' + state.nextStep);
1118 }
1119 },
1120 action = button.action || skipStep;
1121
1122 // Make sure the 'action' prop doesn't get printed on the button markup which causes an error.
1123 delete button.action;
1124
1125 // If the button is a link, no onClick functionality should be added.
1126 button.onClick = function () {
1127 elementorCommon.events.dispatchEvent({
1128 event: 'skip',
1129 version: '',
1130 details: {
1131 placement: elementorAppConfig.onboarding.eventPlacement,
1132 step: state.currentStep
1133 }
1134 });
1135 if (!button.href) {
1136 action();
1137 }
1138 };
1139 return /*#__PURE__*/_react.default.createElement(_button.default, {
1140 buttonSettings: button,
1141 className: className,
1142 type: "skip"
1143 });
1144 }
1145 SkipButton.propTypes = {
1146 button: PropTypes.object.isRequired,
1147 className: PropTypes.string
1148 };
1149
1150 /***/ }),
1151
1152 /***/ "../app/modules/onboarding/assets/js/context/context.js":
1153 /*!**************************************************************!*\
1154 !*** ../app/modules/onboarding/assets/js/context/context.js ***!
1155 \**************************************************************/
1156 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1157
1158 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1159
1160
1161 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1162 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1163 Object.defineProperty(exports, "__esModule", ({
1164 value: true
1165 }));
1166 exports.ContextProvider = ContextProvider;
1167 exports.OnboardingContext = void 0;
1168 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1169 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1170 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1171 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1172 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1173 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1174 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1175 var OnboardingContext = (0, _react.createContext)({});
1176 exports.OnboardingContext = OnboardingContext;
1177 function ContextProvider(props) {
1178 var onboardingConfig = elementorAppConfig.onboarding,
1179 initialState = {
1180 // eslint-disable-next-line camelcase
1181 hasPro: elementorAppConfig.hasPro,
1182 isLibraryConnected: onboardingConfig.isLibraryConnected,
1183 isHelloThemeInstalled: onboardingConfig.helloInstalled,
1184 isHelloThemeActivated: onboardingConfig.helloActivated,
1185 siteName: onboardingConfig.siteName,
1186 siteLogo: onboardingConfig.siteLogo,
1187 proNotice: '',
1188 currentStep: '',
1189 nextStep: '',
1190 steps: {
1191 account: false,
1192 hello: false,
1193 chooseFeatures: false,
1194 siteName: false,
1195 siteLogo: false,
1196 goodToGo: false
1197 }
1198 },
1199 _useState = (0, _react.useState)(initialState),
1200 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1201 state = _useState2[0],
1202 setState = _useState2[1],
1203 updateState = (0, _react.useCallback)(function (newState) {
1204 setState(function (prev) {
1205 return _objectSpread(_objectSpread({}, prev), newState);
1206 });
1207 }, [setState]),
1208 getStateObjectToUpdate = function getStateObjectToUpdate(stateObject, mainChangedPropertyKey, subChangedPropertyKey, subChangedPropertyValue) {
1209 var mutatedStateCopy = JSON.parse(JSON.stringify(stateObject));
1210 mutatedStateCopy[mainChangedPropertyKey][subChangedPropertyKey] = subChangedPropertyValue;
1211 return mutatedStateCopy;
1212 };
1213 return /*#__PURE__*/_react.default.createElement(OnboardingContext.Provider, {
1214 value: {
1215 state: state,
1216 setState: setState,
1217 updateState: updateState,
1218 getStateObjectToUpdate: getStateObjectToUpdate
1219 }
1220 }, props.children);
1221 }
1222 ContextProvider.propTypes = {
1223 children: PropTypes.any
1224 };
1225
1226 /***/ }),
1227
1228 /***/ "../app/modules/onboarding/assets/js/pages/account.js":
1229 /*!************************************************************!*\
1230 !*** ../app/modules/onboarding/assets/js/pages/account.js ***!
1231 \************************************************************/
1232 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1233
1234 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1235
1236
1237 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1238 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1239 Object.defineProperty(exports, "__esModule", ({
1240 value: true
1241 }));
1242 exports["default"] = Account;
1243 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1244 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1245 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1246 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1247 var _connect = _interopRequireDefault(__webpack_require__(/*! ../utils/connect */ "../app/modules/onboarding/assets/js/utils/connect.js"));
1248 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
1249 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
1250 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1251 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1252 function Account() {
1253 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1254 state = _useContext.state,
1255 updateState = _useContext.updateState,
1256 getStateObjectToUpdate = _useContext.getStateObjectToUpdate,
1257 _useState = (0, _react.useState)(null),
1258 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1259 noticeState = _useState2[0],
1260 setNoticeState = _useState2[1],
1261 nextStep = getNextStep(),
1262 navigate = (0, _router.useNavigate)(),
1263 pageId = 'account',
1264 actionButtonRef = (0, _react.useRef)(),
1265 alreadyHaveAccountLinkRef = (0, _react.useRef)();
1266 var skipButton;
1267 if ('completed' !== state.steps[pageId]) {
1268 skipButton = {
1269 text: __('Skip', 'elementor')
1270 };
1271 }
1272 var pageTexts = {};
1273 if (state.isLibraryConnected) {
1274 pageTexts = {
1275 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')),
1276 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')]
1277 };
1278 } else {
1279 pageTexts = elementorAppConfig.onboarding.experiment ? {
1280 firstLine: __('Once you connect your Elementor account, you can choose from dozens of professional templates and manage your site with the My Elementor dashboard.', 'elementor'),
1281 listItems: []
1282 } : {
1283 firstLine: __('To get the most out of Elementor, we’ll connect your account.', 'elementor') + ' ' + __('Then you can:', 'elementor'),
1284 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')]
1285 };
1286 }
1287
1288 // If the user is not connected, the on-click action is handled by the <Connect> component, so there is no onclick
1289 // property.
1290 var actionButton = {
1291 role: 'button'
1292 };
1293 if (state.isLibraryConnected) {
1294 actionButton.text = __('Let’s do it', 'elementor');
1295 actionButton.onClick = function () {
1296 elementorCommon.events.dispatchEvent({
1297 event: 'next',
1298 version: '',
1299 details: {
1300 placement: elementorAppConfig.onboarding.eventPlacement,
1301 step: state.currentStep
1302 }
1303 });
1304 updateState(getStateObjectToUpdate(state, 'steps', pageId, 'completed'));
1305 navigate('onboarding/' + nextStep);
1306 };
1307 } else {
1308 actionButton.text = __('Create my account', 'elementor');
1309 actionButton.href = elementorAppConfig.onboarding.urls.signUp + elementorAppConfig.onboarding.utms.connectCta;
1310 actionButton.ref = actionButtonRef;
1311 actionButton.onClick = function () {
1312 elementorCommon.events.dispatchEvent({
1313 event: 'create account',
1314 version: '',
1315 details: {
1316 placement: elementorAppConfig.onboarding.eventPlacement,
1317 source: 'cta'
1318 }
1319 });
1320 };
1321 }
1322 var connectSuccessCallback = function connectSuccessCallback(data) {
1323 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
1324 stateToUpdate.isLibraryConnected = true;
1325 elementorCommon.config.library_connect.is_connected = true;
1326 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
1327 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
1328 updateState(stateToUpdate);
1329 elementorCommon.events.dispatchEvent({
1330 event: 'indication prompt',
1331 version: '',
1332 details: {
1333 placement: elementorAppConfig.onboarding.eventPlacement,
1334 step: state.currentStep,
1335 action_state: 'success',
1336 action: 'connect account'
1337 }
1338 });
1339 setNoticeState({
1340 type: 'success',
1341 icon: 'eicon-check-circle-o',
1342 message: 'Alrighty - your account is connected.'
1343 });
1344 navigate('onboarding/' + nextStep);
1345 };
1346 function getNextStep() {
1347 if (!state.isHelloThemeActivated) {
1348 return 'hello';
1349 }
1350 return elementorAppConfig.onboarding.experiment ? 'chooseFeatures' : 'siteName';
1351 }
1352 var connectFailureCallback = function connectFailureCallback() {
1353 elementorCommon.events.dispatchEvent({
1354 event: 'indication prompt',
1355 version: '',
1356 details: {
1357 placement: elementorAppConfig.onboarding.eventPlacement,
1358 step: state.currentStep,
1359 action_state: 'failure',
1360 action: 'connect account'
1361 }
1362 });
1363 setNoticeState({
1364 type: 'error',
1365 icon: 'eicon-warning',
1366 message: __('Oops, the connection failed. Try again.', 'elementor')
1367 });
1368 navigate('onboarding/' + nextStep);
1369 };
1370 return /*#__PURE__*/_react.default.createElement(_layout.default, {
1371 pageId: pageId,
1372 nextStep: nextStep
1373 }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
1374 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Account.svg',
1375 title: elementorAppConfig.onboarding.experiment ? __('You\'re here!', 'elementor') : __('You\'re here! Let\'s set things up.', 'elementor'),
1376 secondLineTitle: elementorAppConfig.onboarding.experiment ? __(' Let\'s get connected.', 'elementor') : '',
1377 actionButton: actionButton,
1378 skipButton: skipButton,
1379 noticeState: noticeState
1380 }, actionButton.ref && !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement(_connect.default, {
1381 buttonRef: actionButton.ref,
1382 successCallback: function successCallback(data) {
1383 return connectSuccessCallback(data);
1384 },
1385 errorCallback: connectFailureCallback
1386 }), /*#__PURE__*/_react.default.createElement("span", null, pageTexts.firstLine), /*#__PURE__*/_react.default.createElement("ul", null, pageTexts.listItems.map(function (listItem, index) {
1387 return /*#__PURE__*/_react.default.createElement("li", {
1388 key: 'listItem' + index
1389 }, listItem);
1390 }))), !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement("div", {
1391 className: "e-onboarding__footnote"
1392 }, /*#__PURE__*/_react.default.createElement("p", null, __('Already have one?', 'elementor') + ' ', /*#__PURE__*/_react.default.createElement("a", {
1393 ref: alreadyHaveAccountLinkRef,
1394 href: elementorAppConfig.onboarding.urls.connect + elementorAppConfig.onboarding.utms.connectCtaLink,
1395 onClick: function onClick() {
1396 elementorCommon.events.dispatchEvent({
1397 event: 'connect account',
1398 version: '',
1399 details: {
1400 placement: elementorAppConfig.onboarding.eventPlacement
1401 }
1402 });
1403 }
1404 }, __('Connect your account', 'elementor'))), /*#__PURE__*/_react.default.createElement(_connect.default, {
1405 buttonRef: alreadyHaveAccountLinkRef,
1406 successCallback: connectSuccessCallback,
1407 errorCallback: connectFailureCallback
1408 })));
1409 }
1410
1411 /***/ }),
1412
1413 /***/ "../app/modules/onboarding/assets/js/pages/choose-features.js":
1414 /*!********************************************************************!*\
1415 !*** ../app/modules/onboarding/assets/js/pages/choose-features.js ***!
1416 \********************************************************************/
1417 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1418
1419 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1420
1421
1422 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1423 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1424 Object.defineProperty(exports, "__esModule", ({
1425 value: true
1426 }));
1427 exports["default"] = ChooseFeatures;
1428 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1429 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1430 var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
1431 var _message = _interopRequireDefault(__webpack_require__(/*! ../components/message */ "../app/modules/onboarding/assets/js/components/message.js"));
1432 var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
1433 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
1434 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
1435 var _useButtonAction2 = _interopRequireDefault(__webpack_require__(/*! ../utils/use-button-action */ "../app/modules/onboarding/assets/js/utils/use-button-action.js"));
1436 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1437 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1438 function ChooseFeatures() {
1439 var _useAjax = (0, _useAjax2.default)(),
1440 setAjax = _useAjax.setAjax,
1441 tiers = {
1442 advanced: __('Advanced', 'elementor'),
1443 essential: __('Essential', 'elementor')
1444 },
1445 _useState = (0, _react.useState)({
1446 essential: [],
1447 advanced: []
1448 }),
1449 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1450 selectedFeatures = _useState2[0],
1451 setSelectedFeatures = _useState2[1],
1452 _useState3 = (0, _react.useState)(tiers.essential),
1453 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1454 tierName = _useState4[0],
1455 setTierName = _useState4[1],
1456 pageId = 'chooseFeatures',
1457 nextStep = 'goodToGo',
1458 _useButtonAction = (0, _useButtonAction2.default)(pageId, nextStep),
1459 state = _useButtonAction.state,
1460 handleAction = _useButtonAction.handleAction,
1461 actionButton = {
1462 text: __('Upgrade Now', 'elementor'),
1463 href: elementorAppConfig.onboarding.urls.upgrade,
1464 target: '_blank',
1465 onClick: function onClick() {
1466 elementorCommon.events.dispatchEvent({
1467 event: 'next',
1468 version: '',
1469 details: {
1470 placement: elementorAppConfig.onboarding.eventPlacement,
1471 step: state.currentStep
1472 }
1473 });
1474 setAjax({
1475 data: {
1476 action: 'elementor_save_onboarding_features',
1477 data: JSON.stringify({
1478 features: selectedFeatures
1479 })
1480 }
1481 });
1482 handleAction('completed');
1483 }
1484 };
1485 var skipButton;
1486 if ('completed' !== state.steps[pageId]) {
1487 skipButton = {
1488 text: __('Skip', 'elementor'),
1489 action: function action() {
1490 setAjax({
1491 data: {
1492 action: 'elementor_save_onboarding_features',
1493 data: JSON.stringify({
1494 features: selectedFeatures
1495 })
1496 }
1497 });
1498 handleAction('skipped');
1499 }
1500 };
1501 }
1502 if (!isFeatureSelected(selectedFeatures)) {
1503 actionButton.className = 'e-onboarding__button--disabled';
1504 }
1505 (0, _react.useEffect)(function () {
1506 if (selectedFeatures.advanced.length > 0) {
1507 setTierName(tiers.advanced);
1508 } else {
1509 setTierName(tiers.essential);
1510 }
1511 }, [selectedFeatures]);
1512 function isFeatureSelected(features) {
1513 return !!features.advanced.length || !!features.essential.length;
1514 }
1515 return /*#__PURE__*/_react.default.createElement(_layout.default, {
1516 pageId: pageId,
1517 nextStep: nextStep
1518 }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
1519 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg',
1520 title: __('Elevate your website with additional Pro features.', 'elementor'),
1521 actionButton: actionButton,
1522 skipButton: skipButton
1523 }, /*#__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", {
1524 className: "e-onboarding__choose-features-section"
1525 }, _utils.options.map(function (option, index) {
1526 var itemId = "".concat(option.plan, "-").concat(index);
1527 return /*#__PURE__*/_react.default.createElement("label", {
1528 key: itemId,
1529 className: "e-onboarding__choose-features-section__label",
1530 htmlFor: itemId
1531 }, /*#__PURE__*/_react.default.createElement("input", {
1532 className: "e-onboarding__choose-features-section__checkbox",
1533 type: "checkbox",
1534 onChange: function onChange(event) {
1535 return (0, _utils.setSelectedFeatureList)({
1536 checked: event.currentTarget.checked,
1537 id: event.target.value,
1538 text: option.text,
1539 selectedFeatures: selectedFeatures,
1540 setSelectedFeatures: setSelectedFeatures
1541 });
1542 },
1543 id: itemId,
1544 value: itemId
1545 }), option.text);
1546 })), /*#__PURE__*/_react.default.createElement("p", {
1547 className: "e-onboarding__choose-features-section__message"
1548 }, isFeatureSelected(selectedFeatures) && /*#__PURE__*/_react.default.createElement(_message.default, {
1549 tier: tierName
1550 }))));
1551 }
1552
1553 /***/ }),
1554
1555 /***/ "../app/modules/onboarding/assets/js/pages/good-to-go.js":
1556 /*!***************************************************************!*\
1557 !*** ../app/modules/onboarding/assets/js/pages/good-to-go.js ***!
1558 \***************************************************************/
1559 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1560
1561 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1562
1563
1564 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1565 Object.defineProperty(exports, "__esModule", ({
1566 value: true
1567 }));
1568 exports["default"] = GoodToGo;
1569 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1570 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1571 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
1572 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
1573 var _card = _interopRequireDefault(__webpack_require__(/*! ../components/card */ "../app/modules/onboarding/assets/js/components/card.js"));
1574 var _footerButtons = _interopRequireDefault(__webpack_require__(/*! ../components/layout/footer-buttons */ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js"));
1575 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1576 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1577 function GoodToGo() {
1578 var pageId = 'goodToGo',
1579 skipButton = {
1580 text: __('Skip', 'elementor'),
1581 href: elementorAppConfig.onboarding.urls.createNewPage
1582 },
1583 kitLibraryLink = elementorAppConfig.onboarding.urls.kitLibrary + '&referrer=onboarding';
1584 return /*#__PURE__*/_react.default.createElement(_layout.default, {
1585 pageId: pageId
1586 }, /*#__PURE__*/_react.default.createElement("h1", {
1587 className: "e-onboarding__page-content-section-title"
1588 }, elementorAppConfig.onboarding.experiment ? __('Welcome aboard! What\'s next?', 'elementor') : __('That\'s a wrap! What\'s next?', 'elementor')), /*#__PURE__*/_react.default.createElement("div", {
1589 className: "e-onboarding__page-content-section-text"
1590 }, __('There are two ways to get started with Elementor:', 'elementor')), /*#__PURE__*/_react.default.createElement(_grid.default, {
1591 container: true,
1592 alignItems: "center",
1593 justify: "space-between",
1594 className: "e-onboarding__cards-grid e-onboarding__page-content"
1595 }, /*#__PURE__*/_react.default.createElement(_card.default, {
1596 name: "blank",
1597 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Blank_Canvas.svg',
1598 imageAlt: __('Click here to create a new page and open it in Elementor Editor', 'elementor'),
1599 text: __('Edit a blank canvas with the Elementor Editor', 'elementor'),
1600 link: elementorAppConfig.onboarding.urls.createNewPage
1601 }), /*#__PURE__*/_react.default.createElement(_card.default, {
1602 name: "template",
1603 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Library.svg',
1604 imageAlt: __('Click here to go to Elementor\'s Kit Library', 'elementor'),
1605 text: __('Choose a professionally-designed template or import your own', 'elementor'),
1606 link: kitLibraryLink,
1607 clickAction: function clickAction() {
1608 // The location is reloaded to make sure the Kit Library's state is re-created.
1609 location.href = kitLibraryLink;
1610 location.reload();
1611 }
1612 })), /*#__PURE__*/_react.default.createElement(_footerButtons.default, {
1613 skipButton: _objectSpread(_objectSpread({}, skipButton), {}, {
1614 target: '_self'
1615 }),
1616 className: "e-onboarding__good-to-go-footer"
1617 }));
1618 }
1619
1620 /***/ }),
1621
1622 /***/ "../app/modules/onboarding/assets/js/pages/hello-theme.js":
1623 /*!****************************************************************!*\
1624 !*** ../app/modules/onboarding/assets/js/pages/hello-theme.js ***!
1625 \****************************************************************/
1626 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1627
1628 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1629
1630
1631 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1632 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1633 Object.defineProperty(exports, "__esModule", ({
1634 value: true
1635 }));
1636 exports["default"] = HelloTheme;
1637 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1638 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1639 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1640 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1641 var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
1642 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
1643 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
1644 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1645 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1646 /* eslint-disable @wordpress/i18n-ellipsis */
1647
1648 function HelloTheme() {
1649 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1650 state = _useContext.state,
1651 updateState = _useContext.updateState,
1652 getStateObjectToUpdate = _useContext.getStateObjectToUpdate,
1653 _useAjax = (0, _useAjax2.default)(),
1654 activateHelloThemeAjaxState = _useAjax.ajaxState,
1655 setActivateHelloThemeAjaxState = _useAjax.setAjax,
1656 _useState = (0, _react.useState)(false),
1657 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1658 helloInstalledInOnboarding = _useState2[0],
1659 setHelloInstalledInOnboarding = _useState2[1],
1660 _useState3 = (0, _react.useState)(false),
1661 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1662 isInstalling = _useState4[0],
1663 setIsInstalling = _useState4[1],
1664 noticeStateSuccess = {
1665 type: 'success',
1666 icon: 'eicon-check-circle-o',
1667 message: __('Your site’s got Hello theme. High-five!', 'elementor')
1668 },
1669 _useState5 = (0, _react.useState)(state.isHelloThemeActivated ? noticeStateSuccess : null),
1670 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1671 noticeState = _useState6[0],
1672 setNoticeState = _useState6[1],
1673 _useState7 = (0, _react.useState)([]),
1674 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
1675 activeTimeouts = _useState8[0],
1676 setActiveTimeouts = _useState8[1],
1677 continueWithHelloThemeText = state.isHelloThemeActivated ? __('Next', 'elementor') : __('Continue with Hello Theme', 'elementor'),
1678 _useState9 = (0, _react.useState)(continueWithHelloThemeText),
1679 _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
1680 actionButtonText = _useState10[0],
1681 setActionButtonText = _useState10[1],
1682 navigate = (0, _router.useNavigate)(),
1683 pageId = 'hello',
1684 nextStep = elementorAppConfig.onboarding.experiment ? 'chooseFeatures' : 'siteName',
1685 goToNextScreen = function goToNextScreen() {
1686 return navigate('onboarding/' + nextStep);
1687 };
1688
1689 /**
1690 * Setup
1691 *
1692 * If Hello Theme is already activated when onboarding starts, This screen is unneeded and is marked as 'completed'
1693 * and skipped.
1694 */
1695 (0, _react.useEffect)(function () {
1696 if (!helloInstalledInOnboarding && state.isHelloThemeActivated) {
1697 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
1698 updateState(stateToUpdate);
1699 goToNextScreen();
1700 }
1701 }, []);
1702 var resetScreenContent = function resetScreenContent() {
1703 // Clear any active timeouts for changing the action button text during installation.
1704 activeTimeouts.forEach(function (timeoutID) {
1705 return clearTimeout(timeoutID);
1706 });
1707 setActiveTimeouts([]);
1708 setIsInstalling(false);
1709 setActionButtonText(continueWithHelloThemeText);
1710 };
1711
1712 /**
1713 * Callbacks
1714 */
1715 var onHelloThemeActivationSuccess = (0, _react.useCallback)(function () {
1716 setIsInstalling(false);
1717 elementorCommon.events.dispatchEvent({
1718 event: 'indication prompt',
1719 version: '',
1720 details: {
1721 placement: elementorAppConfig.onboarding.eventPlacement,
1722 step: state.currentStep,
1723 action_state: 'success',
1724 action: 'hello theme activation'
1725 }
1726 });
1727 setNoticeState(noticeStateSuccess);
1728 setActionButtonText(__('Next', 'elementor'));
1729 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
1730 stateToUpdate.isHelloThemeActivated = true;
1731 updateState(stateToUpdate);
1732 setHelloInstalledInOnboarding(true);
1733 goToNextScreen();
1734 }, []);
1735 var onErrorInstallHelloTheme = function onErrorInstallHelloTheme() {
1736 elementorCommon.events.dispatchEvent({
1737 event: 'indication prompt',
1738 version: '',
1739 details: {
1740 placement: elementorAppConfig.onboarding.eventPlacement,
1741 step: state.currentStep,
1742 action_state: 'failure',
1743 action: 'hello theme install'
1744 }
1745 });
1746 setNoticeState({
1747 type: 'error',
1748 icon: 'eicon-warning',
1749 message: __('There was a problem installing Hello Theme.', 'elementor')
1750 });
1751 resetScreenContent();
1752 };
1753 var activateHelloTheme = function activateHelloTheme() {
1754 setIsInstalling(true);
1755 updateState({
1756 isHelloThemeInstalled: true
1757 });
1758 setActivateHelloThemeAjaxState({
1759 data: {
1760 action: 'elementor_activate_hello_theme'
1761 }
1762 });
1763 };
1764 var installHelloTheme = function installHelloTheme() {
1765 if (!isInstalling) {
1766 setIsInstalling(true);
1767 }
1768 wp.updates.ajax('install-theme', {
1769 slug: 'hello-elementor',
1770 success: function success() {
1771 return activateHelloTheme();
1772 },
1773 error: function error() {
1774 return onErrorInstallHelloTheme();
1775 }
1776 });
1777 };
1778 var sendNextButtonEvent = function sendNextButtonEvent() {
1779 elementorCommon.events.dispatchEvent({
1780 event: 'next',
1781 version: '',
1782 details: {
1783 placement: elementorAppConfig.onboarding.eventPlacement,
1784 step: state.currentStep
1785 }
1786 });
1787 };
1788
1789 /**
1790 * Action Button
1791 */
1792 var actionButton = {
1793 text: actionButtonText,
1794 role: 'button'
1795 };
1796 if (isInstalling) {
1797 actionButton.className = 'e-onboarding__button--processing';
1798 }
1799 if (state.isHelloThemeActivated) {
1800 actionButton.onClick = function () {
1801 sendNextButtonEvent();
1802 goToNextScreen();
1803 };
1804 } else {
1805 actionButton.onClick = function () {
1806 sendNextButtonEvent();
1807 if (state.isHelloThemeInstalled && !state.isHelloThemeActivated) {
1808 activateHelloTheme();
1809 } else if (!state.isHelloThemeInstalled) {
1810 installHelloTheme();
1811 } else {
1812 goToNextScreen();
1813 }
1814 };
1815 }
1816
1817 /**
1818 * Skip Button
1819 */
1820 var skipButton;
1821 if ('completed' !== state.steps[pageId]) {
1822 skipButton = {
1823 text: __('Skip', 'elementor')
1824 };
1825 }
1826
1827 /**
1828 * Set timeouts for updating the 'Next' button text if the Hello Theme installation is taking too long.
1829 */
1830 (0, _react.useEffect)(function () {
1831 if (isInstalling) {
1832 setActionButtonText( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
1833 className: "eicon-loading eicon-animation-spin",
1834 "aria-hidden": "true"
1835 })));
1836 }
1837 var actionTextTimeouts = [];
1838 var timeout4 = setTimeout(function () {
1839 if (!isInstalling) {
1840 return;
1841 }
1842 setActionButtonText( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
1843 className: "eicon-loading eicon-animation-spin",
1844 "aria-hidden": "true"
1845 }), /*#__PURE__*/_react.default.createElement("span", {
1846 className: "e-onboarding__action-button-text"
1847 }, __('Hold on, this can take a minute...', 'elementor'))));
1848 }, 4000);
1849 actionTextTimeouts.push(timeout4);
1850 var timeout30 = setTimeout(function () {
1851 if (!isInstalling) {
1852 return;
1853 }
1854 setActionButtonText( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
1855 className: "eicon-loading eicon-animation-spin",
1856 "aria-hidden": "true"
1857 }), /*#__PURE__*/_react.default.createElement("span", {
1858 className: "e-onboarding__action-button-text"
1859 }, __('Okay, now we\'re really close...', 'elementor'))));
1860 }, 30000);
1861 actionTextTimeouts.push(timeout30);
1862 setActiveTimeouts(actionTextTimeouts);
1863 }, [isInstalling]);
1864 (0, _react.useEffect)(function () {
1865 if ('initial' !== activateHelloThemeAjaxState.status) {
1866 var _activateHelloThemeAj;
1867 if ('success' === activateHelloThemeAjaxState.status && (_activateHelloThemeAj = activateHelloThemeAjaxState.response) !== null && _activateHelloThemeAj !== void 0 && _activateHelloThemeAj.helloThemeActivated) {
1868 onHelloThemeActivationSuccess();
1869 } else if ('error' === activateHelloThemeAjaxState.status) {
1870 elementorCommon.events.dispatchEvent({
1871 event: 'indication prompt',
1872 version: '',
1873 details: {
1874 placement: elementorAppConfig.onboarding.eventPlacement,
1875 step: state.currentStep,
1876 action_state: 'failure',
1877 action: 'hello theme activation'
1878 }
1879 });
1880 setNoticeState({
1881 type: 'error',
1882 icon: 'eicon-warning',
1883 message: __('There was a problem activating Hello Theme.', 'elementor')
1884 });
1885
1886 // Clear any active timeouts for changing the action button text during installation.
1887 resetScreenContent();
1888 }
1889 }
1890 }, [activateHelloThemeAjaxState.status]);
1891 return /*#__PURE__*/_react.default.createElement(_layout.default, {
1892 pageId: pageId,
1893 nextStep: nextStep
1894 }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
1895 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Hello.svg',
1896 title: __('Every site starts with a theme.', 'elementor'),
1897 actionButton: actionButton,
1898 skipButton: skipButton,
1899 noticeState: noticeState
1900 }, /*#__PURE__*/_react.default.createElement("p", null, __('Hello is Elementor\'s official blank canvas theme optimized to build your website exactly the way you want.', 'elementor')), !elementorAppConfig.onboarding.experiment && /*#__PURE__*/_react.default.createElement("p", null, __('Here\'s why:', 'elementor')), /*#__PURE__*/_react.default.createElement("ul", {
1901 className: "e-onboarding__feature-list"
1902 }, /*#__PURE__*/_react.default.createElement("li", null, __('Light-weight and fast loading', 'elementor')), /*#__PURE__*/_react.default.createElement("li", null, __('Great for SEO', 'elementor')), /*#__PURE__*/_react.default.createElement("li", null, __('Already being used by 1M+ web creators', 'elementor')))), /*#__PURE__*/_react.default.createElement("div", {
1903 className: "e-onboarding__footnote"
1904 }, '* ' + __('You can switch your theme later on', 'elementor')));
1905 }
1906
1907 /***/ }),
1908
1909 /***/ "../app/modules/onboarding/assets/js/pages/site-logo.js":
1910 /*!**************************************************************!*\
1911 !*** ../app/modules/onboarding/assets/js/pages/site-logo.js ***!
1912 \**************************************************************/
1913 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1914
1915 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1916
1917
1918 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1919 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1920 Object.defineProperty(exports, "__esModule", ({
1921 value: true
1922 }));
1923 exports["default"] = SiteLogo;
1924 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1925 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1926 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1927 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1928 var _useAjax3 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
1929 var _dropZone = _interopRequireDefault(__webpack_require__(/*! elementor-app/organisms/drop-zone */ "../app/assets/js/organisms/drop-zone.js"));
1930 var _unfilteredFilesDialog = _interopRequireDefault(__webpack_require__(/*! elementor-app/organisms/unfiltered-files-dialog */ "../app/assets/js/organisms/unfiltered-files-dialog.js"));
1931 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
1932 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
1933 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
1934 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1935 /* eslint-disable jsx-a11y/no-static-element-interactions */
1936 /* eslint-disable jsx-a11y/click-events-have-key-events */
1937
1938 function SiteLogo() {
1939 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1940 state = _useContext.state,
1941 updateState = _useContext.updateState,
1942 getStateObjectToUpdate = _useContext.getStateObjectToUpdate,
1943 _useState = (0, _react.useState)(state.siteLogo.id ? state.siteLogo : null),
1944 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1945 file = _useState2[0],
1946 setFile = _useState2[1],
1947 _useState3 = (0, _react.useState)(false),
1948 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1949 isUploading = _useState4[0],
1950 setIsUploading = _useState4[1],
1951 _useState5 = (0, _react.useState)(false),
1952 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1953 showUnfilteredFilesDialog = _useState6[0],
1954 setShowUnfilteredFilesDialog = _useState6[1],
1955 _useState7 = (0, _react.useState)(),
1956 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
1957 fileSource = _useState8[0],
1958 setFileSource = _useState8[1],
1959 _useState9 = (0, _react.useState)(null),
1960 _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
1961 noticeState = _useState10[0],
1962 setNoticeState = _useState10[1],
1963 _useAjax = (0, _useAjax3.default)(),
1964 updateLogoAjaxState = _useAjax.ajaxState,
1965 setUpdateLogoAjax = _useAjax.setAjax,
1966 _useAjax2 = (0, _useAjax3.default)(),
1967 uploadImageAjaxState = _useAjax2.ajaxState,
1968 setUploadImageAjax = _useAjax2.setAjax,
1969 pageId = 'siteLogo',
1970 nextStep = 'goodToGo',
1971 navigate = (0, _router.useNavigate)(),
1972 actionButton = {
1973 role: 'button',
1974 onClick: function onClick() {
1975 elementorCommon.events.dispatchEvent({
1976 event: 'next',
1977 version: '',
1978 details: {
1979 placement: elementorAppConfig.onboarding.eventPlacement,
1980 step: state.currentStep
1981 }
1982 });
1983 if (file.id) {
1984 if (file.id !== state.siteLogo.id) {
1985 updateSiteLogo();
1986 } else {
1987 // If the currently displayed logo is already set as the site logo, just go to the next screen.
1988 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
1989 updateState(stateToUpdate);
1990 navigate('onboarding/' + nextStep);
1991 }
1992 }
1993 }
1994 };
1995 var skipButton;
1996 if ('completed' !== state.steps[pageId]) {
1997 skipButton = {
1998 text: __('Skip', 'elementor')
1999 };
2000 }
2001 if (isUploading) {
2002 actionButton.text = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
2003 className: "eicon-loading eicon-animation-spin",
2004 "aria-hidden": "true"
2005 }));
2006 } else {
2007 actionButton.text = __('Next', 'elementor');
2008 }
2009 if (!file) {
2010 actionButton.className = 'e-onboarding__button--disabled';
2011 }
2012 var updateSiteLogo = (0, _react.useCallback)(function () {
2013 setIsUploading(true);
2014 setUpdateLogoAjax({
2015 data: {
2016 action: 'elementor_update_site_logo',
2017 data: JSON.stringify({
2018 attachmentId: file.id
2019 })
2020 }
2021 });
2022 }, [file]);
2023 var uploadSiteLogo = function uploadSiteLogo(fileToUpload) {
2024 setIsUploading(true);
2025 setUploadImageAjax({
2026 data: {
2027 action: 'elementor_upload_site_logo',
2028 fileToUpload: fileToUpload
2029 }
2030 });
2031 };
2032 var dismissUnfilteredFilesCallback = function dismissUnfilteredFilesCallback() {
2033 setIsUploading(false);
2034 setFile(null);
2035 setShowUnfilteredFilesDialog(false);
2036 };
2037 var _onFileSelect = function onFileSelect(selectedFile) {
2038 setFileSource('drop');
2039 if ('image/svg+xml' === selectedFile.type && !elementorAppConfig.onboarding.isUnfilteredFilesEnabled) {
2040 setFile(selectedFile);
2041 setIsUploading(true);
2042 setShowUnfilteredFilesDialog(true);
2043 } else {
2044 setFile(selectedFile);
2045 setNoticeState(null);
2046 uploadSiteLogo(selectedFile);
2047 }
2048 };
2049 var onImageRemoveClick = function onImageRemoveClick() {
2050 elementorCommon.events.dispatchEvent({
2051 event: 'remove selected logo',
2052 version: '',
2053 details: {
2054 placement: elementorAppConfig.onboarding.eventPlacement
2055 }
2056 });
2057 setFile(null);
2058 };
2059
2060 /**
2061 * Ajax Callbacks
2062 */
2063 // Run the callback for the new image upload AJAX request.
2064 (0, _react.useEffect)(function () {
2065 if ('initial' !== uploadImageAjaxState.status) {
2066 var _uploadImageAjaxState, _uploadImageAjaxState2;
2067 if ('success' === uploadImageAjaxState.status && (_uploadImageAjaxState = uploadImageAjaxState.response) !== null && _uploadImageAjaxState !== void 0 && (_uploadImageAjaxState2 = _uploadImageAjaxState.imageAttachment) !== null && _uploadImageAjaxState2 !== void 0 && _uploadImageAjaxState2.id) {
2068 elementorCommon.events.dispatchEvent({
2069 event: 'logo image uploaded',
2070 version: '',
2071 details: {
2072 placement: elementorAppConfig.onboarding.eventPlacement,
2073 source: fileSource
2074 }
2075 });
2076 setIsUploading(false);
2077 setFile(uploadImageAjaxState.response.imageAttachment);
2078 if (noticeState) {
2079 setNoticeState(null);
2080 }
2081 } else if ('error' === uploadImageAjaxState.status) {
2082 setIsUploading(false);
2083 setFile(null);
2084 elementorCommon.events.dispatchEvent({
2085 event: 'indication prompt',
2086 version: '',
2087 details: {
2088 placement: elementorAppConfig.onboarding.eventPlacement,
2089 action_state: 'failure',
2090 action: 'logo image upload'
2091 }
2092 });
2093 setNoticeState({
2094 type: 'error',
2095 icon: 'eicon-warning',
2096 message: 'That didn\'t work. Try uploading your file again.'
2097 });
2098 }
2099 }
2100 }, [uploadImageAjaxState.status]);
2101
2102 // Run the callback for the site logo update AJAX request.
2103 (0, _react.useEffect)(function () {
2104 if ('initial' !== updateLogoAjaxState.status) {
2105 var _updateLogoAjaxState$;
2106 if ('success' === updateLogoAjaxState.status && (_updateLogoAjaxState$ = updateLogoAjaxState.response) !== null && _updateLogoAjaxState$ !== void 0 && _updateLogoAjaxState$.siteLogoUpdated) {
2107 elementorCommon.events.dispatchEvent({
2108 event: 'logo image updated',
2109 version: '',
2110 details: {
2111 placement: elementorAppConfig.onboarding.eventPlacement,
2112 source: fileSource
2113 }
2114 });
2115 setIsUploading(false);
2116 if (noticeState) {
2117 setNoticeState(null);
2118 }
2119 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
2120 stateToUpdate.siteLogo = {
2121 id: file.id,
2122 url: file.url
2123 };
2124 updateState(stateToUpdate);
2125 navigate('onboarding/' + nextStep);
2126 } else if ('error' === updateLogoAjaxState.status) {
2127 setIsUploading(false);
2128 elementorCommon.events.dispatchEvent({
2129 event: 'indication prompt',
2130 version: '',
2131 details: {
2132 placement: elementorAppConfig.onboarding.eventPlacement,
2133 step: state.currentStep,
2134 action_state: 'failure',
2135 action: 'update site logo'
2136 }
2137 });
2138 setNoticeState({
2139 type: 'error',
2140 icon: 'eicon-warning',
2141 message: 'That didn\'t work. Try uploading your file again.'
2142 });
2143 }
2144 }
2145 }, [updateLogoAjaxState.status]);
2146 return /*#__PURE__*/_react.default.createElement(_layout.default, {
2147 pageId: pageId,
2148 nextStep: nextStep
2149 }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
2150 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg',
2151 title: __('Have a logo? Add it here.', 'elementor'),
2152 actionButton: actionButton,
2153 skipButton: skipButton,
2154 noticeState: noticeState
2155 }, /*#__PURE__*/_react.default.createElement("span", null, __('Otherwise, you can skip this and add one later.', 'elementor')), file && !showUnfilteredFilesDialog ? /*#__PURE__*/_react.default.createElement("div", {
2156 className: 'e-onboarding__logo-container' + (isUploading ? ' e-onboarding__is-uploading' : '')
2157 }, /*#__PURE__*/_react.default.createElement("div", {
2158 className: "e-onboarding__logo-remove",
2159 onClick: function onClick() {
2160 return onImageRemoveClick();
2161 }
2162 }, /*#__PURE__*/_react.default.createElement("i", {
2163 className: "eicon-trash-o"
2164 })), /*#__PURE__*/_react.default.createElement("img", {
2165 src: file.url,
2166 alt: __('Potential Site Logo', 'elementor')
2167 })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dropZone.default, {
2168 className: "e-onboarding__drop-zone",
2169 heading: __('Drop image here', 'elementor'),
2170 secondaryText: __('or', 'elementor'),
2171 buttonText: __('Open Media Library', 'elementor'),
2172 buttonVariant: "outlined",
2173 buttonColor: "cta",
2174 icon: '',
2175 type: "wp-media",
2176 filetypes: ['jpg', 'jpeg', 'png', 'svg'],
2177 onFileSelect: function onFileSelect(selectedFile) {
2178 return _onFileSelect(selectedFile);
2179 },
2180 onWpMediaSelect: function onWpMediaSelect(frame) {
2181 // Get media attachment details from the frame state
2182 var attachment = frame.state().get('selection').first().toJSON();
2183 setFileSource('browse');
2184 setFile(attachment);
2185 setNoticeState(null);
2186 },
2187 onButtonClick: function onButtonClick() {
2188 elementorCommon.events.dispatchEvent({
2189 event: 'browse file click',
2190 version: '',
2191 details: {
2192 placement: elementorAppConfig.onboarding.eventPlacement,
2193 step: state.currentStep
2194 }
2195 });
2196 }
2197 // TODO: DEAL WITH ERROR
2198 ,
2199 onError: function onError(error) {
2200 if ('file_not_allowed' === error.id) {
2201 elementorCommon.events.dispatchEvent({
2202 event: 'indication prompt',
2203 version: '',
2204 details: {
2205 placement: elementorAppConfig.onboarding.eventPlacement,
2206 step: state.currentStep,
2207 action_state: 'failure',
2208 action: 'logo upload format'
2209 }
2210 });
2211 setNoticeState({
2212 type: 'error',
2213 icon: 'eicon-warning',
2214 message: __('This file type is not supported. Try a different type of file', 'elementor')
2215 });
2216 }
2217 }
2218 })), /*#__PURE__*/_react.default.createElement(_unfilteredFilesDialog.default, {
2219 show: showUnfilteredFilesDialog,
2220 setShow: setShowUnfilteredFilesDialog,
2221 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'),
2222 errorModalText: __('There was a problem with enabling SVG uploads. Try again, or use another image format.', 'elementor'),
2223 onReady: function onReady() {
2224 setShowUnfilteredFilesDialog(false);
2225 elementorAppConfig.onboarding.isUnfilteredFilesEnabled = true;
2226 uploadSiteLogo(file);
2227 },
2228 onDismiss: function onDismiss() {
2229 return dismissUnfilteredFilesCallback();
2230 },
2231 onCancel: function onCancel() {
2232 return dismissUnfilteredFilesCallback();
2233 }
2234 })));
2235 }
2236
2237 /***/ }),
2238
2239 /***/ "../app/modules/onboarding/assets/js/pages/site-name.js":
2240 /*!**************************************************************!*\
2241 !*** ../app/modules/onboarding/assets/js/pages/site-name.js ***!
2242 \**************************************************************/
2243 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2244
2245 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2246
2247
2248 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2249 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2250 Object.defineProperty(exports, "__esModule", ({
2251 value: true
2252 }));
2253 exports["default"] = SiteName;
2254 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2255 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2256 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
2257 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
2258 var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
2259 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
2260 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
2261 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
2262 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
2263 function SiteName() {
2264 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
2265 state = _useContext.state,
2266 updateState = _useContext.updateState,
2267 getStateObjectToUpdate = _useContext.getStateObjectToUpdate,
2268 _useAjax = (0, _useAjax2.default)(),
2269 ajaxState = _useAjax.ajaxState,
2270 setAjax = _useAjax.setAjax,
2271 _useState = (0, _react.useState)(null),
2272 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2273 noticeState = _useState2[0],
2274 setNoticeState = _useState2[1],
2275 _useState3 = (0, _react.useState)(state.siteName),
2276 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2277 siteNameInputValue = _useState4[0],
2278 setSiteNameInputValue = _useState4[1],
2279 pageId = 'siteName',
2280 nextStep = 'siteLogo',
2281 navigate = (0, _router.useNavigate)(),
2282 nameInputRef = (0, _react.useRef)(),
2283 actionButton = {
2284 text: __('Next', 'elementor'),
2285 onClick: function onClick() {
2286 elementorCommon.events.dispatchEvent({
2287 event: 'next',
2288 version: '',
2289 details: {
2290 placement: elementorAppConfig.onboarding.eventPlacement,
2291 step: state.currentStep
2292 }
2293 });
2294
2295 // Only run the site name update AJAX if the new name is different than the existing one and it isn't empty.
2296 if (nameInputRef.current.value !== state.siteName && '' !== nameInputRef.current.value) {
2297 setAjax({
2298 data: {
2299 action: 'elementor_update_site_name',
2300 data: JSON.stringify({
2301 siteName: nameInputRef.current.value
2302 })
2303 }
2304 });
2305 } else if (nameInputRef.current.value === state.siteName) {
2306 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
2307 updateState(stateToUpdate);
2308 navigate('onboarding/' + nextStep);
2309 } else {
2310 var _stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'skipped');
2311 updateState(_stateToUpdate);
2312 navigate('onboarding/' + nextStep);
2313 }
2314 }
2315 };
2316 var skipButton;
2317 if ('completed' !== state.steps[pageId]) {
2318 skipButton = {
2319 text: __('Skip', 'elementor')
2320 };
2321 }
2322 if (!siteNameInputValue) {
2323 actionButton.className = 'e-onboarding__button--disabled';
2324 }
2325
2326 // Run the callback for the site name update AJAX request.
2327 (0, _react.useEffect)(function () {
2328 if ('initial' !== ajaxState.status) {
2329 var _ajaxState$response;
2330 if ('success' === ajaxState.status && (_ajaxState$response = ajaxState.response) !== null && _ajaxState$response !== void 0 && _ajaxState$response.siteNameUpdated) {
2331 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
2332 stateToUpdate.siteName = nameInputRef.current.value;
2333 updateState(stateToUpdate);
2334 navigate('onboarding/' + nextStep);
2335 } else if ('error' === ajaxState.status) {
2336 elementorCommon.events.dispatchEvent({
2337 event: 'indication prompt',
2338 version: '',
2339 details: {
2340 placement: elementorAppConfig.onboarding.eventPlacement,
2341 step: state.currentStep,
2342 action_state: 'failure',
2343 action: 'site name update'
2344 }
2345 });
2346 setNoticeState({
2347 type: 'error',
2348 icon: 'eicon-warning',
2349 message: __('Sorry, the name wasn\'t saved. Try again, or skip for now.', 'elementor')
2350 });
2351 }
2352 }
2353 }, [ajaxState.status]);
2354 return /*#__PURE__*/_react.default.createElement(_layout.default, {
2355 pageId: pageId,
2356 nextStep: nextStep
2357 }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
2358 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg',
2359 title: __('Now, let\'s give your site a name.', 'elementor'),
2360 actionButton: actionButton,
2361 skipButton: skipButton,
2362 noticeState: noticeState
2363 }, /*#__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", {
2364 className: "e-onboarding__text-input e-onboarding__site-name-input",
2365 type: "text",
2366 placeholder: "e.g. Eric's Space Shuttles",
2367 defaultValue: state.siteName || '',
2368 ref: nameInputRef,
2369 onChange: function onChange(event) {
2370 return setSiteNameInputValue(event.target.value);
2371 }
2372 })));
2373 }
2374
2375 /***/ }),
2376
2377 /***/ "../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js":
2378 /*!***************************************************************************!*\
2379 !*** ../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js ***!
2380 \***************************************************************************/
2381 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2382
2383 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2384
2385
2386 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2387 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2388 Object.defineProperty(exports, "__esModule", ({
2389 value: true
2390 }));
2391 exports["default"] = UploadAndInstallPro;
2392 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2393 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2394 var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
2395 var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js"));
2396 var _content = _interopRequireDefault(__webpack_require__(/*! ../../../../../assets/js/layout/content */ "../app/assets/js/layout/content.js"));
2397 var _dropZone = _interopRequireDefault(__webpack_require__(/*! ../../../../../assets/js/organisms/drop-zone */ "../app/assets/js/organisms/drop-zone.js"));
2398 var _notice = _interopRequireDefault(__webpack_require__(/*! ../components/notice */ "../app/modules/onboarding/assets/js/components/notice.js"));
2399 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
2400 var _elementorLoading = _interopRequireDefault(__webpack_require__(/*! elementor-app/molecules/elementor-loading */ "../app/assets/js/molecules/elementor-loading.js"));
2401 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
2402 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
2403 function UploadAndInstallPro() {
2404 (0, _usePageTitle.default)({
2405 title: __('Upload and Install Elementor Pro', 'elementor')
2406 });
2407 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
2408 state = _useContext.state,
2409 _useAjax = (0, _useAjax2.default)(),
2410 installProZipAjaxState = _useAjax.ajaxState,
2411 setInstallProZipAjaxState = _useAjax.setAjax,
2412 _useState = (0, _react.useState)(null),
2413 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2414 noticeState = _useState2[0],
2415 setNoticeState = _useState2[1],
2416 _useState3 = (0, _react.useState)(false),
2417 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2418 isLoading = _useState4[0],
2419 setIsLoading = _useState4[1],
2420 _useState5 = (0, _react.useState)(),
2421 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
2422 fileSource = _useState6[0],
2423 setFileSource = _useState6[1];
2424 var uploadProZip = (0, _react.useCallback)(function (file) {
2425 setIsLoading(true);
2426 setInstallProZipAjaxState({
2427 data: {
2428 action: 'elementor_upload_and_install_pro',
2429 fileToUpload: file
2430 }
2431 });
2432 }, []);
2433 var setErrorNotice = function setErrorNotice() {
2434 var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2435 var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'upload';
2436 var errorMessage = (error === null || error === void 0 ? void 0 : error.message) || 'That didn\'t work. Try uploading your file again.';
2437 elementorCommon.events.dispatchEvent({
2438 event: 'indication prompt',
2439 version: '',
2440 details: {
2441 placement: elementorAppConfig.onboarding.eventPlacement,
2442 step: state.currentStep,
2443 action_state: 'failure',
2444 action: step + ' pro',
2445 source: fileSource
2446 }
2447 });
2448 setNoticeState({
2449 type: 'error',
2450 icon: 'eicon-warning',
2451 message: errorMessage
2452 });
2453 };
2454
2455 /**
2456 * Ajax Callbacks
2457 */
2458 // Run the callback that runs when the Pro Upload Ajax returns a response.
2459 (0, _react.useEffect)(function () {
2460 if ('initial' !== installProZipAjaxState.status) {
2461 var _installProZipAjaxSta;
2462 setIsLoading(false);
2463 if ('success' === installProZipAjaxState.status && (_installProZipAjaxSta = installProZipAjaxState.response) !== null && _installProZipAjaxSta !== void 0 && _installProZipAjaxSta.elementorProInstalled) {
2464 elementorCommon.events.dispatchEvent({
2465 event: 'pro uploaded',
2466 version: '',
2467 details: {
2468 placement: elementorAppConfig.onboarding.eventPlacement,
2469 step: state.currentStep,
2470 source: fileSource
2471 }
2472 });
2473 if (opener && opener !== window) {
2474 opener.jQuery('body').trigger('elementor/upload-and-install-pro/success');
2475 window.close();
2476 opener.focus();
2477 }
2478 } else if ('error' === installProZipAjaxState.status) {
2479 setErrorNotice('install');
2480 }
2481 }
2482 }, [installProZipAjaxState.status]);
2483 var onProUploadHelpLinkClick = function onProUploadHelpLinkClick() {
2484 elementorCommon.events.dispatchEvent({
2485 event: 'pro plugin upload help',
2486 version: '',
2487 details: {
2488 placement: elementorAppConfig.onboarding.eventPlacement,
2489 step: state.currentStep
2490 }
2491 });
2492 };
2493 if (isLoading) {
2494 return /*#__PURE__*/_react.default.createElement(_elementorLoading.default, {
2495 loadingText: __('Uploading', 'elementor')
2496 });
2497 }
2498 return /*#__PURE__*/_react.default.createElement("div", {
2499 className: "eps-app e-onboarding__upload-pro"
2500 }, /*#__PURE__*/_react.default.createElement(_content.default, null, /*#__PURE__*/_react.default.createElement(_dropZone.default, {
2501 className: "e-onboarding__upload-pro-drop-zone",
2502 onFileSelect: function onFileSelect(file, event, source) {
2503 setFileSource(source);
2504 uploadProZip(file);
2505 },
2506 onError: function onError(error) {
2507 return setErrorNotice(error, 'upload');
2508 },
2509 filetypes: ['zip'],
2510 buttonColor: "cta",
2511 buttonVariant: "contained",
2512 heading: __('Import your Elementor Pro plugin file', 'elementor'),
2513 text: __('Drag & Drop your .zip file here', 'elementor'),
2514 secondaryText: __('or', 'elementor'),
2515 buttonText: __('Browse', 'elementor')
2516 }), noticeState && /*#__PURE__*/_react.default.createElement(_notice.default, {
2517 noticeState: noticeState
2518 }), /*#__PURE__*/_react.default.createElement("div", {
2519 className: "e-onboarding__upload-pro-get-file"
2520 }, __('Don\'t know where to get the file from?', 'elementor') + ' ', /*#__PURE__*/_react.default.createElement("a", {
2521 onClick: function onClick() {
2522 return onProUploadHelpLinkClick();
2523 },
2524 href: 'https://my.elementor.com/subscriptions/' + elementorAppConfig.onboarding.utms.downloadPro,
2525 target: "_blank"
2526 }, __('Click here', 'elementor')))));
2527 }
2528
2529 /***/ }),
2530
2531 /***/ "../app/modules/onboarding/assets/js/utils/connect.js":
2532 /*!************************************************************!*\
2533 !*** ../app/modules/onboarding/assets/js/utils/connect.js ***!
2534 \************************************************************/
2535 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2536
2537 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2538
2539
2540 Object.defineProperty(exports, "__esModule", ({
2541 value: true
2542 }));
2543 exports["default"] = Connect;
2544 var _react = __webpack_require__(/*! react */ "react");
2545 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
2546 function Connect(props) {
2547 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
2548 state = _useContext.state,
2549 updateState = _useContext.updateState,
2550 getStateObjectToUpdate = _useContext.getStateObjectToUpdate;
2551 var connectSuccessCallback = function connectSuccessCallback(data) {
2552 var stateToUpdate = getStateObjectToUpdate(state, 'steps', 'account', 'completed');
2553 elementorCommon.config.library_connect.is_connected = true;
2554 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
2555 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
2556 stateToUpdate.isLibraryConnected = true;
2557 updateState(stateToUpdate);
2558 };
2559 (0, _react.useEffect)(function () {
2560 jQuery(props.buttonRef.current).elementorConnect({
2561 success: function success(data) {
2562 return props.successCallback ? props.successCallback(data) : connectSuccessCallback(data);
2563 },
2564 error: function error() {
2565 if (props.errorCallback) {
2566 props.errorCallback();
2567 }
2568 },
2569 popup: {
2570 width: 726,
2571 height: 534
2572 }
2573 });
2574 }, []);
2575 return null;
2576 }
2577 Connect.propTypes = {
2578 buttonRef: PropTypes.object.isRequired,
2579 successCallback: PropTypes.func,
2580 errorCallback: PropTypes.func
2581 };
2582
2583 /***/ }),
2584
2585 /***/ "../app/modules/onboarding/assets/js/utils/use-button-action.js":
2586 /*!**********************************************************************!*\
2587 !*** ../app/modules/onboarding/assets/js/utils/use-button-action.js ***!
2588 \**********************************************************************/
2589 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2590
2591
2592
2593 Object.defineProperty(exports, "__esModule", ({
2594 value: true
2595 }));
2596 exports["default"] = useButtonAction;
2597 var _react = __webpack_require__(/*! react */ "react");
2598 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
2599 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
2600 function useButtonAction(pageId, nextPage) {
2601 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
2602 state = _useContext.state,
2603 updateState = _useContext.updateState,
2604 getStateObjectToUpdate = _useContext.getStateObjectToUpdate;
2605 var navigate = (0, _router.useNavigate)();
2606 var handleAction = function handleAction(action) {
2607 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, action);
2608 updateState(stateToUpdate);
2609 navigate('onboarding/' + nextPage);
2610 };
2611 return {
2612 state: state,
2613 handleAction: handleAction
2614 };
2615 }
2616
2617 /***/ }),
2618
2619 /***/ "../app/modules/onboarding/assets/js/utils/utils.js":
2620 /*!**********************************************************!*\
2621 !*** ../app/modules/onboarding/assets/js/utils/utils.js ***!
2622 \**********************************************************/
2623 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2624
2625 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2626
2627
2628 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2629 Object.defineProperty(exports, "__esModule", ({
2630 value: true
2631 }));
2632 exports.setSelectedFeatureList = exports.options = void 0;
2633 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
2634 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2635 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2636 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2637 /**
2638 * Checkboxes data.
2639 */
2640 var options = [{
2641 plan: 'essential',
2642 text: __('Templates & Theme Builder', 'elementor')
2643 }, {
2644 plan: 'advanced',
2645 text: __('WooCommerce Builder', 'elementor')
2646 }, {
2647 plan: 'essential',
2648 text: __('Lead Collection & Form Builder', 'elementor')
2649 }, {
2650 plan: 'essential',
2651 text: __('Dynamic Content', 'elementor')
2652 }, {
2653 plan: 'advanced',
2654 text: __('Popup Builder', 'elementor')
2655 }, {
2656 plan: 'advanced',
2657 text: __('Custom Code & CSS', 'elementor')
2658 }, {
2659 plan: 'essential',
2660 text: __('Motion Effects & Animations', 'elementor')
2661 }, {
2662 plan: 'advanced',
2663 text: __('Notes & Collaboration', 'elementor')
2664 }];
2665
2666 /**
2667 * Set the selected feature list.
2668 * @param {Object} param0
2669 * @param {boolean} param0.checked
2670 * @param {string} param0.id
2671 * @param {string} param0.text
2672 * @param {Object} param0.selectedFeatures
2673 * @param {Function} param0.setSelectedFeatures
2674 */
2675 exports.options = options;
2676 var setSelectedFeatureList = function setSelectedFeatureList(_ref) {
2677 var checked = _ref.checked,
2678 id = _ref.id,
2679 text = _ref.text,
2680 selectedFeatures = _ref.selectedFeatures,
2681 setSelectedFeatures = _ref.setSelectedFeatures;
2682 var tier = id.split('-')[0];
2683 if (checked) {
2684 setSelectedFeatures(_objectSpread(_objectSpread({}, selectedFeatures), {}, (0, _defineProperty2.default)({}, tier, [].concat((0, _toConsumableArray2.default)(selectedFeatures[tier]), [text]))));
2685 } else {
2686 setSelectedFeatures(_objectSpread(_objectSpread({}, selectedFeatures), {}, (0, _defineProperty2.default)({}, tier, selectedFeatures[tier].filter(function (item) {
2687 return item !== text;
2688 }))));
2689 }
2690 };
2691 exports.setSelectedFeatureList = setSelectedFeatureList;
2692
2693 /***/ })
2694
2695 }]);
2696 //# sourceMappingURL=onboarding.5ceee1b219b66e943cb0.bundle.js.map