new-template.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645
  1. /*! elementor - v2.2.4 - 20-09-2018 */
  2. /******/ (function(modules) { // webpackBootstrap
  3. /******/ // The module cache
  4. /******/ var installedModules = {};
  5. /******/
  6. /******/ // The require function
  7. /******/ function __webpack_require__(moduleId) {
  8. /******/
  9. /******/ // Check if module is in cache
  10. /******/ if(installedModules[moduleId]) {
  11. /******/ return installedModules[moduleId].exports;
  12. /******/ }
  13. /******/ // Create a new module (and put it into the cache)
  14. /******/ var module = installedModules[moduleId] = {
  15. /******/ i: moduleId,
  16. /******/ l: false,
  17. /******/ exports: {}
  18. /******/ };
  19. /******/
  20. /******/ // Execute the module function
  21. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  22. /******/
  23. /******/ // Flag the module as loaded
  24. /******/ module.l = true;
  25. /******/
  26. /******/ // Return the exports of the module
  27. /******/ return module.exports;
  28. /******/ }
  29. /******/
  30. /******/
  31. /******/ // expose the modules object (__webpack_modules__)
  32. /******/ __webpack_require__.m = modules;
  33. /******/
  34. /******/ // expose the module cache
  35. /******/ __webpack_require__.c = installedModules;
  36. /******/
  37. /******/ // define getter function for harmony exports
  38. /******/ __webpack_require__.d = function(exports, name, getter) {
  39. /******/ if(!__webpack_require__.o(exports, name)) {
  40. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  41. /******/ }
  42. /******/ };
  43. /******/
  44. /******/ // define __esModule on exports
  45. /******/ __webpack_require__.r = function(exports) {
  46. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  47. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  48. /******/ }
  49. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  50. /******/ };
  51. /******/
  52. /******/ // create a fake namespace object
  53. /******/ // mode & 1: value is a module id, require it
  54. /******/ // mode & 2: merge all properties of value into the ns
  55. /******/ // mode & 4: return value when already ns object
  56. /******/ // mode & 8|1: behave like require
  57. /******/ __webpack_require__.t = function(value, mode) {
  58. /******/ if(mode & 1) value = __webpack_require__(value);
  59. /******/ if(mode & 8) return value;
  60. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  61. /******/ var ns = Object.create(null);
  62. /******/ __webpack_require__.r(ns);
  63. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  64. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  65. /******/ return ns;
  66. /******/ };
  67. /******/
  68. /******/ // getDefaultExport function for compatibility with non-harmony modules
  69. /******/ __webpack_require__.n = function(module) {
  70. /******/ var getter = module && module.__esModule ?
  71. /******/ function getDefault() { return module['default']; } :
  72. /******/ function getModuleExports() { return module; };
  73. /******/ __webpack_require__.d(getter, 'a', getter);
  74. /******/ return getter;
  75. /******/ };
  76. /******/
  77. /******/ // Object.prototype.hasOwnProperty.call
  78. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  79. /******/
  80. /******/ // __webpack_public_path__
  81. /******/ __webpack_require__.p = "";
  82. /******/
  83. /******/
  84. /******/ // Load entry module and return exports
  85. /******/ return __webpack_require__(__webpack_require__.s = 164);
  86. /******/ })
  87. /************************************************************************/
  88. /******/ ({
  89. /***/ 1:
  90. /***/ (function(module, exports, __webpack_require__) {
  91. "use strict";
  92. var Module = __webpack_require__(2),
  93. ViewModule;
  94. ViewModule = Module.extend({
  95. elements: null,
  96. getDefaultElements: function getDefaultElements() {
  97. return {};
  98. },
  99. bindEvents: function bindEvents() {},
  100. onInit: function onInit() {
  101. this.initElements();
  102. this.bindEvents();
  103. },
  104. initElements: function initElements() {
  105. this.elements = this.getDefaultElements();
  106. }
  107. });
  108. module.exports = ViewModule;
  109. /***/ }),
  110. /***/ 14:
  111. /***/ (function(module, exports, __webpack_require__) {
  112. "use strict";
  113. var TemplateLibraryHeaderView;
  114. TemplateLibraryHeaderView = Marionette.LayoutView.extend({
  115. className: 'elementor-templates-modal__header',
  116. template: '#tmpl-elementor-templates-modal__header',
  117. regions: {
  118. logoArea: '.elementor-templates-modal__header__logo-area',
  119. tools: '#elementor-template-library-header-tools',
  120. menuArea: '.elementor-templates-modal__header__menu-area'
  121. },
  122. ui: {
  123. closeModal: '.elementor-templates-modal__header__close'
  124. },
  125. events: {
  126. 'click @ui.closeModal': 'onCloseModalClick'
  127. },
  128. templateHelpers: function templateHelpers() {
  129. return {
  130. closeType: this.getOption('closeType')
  131. };
  132. },
  133. onCloseModalClick: function onCloseModalClick() {
  134. this._parent._parent._parent.hideModal();
  135. }
  136. });
  137. module.exports = TemplateLibraryHeaderView;
  138. /***/ }),
  139. /***/ 15:
  140. /***/ (function(module, exports, __webpack_require__) {
  141. "use strict";
  142. var TemplateLibraryLoadingView;
  143. TemplateLibraryLoadingView = Marionette.ItemView.extend({
  144. id: 'elementor-template-library-loading',
  145. template: '#tmpl-elementor-template-library-loading'
  146. });
  147. module.exports = TemplateLibraryLoadingView;
  148. /***/ }),
  149. /***/ 164:
  150. /***/ (function(module, exports, __webpack_require__) {
  151. "use strict";
  152. var ViewModule = __webpack_require__(1),
  153. NewTemplateLayout = __webpack_require__(165);
  154. var NewTemplateModule = ViewModule.extend({
  155. getDefaultSettings: function getDefaultSettings() {
  156. return {
  157. selectors: {
  158. addButton: '.page-title-action:first, #elementor-template-library-add-new'
  159. }
  160. };
  161. },
  162. getDefaultElements: function getDefaultElements() {
  163. var selectors = this.getSettings('selectors');
  164. return {
  165. $addButton: jQuery(selectors.addButton)
  166. };
  167. },
  168. bindEvents: function bindEvents() {
  169. this.elements.$addButton.on('click', this.onAddButtonClick);
  170. },
  171. onInit: function onInit() {
  172. ViewModule.prototype.onInit.apply(this, arguments);
  173. this.layout = new NewTemplateLayout();
  174. },
  175. onAddButtonClick: function onAddButtonClick(event) {
  176. event.preventDefault();
  177. this.layout.showModal();
  178. }
  179. });
  180. jQuery(function () {
  181. window.elementorNewTemplate = new NewTemplateModule();
  182. });
  183. /***/ }),
  184. /***/ 165:
  185. /***/ (function(module, exports, __webpack_require__) {
  186. "use strict";
  187. var BaseModalLayout = __webpack_require__(8),
  188. NewTemplateView = __webpack_require__(166);
  189. module.exports = BaseModalLayout.extend({
  190. getModalOptions: function getModalOptions() {
  191. return {
  192. id: 'elementor-new-template-modal'
  193. };
  194. },
  195. getLogoOptions: function getLogoOptions() {
  196. return {
  197. title: elementorAdmin.config.i18n.new_template
  198. };
  199. },
  200. initialize: function initialize() {
  201. BaseModalLayout.prototype.initialize.apply(this, arguments);
  202. this.showLogo();
  203. this.showContentView();
  204. },
  205. getDialogsManager: function getDialogsManager() {
  206. return elementorAdmin.getDialogsManager();
  207. },
  208. showContentView: function showContentView() {
  209. this.modalContent.show(new NewTemplateView());
  210. }
  211. });
  212. /***/ }),
  213. /***/ 166:
  214. /***/ (function(module, exports, __webpack_require__) {
  215. "use strict";
  216. module.exports = Marionette.ItemView.extend({
  217. id: 'elementor-new-template-dialog-content',
  218. template: '#tmpl-elementor-new-template',
  219. ui: {},
  220. events: {},
  221. onRender: function onRender() {}
  222. });
  223. /***/ }),
  224. /***/ 2:
  225. /***/ (function(module, exports, __webpack_require__) {
  226. "use strict";
  227. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  228. var Module = function Module() {
  229. var $ = jQuery,
  230. instanceParams = arguments,
  231. self = this,
  232. settings,
  233. events = {};
  234. var ensureClosureMethods = function ensureClosureMethods() {
  235. $.each(self, function (methodName) {
  236. var oldMethod = self[methodName];
  237. if ('function' !== typeof oldMethod) {
  238. return;
  239. }
  240. self[methodName] = function () {
  241. return oldMethod.apply(self, arguments);
  242. };
  243. });
  244. };
  245. var initSettings = function initSettings() {
  246. settings = self.getDefaultSettings();
  247. var instanceSettings = instanceParams[0];
  248. if (instanceSettings) {
  249. $.extend(settings, instanceSettings);
  250. }
  251. };
  252. var init = function init() {
  253. self.__construct.apply(self, instanceParams);
  254. ensureClosureMethods();
  255. initSettings();
  256. self.trigger('init');
  257. };
  258. this.getItems = function (items, itemKey) {
  259. if (itemKey) {
  260. var keyStack = itemKey.split('.'),
  261. currentKey = keyStack.splice(0, 1);
  262. if (!keyStack.length) {
  263. return items[currentKey];
  264. }
  265. if (!items[currentKey]) {
  266. return;
  267. }
  268. return this.getItems(items[currentKey], keyStack.join('.'));
  269. }
  270. return items;
  271. };
  272. this.getSettings = function (setting) {
  273. return this.getItems(settings, setting);
  274. };
  275. this.setSettings = function (settingKey, value, settingsContainer) {
  276. if (!settingsContainer) {
  277. settingsContainer = settings;
  278. }
  279. if ('object' === (typeof settingKey === 'undefined' ? 'undefined' : _typeof(settingKey))) {
  280. $.extend(settingsContainer, settingKey);
  281. return self;
  282. }
  283. var keyStack = settingKey.split('.'),
  284. currentKey = keyStack.splice(0, 1);
  285. if (!keyStack.length) {
  286. settingsContainer[currentKey] = value;
  287. return self;
  288. }
  289. if (!settingsContainer[currentKey]) {
  290. settingsContainer[currentKey] = {};
  291. }
  292. return self.setSettings(keyStack.join('.'), value, settingsContainer[currentKey]);
  293. };
  294. this.forceMethodImplementation = function (methodArguments) {
  295. var functionName = methodArguments.callee.name;
  296. throw new ReferenceError('The method ' + functionName + ' must to be implemented in the inheritor child.');
  297. };
  298. this.on = function (eventName, callback) {
  299. if ('object' === (typeof eventName === 'undefined' ? 'undefined' : _typeof(eventName))) {
  300. $.each(eventName, function (singleEventName) {
  301. self.on(singleEventName, this);
  302. });
  303. return self;
  304. }
  305. var eventNames = eventName.split(' ');
  306. eventNames.forEach(function (singleEventName) {
  307. if (!events[singleEventName]) {
  308. events[singleEventName] = [];
  309. }
  310. events[singleEventName].push(callback);
  311. });
  312. return self;
  313. };
  314. this.off = function (eventName, callback) {
  315. if (!events[eventName]) {
  316. return self;
  317. }
  318. if (!callback) {
  319. delete events[eventName];
  320. return self;
  321. }
  322. var callbackIndex = events[eventName].indexOf(callback);
  323. if (-1 !== callbackIndex) {
  324. delete events[eventName][callbackIndex];
  325. }
  326. return self;
  327. };
  328. this.trigger = function (eventName) {
  329. var methodName = 'on' + eventName[0].toUpperCase() + eventName.slice(1),
  330. params = Array.prototype.slice.call(arguments, 1);
  331. if (self[methodName]) {
  332. self[methodName].apply(self, params);
  333. }
  334. var callbacks = events[eventName];
  335. if (!callbacks) {
  336. return self;
  337. }
  338. $.each(callbacks, function (index, callback) {
  339. callback.apply(self, params);
  340. });
  341. return self;
  342. };
  343. init();
  344. };
  345. Module.prototype.__construct = function () {};
  346. Module.prototype.getDefaultSettings = function () {
  347. return {};
  348. };
  349. Module.extendsCount = 0;
  350. Module.extend = function (properties) {
  351. var $ = jQuery,
  352. parent = this;
  353. var child = function child() {
  354. return parent.apply(this, arguments);
  355. };
  356. $.extend(child, parent);
  357. child.prototype = Object.create($.extend({}, parent.prototype, properties));
  358. child.prototype.constructor = child;
  359. /*
  360. * Constructor ID is used to set an unique ID
  361. * to every extend of the Module.
  362. *
  363. * It's useful in some cases such as unique
  364. * listener for frontend handlers.
  365. */
  366. var constructorID = ++Module.extendsCount;
  367. child.prototype.getConstructorID = function () {
  368. return constructorID;
  369. };
  370. child.__super__ = parent.prototype;
  371. return child;
  372. };
  373. module.exports = Module;
  374. /***/ }),
  375. /***/ 8:
  376. /***/ (function(module, exports, __webpack_require__) {
  377. "use strict";
  378. var TemplateLibraryHeaderView = __webpack_require__(14),
  379. TemplateLibraryHeaderLogoView = __webpack_require__(9),
  380. TemplateLibraryLoadingView = __webpack_require__(15);
  381. module.exports = Marionette.LayoutView.extend({
  382. el: function el() {
  383. return this.modal.getElements('widget');
  384. },
  385. modal: null,
  386. regions: function regions() {
  387. return {
  388. modalHeader: '.dialog-header',
  389. modalContent: '.dialog-lightbox-content',
  390. modalLoading: '.dialog-lightbox-loading'
  391. };
  392. },
  393. constructor: function constructor() {
  394. this.initModal();
  395. Marionette.LayoutView.prototype.constructor.apply(this, arguments);
  396. },
  397. initialize: function initialize() {
  398. this.modalHeader.show(new TemplateLibraryHeaderView(this.getHeaderOptions()));
  399. },
  400. initModal: function initModal() {
  401. var modalOptions = {
  402. className: 'elementor-templates-modal',
  403. closeButton: false,
  404. hide: {
  405. onOutsideClick: false
  406. }
  407. };
  408. jQuery.extend(true, modalOptions, this.getModalOptions());
  409. this.modal = this.getDialogsManager().createWidget('lightbox', modalOptions);
  410. this.modal.getElements('message').append(this.modal.addElement('content'), this.modal.addElement('loading'));
  411. },
  412. getDialogsManager: function getDialogsManager() {
  413. return elementor.dialogsManager;
  414. },
  415. showModal: function showModal() {
  416. this.modal.show();
  417. },
  418. hideModal: function hideModal() {
  419. this.modal.hide();
  420. },
  421. getModalOptions: function getModalOptions() {
  422. return {};
  423. },
  424. getLogoOptions: function getLogoOptions() {
  425. return {};
  426. },
  427. getHeaderOptions: function getHeaderOptions() {
  428. return {};
  429. },
  430. getHeaderView: function getHeaderView() {
  431. return this.modalHeader.currentView;
  432. },
  433. showLoadingView: function showLoadingView() {
  434. this.modalLoading.show(new TemplateLibraryLoadingView());
  435. this.modalLoading.$el.show();
  436. this.modalContent.$el.hide();
  437. },
  438. hideLoadingView: function hideLoadingView() {
  439. this.modalContent.$el.show();
  440. this.modalLoading.$el.hide();
  441. },
  442. showLogo: function showLogo() {
  443. this.getHeaderView().logoArea.show(new TemplateLibraryHeaderLogoView(this.getLogoOptions()));
  444. }
  445. });
  446. /***/ }),
  447. /***/ 9:
  448. /***/ (function(module, exports, __webpack_require__) {
  449. "use strict";
  450. module.exports = Marionette.ItemView.extend({
  451. template: '#tmpl-elementor-templates-modal__header__logo',
  452. className: 'elementor-templates-modal__header__logo',
  453. events: {
  454. click: 'onClick'
  455. },
  456. templateHelpers: function templateHelpers() {
  457. return {
  458. title: this.getOption('title')
  459. };
  460. },
  461. onClick: function onClick() {
  462. var clickCallback = this.getOption('click');
  463. if (clickCallback) {
  464. clickCallback();
  465. }
  466. }
  467. });
  468. /***/ })
  469. /******/ });
  470. //# sourceMappingURL=new-template.js.map