PluginProbe
Elementor Website Builder – more than just a page builder / 3.10.0-dev1
Elementor Website Builder – more than just a page builder v3.10.0-dev1
4.3.0-beta3 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 All 452 releases
elementor / assets / js / new-template.js

new-template.js in Elementor Website Builder – more than just a page builder 3.10.0-dev1, at assets/js/new-template.js

357 lines 12.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.8.0 - 08-11-2022 */
2 /******/ (() => { // webpackBootstrap
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "../assets/dev/js/admin/new-template/behaviors/lock-pro.js":
6 /*!*****************************************************************!*\
7 !*** ../assets/dev/js/admin/new-template/behaviors/lock-pro.js ***!
8 \*****************************************************************/
9 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10
11 "use strict";
12
13
14 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
15 Object.defineProperty(exports, "__esModule", ({
16 value: true
17 }));
18 exports["default"] = void 0;
19 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
20 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
21 var LockPro = /*#__PURE__*/function () {
22 function LockPro(elements) {
23 (0, _classCallCheck2.default)(this, LockPro);
24 this.elements = elements;
25 }
26 (0, _createClass2.default)(LockPro, [{
27 key: "bindEvents",
28 value: function bindEvents() {
29 var _this$elements = this.elements,
30 form = _this$elements.form,
31 templateType = _this$elements.templateType;
32 form.addEventListener('submit', this.onFormSubmit.bind(this));
33 templateType.addEventListener('change', this.onTemplateTypeChange.bind(this));
34
35 // Force checking on render, to make sure that default values are also checked.
36 this.onTemplateTypeChange();
37 }
38 }, {
39 key: "onFormSubmit",
40 value: function onFormSubmit(e) {
41 var lockOptions = this.getCurrentLockOptions();
42 if (lockOptions.is_locked) {
43 e.preventDefault();
44 }
45 }
46 }, {
47 key: "onTemplateTypeChange",
48 value: function onTemplateTypeChange() {
49 var lockOptions = this.getCurrentLockOptions();
50 if (lockOptions.is_locked) {
51 this.lock(lockOptions);
52 } else {
53 this.unlock();
54 }
55 }
56 }, {
57 key: "getCurrentLockOptions",
58 value: function getCurrentLockOptions() {
59 var templateType = this.elements.templateType,
60 currentOption = templateType.options[templateType.selectedIndex];
61 return JSON.parse(currentOption.dataset.lock || '{}');
62 }
63 }, {
64 key: "lock",
65 value: function lock(lockOptions) {
66 this.showLockBadge(lockOptions.badge);
67 this.showLockButton(lockOptions.button);
68 this.hideSubmitButton();
69 }
70 }, {
71 key: "unlock",
72 value: function unlock() {
73 this.hideLockBadge();
74 this.hideLockButton();
75 this.showSubmitButton();
76 }
77 }, {
78 key: "showLockBadge",
79 value: function showLockBadge(badgeConfig) {
80 var _this$elements2 = this.elements,
81 lockBadge = _this$elements2.lockBadge,
82 lockBadgeText = _this$elements2.lockBadgeText,
83 lockBadgeIcon = _this$elements2.lockBadgeIcon;
84 lockBadgeText.innerText = badgeConfig.text;
85 lockBadgeIcon.className = badgeConfig.icon;
86 lockBadge.classList.remove('e-hidden');
87 }
88 }, {
89 key: "hideLockBadge",
90 value: function hideLockBadge() {
91 this.elements.lockBadge.classList.add('e-hidden');
92 }
93 }, {
94 key: "showLockButton",
95 value: function showLockButton(buttonConfig) {
96 var lockButton = this.elements.lockButton;
97 lockButton.href = this.replaceLockLinkPlaceholders(buttonConfig.url);
98 lockButton.innerText = buttonConfig.text;
99 lockButton.classList.remove('e-hidden');
100 }
101 }, {
102 key: "hideLockButton",
103 value: function hideLockButton() {
104 this.elements.lockButton.classList.add('e-hidden');
105 }
106 }, {
107 key: "showSubmitButton",
108 value: function showSubmitButton() {
109 this.elements.submitButton.classList.remove('e-hidden');
110 }
111 }, {
112 key: "hideSubmitButton",
113 value: function hideSubmitButton() {
114 this.elements.submitButton.classList.add('e-hidden');
115 }
116 }, {
117 key: "replaceLockLinkPlaceholders",
118 value: function replaceLockLinkPlaceholders(link) {
119 return link.replace(/%%utm_source%%/g, 'wp-add-new').replace(/%%utm_medium%%/g, 'wp-dash');
120 }
121 }]);
122 return LockPro;
123 }();
124 exports["default"] = LockPro;
125
126 /***/ }),
127
128 /***/ "../assets/dev/js/admin/new-template/layout.js":
129 /*!*****************************************************!*\
130 !*** ../assets/dev/js/admin/new-template/layout.js ***!
131 \*****************************************************/
132 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
133
134 "use strict";
135 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
136
137
138 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
139 var _lockPro = _interopRequireDefault(__webpack_require__(/*! ./behaviors/lock-pro */ "../assets/dev/js/admin/new-template/behaviors/lock-pro.js"));
140 var NewTemplateView = __webpack_require__(/*! elementor-admin/new-template/view */ "../assets/dev/js/admin/new-template/view.js");
141 module.exports = elementorModules.common.views.modal.Layout.extend({
142 getModalOptions: function getModalOptions() {
143 return {
144 id: 'elementor-new-template-modal'
145 };
146 },
147 getLogoOptions: function getLogoOptions() {
148 return {
149 title: __('New Template', 'elementor')
150 };
151 },
152 initialize: function initialize() {
153 elementorModules.common.views.modal.Layout.prototype.initialize.apply(this, arguments);
154 var lookupControlIdPrefix = 'elementor-new-template__form__';
155 var templateTypeSelectId = "".concat(lookupControlIdPrefix, "template-type");
156 this.showLogo();
157 this.showContentView();
158 this.initElements();
159 this.lockProBehavior = new _lockPro.default(this.elements);
160 this.lockProBehavior.bindEvents();
161 var dynamicControlsVisibilityListener = function dynamicControlsVisibilityListener() {
162 elementorAdmin.templateControls.setDynamicControlsVisibility(lookupControlIdPrefix, elementor_new_template_form_controls);
163 };
164 this.getModal().onShow = function () {
165 dynamicControlsVisibilityListener();
166 document.getElementById(templateTypeSelectId).addEventListener('change', dynamicControlsVisibilityListener);
167 };
168 this.getModal().onHide = function () {
169 document.getElementById(templateTypeSelectId).removeEventListener('change', dynamicControlsVisibilityListener);
170 };
171 },
172 initElements: function initElements() {
173 var container = this.$el[0],
174 root = '#elementor-new-template__form';
175 this.elements = {
176 form: container.querySelector(root),
177 submitButton: container.querySelector("".concat(root, "__submit")),
178 lockButton: container.querySelector("".concat(root, "__lock_button")),
179 templateType: container.querySelector("".concat(root, "__template-type")),
180 lockBadge: container.querySelector("".concat(root, "__template-type-badge")),
181 lockBadgeText: container.querySelector("".concat(root, "__template-type-badge__text")),
182 lockBadgeIcon: container.querySelector("".concat(root, "__template-type-badge__icon"))
183 };
184 },
185 showContentView: function showContentView() {
186 this.modalContent.show(new NewTemplateView());
187 }
188 });
189
190 /***/ }),
191
192 /***/ "../assets/dev/js/admin/new-template/view.js":
193 /*!***************************************************!*\
194 !*** ../assets/dev/js/admin/new-template/view.js ***!
195 \***************************************************/
196 /***/ ((module) => {
197
198 "use strict";
199
200
201 module.exports = Marionette.ItemView.extend({
202 id: 'elementor-new-template-dialog-content',
203 template: '#tmpl-elementor-new-template',
204 ui: {},
205 events: {},
206 onRender: function onRender() {}
207 });
208
209 /***/ }),
210
211 /***/ "@wordpress/i18n":
212 /*!**************************!*\
213 !*** external "wp.i18n" ***!
214 \**************************/
215 /***/ ((module) => {
216
217 "use strict";
218 module.exports = wp.i18n;
219
220 /***/ }),
221
222 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
223 /*!****************************************************************!*\
224 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
225 \****************************************************************/
226 /***/ ((module) => {
227
228 function _classCallCheck(instance, Constructor) {
229 if (!(instance instanceof Constructor)) {
230 throw new TypeError("Cannot call a class as a function");
231 }
232 }
233 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
234
235 /***/ }),
236
237 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
238 /*!*************************************************************!*\
239 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
240 \*************************************************************/
241 /***/ ((module) => {
242
243 function _defineProperties(target, props) {
244 for (var i = 0; i < props.length; i++) {
245 var descriptor = props[i];
246 descriptor.enumerable = descriptor.enumerable || false;
247 descriptor.configurable = true;
248 if ("value" in descriptor) descriptor.writable = true;
249 Object.defineProperty(target, descriptor.key, descriptor);
250 }
251 }
252 function _createClass(Constructor, protoProps, staticProps) {
253 if (protoProps) _defineProperties(Constructor.prototype, protoProps);
254 if (staticProps) _defineProperties(Constructor, staticProps);
255 Object.defineProperty(Constructor, "prototype", {
256 writable: false
257 });
258 return Constructor;
259 }
260 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
261
262 /***/ }),
263
264 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
265 /*!***********************************************************************!*\
266 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
267 \***********************************************************************/
268 /***/ ((module) => {
269
270 function _interopRequireDefault(obj) {
271 return obj && obj.__esModule ? obj : {
272 "default": obj
273 };
274 }
275 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
276
277 /***/ })
278
279 /******/ });
280 /************************************************************************/
281 /******/ // The module cache
282 /******/ var __webpack_module_cache__ = {};
283 /******/
284 /******/ // The require function
285 /******/ function __webpack_require__(moduleId) {
286 /******/ // Check if module is in cache
287 /******/ var cachedModule = __webpack_module_cache__[moduleId];
288 /******/ if (cachedModule !== undefined) {
289 /******/ return cachedModule.exports;
290 /******/ }
291 /******/ // Create a new module (and put it into the cache)
292 /******/ var module = __webpack_module_cache__[moduleId] = {
293 /******/ // no module.id needed
294 /******/ // no module.loaded needed
295 /******/ exports: {}
296 /******/ };
297 /******/
298 /******/ // Execute the module function
299 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
300 /******/
301 /******/ // Return the exports of the module
302 /******/ return module.exports;
303 /******/ }
304 /******/
305 /************************************************************************/
306 var __webpack_exports__ = {};
307 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
308 (() => {
309 "use strict";
310 /*!***********************************************************!*\
311 !*** ../assets/dev/js/admin/new-template/new-template.js ***!
312 \***********************************************************/
313
314
315 var NewTemplateLayout = __webpack_require__(/*! elementor-admin/new-template/layout */ "../assets/dev/js/admin/new-template/layout.js");
316 var NewTemplateModule = elementorModules.ViewModule.extend({
317 getDefaultSettings: function getDefaultSettings() {
318 return {
319 selectors: {
320 addButton: '.page-title-action:first, #elementor-template-library-add-new'
321 }
322 };
323 },
324 getDefaultElements: function getDefaultElements() {
325 var selectors = this.getSettings('selectors');
326 return {
327 $addButton: jQuery(selectors.addButton)
328 };
329 },
330 bindEvents: function bindEvents() {
331 this.elements.$addButton.on('click', this.onAddButtonClick);
332 elementorCommon.elements.$window.on('hashchange', this.showModalByHash.bind(this));
333 },
334 showModalByHash: function showModalByHash() {
335 if ('#add_new' === location.hash) {
336 this.layout.showModal();
337 location.hash = '';
338 }
339 },
340 onInit: function onInit() {
341 elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
342 this.layout = new NewTemplateLayout();
343 this.showModalByHash();
344 },
345 onAddButtonClick: function onAddButtonClick(event) {
346 event.preventDefault();
347 this.layout.showModal();
348 }
349 });
350 jQuery(function () {
351 window.elementorNewTemplate = new NewTemplateModule();
352 });
353 })();
354
355 /******/ })()
356 ;
357 //# sourceMappingURL=new-template.js.map