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