PluginProbe
Elementor Website Builder – more than just a page builder / 3.18.3
Elementor Website Builder – more than just a page builder v3.18.3
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / assets / js / gutenberg.js

gutenberg.js in Elementor Website Builder – more than just a page builder 3.18.3, at assets/js/gutenberg.js

173 lines 6.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.18.0 - 20-12-2023 */
2 /******/ (() => { // webpackBootstrap
3 /******/ "use strict";
4 /******/ var __webpack_modules__ = ({
5
6 /***/ "@wordpress/i18n":
7 /*!**************************!*\
8 !*** external "wp.i18n" ***!
9 \**************************/
10 /***/ ((module) => {
11
12 module.exports = wp.i18n;
13
14 /***/ })
15
16 /******/ });
17 /************************************************************************/
18 /******/ // The module cache
19 /******/ var __webpack_module_cache__ = {};
20 /******/
21 /******/ // The require function
22 /******/ function __webpack_require__(moduleId) {
23 /******/ // Check if module is in cache
24 /******/ var cachedModule = __webpack_module_cache__[moduleId];
25 /******/ if (cachedModule !== undefined) {
26 /******/ return cachedModule.exports;
27 /******/ }
28 /******/ // Create a new module (and put it into the cache)
29 /******/ var module = __webpack_module_cache__[moduleId] = {
30 /******/ // no module.id needed
31 /******/ // no module.loaded needed
32 /******/ exports: {}
33 /******/ };
34 /******/
35 /******/ // Execute the module function
36 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
37 /******/
38 /******/ // Return the exports of the module
39 /******/ return module.exports;
40 /******/ }
41 /******/
42 /************************************************************************/
43 var __webpack_exports__ = {};
44 // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
45 (() => {
46 /*!*******************************************!*\
47 !*** ../assets/dev/js/admin/gutenberg.js ***!
48 \*******************************************/
49 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
50
51
52 /* global ElementorGutenbergSettings */
53 (function ($) {
54 'use strict';
55
56 var ElementorGutenbergApp = {
57 cacheElements: function cacheElements() {
58 var self = this;
59 self.isElementorMode = ElementorGutenbergSettings.isElementorMode;
60 self.cache = {};
61 self.cache.$gutenberg = $('#editor');
62 self.cache.$switchMode = $($('#elementor-gutenberg-button-switch-mode').html());
63 self.cache.$switchModeButton = self.cache.$switchMode.find('#elementor-switch-mode-button');
64 self.bindEvents();
65 self.toggleStatus();
66 wp.data.subscribe(function () {
67 setTimeout(function () {
68 self.buildPanel();
69 }, 1);
70 });
71 },
72 buildPanel: function buildPanel() {
73 var self = this;
74 if (!self.cache.$gutenberg.find('#elementor-switch-mode').length) {
75 self.cache.$gutenberg.find('.edit-post-header-toolbar').append(self.cache.$switchMode);
76 }
77 if (this.hasIframe()) {
78 this.hideIframeContent();
79 }
80 if (!$('#elementor-editor').length) {
81 self.cache.$editorPanel = $($('#elementor-gutenberg-panel').html());
82 self.cache.$gurenbergBlockList = self.cache.$gutenberg.find('.is-desktop-preview');
83 self.cache.$gurenbergBlockList.append(self.cache.$editorPanel);
84 self.cache.$editorPanelButton = self.cache.$editorPanel.find('#elementor-go-to-edit-page-link');
85 self.cache.$editorPanelButton.on('click', function (event) {
86 event.preventDefault();
87 self.animateLoader();
88
89 // A new post is initialized as an 'auto-draft'.
90 // if the post is not a new post it should not save it to avoid some saving conflict between elementor and gutenberg.
91 var isNewPost = 'auto-draft' === wp.data.select('core/editor').getCurrentPost().status;
92 if (isNewPost) {
93 var documentTitle = wp.data.select('core/editor').getEditedPostAttribute('title');
94 if (!documentTitle) {
95 wp.data.dispatch('core/editor').editPost({
96 title: 'Elementor #' + $('#post_ID').val()
97 });
98 }
99 wp.data.dispatch('core/editor').savePost();
100 }
101 self.redirectWhenSave();
102 });
103 }
104 },
105 // Sometimes Gutenberg uses iframe instead of div.
106 hasIframe: function hasIframe() {
107 return !!this.cache.$gutenberg.find('iframe[name="editor-canvas"]').length;
108 },
109 hideIframeContent: function hideIframeContent() {
110 if (!this.isElementorMode) {
111 return;
112 }
113 var style = "<style>\n\t\t\t\t.editor-post-text-editor,\n\t\t\t\t.block-editor-block-list__layout {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\tbody {\n\t\t\t\t\tpadding: 0 !important;\n\t\t\t\t}\n\t\t\t</style>";
114 this.cache.$gutenberg.find('iframe[name="editor-canvas"]').contents().find('body').append(style);
115 },
116 bindEvents: function bindEvents() {
117 var self = this;
118 self.cache.$switchModeButton.on('click', function () {
119 if (self.isElementorMode) {
120 elementorCommon.dialogsManager.createWidget('confirm', {
121 message: __('Please note that you are switching to WordPress default editor. Your current layout, design and content might break.', 'elementor'),
122 headerMessage: __('Back to WordPress Editor', 'elementor'),
123 strings: {
124 confirm: __('Continue', 'elementor'),
125 cancel: __('Cancel', 'elementor')
126 },
127 defaultOption: 'confirm',
128 onConfirm: function onConfirm() {
129 var wpEditor = wp.data.dispatch('core/editor');
130 wpEditor.editPost({
131 gutenberg_elementor_mode: false
132 });
133 wpEditor.savePost();
134 self.isElementorMode = !self.isElementorMode;
135 self.toggleStatus();
136 }
137 }).show();
138 } else {
139 self.isElementorMode = !self.isElementorMode;
140 self.toggleStatus();
141 self.cache.$editorPanelButton.trigger('click');
142 }
143 });
144 },
145 redirectWhenSave: function redirectWhenSave() {
146 var self = this;
147 setTimeout(function () {
148 if (wp.data.select('core/editor').isSavingPost()) {
149 self.redirectWhenSave();
150 } else {
151 location.href = ElementorGutenbergSettings.editLink;
152 }
153 }, 300);
154 },
155 animateLoader: function animateLoader() {
156 this.cache.$editorPanelButton.addClass('elementor-animate');
157 },
158 toggleStatus: function toggleStatus() {
159 jQuery('body').toggleClass('elementor-editor-active', this.isElementorMode).toggleClass('elementor-editor-inactive', !this.isElementorMode);
160 },
161 init: function init() {
162 this.cacheElements();
163 }
164 };
165 $(function () {
166 ElementorGutenbergApp.init();
167 });
168 })(jQuery);
169 })();
170
171 /******/ })()
172 ;
173 //# sourceMappingURL=gutenberg.js.map