PluginProbe ʕ •ᴥ•ʔ
Elementor Website Builder – more than just a page builder / 3.35.0-beta4
Elementor Website Builder – more than just a page builder v3.35.0-beta4
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.63cdf72a450944ebd5f7.bundle.js
elementor / assets / js Last commit date
packages 4 months ago 00f53f1b378f6c98c043.bundle.min.js 5 months ago 04441cacbcc0ffea6713.bundle.min.js 4 months ago 0982f37bec0944fbcb10.bundle.js 5 months ago 0bc41c4656ca54cf2aca.bundle.min.js 5 months ago 137ba3baf43f287996c2.bundle.min.js 5 months ago 1564d2bfa4591bf857f3.bundle.min.js 5 months ago 197583acd246fea0e25d.bundle.js 5 months ago 1f7fa1d64dd4cef4a3c0.bundle.js 5 months ago 254132ea6903b7cf0c30.bundle.js 5 months ago 2934fa380b70eb462ece.bundle.min.js 5 months ago 315ffba5a5bf098be034.bundle.min.js 5 months ago 35423d812dc1d52fdb27.bundle.min.js 5 months ago 3c18b6eb4e735ca7e8bf.bundle.js 5 months ago 3c838288a9b7ddd2aea4.bundle.min.js 5 months ago 3d1613aca86991103452.bundle.min.js 5 months ago 3d410a099008411bb011.bundle.js 5 months ago 40d841f4b4ce7b1928f5.bundle.js 5 months ago 4246c56134ca9ba65163.bundle.js 5 months ago 45167112673d4bc99f6b.bundle.js 5 months ago 45a55c192b49ad3f224d.bundle.js 5 months ago 45f1ae567e48fe3da9b0.bundle.min.js 7 months ago 4812775bcbc0ff8a9043.bundle.min.js 5 months ago 4886b33c17731474e197.bundle.min.js 5 months ago 54d62e5edbcf81b72a1f.bundle.min.js 5 months ago 5b13d0f77c0ac139c979.bundle.js 5 months ago 5be98965bbdf1c631fdf.bundle.min.js 5 months ago 6a19e86dd8c1f9165dbe.bundle.js 5 months ago 6cb9e42b9b73a76315e0.bundle.js 5 months ago 72459a35b6570acc77f3.bundle.js 5 months ago 75915b40e37cc6d910ef.bundle.js 5 months ago 7745b82dc4a05385ef1f.bundle.js 5 months ago 79016b3aba18d6be6dc3.bundle.min.js 5 months ago 7a5da9cf33b7d3557599.bundle.js 5 months ago 7a8c6c081d659e35d7d2.bundle.min.js 4 months ago 7d17894dc2ca045cfbb5.bundle.min.js 5 months ago 7dae73b622bebe8a5d94.bundle.js 5 months ago 7f2c78456ab3f406f3df.bundle.js 5 months ago 8277989eebcfba278cb0.bundle.min.js 7 months ago 84288e5699f5d8b8b23e.bundle.min.js 5 months ago 85106d35eeb23f6f4a33.bundle.min.js 4 months ago 877227b9d759b63096a9.bundle.js 5 months ago 8ac2c6e532225b54dba2.bundle.js 5 months ago 8b4f35f99eb521b37d0c.bundle.js 5 months ago 8b6212b7ad0ef8719b6b.bundle.min.js 5 months ago 8e8b47ad5b4e4d038c80.bundle.js 5 months ago 8ecfd8495b7ec419862a.bundle.js 5 months ago 9167bffba76b36a431f5.bundle.min.js 5 months ago 91c1e96a5c75bbc8ec6d.bundle.js 5 months ago 982fcee032dda41fa3a1.bundle.min.js 5 months ago 9832c866a8fe9b51f9d2.bundle.min.js 5 months ago 9dcd9e88237da6496816.bundle.min.js 5 months ago 9f88a0d716a691c2448a.bundle.min.js 7 months ago a2ea929f439e819b924b.bundle.min.js 5 months ago a9f41949787209626737.bundle.min.js 5 months ago ac53273f887639e3c6ea.bundle.min.js 5 months ago accordion.8b0db5058afeb74622f5.bundle.min.js 7 months ago accordion.b9a0ab19c7c872c405d7.bundle.js 5 months ago admin-feedback.js 7 months ago admin-feedback.min.js 7 months ago admin-feedback.strings.js 5 months ago admin-modules.js 5 months ago admin-modules.min.js 5 months ago admin-modules.min.js.LICENSE.txt 10 months ago admin-modules.strings.js 5 months ago admin-notifications.js 7 months ago admin-notifications.min.js 7 months ago admin-notifications.strings.js 5 months ago admin-top-bar.js 5 months ago admin-top-bar.min.js 5 months ago admin-top-bar.strings.js 5 months ago admin.js 4 months ago admin.min.js 4 months ago admin.min.js.LICENSE.txt 10 months ago admin.strings.js 5 months ago aee13673e923469c3275.bundle.min.js 5 months ago ai-admin.js 5 months ago ai-admin.min.js 5 months ago ai-admin.min.js.LICENSE.txt 10 months ago ai-admin.strings.js 5 months ago ai-gutenberg.js 5 months ago ai-gutenberg.min.js 5 months ago ai-gutenberg.min.js.LICENSE.txt 10 months ago ai-gutenberg.strings.js 5 months ago ai-layout.js 5 months ago ai-layout.min.js 5 months ago ai-layout.min.js.LICENSE.txt 10 months ago ai-layout.strings.js 4 months ago ai-media-library.js 5 months ago ai-media-library.min.js 5 months ago ai-media-library.min.js.LICENSE.txt 10 months ago ai-media-library.strings.js 5 months ago ai-unify-product-images.js 5 months ago ai-unify-product-images.min.js 5 months ago ai-unify-product-images.min.js.LICENSE.txt 10 months ago ai-unify-product-images.strings.js 5 months ago ai.js 5 months ago ai.min.js 5 months ago ai.min.js.LICENSE.txt 10 months ago ai.strings.js 4 months ago alert.42cc1d522ef5c60bf874.bundle.min.js 7 months ago alert.fd509aa768e7b35a8e32.bundle.js 5 months ago announcements-app.js 4 months ago announcements-app.min.js 4 months ago announcements-app.min.js.LICENSE.txt 10 months ago announcements-app.strings.js 5 months ago app-loader.js 5 months ago app-loader.min.js 7 months ago app-loader.strings.js 4 months ago app-packages.js 5 months ago app-packages.min.js 5 months ago app-packages.min.js.LICENSE.txt 10 months ago app-packages.strings.js 4 months ago app.js 4 months ago app.min.js 4 months ago app.min.js.LICENSE.txt 10 months ago app.strings.js 4 months ago atomic-widgets-editor.js 4 months ago atomic-widgets-editor.min.js 4 months ago atomic-widgets-editor.min.js.LICENSE.txt 4 months ago atomic-widgets-editor.strings.js 4 months ago atomic-widgets-frontend-handler.js 4 months ago atomic-widgets-frontend-handler.min.js 4 months ago b09b262748a4be8417ce.bundle.js 5 months ago b423d91809cf7e0cb8b0.bundle.js 4 months ago b668f6906820570e60b5.bundle.min.js 5 months ago b96d70044d0d67c2df19.bundle.min.js 7 months ago b97ced1683f62f5686fa.bundle.min.js 5 months ago ba292d36d983cead2a5b.bundle.js 5 months ago bb708343060feb5c4a5d.bundle.min.js 5 months ago beta-tester.js 7 months ago beta-tester.min.js 7 months ago beta-tester.strings.js 5 months ago bf55a1adc050b89179ff.bundle.min.js 5 months ago bff204c1ab0d15e0a69b.bundle.min.js 5 months ago bfff0d754d68404bd5a6.bundle.js 5 months ago c13d205fa26f8af1ce7c.bundle.js 5 months ago c4d335a90ec9a10c603f.bundle.js 4 months ago cf2707501445e5b44fbe.bundle.js 5 months ago cf6ec600fcf4e08ba6d3.bundle.js 5 months ago checklist.js 5 months ago checklist.min.js 5 months ago checklist.min.js.LICENSE.txt 10 months ago checklist.strings.js 5 months ago cloud-library-screenshot.js 5 months ago cloud-library-screenshot.min.js 5 months ago cloud-library-screenshot.min.js.LICENSE.txt 7 months ago cloud-library-screenshot.strings.js 5 months ago common-modules.js 4 months ago common-modules.min.js 4 months ago common-modules.strings.js 5 months ago common.js 4 months ago common.min.js 4 months ago common.min.js.LICENSE.txt 10 months ago common.strings.js 5 months ago contact-buttons.086261d3e9c4d8037686.bundle.js 5 months ago contact-buttons.e98d0220ce8c38404e7e.bundle.min.js 7 months ago container-converter.js 7 months ago container-converter.min.js 7 months ago container-converter.strings.js 5 months ago container-editor-handlers.a2e8e48d28c5544fb183.bundle.min.js 4 months ago container-editor-handlers.e7e069c4e656425c51f8.bundle.js 4 months ago counter.12335f45aaa79d244f24.bundle.min.js 7 months ago counter.7310c276bc7865a3d438.bundle.js 5 months ago d0d9578389b742468cb7.bundle.min.js 5 months ago d42de03ef4a0f50e39ca.bundle.min.js 5 months ago d52aa05c75af56327744.bundle.js 5 months ago d67ddd6f08b08392c42f.bundle.js 5 months ago daecdcc50702fd1d72f1.bundle.js 5 months ago daedc6797eaad5c82711.bundle.min.js 7 months ago db27207322ef9be952ee.bundle.js 5 months ago dev-tools.js 7 months ago dev-tools.min.js 7 months ago dev-tools.strings.js 5 months ago e-home-screen.js 4 months ago e-home-screen.min.js 4 months ago e-home-screen.strings.js 4 months ago e-react-promotions.js 7 months ago e-react-promotions.min.js 7 months ago e-react-promotions.strings.js 5 months ago e-wc-product-editor.js 5 months ago e-wc-product-editor.min.js 7 months ago e-wc-product-editor.min.js.LICENSE.txt 1 year ago e-wc-product-editor.strings.js 5 months ago e1cb4d726bb59646c677.bundle.min.js 7 months ago e2a127e2fb01b578d2ba.bundle.js 5 months ago e393545679b12d012fba.bundle.js 5 months ago e3b540e2c02813e75f38.bundle.min.js 5 months ago e459c6c89c0c0899c850.bundle.js 5 months ago e4d209bf3a704ff88e1a.bundle.js 4 months ago e7d71f4e1d39edbc1fb6.bundle.js 5 months ago e883e6638ef93bfd3204.bundle.js 5 months ago editor-document.js 5 months ago editor-document.min.js 7 months ago editor-document.strings.js 4 months ago editor-environment-v2.js 7 months ago editor-environment-v2.min.js 7 months ago editor-environment-v2.strings.js 5 months ago editor-interactions.js 4 months ago editor-interactions.min.js 4 months ago editor-interactions.strings.js 5 months ago editor-loader-v1.js 7 months ago editor-loader-v1.min.js 7 months ago editor-loader-v1.strings.js 5 months ago editor-loader-v2.js 7 months ago editor-loader-v2.min.js 7 months ago editor-loader-v2.strings.js 5 months ago editor-modules.js 5 months ago editor-modules.min.js 5 months ago editor-modules.min.js.LICENSE.txt 10 months ago editor-modules.strings.js 4 months ago editor-notifications.js 7 months ago editor-notifications.min.js 7 months ago editor-notifications.strings.js 5 months ago editor-one-admin.js 5 months ago editor-one-admin.min.js 5 months ago editor-one-admin.strings.js 5 months ago editor-one-menu.js 5 months ago editor-one-menu.min.js 5 months ago editor-one-menu.strings.js 5 months ago editor-one-sidebar-navigation.js 4 months ago editor-one-sidebar-navigation.min.js 4 months ago editor-one-sidebar-navigation.min.js.LICENSE.txt 5 months ago editor-one-sidebar-navigation.strings.js 5 months ago editor-one-top-bar.js 4 months ago editor-one-top-bar.min.js 4 months ago editor-one-top-bar.min.js.LICENSE.txt 5 months ago editor-one-top-bar.strings.js 5 months ago editor-v4-opt-in-alphachip.js 4 months ago editor-v4-opt-in-alphachip.min.js 4 months ago editor-v4-opt-in-alphachip.strings.js 5 months ago editor-v4-opt-in.js 4 months ago editor-v4-opt-in.min.js 4 months ago editor-v4-opt-in.min.js.LICENSE.txt 5 months ago editor-v4-opt-in.strings.js 5 months ago editor-v4-welcome-opt-in.js 4 months ago editor-v4-welcome-opt-in.min.js 4 months ago editor-v4-welcome-opt-in.strings.js 5 months ago editor.js 4 months ago editor.min.js 4 months ago editor.min.js.LICENSE.txt 5 months ago editor.strings.js 5 months ago ef2100ac3eda1a957819.bundle.min.js 7 months ago ef35c83e4628f0a5c328.bundle.js 5 months ago element-manager-admin.js 5 months ago element-manager-admin.min.js 5 months ago element-manager-admin.min.js.LICENSE.txt 10 months ago element-manager-admin.strings.js 5 months ago elementor-admin-bar.js 7 months ago elementor-admin-bar.min.js 7 months ago elementor-admin-bar.strings.js 5 months ago fa64159422dec32bd185.bundle.js 5 months ago floating-bars.740d06d17cea5cebdb61.bundle.min.js 7 months ago floating-bars.a6e6a043444b62f64f82.bundle.js 5 months ago floating-elements-modal.js 5 months ago floating-elements-modal.min.js 5 months ago floating-elements-modal.strings.js 5 months ago frontend-modules.js 4 months ago frontend-modules.min.js 4 months ago frontend.js 7 months ago frontend.min.js 7 months ago gutenberg.js 7 months ago gutenberg.min.js 7 months ago gutenberg.strings.js 5 months ago image-carousel.6167d20b95b33386757b.bundle.min.js 7 months ago image-carousel.8b25f3674c29b829a867.bundle.js 5 months ago import-export-admin.js 5 months ago import-export-admin.min.js 5 months ago import-export-admin.strings.js 4 months ago import-export-customization-admin.js 4 months ago import-export-customization-admin.min.js 4 months ago import-export-customization-admin.min.js.LICENSE.txt 7 months ago import-export-customization-admin.strings.js 4 months ago interactions.js 4 months ago interactions.min.js 4 months ago interactions.strings.js 5 months ago kit-elements-defaults-editor.js 5 months ago kit-elements-defaults-editor.min.js 5 months ago kit-elements-defaults-editor.min.js.LICENSE.txt 10 months ago kit-elements-defaults-editor.strings.js 5 months ago kit-library.4d4a9d3b76f7410214c3.bundle.min.js 4 months ago kit-library.9c4bbee79edf32c6fcb3.bundle.js 4 months ago lightbox.a1f44406e887981f48c7.bundle.js 5 months ago lightbox.d1799e507b570f6b0496.bundle.min.js 7 months ago media-hints.js 7 months ago media-hints.min.js 7 months ago media-hints.strings.js 5 months ago nested-accordion.294d40984397351fd0f5.bundle.min.js 4 months ago nested-accordion.4340b64226322f36bcc0.bundle.js 4 months ago nested-accordion.js 5 months ago nested-accordion.min.js 5 months ago nested-accordion.min.js.LICENSE.txt 10 months ago nested-accordion.strings.js 5 months ago nested-elements.js 5 months ago nested-elements.min.js 5 months ago nested-elements.strings.js 5 months ago nested-tabs.7a338e6d7e060c473993.bundle.js 5 months ago nested-tabs.a2401356d329f179475e.bundle.min.js 6 months ago nested-tabs.js 5 months ago nested-tabs.min.js 5 months ago nested-tabs.min.js.LICENSE.txt 10 months ago nested-tabs.strings.js 5 months ago nested-title-keyboard-handler.0c2b498e3e0695a1dc19.bundle.js 5 months ago nested-title-keyboard-handler.2a67d3cc630e11815acc.bundle.min.js 6 months ago new-template.js 5 months ago new-template.min.js 5 months ago new-template.strings.js 5 months ago notes.js 7 months ago notes.min.js 7 months ago notes.strings.js 5 months ago onboarding.31a5615a753ffac2c800.bundle.min.js 4 months ago onboarding.63cdf72a450944ebd5f7.bundle.js 4 months ago pro-free-trial-popup.js 7 months ago pro-free-trial-popup.min.js 7 months ago pro-free-trial-popup.strings.js 5 months ago pro-install-events.js 7 months ago pro-install-events.min.js 7 months ago pro-install-events.strings.js 5 months ago progress.0ea083b809812c0e3aa1.bundle.min.js 7 months ago progress.b1057ba870016558bce1.bundle.js 5 months ago responsive-bar.js 7 months ago responsive-bar.min.js 7 months ago responsive-bar.strings.js 5 months ago section-editor-handlers.53ffedef32043348b99b.bundle.min.js 7 months ago section-editor-handlers.d65899d232b5339510d7.bundle.js 5 months ago section-frontend-handlers.c3950c6b190ca134bc8d.bundle.js 5 months ago section-frontend-handlers.d85ab872da118940910d.bundle.min.js 7 months ago shared-editor-handlers.3023894100138e442ab0.bundle.js 4 months ago shared-editor-handlers.cacdcbed391abf4b48b0.bundle.min.js 4 months ago shared-frontend-handlers.03caa53373b56d3bab67.bundle.min.js 7 months ago shared-frontend-handlers.3b079824c37a5fe2bdaa.bundle.js 5 months ago styleguide-app-initiator.js 5 months ago styleguide-app-initiator.min.js 5 months ago styleguide-app-initiator.min.js.LICENSE.txt 10 months ago styleguide-app-initiator.strings.js 5 months ago styleguide-app.04340244193733d78622.bundle.min.js 7 months ago styleguide-app.36ecabae74d9b87fc5a8.bundle.js 5 months ago styleguide.js 7 months ago styleguide.min.js 7 months ago styleguide.strings.js 5 months ago tabs-handler.js 5 months ago tabs-handler.min.js 5 months ago tabs-preview-handler.js 5 months ago tabs-preview-handler.min.js 5 months ago tabs.18344b05d8d1ea0702bc.bundle.min.js 7 months ago tabs.40498fa771d612162c53.bundle.js 5 months ago text-editor.0c9960167105139d27c9.bundle.js 5 months ago text-editor.45609661e409413f1cef.bundle.min.js 7 months ago text-path.b5766aff4e92f7f6c661.bundle.min.js 5 months ago text-path.b5766aff4e92f7f6c661.bundle.min.js.LICENSE.txt 5 months ago text-path.eb787fc2b296f56e6e5f.bundle.js 5 months ago toggle.2a177a3ef4785d3dfbc5.bundle.min.js 7 months ago toggle.b75e66d2aca6f6ee742e.bundle.js 5 months ago video.6e96510afa701d1f2ebc.bundle.js 5 months ago video.86d44e46e43d0807e708.bundle.min.js 7 months ago web-cli.js 5 months ago web-cli.min.js 5 months ago web-cli.min.js.LICENSE.txt 10 months ago web-cli.strings.js 5 months ago webpack.runtime.js 4 months ago webpack.runtime.min.js 4 months ago wp-audio.0ba9114964acf4c37ca2.bundle.js 5 months ago wp-audio.c9624cb6e5dc9de86abd.bundle.min.js 7 months ago youtube-handler.js 5 months ago youtube-handler.min.js 5 months ago
onboarding.63cdf72a450944ebd5f7.bundle.js
5286 lines
1 (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["onboarding"],{
2
3 /***/ "../app/modules/onboarding/assets/js/app.js":
4 /*!**************************************************!*\
5 !*** ../app/modules/onboarding/assets/js/app.js ***!
6 \**************************************************/
7 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8
9 "use strict";
10
11
12 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
13 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
14 Object.defineProperty(exports, "__esModule", ({
15 value: true
16 }));
17 exports["default"] = App;
18 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
19 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
20 var _router2 = _interopRequireDefault(__webpack_require__(/*! @elementor/router */ "@elementor/router"));
21 var _context = __webpack_require__(/*! ./context/context */ "../app/modules/onboarding/assets/js/context/context.js");
22 var _account = _interopRequireDefault(__webpack_require__(/*! ./pages/account */ "../app/modules/onboarding/assets/js/pages/account.js"));
23 var _helloTheme = _interopRequireDefault(__webpack_require__(/*! ./pages/hello-theme */ "../app/modules/onboarding/assets/js/pages/hello-theme.js"));
24 var _siteName = _interopRequireDefault(__webpack_require__(/*! ./pages/site-name */ "../app/modules/onboarding/assets/js/pages/site-name.js"));
25 var _siteLogo = _interopRequireDefault(__webpack_require__(/*! ./pages/site-logo */ "../app/modules/onboarding/assets/js/pages/site-logo.js"));
26 var _goodToGo = _interopRequireDefault(__webpack_require__(/*! ./pages/good-to-go */ "../app/modules/onboarding/assets/js/pages/good-to-go.js"));
27 var _uploadAndInstallPro = _interopRequireDefault(__webpack_require__(/*! ./pages/upload-and-install-pro */ "../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js"));
28 var _chooseFeatures = _interopRequireDefault(__webpack_require__(/*! ./pages/choose-features */ "../app/modules/onboarding/assets/js/pages/choose-features.js"));
29 var _onboardingEventTracking = __webpack_require__(/*! ./utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
30 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
31 function App() {
32 // Send an AJAX request to update the database option which makes sure the Onboarding process only runs once,
33 // for new Elementor sites.
34 (0, _react.useEffect)(function () {
35 var _elementorAppConfig;
36 _onboardingEventTracking.OnboardingEventTracking.initiateCoreOnboarding();
37
38 // This is to prevent dark theme in onboarding app from the frontend and not backend
39 var darkThemeClassName = 'eps-theme-dark';
40 var hasDarkMode = document.body.classList.contains(darkThemeClassName);
41 if (hasDarkMode) {
42 document.body.classList.remove(darkThemeClassName);
43 }
44 if (!((_elementorAppConfig = elementorAppConfig) !== null && _elementorAppConfig !== void 0 && (_elementorAppConfig = _elementorAppConfig.onboarding) !== null && _elementorAppConfig !== void 0 && _elementorAppConfig.onboardingAlreadyRan)) {
45 var formData = new FormData();
46 formData.append('_nonce', elementorCommon.config.ajax.nonce);
47 formData.append('action', 'elementor_update_onboarding_option');
48 fetch(elementorCommon.config.ajax.url, {
49 method: 'POST',
50 body: formData
51 });
52 }
53 elementorAppConfig.return_url = elementorAppConfig.admin_url;
54 return function () {
55 if (hasDarkMode) {
56 document.body.classList.add(darkThemeClassName);
57 }
58 };
59 }, []);
60 return /*#__PURE__*/_react.default.createElement(_context.ContextProvider, null, /*#__PURE__*/_react.default.createElement(_router.LocationProvider, {
61 history: _router2.default.appHistory
62 }, /*#__PURE__*/_react.default.createElement(_router.Router, null, /*#__PURE__*/_react.default.createElement(_account.default, {
63 default: true
64 }), /*#__PURE__*/_react.default.createElement(_helloTheme.default, {
65 path: "hello"
66 }), /*#__PURE__*/_react.default.createElement(_chooseFeatures.default, {
67 path: "chooseFeatures"
68 }), /*#__PURE__*/_react.default.createElement(_siteName.default, {
69 path: "siteName"
70 }), /*#__PURE__*/_react.default.createElement(_siteLogo.default, {
71 path: "siteLogo"
72 }), /*#__PURE__*/_react.default.createElement(_goodToGo.default, {
73 path: "goodToGo"
74 }), /*#__PURE__*/_react.default.createElement(_uploadAndInstallPro.default, {
75 path: "uploadAndInstallPro"
76 }))));
77 }
78
79 /***/ }),
80
81 /***/ "../app/modules/onboarding/assets/js/components/account-content-a.js":
82 /*!***************************************************************************!*\
83 !*** ../app/modules/onboarding/assets/js/components/account-content-a.js ***!
84 \***************************************************************************/
85 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
86
87 "use strict";
88 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
89
90
91 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
92 Object.defineProperty(exports, "__esModule", ({
93 value: true
94 }));
95 exports["default"] = AccountContentA;
96 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
97 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
98 var _connect = _interopRequireDefault(__webpack_require__(/*! ../utils/connect */ "../app/modules/onboarding/assets/js/utils/connect.js"));
99 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ./layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
100 function AccountContentA(_ref) {
101 var actionButton = _ref.actionButton,
102 skipButton = _ref.skipButton,
103 noticeState = _ref.noticeState,
104 pageTexts = _ref.pageTexts,
105 state = _ref.state,
106 connectSuccessCallback = _ref.connectSuccessCallback,
107 connectFailureCallback = _ref.connectFailureCallback;
108 return /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
109 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Account.svg',
110 title: elementorAppConfig.onboarding.experiment ? __('You\'re here!', 'elementor') : __('You\'re here! Let\'s set things up.', 'elementor'),
111 secondLineTitle: elementorAppConfig.onboarding.experiment ? __(' Let\'s get connected.', 'elementor') : '',
112 actionButton: actionButton,
113 skipButton: skipButton,
114 noticeState: noticeState
115 }, actionButton.ref && !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement(_connect.default, {
116 buttonRef: actionButton.ref,
117 successCallback: function successCallback(event, data) {
118 return connectSuccessCallback(event, data);
119 },
120 errorCallback: connectFailureCallback
121 }), /*#__PURE__*/_react.default.createElement("span", null, pageTexts.firstLine), /*#__PURE__*/_react.default.createElement("ul", null, pageTexts.listItems.map(function (listItem, index) {
122 return /*#__PURE__*/_react.default.createElement("li", {
123 key: 'listItem' + index
124 }, listItem);
125 })));
126 }
127 AccountContentA.propTypes = {
128 actionButton: _propTypes.default.shape({
129 ref: _propTypes.default.object
130 }).isRequired,
131 skipButton: _propTypes.default.object,
132 noticeState: _propTypes.default.object,
133 pageTexts: _propTypes.default.shape({
134 firstLine: _propTypes.default.node,
135 listItems: _propTypes.default.arrayOf(_propTypes.default.string)
136 }).isRequired,
137 state: _propTypes.default.shape({
138 isLibraryConnected: _propTypes.default.bool
139 }).isRequired,
140 connectSuccessCallback: _propTypes.default.func.isRequired,
141 connectFailureCallback: _propTypes.default.func.isRequired
142 };
143
144 /***/ }),
145
146 /***/ "../app/modules/onboarding/assets/js/components/account-content-b.js":
147 /*!***************************************************************************!*\
148 !*** ../app/modules/onboarding/assets/js/components/account-content-b.js ***!
149 \***************************************************************************/
150 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
151
152 "use strict";
153 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
154
155
156 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
157 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
158 Object.defineProperty(exports, "__esModule", ({
159 value: true
160 }));
161 exports["default"] = AccountContentB;
162 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
163 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
164 var _connect = _interopRequireDefault(__webpack_require__(/*! ../utils/connect */ "../app/modules/onboarding/assets/js/utils/connect.js"));
165 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
166 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
167 function AccountContentB(_ref) {
168 var state = _ref.state,
169 connectSuccessCallback = _ref.connectSuccessCallback,
170 connectFailureCallback = _ref.connectFailureCallback,
171 updateState = _ref.updateState,
172 getStateObjectToUpdate = _ref.getStateObjectToUpdate,
173 navigate = _ref.navigate,
174 nextStep = _ref.nextStep,
175 pageId = _ref.pageId;
176 var handleConnectClick = function handleConnectClick() {
177 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(1, 'create');
178 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('CREATE_MY_ACCOUNT', {
179 currentStep: 1,
180 createAccountClicked: 'main_cta'
181 });
182 };
183 var handleGuestClick = function handleGuestClick() {
184 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(1, 'skip');
185 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('SKIP', {
186 currentStep: 1
187 });
188 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(1);
189 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('AB_101_START_AS_FREE_USER', {
190 currentStep: 1
191 });
192 updateState(getStateObjectToUpdate(state, 'steps', pageId, 'skipped'));
193 navigate('onboarding/' + nextStep);
194 };
195 var actionButtonRef = (0, _react.useRef)();
196 return /*#__PURE__*/_react.default.createElement("div", {
197 className: "e-onboarding101-variant-b-content"
198 }, /*#__PURE__*/_react.default.createElement("div", {
199 className: "e-onboarding101-variant-b-icon"
200 }, /*#__PURE__*/_react.default.createElement("svg", {
201 width: "104",
202 height: "104",
203 viewBox: "0 0 104 104",
204 fill: "none",
205 xmlns: "http://www.w3.org/2000/svg"
206 }, /*#__PURE__*/_react.default.createElement("rect", {
207 width: "104",
208 height: "104",
209 rx: "24",
210 fill: "#FE7AE3"
211 }), /*#__PURE__*/_react.default.createElement("path", {
212 fillRule: "evenodd",
213 clipRule: "evenodd",
214 d: "M22.242 71.0334C18.3768 65.2487 16.3137 58.4477 16.3137 51.4904C16.3137 42.1611 20.0198 33.2138 26.6167 26.6169C33.2135 20.0201 42.1609 16.314 51.4902 16.314C58.4474 16.314 65.2484 18.377 71.0332 22.2423C76.8179 26.1075 81.3266 31.6013 83.989 38.029C86.6514 44.4566 87.348 51.5294 85.9907 58.353C84.6334 65.1765 81.2833 71.4444 76.3637 76.3639C71.4442 81.2835 65.1763 84.6337 58.3528 85.991C51.5292 87.3483 44.4564 86.6517 38.0287 83.9892C31.6011 81.3268 26.1073 76.8182 22.242 71.0334ZM42.6974 36.8324H36.8356V66.147H42.6974V36.8324ZM66.1449 36.8324H48.5594V42.6942H66.1449V36.8324ZM66.1449 48.5562H48.5594V54.418H66.1449V48.5562ZM66.1449 60.2852H48.5594V66.147H66.1449V60.2852Z",
215 fill: "#91013B"
216 }))), /*#__PURE__*/_react.default.createElement("p", {
217 className: "e-onboarding101-variant-b-description e-onboarding101-variant-b-welcome"
218 }, __('Welcome!', 'elementor')), /*#__PURE__*/_react.default.createElement("h1", {
219 className: "e-onboarding101-variant-b-title"
220 }, __('Connect your account to enable your full creative workspace', 'elementor')), /*#__PURE__*/_react.default.createElement("p", {
221 className: "e-onboarding101-variant-b-description"
222 }, __('Access beautiful templates, ready-made blocks, and a single dashboard to manage all your sites in one place', 'elementor')), /*#__PURE__*/_react.default.createElement("div", {
223 className: "e-onboarding101-variant-b-buttons"
224 }, /*#__PURE__*/_react.default.createElement("a", {
225 ref: actionButtonRef,
226 href: elementorAppConfig.onboarding.urls.signUp + elementorAppConfig.onboarding.utms.connectCta,
227 className: "e-onboarding101-variant-b-button e-onboarding101-variant-b-button--primary",
228 onClick: handleConnectClick,
229 role: "button"
230 }, __('Connect your account', 'elementor')), /*#__PURE__*/_react.default.createElement("button", {
231 className: "e-onboarding101-variant-b-button e-onboarding101-variant-b-button--secondary",
232 onClick: handleGuestClick
233 }, __('Continue as a guest', 'elementor'))), actionButtonRef && !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement(_connect.default, {
234 buttonRef: actionButtonRef,
235 successCallback: function successCallback(event, data) {
236 return connectSuccessCallback(event, data);
237 },
238 errorCallback: connectFailureCallback
239 }));
240 }
241 AccountContentB.propTypes = {
242 state: _propTypes.default.shape({
243 isLibraryConnected: _propTypes.default.bool
244 }).isRequired,
245 connectSuccessCallback: _propTypes.default.func.isRequired,
246 connectFailureCallback: _propTypes.default.func.isRequired,
247 updateState: _propTypes.default.func.isRequired,
248 getStateObjectToUpdate: _propTypes.default.func.isRequired,
249 navigate: _propTypes.default.func.isRequired,
250 nextStep: _propTypes.default.string.isRequired,
251 pageId: _propTypes.default.string.isRequired
252 };
253
254 /***/ }),
255
256 /***/ "../app/modules/onboarding/assets/js/components/button.js":
257 /*!****************************************************************!*\
258 !*** ../app/modules/onboarding/assets/js/components/button.js ***!
259 \****************************************************************/
260 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
261
262 "use strict";
263 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
264
265
266 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
267 Object.defineProperty(exports, "__esModule", ({
268 value: true
269 }));
270 exports["default"] = Button;
271 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
272 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
273 var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
274 var _excluded = ["elRef"];
275 function Button(props) {
276 var buttonSettings = props.buttonSettings,
277 type = props.type;
278 var buttonClasses = 'e-onboarding__button';
279 if (type) {
280 buttonClasses += " e-onboarding__button-".concat(type);
281 }
282 if (buttonSettings.className) {
283 buttonSettings.className += ' ' + buttonClasses;
284 } else {
285 buttonSettings.className = buttonClasses;
286 }
287 var elRef = buttonSettings.elRef,
288 buttonProps = (0, _objectWithoutProperties2.default)(buttonSettings, _excluded);
289 if (buttonSettings.href) {
290 return /*#__PURE__*/_react.default.createElement("a", (0, _extends2.default)({
291 ref: elRef
292 }, buttonProps), buttonSettings.text);
293 }
294 return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
295 ref: elRef
296 }, buttonProps), buttonSettings.text);
297 }
298 Button.propTypes = {
299 buttonSettings: PropTypes.object.isRequired,
300 type: PropTypes.string
301 };
302
303 /***/ }),
304
305 /***/ "../app/modules/onboarding/assets/js/components/card.js":
306 /*!**************************************************************!*\
307 !*** ../app/modules/onboarding/assets/js/components/card.js ***!
308 \**************************************************************/
309 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
310
311 "use strict";
312
313
314 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
315 Object.defineProperty(exports, "__esModule", ({
316 value: true
317 }));
318 exports["default"] = Card;
319 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
320 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
321 function Card(_ref) {
322 var image = _ref.image,
323 imageAlt = _ref.imageAlt,
324 title = _ref.title,
325 text = _ref.text,
326 link = _ref.link,
327 clickAction = _ref.clickAction,
328 _ref$target = _ref.target,
329 target = _ref$target === void 0 ? '_self' : _ref$target;
330 var onClick = function onClick() {
331 if (clickAction) {
332 clickAction();
333 }
334 };
335 return /*#__PURE__*/_react.default.createElement("a", {
336 target: target,
337 className: "e-onboarding__card",
338 href: link,
339 onClick: onClick
340 }, /*#__PURE__*/_react.default.createElement("img", {
341 className: "e-onboarding__card-image",
342 src: image,
343 alt: imageAlt
344 }), !!title && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
345 className: "e-onboarding__card-text"
346 }, title), /*#__PURE__*/_react.default.createElement("div", {
347 className: "e-onboarding__card-text-small"
348 }, text)), !title && /*#__PURE__*/_react.default.createElement("div", {
349 className: "e-onboarding__card-text"
350 }, text));
351 }
352 Card.propTypes = {
353 image: _propTypes.default.string.isRequired,
354 imageAlt: _propTypes.default.string.isRequired,
355 title: _propTypes.default.string,
356 text: _propTypes.default.string.isRequired,
357 link: _propTypes.default.string.isRequired,
358 clickAction: _propTypes.default.func,
359 target: _propTypes.default.string
360 };
361
362 /***/ }),
363
364 /***/ "../app/modules/onboarding/assets/js/components/checklist-item.js":
365 /*!************************************************************************!*\
366 !*** ../app/modules/onboarding/assets/js/components/checklist-item.js ***!
367 \************************************************************************/
368 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
369
370 "use strict";
371 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
372
373
374 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
375 Object.defineProperty(exports, "__esModule", ({
376 value: true
377 }));
378 exports["default"] = ChecklistItem;
379 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
380 function ChecklistItem(props) {
381 return /*#__PURE__*/_react.default.createElement("li", {
382 className: "e-onboarding__checklist-item"
383 }, /*#__PURE__*/_react.default.createElement("i", {
384 className: "eicon-check-circle"
385 }), props.children);
386 }
387 ChecklistItem.propTypes = {
388 children: PropTypes.string
389 };
390
391 /***/ }),
392
393 /***/ "../app/modules/onboarding/assets/js/components/checklist.js":
394 /*!*******************************************************************!*\
395 !*** ../app/modules/onboarding/assets/js/components/checklist.js ***!
396 \*******************************************************************/
397 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
398
399 "use strict";
400 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
401
402
403 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
404 Object.defineProperty(exports, "__esModule", ({
405 value: true
406 }));
407 exports["default"] = Checklist;
408 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
409 function Checklist(props) {
410 return /*#__PURE__*/_react.default.createElement("ul", {
411 className: "e-onboarding__checklist"
412 }, props.children);
413 }
414 Checklist.propTypes = {
415 children: PropTypes.any.isRequired
416 };
417
418 /***/ }),
419
420 /***/ "../app/modules/onboarding/assets/js/components/go-pro-popover.js":
421 /*!************************************************************************!*\
422 !*** ../app/modules/onboarding/assets/js/components/go-pro-popover.js ***!
423 \************************************************************************/
424 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
425
426 "use strict";
427 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
428
429
430 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
431 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
432 Object.defineProperty(exports, "__esModule", ({
433 value: true
434 }));
435 exports["default"] = GoProPopover;
436 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
437 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
438 var _popoverDialog = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/popover-dialog/popover-dialog */ "../app/assets/js/ui/popover-dialog/popover-dialog.js"));
439 var _checklist = _interopRequireDefault(__webpack_require__(/*! ./checklist */ "../app/modules/onboarding/assets/js/components/checklist.js"));
440 var _checklistItem = _interopRequireDefault(__webpack_require__(/*! ./checklist-item */ "../app/modules/onboarding/assets/js/components/checklist-item.js"));
441 var _button = _interopRequireDefault(__webpack_require__(/*! ./button */ "../app/modules/onboarding/assets/js/components/button.js"));
442 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
443 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
444 var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
445 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
446 function GoProPopover(props) {
447 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
448 state = _useContext.state,
449 updateState = _useContext.updateState;
450 var upgradeButtonRef = (0, _react.useRef)(null);
451
452 // Handle the Pro Upload popup window.
453 var alreadyHaveProButtonRef = (0, _react.useCallback)(function (alreadyHaveProButton) {
454 if (!alreadyHaveProButton) {
455 return;
456 }
457 if (!state.currentStep || '' === state.currentStep) {
458 return;
459 }
460 var existingHandler = alreadyHaveProButton._elementorProHandler;
461 if (existingHandler) {
462 alreadyHaveProButton.removeEventListener('click', existingHandler);
463 }
464 var clickHandler = function clickHandler(event) {
465 event.preventDefault();
466 if (!state.currentStep || '' === state.currentStep) {
467 return;
468 }
469 var stepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep);
470 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(stepNumber, 'upgrade_already_pro');
471 _onboardingEventTracking.OnboardingEventTracking.cancelDelayedNoClickEvent();
472 if (stepNumber) {
473 _onboardingEventTracking.OnboardingEventTracking.sendTopUpgrade(stepNumber, 'already_pro_user');
474 }
475 elementorCommon.events.dispatchEvent({
476 event: 'already have pro',
477 version: '',
478 details: {
479 placement: elementorAppConfig.onboarding.eventPlacement,
480 step: state.currentStep
481 }
482 });
483
484 // Open the Pro Upload screen in a popup.
485 window.open(alreadyHaveProButton.href + '&mode=popup', 'elementorUploadPro', "toolbar=no, menubar=no, width=728, height=531, top=100, left=100");
486
487 // Run the callback for when the upload succeeds.
488 elementorCommon.elements.$body.on('elementor/upload-and-install-pro/success', function () {
489 updateState({
490 hasPro: true,
491 proNotice: {
492 color: 'success',
493 children: __('Pro is now active! You can continue.', 'elementor')
494 }
495 });
496 });
497 };
498 alreadyHaveProButton._elementorProHandler = clickHandler;
499 alreadyHaveProButton.addEventListener('click', clickHandler);
500 }, [state.currentStep, updateState]);
501 var getElProButton = {
502 text: elementorAppConfig.onboarding.experiment ? __('Upgrade now', 'elementor') : __('Upgrade Now', 'elementor'),
503 className: 'e-onboarding__go-pro-cta',
504 target: '_blank',
505 href: (0, _utils.addExperimentTrackingToUrl)('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, 'upgrade-popover'),
506 tabIndex: 0,
507 elRef: function elRef(buttonElement) {
508 if (!buttonElement) {
509 return;
510 }
511 upgradeButtonRef.current = buttonElement;
512 },
513 onClick: function onClick() {
514 if (!state.currentStep || '' === state.currentStep) {
515 return;
516 }
517 var stepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep);
518 _onboardingEventTracking.OnboardingEventTracking.cancelDelayedNoClickEvent();
519 if (stepNumber) {
520 _onboardingEventTracking.OnboardingEventTracking.sendTopUpgrade(stepNumber, 'on_tooltip');
521 }
522 elementorCommon.events.dispatchEvent({
523 event: 'get elementor pro',
524 version: '',
525 details: {
526 placement: elementorAppConfig.onboarding.eventPlacement,
527 step: state.currentStep
528 }
529 });
530 }
531 };
532 var targetRef = props.goProButtonRef || upgradeButtonRef;
533 return /*#__PURE__*/_react.default.createElement(_popoverDialog.default, {
534 targetRef: targetRef,
535 wrapperClass: "e-onboarding__go-pro"
536 }, /*#__PURE__*/_react.default.createElement("div", {
537 className: "e-onboarding__go-pro-content"
538 }, /*#__PURE__*/_react.default.createElement("h2", {
539 className: "e-onboarding__go-pro-title"
540 }, __('Ready to Get Elementor Pro?', 'elementor')), /*#__PURE__*/_react.default.createElement(_checklist.default, null, /*#__PURE__*/_react.default.createElement(_checklistItem.default, null, __('90+ Basic & Pro widgets', 'elementor')), /*#__PURE__*/_react.default.createElement(_checklistItem.default, null, __('300+ Basic & Pro templates', 'elementor')), /*#__PURE__*/_react.default.createElement(_checklistItem.default, null, __('Premium Support', 'elementor'))), /*#__PURE__*/_react.default.createElement("div", {
541 className: "e-onboarding__go-pro-paragraph"
542 }, __('And so much more!', 'elementor')), /*#__PURE__*/_react.default.createElement("div", {
543 className: "e-onboarding__go-pro-paragraph"
544 }, /*#__PURE__*/_react.default.createElement(_button.default, {
545 buttonSettings: getElProButton
546 })), /*#__PURE__*/_react.default.createElement("div", {
547 className: "e-onboarding__go-pro-paragraph"
548 }, /*#__PURE__*/_react.default.createElement("a", {
549 tabIndex: "0",
550 className: "e-onboarding__go-pro-already-have",
551 ref: alreadyHaveProButtonRef,
552 href: elementorAppConfig.onboarding.urls.uploadPro,
553 rel: "opener"
554 }, __('Already have Elementor Pro?', 'elementor')))));
555 }
556 GoProPopover.propTypes = {
557 buttonsConfig: _propTypes.default.array.isRequired,
558 goProButtonRef: _propTypes.default.object
559 };
560
561 /***/ }),
562
563 /***/ "../app/modules/onboarding/assets/js/components/good-to-go-content-a.js":
564 /*!******************************************************************************!*\
565 !*** ../app/modules/onboarding/assets/js/components/good-to-go-content-a.js ***!
566 \******************************************************************************/
567 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
568
569 "use strict";
570 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
571
572
573 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
574 Object.defineProperty(exports, "__esModule", ({
575 value: true
576 }));
577 exports["default"] = GoodToGoContentA;
578 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
579 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
580 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
581 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
582 var _card = _interopRequireDefault(__webpack_require__(/*! ./card */ "../app/modules/onboarding/assets/js/components/card.js"));
583 var _footerButtons = _interopRequireDefault(__webpack_require__(/*! ./layout/footer-buttons */ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js"));
584 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
585 var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
586 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
587 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
588 function GoodToGoContentA(_ref) {
589 var skipButton = _ref.skipButton;
590 var kitLibraryLink = elementorAppConfig.onboarding.urls.kitLibrary + '&referrer=onboarding';
591 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h1", {
592 className: "e-onboarding__page-content-section-title"
593 }, elementorAppConfig.onboarding.experiment ? __('Welcome aboard! What\'s next?', 'elementor') : __('That\'s a wrap! What\'s next?', 'elementor')), /*#__PURE__*/_react.default.createElement("div", {
594 className: "e-onboarding__page-content-section-text"
595 }, __('There are three ways to get started with Elementor:', 'elementor')), /*#__PURE__*/_react.default.createElement(_grid.default, {
596 container: true,
597 alignItems: "center",
598 justify: "space-between",
599 className: "e-onboarding__cards-grid e-onboarding__page-content"
600 }, /*#__PURE__*/_react.default.createElement(_card.default, {
601 name: "blank",
602 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Blank_Canvas.svg',
603 imageAlt: __('Click here to create a new page and open it in Elementor Editor', 'elementor'),
604 text: __('Edit a blank canvas with the Elementor Editor', 'elementor'),
605 link: elementorAppConfig.onboarding.urls.createNewPage,
606 clickAction: function clickAction() {
607 _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('blank_canvas');
608 }
609 }), /*#__PURE__*/_react.default.createElement(_card.default, {
610 name: "template",
611 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Library.svg',
612 imageAlt: __('Click here to go to Elementor\'s Website Templates', 'elementor'),
613 text: __('Choose a professionally-designed template or import your own', 'elementor'),
614 link: kitLibraryLink,
615 clickAction: function clickAction() {
616 _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('kit_library');
617 location.href = kitLibraryLink;
618 location.reload();
619 }
620 }), /*#__PURE__*/_react.default.createElement(_card.default, {
621 name: "site-planner",
622 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Site_Planner.svg',
623 imageAlt: __('Click here to go to Elementor\'s Site Planner', 'elementor'),
624 text: __('Create a professional site in minutes using AI', 'elementor'),
625 link: (0, _utils.addExperimentTrackingToUrl)(elementorAppConfig.onboarding.urls.sitePlanner, 'site-planner-step4'),
626 target: "_blank",
627 clickAction: function clickAction() {
628 _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('site_planner');
629 }
630 })), /*#__PURE__*/_react.default.createElement(_footerButtons.default, {
631 skipButton: _objectSpread(_objectSpread({}, skipButton), {}, {
632 target: '_self'
633 }),
634 className: "e-onboarding__good-to-go-footer"
635 }));
636 }
637 GoodToGoContentA.propTypes = {
638 skipButton: _propTypes.default.object.isRequired
639 };
640
641 /***/ }),
642
643 /***/ "../app/modules/onboarding/assets/js/components/good-to-go-content-experiment401-b.js":
644 /*!********************************************************************************************!*\
645 !*** ../app/modules/onboarding/assets/js/components/good-to-go-content-experiment401-b.js ***!
646 \********************************************************************************************/
647 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
648
649 "use strict";
650 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
651
652
653 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
654 Object.defineProperty(exports, "__esModule", ({
655 value: true
656 }));
657 exports["default"] = GoodToGoContentExperiment401B;
658 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
659 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
660 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
661 var _card = _interopRequireDefault(__webpack_require__(/*! ./card */ "../app/modules/onboarding/assets/js/components/card.js"));
662 var _button = _interopRequireDefault(__webpack_require__(/*! ./button */ "../app/modules/onboarding/assets/js/components/button.js"));
663 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
664 var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
665 function GoodToGoContentExperiment401B(_ref) {
666 var skipButton = _ref.skipButton;
667 var kitLibraryLink = elementorAppConfig.onboarding.urls.kitLibrary + '&referrer=onboarding';
668 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h1", {
669 className: "e-onboarding__page-content-section-title"
670 }, __('All set! Choose how to start', 'elementor')), /*#__PURE__*/_react.default.createElement(_grid.default, {
671 container: true,
672 alignItems: "center",
673 justify: "space-between",
674 className: "e-onboarding__cards-grid e-onboarding__page-content"
675 }, /*#__PURE__*/_react.default.createElement(_card.default, {
676 name: "blank",
677 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Blank_Canvas_401.svg',
678 imageAlt: __('Click here to create a new page and open it in Elementor Editor', 'elementor'),
679 title: __('Blank Canvas', 'elementor'),
680 text: __('Start from scratch with the Elementor Editor', 'elementor'),
681 link: elementorAppConfig.onboarding.urls.createNewPage,
682 clickAction: function clickAction() {
683 _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('blank_canvas');
684 }
685 }), /*#__PURE__*/_react.default.createElement(_card.default, {
686 name: "template",
687 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Library_401.svg',
688 imageAlt: __('Click here to go to Elementor\'s Website Templates', 'elementor'),
689 title: __('Website Templates', 'elementor'),
690 text: __('Choose professionally-designed templates or import your own', 'elementor'),
691 link: kitLibraryLink,
692 clickAction: function clickAction() {
693 _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('kit_library');
694 location.href = kitLibraryLink;
695 location.reload();
696 }
697 }), /*#__PURE__*/_react.default.createElement(_card.default, {
698 name: "site-planner",
699 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Site_Planner_401.svg',
700 imageAlt: __('Click here to go to Elementor\'s Site Planner', 'elementor'),
701 title: __('AI Site Planner', 'elementor'),
702 text: __('Get a head start with AI-powered site planning', 'elementor'),
703 link: (0, _utils.addExperimentTrackingToUrl)(elementorAppConfig.onboarding.urls.sitePlanner, 'site-planner-step4'),
704 target: "_blank",
705 clickAction: function clickAction() {
706 _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('site_planner');
707 }
708 })), /*#__PURE__*/_react.default.createElement(_grid.default, {
709 container: true,
710 alignItems: "center",
711 justify: "space-between",
712 className: "e-onboarding__footer e-onboarding__good-to-go-footer"
713 }, /*#__PURE__*/_react.default.createElement("div", {
714 className: "e-onboarding__switch-method-text"
715 }, __('You can switch your method anytime', 'elementor')), /*#__PURE__*/_react.default.createElement(_button.default, {
716 buttonSettings: {
717 text: skipButton.text,
718 href: skipButton.href,
719 target: '_self'
720 },
721 type: "skip"
722 })));
723 }
724 GoodToGoContentExperiment401B.propTypes = {
725 skipButton: _propTypes.default.object.isRequired
726 };
727
728 /***/ }),
729
730 /***/ "../app/modules/onboarding/assets/js/components/good-to-go-content-experiment402-b.js":
731 /*!********************************************************************************************!*\
732 !*** ../app/modules/onboarding/assets/js/components/good-to-go-content-experiment402-b.js ***!
733 \********************************************************************************************/
734 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
735
736 "use strict";
737 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
738
739
740 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
741 Object.defineProperty(exports, "__esModule", ({
742 value: true
743 }));
744 exports["default"] = GoodToGoContentExperiment402B;
745 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
746 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
747 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
748 var _card = _interopRequireDefault(__webpack_require__(/*! ./card */ "../app/modules/onboarding/assets/js/components/card.js"));
749 var _button = _interopRequireDefault(__webpack_require__(/*! ./button */ "../app/modules/onboarding/assets/js/components/button.js"));
750 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
751 var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
752 function GoodToGoContentExperiment402B(_ref) {
753 var skipButton = _ref.skipButton;
754 var kitLibraryLink = elementorAppConfig.onboarding.urls.kitLibrary + '&referrer=onboarding';
755 var handleBlankCanvasClick = function handleBlankCanvasClick(event) {
756 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(4, 'skipped');
757 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(4);
758 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('SKIP', {
759 currentStep: 4
760 });
761 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('EXIT', {
762 currentStep: 4,
763 exitType: 'skip_button'
764 });
765 if (skipButton.href) {
766 event.preventDefault();
767 window.location.href = skipButton.href;
768 }
769 };
770 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h1", {
771 className: "e-onboarding__page-content-section-title"
772 }, __('How would you like to create your website?', 'elementor')), /*#__PURE__*/_react.default.createElement(_grid.default, {
773 container: true,
774 alignItems: "center",
775 justify: "center",
776 className: "e-onboarding__cards-grid e-onboarding__page-content e-onboarding__cards-grid--good-to-go-variant-b"
777 }, /*#__PURE__*/_react.default.createElement(_card.default, {
778 name: "template",
779 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Library.svg',
780 imageAlt: __('Click here to go to Elementor\'s Website Templates', 'elementor'),
781 text: __('Choose a professionally-designed template or import your own', 'elementor'),
782 link: kitLibraryLink,
783 clickAction: function clickAction() {
784 _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('kit_library');
785 location.href = kitLibraryLink;
786 location.reload();
787 }
788 }), /*#__PURE__*/_react.default.createElement(_card.default, {
789 name: "site-planner",
790 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Site_Planner.svg',
791 imageAlt: __('Click here to go to Elementor\'s Site Planner', 'elementor'),
792 text: __('Create a professional site in minutes using AI', 'elementor'),
793 link: (0, _utils.addExperimentTrackingToUrl)(elementorAppConfig.onboarding.urls.sitePlanner, 'site-planner-step4'),
794 target: "_blank",
795 clickAction: function clickAction() {
796 _onboardingEventTracking.OnboardingEventTracking.handleSiteStarterChoice('site_planner');
797 }
798 })), /*#__PURE__*/_react.default.createElement(_grid.default, {
799 container: true,
800 alignItems: "center",
801 justify: "space-between",
802 className: "e-onboarding__footer e-onboarding__good-to-go-footer"
803 }, /*#__PURE__*/_react.default.createElement(_button.default, {
804 buttonSettings: {
805 text: skipButton.text,
806 href: skipButton.href,
807 target: '_self',
808 onClick: handleBlankCanvasClick
809 },
810 type: "skip"
811 })));
812 }
813 GoodToGoContentExperiment402B.propTypes = {
814 skipButton: _propTypes.default.object.isRequired
815 };
816
817 /***/ }),
818
819 /***/ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js":
820 /*!*******************************************************************************!*\
821 !*** ../app/modules/onboarding/assets/js/components/layout/footer-buttons.js ***!
822 \*******************************************************************************/
823 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
824
825 "use strict";
826 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
827
828
829 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
830 Object.defineProperty(exports, "__esModule", ({
831 value: true
832 }));
833 exports["default"] = FooterButtons;
834 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
835 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
836 var _button = _interopRequireDefault(__webpack_require__(/*! ../button */ "../app/modules/onboarding/assets/js/components/button.js"));
837 var _skipButton = _interopRequireDefault(__webpack_require__(/*! ../skip-button */ "../app/modules/onboarding/assets/js/components/skip-button.js"));
838 function FooterButtons(_ref) {
839 var actionButton = _ref.actionButton,
840 skipButton = _ref.skipButton,
841 className = _ref.className;
842 var classNames = 'e-onboarding__footer';
843 if (className) {
844 classNames += ' ' + className;
845 }
846 return /*#__PURE__*/_react.default.createElement(_grid.default, {
847 container: true,
848 alignItems: "center",
849 justify: "space-between",
850 className: classNames
851 }, actionButton && /*#__PURE__*/_react.default.createElement(_button.default, {
852 buttonSettings: actionButton,
853 type: "action"
854 }), skipButton && /*#__PURE__*/_react.default.createElement(_skipButton.default, {
855 button: skipButton
856 }));
857 }
858 FooterButtons.propTypes = {
859 actionButton: PropTypes.object,
860 skipButton: PropTypes.object,
861 className: PropTypes.string
862 };
863
864 /***/ }),
865
866 /***/ "../app/modules/onboarding/assets/js/components/layout/header.js":
867 /*!***********************************************************************!*\
868 !*** ../app/modules/onboarding/assets/js/components/layout/header.js ***!
869 \***********************************************************************/
870 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
871
872 "use strict";
873 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
874
875
876 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
877 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
878 Object.defineProperty(exports, "__esModule", ({
879 value: true
880 }));
881 exports["default"] = Header;
882 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
883 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
884 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
885 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
886 var _goProPopover = _interopRequireDefault(__webpack_require__(/*! ../go-pro-popover */ "../app/modules/onboarding/assets/js/components/go-pro-popover.js"));
887 var _headerButtons = _interopRequireDefault(__webpack_require__(/*! elementor-app/layout/header-buttons */ "../app/assets/js/layout/header-buttons.js"));
888 var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js"));
889 var _onboardingEventTracking = __webpack_require__(/*! ../../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
890 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
891 function Header(props) {
892 (0, _usePageTitle.default)({
893 title: props.title
894 });
895 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
896 state = _useContext.state;
897 var trackXButtonExit = function trackXButtonExit() {
898 var stepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep);
899 _onboardingEventTracking.OnboardingEventTracking.sendExitButtonEvent(stepNumber || state.currentStep);
900 };
901 var onClose = function onClose() {
902 trackXButtonExit();
903 elementorCommon.events.dispatchEvent({
904 event: 'close modal',
905 version: '',
906 details: {
907 placement: elementorAppConfig.onboarding.eventPlacement,
908 step: state.currentStep
909 }
910 });
911 setTimeout(function () {
912 window.top.location = elementorAppConfig.admin_url;
913 }, 100);
914 };
915 return /*#__PURE__*/_react.default.createElement(_grid.default, {
916 container: true,
917 alignItems: "center",
918 justify: "space-between",
919 className: "eps-app__header e-onboarding__header"
920 }, /*#__PURE__*/_react.default.createElement("div", {
921 className: "eps-app__logo-title-wrapper e-onboarding__header-logo"
922 }, /*#__PURE__*/_react.default.createElement("i", {
923 className: "eps-app__logo eicon-elementor-circle"
924 }), /*#__PURE__*/_react.default.createElement("img", {
925 src: elementorCommon.config.urls.assets + 'images/logo-platform.svg',
926 alt: __('Elementor Logo', 'elementor')
927 })), /*#__PURE__*/_react.default.createElement(_headerButtons.default, {
928 buttons: props.buttons,
929 onClose: onClose
930 }), !state.hasPro && /*#__PURE__*/_react.default.createElement(_goProPopover.default, {
931 buttonsConfig: props.buttons,
932 goProButtonRef: props.goProButtonRef
933 }));
934 }
935 Header.propTypes = {
936 title: _propTypes.default.string,
937 buttons: _propTypes.default.arrayOf(_propTypes.default.object),
938 goProButtonRef: _propTypes.default.object
939 };
940 Header.defaultProps = {
941 buttons: []
942 };
943
944 /***/ }),
945
946 /***/ "../app/modules/onboarding/assets/js/components/layout/layout.js":
947 /*!***********************************************************************!*\
948 !*** ../app/modules/onboarding/assets/js/components/layout/layout.js ***!
949 \***********************************************************************/
950 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
951
952 "use strict";
953 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
954
955
956 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
957 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
958 Object.defineProperty(exports, "__esModule", ({
959 value: true
960 }));
961 exports["default"] = Layout;
962 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
963 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
964 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
965 var _header = _interopRequireDefault(__webpack_require__(/*! ./header */ "../app/modules/onboarding/assets/js/components/layout/header.js"));
966 var _progressBar = _interopRequireDefault(__webpack_require__(/*! ../progress-bar/progress-bar */ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js"));
967 var _content = _interopRequireDefault(__webpack_require__(/*! ../../../../../../assets/js/layout/content */ "../app/assets/js/layout/content.js"));
968 var _connect = _interopRequireDefault(__webpack_require__(/*! ../../utils/connect */ "../app/modules/onboarding/assets/js/utils/connect.js"));
969 var _onboardingEventTracking = __webpack_require__(/*! ../../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
970 var _utils = __webpack_require__(/*! ../../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
971 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
972 function getCurrentStepForTracking(pageId, currentStep) {
973 return pageId || currentStep || 'account';
974 }
975 function shouldResetupButtonTracking(buttonRef, pageId, currentStep) {
976 if (!buttonRef) {
977 return false;
978 }
979 var currentStepForTracking = getCurrentStepForTracking(pageId, currentStep);
980 var currentTrackedStep = buttonRef.dataset.onboardingStep;
981 return currentTrackedStep !== currentStepForTracking;
982 }
983 function Layout(props) {
984 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
985 state = _useContext.state,
986 updateState = _useContext.updateState;
987 var stepNumber = (0, _react.useMemo)(function () {
988 return _onboardingEventTracking.OnboardingEventTracking.getStepNumber(props.pageId);
989 }, [props.pageId]);
990 var goProButtonRef = (0, _react.useRef)();
991 var setupTopbarUpgradeTracking = (0, _react.useCallback)(function (buttonElement) {
992 if (!buttonElement) {
993 return;
994 }
995 var currentStep = getCurrentStepForTracking(props.pageId, state.currentStep);
996 goProButtonRef.current = buttonElement;
997 return _onboardingEventTracking.OnboardingEventTracking.setupSingleUpgradeButton(buttonElement, currentStep);
998 }, [state.currentStep, props.pageId]);
999 var handleTopbarConnectSuccess = (0, _react.useCallback)(function () {
1000 updateState({
1001 isLibraryConnected: true
1002 });
1003 }, [updateState]);
1004 (0, _react.useEffect)(function () {
1005 // Send modal load event for current step.
1006 elementorCommon.events.dispatchEvent({
1007 event: 'modal load',
1008 version: '',
1009 details: {
1010 placement: elementorAppConfig.onboarding.eventPlacement,
1011 step: props.pageId,
1012 user_state: elementorCommon.config.library_connect.is_connected ? 'logged' : 'anon'
1013 }
1014 });
1015 if (goProButtonRef.current) {
1016 setupTopbarUpgradeTracking(goProButtonRef.current);
1017 }
1018 updateState({
1019 currentStep: props.pageId,
1020 nextStep: props.nextStep || '',
1021 proNotice: null
1022 });
1023 }, [setupTopbarUpgradeTracking, stepNumber, props.pageId, props.nextStep, updateState]);
1024 (0, _react.useEffect)(function () {
1025 if (shouldResetupButtonTracking(goProButtonRef.current, props.pageId, state.currentStep)) {
1026 setupTopbarUpgradeTracking(goProButtonRef.current);
1027 }
1028 }, [state.currentStep, props.pageId, setupTopbarUpgradeTracking]);
1029 var headerButtons = [],
1030 createAccountButton = {
1031 id: 'create-account',
1032 text: __('Create Account', 'elementor'),
1033 hideText: false,
1034 elRef: (0, _react.useRef)(),
1035 url: elementorAppConfig.onboarding.urls.signUp + elementorAppConfig.onboarding.utms.connectTopBar,
1036 target: '_blank',
1037 rel: 'opener',
1038 onClick: function onClick() {
1039 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('CREATE_MY_ACCOUNT', {
1040 currentStep: stepNumber,
1041 createAccountClicked: 'topbar'
1042 });
1043 elementorCommon.events.dispatchEvent({
1044 event: 'create account',
1045 version: '',
1046 details: {
1047 placement: elementorAppConfig.onboarding.eventPlacement,
1048 step: state.currentStep,
1049 source: 'header'
1050 }
1051 });
1052 }
1053 };
1054 if (state.isLibraryConnected) {
1055 headerButtons.push({
1056 id: 'my-elementor',
1057 text: __('My Elementor', 'elementor'),
1058 hideText: false,
1059 icon: 'eicon-user-circle-o',
1060 url: (0, _utils.addExperimentTrackingToUrl)('https://my.elementor.com/websites/?utm_source=onboarding-wizard&utm_medium=wp-dash&utm_campaign=my-account&utm_content=top-bar&utm_term=' + elementorAppConfig.onboarding.onboardingVersion, 'my-elementor-topbar'),
1061 target: '_blank',
1062 onClick: function onClick() {
1063 elementorCommon.events.dispatchEvent({
1064 event: 'my elementor click',
1065 version: '',
1066 details: {
1067 placement: elementorAppConfig.onboarding.eventPlacement,
1068 step: state.currentStep,
1069 source: 'header'
1070 }
1071 });
1072 }
1073 });
1074 } else {
1075 headerButtons.push(createAccountButton);
1076 }
1077 if (!state.hasPro) {
1078 headerButtons.push({
1079 id: 'go-pro',
1080 text: __('Upgrade', 'elementor'),
1081 hideText: false,
1082 className: 'eps-button__go-pro-btn',
1083 url: (0, _utils.addExperimentTrackingToUrl)('https://elementor.com/pro/?utm_source=onboarding-wizard&utm_campaign=gopro&utm_medium=wp-dash&utm_content=top-bar&utm_term=' + elementorAppConfig.onboarding.onboardingVersion, 'upgrade-topbar'),
1084 target: '_blank',
1085 elRef: setupTopbarUpgradeTracking,
1086 onClick: function onClick() {
1087 var currentStep = getCurrentStepForTracking(props.pageId, state.currentStep);
1088 var currentStepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(currentStep);
1089 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(currentStepNumber, 'upgrade_topbar');
1090 elementorCommon.events.dispatchEvent({
1091 event: 'go pro',
1092 version: '',
1093 details: {
1094 placement: elementorAppConfig.onboarding.eventPlacement,
1095 step: currentStep
1096 }
1097 });
1098 }
1099 });
1100 }
1101 return /*#__PURE__*/_react.default.createElement("div", {
1102 className: "eps-app__lightbox"
1103 }, /*#__PURE__*/_react.default.createElement("div", {
1104 className: "eps-app e-onboarding ".concat(props.className || '')
1105 }, !state.isLibraryConnected && /*#__PURE__*/_react.default.createElement(_connect.default, {
1106 buttonRef: createAccountButton.elRef,
1107 successCallback: handleTopbarConnectSuccess
1108 }), /*#__PURE__*/_react.default.createElement(_header.default, {
1109 title: __('Getting Started', 'elementor'),
1110 buttons: headerButtons,
1111 goProButtonRef: goProButtonRef
1112 }), /*#__PURE__*/_react.default.createElement("div", {
1113 className: 'eps-app__main e-onboarding__page-' + props.pageId
1114 }, /*#__PURE__*/_react.default.createElement(_content.default, {
1115 className: "e-onboarding__content"
1116 }, /*#__PURE__*/_react.default.createElement(_progressBar.default, null), props.children))));
1117 }
1118 Layout.propTypes = {
1119 pageId: _propTypes.default.string.isRequired,
1120 nextStep: _propTypes.default.string,
1121 className: _propTypes.default.string,
1122 children: _propTypes.default.any.isRequired
1123 };
1124
1125 /***/ }),
1126
1127 /***/ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js":
1128 /*!************************************************************************************!*\
1129 !*** ../app/modules/onboarding/assets/js/components/layout/page-content-layout.js ***!
1130 \************************************************************************************/
1131 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1132
1133 "use strict";
1134
1135
1136 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1137 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1138 Object.defineProperty(exports, "__esModule", ({
1139 value: true
1140 }));
1141 exports["default"] = PageContentLayout;
1142 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1143 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1144 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1145 var _grid = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/grid/grid */ "../app/assets/js/ui/grid/grid.js"));
1146 var _notice = _interopRequireDefault(__webpack_require__(/*! ../notice */ "../app/modules/onboarding/assets/js/components/notice.js"));
1147 var _footerButtons = _interopRequireDefault(__webpack_require__(/*! ./footer-buttons */ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js"));
1148 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1149 function PageContentLayout(props) {
1150 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1151 state = _useContext.state;
1152 var printNotices = function printNotices() {
1153 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.noticeState && /*#__PURE__*/_react.default.createElement(_notice.default, {
1154 noticeState: props.noticeState
1155 }), state.proNotice && /*#__PURE__*/_react.default.createElement(_notice.default, {
1156 noticeState: state.proNotice
1157 }));
1158 };
1159 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_grid.default, {
1160 container: true,
1161 alignItems: "center",
1162 justify: "space-between",
1163 className: "e-onboarding__page-content"
1164 }, /*#__PURE__*/_react.default.createElement("div", {
1165 className: "e-onboarding__page-content-start"
1166 }, /*#__PURE__*/_react.default.createElement("h1", {
1167 className: "e-onboarding__page-content-section-title"
1168 }, props.title, props.secondLineTitle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("br", null), props.secondLineTitle)), /*#__PURE__*/_react.default.createElement("div", {
1169 className: "e-onboarding__page-content-section-text"
1170 }, props.children)), props.image && /*#__PURE__*/_react.default.createElement("div", {
1171 className: "e-onboarding__page-content-end"
1172 }, /*#__PURE__*/_react.default.createElement("img", {
1173 src: props.image,
1174 alt: "Information"
1175 }))), props.noticeState && /*#__PURE__*/_react.default.createElement("div", {
1176 className: "e-onboarding__notice-container"
1177 }, props.noticeState || state.proNotice ? printNotices() : /*#__PURE__*/_react.default.createElement("div", {
1178 className: "e-onboarding__notice-empty-spacer"
1179 })), /*#__PURE__*/_react.default.createElement(_footerButtons.default, {
1180 actionButton: props.actionButton,
1181 skipButton: props.skipButton
1182 }));
1183 }
1184 PageContentLayout.propTypes = {
1185 title: _propTypes.default.string,
1186 secondLineTitle: _propTypes.default.string,
1187 children: _propTypes.default.any,
1188 image: _propTypes.default.string,
1189 actionButton: _propTypes.default.object,
1190 skipButton: _propTypes.default.object,
1191 noticeState: _propTypes.default.any
1192 };
1193
1194 /***/ }),
1195
1196 /***/ "../app/modules/onboarding/assets/js/components/message.js":
1197 /*!*****************************************************************!*\
1198 !*** ../app/modules/onboarding/assets/js/components/message.js ***!
1199 \*****************************************************************/
1200 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1201
1202 "use strict";
1203 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1204 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1205
1206
1207 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1208 Object.defineProperty(exports, "__esModule", ({
1209 value: true
1210 }));
1211 exports["default"] = Message;
1212 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1213 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1214 function Message(_ref) {
1215 var tier = _ref.tier;
1216 /* Translators: %s: Plan name */
1217 var translatedString = __('Based on the features you chose, we recommend the %s plan, or higher', 'elementor');
1218 var _translatedString$spl = translatedString.split('%s'),
1219 _translatedString$spl2 = (0, _slicedToArray2.default)(_translatedString$spl, 2),
1220 messageFirstPart = _translatedString$spl2[0],
1221 messageSecondPart = _translatedString$spl2[1];
1222 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, messageFirstPart, /*#__PURE__*/_react.default.createElement("strong", null, tier), messageSecondPart);
1223 }
1224 Message.propTypes = {
1225 tier: PropTypes.string.isRequired
1226 };
1227
1228 /***/ }),
1229
1230 /***/ "../app/modules/onboarding/assets/js/components/notice.js":
1231 /*!****************************************************************!*\
1232 !*** ../app/modules/onboarding/assets/js/components/notice.js ***!
1233 \****************************************************************/
1234 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1235
1236 "use strict";
1237 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1238
1239
1240 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1241 Object.defineProperty(exports, "__esModule", ({
1242 value: true
1243 }));
1244 exports["default"] = Notice;
1245 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1246 function Notice(props) {
1247 return /*#__PURE__*/_react.default.createElement("div", {
1248 className: "e-onboarding__notice e-onboarding__notice--".concat(props.noticeState.type)
1249 }, /*#__PURE__*/_react.default.createElement("i", {
1250 className: props.noticeState.icon
1251 }), /*#__PURE__*/_react.default.createElement("span", {
1252 className: "e-onboarding__notice-text"
1253 }, props.noticeState.message));
1254 }
1255 Notice.propTypes = {
1256 noticeState: PropTypes.object
1257 };
1258
1259 /***/ }),
1260
1261 /***/ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js":
1262 /*!****************************************************************************************!*\
1263 !*** ../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js ***!
1264 \****************************************************************************************/
1265 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1266
1267 "use strict";
1268
1269
1270 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1271 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1272 Object.defineProperty(exports, "__esModule", ({
1273 value: true
1274 }));
1275 exports["default"] = ProgressBarItem;
1276 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1277 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1278 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1279 var _onboardingEventTracking = __webpack_require__(/*! ../../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
1280 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1281 function ProgressBarItem(props) {
1282 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1283 state = _useContext.state,
1284 stepCompleted = 'completed' === state.steps[props.id],
1285 stepSkipped = 'skipped' === state.steps[props.id];
1286 var isExperiment101VariantB = 'B' === localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT101_VARIANT);
1287 var itemClasses = 'e-onboarding__progress-bar-item';
1288 if (props.id === state.currentStep) {
1289 itemClasses += ' e-onboarding__progress-bar-item--active';
1290 } else if (stepCompleted) {
1291 itemClasses += ' e-onboarding__progress-bar-item--completed';
1292 } else if (stepSkipped) {
1293 itemClasses += ' e-onboarding__progress-bar-item--skipped';
1294 }
1295 if (isExperiment101VariantB && 0 === props.index) {
1296 return null;
1297 }
1298 var itemIndex = isExperiment101VariantB ? props.index : props.index + 1;
1299 return (
1300 /*#__PURE__*/
1301 // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
1302 _react.default.createElement("div", {
1303 onClick: props.onClick,
1304 className: itemClasses
1305 }, /*#__PURE__*/_react.default.createElement("div", {
1306 className: "e-onboarding__progress-bar-item-icon",
1307 "data-item-count": !stepCompleted ? itemIndex : null
1308 }, stepCompleted ? /*#__PURE__*/_react.default.createElement("i", {
1309 className: "eicon-check"
1310 }) : ''), props.title)
1311 );
1312 }
1313 ProgressBarItem.propTypes = {
1314 index: _propTypes.default.number.isRequired,
1315 id: _propTypes.default.string.isRequired,
1316 title: _propTypes.default.string.isRequired,
1317 route: _propTypes.default.string,
1318 onClick: _propTypes.default.func
1319 };
1320
1321 /***/ }),
1322
1323 /***/ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js":
1324 /*!***********************************************************************************!*\
1325 !*** ../app/modules/onboarding/assets/js/components/progress-bar/progress-bar.js ***!
1326 \***********************************************************************************/
1327 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1328
1329 "use strict";
1330 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1331
1332
1333 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1334 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1335 Object.defineProperty(exports, "__esModule", ({
1336 value: true
1337 }));
1338 exports["default"] = ProgressBar;
1339 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1340 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
1341 var _context = __webpack_require__(/*! ../../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1342 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1343 var _progressBarItem = _interopRequireDefault(__webpack_require__(/*! ./progress-bar-item */ "../app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js"));
1344 var _onboardingEventTracking = __webpack_require__(/*! ../../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
1345 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1346 function ProgressBar() {
1347 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1348 state = _useContext.state,
1349 navigate = (0, _router.useNavigate)(),
1350 experiment201Variant = localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT201_VARIANT),
1351 isExperiment201VariantB = 'B' === experiment201Variant,
1352 experiment401Variant = localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT401_VARIANT),
1353 isExperiment401VariantB = 'B' === experiment401Variant,
1354 experiment402Variant = localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT402_VARIANT),
1355 isExperiment402VariantB = 'B' === experiment402Variant,
1356 progressBarItemsConfig = [{
1357 id: 'account',
1358 title: __('Elementor Account', 'elementor'),
1359 route: 'account'
1360 }];
1361
1362 // If hello theme is already activated when onboarding starts, don't show this step in the onboarding.
1363 if (!elementorAppConfig.onboarding.helloActivated) {
1364 progressBarItemsConfig.push({
1365 id: 'hello',
1366 title: isExperiment201VariantB ? __('Choose Theme', 'elementor') : __('Hello Biz Theme', 'elementor'),
1367 route: 'hello'
1368 });
1369 }
1370 if (elementorAppConfig.onboarding.experiment) {
1371 progressBarItemsConfig.push({
1372 id: 'chooseFeatures',
1373 title: __('Choose Features', 'elementor'),
1374 route: 'chooseFeatures'
1375 });
1376 } else {
1377 progressBarItemsConfig.push({
1378 id: 'siteName',
1379 title: __('Site Name', 'elementor'),
1380 route: 'site-name'
1381 }, {
1382 id: 'siteLogo',
1383 title: __('Site Logo', 'elementor'),
1384 route: 'site-logo'
1385 });
1386 }
1387 var goodToGoTitle = isExperiment401VariantB || isExperiment402VariantB ? __('Start Creating Site', 'elementor') : __('Good to Go', 'elementor');
1388 progressBarItemsConfig.push({
1389 id: 'goodToGo',
1390 title: goodToGoTitle,
1391 route: 'good-to-go'
1392 });
1393 var progressBarItems = progressBarItemsConfig.map(function (itemConfig, index) {
1394 itemConfig.index = index;
1395 if (state.steps[itemConfig.id]) {
1396 itemConfig.onClick = function () {
1397 var currentStepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep);
1398 var nextStepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(itemConfig.id);
1399 if (4 === currentStepNumber) {
1400 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(4, 'stepper_clicks', {
1401 from_step: currentStepNumber,
1402 to_step: nextStepNumber
1403 });
1404 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(4);
1405 }
1406 elementorCommon.events.dispatchEvent({
1407 event: 'step click',
1408 version: '',
1409 details: {
1410 placement: elementorAppConfig.onboarding.eventPlacement,
1411 step: state.currentStep,
1412 next_step: itemConfig.id
1413 }
1414 });
1415 navigate('/onboarding/' + itemConfig.id);
1416 };
1417 }
1418 return /*#__PURE__*/_react.default.createElement(_progressBarItem.default, (0, _extends2.default)({
1419 key: itemConfig.id
1420 }, itemConfig));
1421 });
1422 return /*#__PURE__*/_react.default.createElement("div", {
1423 className: "e-onboarding__progress-bar"
1424 }, progressBarItems);
1425 }
1426
1427 /***/ }),
1428
1429 /***/ "../app/modules/onboarding/assets/js/components/skip-button.js":
1430 /*!*********************************************************************!*\
1431 !*** ../app/modules/onboarding/assets/js/components/skip-button.js ***!
1432 \*********************************************************************/
1433 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1434
1435 "use strict";
1436 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1437
1438
1439 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1440 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1441 Object.defineProperty(exports, "__esModule", ({
1442 value: true
1443 }));
1444 exports["default"] = SkipButton;
1445 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1446 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1447 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1448 var _button = _interopRequireDefault(__webpack_require__(/*! ./button */ "../app/modules/onboarding/assets/js/components/button.js"));
1449 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
1450 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1451 function SkipButton(props) {
1452 var button = props.button,
1453 className = props.className,
1454 _useContext = (0, _react.useContext)(_context.OnboardingContext),
1455 state = _useContext.state,
1456 updateState = _useContext.updateState,
1457 navigate = (0, _router.useNavigate)(),
1458 skipStep = function skipStep() {
1459 var mutatedState = JSON.parse(JSON.stringify(state));
1460 mutatedState.steps[state.currentStep] = 'skipped';
1461 updateState(mutatedState);
1462 if (state.nextStep) {
1463 navigate('onboarding/' + state.nextStep);
1464 }
1465 },
1466 action = button.action || skipStep;
1467
1468 // Make sure the 'action' prop doesn't get printed on the button markup which causes an error.
1469 delete button.action;
1470
1471 // Handle both href and non-href skip buttons properly
1472 button.onClick = function (event) {
1473 var stepNumber = _onboardingEventTracking.OnboardingEventTracking.getStepNumber(state.currentStep);
1474 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(stepNumber, 'skipped');
1475 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(stepNumber);
1476 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('SKIP', {
1477 currentStep: stepNumber
1478 });
1479 if (4 === stepNumber) {
1480 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('EXIT', {
1481 currentStep: stepNumber,
1482 exitType: 'skip_button'
1483 });
1484 }
1485 elementorCommon.events.dispatchEvent({
1486 event: 'skip',
1487 version: '',
1488 details: {
1489 placement: elementorAppConfig.onboarding.eventPlacement,
1490 step: state.currentStep
1491 }
1492 });
1493 if (button.href) {
1494 event.preventDefault();
1495 setTimeout(function () {
1496 window.location.href = button.href;
1497 }, 100);
1498 } else {
1499 action();
1500 }
1501 };
1502 return /*#__PURE__*/_react.default.createElement(_button.default, {
1503 buttonSettings: button,
1504 className: className,
1505 type: "skip"
1506 });
1507 }
1508 SkipButton.propTypes = {
1509 button: PropTypes.object.isRequired,
1510 className: PropTypes.string
1511 };
1512
1513 /***/ }),
1514
1515 /***/ "../app/modules/onboarding/assets/js/components/theme-selection-card.js":
1516 /*!******************************************************************************!*\
1517 !*** ../app/modules/onboarding/assets/js/components/theme-selection-card.js ***!
1518 \******************************************************************************/
1519 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1520
1521 "use strict";
1522
1523
1524 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1525 Object.defineProperty(exports, "__esModule", ({
1526 value: true
1527 }));
1528 exports["default"] = ThemeSelectionCard;
1529 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1530 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1531 function ThemeSelectionCard(_ref) {
1532 var themeSlug = _ref.themeSlug,
1533 label = _ref.label,
1534 title = _ref.title,
1535 description = _ref.description,
1536 illustration = _ref.illustration,
1537 isSelected = _ref.isSelected,
1538 isLoading = _ref.isLoading,
1539 onSelect = _ref.onSelect,
1540 ariaLabel = _ref['aria-label'],
1541 role = _ref.role,
1542 tabIndex = _ref.tabIndex,
1543 onKeyDown = _ref.onKeyDown;
1544 var handleClick = function handleClick() {
1545 if (onSelect && !isLoading) {
1546 onSelect(themeSlug);
1547 }
1548 };
1549 var handleKeyDown = function handleKeyDown(e) {
1550 if (('Enter' === e.key || ' ' === e.key) && onSelect && !isLoading) {
1551 e.preventDefault();
1552 onSelect(themeSlug);
1553 }
1554 };
1555 var handleKeyDownEvent = onKeyDown || handleKeyDown;
1556 return /*#__PURE__*/_react.default.createElement("div", {
1557 className: "e-onboarding__theme-card ".concat(isSelected ? 'e-onboarding__theme-card--selected' : '', " ").concat(isLoading ? 'e-onboarding__theme-card--loading' : ''),
1558 "data-theme": themeSlug,
1559 onClick: handleClick,
1560 role: role || 'button',
1561 tabIndex: tabIndex !== undefined ? tabIndex : 0,
1562 onKeyDown: handleKeyDownEvent,
1563 "aria-label": ariaLabel
1564 }, /*#__PURE__*/_react.default.createElement("div", {
1565 className: "e-onboarding__theme-card-illustration ".concat((illustration === null || illustration === void 0 ? void 0 : illustration.className) || '')
1566 }, (illustration === null || illustration === void 0 ? void 0 : illustration.svg) || (illustration === null || illustration === void 0 ? void 0 : illustration.src) && /*#__PURE__*/_react.default.createElement("img", {
1567 src: illustration.src,
1568 alt: "".concat(title, " theme illustration")
1569 })), /*#__PURE__*/_react.default.createElement("div", {
1570 className: "e-onboarding__theme-card-content"
1571 }, /*#__PURE__*/_react.default.createElement("span", {
1572 className: "e-onboarding__theme-card-label"
1573 }, /*#__PURE__*/_react.default.createElement("span", null, label), " by Elementor"), /*#__PURE__*/_react.default.createElement("h3", {
1574 className: "e-onboarding__theme-card-title"
1575 }, title), /*#__PURE__*/_react.default.createElement("p", {
1576 className: "e-onboarding__theme-card-description"
1577 }, description)));
1578 }
1579 ThemeSelectionCard.propTypes = {
1580 themeSlug: _propTypes.default.string.isRequired,
1581 label: _propTypes.default.string,
1582 title: _propTypes.default.string.isRequired,
1583 description: _propTypes.default.string.isRequired,
1584 illustration: _propTypes.default.shape({
1585 svg: _propTypes.default.element,
1586 src: _propTypes.default.string,
1587 className: _propTypes.default.string
1588 }).isRequired,
1589 isSelected: _propTypes.default.bool,
1590 isLoading: _propTypes.default.bool,
1591 onSelect: _propTypes.default.func,
1592 'aria-label': _propTypes.default.string,
1593 role: _propTypes.default.string,
1594 tabIndex: _propTypes.default.number,
1595 onKeyDown: _propTypes.default.func
1596 };
1597
1598 /***/ }),
1599
1600 /***/ "../app/modules/onboarding/assets/js/components/theme-selection-content-a.js":
1601 /*!***********************************************************************************!*\
1602 !*** ../app/modules/onboarding/assets/js/components/theme-selection-content-a.js ***!
1603 \***********************************************************************************/
1604 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1605
1606 "use strict";
1607 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1608
1609
1610 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1611 Object.defineProperty(exports, "__esModule", ({
1612 value: true
1613 }));
1614 exports["default"] = ThemeSelectionContentA;
1615 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1616 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1617 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ./layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
1618 function ThemeSelectionContentA(_ref) {
1619 var actionButton = _ref.actionButton,
1620 skipButton = _ref.skipButton,
1621 noticeState = _ref.noticeState;
1622 return /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
1623 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Hello_Biz.svg',
1624 title: __('Every site starts with a theme.', 'elementor'),
1625 actionButton: actionButton,
1626 skipButton: skipButton,
1627 noticeState: noticeState
1628 }, /*#__PURE__*/_react.default.createElement("p", null, __('Hello Biz by Elementor helps you launch your professional business website - fast.', 'elementor')), !elementorAppConfig.onboarding.experiment && /*#__PURE__*/_react.default.createElement("p", null, __('Here\'s why:', 'elementor')), /*#__PURE__*/_react.default.createElement("ul", {
1629 className: "e-onboarding__feature-list"
1630 }, /*#__PURE__*/_react.default.createElement("li", null, __('Get online faster', 'elementor')), /*#__PURE__*/_react.default.createElement("li", null, __('Lightweight and fast loading', 'elementor')), /*#__PURE__*/_react.default.createElement("li", null, __('Great for SEO', 'elementor'))));
1631 }
1632 ThemeSelectionContentA.propTypes = {
1633 actionButton: _propTypes.default.object.isRequired,
1634 skipButton: _propTypes.default.object.isRequired,
1635 noticeState: _propTypes.default.object
1636 };
1637
1638 /***/ }),
1639
1640 /***/ "../app/modules/onboarding/assets/js/components/theme-selection-experiment201-variant-b.js":
1641 /*!*************************************************************************************************!*\
1642 !*** ../app/modules/onboarding/assets/js/components/theme-selection-experiment201-variant-b.js ***!
1643 \*************************************************************************************************/
1644 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1645
1646 "use strict";
1647 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1648
1649
1650 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1651 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1652 Object.defineProperty(exports, "__esModule", ({
1653 value: true
1654 }));
1655 exports["default"] = ThemeSelectionContentB;
1656 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1657 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1658 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ./layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
1659 var _themeSelectionCard = _interopRequireDefault(__webpack_require__(/*! ./theme-selection-card */ "../app/modules/onboarding/assets/js/components/theme-selection-card.js"));
1660 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1661 var getThemeData = function getThemeData() {
1662 return [{
1663 slug: 'hello-theme',
1664 label: __('Hello Theme', 'elementor'),
1665 title: __('Build without limits', 'elementor'),
1666 description: __('A minimal theme combining speed, flexibility, and control', 'elementor'),
1667 illustration: {
1668 src: elementorCommon.config.urls.assets + 'images/app/onboarding/hello-card.svg'
1669 }
1670 }, {
1671 slug: 'hello-biz',
1672 label: __('Hello Biz', 'elementor'),
1673 title: __('Instant online presence', 'elementor'),
1674 description: __('A business-first theme offering smart layouts, templates, and site parts', 'elementor'),
1675 illustration: {
1676 src: elementorCommon.config.urls.assets + 'images/app/onboarding/hello-biz-card.svg',
1677 className: 'e-onboarding__theme-card-illustration--hello-biz'
1678 }
1679 }];
1680 };
1681 function ThemeSelectionContentB(_ref) {
1682 var actionButton = _ref.actionButton,
1683 skipButton = _ref.skipButton,
1684 noticeState = _ref.noticeState,
1685 selectedTheme = _ref.selectedTheme,
1686 onThemeSelect = _ref.onThemeSelect,
1687 isInstalling = _ref.isInstalling;
1688 var handleThemeSelect = (0, _react.useCallback)(function (themeSlug) {
1689 if (onThemeSelect) {
1690 onThemeSelect(themeSlug);
1691 }
1692 }, [onThemeSelect]);
1693 var themeData = getThemeData();
1694 return /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
1695 title: __('Choose the right theme for your website', 'elementor'),
1696 actionButton: actionButton,
1697 skipButton: skipButton,
1698 noticeState: noticeState
1699 }, /*#__PURE__*/_react.default.createElement("div", {
1700 className: "e-onboarding__page-content-theme-variant-b"
1701 }, /*#__PURE__*/_react.default.createElement("p", {
1702 className: "e-onboarding__theme-selection-description"
1703 }, __('Hello themes provide a lightweight, Elementor-ready foundation for your site.', 'elementor')), /*#__PURE__*/_react.default.createElement("p", {
1704 className: "e-onboarding__theme-selection-subtitle"
1705 }, __('You can switch your theme anytime.', 'elementor')), /*#__PURE__*/_react.default.createElement("div", {
1706 className: "e-onboarding__theme-cards"
1707 }, themeData.map(function (theme) {
1708 return /*#__PURE__*/_react.default.createElement(_themeSelectionCard.default, {
1709 key: theme.slug,
1710 themeSlug: theme.slug,
1711 label: theme.label,
1712 title: theme.title,
1713 description: theme.description,
1714 illustration: theme.illustration,
1715 isSelected: selectedTheme === theme.slug,
1716 isLoading: isInstalling && selectedTheme === theme.slug,
1717 onSelect: handleThemeSelect,
1718 "aria-label": "Select ".concat(theme.title, " theme: ").concat(theme.description),
1719 role: "button",
1720 tabIndex: 0
1721 });
1722 }))));
1723 }
1724 ThemeSelectionContentB.propTypes = {
1725 actionButton: _propTypes.default.object.isRequired,
1726 skipButton: _propTypes.default.object.isRequired,
1727 noticeState: _propTypes.default.object,
1728 selectedTheme: _propTypes.default.string,
1729 onThemeSelect: _propTypes.default.func,
1730 isInstalling: _propTypes.default.bool
1731 };
1732
1733 /***/ }),
1734
1735 /***/ "../app/modules/onboarding/assets/js/components/theme-selection-experiment202-variant-b.js":
1736 /*!*************************************************************************************************!*\
1737 !*** ../app/modules/onboarding/assets/js/components/theme-selection-experiment202-variant-b.js ***!
1738 \*************************************************************************************************/
1739 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1740
1741 "use strict";
1742 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1743
1744
1745 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1746 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1747 Object.defineProperty(exports, "__esModule", ({
1748 value: true
1749 }));
1750 exports["default"] = ThemeSelectionExperiment202VariantB;
1751 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1752 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1753 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1754 var _notice = _interopRequireDefault(__webpack_require__(/*! ./notice */ "../app/modules/onboarding/assets/js/components/notice.js"));
1755 var _footerButtons = _interopRequireDefault(__webpack_require__(/*! ./layout/footer-buttons */ "../app/modules/onboarding/assets/js/components/layout/footer-buttons.js"));
1756 __webpack_require__(/*! ./theme-selection-experiment202-variant-b.scss */ "../app/modules/onboarding/assets/js/components/theme-selection-experiment202-variant-b.scss");
1757 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1758 var getFeatureData = function getFeatureData() {
1759 return [{
1760 icon: /*#__PURE__*/_react.default.createElement("svg", {
1761 width: "35",
1762 height: "35",
1763 viewBox: "0 0 35 35",
1764 fill: "none",
1765 xmlns: "http://www.w3.org/2000/svg"
1766 }, /*#__PURE__*/_react.default.createElement("path", {
1767 fillRule: "evenodd",
1768 clipRule: "evenodd",
1769 d: "M7.29183 6.927C7.09048 6.927 6.92725 7.09023 6.92725 7.29159V10.5728H28.0731V7.29159C28.0731 7.09023 27.9098 6.927 27.7085 6.927H7.29183ZM30.2606 7.29159C30.2606 5.88211 29.118 4.7395 27.7085 4.7395H7.29183C5.88235 4.7395 4.73975 5.88211 4.73975 7.29159V27.7083C4.73975 29.1177 5.88235 30.2603 7.29183 30.2603H27.7085C29.118 30.2603 30.2606 29.1177 30.2606 27.7083V7.29159ZM28.0731 12.7603H6.92725V27.7083C6.92725 27.9096 7.09048 28.0728 7.29183 28.0728H27.7085C27.9098 28.0728 28.0731 27.9096 28.0731 27.7083V12.7603Z",
1770 fill: "#0C0D0E"
1771 })),
1772 title: __('Header and footer templates', 'elementor'),
1773 description: __('Build a branded look with ready-to-use headers and footers', 'elementor')
1774 }, {
1775 icon: /*#__PURE__*/_react.default.createElement("svg", {
1776 width: "35",
1777 height: "35",
1778 viewBox: "0 0 35 35",
1779 fill: "none",
1780 xmlns: "http://www.w3.org/2000/svg"
1781 }, /*#__PURE__*/_react.default.createElement("path", {
1782 fillRule: "evenodd",
1783 clipRule: "evenodd",
1784 d: "M5.48699 5.48699C5.9656 5.00838 6.61473 4.7395 7.29159 4.7395H13.1249C13.8018 4.7395 14.4509 5.00838 14.9295 5.48699C15.4081 5.9656 15.677 6.61473 15.677 7.29159V13.1249C15.677 13.8018 15.4081 14.4509 14.9295 14.9295C14.4509 15.4081 13.8018 15.677 13.1249 15.677H7.29159C6.61473 15.677 5.9656 15.4081 5.48699 14.9295C5.00838 14.4509 4.7395 13.8018 4.7395 13.1249V7.29159C4.7395 6.61473 5.00838 5.9656 5.48699 5.48699ZM7.29159 6.927C7.19489 6.927 7.10216 6.96541 7.03379 7.03379C6.96541 7.10216 6.927 7.19489 6.927 7.29159V13.1249C6.927 13.2216 6.96541 13.3143 7.03379 13.3827C7.10216 13.4511 7.19489 13.4895 7.29159 13.4895H13.1249C13.2216 13.4895 13.3143 13.4511 13.3827 13.3827C13.4511 13.3143 13.4895 13.2216 13.4895 13.1249V7.29159C13.4895 7.19489 13.4511 7.10216 13.3827 7.03379C13.3143 6.96541 13.2216 6.927 13.1249 6.927H7.29159Z",
1785 fill: "#0C0D0E"
1786 }), /*#__PURE__*/_react.default.createElement("path", {
1787 fillRule: "evenodd",
1788 clipRule: "evenodd",
1789 d: "M5.48699 20.0703C5.9656 19.5917 6.61473 19.3228 7.29159 19.3228H13.1249C13.8018 19.3228 14.4509 19.5917 14.9295 20.0703C15.4081 20.5489 15.677 21.1981 15.677 21.8749V27.7083C15.677 28.3851 15.4081 29.0342 14.9295 29.5128C14.4509 29.9915 13.8018 30.2603 13.1249 30.2603H7.29159C6.61473 30.2603 5.9656 29.9915 5.48699 29.5128C5.00838 29.0342 4.7395 28.3851 4.7395 27.7083V21.8749C4.7395 21.1981 5.00838 20.5489 5.48699 20.0703ZM7.29159 21.5103C7.19489 21.5103 7.10216 21.5487 7.03379 21.6171C6.96541 21.6855 6.927 21.7782 6.927 21.8749V27.7083C6.927 27.8049 6.96541 27.8977 7.03379 27.9661C7.10216 28.0344 7.19489 28.0728 7.29159 28.0728H13.1249C13.2216 28.0728 13.3143 28.0344 13.3827 27.9661C13.4511 27.8977 13.4895 27.8049 13.4895 27.7083V21.8749C13.4895 21.7782 13.4511 21.6855 13.3827 21.6171C13.3143 21.5487 13.2216 21.5103 13.1249 21.5103H7.29159Z",
1790 fill: "#0C0D0E"
1791 }), /*#__PURE__*/_react.default.createElement("path", {
1792 fillRule: "evenodd",
1793 clipRule: "evenodd",
1794 d: "M21.8749 19.3228C21.1981 19.3228 20.5489 19.5917 20.0703 20.0703C19.5917 20.5489 19.3228 21.1981 19.3228 21.8749V27.7083C19.3228 28.3851 19.5917 29.0342 20.0703 29.5128C20.5489 29.9915 21.1981 30.2603 21.8749 30.2603H27.7083C28.3851 30.2603 29.0342 29.9915 29.5128 29.5128C29.9915 29.0342 30.2603 28.3851 30.2603 27.7083V21.8749C30.2603 21.1981 29.9915 20.5489 29.5128 20.0703C29.0342 19.5917 28.3851 19.3228 27.7083 19.3228H21.8749ZM21.6171 21.6171C21.6855 21.5487 21.7782 21.5103 21.8749 21.5103H27.7083C27.8049 21.5103 27.8977 21.5487 27.9661 21.6171C28.0344 21.6855 28.0728 21.7782 28.0728 21.8749V27.7083C28.0728 27.8049 28.0344 27.8977 27.9661 27.9661C27.8977 28.0344 27.8049 28.0728 27.7083 28.0728H21.8749C21.7782 28.0728 21.6855 28.0344 21.6171 27.9661C21.5487 27.8977 21.5103 27.8049 21.5103 27.7083V21.8749C21.5103 21.7782 21.5487 21.6855 21.6171 21.6171Z",
1795 fill: "#0C0D0E"
1796 }), /*#__PURE__*/_react.default.createElement("path", {
1797 d: "M19.3228 10.2083C19.3228 9.60419 19.8125 9.1145 20.4166 9.1145H23.6978V5.83325C23.6978 5.22919 24.1875 4.7395 24.7916 4.7395C25.3956 4.7395 25.8853 5.22919 25.8853 5.83325V9.1145H29.1666C29.7706 9.1145 30.2603 9.60419 30.2603 10.2083C30.2603 10.8123 29.7706 11.302 29.1666 11.302H25.8853V14.5833C25.8853 15.1873 25.3956 15.677 24.7916 15.677C24.1875 15.677 23.6978 15.1873 23.6978 14.5833V11.302H20.4166C19.8125 11.302 19.3228 10.8123 19.3228 10.2083Z",
1798 fill: "#0C0D0E"
1799 })),
1800 title: __('Business-focused widgets', 'elementor'),
1801 description: __('Add contact forms, CTAs, and hero sections with one click', 'elementor')
1802 }, {
1803 icon: /*#__PURE__*/_react.default.createElement("svg", {
1804 width: "35",
1805 height: "35",
1806 viewBox: "0 0 35 35",
1807 fill: "none",
1808 xmlns: "http://www.w3.org/2000/svg"
1809 }, /*#__PURE__*/_react.default.createElement("path", {
1810 fillRule: "evenodd",
1811 clipRule: "evenodd",
1812 d: "M24.7321 4.74112C24.752 4.74004 24.7718 4.7395 24.7917 4.7395C26.2421 4.7395 27.6331 5.31567 28.6587 6.34126C29.6843 7.36685 30.2604 8.75785 30.2604 10.2083C30.2604 10.2281 30.2599 10.248 30.2588 10.2678C30.1057 13.0757 29.1234 15.7752 27.4361 18.0249C25.8943 20.0808 23.8269 21.6766 21.4577 22.6485C21.3043 24.0613 20.8465 25.4271 20.1124 26.6507C19.2512 28.0861 18.0381 29.2781 16.588 30.1141C16.2695 30.2978 15.8801 30.3091 15.5514 30.1443C15.2228 29.9795 14.999 29.6607 14.9556 29.2957C14.8595 28.4875 14.6712 27.6984 14.3975 26.9428C13.5552 27.9131 12.5267 28.7141 11.366 29.2944C9.61219 30.1713 7.63644 30.5045 5.69204 30.2512C5.20007 30.1871 4.81286 29.7999 4.74876 29.3079C4.49544 27.3635 4.82859 25.3877 5.7055 23.6339C6.28584 22.4732 7.08683 21.4448 8.05717 20.6025C7.3015 20.3287 6.51246 20.1404 5.70427 20.0444C5.33922 20.001 5.02038 19.7771 4.85561 19.4485C4.69084 19.1199 4.70218 18.7305 4.88578 18.412C5.72183 16.9618 6.91388 15.7488 8.34925 14.8875C9.57278 14.1534 10.9387 13.6956 12.3514 13.5422C13.3233 11.173 14.9191 9.10567 16.975 7.56379C19.2247 5.87652 21.9242 4.89422 24.7321 4.74112ZM10.2315 21.687C9.1401 22.4224 8.25367 23.429 7.66206 24.6122C7.1121 25.7121 6.83712 26.9243 6.85454 28.1454C8.07565 28.1628 9.28781 27.8878 10.3877 27.3379C11.571 26.7463 12.5775 25.8598 13.313 24.7684C12.9154 24.1587 12.4536 23.5881 11.9327 23.0672C11.4118 22.5463 10.8412 22.0845 10.2315 21.687ZM24.82 6.92712C22.4553 7.06223 20.1827 7.89235 18.2875 9.31379C16.3839 10.7415 14.9464 12.7016 14.1568 14.9462C14.0071 15.3716 13.6118 15.6615 13.1611 15.6764C11.8599 15.7194 10.5911 16.0935 9.47471 16.7633C8.81933 17.1565 8.22917 17.6441 7.72196 18.2078C9.88971 18.7817 11.879 19.9199 13.4795 21.5204C15.08 23.1209 16.2182 25.1102 16.7921 27.278C17.3559 26.7708 17.8434 26.1806 18.2366 25.5252C18.9065 24.4088 19.2806 23.14 19.3235 21.8388C19.3384 21.3881 19.6283 20.9928 20.0537 20.8431C22.2984 20.0535 24.2585 18.616 25.6861 16.7124C27.1076 14.8172 27.9377 12.5447 28.0728 10.1799C28.0654 9.31992 27.7205 8.49674 27.1119 7.88806C26.5032 7.27938 25.68 6.93453 24.82 6.92712ZM20.0704 11.3203C20.549 10.8417 21.1982 10.5728 21.875 10.5728C22.5519 10.5728 23.201 10.8417 23.6796 11.3203C24.1582 11.7989 24.4271 12.4481 24.4271 13.1249C24.4271 13.8018 24.1582 14.4509 23.6796 14.9295C23.201 15.4081 22.5519 15.677 21.875 15.677C21.1982 15.677 20.549 15.4081 20.0704 14.9295C19.5918 14.4509 19.3229 13.8018 19.3229 13.1249C19.3229 12.4481 19.5918 11.7989 20.0704 11.3203ZM21.875 12.7603C21.7783 12.7603 21.6856 12.7987 21.6172 12.8671C21.5488 12.9355 21.5104 13.0282 21.5104 13.1249C21.5104 13.2216 21.5488 13.3143 21.6172 13.3827C21.6856 13.4511 21.7783 13.4895 21.875 13.4895C21.9717 13.4895 22.0644 13.4511 22.1328 13.3827C22.2012 13.3143 22.2396 13.2216 22.2396 13.1249C22.2396 13.0282 22.2012 12.9355 22.1328 12.8671C22.0644 12.7987 21.9717 12.7603 21.875 12.7603Z",
1813 fill: "#0C0D0E"
1814 })),
1815 title: __('Optimized performance', 'elementor'),
1816 description: __('Loads fast and looks great on any device', 'elementor')
1817 }];
1818 };
1819 function ThemeSelectionExperiment202VariantB(_ref) {
1820 var actionButton = _ref.actionButton,
1821 skipButton = _ref.skipButton,
1822 noticeState = _ref.noticeState;
1823 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1824 state = _useContext.state;
1825 var features = getFeatureData();
1826 var printNotices = function printNotices() {
1827 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, noticeState && /*#__PURE__*/_react.default.createElement(_notice.default, {
1828 noticeState: noticeState
1829 }), state.proNotice && /*#__PURE__*/_react.default.createElement(_notice.default, {
1830 noticeState: state.proNotice
1831 }));
1832 };
1833 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
1834 className: "e-onboarding__page-content e-onboarding__page-content--experiment-202"
1835 }, /*#__PURE__*/_react.default.createElement("div", {
1836 className: "e-onboarding__page-content-header"
1837 }, /*#__PURE__*/_react.default.createElement("h1", {
1838 className: "e-onboarding__page-content-title"
1839 }, __('Start with Hello Biz', 'elementor')), /*#__PURE__*/_react.default.createElement("p", {
1840 className: "e-onboarding__page-content-subtitle"
1841 }, __('Some of the features you get with Hello Biz theme:', 'elementor'))), /*#__PURE__*/_react.default.createElement("div", {
1842 className: "e-onboarding__features-grid"
1843 }, features.map(function (feature, index) {
1844 return /*#__PURE__*/_react.default.createElement("div", {
1845 key: index,
1846 className: "e-onboarding__feature-item"
1847 }, /*#__PURE__*/_react.default.createElement("div", {
1848 className: "e-onboarding__feature-icon"
1849 }, feature.icon), /*#__PURE__*/_react.default.createElement("div", {
1850 className: "e-onboarding__feature-content"
1851 }, /*#__PURE__*/_react.default.createElement("h3", {
1852 className: "e-onboarding__feature-title"
1853 }, feature.title), /*#__PURE__*/_react.default.createElement("p", {
1854 className: "e-onboarding__feature-description"
1855 }, feature.description)));
1856 }))), noticeState && /*#__PURE__*/_react.default.createElement("div", {
1857 className: "e-onboarding__notice-container"
1858 }, noticeState || state.proNotice ? printNotices() : /*#__PURE__*/_react.default.createElement("div", {
1859 className: "e-onboarding__notice-empty-spacer"
1860 })), /*#__PURE__*/_react.default.createElement(_footerButtons.default, {
1861 actionButton: actionButton,
1862 skipButton: skipButton
1863 }));
1864 }
1865 ThemeSelectionExperiment202VariantB.propTypes = {
1866 actionButton: _propTypes.default.object.isRequired,
1867 skipButton: _propTypes.default.object.isRequired,
1868 noticeState: _propTypes.default.object
1869 };
1870
1871 /***/ }),
1872
1873 /***/ "../app/modules/onboarding/assets/js/components/theme-selection-experiment202-variant-b.scss":
1874 /*!***************************************************************************************************!*\
1875 !*** ../app/modules/onboarding/assets/js/components/theme-selection-experiment202-variant-b.scss ***!
1876 \***************************************************************************************************/
1877 /***/ (() => {
1878
1879
1880
1881 /***/ }),
1882
1883 /***/ "../app/modules/onboarding/assets/js/context/context.js":
1884 /*!**************************************************************!*\
1885 !*** ../app/modules/onboarding/assets/js/context/context.js ***!
1886 \**************************************************************/
1887 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1888
1889 "use strict";
1890 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1891
1892
1893 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1894 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1895 Object.defineProperty(exports, "__esModule", ({
1896 value: true
1897 }));
1898 exports.ContextProvider = ContextProvider;
1899 exports.OnboardingContext = void 0;
1900 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1901 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1902 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1903 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1904 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1905 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1906 var OnboardingContext = exports.OnboardingContext = (0, _react.createContext)({});
1907 function ContextProvider(props) {
1908 var onboardingConfig = elementorAppConfig.onboarding,
1909 initialState = {
1910 // eslint-disable-next-line camelcase
1911 hasPro: elementorAppConfig.hasPro,
1912 isLibraryConnected: onboardingConfig.isLibraryConnected,
1913 isHelloThemeInstalled: onboardingConfig.helloInstalled,
1914 isHelloThemeActivated: onboardingConfig.helloActivated,
1915 siteName: onboardingConfig.siteName,
1916 siteLogo: onboardingConfig.siteLogo,
1917 proNotice: '',
1918 currentStep: '',
1919 nextStep: '',
1920 steps: {
1921 account: false,
1922 hello: false,
1923 chooseFeatures: false,
1924 siteName: false,
1925 siteLogo: false,
1926 goodToGo: false
1927 }
1928 },
1929 _useState = (0, _react.useState)(initialState),
1930 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1931 state = _useState2[0],
1932 setState = _useState2[1],
1933 updateState = (0, _react.useCallback)(function (newState) {
1934 setState(function (prev) {
1935 return _objectSpread(_objectSpread({}, prev), newState);
1936 });
1937 }, [setState]),
1938 getStateObjectToUpdate = function getStateObjectToUpdate(stateObject, mainChangedPropertyKey, subChangedPropertyKey, subChangedPropertyValue) {
1939 var mutatedStateCopy = JSON.parse(JSON.stringify(stateObject));
1940 mutatedStateCopy[mainChangedPropertyKey][subChangedPropertyKey] = subChangedPropertyValue;
1941 return mutatedStateCopy;
1942 };
1943 return /*#__PURE__*/_react.default.createElement(OnboardingContext.Provider, {
1944 value: {
1945 state: state,
1946 setState: setState,
1947 updateState: updateState,
1948 getStateObjectToUpdate: getStateObjectToUpdate
1949 }
1950 }, props.children);
1951 }
1952 ContextProvider.propTypes = {
1953 children: PropTypes.any
1954 };
1955
1956 /***/ }),
1957
1958 /***/ "../app/modules/onboarding/assets/js/pages/account.js":
1959 /*!************************************************************!*\
1960 !*** ../app/modules/onboarding/assets/js/pages/account.js ***!
1961 \************************************************************/
1962 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1963
1964 "use strict";
1965 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1966
1967
1968 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1969 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1970 Object.defineProperty(exports, "__esModule", ({
1971 value: true
1972 }));
1973 exports["default"] = Account;
1974 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1975 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1976 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1977 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
1978 var _connect = _interopRequireDefault(__webpack_require__(/*! ../utils/connect */ "../app/modules/onboarding/assets/js/utils/connect.js"));
1979 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
1980 var _accountContentA = _interopRequireDefault(__webpack_require__(/*! ../components/account-content-a */ "../app/modules/onboarding/assets/js/components/account-content-a.js"));
1981 var _accountContentB = _interopRequireDefault(__webpack_require__(/*! ../components/account-content-b */ "../app/modules/onboarding/assets/js/components/account-content-b.js"));
1982 var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
1983 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
1984 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1985 function Account() {
1986 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
1987 state = _useContext.state,
1988 updateState = _useContext.updateState,
1989 getStateObjectToUpdate = _useContext.getStateObjectToUpdate,
1990 _useState = (0, _react.useState)(null),
1991 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1992 noticeState = _useState2[0],
1993 setNoticeState = _useState2[1],
1994 nextStep = getNextStep(),
1995 navigate = (0, _router.useNavigate)(),
1996 pageId = 'account',
1997 actionButtonRef = (0, _react.useRef)(),
1998 alreadyHaveAccountLinkRef = (0, _react.useRef)();
1999 (0, _react.useEffect)(function () {
2000 if (!state.isLibraryConnected) {
2001 var _elementorCommon$even;
2002 (0, _utils.safeDispatchEvent)('view_account_setup', {
2003 location: 'plugin_onboarding',
2004 trigger: ((_elementorCommon$even = elementorCommon.eventsManager) === null || _elementorCommon$even === void 0 || (_elementorCommon$even = _elementorCommon$even.config) === null || _elementorCommon$even === void 0 || (_elementorCommon$even = _elementorCommon$even.triggers) === null || _elementorCommon$even === void 0 ? void 0 : _elementorCommon$even.pageLoaded) || 'page_loaded',
2005 step_number: 1,
2006 step_name: 'account_setup',
2007 is_library_connected: (state === null || state === void 0 ? void 0 : state.isLibraryConnected) || false
2008 });
2009 }
2010 _onboardingEventTracking.OnboardingEventTracking.setupAllUpgradeButtons(state.currentStep);
2011 _onboardingEventTracking.OnboardingEventTracking.onStepLoad(1);
2012 // eslint-disable-next-line react-hooks/exhaustive-deps
2013 }, []);
2014 var skipButton;
2015 if ('completed' !== state.steps[pageId]) {
2016 skipButton = {
2017 text: __('Skip setup', 'elementor'),
2018 action: function action() {
2019 var _elementorCommon$even2;
2020 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(1, 'skip');
2021 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('SKIP', {
2022 currentStep: 1
2023 });
2024 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(1);
2025 (0, _utils.safeDispatchEvent)('skip_setup', {
2026 location: 'plugin_onboarding',
2027 trigger: ((_elementorCommon$even2 = elementorCommon.eventsManager) === null || _elementorCommon$even2 === void 0 || (_elementorCommon$even2 = _elementorCommon$even2.config) === null || _elementorCommon$even2 === void 0 || (_elementorCommon$even2 = _elementorCommon$even2.triggers) === null || _elementorCommon$even2 === void 0 ? void 0 : _elementorCommon$even2.click) || 'click',
2028 step_number: 1,
2029 step_name: 'account_setup'
2030 });
2031 updateState(getStateObjectToUpdate(state, 'steps', pageId, 'skipped'));
2032 navigate('onboarding/' + nextStep);
2033 }
2034 };
2035 }
2036 var pageTexts = {};
2037 if (state.isLibraryConnected) {
2038 pageTexts = {
2039 firstLine: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, __('To get the most out of Elementor, we\'ll help you take your', 'elementor'), " ", /*#__PURE__*/_react.default.createElement("br", null), " ", __('first steps:', 'elementor')),
2040 listItems: elementorAppConfig.onboarding.experiment ? [__('Set your site\'s theme', 'elementor'), __('Choose additional features', 'elementor'), __('Choose how to start creating', 'elementor')] : [__('Set your site\'s theme', 'elementor'), __('Give your site a name & logo', 'elementor'), __('Choose how to start creating', 'elementor')]
2041 };
2042 } else {
2043 pageTexts = elementorAppConfig.onboarding.experiment ? {
2044 firstLine: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, __('To get the most of Elementor, we\'ll connect your account.', 'elementor'), " ", /*#__PURE__*/_react.default.createElement("br", null), " ", __('Then you can:', 'elementor')),
2045 listItems: [__('Access dozens of professionally designed templates', 'elementor'), __('Manage all your sites from the My Elementor dashboard', 'elementor'), __('Unlock tools that streamline your workflow and site setup', 'elementor')]
2046 } : {
2047 firstLine: __('To get the most out of Elementor, we\'ll connect your account.', 'elementor') + ' ' + __('Then you can:', 'elementor'),
2048 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')]
2049 };
2050 }
2051
2052 // If the user is not connected, the on-click action is handled by the <Connect> component, so there is no onclick
2053 // property.
2054 var actionButton = {
2055 role: 'button'
2056 };
2057 if (state.isLibraryConnected) {
2058 actionButton.text = __('Let\'s do it', 'elementor');
2059 actionButton.onClick = function () {
2060 elementorCommon.events.dispatchEvent({
2061 event: 'next',
2062 version: '',
2063 details: {
2064 placement: elementorAppConfig.onboarding.eventPlacement,
2065 step: state.currentStep
2066 }
2067 });
2068 updateState(getStateObjectToUpdate(state, 'steps', pageId, 'completed'));
2069 navigate('onboarding/' + nextStep);
2070 };
2071 } else {
2072 actionButton.text = __('Start setup', 'elementor');
2073 actionButton.href = elementorAppConfig.onboarding.urls.signUp + elementorAppConfig.onboarding.utms.connectCta;
2074 actionButton.ref = actionButtonRef;
2075 actionButton.onClick = function () {
2076 var _elementorCommon$even3;
2077 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(1, 'create');
2078 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('CREATE_MY_ACCOUNT', {
2079 currentStep: 1,
2080 createAccountClicked: 'main_cta'
2081 });
2082 (0, _utils.safeDispatchEvent)('new_account_connect', {
2083 location: 'plugin_onboarding',
2084 trigger: ((_elementorCommon$even3 = elementorCommon.eventsManager) === null || _elementorCommon$even3 === void 0 || (_elementorCommon$even3 = _elementorCommon$even3.config) === null || _elementorCommon$even3 === void 0 || (_elementorCommon$even3 = _elementorCommon$even3.triggers) === null || _elementorCommon$even3 === void 0 ? void 0 : _elementorCommon$even3.click) || 'click',
2085 step_number: 1,
2086 step_name: 'account_setup',
2087 button_text: 'Start setup'
2088 });
2089 };
2090 }
2091 var connectSuccessCallback = function connectSuccessCallback() {
2092 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
2093 stateToUpdate.isLibraryConnected = true;
2094 updateState(stateToUpdate);
2095 elementorCommon.events.dispatchEvent({
2096 event: 'indication prompt',
2097 version: '',
2098 details: {
2099 placement: elementorAppConfig.onboarding.eventPlacement,
2100 step: state.currentStep,
2101 action_state: 'success',
2102 action: 'connect account'
2103 }
2104 });
2105 setNoticeState({
2106 type: 'success',
2107 icon: 'eicon-check-circle-o',
2108 message: 'Alrighty - your account is connected.'
2109 });
2110 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(1);
2111 navigate('onboarding/' + nextStep);
2112 };
2113 function getNextStep() {
2114 if (!state.isHelloThemeActivated) {
2115 return 'hello';
2116 }
2117 return elementorAppConfig.onboarding.experiment ? 'chooseFeatures' : 'siteName';
2118 }
2119 var connectFailureCallback = function connectFailureCallback() {
2120 elementorCommon.events.dispatchEvent({
2121 event: 'indication prompt',
2122 version: '',
2123 details: {
2124 placement: elementorAppConfig.onboarding.eventPlacement,
2125 step: state.currentStep,
2126 action_state: 'failure',
2127 action: 'connect account'
2128 }
2129 });
2130 _onboardingEventTracking.OnboardingEventTracking.sendConnectionFailureEvents();
2131 setNoticeState({
2132 type: 'error',
2133 icon: 'eicon-warning',
2134 message: __('Oops, the connection failed. Try again.', 'elementor')
2135 });
2136 navigate('onboarding/' + nextStep);
2137 };
2138 var experiment101Variant = localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT101_VARIANT);
2139 var ContentComponent = 'B' === experiment101Variant ? _accountContentB.default : _accountContentA.default;
2140 return /*#__PURE__*/_react.default.createElement(_layout.default, {
2141 pageId: pageId,
2142 nextStep: nextStep,
2143 className: 'B' === experiment101Variant ? 'e-onboarding101-variant-b' : ''
2144 }, /*#__PURE__*/_react.default.createElement(ContentComponent, {
2145 actionButton: actionButton,
2146 skipButton: skipButton,
2147 noticeState: noticeState,
2148 pageTexts: pageTexts,
2149 state: state,
2150 connectSuccessCallback: connectSuccessCallback,
2151 connectFailureCallback: connectFailureCallback,
2152 updateState: updateState,
2153 getStateObjectToUpdate: getStateObjectToUpdate,
2154 navigate: navigate,
2155 nextStep: nextStep,
2156 pageId: pageId
2157 }), !state.isLibraryConnected && 'B' !== experiment101Variant && /*#__PURE__*/_react.default.createElement("div", {
2158 className: "e-onboarding__footnote"
2159 }, /*#__PURE__*/_react.default.createElement("p", null, __('Already have an account?', 'elementor') + ' ', /*#__PURE__*/_react.default.createElement("a", {
2160 ref: alreadyHaveAccountLinkRef,
2161 href: elementorAppConfig.onboarding.urls.connect + elementorAppConfig.onboarding.utms.connectCtaLink,
2162 onClick: function onClick() {
2163 var _elementorCommon$even4;
2164 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(1, 'connect');
2165 _onboardingEventTracking.OnboardingEventTracking.sendEventOrStore('STEP1_CLICKED_CONNECT', {
2166 currentStep: state.currentStep
2167 });
2168 (0, _utils.safeDispatchEvent)('existing_account_connect', {
2169 location: 'plugin_onboarding',
2170 trigger: ((_elementorCommon$even4 = elementorCommon.eventsManager) === null || _elementorCommon$even4 === void 0 || (_elementorCommon$even4 = _elementorCommon$even4.config) === null || _elementorCommon$even4 === void 0 || (_elementorCommon$even4 = _elementorCommon$even4.triggers) === null || _elementorCommon$even4 === void 0 ? void 0 : _elementorCommon$even4.click) || 'click',
2171 step_number: 1,
2172 step_name: 'account_setup',
2173 button_text: 'Click here to connect'
2174 });
2175 }
2176 }, __('Click here to connect', 'elementor'))), /*#__PURE__*/_react.default.createElement(_connect.default, {
2177 buttonRef: alreadyHaveAccountLinkRef,
2178 successCallback: connectSuccessCallback,
2179 errorCallback: connectFailureCallback
2180 })));
2181 }
2182
2183 /***/ }),
2184
2185 /***/ "../app/modules/onboarding/assets/js/pages/choose-features.js":
2186 /*!********************************************************************!*\
2187 !*** ../app/modules/onboarding/assets/js/pages/choose-features.js ***!
2188 \********************************************************************/
2189 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2190
2191 "use strict";
2192 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2193
2194
2195 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2196 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2197 Object.defineProperty(exports, "__esModule", ({
2198 value: true
2199 }));
2200 exports["default"] = ChooseFeatures;
2201 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2202 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2203 var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
2204 var _message = _interopRequireDefault(__webpack_require__(/*! ../components/message */ "../app/modules/onboarding/assets/js/components/message.js"));
2205 var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
2206 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
2207 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
2208 var _useButtonAction2 = _interopRequireDefault(__webpack_require__(/*! ../utils/use-button-action */ "../app/modules/onboarding/assets/js/utils/use-button-action.js"));
2209 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
2210 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2211 function ChooseFeatures() {
2212 var _elementorAppConfig$o, _elementorAppConfig;
2213 var isEditorOneActive = (_elementorAppConfig$o = (_elementorAppConfig = elementorAppConfig) === null || _elementorAppConfig === void 0 || (_elementorAppConfig = _elementorAppConfig.onboarding) === null || _elementorAppConfig === void 0 ? void 0 : _elementorAppConfig.isEditorOneActive) !== null && _elementorAppConfig$o !== void 0 ? _elementorAppConfig$o : false;
2214 var options = (0, _react.useMemo)(function () {
2215 return (0, _utils.getOptions)(isEditorOneActive);
2216 }, [isEditorOneActive]);
2217 var _useAjax = (0, _useAjax2.default)(),
2218 setAjax = _useAjax.setAjax,
2219 tiers = {
2220 one: __('One', 'elementor'),
2221 advanced: __('Advanced', 'elementor'),
2222 essential: __('Essential', 'elementor')
2223 },
2224 _useState = (0, _react.useState)({
2225 one: [],
2226 essential: [],
2227 advanced: []
2228 }),
2229 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2230 selectedFeatures = _useState2[0],
2231 setSelectedFeatures = _useState2[1],
2232 _useState3 = (0, _react.useState)(tiers.essential),
2233 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2234 tierName = _useState4[0],
2235 setTierName = _useState4[1],
2236 pageId = 'chooseFeatures',
2237 nextStep = 'goodToGo',
2238 _useButtonAction = (0, _useButtonAction2.default)(pageId, nextStep),
2239 state = _useButtonAction.state,
2240 handleAction = _useButtonAction.handleAction,
2241 upgradeUrl = elementorAppConfig.onboarding.urls.upgrade,
2242 pageHeading = elementorAppConfig.onboarding.pageHeading,
2243 pageSubheading = elementorAppConfig.onboarding.pageSubheading,
2244 actionButton = {
2245 text: __('Upgrade Now', 'elementor'),
2246 href: (0, _utils.addExperimentTrackingToUrl)(upgradeUrl, 'upgrade-step3'),
2247 target: '_blank',
2248 onClick: function onClick() {
2249 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(3, 'upgrade_now', {
2250 pro_features_checked: _onboardingEventTracking.OnboardingEventTracking.extractSelectedFeatureKeys(selectedFeatures)
2251 });
2252 elementorCommon.events.dispatchEvent({
2253 event: 'next',
2254 version: '',
2255 details: {
2256 placement: elementorAppConfig.onboarding.eventPlacement,
2257 step: state.currentStep
2258 }
2259 });
2260 _onboardingEventTracking.OnboardingEventTracking.sendUpgradeNowStep3(selectedFeatures, state.currentStep);
2261 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(3);
2262 setAjax({
2263 data: {
2264 action: 'elementor_save_onboarding_features',
2265 data: JSON.stringify({
2266 features: selectedFeatures
2267 })
2268 }
2269 });
2270 handleAction('completed');
2271 }
2272 };
2273 var skipButton;
2274 if ('completed' !== state.steps[pageId]) {
2275 skipButton = {
2276 text: __('Skip', 'elementor'),
2277 action: function action() {
2278 _onboardingEventTracking.OnboardingEventTracking.trackStepAction(3, 'skipped');
2279 setAjax({
2280 data: {
2281 action: 'elementor_save_onboarding_features',
2282 data: JSON.stringify({
2283 features: selectedFeatures
2284 })
2285 }
2286 });
2287 handleAction('skipped');
2288 }
2289 };
2290 }
2291 if (!isFeatureSelected(selectedFeatures)) {
2292 actionButton.className = 'e-onboarding__button--disabled';
2293 }
2294 (0, _react.useEffect)(function () {
2295 if (isEditorOneActive && selectedFeatures.one && selectedFeatures.one.length > 0) {
2296 setTierName(tiers.one);
2297 } else if (selectedFeatures.advanced && selectedFeatures.advanced.length > 0) {
2298 setTierName(tiers.advanced);
2299 } else {
2300 setTierName(tiers.essential);
2301 }
2302 }, [selectedFeatures, isEditorOneActive, tiers.one, tiers.advanced, tiers.essential]);
2303 (0, _react.useEffect)(function () {
2304 _onboardingEventTracking.OnboardingEventTracking.setupAllUpgradeButtons(state.currentStep);
2305 _onboardingEventTracking.OnboardingEventTracking.onStepLoad(3);
2306 }, [state.currentStep]);
2307 function isFeatureSelected(features) {
2308 return !!features.one.length || !!features.advanced.length || !!features.essential.length;
2309 }
2310 return /*#__PURE__*/_react.default.createElement(_layout.default, {
2311 pageId: pageId,
2312 nextStep: nextStep
2313 }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
2314 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg',
2315 title: pageHeading,
2316 actionButton: actionButton,
2317 skipButton: skipButton
2318 }, /*#__PURE__*/_react.default.createElement("p", null, pageSubheading), /*#__PURE__*/_react.default.createElement("form", {
2319 className: "e-onboarding__choose-features-section"
2320 }, options.map(function (option, index) {
2321 var itemId = "".concat(option.plan, "-").concat(index);
2322 return /*#__PURE__*/_react.default.createElement("label", {
2323 key: itemId,
2324 className: "e-onboarding__choose-features-section__label",
2325 htmlFor: itemId
2326 }, /*#__PURE__*/_react.default.createElement("input", {
2327 className: "e-onboarding__choose-features-section__checkbox",
2328 type: "checkbox",
2329 onChange: function onChange(event) {
2330 return (0, _utils.setSelectedFeatureList)({
2331 checked: event.currentTarget.checked,
2332 id: event.target.value,
2333 text: option.text,
2334 selectedFeatures: selectedFeatures,
2335 setSelectedFeatures: setSelectedFeatures
2336 });
2337 },
2338 id: itemId,
2339 value: itemId
2340 }), option.text);
2341 })), /*#__PURE__*/_react.default.createElement("p", {
2342 className: "e-onboarding__choose-features-section__message"
2343 }, isFeatureSelected(selectedFeatures) && /*#__PURE__*/_react.default.createElement(_message.default, {
2344 tier: tierName
2345 }))));
2346 }
2347
2348 /***/ }),
2349
2350 /***/ "../app/modules/onboarding/assets/js/pages/good-to-go.js":
2351 /*!***************************************************************!*\
2352 !*** ../app/modules/onboarding/assets/js/pages/good-to-go.js ***!
2353 \***************************************************************/
2354 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2355
2356 "use strict";
2357 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2358
2359
2360 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2361 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2362 Object.defineProperty(exports, "__esModule", ({
2363 value: true
2364 }));
2365 exports["default"] = GoodToGo;
2366 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2367 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2368 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
2369 var _goodToGoContentA = _interopRequireDefault(__webpack_require__(/*! ../components/good-to-go-content-a */ "../app/modules/onboarding/assets/js/components/good-to-go-content-a.js"));
2370 var _goodToGoContentExperiment402B = _interopRequireDefault(__webpack_require__(/*! ../components/good-to-go-content-experiment402-b */ "../app/modules/onboarding/assets/js/components/good-to-go-content-experiment402-b.js"));
2371 var _goodToGoContentExperiment401B = _interopRequireDefault(__webpack_require__(/*! ../components/good-to-go-content-experiment401-b */ "../app/modules/onboarding/assets/js/components/good-to-go-content-experiment401-b.js"));
2372 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
2373 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2374 var VARIANT_B = 'B';
2375 function GoodToGo() {
2376 var pageId = 'goodToGo';
2377 var _useState = (0, _react.useState)(null),
2378 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2379 experiment401Variant = _useState2[0],
2380 setExperiment401Variant = _useState2[1];
2381 var _useState3 = (0, _react.useState)(null),
2382 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2383 experiment402Variant = _useState4[0],
2384 setExperiment402Variant = _useState4[1];
2385 (0, _react.useEffect)(function () {
2386 _onboardingEventTracking.OnboardingEventTracking.checkAndSendReturnToStep4();
2387 _onboardingEventTracking.OnboardingEventTracking.onStepLoad(4);
2388 var stored401Variant = localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT401_VARIANT);
2389 var stored402Variant = localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT402_VARIANT);
2390 setExperiment401Variant(stored401Variant);
2391 setExperiment402Variant(stored402Variant);
2392 }, []);
2393 var getContentComponent = function getContentComponent() {
2394 if (VARIANT_B === experiment401Variant) {
2395 return _goodToGoContentExperiment401B.default;
2396 }
2397 if (VARIANT_B === experiment402Variant) {
2398 return _goodToGoContentExperiment402B.default;
2399 }
2400 return _goodToGoContentA.default;
2401 };
2402 var getSkipButton = function getSkipButton() {
2403 if (VARIANT_B === experiment402Variant) {
2404 return {
2405 text: __('Continue with blank canvas', 'elementor'),
2406 href: elementorAppConfig.onboarding.urls.createNewPage
2407 };
2408 }
2409 return {
2410 text: __('Skip', 'elementor'),
2411 href: elementorAppConfig.onboarding.urls.createNewPage
2412 };
2413 };
2414 var getLayoutClassName = function getLayoutClassName() {
2415 if (VARIANT_B === experiment401Variant) {
2416 return 'experiment401-variant-b';
2417 }
2418 if (VARIANT_B === experiment402Variant) {
2419 return 'experiment402-variant-b';
2420 }
2421 return '';
2422 };
2423 var ContentComponent = getContentComponent();
2424 var skipButton = getSkipButton();
2425 return /*#__PURE__*/_react.default.createElement(_layout.default, {
2426 pageId: pageId,
2427 className: getLayoutClassName()
2428 }, /*#__PURE__*/_react.default.createElement(ContentComponent, {
2429 skipButton: skipButton
2430 }));
2431 }
2432
2433 /***/ }),
2434
2435 /***/ "../app/modules/onboarding/assets/js/pages/hello-theme.js":
2436 /*!****************************************************************!*\
2437 !*** ../app/modules/onboarding/assets/js/pages/hello-theme.js ***!
2438 \****************************************************************/
2439 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2440
2441 "use strict";
2442 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2443
2444
2445 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2446 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2447 Object.defineProperty(exports, "__esModule", ({
2448 value: true
2449 }));
2450 exports["default"] = HelloTheme;
2451 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2452 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
2453 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2454 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
2455 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
2456 var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
2457 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
2458 var _themeSelectionContentA = _interopRequireDefault(__webpack_require__(/*! ../components/theme-selection-content-a */ "../app/modules/onboarding/assets/js/components/theme-selection-content-a.js"));
2459 var _themeSelectionExperiment201VariantB = _interopRequireDefault(__webpack_require__(/*! ../components/theme-selection-experiment201-variant-b */ "../app/modules/onboarding/assets/js/components/theme-selection-experiment201-variant-b.js"));
2460 var _themeSelectionExperiment202VariantB = _interopRequireDefault(__webpack_require__(/*! ../components/theme-selection-experiment202-variant-b */ "../app/modules/onboarding/assets/js/components/theme-selection-experiment202-variant-b.js"));
2461 var _onboardingEventTracking = __webpack_require__(/*! ../utils/onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
2462 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2463 /* eslint-disable @wordpress/i18n-ellipsis */
2464
2465 var getContinueButtonText = function getContinueButtonText(isHelloThemeActivated, isVariant201B, isVariant202B) {
2466 if (isHelloThemeActivated) {
2467 return __('Next', 'elementor');
2468 }
2469 if (isVariant202B) {
2470 return __('Install Hello Biz', 'elementor');
2471 }
2472 if (isVariant201B) {
2473 return __('Select theme', 'elementor');
2474 }
2475 return __('Continue with Hello Biz Theme', 'elementor');
2476 };
2477 function HelloTheme() {
2478 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
2479 state = _useContext.state,
2480 updateState = _useContext.updateState,
2481 getStateObjectToUpdate = _useContext.getStateObjectToUpdate,
2482 _useAjax = (0, _useAjax2.default)(),
2483 activateHelloThemeAjaxState = _useAjax.ajaxState,
2484 setActivateHelloThemeAjaxState = _useAjax.setAjax,
2485 _useState = (0, _react.useState)(false),
2486 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2487 helloInstalledInOnboarding = _useState2[0],
2488 setHelloInstalledInOnboarding = _useState2[1],
2489 _useState3 = (0, _react.useState)(false),
2490 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2491 isInstalling = _useState4[0],
2492 setIsInstalling = _useState4[1],
2493 _useState5 = (0, _react.useState)(null),
2494 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
2495 selectedTheme = _useState6[0],
2496 setSelectedTheme = _useState6[1];
2497 var noticeStateSuccess = (0, _react.useMemo)(function () {
2498 return {
2499 type: 'success',
2500 icon: 'eicon-check-circle-o',
2501 message: __('Your site\'s got Hello theme. High-five!', 'elementor')
2502 };
2503 }, []);
2504 var _useState7 = (0, _react.useState)(state.isHelloThemeActivated ? noticeStateSuccess : null),
2505 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
2506 noticeState = _useState8[0],
2507 setNoticeState = _useState8[1];
2508 var _useState9 = (0, _react.useState)([]),
2509 _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
2510 activeTimeouts = _useState0[0],
2511 setActiveTimeouts = _useState0[1],
2512 _useState1 = (0, _react.useState)(null),
2513 _useState10 = (0, _slicedToArray2.default)(_useState1, 2),
2514 variant201 = _useState10[0],
2515 setVariant201 = _useState10[1],
2516 _useState11 = (0, _react.useState)(null),
2517 _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
2518 variant202 = _useState12[0],
2519 setVariant202 = _useState12[1],
2520 navigate = (0, _router.useNavigate)(),
2521 pageId = 'hello',
2522 nextStep = elementorAppConfig.onboarding.experiment ? 'chooseFeatures' : 'siteName',
2523 goToNextScreen = (0, _react.useCallback)(function () {
2524 return navigate('onboarding/' + nextStep);
2525 }, [navigate, nextStep]),
2526 isVariant201B = 'B' === variant201,
2527 isVariant202B = 'B' === variant202,
2528 continueWithHelloThemeText = getContinueButtonText(state.isHelloThemeActivated, isVariant201B, isVariant202B),
2529 _useState13 = (0, _react.useState)(continueWithHelloThemeText),
2530 _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
2531 actionButtonText = _useState14[0],
2532 setActionButtonText = _useState14[1];
2533
2534 /**
2535 * Setup
2536 *
2537 * If Hello Theme is already activated when onboarding starts, This screen is unneeded and is marked as 'completed'
2538 * and skipped.
2539 */
2540 (0, _react.useEffect)(function () {
2541 if (!helloInstalledInOnboarding && state.isHelloThemeActivated) {
2542 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
2543 updateState(stateToUpdate);
2544 goToNextScreen();
2545 }
2546 _onboardingEventTracking.OnboardingEventTracking.setupAllUpgradeButtons(state.currentStep);
2547 _onboardingEventTracking.OnboardingEventTracking.onStepLoad(2);
2548 var storedVariant201 = localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT201_VARIANT);
2549 var storedVariant202 = localStorage.getItem(_onboardingEventTracking.ONBOARDING_STORAGE_KEYS.EXPERIMENT202_VARIANT);
2550 setVariant201(storedVariant201);
2551 setVariant202(storedVariant202);
2552 var currentIsVariant201B = 'B' === storedVariant201;
2553 var shouldAutoSelectHelloBiz = !currentIsVariant201B && !selectedTheme;
2554 if (shouldAutoSelectHelloBiz) {
2555 setSelectedTheme('hello-biz');
2556 }
2557 }, [getStateObjectToUpdate, goToNextScreen, helloInstalledInOnboarding, pageId, state, updateState, selectedTheme]);
2558 (0, _react.useEffect)(function () {
2559 var updatedButtonText = getContinueButtonText(state.isHelloThemeActivated, isVariant201B, isVariant202B);
2560 setActionButtonText(updatedButtonText);
2561 }, [state.isHelloThemeActivated, isVariant201B, isVariant202B]);
2562 var resetScreenContent = function resetScreenContent() {
2563 activeTimeouts.forEach(function (timeoutID) {
2564 return clearTimeout(timeoutID);
2565 });
2566 setActiveTimeouts([]);
2567 setIsInstalling(false);
2568 var updatedButtonText = getContinueButtonText(state.isHelloThemeActivated, isVariant201B, isVariant202B);
2569 setActionButtonText(updatedButtonText);
2570 };
2571
2572 /**
2573 * Callbacks
2574 */
2575 var onHelloThemeActivationSuccess = (0, _react.useCallback)(function () {
2576 setIsInstalling(false);
2577 elementorCommon.events.dispatchEvent({
2578 event: 'indication prompt',
2579 version: '',
2580 details: {
2581 placement: elementorAppConfig.onboarding.eventPlacement,
2582 step: state.currentStep,
2583 action_state: 'success',
2584 action: 'hello theme activation'
2585 }
2586 });
2587 setNoticeState(noticeStateSuccess);
2588 setActionButtonText(__('Next', 'elementor'));
2589 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
2590 stateToUpdate.isHelloThemeActivated = true;
2591 updateState(stateToUpdate);
2592 setHelloInstalledInOnboarding(true);
2593 var installedThemeValue = selectedTheme && 'hello-theme' === selectedTheme ? 'hello' : 'hellobiz';
2594 _onboardingEventTracking.OnboardingEventTracking.sendThemeInstalled(installedThemeValue);
2595 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(2);
2596 goToNextScreen();
2597 }, [getStateObjectToUpdate, goToNextScreen, noticeStateSuccess, state, updateState, isVariant201B, selectedTheme]);
2598 var onErrorInstallHelloTheme = function onErrorInstallHelloTheme() {
2599 elementorCommon.events.dispatchEvent({
2600 event: 'indication prompt',
2601 version: '',
2602 details: {
2603 placement: elementorAppConfig.onboarding.eventPlacement,
2604 step: state.currentStep,
2605 action_state: 'failure',
2606 action: 'hello theme install'
2607 }
2608 });
2609 setNoticeState({
2610 type: 'error',
2611 icon: 'eicon-warning',
2612 message: __('There was a problem installing Hello Biz Theme.', 'elementor')
2613 });
2614 resetScreenContent();
2615 };
2616 var activateHelloTheme = function activateHelloTheme() {
2617 setIsInstalling(true);
2618 updateState({
2619 isHelloThemeInstalled: true
2620 });
2621 var currentTheme = selectedTheme || (!isVariant201B ? 'hello-biz' : null);
2622 var themeSlug = 'hello-theme' === currentTheme ? 'hello-elementor' : 'hello-biz';
2623 setActivateHelloThemeAjaxState({
2624 data: {
2625 action: 'elementor_activate_hello_theme',
2626 theme_slug: themeSlug
2627 }
2628 });
2629 };
2630 var installHelloTheme = function installHelloTheme() {
2631 if (!isInstalling) {
2632 setIsInstalling(true);
2633 }
2634 var currentTheme = selectedTheme || (!isVariant201B ? 'hello-biz' : null);
2635 var themeSlug = 'hello-theme' === currentTheme ? 'hello-elementor' : 'hello-biz';
2636 wp.updates.ajax('install-theme', {
2637 slug: themeSlug,
2638 success: function success() {
2639 return activateHelloTheme();
2640 },
2641 error: function error() {
2642 return onErrorInstallHelloTheme();
2643 }
2644 });
2645 };
2646 var sendNextButtonEvent = function sendNextButtonEvent() {
2647 elementorCommon.events.dispatchEvent({
2648 event: 'next',
2649 version: '',
2650 details: {
2651 placement: elementorAppConfig.onboarding.eventPlacement,
2652 step: state.currentStep
2653 }
2654 });
2655 };
2656 var handleThemeSelection = function handleThemeSelection(themeSlug) {
2657 setSelectedTheme(themeSlug);
2658 var themeValue = 'hello-theme' === themeSlug ? 'hello' : 'hellobiz';
2659 if (isVariant201B) {
2660 _onboardingEventTracking.OnboardingEventTracking.sendThemeMarked(themeValue);
2661 }
2662 };
2663
2664 /**
2665 * Action Button
2666 */
2667 var actionButton = {
2668 text: actionButtonText,
2669 role: 'button'
2670 };
2671 if (isInstalling) {
2672 actionButton.className = 'e-onboarding__button--processing';
2673 }
2674 if (!state.isHelloThemeActivated && !selectedTheme && isVariant201B) {
2675 actionButton.disabled = true;
2676 actionButton.className = actionButton.className ? "".concat(actionButton.className, " e-onboarding__button--disabled") : 'e-onboarding__button--disabled';
2677 }
2678 if (state.isHelloThemeActivated) {
2679 actionButton.onClick = function () {
2680 sendNextButtonEvent();
2681 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(2);
2682 goToNextScreen();
2683 };
2684 } else {
2685 actionButton.onClick = function () {
2686 if (!selectedTheme && isVariant201B) {
2687 return;
2688 }
2689
2690 // For non-variant B, ensure hello-biz is selected if no theme is set
2691 var currentTheme = selectedTheme || (!isVariant201B ? 'hello-biz' : null);
2692 if (!currentTheme) {
2693 return;
2694 }
2695 if (!selectedTheme && !isVariant201B) {
2696 setSelectedTheme('hello-biz');
2697 }
2698 sendNextButtonEvent();
2699 if (state.isHelloThemeInstalled && !state.isHelloThemeActivated) {
2700 activateHelloTheme();
2701 } else if (!state.isHelloThemeInstalled) {
2702 installHelloTheme();
2703 } else {
2704 _onboardingEventTracking.OnboardingEventTracking.sendStepEndState(2);
2705 goToNextScreen();
2706 }
2707 };
2708 }
2709
2710 /**
2711 * Skip Button
2712 */
2713 var skipButton = {};
2714 if (isInstalling) {
2715 skipButton.className = 'e-onboarding__button-skip--disabled';
2716 }
2717 if ('completed' !== state.steps[pageId]) {
2718 skipButton.text = __('Skip', 'elementor');
2719 }
2720
2721 /**
2722 * Set timeouts for updating the 'Next' button text if the Hello Theme installation is taking too long.
2723 */
2724 (0, _react.useEffect)(function () {
2725 if (isInstalling) {
2726 setActionButtonText(/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
2727 className: "eicon-loading eicon-animation-spin",
2728 "aria-hidden": "true"
2729 })));
2730 }
2731 var actionTextTimeouts = [];
2732 var timeout4 = setTimeout(function () {
2733 if (!isInstalling) {
2734 return;
2735 }
2736 setActionButtonText(/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
2737 className: "eicon-loading eicon-animation-spin",
2738 "aria-hidden": "true"
2739 }), /*#__PURE__*/_react.default.createElement("span", {
2740 className: "e-onboarding__action-button-text"
2741 }, __('Hold on, this can take a minute...', 'elementor'))));
2742 }, 4000);
2743 actionTextTimeouts.push(timeout4);
2744 var timeout30 = setTimeout(function () {
2745 if (!isInstalling) {
2746 return;
2747 }
2748 setActionButtonText(/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
2749 className: "eicon-loading eicon-animation-spin",
2750 "aria-hidden": "true"
2751 }), /*#__PURE__*/_react.default.createElement("span", {
2752 className: "e-onboarding__action-button-text"
2753 }, __('Okay, now we\'re really close...', 'elementor'))));
2754 }, 30000);
2755 actionTextTimeouts.push(timeout30);
2756 setActiveTimeouts(actionTextTimeouts);
2757 }, [isInstalling]);
2758 (0, _react.useEffect)(function () {
2759 if ('initial' !== activateHelloThemeAjaxState.status) {
2760 var _activateHelloThemeAj;
2761 if ('success' === activateHelloThemeAjaxState.status && (_activateHelloThemeAj = activateHelloThemeAjaxState.response) !== null && _activateHelloThemeAj !== void 0 && _activateHelloThemeAj.helloThemeActivated) {
2762 onHelloThemeActivationSuccess();
2763 } else if ('error' === activateHelloThemeAjaxState.status) {
2764 elementorCommon.events.dispatchEvent({
2765 event: 'indication prompt',
2766 version: '',
2767 details: {
2768 placement: elementorAppConfig.onboarding.eventPlacement,
2769 step: state.currentStep,
2770 action_state: 'failure',
2771 action: 'hello theme activation'
2772 }
2773 });
2774 setNoticeState({
2775 type: 'error',
2776 icon: 'eicon-warning',
2777 message: __('There was a problem activating Hello Biz Theme.', 'elementor')
2778 });
2779
2780 // Clear any active timeouts for changing the action button text during installation.
2781 resetScreenContent();
2782 }
2783 }
2784 }, [activateHelloThemeAjaxState.status]);
2785 var ContentComponent = _themeSelectionContentA.default;
2786 if (isVariant202B) {
2787 ContentComponent = _themeSelectionExperiment202VariantB.default;
2788 } else if (isVariant201B) {
2789 ContentComponent = _themeSelectionExperiment201VariantB.default;
2790 }
2791 var getLayoutClassName = function getLayoutClassName() {
2792 if (isVariant202B) {
2793 return 'experiment202-variant-b';
2794 }
2795 return '';
2796 };
2797 return /*#__PURE__*/_react.default.createElement(_layout.default, {
2798 pageId: pageId,
2799 nextStep: nextStep,
2800 className: getLayoutClassName()
2801 }, /*#__PURE__*/_react.default.createElement(ContentComponent, (0, _extends2.default)({
2802 actionButton: actionButton,
2803 skipButton: skipButton,
2804 noticeState: noticeState,
2805 selectedTheme: selectedTheme,
2806 onThemeSelect: handleThemeSelection,
2807 onThemeInstallSuccess: onHelloThemeActivationSuccess,
2808 onThemeInstallError: onErrorInstallHelloTheme
2809 }, isVariant201B && {
2810 isInstalling: isInstalling
2811 })), /*#__PURE__*/_react.default.createElement("div", {
2812 className: "e-onboarding__footnote"
2813 }, isVariant202B ? __('You can switch your theme anytime', 'elementor') : __('You can switch your theme later on', 'elementor')));
2814 }
2815
2816 /***/ }),
2817
2818 /***/ "../app/modules/onboarding/assets/js/pages/site-logo.js":
2819 /*!**************************************************************!*\
2820 !*** ../app/modules/onboarding/assets/js/pages/site-logo.js ***!
2821 \**************************************************************/
2822 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2823
2824 "use strict";
2825 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2826
2827
2828 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2829 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2830 Object.defineProperty(exports, "__esModule", ({
2831 value: true
2832 }));
2833 exports["default"] = SiteLogo;
2834 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2835 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2836 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
2837 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
2838 var _useAjax3 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
2839 var _dropZone = _interopRequireDefault(__webpack_require__(/*! elementor-app/organisms/drop-zone */ "../app/assets/js/organisms/drop-zone.js"));
2840 var _unfilteredFilesDialog = _interopRequireDefault(__webpack_require__(/*! elementor-app/organisms/unfiltered-files-dialog */ "../app/assets/js/organisms/unfiltered-files-dialog.js"));
2841 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
2842 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
2843 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
2844 /* eslint-disable jsx-a11y/no-static-element-interactions */
2845 /* eslint-disable jsx-a11y/click-events-have-key-events */
2846
2847 function SiteLogo() {
2848 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
2849 state = _useContext.state,
2850 updateState = _useContext.updateState,
2851 getStateObjectToUpdate = _useContext.getStateObjectToUpdate,
2852 _useState = (0, _react.useState)(state.siteLogo.id ? state.siteLogo : null),
2853 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2854 file = _useState2[0],
2855 setFile = _useState2[1],
2856 _useState3 = (0, _react.useState)(false),
2857 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2858 isUploading = _useState4[0],
2859 setIsUploading = _useState4[1],
2860 _useState5 = (0, _react.useState)(false),
2861 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
2862 showUnfilteredFilesDialog = _useState6[0],
2863 setShowUnfilteredFilesDialog = _useState6[1],
2864 _useState7 = (0, _react.useState)(),
2865 _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
2866 fileSource = _useState8[0],
2867 setFileSource = _useState8[1],
2868 _useState9 = (0, _react.useState)(null),
2869 _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
2870 noticeState = _useState0[0],
2871 setNoticeState = _useState0[1],
2872 _useAjax = (0, _useAjax3.default)(),
2873 updateLogoAjaxState = _useAjax.ajaxState,
2874 setUpdateLogoAjax = _useAjax.setAjax,
2875 _useAjax2 = (0, _useAjax3.default)(),
2876 uploadImageAjaxState = _useAjax2.ajaxState,
2877 setUploadImageAjax = _useAjax2.setAjax,
2878 pageId = 'siteLogo',
2879 nextStep = 'goodToGo',
2880 navigate = (0, _router.useNavigate)(),
2881 actionButton = {
2882 role: 'button',
2883 onClick: function onClick() {
2884 elementorCommon.events.dispatchEvent({
2885 event: 'next',
2886 version: '',
2887 details: {
2888 placement: elementorAppConfig.onboarding.eventPlacement,
2889 step: state.currentStep
2890 }
2891 });
2892 if (file.id) {
2893 if (file.id !== state.siteLogo.id) {
2894 updateSiteLogo();
2895 } else {
2896 // If the currently displayed logo is already set as the site logo, just go to the next screen.
2897 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
2898 updateState(stateToUpdate);
2899 navigate('onboarding/' + nextStep);
2900 }
2901 }
2902 }
2903 };
2904 var skipButton;
2905 if ('completed' !== state.steps[pageId]) {
2906 skipButton = {
2907 text: __('Skip', 'elementor')
2908 };
2909 }
2910 if (isUploading) {
2911 actionButton.text = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
2912 className: "eicon-loading eicon-animation-spin",
2913 "aria-hidden": "true"
2914 }));
2915 } else {
2916 actionButton.text = __('Next', 'elementor');
2917 }
2918 if (!file) {
2919 actionButton.className = 'e-onboarding__button--disabled';
2920 }
2921 var updateSiteLogo = (0, _react.useCallback)(function () {
2922 setIsUploading(true);
2923 setUpdateLogoAjax({
2924 data: {
2925 action: 'elementor_update_site_logo',
2926 data: JSON.stringify({
2927 attachmentId: file.id
2928 })
2929 }
2930 });
2931 }, [file]);
2932 var uploadSiteLogo = function uploadSiteLogo(fileToUpload) {
2933 setIsUploading(true);
2934 setUploadImageAjax({
2935 data: {
2936 action: 'elementor_upload_site_logo',
2937 fileToUpload: fileToUpload
2938 }
2939 });
2940 };
2941 var dismissUnfilteredFilesCallback = function dismissUnfilteredFilesCallback() {
2942 setIsUploading(false);
2943 setFile(null);
2944 setShowUnfilteredFilesDialog(false);
2945 };
2946 var _onFileSelect = function onFileSelect(selectedFile) {
2947 setFileSource('drop');
2948 if ('image/svg+xml' === selectedFile.type && !elementorAppConfig.onboarding.isUnfilteredFilesEnabled) {
2949 setFile(selectedFile);
2950 setIsUploading(true);
2951 setShowUnfilteredFilesDialog(true);
2952 } else {
2953 setFile(selectedFile);
2954 setNoticeState(null);
2955 uploadSiteLogo(selectedFile);
2956 }
2957 };
2958 var onImageRemoveClick = function onImageRemoveClick() {
2959 elementorCommon.events.dispatchEvent({
2960 event: 'remove selected logo',
2961 version: '',
2962 details: {
2963 placement: elementorAppConfig.onboarding.eventPlacement
2964 }
2965 });
2966 setFile(null);
2967 };
2968
2969 /**
2970 * Ajax Callbacks
2971 */
2972 // Run the callback for the new image upload AJAX request.
2973 (0, _react.useEffect)(function () {
2974 if ('initial' !== uploadImageAjaxState.status) {
2975 var _uploadImageAjaxState;
2976 if ('success' === uploadImageAjaxState.status && (_uploadImageAjaxState = uploadImageAjaxState.response) !== null && _uploadImageAjaxState !== void 0 && (_uploadImageAjaxState = _uploadImageAjaxState.imageAttachment) !== null && _uploadImageAjaxState !== void 0 && _uploadImageAjaxState.id) {
2977 elementorCommon.events.dispatchEvent({
2978 event: 'logo image uploaded',
2979 version: '',
2980 details: {
2981 placement: elementorAppConfig.onboarding.eventPlacement,
2982 source: fileSource
2983 }
2984 });
2985 setIsUploading(false);
2986 setFile(uploadImageAjaxState.response.imageAttachment);
2987 if (noticeState) {
2988 setNoticeState(null);
2989 }
2990 } else if ('error' === uploadImageAjaxState.status) {
2991 setIsUploading(false);
2992 setFile(null);
2993 elementorCommon.events.dispatchEvent({
2994 event: 'indication prompt',
2995 version: '',
2996 details: {
2997 placement: elementorAppConfig.onboarding.eventPlacement,
2998 action_state: 'failure',
2999 action: 'logo image upload'
3000 }
3001 });
3002 setNoticeState({
3003 type: 'error',
3004 icon: 'eicon-warning',
3005 message: 'That didn\'t work. Try uploading your file again.'
3006 });
3007 }
3008 }
3009 }, [uploadImageAjaxState.status]);
3010
3011 // Run the callback for the site logo update AJAX request.
3012 (0, _react.useEffect)(function () {
3013 if ('initial' !== updateLogoAjaxState.status) {
3014 var _updateLogoAjaxState$;
3015 if ('success' === updateLogoAjaxState.status && (_updateLogoAjaxState$ = updateLogoAjaxState.response) !== null && _updateLogoAjaxState$ !== void 0 && _updateLogoAjaxState$.siteLogoUpdated) {
3016 elementorCommon.events.dispatchEvent({
3017 event: 'logo image updated',
3018 version: '',
3019 details: {
3020 placement: elementorAppConfig.onboarding.eventPlacement,
3021 source: fileSource
3022 }
3023 });
3024 setIsUploading(false);
3025 if (noticeState) {
3026 setNoticeState(null);
3027 }
3028 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
3029 stateToUpdate.siteLogo = {
3030 id: file.id,
3031 url: file.url
3032 };
3033 updateState(stateToUpdate);
3034 navigate('onboarding/' + nextStep);
3035 } else if ('error' === updateLogoAjaxState.status) {
3036 setIsUploading(false);
3037 elementorCommon.events.dispatchEvent({
3038 event: 'indication prompt',
3039 version: '',
3040 details: {
3041 placement: elementorAppConfig.onboarding.eventPlacement,
3042 step: state.currentStep,
3043 action_state: 'failure',
3044 action: 'update site logo'
3045 }
3046 });
3047 setNoticeState({
3048 type: 'error',
3049 icon: 'eicon-warning',
3050 message: 'That didn\'t work. Try uploading your file again.'
3051 });
3052 }
3053 }
3054 }, [updateLogoAjaxState.status]);
3055 return /*#__PURE__*/_react.default.createElement(_layout.default, {
3056 pageId: pageId,
3057 nextStep: nextStep
3058 }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
3059 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg',
3060 title: __('Have a logo? Add it here.', 'elementor'),
3061 actionButton: actionButton,
3062 skipButton: skipButton,
3063 noticeState: noticeState
3064 }, /*#__PURE__*/_react.default.createElement("span", null, __('Otherwise, you can skip this and add one later.', 'elementor')), file && !showUnfilteredFilesDialog ? /*#__PURE__*/_react.default.createElement("div", {
3065 className: 'e-onboarding__logo-container' + (isUploading ? ' e-onboarding__is-uploading' : '')
3066 }, /*#__PURE__*/_react.default.createElement("div", {
3067 className: "e-onboarding__logo-remove",
3068 onClick: function onClick() {
3069 return onImageRemoveClick();
3070 }
3071 }, /*#__PURE__*/_react.default.createElement("i", {
3072 className: "eicon-trash-o"
3073 })), /*#__PURE__*/_react.default.createElement("img", {
3074 src: file.url,
3075 alt: __('Potential Site Logo', 'elementor')
3076 })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dropZone.default, {
3077 className: "e-onboarding__drop-zone",
3078 heading: __('Drop image here', 'elementor'),
3079 secondaryText: __('or', 'elementor'),
3080 buttonText: __('Open Media Library', 'elementor'),
3081 buttonVariant: "outlined",
3082 buttonColor: "cta",
3083 icon: '',
3084 type: "wp-media",
3085 filetypes: ['jpg', 'jpeg', 'png', 'svg'],
3086 onFileSelect: function onFileSelect(selectedFile) {
3087 return _onFileSelect(selectedFile);
3088 },
3089 onWpMediaSelect: function onWpMediaSelect(frame) {
3090 // Get media attachment details from the frame state
3091 var attachment = frame.state().get('selection').first().toJSON();
3092 setFileSource('browse');
3093 setFile(attachment);
3094 setNoticeState(null);
3095 },
3096 onButtonClick: function onButtonClick() {
3097 elementorCommon.events.dispatchEvent({
3098 event: 'browse file click',
3099 version: '',
3100 details: {
3101 placement: elementorAppConfig.onboarding.eventPlacement,
3102 step: state.currentStep
3103 }
3104 });
3105 }
3106 // TODO: DEAL WITH ERROR
3107 ,
3108 onError: function onError(error) {
3109 if ('file_not_allowed' === error.id) {
3110 elementorCommon.events.dispatchEvent({
3111 event: 'indication prompt',
3112 version: '',
3113 details: {
3114 placement: elementorAppConfig.onboarding.eventPlacement,
3115 step: state.currentStep,
3116 action_state: 'failure',
3117 action: 'logo upload format'
3118 }
3119 });
3120 setNoticeState({
3121 type: 'error',
3122 icon: 'eicon-warning',
3123 message: __('This file type is not supported. Try a different type of file', 'elementor')
3124 });
3125 }
3126 }
3127 })), /*#__PURE__*/_react.default.createElement(_unfilteredFilesDialog.default, {
3128 show: showUnfilteredFilesDialog,
3129 setShow: setShowUnfilteredFilesDialog,
3130 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'),
3131 errorModalText: __('There was a problem with enabling SVG uploads. Try again, or use another image format.', 'elementor'),
3132 onReady: function onReady() {
3133 setShowUnfilteredFilesDialog(false);
3134 elementorAppConfig.onboarding.isUnfilteredFilesEnabled = true;
3135 uploadSiteLogo(file);
3136 },
3137 onDismiss: function onDismiss() {
3138 return dismissUnfilteredFilesCallback();
3139 },
3140 onCancel: function onCancel() {
3141 return dismissUnfilteredFilesCallback();
3142 }
3143 })));
3144 }
3145
3146 /***/ }),
3147
3148 /***/ "../app/modules/onboarding/assets/js/pages/site-name.js":
3149 /*!**************************************************************!*\
3150 !*** ../app/modules/onboarding/assets/js/pages/site-name.js ***!
3151 \**************************************************************/
3152 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3153
3154 "use strict";
3155 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
3156
3157
3158 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3159 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3160 Object.defineProperty(exports, "__esModule", ({
3161 value: true
3162 }));
3163 exports["default"] = SiteName;
3164 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3165 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3166 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
3167 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
3168 var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
3169 var _layout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/layout */ "../app/modules/onboarding/assets/js/components/layout/layout.js"));
3170 var _pageContentLayout = _interopRequireDefault(__webpack_require__(/*! ../components/layout/page-content-layout */ "../app/modules/onboarding/assets/js/components/layout/page-content-layout.js"));
3171 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3172 function SiteName() {
3173 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
3174 state = _useContext.state,
3175 updateState = _useContext.updateState,
3176 getStateObjectToUpdate = _useContext.getStateObjectToUpdate,
3177 _useAjax = (0, _useAjax2.default)(),
3178 ajaxState = _useAjax.ajaxState,
3179 setAjax = _useAjax.setAjax,
3180 _useState = (0, _react.useState)(null),
3181 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3182 noticeState = _useState2[0],
3183 setNoticeState = _useState2[1],
3184 _useState3 = (0, _react.useState)(state.siteName),
3185 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3186 siteNameInputValue = _useState4[0],
3187 setSiteNameInputValue = _useState4[1],
3188 pageId = 'siteName',
3189 nextStep = 'siteLogo',
3190 navigate = (0, _router.useNavigate)(),
3191 nameInputRef = (0, _react.useRef)(),
3192 actionButton = {
3193 text: __('Next', 'elementor'),
3194 onClick: function onClick() {
3195 elementorCommon.events.dispatchEvent({
3196 event: 'next',
3197 version: '',
3198 details: {
3199 placement: elementorAppConfig.onboarding.eventPlacement,
3200 step: state.currentStep
3201 }
3202 });
3203
3204 // Only run the site name update AJAX if the new name is different than the existing one and it isn't empty.
3205 if (nameInputRef.current.value !== state.siteName && '' !== nameInputRef.current.value) {
3206 setAjax({
3207 data: {
3208 action: 'elementor_update_site_name',
3209 data: JSON.stringify({
3210 siteName: nameInputRef.current.value
3211 })
3212 }
3213 });
3214 } else if (nameInputRef.current.value === state.siteName) {
3215 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
3216 updateState(stateToUpdate);
3217 navigate('onboarding/' + nextStep);
3218 } else {
3219 var _stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'skipped');
3220 updateState(_stateToUpdate);
3221 navigate('onboarding/' + nextStep);
3222 }
3223 }
3224 };
3225 var skipButton;
3226 if ('completed' !== state.steps[pageId]) {
3227 skipButton = {
3228 text: __('Skip', 'elementor')
3229 };
3230 }
3231 if (!siteNameInputValue) {
3232 actionButton.className = 'e-onboarding__button--disabled';
3233 }
3234
3235 // Run the callback for the site name update AJAX request.
3236 (0, _react.useEffect)(function () {
3237 if ('initial' !== ajaxState.status) {
3238 var _ajaxState$response;
3239 if ('success' === ajaxState.status && (_ajaxState$response = ajaxState.response) !== null && _ajaxState$response !== void 0 && _ajaxState$response.siteNameUpdated) {
3240 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, 'completed');
3241 stateToUpdate.siteName = nameInputRef.current.value;
3242 updateState(stateToUpdate);
3243 navigate('onboarding/' + nextStep);
3244 } else if ('error' === ajaxState.status) {
3245 elementorCommon.events.dispatchEvent({
3246 event: 'indication prompt',
3247 version: '',
3248 details: {
3249 placement: elementorAppConfig.onboarding.eventPlacement,
3250 step: state.currentStep,
3251 action_state: 'failure',
3252 action: 'site name update'
3253 }
3254 });
3255 setNoticeState({
3256 type: 'error',
3257 icon: 'eicon-warning',
3258 message: __('Sorry, the name wasn\'t saved. Try again, or skip for now.', 'elementor')
3259 });
3260 }
3261 }
3262 }, [ajaxState.status]);
3263 return /*#__PURE__*/_react.default.createElement(_layout.default, {
3264 pageId: pageId,
3265 nextStep: nextStep
3266 }, /*#__PURE__*/_react.default.createElement(_pageContentLayout.default, {
3267 image: elementorCommon.config.urls.assets + 'images/app/onboarding/Illustration_Setup.svg',
3268 title: __('Now, let\'s give your site a name.', 'elementor'),
3269 actionButton: actionButton,
3270 skipButton: skipButton,
3271 noticeState: noticeState
3272 }, /*#__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", {
3273 className: "e-onboarding__text-input e-onboarding__site-name-input",
3274 type: "text",
3275 placeholder: "e.g. Eric's Space Shuttles",
3276 defaultValue: state.siteName || '',
3277 ref: nameInputRef,
3278 onChange: function onChange(event) {
3279 return setSiteNameInputValue(event.target.value);
3280 }
3281 })));
3282 }
3283
3284 /***/ }),
3285
3286 /***/ "../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js":
3287 /*!***************************************************************************!*\
3288 !*** ../app/modules/onboarding/assets/js/pages/upload-and-install-pro.js ***!
3289 \***************************************************************************/
3290 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3291
3292 "use strict";
3293 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
3294
3295
3296 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3297 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3298 Object.defineProperty(exports, "__esModule", ({
3299 value: true
3300 }));
3301 exports["default"] = UploadAndInstallPro;
3302 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
3303 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3304 var _useAjax2 = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-ajax */ "../app/assets/js/hooks/use-ajax.js"));
3305 var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js"));
3306 var _content = _interopRequireDefault(__webpack_require__(/*! ../../../../../assets/js/layout/content */ "../app/assets/js/layout/content.js"));
3307 var _dropZone = _interopRequireDefault(__webpack_require__(/*! ../../../../../assets/js/organisms/drop-zone */ "../app/assets/js/organisms/drop-zone.js"));
3308 var _notice = _interopRequireDefault(__webpack_require__(/*! ../components/notice */ "../app/modules/onboarding/assets/js/components/notice.js"));
3309 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
3310 var _elementorLoading = _interopRequireDefault(__webpack_require__(/*! elementor-app/molecules/elementor-loading */ "../app/assets/js/molecules/elementor-loading.js"));
3311 var _utils = __webpack_require__(/*! ../utils/utils */ "../app/modules/onboarding/assets/js/utils/utils.js");
3312 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3313 function UploadAndInstallPro() {
3314 (0, _usePageTitle.default)({
3315 title: __('Upload and Install Elementor Pro', 'elementor')
3316 });
3317 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
3318 state = _useContext.state,
3319 _useAjax = (0, _useAjax2.default)(),
3320 installProZipAjaxState = _useAjax.ajaxState,
3321 setInstallProZipAjaxState = _useAjax.setAjax,
3322 _useState = (0, _react.useState)(null),
3323 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3324 noticeState = _useState2[0],
3325 setNoticeState = _useState2[1],
3326 _useState3 = (0, _react.useState)(false),
3327 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3328 isLoading = _useState4[0],
3329 setIsLoading = _useState4[1],
3330 _useState5 = (0, _react.useState)(),
3331 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
3332 fileSource = _useState6[0],
3333 setFileSource = _useState6[1];
3334 var uploadProZip = (0, _react.useCallback)(function (file) {
3335 setIsLoading(true);
3336 setInstallProZipAjaxState({
3337 data: {
3338 action: 'elementor_upload_and_install_pro',
3339 fileToUpload: file
3340 }
3341 });
3342 }, []);
3343 var setErrorNotice = function setErrorNotice() {
3344 var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
3345 var step = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'upload';
3346 var errorMessage = (error === null || error === void 0 ? void 0 : error.message) || 'That didn\'t work. Try uploading your file again.';
3347 elementorCommon.events.dispatchEvent({
3348 event: 'indication prompt',
3349 version: '',
3350 details: {
3351 placement: elementorAppConfig.onboarding.eventPlacement,
3352 step: state.currentStep,
3353 action_state: 'failure',
3354 action: step + ' pro',
3355 source: fileSource
3356 }
3357 });
3358 setNoticeState({
3359 type: 'error',
3360 icon: 'eicon-warning',
3361 message: errorMessage
3362 });
3363 };
3364
3365 /**
3366 * Ajax Callbacks
3367 */
3368 // Run the callback that runs when the Pro Upload Ajax returns a response.
3369 (0, _react.useEffect)(function () {
3370 if ('initial' !== installProZipAjaxState.status) {
3371 var _installProZipAjaxSta;
3372 setIsLoading(false);
3373 if ('success' === installProZipAjaxState.status && (_installProZipAjaxSta = installProZipAjaxState.response) !== null && _installProZipAjaxSta !== void 0 && _installProZipAjaxSta.elementorProInstalled) {
3374 elementorCommon.events.dispatchEvent({
3375 event: 'pro uploaded',
3376 version: '',
3377 details: {
3378 placement: elementorAppConfig.onboarding.eventPlacement,
3379 step: state.currentStep,
3380 source: fileSource
3381 }
3382 });
3383 if (opener && opener !== window) {
3384 opener.jQuery('body').trigger('elementor/upload-and-install-pro/success');
3385 window.close();
3386 opener.focus();
3387 }
3388 } else if ('error' === installProZipAjaxState.status) {
3389 setErrorNotice('install');
3390 }
3391 }
3392 }, [installProZipAjaxState.status]);
3393 var onProUploadHelpLinkClick = function onProUploadHelpLinkClick() {
3394 elementorCommon.events.dispatchEvent({
3395 event: 'pro plugin upload help',
3396 version: '',
3397 details: {
3398 placement: elementorAppConfig.onboarding.eventPlacement,
3399 step: state.currentStep
3400 }
3401 });
3402 };
3403 if (isLoading) {
3404 return /*#__PURE__*/_react.default.createElement(_elementorLoading.default, {
3405 loadingText: __('Uploading', 'elementor')
3406 });
3407 }
3408 return /*#__PURE__*/_react.default.createElement("div", {
3409 className: "eps-app e-onboarding__upload-pro"
3410 }, /*#__PURE__*/_react.default.createElement(_content.default, null, /*#__PURE__*/_react.default.createElement(_dropZone.default, {
3411 className: "e-onboarding__upload-pro-drop-zone",
3412 onFileSelect: function onFileSelect(file, event, source) {
3413 setFileSource(source);
3414 uploadProZip(file);
3415 },
3416 onError: function onError(error) {
3417 return setErrorNotice(error, 'upload');
3418 },
3419 filetypes: ['zip'],
3420 buttonColor: "cta",
3421 buttonVariant: "contained",
3422 heading: __('Import your Elementor Pro plugin file', 'elementor'),
3423 text: __('Drag & Drop your .zip file here', 'elementor'),
3424 secondaryText: __('or', 'elementor'),
3425 buttonText: __('Browse', 'elementor')
3426 }), noticeState && /*#__PURE__*/_react.default.createElement(_notice.default, {
3427 noticeState: noticeState
3428 }), /*#__PURE__*/_react.default.createElement("div", {
3429 className: "e-onboarding__upload-pro-get-file"
3430 }, __('Don\'t know where to get the file from?', 'elementor') + ' ', /*#__PURE__*/_react.default.createElement("a", {
3431 onClick: function onClick() {
3432 return onProUploadHelpLinkClick();
3433 },
3434 href: (0, _utils.addExperimentTrackingToUrl)('https://my.elementor.com/subscriptions/' + elementorAppConfig.onboarding.utms.downloadPro, 'get-pro-upload-step'),
3435 target: "_blank"
3436 }, __('Click here', 'elementor')))));
3437 }
3438
3439 /***/ }),
3440
3441 /***/ "../app/modules/onboarding/assets/js/utils/connect.js":
3442 /*!************************************************************!*\
3443 !*** ../app/modules/onboarding/assets/js/utils/connect.js ***!
3444 \************************************************************/
3445 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3446
3447 "use strict";
3448
3449
3450 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3451 Object.defineProperty(exports, "__esModule", ({
3452 value: true
3453 }));
3454 exports["default"] = Connect;
3455 var _react = __webpack_require__(/*! react */ "react");
3456 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3457 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
3458 var _onboardingEventTracking = __webpack_require__(/*! ./onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
3459 var _eventDispatcher = _interopRequireDefault(__webpack_require__(/*! ./modules/event-dispatcher */ "../app/modules/onboarding/assets/js/utils/modules/event-dispatcher.js"));
3460 function Connect(props) {
3461 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
3462 state = _useContext.state,
3463 updateState = _useContext.updateState,
3464 getStateObjectToUpdate = _useContext.getStateObjectToUpdate;
3465 var buttonRef = props.buttonRef,
3466 successCallback = props.successCallback,
3467 errorCallback = props.errorCallback;
3468 var handleCoreConnectionLogic = (0, _react.useCallback)(function (event, data) {
3469 var isTrackingOptedInConnect = data.tracking_opted_in && elementorCommon.config.editor_events;
3470 _onboardingEventTracking.OnboardingEventTracking.updateLibraryConnectConfig(data);
3471 if (isTrackingOptedInConnect) {
3472 elementorCommon.config.editor_events.can_send_events = true;
3473 _eventDispatcher.default.initializeAndEnableTracking();
3474 _onboardingEventTracking.OnboardingEventTracking.sendConnectionSuccessEvents(data);
3475 }
3476 }, []);
3477 var defaultConnectSuccessCallback = (0, _react.useCallback)(function () {
3478 var stateToUpdate = getStateObjectToUpdate(state, 'steps', 'account', 'completed');
3479 stateToUpdate.isLibraryConnected = true;
3480 updateState(stateToUpdate);
3481 }, [state, getStateObjectToUpdate, updateState]);
3482 (0, _react.useEffect)(function () {
3483 jQuery(buttonRef.current).elementorConnect({
3484 success: function success(event, data) {
3485 handleCoreConnectionLogic(event, data);
3486 if (successCallback) {
3487 successCallback(event, data);
3488 } else {
3489 defaultConnectSuccessCallback();
3490 }
3491 },
3492 error: function error() {
3493 if (errorCallback) {
3494 errorCallback();
3495 }
3496 },
3497 popup: {
3498 width: 726,
3499 height: 534
3500 }
3501 });
3502 }, [buttonRef, successCallback, errorCallback, handleCoreConnectionLogic, defaultConnectSuccessCallback]);
3503 return null;
3504 }
3505 Connect.propTypes = {
3506 buttonRef: _propTypes.default.object.isRequired,
3507 successCallback: _propTypes.default.func,
3508 errorCallback: _propTypes.default.func
3509 };
3510
3511 /***/ }),
3512
3513 /***/ "../app/modules/onboarding/assets/js/utils/modules/onboarding-tracker.js":
3514 /*!*******************************************************************************!*\
3515 !*** ../app/modules/onboarding/assets/js/utils/modules/onboarding-tracker.js ***!
3516 \*******************************************************************************/
3517 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3518
3519 "use strict";
3520
3521
3522 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3523 var _typeof3 = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3524 Object.defineProperty(exports, "__esModule", ({
3525 value: true
3526 }));
3527 Object.defineProperty(exports, "ONBOARDING_STEP_NAMES", ({
3528 enumerable: true,
3529 get: function get() {
3530 return _eventDispatcher.ONBOARDING_STEP_NAMES;
3531 }
3532 }));
3533 Object.defineProperty(exports, "ONBOARDING_STORAGE_KEYS", ({
3534 enumerable: true,
3535 get: function get() {
3536 return _storageManager.ONBOARDING_STORAGE_KEYS;
3537 }
3538 }));
3539 exports["default"] = void 0;
3540 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
3541 var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js"));
3542 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3543 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
3544 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
3545 var _eventsConfig = _interopRequireDefault(__webpack_require__(/*! ../../../../../../../core/common/modules/events-manager/assets/js/events-config */ "../core/common/modules/events-manager/assets/js/events-config.js"));
3546 var _storageManager = _interopRequireWildcard(__webpack_require__(/*! ./storage-manager.js */ "../app/modules/onboarding/assets/js/utils/modules/storage-manager.js"));
3547 var _eventDispatcher = _interopRequireWildcard(__webpack_require__(/*! ./event-dispatcher.js */ "../app/modules/onboarding/assets/js/utils/modules/event-dispatcher.js"));
3548 var _timingManager = _interopRequireDefault(__webpack_require__(/*! ./timing-manager.js */ "../app/modules/onboarding/assets/js/utils/modules/timing-manager.js"));
3549 var _postOnboardingTracker = _interopRequireDefault(__webpack_require__(/*! ./post-onboarding-tracker.js */ "../app/modules/onboarding/assets/js/utils/modules/post-onboarding-tracker.js"));
3550 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
3551 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3552 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3553 function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
3554 function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
3555 function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
3556 function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
3557 function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
3558 var _hasAttemptedSessionRecording = /*#__PURE__*/new WeakMap();
3559 var OnboardingTracker = /*#__PURE__*/function () {
3560 function OnboardingTracker() {
3561 (0, _classCallCheck2.default)(this, OnboardingTracker);
3562 _classPrivateFieldInitSpec(this, _hasAttemptedSessionRecording, false);
3563 this.initializeEventConfigs();
3564 this.initializeEventListeners();
3565 }
3566 return (0, _createClass2.default)(OnboardingTracker, [{
3567 key: "initializeEventConfigs",
3568 value: function initializeEventConfigs() {
3569 var _this = this;
3570 this.EVENT_CONFIGS = {
3571 SKIP: {
3572 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.SKIP,
3573 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_SKIP,
3574 basePayload: {
3575 location: 'plugin_onboarding'
3576 },
3577 payloadBuilder: function payloadBuilder(eventData) {
3578 return {
3579 action_step: eventData.currentStep,
3580 skip_timestamp: eventData.timestamp
3581 };
3582 },
3583 excludeFields: ['step_number', 'trigger']
3584 },
3585 TOP_UPGRADE: {
3586 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.TOP_UPGRADE,
3587 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE,
3588 isArray: true,
3589 basePayload: {
3590 location: 'plugin_onboarding',
3591 trigger: 'upgrade_interaction'
3592 },
3593 payloadBuilder: function payloadBuilder(eventData) {
3594 return {
3595 action_step: eventData.currentStep,
3596 upgrade_clicked: eventData.upgradeClicked
3597 };
3598 },
3599 excludeFields: ['event_timestamp', 'upgrade_location', 'trigger', 'step_number']
3600 },
3601 CREATE_MY_ACCOUNT: {
3602 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.CREATE_MY_ACCOUNT,
3603 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_MY_ACCOUNT,
3604 basePayload: {
3605 location: 'plugin_onboarding',
3606 trigger: 'upgrade_interaction'
3607 },
3608 payloadBuilder: function payloadBuilder(eventData) {
3609 return {
3610 action_step: eventData.currentStep,
3611 create_account_clicked: _this.validateCreateAccountClicked(eventData.createAccountClicked)
3612 };
3613 },
3614 excludeFields: ['trigger', 'step_number']
3615 },
3616 CREATE_ACCOUNT_STATUS: {
3617 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.CREATE_ACCOUNT_STATUS,
3618 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_ACCOUNT_STATUS,
3619 basePayload: {
3620 location: 'plugin_onboarding',
3621 trigger: 'create_flow_returns_status'
3622 },
3623 payloadBuilder: function payloadBuilder(eventData) {
3624 return {
3625 onboarding_create_account_status: _this.validateCreateAccountStatus(eventData.status)
3626 };
3627 },
3628 excludeFields: ['trigger']
3629 },
3630 CONNECT_STATUS: {
3631 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.CONNECT_STATUS,
3632 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CONNECT_STATUS,
3633 basePayload: {
3634 location: 'plugin_onboarding',
3635 trigger: 'connect_flow_returns_status'
3636 },
3637 payloadBuilder: function payloadBuilder(eventData) {
3638 return {
3639 onboarding_connect_status: _this.validateConnectStatus(eventData.status),
3640 tracking_opted_in: eventData.trackingOptedIn,
3641 user_tier: eventData.userTier
3642 };
3643 },
3644 stepOverride: 1,
3645 stepNameOverride: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT,
3646 excludeFields: ['trigger']
3647 },
3648 STEP1_CLICKED_CONNECT: {
3649 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP1_CLICKED_CONNECT,
3650 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_CLICKED_CONNECT,
3651 basePayload: {
3652 location: 'plugin_onboarding',
3653 trigger: _eventsConfig.default.triggers.click
3654 },
3655 payloadBuilder: function payloadBuilder() {
3656 return {};
3657 },
3658 stepOverride: 1,
3659 stepNameOverride: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT,
3660 excludeFields: ['trigger']
3661 },
3662 STEP1_END_STATE: {
3663 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP1_END_STATE,
3664 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_END_STATE,
3665 isRawPayload: true,
3666 payloadBuilder: function payloadBuilder(eventData) {
3667 return eventData;
3668 }
3669 },
3670 EXIT: {
3671 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.EXIT,
3672 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXIT,
3673 basePayload: {
3674 location: 'plugin_onboarding',
3675 trigger: 'user_action'
3676 },
3677 payloadBuilder: function payloadBuilder(eventData) {
3678 var stepNumber = _this.getStepNumber(eventData.currentStep);
3679 var stepName = _this.getStepName(stepNumber);
3680 return {
3681 action_step: "".concat(stepNumber, "/").concat(stepName),
3682 exit_type: eventData.exitType || 'x_button'
3683 };
3684 },
3685 excludeFields: ['trigger', 'step_number']
3686 },
3687 AB_101_START_AS_FREE_USER: {
3688 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.AB_101_START_AS_FREE_USER,
3689 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_AB_101_START_AS_FREE_USER,
3690 basePayload: {
3691 location: 'plugin_onboarding',
3692 trigger: 'continue_as_guest_clicked'
3693 },
3694 payloadBuilder: function payloadBuilder(eventData) {
3695 return {
3696 action_step: eventData.currentStep
3697 };
3698 },
3699 stepOverride: 1,
3700 stepNameOverride: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT,
3701 excludeFields: ['trigger', 'step_number']
3702 }
3703 };
3704 }
3705 }, {
3706 key: "initializeEventListeners",
3707 value: function initializeEventListeners() {
3708 var _this2 = this;
3709 if ('undefined' === typeof document) {
3710 return;
3711 }
3712 document.addEventListener('click', function (event) {
3713 var cardGridElement = event.target.closest('.e-onboarding__cards-grid');
3714 if (cardGridElement) {
3715 _this2.handleStep4CardClick(event);
3716 }
3717 }, true);
3718 this.setupUrlChangeDetection();
3719 this.setupSessionRecordingCleanup();
3720 }
3721 }, {
3722 key: "setupSessionRecordingCleanup",
3723 value: function setupSessionRecordingCleanup() {
3724 this.handleBeforeUnload = this.handleBeforeUnload.bind(this);
3725 window.addEventListener('beforeunload', this.handleBeforeUnload);
3726 }
3727 }, {
3728 key: "handleBeforeUnload",
3729 value: function handleBeforeUnload() {
3730 this.stopSessionRecordingIfNeeded();
3731 }
3732 }, {
3733 key: "onDestroy",
3734 value: function onDestroy() {
3735 this.stopSessionRecordingIfNeeded();
3736 window.removeEventListener('beforeunload', this.handleBeforeUnload);
3737 }
3738 }, {
3739 key: "setupUrlChangeDetection",
3740 value: function setupUrlChangeDetection() {
3741 var _this3 = this;
3742 var lastUrl = window.location.href;
3743 var urlChangeDetector = function urlChangeDetector() {
3744 var currentUrl = window.location.href;
3745 if (currentUrl !== lastUrl) {
3746 var isStep4 = currentUrl.includes('goodToGo') || currentUrl.includes('step4') || currentUrl.includes('site_starter');
3747 if (isStep4) {
3748 setTimeout(function () {
3749 _timingManager.default.trackStepStartTime(4);
3750 _this3.checkAndSendReturnToStep4();
3751 }, 100);
3752 }
3753 lastUrl = currentUrl;
3754 }
3755 };
3756 setInterval(urlChangeDetector, 500);
3757 window.addEventListener('popstate', function () {
3758 setTimeout(urlChangeDetector, 100);
3759 });
3760 }
3761 }, {
3762 key: "dispatchEvent",
3763 value: function dispatchEvent(eventName, payload) {
3764 return _eventDispatcher.default.dispatch(eventName, payload);
3765 }
3766 }, {
3767 key: "dispatchEventWithoutTrigger",
3768 value: function dispatchEventWithoutTrigger(eventName, payload) {
3769 var cleanPayload = _objectSpread({}, payload);
3770 delete cleanPayload.trigger;
3771 return _eventDispatcher.default.dispatch(eventName, cleanPayload);
3772 }
3773 }, {
3774 key: "sendEventOrStore",
3775 value: function sendEventOrStore(eventType, eventData) {
3776 if ('TOP_UPGRADE' === eventType && 'no_click' !== eventData.upgradeClicked) {
3777 var stepNumber = this.getStepNumber(eventData.currentStep);
3778 this.markUpgradeClickSent(stepNumber);
3779 }
3780 if (_eventDispatcher.default.canSendEvents()) {
3781 return this.sendEventDirect(eventType, eventData);
3782 }
3783 this.storeEventForLater(eventType, eventData);
3784 }
3785 }, {
3786 key: "sendEventDirect",
3787 value: function sendEventDirect(eventType, eventData) {
3788 var config = this.EVENT_CONFIGS[eventType];
3789 if (!config) {
3790 return;
3791 }
3792 if (config.isRawPayload) {
3793 return this.dispatchEvent(config.eventName, eventData);
3794 }
3795 var stepNumber = config.stepOverride || this.getStepNumber(eventData.currentStep);
3796 var stepName = config.stepNameOverride || this.getStepName(stepNumber);
3797 var eventPayload = _eventDispatcher.default.createStepEventPayload(stepNumber, stepName, _objectSpread(_objectSpread({}, config.basePayload), config.payloadBuilder(eventData)));
3798 if (config.excludeFields) {
3799 config.excludeFields.forEach(function (field) {
3800 delete eventPayload[field];
3801 });
3802 }
3803 return this.dispatchEvent(config.eventName, eventPayload);
3804 }
3805 }, {
3806 key: "storeEventForLater",
3807 value: function storeEventForLater(eventType, eventData) {
3808 var config = this.EVENT_CONFIGS[eventType];
3809 if (!config) {
3810 return;
3811 }
3812 var dataWithTimestamp = _objectSpread(_objectSpread({}, eventData), {}, {
3813 timestamp: _timingManager.default.getCurrentTime()
3814 });
3815 if (config.isArray) {
3816 var existingEvents = _storageManager.default.getArray(config.storageKey);
3817 existingEvents.push(dataWithTimestamp);
3818 _storageManager.default.setObject(config.storageKey, existingEvents);
3819 } else {
3820 _storageManager.default.setObject(config.storageKey, dataWithTimestamp);
3821 }
3822 }
3823 }, {
3824 key: "sendStoredEvent",
3825 value: function sendStoredEvent(eventType) {
3826 var _this4 = this;
3827 var config = this.EVENT_CONFIGS[eventType];
3828 if (!config) {
3829 return;
3830 }
3831 var storedData = config.isArray ? _storageManager.default.getArray(config.storageKey) : _storageManager.default.getObject(config.storageKey);
3832 if (!storedData || config.isArray && 0 === storedData.length) {
3833 return;
3834 }
3835 if ('CONNECT_STATUS' === eventType && storedData && !storedData.status) {
3836 storedData.status = 'fail';
3837 }
3838 if ('CREATE_ACCOUNT_STATUS' === eventType && storedData && !storedData.status) {
3839 storedData.status = 'fail';
3840 }
3841 if ('CREATE_MY_ACCOUNT' === eventType && storedData && !storedData.createAccountClicked) {
3842 storedData.createAccountClicked = 'main_cta';
3843 }
3844 var processEvent = function processEvent(eventData) {
3845 if (config.isRawPayload) {
3846 _this4.dispatchEvent(config.eventName, eventData);
3847 return;
3848 }
3849 var stepNumber = config.stepOverride || _this4.getStepNumber(eventData.currentStep);
3850 var stepName = config.stepNameOverride || _this4.getStepName(stepNumber);
3851 var eventPayload = _eventDispatcher.default.createStepEventPayload(stepNumber, stepName, _objectSpread(_objectSpread({}, config.basePayload), config.payloadBuilder(eventData)));
3852 if (config.excludeFields) {
3853 config.excludeFields.forEach(function (field) {
3854 delete eventPayload[field];
3855 });
3856 }
3857 _this4.dispatchEvent(config.eventName, eventPayload);
3858 };
3859 if (config.isArray) {
3860 storedData.forEach(processEvent);
3861 } else {
3862 processEvent(storedData);
3863 }
3864 _storageManager.default.remove(config.storageKey);
3865 }
3866 }, {
3867 key: "updateLibraryConnectConfig",
3868 value: function updateLibraryConnectConfig(data) {
3869 if (!elementorCommon.config.library_connect) {
3870 return;
3871 }
3872 elementorCommon.config.library_connect.is_connected = true;
3873 elementorCommon.config.library_connect.current_access_level = data.kits_access_level || data.access_level || 0;
3874 elementorCommon.config.library_connect.current_access_tier = data.access_tier;
3875 elementorCommon.config.library_connect.plan_type = data.plan_type;
3876 elementorCommon.config.library_connect.user_id = data.user_id || null;
3877 }
3878 }, {
3879 key: "sendUpgradeNowStep3",
3880 value: function sendUpgradeNowStep3(selectedFeatures, currentStep) {
3881 var proFeaturesChecked = this.extractSelectedFeatureKeys(selectedFeatures);
3882 return _eventDispatcher.default.dispatchStepEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.UPGRADE_NOW_S3, currentStep, _eventDispatcher.ONBOARDING_STEP_NAMES.PRO_FEATURES, {
3883 location: 'plugin_onboarding',
3884 pro_features_checked: proFeaturesChecked
3885 });
3886 }
3887 }, {
3888 key: "extractSelectedFeatureKeys",
3889 value: function extractSelectedFeatureKeys(selectedFeatures) {
3890 if (!selectedFeatures || (0, _typeof2.default)(selectedFeatures) !== 'object') {
3891 return [];
3892 }
3893 if (Array.isArray(selectedFeatures)) {
3894 return this.extractFromLegacyArrayFormat(selectedFeatures);
3895 }
3896 return this.extractFromObjectFormat(selectedFeatures);
3897 }
3898 }, {
3899 key: "extractFromLegacyArrayFormat",
3900 value: function extractFromLegacyArrayFormat(selectedFeatures) {
3901 return selectedFeatures.filter(function (feature) {
3902 return feature && feature.is_checked;
3903 }).map(function (feature) {
3904 return feature.key;
3905 }).filter(function (key) {
3906 return key;
3907 });
3908 }
3909 }, {
3910 key: "extractFromObjectFormat",
3911 value: function extractFromObjectFormat(selectedFeatures) {
3912 var allFeatures = [];
3913 if (Array.isArray(selectedFeatures.one)) {
3914 allFeatures.push.apply(allFeatures, (0, _toConsumableArray2.default)(selectedFeatures.one));
3915 }
3916 if (Array.isArray(selectedFeatures.essential)) {
3917 allFeatures.push.apply(allFeatures, (0, _toConsumableArray2.default)(selectedFeatures.essential));
3918 }
3919 if (Array.isArray(selectedFeatures.advanced)) {
3920 allFeatures.push.apply(allFeatures, (0, _toConsumableArray2.default)(selectedFeatures.advanced));
3921 }
3922 return allFeatures;
3923 }
3924 }, {
3925 key: "sendTopUpgrade",
3926 value: function sendTopUpgrade(currentStep, upgradeClicked) {
3927 var stepNumber = this.getStepNumber(currentStep);
3928 if (stepNumber) {
3929 this.trackStepAction(stepNumber, 'top_upgrade', {
3930 upgrade_clicked: upgradeClicked
3931 });
3932 }
3933 return this.sendEventOrStore('TOP_UPGRADE', {
3934 currentStep: currentStep,
3935 upgradeClicked: upgradeClicked
3936 });
3937 }
3938 }, {
3939 key: "cancelDelayedNoClickEvent",
3940 value: function cancelDelayedNoClickEvent() {
3941 _storageManager.default.remove(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE_NO_CLICK);
3942 }
3943 }, {
3944 key: "initiateCoreOnboarding",
3945 value: function initiateCoreOnboarding() {
3946 _storageManager.default.clearAllOnboardingData();
3947 _timingManager.default.clearStaleSessionData();
3948 _timingManager.default.initializeOnboardingStartTime();
3949 }
3950 }, {
3951 key: "sendCoreOnboardingInitiated",
3952 value: function sendCoreOnboardingInitiated() {
3953 var startTime = _timingManager.default.initializeOnboardingStartTime();
3954 var eventData = {
3955 location: 'plugin_onboarding',
3956 step_name: _eventDispatcher.ONBOARDING_STEP_NAMES.ONBOARDING_START,
3957 onboarding_start_time: startTime
3958 };
3959 this.dispatchEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.CORE_ONBOARDING, eventData);
3960 _storageManager.default.remove(_storageManager.ONBOARDING_STORAGE_KEYS.INITIATED);
3961 }
3962 }, {
3963 key: "storeSiteStarterChoice",
3964 value: function storeSiteStarterChoice(siteStarter) {
3965 var existingChoice = _storageManager.default.getObject(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE);
3966 if (this.isReturnScenario(existingChoice, siteStarter)) {
3967 this.sendReturnEventAndUpdateChoice(existingChoice, siteStarter);
3968 } else {
3969 this.storeInitialChoice(siteStarter);
3970 }
3971 }
3972 }, {
3973 key: "isReturnScenario",
3974 value: function isReturnScenario(existingChoice, siteStarter) {
3975 return existingChoice && existingChoice.site_starter !== siteStarter;
3976 }
3977 }, {
3978 key: "sendReturnEventAndUpdateChoice",
3979 value: function sendReturnEventAndUpdateChoice(existingChoice, siteStarter) {
3980 var returnEventPayload = this.createReturnEventPayload(existingChoice, siteStarter);
3981 this.dispatchEventWithoutTrigger(_eventDispatcher.ONBOARDING_EVENTS_MAP.STEP4_RETURN_STEP4, returnEventPayload);
3982 this.updateChoiceWithReturnTracking(existingChoice, siteStarter);
3983 }
3984 }, {
3985 key: "createReturnEventPayload",
3986 value: function createReturnEventPayload(existingChoice, siteStarter) {
3987 return _eventDispatcher.default.createStepEventPayload(4, _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER, {
3988 location: 'plugin_onboarding',
3989 trigger: 'user_returns_to_onboarding',
3990 return_to_onboarding: existingChoice.site_starter,
3991 original_choice_timestamp: existingChoice.timestamp,
3992 new_choice: siteStarter
3993 });
3994 }
3995 }, {
3996 key: "updateChoiceWithReturnTracking",
3997 value: function updateChoiceWithReturnTracking(existingChoice, siteStarter) {
3998 var choiceData = {
3999 site_starter: siteStarter,
4000 original_choice: existingChoice.site_starter,
4001 timestamp: _timingManager.default.getCurrentTime(),
4002 return_event_sent: true
4003 };
4004 _storageManager.default.setObject(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE, choiceData);
4005 }
4006 }, {
4007 key: "storeInitialChoice",
4008 value: function storeInitialChoice(siteStarter) {
4009 var choiceData = {
4010 site_starter: siteStarter,
4011 timestamp: _timingManager.default.getCurrentTime(),
4012 return_event_sent: false
4013 };
4014 _storageManager.default.setObject(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE, choiceData);
4015 }
4016 }, {
4017 key: "checkAndSendReturnToStep4",
4018 value: function checkAndSendReturnToStep4() {
4019 var choiceData = _storageManager.default.getObject(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE);
4020 if (!choiceData) {
4021 return;
4022 }
4023 if (this.shouldSendReturnEvent(choiceData)) {
4024 var returnEventPayload = this.createReturnEventPayloadFromStoredData(choiceData);
4025 this.dispatchEventWithoutTrigger(_eventDispatcher.ONBOARDING_EVENTS_MAP.STEP4_RETURN_STEP4, returnEventPayload);
4026 this.markReturnEventAsSent(choiceData);
4027 }
4028 this.resetStep4EndStateTracking();
4029 }
4030 }, {
4031 key: "resetStep4EndStateTracking",
4032 value: function resetStep4EndStateTracking() {
4033 _storageManager.default.remove(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_END_STATE_SENT);
4034 _storageManager.default.remove(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_ACTIONS);
4035 this.trackStepAction(4, 'returned_to_step4', {
4036 return_detected: true,
4037 timestamp: _timingManager.default.getCurrentTime()
4038 });
4039 }
4040 }, {
4041 key: "shouldSendReturnEvent",
4042 value: function shouldSendReturnEvent(choiceData) {
4043 return !choiceData.return_event_sent && choiceData.original_choice && choiceData.original_choice !== choiceData.site_starter;
4044 }
4045 }, {
4046 key: "createReturnEventPayloadFromStoredData",
4047 value: function createReturnEventPayloadFromStoredData(choiceData) {
4048 return _eventDispatcher.default.createStepEventPayload(4, _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER, {
4049 location: 'plugin_onboarding',
4050 trigger: 'user_returns_to_onboarding',
4051 return_to_onboarding: choiceData.original_choice,
4052 original_choice_timestamp: choiceData.timestamp,
4053 new_choice: choiceData.site_starter
4054 });
4055 }
4056 }, {
4057 key: "markReturnEventAsSent",
4058 value: function markReturnEventAsSent(choiceData) {
4059 choiceData.return_event_sent = true;
4060 _storageManager.default.setObject(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE, choiceData);
4061 }
4062 }, {
4063 key: "handleSiteStarterChoice",
4064 value: function handleSiteStarterChoice(siteStarter) {
4065 _timingManager.default.trackStepStartTime(4);
4066 this.storeSiteStarterChoice(siteStarter);
4067 this.trackStepAction(4, 'site_starter', {
4068 source_type: siteStarter
4069 });
4070 this.sendStep4SiteStarter(siteStarter);
4071 this.sendStepEndState(4);
4072 }
4073 }, {
4074 key: "sendStep4SiteStarter",
4075 value: function sendStep4SiteStarter(siteStarter) {
4076 if (_eventDispatcher.default.canSendEvents()) {
4077 return _eventDispatcher.default.dispatchStepEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.STEP4_SITE_STARTER, 4, _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER, {
4078 location: 'plugin_onboarding',
4079 site_starter: siteStarter
4080 });
4081 }
4082 }
4083 }, {
4084 key: "checkAndSendEditorLoadedFromOnboarding",
4085 value: function checkAndSendEditorLoadedFromOnboarding() {
4086 return _postOnboardingTracker.default.checkAndSendEditorLoadedFromOnboarding();
4087 }
4088 }, {
4089 key: "sendExitButtonEvent",
4090 value: function sendExitButtonEvent(currentStep) {
4091 var stepNumber = this.getStepNumber(currentStep);
4092 this.trackStepAction(stepNumber, 'exit:x_button', {
4093 exit_type: 'x_button'
4094 });
4095 this.sendStepEndState(stepNumber);
4096 return this.sendEventOrStore('EXIT', {
4097 currentStep: currentStep,
4098 exitType: 'x_button'
4099 });
4100 }
4101 }, {
4102 key: "trackStepAction",
4103 value: function trackStepAction(stepNumber, action) {
4104 var additionalData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4105 var stepConfig = this.getStepConfig(stepNumber);
4106 if (stepConfig) {
4107 this.trackStepActionInternal(stepNumber, action, stepConfig.storageKey, additionalData);
4108 }
4109 }
4110 }, {
4111 key: "sendStepEndState",
4112 value: function sendStepEndState(stepNumber) {
4113 var stepConfig = this.getStepConfig(stepNumber);
4114 if (stepConfig) {
4115 this.sendStepEndStateInternal(stepNumber, stepConfig.storageKey, stepConfig.eventName, stepConfig.stepName, stepConfig.endStateProperty);
4116 }
4117 }
4118 }, {
4119 key: "trackStepActionInternal",
4120 value: function trackStepActionInternal(stepNumber, action, storageKey) {
4121 var additionalData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
4122 var stepConfig = this.getStepConfig(stepNumber);
4123 var actualStorageKey = storageKey || (stepConfig ? stepConfig.storageKey : null);
4124 if (!actualStorageKey) {
4125 return;
4126 }
4127 var existingActions = _storageManager.default.getArray(actualStorageKey);
4128 var actionData = _objectSpread({
4129 action: action,
4130 timestamp: _timingManager.default.getCurrentTime()
4131 }, additionalData);
4132 existingActions.push(actionData);
4133 _storageManager.default.setObject(actualStorageKey, existingActions);
4134 }
4135 }, {
4136 key: "getEndStateSentKey",
4137 value: function getEndStateSentKey(stepNumber) {
4138 var endStateKeys = {
4139 1: _storageManager.ONBOARDING_STORAGE_KEYS.STEP1_END_STATE_SENT,
4140 2: _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_END_STATE_SENT,
4141 3: _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_END_STATE_SENT,
4142 4: _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_END_STATE_SENT
4143 };
4144 return endStateKeys[stepNumber];
4145 }
4146 }, {
4147 key: "sendStepEndStateInternal",
4148 value: function sendStepEndStateInternal(stepNumber, storageKey, eventName, stepName, endStateProperty) {
4149 var initialActions = _storageManager.default.getArray(storageKey);
4150 this.sendHoverEventsFromStepActions(initialActions, stepNumber);
4151 var actions = _storageManager.default.getArray(storageKey);
4152 if (0 === actions.length) {
4153 return;
4154 }
4155 var endStateSentKey = this.getEndStateSentKey(stepNumber);
4156 if (_storageManager.default.exists(endStateSentKey)) {
4157 return;
4158 }
4159 var eventData = _eventDispatcher.default.createStepEventPayload(stepNumber, stepName, {
4160 location: 'plugin_onboarding',
4161 trigger: 'user_redirects_out_of_step'
4162 });
4163 eventData = _timingManager.default.addTimingToEventData(eventData, stepNumber);
4164 eventData[endStateProperty] = actions;
4165 if (_eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER === stepName) {
4166 this.stopSessionRecordingIfNeeded();
4167 }
4168 if (_eventDispatcher.default.canSendEvents()) {
4169 this.dispatchEventWithoutTrigger(eventName, eventData);
4170 _storageManager.default.remove(storageKey);
4171 _storageManager.default.setString(endStateSentKey, 'true');
4172 _timingManager.default.clearStepStartTime(stepNumber);
4173 this.sendStoredEventsIfConnected();
4174 return;
4175 }
4176 if (_eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT === stepName) {
4177 this.storeStep1EndStateForLater(eventData, storageKey);
4178 return;
4179 }
4180 this.dispatchEventWithoutTrigger(eventName, eventData);
4181 _storageManager.default.remove(storageKey);
4182 _storageManager.default.setString(endStateSentKey, 'true');
4183 _timingManager.default.clearStepStartTime(stepNumber);
4184 }
4185 }, {
4186 key: "getStepNumber",
4187 value: function getStepNumber(pageId) {
4188 if (this.isNumericPageId(pageId)) {
4189 return pageId;
4190 }
4191 if (this.isStringNumericPageId(pageId)) {
4192 return this.convertStringToNumber(pageId);
4193 }
4194 return this.mapPageIdToStepNumber(pageId);
4195 }
4196 }, {
4197 key: "isNumericPageId",
4198 value: function isNumericPageId(pageId) {
4199 return 'number' === typeof pageId;
4200 }
4201 }, {
4202 key: "isStringNumericPageId",
4203 value: function isStringNumericPageId(pageId) {
4204 return 'string' === typeof pageId && !isNaN(pageId);
4205 }
4206 }, {
4207 key: "convertStringToNumber",
4208 value: function convertStringToNumber(pageId) {
4209 return parseInt(pageId, 10);
4210 }
4211 }, {
4212 key: "mapPageIdToStepNumber",
4213 value: function mapPageIdToStepNumber(pageId) {
4214 var stepMappings = this.getStepMappings();
4215 var mappedStep = stepMappings[pageId];
4216 return mappedStep || null;
4217 }
4218 }, {
4219 key: "getStepMappings",
4220 value: function getStepMappings() {
4221 return {
4222 account: 1,
4223 connect: 1,
4224 hello: 2,
4225 hello_biz: 2,
4226 chooseFeatures: 3,
4227 pro_features: 3,
4228 site_starter: 4,
4229 goodToGo: 4,
4230 siteName: 5,
4231 siteLogo: 6
4232 };
4233 }
4234 }, {
4235 key: "getStepName",
4236 value: function getStepName(stepNumber) {
4237 var stepNames = {
4238 1: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT,
4239 2: _eventDispatcher.ONBOARDING_STEP_NAMES.HELLO_BIZ,
4240 3: _eventDispatcher.ONBOARDING_STEP_NAMES.PRO_FEATURES,
4241 4: _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER,
4242 5: _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_NAME,
4243 6: _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_LOGO
4244 };
4245 return stepNames[stepNumber] || 'unknown';
4246 }
4247 }, {
4248 key: "getStepConfig",
4249 value: function getStepConfig(stepNumber) {
4250 var stepConfigs = {
4251 1: {
4252 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.STEP1_ACTIONS,
4253 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP1_END_STATE,
4254 stepName: _eventDispatcher.ONBOARDING_STEP_NAMES.CONNECT,
4255 endStateProperty: 'step1_actions'
4256 },
4257 2: {
4258 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_ACTIONS,
4259 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP2_END_STATE,
4260 stepName: _eventDispatcher.ONBOARDING_STEP_NAMES.HELLO_BIZ,
4261 endStateProperty: 'step2_actions'
4262 },
4263 3: {
4264 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_ACTIONS,
4265 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP3_END_STATE,
4266 stepName: _eventDispatcher.ONBOARDING_STEP_NAMES.PRO_FEATURES,
4267 endStateProperty: 'step3_actions'
4268 },
4269 4: {
4270 storageKey: _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_ACTIONS,
4271 eventName: _eventDispatcher.ONBOARDING_EVENTS_MAP.STEP4_END_STATE,
4272 stepName: _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER,
4273 endStateProperty: 'step4_actions'
4274 }
4275 };
4276 return stepConfigs[stepNumber] || null;
4277 }
4278 }, {
4279 key: "sendConnectionSuccessEvents",
4280 value: function sendConnectionSuccessEvents(data) {
4281 this.sendCoreOnboardingInitiated();
4282 this.sendAppropriateStatusEvent('success', data);
4283 this.sendAllStoredEvents();
4284 }
4285 }, {
4286 key: "sendConnectionFailureEvents",
4287 value: function sendConnectionFailureEvents() {
4288 this.sendAppropriateStatusEvent('fail');
4289 }
4290 }, {
4291 key: "validateConnectStatus",
4292 value: function validateConnectStatus(status) {
4293 if ('success' === status || 'fail' === status) {
4294 return status;
4295 }
4296 return 'fail';
4297 }
4298 }, {
4299 key: "validateCreateAccountStatus",
4300 value: function validateCreateAccountStatus(status) {
4301 if ('success' === status || 'fail' === status) {
4302 return status;
4303 }
4304 return 'fail';
4305 }
4306 }, {
4307 key: "validateCreateAccountClicked",
4308 value: function validateCreateAccountClicked(clickedValue) {
4309 if ('topbar' === clickedValue || 'main_cta' === clickedValue) {
4310 return clickedValue;
4311 }
4312 return 'main_cta';
4313 }
4314 }, {
4315 key: "sendAppropriateStatusEvent",
4316 value: function sendAppropriateStatusEvent(status) {
4317 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
4318 var hasCreateAccountAction = _storageManager.default.exists(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_MY_ACCOUNT);
4319 if (hasCreateAccountAction) {
4320 this.sendEventDirect('CREATE_ACCOUNT_STATUS', {
4321 status: status,
4322 currentStep: 1
4323 });
4324 }
4325 var trackingOptedIn = (data === null || data === void 0 ? void 0 : data.tracking_opted_in) || false;
4326 var userTier = (data === null || data === void 0 ? void 0 : data.access_tier) || null;
4327 this.sendEventDirect('CONNECT_STATUS', {
4328 status: status,
4329 trackingOptedIn: trackingOptedIn,
4330 userTier: userTier
4331 });
4332 }
4333 }, {
4334 key: "sendAllStoredEvents",
4335 value: function sendAllStoredEvents() {
4336 this.sendStoredExperimentData();
4337 this.sendStoredEvent('SKIP');
4338 this.sendStoredEvent('TOP_UPGRADE');
4339 this.sendStoredEvent('CREATE_MY_ACCOUNT');
4340 this.sendStoredEvent('CREATE_ACCOUNT_STATUS');
4341 this.sendStoredEvent('CONNECT_STATUS');
4342 this.sendStoredEvent('STEP1_CLICKED_CONNECT');
4343 this.sendStoredEvent('STEP1_END_STATE');
4344 this.sendStoredEvent('EXIT');
4345 this.sendStoredEvent('AB_101_START_AS_FREE_USER');
4346 }
4347 }, {
4348 key: "sendStoredEventsIfConnected",
4349 value: function sendStoredEventsIfConnected() {
4350 if (_eventDispatcher.default.canSendEvents()) {
4351 this.sendAllStoredEvents();
4352 }
4353 }
4354 }, {
4355 key: "handleStep4CardClick",
4356 value: function handleStep4CardClick() {
4357 var hasPreviousClick = _storageManager.default.exists(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_HAS_PREVIOUS_CLICK);
4358 if (hasPreviousClick) {
4359 this.checkAndSendReturnToStep4();
4360 } else {
4361 _storageManager.default.setString(_storageManager.ONBOARDING_STORAGE_KEYS.STEP4_HAS_PREVIOUS_CLICK, 'true');
4362 }
4363 }
4364 }, {
4365 key: "setupAllUpgradeButtons",
4366 value: function setupAllUpgradeButtons(currentStep) {
4367 var _this5 = this;
4368 var upgradeButtons = document.querySelectorAll('.elementor-button[href*="upgrade"], .e-btn[href*="upgrade"], .eps-button[href*="upgrade"]');
4369 upgradeButtons.forEach(function (button) {
4370 _this5.setupSingleUpgradeButton(button, currentStep);
4371 });
4372 return upgradeButtons.length;
4373 }
4374 }, {
4375 key: "setupSingleUpgradeButton",
4376 value: function setupSingleUpgradeButton(buttonElement, currentStep) {
4377 var _this6 = this;
4378 if (!this.isValidButtonElement(buttonElement)) {
4379 return null;
4380 }
4381 this.cleanupButtonTracking(buttonElement);
4382 if (this.isButtonAlreadyTrackedForStep(buttonElement, currentStep)) {
4383 return null;
4384 }
4385 this.markButtonAsTracked(buttonElement, currentStep);
4386 var eventHandlers = this.createUpgradeButtonEventHandlers(buttonElement, currentStep);
4387 this.attachEventHandlersToButton(buttonElement, eventHandlers);
4388 return function () {
4389 _this6.cleanupButtonTracking(buttonElement);
4390 };
4391 }
4392 }, {
4393 key: "isValidButtonElement",
4394 value: function isValidButtonElement(buttonElement) {
4395 return !!buttonElement;
4396 }
4397 }, {
4398 key: "isButtonAlreadyTrackedForStep",
4399 value: function isButtonAlreadyTrackedForStep(buttonElement, currentStep) {
4400 var existingStep = buttonElement.dataset.onboardingStep;
4401 return buttonElement.dataset.onboardingTracked && existingStep === currentStep;
4402 }
4403 }, {
4404 key: "markButtonAsTracked",
4405 value: function markButtonAsTracked(buttonElement, currentStep) {
4406 buttonElement.dataset.onboardingTracked = 'true';
4407 buttonElement.dataset.onboardingStep = currentStep;
4408 }
4409 }, {
4410 key: "createUpgradeButtonEventHandlers",
4411 value: function createUpgradeButtonEventHandlers(buttonElement, currentStep) {
4412 var _this7 = this;
4413 var hasClicked = false;
4414 var hasHovered = false;
4415 var handleMouseEnter = function handleMouseEnter() {
4416 if (!hasHovered) {
4417 hasHovered = true;
4418 _this7.trackUpgradeHoverAction(currentStep, buttonElement);
4419 }
4420 };
4421 var handleMouseLeave = function handleMouseLeave() {};
4422 var handleClick = function handleClick() {
4423 if (_this7.preventDuplicateClick(hasClicked)) {
4424 return;
4425 }
4426 hasClicked = true;
4427 _this7.sendUpgradeClickEvent(buttonElement, currentStep);
4428 };
4429 return {
4430 handleMouseEnter: handleMouseEnter,
4431 handleMouseLeave: handleMouseLeave,
4432 handleClick: handleClick
4433 };
4434 }
4435 }, {
4436 key: "preventDuplicateClick",
4437 value: function preventDuplicateClick(hasClicked) {
4438 return hasClicked;
4439 }
4440 }, {
4441 key: "sendUpgradeClickEvent",
4442 value: function sendUpgradeClickEvent(buttonElement, currentStep) {
4443 var upgradeClickedValue = this.determineUpgradeClickedValue(buttonElement);
4444 var stepNumber = this.getStepNumber(currentStep);
4445 if (stepNumber) {
4446 var stepConfig = this.getStepConfig(stepNumber);
4447 var hoverData = this.pendingHoverActions && this.pendingHoverActions[stepNumber];
4448 if (stepConfig) {
4449 var actualStorageKey = stepConfig.storageKey;
4450 var existingActions = _storageManager.default.getArray(actualStorageKey);
4451 var noClickIndex = existingActions.findIndex(function (action) {
4452 return 'upgrade_topbar' === action.action && 'no_click' === action.upgrade_clicked;
4453 });
4454 if (noClickIndex !== -1) {
4455 existingActions.splice(noClickIndex, 1);
4456 _storageManager.default.setObject(actualStorageKey, existingActions);
4457 }
4458 }
4459 var actionData = {
4460 upgrade_clicked: upgradeClickedValue,
4461 click_timestamp: _timingManager.default.getCurrentTime()
4462 };
4463 if (hoverData) {
4464 actionData.upgrade_hovered = hoverData.upgrade_hovered;
4465 actionData.hover_timestamp = hoverData.hover_timestamp;
4466 }
4467 this.trackStepAction(stepNumber, 'upgrade_topbar', actionData);
4468 if (this.pendingHoverActions && this.pendingHoverActions[stepNumber]) {
4469 delete this.pendingHoverActions[stepNumber];
4470 }
4471 }
4472 this.sendEventOrStore('TOP_UPGRADE', {
4473 currentStep: currentStep,
4474 upgradeClicked: upgradeClickedValue
4475 });
4476 }
4477 }, {
4478 key: "trackUpgradeHoverAction",
4479 value: function trackUpgradeHoverAction(currentStep, buttonElement) {
4480 var stepNumber = this.getStepNumber(currentStep);
4481 if (!stepNumber) {
4482 return;
4483 }
4484 var upgradeHoverValue = this.determineUpgradeClickedValue(buttonElement);
4485 if (!this.pendingHoverActions) {
4486 this.pendingHoverActions = {};
4487 }
4488 this.pendingHoverActions[stepNumber] = {
4489 upgrade_hovered: upgradeHoverValue,
4490 hover_timestamp: _timingManager.default.getCurrentTime()
4491 };
4492 }
4493 }, {
4494 key: "sendHoverEventsFromStepActions",
4495 value: function sendHoverEventsFromStepActions(actions, stepNumber) {
4496 if (!this.pendingHoverActions || !this.pendingHoverActions[stepNumber]) {
4497 return;
4498 }
4499 var hasUpgradeTopbarInActions = actions.some(function (action) {
4500 return action.action && 'upgrade_topbar' === action.action;
4501 });
4502 var hasStoredClickEvent = this.hasExistingUpgradeClickEvent(stepNumber);
4503 var hasClickBeenSent = this.hasUpgradeClickBeenSent(stepNumber);
4504 if (hasUpgradeTopbarInActions || hasStoredClickEvent || hasClickBeenSent) {
4505 return;
4506 }
4507 var hoverData = this.pendingHoverActions[stepNumber];
4508 var stepConfig = this.getStepConfig(stepNumber);
4509 if (stepConfig) {
4510 this.trackStepActionInternal(stepNumber, 'upgrade_topbar', stepConfig.storageKey, {
4511 upgrade_clicked: 'no_click',
4512 upgrade_hovered: hoverData.upgrade_hovered,
4513 hover_timestamp: hoverData.hover_timestamp
4514 });
4515 }
4516 this.sendEventOrStore('TOP_UPGRADE', {
4517 currentStep: stepNumber,
4518 upgradeClicked: 'no_click',
4519 upgradeHovered: hoverData.upgrade_hovered,
4520 hoverTimestamp: hoverData.hover_timestamp
4521 });
4522 delete this.pendingHoverActions[stepNumber];
4523 }
4524 }, {
4525 key: "markUpgradeClickSent",
4526 value: function markUpgradeClickSent(stepNumber) {
4527 if (!this.sentUpgradeClicks) {
4528 this.sentUpgradeClicks = new Set();
4529 }
4530 this.sentUpgradeClicks.add(stepNumber);
4531 }
4532 }, {
4533 key: "hasUpgradeClickBeenSent",
4534 value: function hasUpgradeClickBeenSent(stepNumber) {
4535 return this.sentUpgradeClicks && this.sentUpgradeClicks.has(stepNumber);
4536 }
4537 }, {
4538 key: "hasExistingUpgradeClickEvent",
4539 value: function hasExistingUpgradeClickEvent(stepNumber) {
4540 var _this8 = this;
4541 var config = this.EVENT_CONFIGS.TOP_UPGRADE;
4542 var storedEvents = _storageManager.default.getArray(config.storageKey);
4543 return storedEvents.some(function (event) {
4544 var eventStepNumber = _this8.getStepNumber(event.currentStep);
4545 return eventStepNumber === stepNumber && event.upgradeClicked && 'no_click' !== event.upgradeClicked;
4546 });
4547 }
4548 }, {
4549 key: "attachEventHandlersToButton",
4550 value: function attachEventHandlersToButton(buttonElement, eventHandlers) {
4551 var handleMouseEnter = eventHandlers.handleMouseEnter,
4552 handleMouseLeave = eventHandlers.handleMouseLeave,
4553 handleClick = eventHandlers.handleClick;
4554 buttonElement._onboardingHandlers = {
4555 mouseenter: handleMouseEnter,
4556 mouseleave: handleMouseLeave,
4557 click: handleClick
4558 };
4559 buttonElement.addEventListener('mouseenter', handleMouseEnter);
4560 buttonElement.addEventListener('mouseleave', handleMouseLeave);
4561 buttonElement.addEventListener('click', handleClick);
4562 }
4563 }, {
4564 key: "cleanupButtonTracking",
4565 value: function cleanupButtonTracking(buttonElement) {
4566 if (!buttonElement) {
4567 return;
4568 }
4569 this.removeExistingEventHandlers(buttonElement);
4570 this.clearTrackingDataAttributes(buttonElement);
4571 }
4572 }, {
4573 key: "removeExistingEventHandlers",
4574 value: function removeExistingEventHandlers(buttonElement) {
4575 if (buttonElement._onboardingHandlers) {
4576 var handlers = buttonElement._onboardingHandlers;
4577 buttonElement.removeEventListener('mouseenter', handlers.mouseenter);
4578 buttonElement.removeEventListener('mouseleave', handlers.mouseleave);
4579 buttonElement.removeEventListener('click', handlers.click);
4580 delete buttonElement._onboardingHandlers;
4581 }
4582 }
4583 }, {
4584 key: "clearTrackingDataAttributes",
4585 value: function clearTrackingDataAttributes(buttonElement) {
4586 delete buttonElement.dataset.onboardingTracked;
4587 delete buttonElement.dataset.onboardingStep;
4588 }
4589 }, {
4590 key: "determineUpgradeClickedValue",
4591 value: function determineUpgradeClickedValue(buttonElement) {
4592 var _elementorCommon$conf, _elementorCommon$conf2;
4593 if ((_elementorCommon$conf = elementorCommon.config.library_connect) !== null && _elementorCommon$conf !== void 0 && _elementorCommon$conf.is_connected && 'pro' === ((_elementorCommon$conf2 = elementorCommon.config.library_connect) === null || _elementorCommon$conf2 === void 0 ? void 0 : _elementorCommon$conf2.current_access_tier)) {
4594 return 'already_pro_user';
4595 }
4596 if (buttonElement.closest('.e-app__popover') || buttonElement.closest('.elementor-tooltip') || buttonElement.closest('.e-onboarding__go-pro-content')) {
4597 return 'on_tooltip';
4598 }
4599 if (buttonElement.closest('.eps-app__header')) {
4600 return 'on_topbar';
4601 }
4602 return 'on_topbar';
4603 }
4604 }, {
4605 key: "trackExitAndSendEndState",
4606 value: function trackExitAndSendEndState(currentStep) {
4607 this.trackStepAction(currentStep, 'exit');
4608 this.sendStepEndState(currentStep);
4609 }
4610 }, {
4611 key: "storeStep1EndStateForLater",
4612 value: function storeStep1EndStateForLater(eventData, storageKey) {
4613 this.storeEventForLater('STEP1_END_STATE', eventData);
4614 _storageManager.default.remove(storageKey);
4615 }
4616 }, {
4617 key: "startSessionRecordingIfNeeded",
4618 value: function startSessionRecordingIfNeeded() {
4619 var _elementorCommon,
4620 _elementorCommon2,
4621 _elementorCommon2$fea,
4622 _this9 = this;
4623 if (_classPrivateFieldGet(_hasAttemptedSessionRecording, this)) {
4624 return;
4625 }
4626 if (!((_elementorCommon = elementorCommon) !== null && _elementorCommon !== void 0 && (_elementorCommon = _elementorCommon.config) !== null && _elementorCommon !== void 0 && (_elementorCommon = _elementorCommon.editor_events) !== null && _elementorCommon !== void 0 && (_elementorCommon = _elementorCommon.session_replays) !== null && _elementorCommon !== void 0 && _elementorCommon.coreOnboarding)) {
4627 return;
4628 }
4629 var featureFlagPromise = (_elementorCommon2 = elementorCommon) === null || _elementorCommon2 === void 0 || (_elementorCommon2 = _elementorCommon2.eventsManager) === null || _elementorCommon2 === void 0 || (_elementorCommon2$fea = _elementorCommon2.featureFlagIsActive) === null || _elementorCommon2$fea === void 0 ? void 0 : _elementorCommon2$fea.call(_elementorCommon2, 'core-onboarding-session-replays');
4630 if (!featureFlagPromise) {
4631 return;
4632 }
4633 _classPrivateFieldSet(_hasAttemptedSessionRecording, this, true);
4634 featureFlagPromise.then(function (isFeatureFlagActive) {
4635 if (!isFeatureFlagActive) {
4636 return;
4637 }
4638 _this9.startSessionRecording();
4639 }).catch(function () {});
4640 }
4641 }, {
4642 key: "startSessionRecording",
4643 value: function startSessionRecording() {
4644 var _elementorCommon3, _elementorCommon3$isS, _elementorCommon$even, _elementorCommon$even2;
4645 if (!_eventDispatcher.default.canSendEvents()) {
4646 return;
4647 }
4648 if ((_elementorCommon3 = elementorCommon) !== null && _elementorCommon3 !== void 0 && (_elementorCommon3 = _elementorCommon3.eventsManager) !== null && _elementorCommon3 !== void 0 && (_elementorCommon3$isS = _elementorCommon3.isSessionRecordingInProgress) !== null && _elementorCommon3$isS !== void 0 && _elementorCommon3$isS.call(_elementorCommon3)) {
4649 return;
4650 }
4651 (_elementorCommon$even = elementorCommon.eventsManager) === null || _elementorCommon$even === void 0 || _elementorCommon$even.dispatchEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.SESSION_REPLAY_START, {
4652 location: 'plugin_onboarding'
4653 });
4654 (_elementorCommon$even2 = elementorCommon.eventsManager) === null || _elementorCommon$even2 === void 0 || _elementorCommon$even2.startSessionRecording();
4655 }
4656 }, {
4657 key: "stopSessionRecordingIfNeeded",
4658 value: function stopSessionRecordingIfNeeded() {
4659 var _elementorCommon$even3;
4660 if (!_classPrivateFieldGet(_hasAttemptedSessionRecording, this)) {
4661 return;
4662 }
4663 (_elementorCommon$even3 = elementorCommon.eventsManager) === null || _elementorCommon$even3 === void 0 || _elementorCommon$even3.stopSessionRecording();
4664 _classPrivateFieldSet(_hasAttemptedSessionRecording, this, false);
4665 }
4666 }, {
4667 key: "onStepLoad",
4668 value: function onStepLoad(currentStep) {
4669 var stepNumber = this.getStepNumber(currentStep);
4670 _timingManager.default.trackStepStartTime(stepNumber);
4671 if (1 === stepNumber || 'account' === currentStep) {
4672 this.sendExperimentStarted(101);
4673 }
4674 if (2 === stepNumber || 'hello' === currentStep || 'hello_biz' === currentStep) {
4675 this.startSessionRecordingIfNeeded();
4676 this.sendStoredStep1EventsOnStep2();
4677 this.sendExperimentStarted(201);
4678 this.sendExperimentStarted(202);
4679 this.sendStep2ThemesLoaded();
4680 }
4681 if (4 === stepNumber || 'goodToGo' === currentStep) {
4682 this.checkAndSendReturnToStep4();
4683 this.sendExperimentStarted(401);
4684 this.sendExperimentStarted(402);
4685 this.sendStep4Loaded();
4686 }
4687 }
4688 }, {
4689 key: "sendStep2ThemesLoaded",
4690 value: function sendStep2ThemesLoaded() {
4691 if (_storageManager.default.exists(_storageManager.ONBOARDING_STORAGE_KEYS.STEP2_THEMES_LOADED_SENT)) {
4692 return;
4693 }
4694 if (_eventDispatcher.default.canSendEvents()) {
4695 _storageManager.default.setString(_storageManager.ONBOARDING_STORAGE_KEYS.STEP2_THEMES_LOADED_SENT, 'true');
4696 return _eventDispatcher.default.dispatchStepEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.STEP2_THEMES_LOADED, 2, _eventDispatcher.ONBOARDING_STEP_NAMES.HELLO_BIZ, {
4697 location: 'plugin_onboarding'
4698 });
4699 }
4700 }
4701 }, {
4702 key: "sendThemeInstalled",
4703 value: function sendThemeInstalled(theme) {
4704 if (_eventDispatcher.default.canSendEvents()) {
4705 return _eventDispatcher.default.dispatchStepEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.THEME_INSTALLED, 2, _eventDispatcher.ONBOARDING_STEP_NAMES.HELLO_BIZ, {
4706 location: 'plugin_onboarding',
4707 theme: theme
4708 });
4709 }
4710 }
4711 }, {
4712 key: "sendThemeMarked",
4713 value: function sendThemeMarked(theme) {
4714 if (_eventDispatcher.default.canSendEvents()) {
4715 return _eventDispatcher.default.dispatchStepEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.THEME_MARKED, 2, _eventDispatcher.ONBOARDING_STEP_NAMES.HELLO_BIZ, {
4716 location: 'plugin_onboarding',
4717 theme: theme
4718 });
4719 }
4720 }
4721 }, {
4722 key: "sendStep4Loaded",
4723 value: function sendStep4Loaded() {
4724 if (_eventDispatcher.default.canSendEvents()) {
4725 return _eventDispatcher.default.dispatchStepEvent(_eventDispatcher.ONBOARDING_EVENTS_MAP.STEP4_LOADED, 4, _eventDispatcher.ONBOARDING_STEP_NAMES.SITE_STARTER, {
4726 location: 'plugin_onboarding'
4727 });
4728 }
4729 }
4730 }, {
4731 key: "sendStoredStep1EventsOnStep2",
4732 value: function sendStoredStep1EventsOnStep2() {
4733 this.sendStoredEvent('STEP1_CLICKED_CONNECT');
4734 var step1Actions = _storageManager.default.getArray(_storageManager.ONBOARDING_STORAGE_KEYS.STEP1_ACTIONS);
4735 if (step1Actions.length > 0) {
4736 this.sendHoverEventsFromStepActions(step1Actions, 1);
4737 }
4738 this.sendStoredEvent('STEP1_END_STATE');
4739 this.sendStoredEventsIfConnected();
4740 }
4741 }, {
4742 key: "setupPostOnboardingClickTracking",
4743 value: function setupPostOnboardingClickTracking() {
4744 return _postOnboardingTracker.default.setupPostOnboardingClickTracking();
4745 }
4746 }, {
4747 key: "cleanupPostOnboardingTracking",
4748 value: function cleanupPostOnboardingTracking() {
4749 return _postOnboardingTracker.default.cleanupPostOnboardingTracking();
4750 }
4751 }, {
4752 key: "clearAllOnboardingStorage",
4753 value: function clearAllOnboardingStorage() {
4754 return _postOnboardingTracker.default.clearAllOnboardingStorage();
4755 }
4756 }, {
4757 key: "getExperimentConfigs",
4758 value: function getExperimentConfigs() {
4759 return {
4760 101: {
4761 name: 'core_onboarding_experiment101',
4762 enabledKey: 'isExperiment101Enabled',
4763 variantKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT101_VARIANT,
4764 startedKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT101_STARTED
4765 },
4766 201: {
4767 name: 'core_onboarding_experiment201',
4768 enabledKey: 'isExperiment201Enabled',
4769 variantKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT201_VARIANT,
4770 startedKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT201_STARTED
4771 },
4772 202: {
4773 name: 'core_onboarding_experiment202',
4774 enabledKey: 'isExperiment202Enabled',
4775 variantKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT202_VARIANT,
4776 startedKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT202_STARTED
4777 },
4778 401: {
4779 name: 'core_onboarding_experiment401',
4780 enabledKey: 'isExperiment401Enabled',
4781 variantKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT401_VARIANT,
4782 startedKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT401_STARTED
4783 },
4784 402: {
4785 name: 'core_onboarding_experiment402',
4786 enabledKey: 'isExperiment402Enabled',
4787 variantKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT402_VARIANT,
4788 startedKey: _storageManager.ONBOARDING_STORAGE_KEYS.EXPERIMENT402_STARTED
4789 }
4790 };
4791 }
4792 }, {
4793 key: "isExperimentEnabled",
4794 value: function isExperimentEnabled(experimentId) {
4795 var _elementorAppConfig;
4796 var config = this.getExperimentConfigs()[experimentId];
4797 if (!config) {
4798 return false;
4799 }
4800 return ((_elementorAppConfig = elementorAppConfig) === null || _elementorAppConfig === void 0 || (_elementorAppConfig = _elementorAppConfig.onboarding) === null || _elementorAppConfig === void 0 ? void 0 : _elementorAppConfig[config.enabledKey]) || false;
4801 }
4802 }, {
4803 key: "getExperimentVariant",
4804 value: function getExperimentVariant(experimentId) {
4805 var config = this.getExperimentConfigs()[experimentId];
4806 if (!config) {
4807 return null;
4808 }
4809 return _storageManager.default.getString(config.variantKey) || null;
4810 }
4811 }, {
4812 key: "assignExperimentVariant",
4813 value: function assignExperimentVariant(experimentId) {
4814 var config = this.getExperimentConfigs()[experimentId];
4815 if (!config || !this.isExperimentEnabled(experimentId)) {
4816 return null;
4817 }
4818 var variant = Math.random() < 0.5 ? 'A' : 'B';
4819 _storageManager.default.setString(config.variantKey, variant);
4820 return variant;
4821 }
4822 }, {
4823 key: "sendExperimentStarted",
4824 value: function sendExperimentStarted(experimentId) {
4825 var config = this.getExperimentConfigs()[experimentId];
4826 if (!config) {
4827 return;
4828 }
4829 if (_storageManager.default.exists(config.startedKey)) {
4830 return;
4831 }
4832 var variant = this.getExperimentVariant(experimentId);
4833 if (!variant) {
4834 variant = this.assignExperimentVariant(experimentId);
4835 if (!variant) {
4836 return;
4837 }
4838 }
4839 var eventData = {
4840 'Experiment name': config.name,
4841 'Variant name': variant
4842 };
4843 if (_eventDispatcher.default.canSendEvents()) {
4844 _eventDispatcher.default.dispatch('$experiment_started', eventData);
4845 _storageManager.default.setString(config.startedKey, 'true');
4846 } else {
4847 this.storeExperimentDataForLater(experimentId, eventData);
4848 }
4849 }
4850 }, {
4851 key: "storeExperimentDataForLater",
4852 value: function storeExperimentDataForLater(experimentId, eventData) {
4853 var config = this.getExperimentConfigs()[experimentId];
4854 if (!config) {
4855 return;
4856 }
4857 var experimentEntry = {
4858 experimentId: experimentId,
4859 eventData: eventData,
4860 timestamp: _timingManager.default.getCurrentTime(),
4861 startedKey: config.startedKey
4862 };
4863 var existingExperiments = _storageManager.default.getArray(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXPERIMENT_DATA);
4864 existingExperiments.push(experimentEntry);
4865 _storageManager.default.setObject(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXPERIMENT_DATA, existingExperiments);
4866 }
4867 }, {
4868 key: "sendStoredExperimentData",
4869 value: function sendStoredExperimentData() {
4870 var storedExperiments = _storageManager.default.getArray(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXPERIMENT_DATA);
4871 if (0 === storedExperiments.length) {
4872 return;
4873 }
4874 storedExperiments.forEach(function (experiment) {
4875 _eventDispatcher.default.dispatch('$experiment_started', experiment.eventData);
4876 _storageManager.default.setString(experiment.startedKey, 'true');
4877 });
4878 _storageManager.default.remove(_storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXPERIMENT_DATA);
4879 }
4880 }]);
4881 }();
4882 var onboardingTracker = new OnboardingTracker();
4883 var _default = exports["default"] = onboardingTracker;
4884
4885 /***/ }),
4886
4887 /***/ "../app/modules/onboarding/assets/js/utils/modules/timing-manager.js":
4888 /*!***************************************************************************!*\
4889 !*** ../app/modules/onboarding/assets/js/utils/modules/timing-manager.js ***!
4890 \***************************************************************************/
4891 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4892
4893 "use strict";
4894
4895
4896 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4897 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4898 Object.defineProperty(exports, "__esModule", ({
4899 value: true
4900 }));
4901 exports.addTimingToEventData = addTimingToEventData;
4902 exports.calculateStepTimeSpent = calculateStepTimeSpent;
4903 exports.calculateTotalTimeSpent = calculateTotalTimeSpent;
4904 exports.clearStaleSessionData = clearStaleSessionData;
4905 exports.clearStepStartTime = clearStepStartTime;
4906 exports.createTimeSpentData = createTimeSpentData;
4907 exports["default"] = void 0;
4908 exports.formatTimeForEvent = formatTimeForEvent;
4909 exports.getCurrentTime = getCurrentTime;
4910 exports.getOnboardingStartTime = getOnboardingStartTime;
4911 exports.hasOnboardingStarted = hasOnboardingStarted;
4912 exports.initializeOnboardingStartTime = initializeOnboardingStartTime;
4913 exports.isWithinTimeThreshold = isWithinTimeThreshold;
4914 exports.trackStepStartTime = trackStepStartTime;
4915 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
4916 var _storageManager = _interopRequireWildcard(__webpack_require__(/*! ./storage-manager.js */ "../app/modules/onboarding/assets/js/utils/modules/storage-manager.js"));
4917 var StorageManager = _storageManager;
4918 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
4919 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4920 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4921 function getCurrentTime() {
4922 return Date.now();
4923 }
4924 function initializeOnboardingStartTime() {
4925 var startTime = getCurrentTime();
4926 StorageManager.setNumber(_storageManager.ONBOARDING_STORAGE_KEYS.START_TIME, startTime);
4927 StorageManager.setString(_storageManager.ONBOARDING_STORAGE_KEYS.INITIATED, 'true');
4928 return startTime;
4929 }
4930 function getOnboardingStartTime() {
4931 return StorageManager.getNumber(_storageManager.ONBOARDING_STORAGE_KEYS.START_TIME);
4932 }
4933 function hasOnboardingStarted() {
4934 return StorageManager.exists(_storageManager.ONBOARDING_STORAGE_KEYS.START_TIME);
4935 }
4936 function trackStepStartTime(stepNumber) {
4937 var existingStartTime = StorageManager.getStepStartTime(stepNumber);
4938 if (existingStartTime) {
4939 return existingStartTime;
4940 }
4941 var currentTime = getCurrentTime();
4942 StorageManager.setStepStartTime(stepNumber, currentTime);
4943 return currentTime;
4944 }
4945 function calculateStepTimeSpent(stepNumber) {
4946 var stepStartTime = StorageManager.getStepStartTime(stepNumber);
4947 if (!stepStartTime) {
4948 return null;
4949 }
4950 var currentTime = getCurrentTime();
4951 var stepTimeSpent = Math.round((currentTime - stepStartTime) / 1000);
4952 return stepTimeSpent;
4953 }
4954 function clearStepStartTime(stepNumber) {
4955 StorageManager.clearStepStartTime(stepNumber);
4956 }
4957 function calculateTotalTimeSpent() {
4958 var startTime = getOnboardingStartTime();
4959 if (!startTime) {
4960 return null;
4961 }
4962 var currentTime = getCurrentTime();
4963 var timeSpent = Math.round((currentTime - startTime) / 1000);
4964 return {
4965 startTime: startTime,
4966 currentTime: currentTime,
4967 timeSpent: timeSpent
4968 };
4969 }
4970 function formatTimeForEvent(timeInSeconds) {
4971 if (null === timeInSeconds || timeInSeconds === undefined) {
4972 return null;
4973 }
4974 return "".concat(timeInSeconds, "s");
4975 }
4976 function createTimeSpentData() {
4977 var stepNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
4978 var totalTimeData = calculateTotalTimeSpent();
4979 var result = {};
4980 if (totalTimeData) {
4981 result.time_spent = formatTimeForEvent(totalTimeData.timeSpent);
4982 result.onboarding_start_time = totalTimeData.startTime;
4983 }
4984 if (stepNumber) {
4985 var stepTimeSpent = calculateStepTimeSpent(stepNumber);
4986 if (stepTimeSpent !== null) {
4987 result.step_time_spent = formatTimeForEvent(stepTimeSpent);
4988 }
4989 }
4990 return Object.keys(result).length > 0 ? result : null;
4991 }
4992 function addTimingToEventData(eventData) {
4993 var stepNumber = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
4994 var timingData = createTimeSpentData(stepNumber);
4995 if (timingData) {
4996 return _objectSpread(_objectSpread({}, eventData), timingData);
4997 }
4998 return eventData;
4999 }
5000 function clearStaleSessionData() {
5001 var recentStepStartTimes = [];
5002 var currentTime = getCurrentTime();
5003 var recentStepStartTimeThresholdMs = 5000;
5004 [_storageManager.ONBOARDING_STORAGE_KEYS.STEP1_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_START_TIME].forEach(function (key) {
5005 var value = StorageManager.getString(key);
5006 if (value) {
5007 var timestamp = parseInt(value, 10);
5008 var age = currentTime - timestamp;
5009 if (age < recentStepStartTimeThresholdMs) {
5010 recentStepStartTimes.push(key);
5011 }
5012 }
5013 });
5014 var keysToRemove = [_storageManager.ONBOARDING_STORAGE_KEYS.START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.INITIATED, _storageManager.ONBOARDING_STORAGE_KEYS.STEP1_ACTIONS, _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_ACTIONS, _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_ACTIONS, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_ACTIONS, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_SITE_STARTER_CHOICE, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_HAS_PREVIOUS_CLICK, _storageManager.ONBOARDING_STORAGE_KEYS.EDITOR_LOAD_TRACKED, _storageManager.ONBOARDING_STORAGE_KEYS.POST_ONBOARDING_CLICK_COUNT, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_SKIP, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CONNECT_STATUS, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_ACCOUNT_STATUS, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_CREATE_MY_ACCOUNT, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE_NO_CLICK, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_CLICKED_CONNECT, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_STEP1_END_STATE, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_EXIT, _storageManager.ONBOARDING_STORAGE_KEYS.PENDING_TOP_UPGRADE_MOUSEOVER];
5015 keysToRemove.forEach(function (key) {
5016 if (!recentStepStartTimes.includes(key)) {
5017 StorageManager.remove(key);
5018 }
5019 });
5020 [_storageManager.ONBOARDING_STORAGE_KEYS.STEP1_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP2_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP3_START_TIME, _storageManager.ONBOARDING_STORAGE_KEYS.STEP4_START_TIME].forEach(function (key) {
5021 if (!recentStepStartTimes.includes(key)) {
5022 StorageManager.remove(key);
5023 }
5024 });
5025 }
5026 function isWithinTimeThreshold(timestamp) {
5027 var thresholdMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
5028 var currentTime = getCurrentTime();
5029 return currentTime - timestamp < thresholdMs;
5030 }
5031 var TimingManager = {
5032 getCurrentTime: getCurrentTime,
5033 initializeOnboardingStartTime: initializeOnboardingStartTime,
5034 getOnboardingStartTime: getOnboardingStartTime,
5035 hasOnboardingStarted: hasOnboardingStarted,
5036 trackStepStartTime: trackStepStartTime,
5037 calculateStepTimeSpent: calculateStepTimeSpent,
5038 clearStepStartTime: clearStepStartTime,
5039 calculateTotalTimeSpent: calculateTotalTimeSpent,
5040 formatTimeForEvent: formatTimeForEvent,
5041 createTimeSpentData: createTimeSpentData,
5042 addTimingToEventData: addTimingToEventData,
5043 clearStaleSessionData: clearStaleSessionData,
5044 isWithinTimeThreshold: isWithinTimeThreshold
5045 };
5046 var _default = exports["default"] = TimingManager;
5047
5048 /***/ }),
5049
5050 /***/ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js":
5051 /*!******************************************************************************!*\
5052 !*** ../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js ***!
5053 \******************************************************************************/
5054 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5055
5056 "use strict";
5057
5058
5059 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
5060 Object.defineProperty(exports, "__esModule", ({
5061 value: true
5062 }));
5063 Object.defineProperty(exports, "ONBOARDING_STEP_NAMES", ({
5064 enumerable: true,
5065 get: function get() {
5066 return _onboardingTracker.ONBOARDING_STEP_NAMES;
5067 }
5068 }));
5069 Object.defineProperty(exports, "ONBOARDING_STORAGE_KEYS", ({
5070 enumerable: true,
5071 get: function get() {
5072 return _onboardingTracker.ONBOARDING_STORAGE_KEYS;
5073 }
5074 }));
5075 exports.OnboardingEventTracking = void 0;
5076 var _onboardingTracker = _interopRequireWildcard(__webpack_require__(/*! ./modules/onboarding-tracker.js */ "../app/modules/onboarding/assets/js/utils/modules/onboarding-tracker.js"));
5077 function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
5078 var OnboardingEventTracking = exports.OnboardingEventTracking = _onboardingTracker.default;
5079
5080 /***/ }),
5081
5082 /***/ "../app/modules/onboarding/assets/js/utils/use-button-action.js":
5083 /*!**********************************************************************!*\
5084 !*** ../app/modules/onboarding/assets/js/utils/use-button-action.js ***!
5085 \**********************************************************************/
5086 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5087
5088 "use strict";
5089
5090
5091 Object.defineProperty(exports, "__esModule", ({
5092 value: true
5093 }));
5094 exports["default"] = useButtonAction;
5095 var _react = __webpack_require__(/*! react */ "react");
5096 var _context = __webpack_require__(/*! ../context/context */ "../app/modules/onboarding/assets/js/context/context.js");
5097 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
5098 function useButtonAction(pageId, nextPage) {
5099 var _useContext = (0, _react.useContext)(_context.OnboardingContext),
5100 state = _useContext.state,
5101 updateState = _useContext.updateState,
5102 getStateObjectToUpdate = _useContext.getStateObjectToUpdate;
5103 var navigate = (0, _router.useNavigate)();
5104 var handleAction = function handleAction(action) {
5105 var stateToUpdate = getStateObjectToUpdate(state, 'steps', pageId, action);
5106 updateState(stateToUpdate);
5107 navigate('onboarding/' + nextPage);
5108 };
5109 return {
5110 state: state,
5111 handleAction: handleAction
5112 };
5113 }
5114
5115 /***/ }),
5116
5117 /***/ "../app/modules/onboarding/assets/js/utils/utils.js":
5118 /*!**********************************************************!*\
5119 !*** ../app/modules/onboarding/assets/js/utils/utils.js ***!
5120 \**********************************************************/
5121 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5122
5123 "use strict";
5124 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
5125
5126
5127 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5128 Object.defineProperty(exports, "__esModule", ({
5129 value: true
5130 }));
5131 exports.setSelectedFeatureList = exports.safeDispatchEvent = exports.getOptions = exports.addExperimentTrackingToUrl = void 0;
5132 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
5133 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
5134 var _onboardingEventTracking = __webpack_require__(/*! ./onboarding-event-tracking */ "../app/modules/onboarding/assets/js/utils/onboarding-event-tracking.js");
5135 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5136 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5137 /**
5138 * Checkboxes data.
5139 */
5140 var optionsWithoutOne = [{
5141 plan: 'essential',
5142 text: __('Templates & Theme Builder', 'elementor')
5143 }, {
5144 plan: 'advanced',
5145 text: __('WooCommerce Builder', 'elementor')
5146 }, {
5147 plan: 'essential',
5148 text: __('Lead Collection & Form Builder', 'elementor')
5149 }, {
5150 plan: 'essential',
5151 text: __('Dynamic Content', 'elementor')
5152 }, {
5153 plan: 'advanced',
5154 text: __('Popup Builder', 'elementor')
5155 }, {
5156 plan: 'advanced',
5157 text: __('Custom Code & CSS', 'elementor')
5158 }, {
5159 plan: 'essential',
5160 text: __('Motion Effects & Animations', 'elementor')
5161 }, {
5162 plan: 'advanced',
5163 text: __('Notes & Collaboration', 'elementor')
5164 }];
5165
5166 /**
5167 * Updated checkboxes data with ONE features (when editor_one is active).
5168 * Order matches Figma design: 2 columns, 4 rows
5169 * Row 1: Theme Builder | AI for code, images, & layouts
5170 * Row 2: Lead Collection | Image optimization
5171 * Row 3: Custom Code & CSS | Accessibility scans and fixes
5172 * Row 4: Email deliverability | WooCommerce Builder
5173 */
5174 var optionsWithOne = [{
5175 plan: 'essential',
5176 text: __('Theme Builder', 'elementor')
5177 }, {
5178 plan: 'one',
5179 text: __('AI for code, images, & layouts', 'elementor')
5180 }, {
5181 plan: 'essential',
5182 text: __('Lead Collection', 'elementor')
5183 }, {
5184 plan: 'one',
5185 text: __('Image optimization', 'elementor')
5186 }, {
5187 plan: 'advanced',
5188 text: __('Custom Code & CSS', 'elementor')
5189 }, {
5190 plan: 'one',
5191 text: __('Accessibility scans and fixes', 'elementor')
5192 }, {
5193 plan: 'one',
5194 text: __('Email deliverability', 'elementor')
5195 }, {
5196 plan: 'advanced',
5197 text: __('WooCommerce Builder', 'elementor')
5198 }];
5199
5200 /**
5201 * Get checkboxes data based on editor_one feature status.
5202 * @param {boolean} isEditorOneActive - Whether editor_one feature is active.
5203 * @return {Array} Array of feature options.
5204 */
5205 var getOptions = exports.getOptions = function getOptions() {
5206 var isEditorOneActive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
5207 return isEditorOneActive ? optionsWithOne : optionsWithoutOne;
5208 };
5209
5210 /**
5211 * Set the selected feature list.
5212 * @param {Object} param0
5213 * @param {boolean} param0.checked
5214 * @param {string} param0.id
5215 * @param {string} param0.text
5216 * @param {Object} param0.selectedFeatures
5217 * @param {Function} param0.setSelectedFeatures
5218 */
5219 var setSelectedFeatureList = exports.setSelectedFeatureList = function setSelectedFeatureList(_ref) {
5220 var checked = _ref.checked,
5221 id = _ref.id,
5222 text = _ref.text,
5223 selectedFeatures = _ref.selectedFeatures,
5224 setSelectedFeatures = _ref.setSelectedFeatures;
5225 var tier = id.split('-')[0];
5226 if (checked) {
5227 setSelectedFeatures(_objectSpread(_objectSpread({}, selectedFeatures), {}, (0, _defineProperty2.default)({}, tier, [].concat((0, _toConsumableArray2.default)(selectedFeatures[tier]), [text]))));
5228 } else {
5229 setSelectedFeatures(_objectSpread(_objectSpread({}, selectedFeatures), {}, (0, _defineProperty2.default)({}, tier, selectedFeatures[tier].filter(function (item) {
5230 return item !== text;
5231 }))));
5232 }
5233 };
5234 var safeDispatchEvent = exports.safeDispatchEvent = function safeDispatchEvent(eventName, eventData) {
5235 try {
5236 var _elementorCommon, _elementorCommon$disp;
5237 (_elementorCommon = elementorCommon) === null || _elementorCommon === void 0 || (_elementorCommon = _elementorCommon.eventsManager) === null || _elementorCommon === void 0 || (_elementorCommon$disp = _elementorCommon.dispatchEvent) === null || _elementorCommon$disp === void 0 || _elementorCommon$disp.call(_elementorCommon, eventName, eventData);
5238 } catch (error) {
5239 // Silently fail - don't let tracking break the user experience
5240 }
5241 };
5242 var getTrackingExperimentName = function getTrackingExperimentName(internalName) {
5243 var _elementorAppConfig;
5244 var experimentNames = ((_elementorAppConfig = elementorAppConfig) === null || _elementorAppConfig === void 0 || (_elementorAppConfig = _elementorAppConfig.onboarding) === null || _elementorAppConfig === void 0 ? void 0 : _elementorAppConfig.experimentNames) || {};
5245 var experimentId = internalName.replace('core_onboarding_experiment', '');
5246 return experimentNames[experimentId] || internalName;
5247 };
5248 var getActiveExperiment = function getActiveExperiment() {
5249 var experimentConfigs = _onboardingEventTracking.OnboardingEventTracking.getExperimentConfigs();
5250 for (var experimentId in experimentConfigs) {
5251 var _elementorAppConfig2;
5252 var config = experimentConfigs[experimentId];
5253 var isEnabled = ((_elementorAppConfig2 = elementorAppConfig) === null || _elementorAppConfig2 === void 0 || (_elementorAppConfig2 = _elementorAppConfig2.onboarding) === null || _elementorAppConfig2 === void 0 ? void 0 : _elementorAppConfig2[config.enabledKey]) || false;
5254 if (isEnabled) {
5255 var variant = localStorage.getItem(config.variantKey);
5256 if (variant) {
5257 return {
5258 name: getTrackingExperimentName(config.name),
5259 variant: variant
5260 };
5261 }
5262 }
5263 }
5264 return null;
5265 };
5266 var addExperimentTrackingToUrl = exports.addExperimentTrackingToUrl = function addExperimentTrackingToUrl(url) {
5267 var buttonName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
5268 if (!url || typeof url !== 'string') {
5269 return url;
5270 }
5271 var activeExperiment = getActiveExperiment();
5272 if (!activeExperiment) {
5273 return url;
5274 }
5275 var separator = url.includes('?') ? '&' : '?';
5276 var trackingParams = "e_na=".concat(encodeURIComponent(activeExperiment.name), "&e_va=").concat(encodeURIComponent(activeExperiment.variant));
5277 if (buttonName) {
5278 trackingParams += "&e_bu=".concat(encodeURIComponent(buttonName));
5279 }
5280 return url + separator + trackingParams;
5281 };
5282
5283 /***/ })
5284
5285 }]);
5286 //# sourceMappingURL=onboarding.63cdf72a450944ebd5f7.bundle.js.map