PluginProbe
Elementor Website Builder – more than just a page builder / 3.28.0-dev1
Elementor Website Builder – more than just a page builder v3.28.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 / styleguide.js

styleguide.js in Elementor Website Builder – more than just a page builder 3.28.0-dev1, at assets/js/styleguide.js

2,240 lines 96.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.28.0 - 03-03-2025 */
2 /******/ (() => { // webpackBootstrap
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "../assets/dev/js/editor/components/dynamic-tags/control-behavior.js":
6 /*!***************************************************************************!*\
7 !*** ../assets/dev/js/editor/components/dynamic-tags/control-behavior.js ***!
8 \***************************************************************************/
9 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
10
11 "use strict";
12 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
13
14
15 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
16 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
17 var TagPanelView = __webpack_require__(/*! elementor-dynamic-tags/tag-panel-view */ "../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js");
18 module.exports = Marionette.Behavior.extend({
19 tagView: null,
20 listenerAttached: false,
21 initialize: function initialize() {
22 if (!this.listenerAttached) {
23 this.listenTo(this.view.options.container.settings, 'change:external:__dynamic__', this.onAfterExternalChange);
24 this.listenerAttached = true;
25 }
26 },
27 shouldRenderTools: function shouldRenderTools() {
28 var hasDefault = this.getOption('dynamicSettings').default;
29 if (hasDefault) {
30 return false;
31 }
32 var isFeatureAvailableToUser = elementor.helpers.hasPro() && !elementor.helpers.hasProAndNotConnected(),
33 hasTags = this.getOption('tags').length > 0;
34 return !isFeatureAvailableToUser || hasTags;
35 },
36 renderTools: function renderTools() {
37 var _this = this;
38 if (!this.shouldRenderTools()) {
39 return;
40 }
41 var $dynamicSwitcher = jQuery(Marionette.Renderer.render('#tmpl-elementor-control-dynamic-switcher'));
42 $dynamicSwitcher.on('click', function (event) {
43 return _this.onDynamicSwitcherClick(event);
44 });
45 this.$el.find('.elementor-control-dynamic-switcher-wrapper').append($dynamicSwitcher);
46 this.ui.dynamicSwitcher = $dynamicSwitcher;
47 if ('color' === this.view.model.get('type')) {
48 if (this.view.colorPicker) {
49 this.moveDynamicSwitcherToColorPicker();
50 } else {
51 setTimeout(function () {
52 return _this.moveDynamicSwitcherToColorPicker();
53 });
54 }
55 }
56
57 // Add a Tipsy Tooltip to the Dynamic Switcher
58 this.ui.dynamicSwitcher.tipsy({
59 title: function title() {
60 return this.getAttribute('data-tooltip');
61 },
62 gravity: 's'
63 });
64 },
65 moveDynamicSwitcherToColorPicker: function moveDynamicSwitcherToColorPicker() {
66 var $colorPickerToolsContainer = this.view.colorPicker.$pickerToolsContainer;
67 this.ui.dynamicSwitcher.removeClass('elementor-control-unit-1').addClass('e-control-tool');
68 var $eyedropper = $colorPickerToolsContainer.find('.elementor-control-element-color-picker');
69 if ($eyedropper.length) {
70 this.ui.dynamicSwitcher.insertBefore($eyedropper);
71 } else {
72 $colorPickerToolsContainer.append(this.ui.dynamicSwitcher);
73 }
74 },
75 toggleDynamicClass: function toggleDynamicClass() {
76 this.$el.toggleClass('elementor-control-dynamic-value', this.isDynamicMode());
77 },
78 isDynamicMode: function isDynamicMode() {
79 var dynamicSettings = this.view.container.settings.get('__dynamic__');
80 return !!(dynamicSettings && dynamicSettings[this.view.model.get('name')]);
81 },
82 createTagsList: function createTagsList() {
83 var tags = _.groupBy(this.getOption('tags'), 'group'),
84 groups = elementor.dynamicTags.getConfig('groups'),
85 $tagsList = this.ui.tagsList = jQuery('<div>', {
86 class: 'elementor-tags-list'
87 }),
88 $tagsListInner = jQuery('<div>', {
89 class: 'elementor-tags-list__inner'
90 });
91 $tagsList.append($tagsListInner);
92 jQuery.each(groups, function (groupName) {
93 var groupTags = tags[groupName];
94 if (!groupTags) {
95 return;
96 }
97 var group = this,
98 $groupTitle = jQuery('<div>', {
99 class: 'elementor-tags-list__group-title'
100 }).text(group.title);
101 $tagsListInner.append($groupTitle);
102 groupTags.forEach(function (tag) {
103 var $tag = jQuery('<div>', {
104 class: 'elementor-tags-list__item'
105 });
106 $tag.text(tag.title).attr('data-tag-name', tag.name);
107 $tagsListInner.append($tag);
108 });
109 });
110
111 // Create and inject pro dynamic teaser template if Pro is not installed
112 if (!elementor.helpers.hasPro() && Object.keys(tags).length) {
113 var proTeaser = Marionette.Renderer.render('#tmpl-elementor-dynamic-tags-promo', {
114 promotionUrl: elementor.config.dynamicPromotionURL.replace('%s', this.view.model.get('name'))
115 });
116 $tagsListInner.append(proTeaser);
117 }
118 $tagsListInner.on('click', '.elementor-tags-list__item', this.onTagsListItemClick.bind(this));
119 elementorCommon.elements.$body.append($tagsList);
120 },
121 getTagsList: function getTagsList() {
122 if (!this.ui.tagsList) {
123 this.createTagsList();
124 }
125 return this.ui.tagsList;
126 },
127 toggleTagsList: function toggleTagsList() {
128 var $tagsList = this.getTagsList();
129 if ($tagsList.is(':visible')) {
130 $tagsList.hide();
131 return;
132 }
133 var direction = elementorCommon.config.isRTL ? 'left' : 'right';
134 $tagsList.show().position({
135 my: "".concat(direction, " top"),
136 at: "".concat(direction, " bottom+5"),
137 of: this.ui.dynamicSwitcher
138 });
139 },
140 setTagView: function setTagView(id, name, settings) {
141 if (this.tagView) {
142 this.tagView.destroy();
143 }
144 var tagView = this.tagView = new TagPanelView({
145 id: id,
146 name: name,
147 settings: settings,
148 controlName: this.view.model.get('name'),
149 dynamicSettings: this.getOption('dynamicSettings')
150 }),
151 elementContainer = this.view.options.container,
152 tagViewLabel = elementContainer.controls[tagView.options.controlName].label;
153 tagView.options.container = new elementorModules.editor.Container({
154 type: 'dynamic',
155 id: id,
156 model: tagView.model,
157 settings: tagView.model,
158 view: tagView,
159 parent: elementContainer,
160 label: elementContainer.label + ' ' + tagViewLabel,
161 controls: tagView.model.options.controls,
162 renderer: elementContainer
163 });
164 tagView.render();
165 this.$el.find('.elementor-control-tag-area').after(tagView.el);
166 this.listenTo(tagView, 'remove', this.onTagViewRemove.bind(this));
167 },
168 setDefaultTagView: function setDefaultTagView() {
169 var tagData = elementor.dynamicTags.tagTextToTagData(this.getDynamicValue());
170 this.setTagView(tagData.id, tagData.name, tagData.settings);
171 },
172 tagViewToTagText: function tagViewToTagText() {
173 var tagView = this.tagView;
174 return elementor.dynamicTags.tagDataToTagText(tagView.getOption('id'), tagView.getOption('name'), tagView.model);
175 },
176 getDynamicValue: function getDynamicValue() {
177 return this.view.container.dynamic.get(this.view.model.get('name'));
178 },
179 destroyTagView: function destroyTagView() {
180 if (this.tagView) {
181 this.tagView.destroy();
182 this.tagView = null;
183 }
184 },
185 showPromotion: function showPromotion() {
186 var hasProAndNotConnected = elementor.helpers.hasProAndNotConnected(),
187 dialogOptions = {
188 title: __('Dynamic Content', 'elementor'),
189 content: __('Create more personalized and dynamic sites by populating data from various sources with dozens of dynamic tags to choose from.', 'elementor'),
190 targetElement: this.ui.dynamicSwitcher,
191 position: {
192 blockStart: '-10'
193 },
194 actionButton: {
195 url: hasProAndNotConnected ? elementorProEditorConfig.urls.connect : elementor.config.dynamicPromotionURL.replace('%s', this.view.model.get('name')),
196 text: hasProAndNotConnected ? __('Connect & Activate', 'elementor') : __('Upgrade', 'elementor')
197 }
198 };
199 elementor.promotion.showDialog(dialogOptions);
200 },
201 onRender: function onRender() {
202 this.$el.addClass('elementor-control-dynamic');
203 this.renderTools();
204 this.toggleDynamicClass();
205 if (this.isDynamicMode()) {
206 this.setDefaultTagView();
207 }
208 },
209 onDynamicSwitcherClick: function onDynamicSwitcherClick(event) {
210 event.stopPropagation();
211 if (this.getOption('tags').length) {
212 this.toggleTagsList();
213 } else {
214 this.showPromotion();
215 }
216 },
217 onTagsListItemClick: function onTagsListItemClick(event) {
218 var $tag = jQuery(event.currentTarget);
219 this.setTagView(elementorCommon.helpers.getUniqueId(), $tag.data('tagName'), {});
220
221 // If an element has an active global value, disable it before applying the dynamic value.
222 if (this.view.getGlobalKey()) {
223 this.view.triggerMethod('unset:global:value');
224 }
225 if (this.isDynamicMode()) {
226 $e.run('document/dynamic/settings', {
227 container: this.view.options.container,
228 settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
229 });
230 } else {
231 $e.run('document/dynamic/enable', {
232 container: this.view.options.container,
233 settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
234 });
235 }
236 this.toggleDynamicClass();
237 this.toggleTagsList();
238 if (this.tagView.getTagConfig().settings_required) {
239 this.tagView.showSettingsPopup();
240 }
241 },
242 onTagViewRemove: function onTagViewRemove() {
243 $e.run('document/dynamic/disable', {
244 container: this.view.options.container,
245 settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
246 });
247 this.toggleDynamicClass();
248 },
249 onAfterExternalChange: function onAfterExternalChange() {
250 this.destroyTagView();
251 if (this.isDynamicMode()) {
252 this.setDefaultTagView();
253 }
254 this.toggleDynamicClass();
255 },
256 onDestroy: function onDestroy() {
257 this.destroyTagView();
258 if (this.ui.tagsList) {
259 this.ui.tagsList.remove();
260 }
261 }
262 });
263
264 /***/ }),
265
266 /***/ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js":
267 /*!***********************************************************************************!*\
268 !*** ../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js ***!
269 \***********************************************************************************/
270 /***/ ((module) => {
271
272 "use strict";
273
274
275 module.exports = Marionette.ItemView.extend({
276 className: 'elementor-tag-controls-stack-empty',
277 template: '#tmpl-elementor-tag-controls-stack-empty'
278 });
279
280 /***/ }),
281
282 /***/ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js":
283 /*!*****************************************************************************!*\
284 !*** ../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js ***!
285 \*****************************************************************************/
286 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
287
288 "use strict";
289
290
291 var EmptyView = __webpack_require__(/*! elementor-dynamic-tags/tag-controls-stack-empty */ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js");
292 module.exports = elementorModules.editor.views.ControlsStack.extend({
293 activeTab: 'content',
294 template: _.noop,
295 emptyView: EmptyView,
296 isEmpty: function isEmpty() {
297 // Ignore the section control
298 return this.collection.length < 2;
299 },
300 childViewOptions: function childViewOptions() {
301 return {
302 container: this.options.container
303 };
304 },
305 getNamespaceArray: function getNamespaceArray() {
306 var currentPageView = elementor.getPanelView().getCurrentPageView(),
307 eventNamespace = currentPageView.getNamespaceArray();
308 eventNamespace.push(currentPageView.activeSection);
309 eventNamespace.push(this.getOption('controlName'));
310 eventNamespace.push(this.getOption('name'));
311 return eventNamespace;
312 },
313 onRenderTemplate: function onRenderTemplate() {
314 this.activateFirstSection();
315 }
316 });
317
318 /***/ }),
319
320 /***/ "../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js":
321 /*!*************************************************************************!*\
322 !*** ../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js ***!
323 \*************************************************************************/
324 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
325
326 "use strict";
327
328
329 var TagControlsStack = __webpack_require__(/*! elementor-dynamic-tags/tag-controls-stack */ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js");
330 module.exports = Marionette.ItemView.extend({
331 className: 'elementor-dynamic-cover e-input-style',
332 tagControlsStack: null,
333 templateHelpers: function templateHelpers() {
334 var helpers = {};
335 if (this.model) {
336 helpers.controls = this.model.options.controls;
337 }
338 return helpers;
339 },
340 ui: {
341 remove: '.elementor-dynamic-cover__remove'
342 },
343 events: function events() {
344 var events = {
345 'click @ui.remove': 'onRemoveClick'
346 };
347 if (this.hasSettings()) {
348 events.click = 'onClick';
349 }
350 return events;
351 },
352 getTemplate: function getTemplate() {
353 var config = this.getTagConfig(),
354 templateFunction = Marionette.TemplateCache.get('#tmpl-elementor-control-dynamic-cover'),
355 renderedTemplate = Marionette.Renderer.render(templateFunction, {
356 hasSettings: this.hasSettings(),
357 isRemovable: !this.getOption('dynamicSettings').default,
358 title: config.title,
359 content: config.panel_template
360 });
361 return Marionette.TemplateCache.prototype.compileTemplate(renderedTemplate.trim());
362 },
363 getTagConfig: function getTagConfig() {
364 return elementor.dynamicTags.getConfig('tags.' + this.getOption('name'));
365 },
366 initSettingsPopup: function initSettingsPopup() {
367 var settingsPopupOptions = {
368 className: 'elementor-tag-settings-popup',
369 position: {
370 my: 'left top+5',
371 at: 'left bottom',
372 of: this.$el,
373 autoRefresh: true
374 },
375 hide: {
376 ignore: '.select2-container'
377 }
378 };
379 var settingsPopup = elementorCommon.dialogsManager.createWidget('buttons', settingsPopupOptions);
380 this.getSettingsPopup = function () {
381 return settingsPopup;
382 };
383 },
384 hasSettings: function hasSettings() {
385 return !!Object.values(this.getTagConfig().controls).length;
386 },
387 showSettingsPopup: function showSettingsPopup() {
388 if (!this.tagControlsStack) {
389 this.initTagControlsStack();
390 }
391 var settingsPopup = this.getSettingsPopup();
392 if (settingsPopup.isVisible()) {
393 return;
394 }
395 settingsPopup.show();
396 },
397 initTagControlsStack: function initTagControlsStack() {
398 this.tagControlsStack = new TagControlsStack({
399 model: this.model,
400 controls: this.model.controls,
401 name: this.options.name,
402 controlName: this.options.controlName,
403 container: this.options.container,
404 el: this.getSettingsPopup().getElements('message')[0]
405 });
406 this.tagControlsStack.render();
407 },
408 initModel: function initModel() {
409 this.model = new elementorModules.editor.elements.models.BaseSettings(this.getOption('settings'), {
410 controls: this.getTagConfig().controls
411 });
412 },
413 initialize: function initialize() {
414 // The `model` should always be available.
415 this.initModel();
416 if (!this.hasSettings()) {
417 return;
418 }
419 this.initSettingsPopup();
420 this.listenTo(this.model, 'change', this.render);
421 },
422 onClick: function onClick() {
423 this.showSettingsPopup();
424 },
425 onRemoveClick: function onRemoveClick(event) {
426 event.stopPropagation();
427 this.destroy();
428 this.trigger('remove');
429 },
430 onDestroy: function onDestroy() {
431 if (this.hasSettings()) {
432 this.getSettingsPopup().destroy();
433 }
434 if (this.tagControlsStack) {
435 this.tagControlsStack.destroy();
436 }
437 }
438 });
439
440 /***/ }),
441
442 /***/ "../assets/dev/js/editor/components/validator/base.js":
443 /*!************************************************************!*\
444 !*** ../assets/dev/js/editor/components/validator/base.js ***!
445 \************************************************************/
446 /***/ ((module) => {
447
448 "use strict";
449
450
451 module.exports = elementorModules.Module.extend({
452 errors: [],
453 __construct: function __construct(settings) {
454 var customValidationMethod = settings.customValidationMethod;
455 if (customValidationMethod) {
456 this.validationMethod = customValidationMethod;
457 }
458 },
459 getDefaultSettings: function getDefaultSettings() {
460 return {
461 validationTerms: {}
462 };
463 },
464 isValid: function isValid() {
465 var validationErrors = this.validationMethod.apply(this, arguments);
466 if (validationErrors.length) {
467 this.errors = validationErrors;
468 return false;
469 }
470 return true;
471 },
472 validationMethod: function validationMethod(newValue) {
473 var validationTerms = this.getSettings('validationTerms'),
474 errors = [];
475 if (validationTerms.required) {
476 if (!('' + newValue).length) {
477 errors.push('Required value is empty');
478 }
479 }
480 return errors;
481 }
482 });
483
484 /***/ }),
485
486 /***/ "../assets/dev/js/editor/components/validator/breakpoint.js":
487 /*!******************************************************************!*\
488 !*** ../assets/dev/js/editor/components/validator/breakpoint.js ***!
489 \******************************************************************/
490 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
491
492 "use strict";
493
494
495 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
496 Object.defineProperty(exports, "__esModule", ({
497 value: true
498 }));
499 exports["default"] = void 0;
500 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
501 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
502 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
503 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
504 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
505 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
506 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
507 var NumberValidator = __webpack_require__(/*! elementor-validator/number */ "../assets/dev/js/editor/components/validator/number.js");
508 var BreakpointValidator = exports["default"] = /*#__PURE__*/function (_NumberValidator) {
509 function BreakpointValidator() {
510 (0, _classCallCheck2.default)(this, BreakpointValidator);
511 return _callSuper(this, BreakpointValidator, arguments);
512 }
513 (0, _inherits2.default)(BreakpointValidator, _NumberValidator);
514 return (0, _createClass2.default)(BreakpointValidator, [{
515 key: "getDefaultSettings",
516 value: function getDefaultSettings() {
517 return {
518 validationTerms: {
519 // Max width we allow in general
520 max: 5120
521 }
522 };
523 }
524
525 /**
526 * Get Panel Active Breakpoints
527 *
528 * Since the active kit used in the Site Settings panel could be a draft, we need to use the panel's active
529 * breakpoints settings and not the elementorFrontend.config values (which come from the DB).
530 *
531 * @return {*} Object
532 */
533 }, {
534 key: "getPanelActiveBreakpoints",
535 value: function getPanelActiveBreakpoints() {
536 var panelBreakpoints = elementor.documents.currentDocument.config.settings.settings.active_breakpoints.map(function (breakpointName) {
537 return breakpointName.replace('viewport_', '');
538 }),
539 panelActiveBreakpoints = {};
540 panelBreakpoints.forEach(function (breakpointName) {
541 panelActiveBreakpoints[breakpointName] = elementorFrontend.config.responsive.breakpoints[breakpointName];
542 });
543 return panelActiveBreakpoints;
544 }
545 }, {
546 key: "initBreakpointProperties",
547 value: function initBreakpointProperties() {
548 var _activeBreakpoints$br, _activeBreakpoints$br2;
549 var validationTerms = this.getSettings('validationTerms'),
550 activeBreakpoints = this.getPanelActiveBreakpoints(),
551 breakpointKeys = Object.keys(activeBreakpoints);
552 this.breakpointIndex = breakpointKeys.indexOf(validationTerms.breakpointName);
553 this.topBreakpoint = (_activeBreakpoints$br = activeBreakpoints[breakpointKeys[this.breakpointIndex + 1]]) === null || _activeBreakpoints$br === void 0 ? void 0 : _activeBreakpoints$br.value;
554 this.bottomBreakpoint = (_activeBreakpoints$br2 = activeBreakpoints[breakpointKeys[this.breakpointIndex - 1]]) === null || _activeBreakpoints$br2 === void 0 ? void 0 : _activeBreakpoints$br2.value;
555 }
556 }, {
557 key: "validationMethod",
558 value: function validationMethod(newValue) {
559 var validationTerms = this.getSettings('validationTerms'),
560 errors = NumberValidator.prototype.validationMethod.call(this, newValue);
561
562 // Validate both numeric and empty values, since breakpoints utilize default values when empty.
563 if (_.isFinite(newValue) || '' === newValue) {
564 if (!this.validateMinMaxForBreakpoint(newValue, validationTerms)) {
565 errors.push('Value is not between the breakpoints above or under the edited breakpoint');
566 }
567 }
568 return errors;
569 }
570 }, {
571 key: "validateMinMaxForBreakpoint",
572 value: function validateMinMaxForBreakpoint(newValue, validationTerms) {
573 var breakpointDefaultValue = elementorFrontend.config.responsive.breakpoints[validationTerms.breakpointName].default_value;
574 var isValid = true;
575 this.initBreakpointProperties();
576
577 // Since the following comparison is <=, allow usage of the 320px value for the mobile breakpoint.
578 if ('mobile' === validationTerms.breakpointName && 320 === this.bottomBreakpoint) {
579 this.bottomBreakpoint -= 1;
580 }
581
582 // If there is a breakpoint below the currently edited breakpoint
583 if (this.bottomBreakpoint) {
584 // Check that the new value is not under the bottom breakpoint's value.
585 if ('' !== newValue && newValue <= this.bottomBreakpoint) {
586 isValid = false;
587 }
588
589 // If the new value is empty, check that the default breakpoint value is not below the bottom breakpoint.
590 if ('' === newValue && breakpointDefaultValue <= this.bottomBreakpoint) {
591 isValid = false;
592 }
593 }
594
595 // If there is a breakpoint above the currently edited breakpoint.
596 if (this.topBreakpoint) {
597 // Check that the value is not above the top breakpoint's value.
598 if ('' !== newValue && newValue >= this.topBreakpoint) {
599 isValid = false;
600 }
601
602 // If the new value is empty, check that the default breakpoint value is not above the top breakpoint.
603 if ('' === newValue && breakpointDefaultValue >= this.topBreakpoint) {
604 isValid = false;
605 }
606 }
607 return isValid;
608 }
609 }]);
610 }(NumberValidator);
611
612 /***/ }),
613
614 /***/ "../assets/dev/js/editor/components/validator/number.js":
615 /*!**************************************************************!*\
616 !*** ../assets/dev/js/editor/components/validator/number.js ***!
617 \**************************************************************/
618 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
619
620 "use strict";
621
622
623 var Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js");
624 module.exports = Validator.extend({
625 validationMethod: function validationMethod(newValue) {
626 var validationTerms = this.getSettings('validationTerms'),
627 errors = [];
628 if (_.isFinite(newValue)) {
629 if (undefined !== validationTerms.min && newValue < validationTerms.min) {
630 errors.push('Value is less than minimum');
631 }
632 if (undefined !== validationTerms.max && newValue > validationTerms.max) {
633 errors.push('Value is greater than maximum');
634 }
635 }
636 return errors;
637 }
638 });
639
640 /***/ }),
641
642 /***/ "../assets/dev/js/editor/controls/base-data.js":
643 /*!*****************************************************!*\
644 !*** ../assets/dev/js/editor/controls/base-data.js ***!
645 \*****************************************************/
646 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
647
648 "use strict";
649
650
651 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
652 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
653 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
654 var _breakpoint = _interopRequireDefault(__webpack_require__(/*! elementor-validator/breakpoint */ "../assets/dev/js/editor/components/validator/breakpoint.js"));
655 function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
656 function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
657 function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
658 var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"),
659 TagsBehavior = __webpack_require__(/*! elementor-dynamic-tags/control-behavior */ "../assets/dev/js/editor/components/dynamic-tags/control-behavior.js"),
660 Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js"),
661 NumberValidator = __webpack_require__(/*! elementor-validator/number */ "../assets/dev/js/editor/components/validator/number.js"),
662 ControlBaseDataView;
663 ControlBaseDataView = ControlBaseView.extend({
664 validatorTypes: {
665 Base: Validator,
666 Number: NumberValidator,
667 Breakpoint: _breakpoint.default
668 },
669 ui: function ui() {
670 var ui = ControlBaseView.prototype.ui.apply(this, arguments);
671 _.extend(ui, {
672 input: 'input[data-setting][type!="checkbox"][type!="radio"]',
673 checkbox: 'input[data-setting][type="checkbox"]',
674 radio: 'input[data-setting][type="radio"]',
675 select: 'select[data-setting]',
676 textarea: 'textarea[data-setting]',
677 responsiveSwitchersSibling: "".concat(ui.controlTitle, "[data-e-responsive-switcher-sibling!=\"false\"]"),
678 responsiveSwitchers: '.elementor-responsive-switcher',
679 contentEditable: '[contenteditable="true"]'
680 });
681 return ui;
682 },
683 templateHelpers: function templateHelpers() {
684 var controlData = ControlBaseView.prototype.templateHelpers.apply(this, arguments);
685 controlData.data.controlValue = this.getControlValue();
686 return controlData;
687 },
688 events: function events() {
689 return {
690 'input @ui.input': 'onBaseInputTextChange',
691 'change @ui.checkbox': 'onBaseInputChange',
692 'change @ui.radio': 'onBaseInputChange',
693 'input @ui.textarea': 'onBaseInputTextChange',
694 'change @ui.select': 'onBaseInputChange',
695 'input @ui.contentEditable': 'onBaseInputTextChange',
696 'click @ui.responsiveSwitchers': 'onResponsiveSwitchersClick'
697 };
698 },
699 behaviors: function behaviors() {
700 var behaviors = ControlBaseView.prototype.behaviors.apply(this, arguments),
701 dynamicSettings = this.options.model.get('dynamic');
702 if (dynamicSettings && dynamicSettings.active) {
703 var tags = _.filter(elementor.dynamicTags.getConfig('tags'), function (tag) {
704 return tag.editable && _.intersection(tag.categories, dynamicSettings.categories).length;
705 });
706 if (tags.length || elementor.config.user.is_administrator) {
707 behaviors.tags = {
708 behaviorClass: TagsBehavior,
709 tags: tags,
710 dynamicSettings: dynamicSettings
711 };
712 }
713 }
714 return behaviors;
715 },
716 initialize: function initialize() {
717 ControlBaseView.prototype.initialize.apply(this, arguments);
718 this.registerValidators();
719 if (this.model.get('responsive')) {
720 this.setPlaceholderFromParent();
721 }
722 if (undefined === this.model.get('inherit_placeholders')) {
723 this.model.set('inherit_placeholders', true);
724 }
725
726 // TODO: this.elementSettingsModel is deprecated since 2.8.0.
727 var settings = this.container ? this.container.settings : this.elementSettingsModel;
728 this.listenTo(settings, 'change:external:' + this.model.get('name'), this.onAfterExternalChange);
729 },
730 getControlValue: function getControlValue() {
731 return this.container.settings.get(this.model.get('name'));
732 },
733 getGlobalKey: function getGlobalKey() {
734 return this.container.globals.get(this.model.get('name'));
735 },
736 getGlobalValue: function getGlobalValue() {
737 return this.globalValue;
738 },
739 getGlobalDefault: function getGlobalDefault() {
740 var controlGlobalArgs = this.model.get('global');
741 if (controlGlobalArgs !== null && controlGlobalArgs !== void 0 && controlGlobalArgs.default) {
742 // If the control is a color/typography control and default colors/typography are disabled, don't return the global value.
743 if (!elementor.config.globals.defaults_enabled[this.getGlobalMeta().controlType]) {
744 return '';
745 }
746 var _$e$data$commandExtra = $e.data.commandExtractArgs(controlGlobalArgs.default),
747 command = _$e$data$commandExtra.command,
748 args = _$e$data$commandExtra.args,
749 result = $e.data.getCache($e.components.get('globals'), command, args.query);
750 return result === null || result === void 0 ? void 0 : result.value;
751 }
752
753 // No global default.
754 return '';
755 },
756 getCurrentValue: function getCurrentValue() {
757 if (this.getGlobalKey() && !this.globalValue) {
758 return '';
759 }
760 if (this.globalValue) {
761 return this.globalValue;
762 }
763 var controlValue = this.getControlValue();
764 if (controlValue) {
765 return controlValue;
766 }
767 return this.getGlobalDefault();
768 },
769 isGlobalActive: function isGlobalActive() {
770 var _this$options$model$g;
771 return (_this$options$model$g = this.options.model.get('global')) === null || _this$options$model$g === void 0 ? void 0 : _this$options$model$g.active;
772 },
773 setValue: function setValue(value) {
774 this.setSettingsModel(value);
775 },
776 setSettingsModel: function setSettingsModel(value) {
777 var key = this.model.get('name');
778 $e.run('document/elements/settings', {
779 container: this.options.container,
780 settings: (0, _defineProperty2.default)({}, key, value)
781 });
782 this.triggerMethod('settings:change');
783 },
784 applySavedValue: function applySavedValue() {
785 this.setInputValue('[data-setting="' + this.model.get('name') + '"]', this.getControlValue());
786 },
787 getEditSettings: function getEditSettings(setting) {
788 var settings = this.getOption('elementEditSettings').toJSON();
789 if (setting) {
790 return settings[setting];
791 }
792 return settings;
793 },
794 setEditSetting: function setEditSetting(settingKey, settingValue) {
795 var settings = this.getOption('elementEditSettings') || this.getOption('container').settings;
796 settings.set(settingKey, settingValue);
797 },
798 /**
799 * Get the placeholder for the current control.
800 *
801 * @return {*} placeholder
802 */
803 getControlPlaceholder: function getControlPlaceholder() {
804 var placeholder = this.model.get('placeholder');
805 if (this.model.get('responsive') && this.model.get('inherit_placeholders')) {
806 placeholder = placeholder || this.container.placeholders[this.model.get('name')];
807 }
808 return placeholder;
809 },
810 /**
811 * Get the responsive parent view if exists.
812 *
813 * @return {ControlBaseDataView|undefined} responsive parent view if exists
814 */
815 getResponsiveParentView: function getResponsiveParentView() {
816 var parent = this.model.get('parent');
817 try {
818 return parent && this.container.panel.getControlView(parent);
819 // eslint-disable-next-line no-empty
820 } catch (e) {}
821 },
822 /**
823 * Get the responsive children views if exists.
824 *
825 * @return {ControlBaseDataView|null} responsive children views if exists
826 */
827 getResponsiveChildrenViews: function getResponsiveChildrenViews() {
828 var children = this.model.get('inheritors'),
829 views = [];
830 try {
831 var _iterator = _createForOfIteratorHelper(children),
832 _step;
833 try {
834 for (_iterator.s(); !(_step = _iterator.n()).done;) {
835 var child = _step.value;
836 views.push(this.container.panel.getControlView(child));
837 }
838 // eslint-disable-next-line no-empty
839 } catch (err) {
840 _iterator.e(err);
841 } finally {
842 _iterator.f();
843 }
844 } catch (e) {}
845 return views;
846 },
847 /**
848 * Get prepared placeholder from the responsive parent, and put it into current
849 * control model as placeholder.
850 */
851 setPlaceholderFromParent: function setPlaceholderFromParent() {
852 var parent = this.getResponsiveParentView();
853 if (parent) {
854 this.container.placeholders[this.model.get('name')] = parent.preparePlaceholderForChildren();
855 }
856 },
857 /**
858 * Returns the value of the current control if exists, or the parent value if not,
859 * so responsive children can set it as their placeholder. When there are multiple
860 * inputs, the inputs which are empty on this control will inherit their values
861 * from the responsive parent.
862 * For example, if on desktop the padding of all edges is 10, and on tablet only
863 * padding right and left is set to 15, the mobile control placeholder will
864 * eventually be: { top: 10, right: 15, left: 15, bottom: 10 }, because of the
865 * inheritance of multiple values.
866 *
867 * @return {*} value of the current control if exists, or the parent value if not
868 */
869 preparePlaceholderForChildren: function preparePlaceholderForChildren() {
870 var _this$getResponsivePa;
871 var cleanValue = this.getCleanControlValue(),
872 parentValue = (_this$getResponsivePa = this.getResponsiveParentView()) === null || _this$getResponsivePa === void 0 ? void 0 : _this$getResponsivePa.preparePlaceholderForChildren();
873 if (cleanValue instanceof Object) {
874 return Object.assign({}, parentValue, cleanValue);
875 }
876 return cleanValue || parentValue;
877 },
878 /**
879 * Start the re-rendering recursive chain from the responsive child of this
880 * control. It's useful when the current control value is changed and we want
881 * to update all responsive children. In this case, the re-rendering is supposed
882 * to be applied only from the responsive child of this control and on.
883 */
884 propagatePlaceholder: function propagatePlaceholder() {
885 var children = this.getResponsiveChildrenViews();
886 var _iterator2 = _createForOfIteratorHelper(children),
887 _step2;
888 try {
889 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
890 var child = _step2.value;
891 child.renderWithChildren();
892 }
893 } catch (err) {
894 _iterator2.e(err);
895 } finally {
896 _iterator2.f();
897 }
898 },
899 /**
900 * Re-render current control and trigger this method on the responsive child.
901 * The purpose of those actions is to recursively re-render all responsive
902 * children.
903 */
904 renderWithChildren: function renderWithChildren() {
905 this.render();
906 this.propagatePlaceholder();
907 },
908 /**
909 * Get control value without empty properties, and without default values.
910 *
911 * @return {{}} control value without empty properties, and without default values
912 */
913 getCleanControlValue: function getCleanControlValue() {
914 var value = this.getControlValue();
915 return value && value !== this.model.get('default') ? value : undefined;
916 },
917 onAfterChange: function onAfterChange(control) {
918 if (Object.keys(control.changed).includes(this.model.get('name'))) {
919 this.propagatePlaceholder();
920 }
921 ControlBaseView.prototype.onAfterChange.apply(this, arguments);
922 },
923 getInputValue: function getInputValue(input) {
924 var $input = this.$(input);
925 if ($input.is('[contenteditable="true"]')) {
926 return $input.html();
927 }
928 var inputValue = $input.val(),
929 inputType = $input.attr('type');
930 if (-1 !== ['radio', 'checkbox'].indexOf(inputType)) {
931 return $input.prop('checked') ? inputValue : '';
932 }
933 if ('number' === inputType && _.isFinite(inputValue)) {
934 return +inputValue;
935 }
936
937 // Temp fix for jQuery (< 3.0) that return null instead of empty array
938 if ('SELECT' === input.tagName && $input.prop('multiple') && null === inputValue) {
939 inputValue = [];
940 }
941 return inputValue;
942 },
943 setInputValue: function setInputValue(input, value) {
944 var $input = this.$(input),
945 inputType = $input.attr('type');
946 if ('checkbox' === inputType) {
947 $input.prop('checked', !!value);
948 } else if ('radio' === inputType) {
949 $input.filter('[value="' + value + '"]').prop('checked', true);
950 } else {
951 $input.val(value);
952 }
953 },
954 addValidator: function addValidator(validator) {
955 this.validators.push(validator);
956 },
957 registerValidators: function registerValidators() {
958 var _this = this;
959 this.validators = [];
960 var validationTerms = {};
961 if (this.model.get('required')) {
962 validationTerms.required = true;
963 }
964 if (!jQuery.isEmptyObject(validationTerms)) {
965 this.addValidator(new this.validatorTypes.Base({
966 validationTerms: validationTerms
967 }));
968 }
969 var validators = this.model.get('validators');
970 if (validators) {
971 Object.entries(validators).forEach(function (_ref) {
972 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
973 key = _ref2[0],
974 args = _ref2[1];
975 _this.addValidator(new _this.validatorTypes[key]({
976 validationTerms: args
977 }));
978 });
979 }
980 },
981 onBeforeRender: function onBeforeRender() {
982 this.setPlaceholderFromParent();
983 },
984 onRender: function onRender() {
985 ControlBaseView.prototype.onRender.apply(this, arguments);
986 if (this.model.get('responsive')) {
987 this.renderResponsiveSwitchers();
988 }
989 this.applySavedValue();
990 this.triggerMethod('ready');
991 this.toggleControlVisibility();
992 this.addTooltip();
993 },
994 onBaseInputTextChange: function onBaseInputTextChange(event) {
995 this.onBaseInputChange(event);
996 },
997 onBaseInputChange: function onBaseInputChange(event) {
998 clearTimeout(this.correctionTimeout);
999 var input = event.currentTarget,
1000 value = this.getInputValue(input),
1001 validators = this.validators.slice(0),
1002 settingsValidators = this.container.settings.validators[this.model.get('name')];
1003 if (settingsValidators) {
1004 validators = validators.concat(settingsValidators);
1005 }
1006 if (validators) {
1007 var oldValue = this.getControlValue(input.dataset.setting);
1008 var isValidValue = validators.every(function (validator) {
1009 return validator.isValid(value, oldValue);
1010 });
1011 if (!isValidValue) {
1012 this.correctionTimeout = setTimeout(this.setInputValue.bind(this, input, oldValue), 1200);
1013 return;
1014 }
1015 }
1016 this.updateElementModel(value, input);
1017 this.triggerMethod('input:change', event);
1018 },
1019 onResponsiveSwitchersClick: function onResponsiveSwitchersClick(event) {
1020 var $switcher = jQuery(event.currentTarget),
1021 device = $switcher.data('device'),
1022 $switchersWrapper = this.ui.responsiveSwitchersWrapper,
1023 selectedOption = $switcher.index();
1024 $switchersWrapper.toggleClass('elementor-responsive-switchers-open');
1025 $switchersWrapper[0].style.setProperty('--selected-option', selectedOption);
1026 this.triggerMethod('responsive:switcher:click', device);
1027 elementor.changeDeviceMode(device);
1028 },
1029 renderResponsiveSwitchers: function renderResponsiveSwitchers() {
1030 var templateHtml = Marionette.Renderer.render('#tmpl-elementor-control-responsive-switchers', this.model.attributes);
1031 this.ui.responsiveSwitchersSibling.after(templateHtml);
1032 this.ui.responsiveSwitchersWrapper = this.$el.find('.elementor-control-responsive-switchers');
1033 },
1034 onAfterExternalChange: function onAfterExternalChange() {
1035 this.hideTooltip();
1036 this.applySavedValue();
1037 },
1038 addTooltip: function addTooltip() {
1039 this.ui.tooltipTargets = this.$el.find('.tooltip-target');
1040 if (!this.ui.tooltipTargets.length) {
1041 return;
1042 }
1043
1044 // Create tooltip on controls
1045 this.ui.tooltipTargets.tipsy({
1046 gravity: function gravity() {
1047 // `n` for down, `s` for up
1048 var gravity = jQuery(this).data('tooltip-pos');
1049 if (undefined !== gravity) {
1050 return gravity;
1051 }
1052 return 's';
1053 },
1054 title: function title() {
1055 return this.getAttribute('data-tooltip');
1056 }
1057 });
1058 },
1059 hideTooltip: function hideTooltip() {
1060 if (this.ui.tooltipTargets.length) {
1061 this.ui.tooltipTargets.tipsy('hide');
1062 }
1063 },
1064 updateElementModel: function updateElementModel(value) {
1065 this.setValue(value);
1066 }
1067 }, {
1068 // Static methods
1069 getStyleValue: function getStyleValue(placeholder, controlValue, controlData) {
1070 if ('DEFAULT' === placeholder) {
1071 return controlData.default;
1072 }
1073 return controlValue;
1074 },
1075 onPasteStyle: function onPasteStyle() {
1076 return true;
1077 }
1078 });
1079 module.exports = ControlBaseDataView;
1080
1081 /***/ }),
1082
1083 /***/ "../assets/dev/js/editor/controls/base.js":
1084 /*!************************************************!*\
1085 !*** ../assets/dev/js/editor/controls/base.js ***!
1086 \************************************************/
1087 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1088
1089 "use strict";
1090
1091
1092 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1093 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1094 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; }
1095 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; }
1096 var ControlBaseView;
1097 ControlBaseView = Marionette.CompositeView.extend({
1098 ui: function ui() {
1099 return {
1100 controlTitle: '.elementor-control-title'
1101 };
1102 },
1103 behaviors: function behaviors() {
1104 var behaviors = {};
1105 return elementor.hooks.applyFilters('controls/base/behaviors', behaviors, this);
1106 },
1107 getBehavior: function getBehavior(name) {
1108 return this._behaviors[Object.keys(this.behaviors()).indexOf(name)];
1109 },
1110 className: function className() {
1111 // TODO: Any better classes for that?
1112 var classes = 'elementor-control elementor-control-' + this.model.get('name') + ' elementor-control-type-' + this.model.get('type'),
1113 modelClasses = this.model.get('classes'),
1114 responsive = this.model.get('responsive');
1115 if (!_.isEmpty(modelClasses)) {
1116 classes += ' ' + modelClasses;
1117 }
1118 if (!_.isEmpty(responsive)) {
1119 var responsiveControlName = responsive.max || responsive.min;
1120 classes += ' elementor-control-responsive-' + responsiveControlName;
1121 }
1122 return classes;
1123 },
1124 templateHelpers: function templateHelpers() {
1125 var controlData = {
1126 _cid: this.model.cid
1127 };
1128 return {
1129 view: this,
1130 data: _.extend({}, this.model.toJSON(), controlData)
1131 };
1132 },
1133 getTemplate: function getTemplate() {
1134 return Marionette.TemplateCache.get('#tmpl-elementor-control-' + this.model.get('type') + '-content');
1135 },
1136 initialize: function initialize(options) {
1137 var label = this.model.get('label');
1138
1139 // TODO: Temp backwards compatibility. since 2.8.0.
1140 Object.defineProperty(this, 'container', {
1141 get: function get() {
1142 if (!options.container) {
1143 var settingsModel = options.elementSettingsModel,
1144 view = $e.components.get('document').utils.findViewById(settingsModel.id);
1145
1146 // Element control.
1147 if (view && view.getContainer) {
1148 options.container = view.getContainer();
1149 } else {
1150 if (!settingsModel.id) {
1151 settingsModel.id = 'bc-' + elementorCommon.helpers.getUniqueId();
1152 }
1153
1154 // Document/General/Other control.
1155 options.container = new elementorModules.editor.Container({
1156 type: 'bc-container',
1157 id: settingsModel.id,
1158 model: settingsModel,
1159 settings: settingsModel,
1160 label: label,
1161 view: false,
1162 parent: false,
1163 renderer: false,
1164 controls: settingsModel.options.controls
1165 });
1166 }
1167 }
1168 return options.container;
1169 }
1170 });
1171
1172 // Use `defineProperty` because `get elementSettingsModel()` fails during the `Marionette.CompositeView.extend`.
1173 Object.defineProperty(this, 'elementSettingsModel', {
1174 get: function get() {
1175 elementorDevTools.deprecation.deprecated('elementSettingsModel', '2.8.0', 'container.settings');
1176 return options.container ? options.container.settings : options.elementSettingsModel;
1177 }
1178 });
1179 var controlType = this.model.get('type'),
1180 controlSettings = jQuery.extend(true, {}, elementor.config.controls[controlType], this.model.attributes);
1181 this.model.set(controlSettings);
1182
1183 // TODO: this.elementSettingsModel is deprecated since 2.8.0.
1184 var settings = this.container ? this.container.settings : this.elementSettingsModel;
1185 this.listenTo(settings, 'change', this.onAfterChange);
1186 if (this.model.attributes.responsive) {
1187 this.onDeviceModeChange = this.onDeviceModeChange.bind(this);
1188 elementor.listenTo(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
1189 }
1190 },
1191 onDestroy: function onDestroy() {
1192 elementor.stopListening(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
1193 },
1194 onDeviceModeChange: function onDeviceModeChange() {
1195 this.toggleControlVisibility();
1196 },
1197 onAfterChange: function onAfterChange() {
1198 this.toggleControlVisibility();
1199 },
1200 toggleControlVisibility: function toggleControlVisibility() {
1201 // TODO: this.elementSettingsModel is deprecated since 2.8.0.
1202 var settings = this.container ? this.container.settings : this.elementSettingsModel;
1203 var isVisible = elementor.helpers.isActiveControl(this.model, settings.attributes, settings.controls);
1204 this.$el.toggleClass('elementor-hidden-control', !isVisible);
1205 elementor.getPanelView().updateScrollbar();
1206 },
1207 onRender: function onRender() {
1208 var layoutType = this.model.get('label_block') ? 'block' : 'inline',
1209 showLabel = this.model.get('show_label'),
1210 elClasses = 'elementor-label-' + layoutType;
1211 elClasses += ' elementor-control-separator-' + this.model.get('separator');
1212 if (!showLabel) {
1213 elClasses += ' elementor-control-hidden-label';
1214 }
1215 this.$el.addClass(elClasses);
1216 this.toggleControlVisibility();
1217 },
1218 reRoute: function reRoute(controlActive) {
1219 $e.route($e.routes.getCurrent('panel'), this.getControlInRouteArgs(controlActive ? this.getControlPath() : ''), {
1220 history: false
1221 });
1222 },
1223 getControlInRouteArgs: function getControlInRouteArgs(path) {
1224 return _objectSpread(_objectSpread({}, $e.routes.getCurrentArgs('panel')), {}, {
1225 activeControl: path
1226 });
1227 },
1228 getControlPath: function getControlPath() {
1229 var controlPath = this.model.get('name'),
1230 parent = this._parent;
1231 while (!parent.$el.hasClass('elementor-controls-stack')) {
1232 var parentName = parent.model.get('name') || parent.model.get('_id');
1233 controlPath = parentName + '/' + controlPath;
1234 parent = parent._parent;
1235 }
1236 return controlPath;
1237 }
1238 });
1239 module.exports = ControlBaseView;
1240
1241 /***/ }),
1242
1243 /***/ "../assets/dev/js/editor/controls/switcher.js":
1244 /*!****************************************************!*\
1245 !*** ../assets/dev/js/editor/controls/switcher.js ***!
1246 \****************************************************/
1247 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1248
1249 "use strict";
1250
1251
1252 var ControlBaseDataView = __webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js");
1253 module.exports = ControlBaseDataView.extend({
1254 setInputValue: function setInputValue(input, value) {
1255 this.$(input).prop('checked', this.model.get('return_value') === value);
1256 }
1257 }, {
1258 onPasteStyle: function onPasteStyle(control, clipboardValue) {
1259 return !clipboardValue || clipboardValue === control.return_value;
1260 }
1261 });
1262
1263 /***/ }),
1264
1265 /***/ "../modules/styleguide/assets/js/commands/enable.js":
1266 /*!**********************************************************!*\
1267 !*** ../modules/styleguide/assets/js/commands/enable.js ***!
1268 \**********************************************************/
1269 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1270
1271 "use strict";
1272
1273
1274 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1275 Object.defineProperty(exports, "__esModule", ({
1276 value: true
1277 }));
1278 exports["default"] = exports.Enable = void 0;
1279 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1280 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1281 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1282 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1283 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1284 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
1285 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1286 var Enable = exports.Enable = /*#__PURE__*/function (_$e$modules$CommandBa) {
1287 function Enable() {
1288 (0, _classCallCheck2.default)(this, Enable);
1289 return _callSuper(this, Enable, arguments);
1290 }
1291 (0, _inherits2.default)(Enable, _$e$modules$CommandBa);
1292 return (0, _createClass2.default)(Enable, [{
1293 key: "apply",
1294 value: function apply(args) {
1295 $e.components.get('preview/styleguide').enableStyleguidePreview(args);
1296 }
1297 }]);
1298 }($e.modules.CommandBase);
1299 var _default = exports["default"] = Enable;
1300
1301 /***/ }),
1302
1303 /***/ "../modules/styleguide/assets/js/commands/global-colors.js":
1304 /*!*****************************************************************!*\
1305 !*** ../modules/styleguide/assets/js/commands/global-colors.js ***!
1306 \*****************************************************************/
1307 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1308
1309 "use strict";
1310
1311
1312 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1313 Object.defineProperty(exports, "__esModule", ({
1314 value: true
1315 }));
1316 exports["default"] = exports.GlobalColors = void 0;
1317 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1318 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1319 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1320 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1321 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1322 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
1323 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1324 var GlobalColors = exports.GlobalColors = /*#__PURE__*/function (_$e$modules$CommandBa) {
1325 function GlobalColors() {
1326 (0, _classCallCheck2.default)(this, GlobalColors);
1327 return _callSuper(this, GlobalColors, arguments);
1328 }
1329 (0, _inherits2.default)(GlobalColors, _$e$modules$CommandBa);
1330 return (0, _createClass2.default)(GlobalColors, [{
1331 key: "apply",
1332 value: function apply() {
1333 $e.components.get('preview/styleguide').showStyleguidePreview();
1334 }
1335 }]);
1336 }($e.modules.CommandBase);
1337 var _default = exports["default"] = GlobalColors;
1338
1339 /***/ }),
1340
1341 /***/ "../modules/styleguide/assets/js/commands/global-typography.js":
1342 /*!*********************************************************************!*\
1343 !*** ../modules/styleguide/assets/js/commands/global-typography.js ***!
1344 \*********************************************************************/
1345 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1346
1347 "use strict";
1348
1349
1350 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1351 Object.defineProperty(exports, "__esModule", ({
1352 value: true
1353 }));
1354 exports["default"] = exports.GlobalTypography = void 0;
1355 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1356 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1357 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1358 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1359 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1360 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
1361 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1362 var GlobalTypography = exports.GlobalTypography = /*#__PURE__*/function (_$e$modules$CommandBa) {
1363 function GlobalTypography() {
1364 (0, _classCallCheck2.default)(this, GlobalTypography);
1365 return _callSuper(this, GlobalTypography, arguments);
1366 }
1367 (0, _inherits2.default)(GlobalTypography, _$e$modules$CommandBa);
1368 return (0, _createClass2.default)(GlobalTypography, [{
1369 key: "apply",
1370 value: function apply() {
1371 $e.components.get('preview/styleguide').showStyleguidePreview();
1372 }
1373 }]);
1374 }($e.modules.CommandBase);
1375 var _default = exports["default"] = GlobalTypography;
1376
1377 /***/ }),
1378
1379 /***/ "../modules/styleguide/assets/js/commands/hide.js":
1380 /*!********************************************************!*\
1381 !*** ../modules/styleguide/assets/js/commands/hide.js ***!
1382 \********************************************************/
1383 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1384
1385 "use strict";
1386
1387
1388 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1389 Object.defineProperty(exports, "__esModule", ({
1390 value: true
1391 }));
1392 exports["default"] = exports.Hide = void 0;
1393 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1394 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1395 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1396 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1397 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1398 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
1399 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1400 var Hide = exports.Hide = /*#__PURE__*/function (_$e$modules$CommandBa) {
1401 function Hide() {
1402 (0, _classCallCheck2.default)(this, Hide);
1403 return _callSuper(this, Hide, arguments);
1404 }
1405 (0, _inherits2.default)(Hide, _$e$modules$CommandBa);
1406 return (0, _createClass2.default)(Hide, [{
1407 key: "apply",
1408 value: function apply() {
1409 $e.components.get('preview/styleguide').hideStyleguidePreview();
1410 }
1411 }]);
1412 }($e.modules.CommandBase);
1413 var _default = exports["default"] = Hide;
1414
1415 /***/ }),
1416
1417 /***/ "../modules/styleguide/assets/js/commands/index.js":
1418 /*!*********************************************************!*\
1419 !*** ../modules/styleguide/assets/js/commands/index.js ***!
1420 \*********************************************************/
1421 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1422
1423 "use strict";
1424
1425
1426 Object.defineProperty(exports, "__esModule", ({
1427 value: true
1428 }));
1429 Object.defineProperty(exports, "Enable", ({
1430 enumerable: true,
1431 get: function get() {
1432 return _enable.Enable;
1433 }
1434 }));
1435 Object.defineProperty(exports, "GlobalColors", ({
1436 enumerable: true,
1437 get: function get() {
1438 return _globalColors.GlobalColors;
1439 }
1440 }));
1441 Object.defineProperty(exports, "GlobalTypography", ({
1442 enumerable: true,
1443 get: function get() {
1444 return _globalTypography.GlobalTypography;
1445 }
1446 }));
1447 Object.defineProperty(exports, "Hide", ({
1448 enumerable: true,
1449 get: function get() {
1450 return _hide.Hide;
1451 }
1452 }));
1453 Object.defineProperty(exports, "SwitcherChange", ({
1454 enumerable: true,
1455 get: function get() {
1456 return _switcherChange.SwitcherChange;
1457 }
1458 }));
1459 var _enable = __webpack_require__(/*! ./enable */ "../modules/styleguide/assets/js/commands/enable.js");
1460 var _globalColors = __webpack_require__(/*! ./global-colors */ "../modules/styleguide/assets/js/commands/global-colors.js");
1461 var _globalTypography = __webpack_require__(/*! ./global-typography */ "../modules/styleguide/assets/js/commands/global-typography.js");
1462 var _hide = __webpack_require__(/*! ./hide */ "../modules/styleguide/assets/js/commands/hide.js");
1463 var _switcherChange = __webpack_require__(/*! ./switcher-change */ "../modules/styleguide/assets/js/commands/switcher-change.js");
1464
1465 /***/ }),
1466
1467 /***/ "../modules/styleguide/assets/js/commands/switcher-change.js":
1468 /*!*******************************************************************!*\
1469 !*** ../modules/styleguide/assets/js/commands/switcher-change.js ***!
1470 \*******************************************************************/
1471 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1472
1473 "use strict";
1474
1475
1476 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1477 Object.defineProperty(exports, "__esModule", ({
1478 value: true
1479 }));
1480 exports["default"] = exports.SwitcherChange = void 0;
1481 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1482 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1483 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1484 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1485 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1486 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
1487 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1488 var SwitcherChange = exports.SwitcherChange = /*#__PURE__*/function (_$e$modules$CommandBa) {
1489 function SwitcherChange() {
1490 (0, _classCallCheck2.default)(this, SwitcherChange);
1491 return _callSuper(this, SwitcherChange, arguments);
1492 }
1493 (0, _inherits2.default)(SwitcherChange, _$e$modules$CommandBa);
1494 return (0, _createClass2.default)(SwitcherChange, [{
1495 key: "validateArgs",
1496 value: function validateArgs() {
1497 var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1498 this.requireArgumentType('name', 'string', args);
1499 this.requireArgumentType('value', 'string', args);
1500 }
1501 }, {
1502 key: "apply",
1503 value: function apply(args) {
1504 if (args.name.includes('enable_styleguide_preview')) {
1505 $e.components.get('preview/styleguide').enableStyleguidePreview({
1506 value: args.value
1507 });
1508 }
1509 }
1510 }]);
1511 }($e.modules.CommandBase);
1512 var _default = exports["default"] = SwitcherChange;
1513
1514 /***/ }),
1515
1516 /***/ "../modules/styleguide/assets/js/controls/switcher.js":
1517 /*!************************************************************!*\
1518 !*** ../modules/styleguide/assets/js/controls/switcher.js ***!
1519 \************************************************************/
1520 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1521
1522 "use strict";
1523
1524
1525 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1526 Object.defineProperty(exports, "__esModule", ({
1527 value: true
1528 }));
1529 exports["default"] = void 0;
1530 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1531 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1532 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1533 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1534 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
1535 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1536 var _switcher = _interopRequireDefault(__webpack_require__(/*! elementor-assets-js/editor/controls/switcher */ "../assets/dev/js/editor/controls/switcher.js"));
1537 var _baseData = _interopRequireDefault(__webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"));
1538 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
1539 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1540 function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
1541 var _default = exports["default"] = /*#__PURE__*/function (_Switcher) {
1542 function _default() {
1543 (0, _classCallCheck2.default)(this, _default);
1544 return _callSuper(this, _default, arguments);
1545 }
1546 (0, _inherits2.default)(_default, _Switcher);
1547 return (0, _createClass2.default)(_default, [{
1548 key: "initialize",
1549 value: function initialize() {
1550 _baseData.default.prototype.initialize.apply(this, arguments);
1551 this.$el.addClass('elementor-control-type-switcher');
1552 }
1553 }, {
1554 key: "onBeforeRender",
1555 value: function onBeforeRender() {
1556 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1557 args[_key] = arguments[_key];
1558 }
1559 _superPropGet(_default, "onBeforeRender", this, 3)(args);
1560 var actualValue = elementor.getPreferences('enable_styleguide_preview');
1561 if (actualValue !== this.getCurrentValue()) {
1562 this.setValue(actualValue);
1563 }
1564 }
1565 }, {
1566 key: "onBaseInputChange",
1567 value: function onBaseInputChange(event) {
1568 _baseData.default.prototype.onBaseInputChange.apply(this, arguments);
1569 var input = event.currentTarget,
1570 value = this.getInputValue(input);
1571 if (this.model.get('on_change_command')) {
1572 this.runCommand(value);
1573 }
1574 this.model.set('return_value', null);
1575 }
1576 }, {
1577 key: "runCommand",
1578 value: function runCommand(value) {
1579 $e.run('preview/styleguide/switcher-change', {
1580 name: this.model.get('name'),
1581 value: value
1582 });
1583 }
1584 }]);
1585 }(_switcher.default);
1586
1587 /***/ }),
1588
1589 /***/ "../modules/styleguide/assets/js/e-component.js":
1590 /*!******************************************************!*\
1591 !*** ../modules/styleguide/assets/js/e-component.js ***!
1592 \******************************************************/
1593 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1594
1595 "use strict";
1596
1597
1598 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1599 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1600 Object.defineProperty(exports, "__esModule", ({
1601 value: true
1602 }));
1603 exports["default"] = void 0;
1604 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1605 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1606 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1607 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1608 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1609 var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../modules/styleguide/assets/js/commands/index.js"));
1610 var _switcher = _interopRequireDefault(__webpack_require__(/*! ./controls/switcher */ "../modules/styleguide/assets/js/controls/switcher.js"));
1611 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
1612 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1613 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
1614 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1615 var _default = exports["default"] = /*#__PURE__*/function (_$e$modules$Component) {
1616 function _default(args) {
1617 var _this;
1618 (0, _classCallCheck2.default)(this, _default);
1619 _this = _callSuper(this, _default, [args]);
1620 elementor.addControlView('global-style-switcher', _switcher.default);
1621 _this.registerStyleguideDialogType();
1622 elementor.once('preview:loaded', function () {
1623 _this.initModal();
1624 });
1625 return _this;
1626 }
1627 (0, _inherits2.default)(_default, _$e$modules$Component);
1628 return (0, _createClass2.default)(_default, [{
1629 key: "getNamespace",
1630 value: function getNamespace() {
1631 return 'preview/styleguide';
1632 }
1633 }, {
1634 key: "defaultCommands",
1635 value: function defaultCommands() {
1636 return this.importCommands(commands);
1637 }
1638 }, {
1639 key: "registerStyleguideDialogType",
1640 value: function registerStyleguideDialogType() {
1641 DialogsManager.addWidgetType('styleguide', DialogsManager.getWidgetType('lightbox').extend('alert', {
1642 buildWidget: function buildWidget() {
1643 DialogsManager.getWidgetType('lightbox').prototype.buildWidget.apply(this, arguments);
1644 var $widgetContent = this.addElement('widgetContent'),
1645 elements = this.getElements();
1646 $widgetContent.append(elements.message);
1647 elements.widget.html($widgetContent);
1648 }
1649 }));
1650 }
1651 }, {
1652 key: "initModal",
1653 value: function initModal() {
1654 var modal;
1655 this.getModal = function () {
1656 if (modal) {
1657 return modal;
1658 }
1659 modal = elementorCommon.dialogsManager.createWidget('styleguide', {
1660 id: 'e-styleguide-preview-dialog',
1661 message: "<div class=\"e-styleguide-preview-root\"></div>",
1662 position: {
1663 my: 'center center',
1664 at: 'center center'
1665 },
1666 hide: {
1667 onOutsideClick: false,
1668 onEscKeyPress: false,
1669 onClick: false,
1670 onBackgroundClick: false
1671 },
1672 container: elementor.$previewContents.find('body')
1673 });
1674 return modal;
1675 };
1676 }
1677
1678 /**
1679 * Show the Styleguide Preview.
1680 * If skipPreferences is true, it will not check the User Preferences before showing the dialog.
1681 *
1682 * @param {boolean} skipPreferencesCheck
1683 */
1684 }, {
1685 key: "showStyleguidePreview",
1686 value: function showStyleguidePreview() {
1687 var skipPreferencesCheck = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1688 if (this.getModal().isVisible() || !skipPreferencesCheck && !elementor.getPreferences('enable_styleguide_preview')) {
1689 return;
1690 }
1691 this.getPreviewFrame().postMessage({
1692 name: 'elementor/styleguide/preview/show'
1693 }, '*');
1694 this.getModal().show();
1695 }
1696
1697 /**
1698 * Hide the Styleguide Preview.
1699 */
1700 }, {
1701 key: "hideStyleguidePreview",
1702 value: function hideStyleguidePreview() {
1703 this.getPreviewFrame().postMessage({
1704 name: 'elementor/styleguide/preview/hide'
1705 }, '*');
1706 this.getModal().hide();
1707 }
1708
1709 /**
1710 * Update the User Preferences to show the global settings.
1711 * Triggered on switcher change at Global Colors / Global Typography panels.
1712 *
1713 * @param {Array} options
1714 */
1715 }, {
1716 key: "enableStyleguidePreview",
1717 value: function enableStyleguidePreview(options) {
1718 if (options.value) {
1719 this.showStyleguidePreview(true);
1720 } else {
1721 this.hideStyleguidePreview();
1722 }
1723 $e.run('document/elements/settings', {
1724 container: elementor.settings.editorPreferences.getEditedView().getContainer(),
1725 settings: {
1726 enable_styleguide_preview: options.value
1727 },
1728 options: {
1729 external: true
1730 }
1731 });
1732 }
1733
1734 /**
1735 * Check if the current script context is the Editor.
1736 *
1737 * @return {boolean}
1738 */
1739 }, {
1740 key: "isInEditor",
1741 value: function isInEditor() {
1742 return !!window.elementor;
1743 }
1744
1745 /**
1746 * Get the Preview Frame.
1747 *
1748 * @return {Window}
1749 */
1750 }, {
1751 key: "getPreviewFrame",
1752 value: function getPreviewFrame() {
1753 return this.isInEditor() ? elementor.$preview[0].contentWindow : window;
1754 }
1755 }]);
1756 }($e.modules.ComponentBase);
1757
1758 /***/ }),
1759
1760 /***/ "@wordpress/i18n":
1761 /*!**************************!*\
1762 !*** external "wp.i18n" ***!
1763 \**************************/
1764 /***/ ((module) => {
1765
1766 "use strict";
1767 module.exports = wp.i18n;
1768
1769 /***/ }),
1770
1771 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
1772 /*!******************************************************************!*\
1773 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
1774 \******************************************************************/
1775 /***/ ((module) => {
1776
1777 function _arrayLikeToArray(r, a) {
1778 (null == a || a > r.length) && (a = r.length);
1779 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
1780 return n;
1781 }
1782 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1783
1784 /***/ }),
1785
1786 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
1787 /*!****************************************************************!*\
1788 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
1789 \****************************************************************/
1790 /***/ ((module) => {
1791
1792 function _arrayWithHoles(r) {
1793 if (Array.isArray(r)) return r;
1794 }
1795 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
1796
1797 /***/ }),
1798
1799 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
1800 /*!***********************************************************************!*\
1801 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
1802 \***********************************************************************/
1803 /***/ ((module) => {
1804
1805 function _assertThisInitialized(e) {
1806 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1807 return e;
1808 }
1809 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
1810
1811 /***/ }),
1812
1813 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
1814 /*!****************************************************************!*\
1815 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
1816 \****************************************************************/
1817 /***/ ((module) => {
1818
1819 function _classCallCheck(a, n) {
1820 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
1821 }
1822 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
1823
1824 /***/ }),
1825
1826 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
1827 /*!*************************************************************!*\
1828 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
1829 \*************************************************************/
1830 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1831
1832 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
1833 function _defineProperties(e, r) {
1834 for (var t = 0; t < r.length; t++) {
1835 var o = r[t];
1836 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
1837 }
1838 }
1839 function _createClass(e, r, t) {
1840 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
1841 writable: !1
1842 }), e;
1843 }
1844 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
1845
1846 /***/ }),
1847
1848 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
1849 /*!****************************************************************!*\
1850 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
1851 \****************************************************************/
1852 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1853
1854 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
1855 function _defineProperty(e, r, t) {
1856 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
1857 value: t,
1858 enumerable: !0,
1859 configurable: !0,
1860 writable: !0
1861 }) : e[r] = t, e;
1862 }
1863 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
1864
1865 /***/ }),
1866
1867 /***/ "../node_modules/@babel/runtime/helpers/get.js":
1868 /*!*****************************************************!*\
1869 !*** ../node_modules/@babel/runtime/helpers/get.js ***!
1870 \*****************************************************/
1871 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1872
1873 var superPropBase = __webpack_require__(/*! ./superPropBase.js */ "../node_modules/@babel/runtime/helpers/superPropBase.js");
1874 function _get() {
1875 return module.exports = _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {
1876 var p = superPropBase(e, t);
1877 if (p) {
1878 var n = Object.getOwnPropertyDescriptor(p, t);
1879 return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;
1880 }
1881 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _get.apply(null, arguments);
1882 }
1883 module.exports = _get, module.exports.__esModule = true, module.exports["default"] = module.exports;
1884
1885 /***/ }),
1886
1887 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
1888 /*!****************************************************************!*\
1889 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
1890 \****************************************************************/
1891 /***/ ((module) => {
1892
1893 function _getPrototypeOf(t) {
1894 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
1895 return t.__proto__ || Object.getPrototypeOf(t);
1896 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
1897 }
1898 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
1899
1900 /***/ }),
1901
1902 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
1903 /*!**********************************************************!*\
1904 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
1905 \**********************************************************/
1906 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1907
1908 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
1909 function _inherits(t, e) {
1910 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
1911 t.prototype = Object.create(e && e.prototype, {
1912 constructor: {
1913 value: t,
1914 writable: !0,
1915 configurable: !0
1916 }
1917 }), Object.defineProperty(t, "prototype", {
1918 writable: !1
1919 }), e && setPrototypeOf(t, e);
1920 }
1921 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
1922
1923 /***/ }),
1924
1925 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
1926 /*!***********************************************************************!*\
1927 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
1928 \***********************************************************************/
1929 /***/ ((module) => {
1930
1931 function _interopRequireDefault(e) {
1932 return e && e.__esModule ? e : {
1933 "default": e
1934 };
1935 }
1936 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
1937
1938 /***/ }),
1939
1940 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
1941 /*!**********************************************************************!*\
1942 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
1943 \**********************************************************************/
1944 /***/ ((module) => {
1945
1946 function _iterableToArrayLimit(r, l) {
1947 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
1948 if (null != t) {
1949 var e,
1950 n,
1951 i,
1952 u,
1953 a = [],
1954 f = !0,
1955 o = !1;
1956 try {
1957 if (i = (t = t.call(r)).next, 0 === l) {
1958 if (Object(t) !== t) return;
1959 f = !1;
1960 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
1961 } catch (r) {
1962 o = !0, n = r;
1963 } finally {
1964 try {
1965 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
1966 } finally {
1967 if (o) throw n;
1968 }
1969 }
1970 return a;
1971 }
1972 }
1973 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
1974
1975 /***/ }),
1976
1977 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
1978 /*!*****************************************************************!*\
1979 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
1980 \*****************************************************************/
1981 /***/ ((module) => {
1982
1983 function _nonIterableRest() {
1984 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1985 }
1986 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
1987
1988 /***/ }),
1989
1990 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
1991 /*!***************************************************************************!*\
1992 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
1993 \***************************************************************************/
1994 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1995
1996 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1997 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
1998 function _possibleConstructorReturn(t, e) {
1999 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
2000 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
2001 return assertThisInitialized(t);
2002 }
2003 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
2004
2005 /***/ }),
2006
2007 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
2008 /*!****************************************************************!*\
2009 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
2010 \****************************************************************/
2011 /***/ ((module) => {
2012
2013 function _setPrototypeOf(t, e) {
2014 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
2015 return t.__proto__ = e, t;
2016 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
2017 }
2018 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
2019
2020 /***/ }),
2021
2022 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
2023 /*!***************************************************************!*\
2024 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
2025 \***************************************************************/
2026 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2027
2028 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
2029 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
2030 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
2031 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
2032 function _slicedToArray(r, e) {
2033 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
2034 }
2035 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
2036
2037 /***/ }),
2038
2039 /***/ "../node_modules/@babel/runtime/helpers/superPropBase.js":
2040 /*!***************************************************************!*\
2041 !*** ../node_modules/@babel/runtime/helpers/superPropBase.js ***!
2042 \***************************************************************/
2043 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2044
2045 var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js");
2046 function _superPropBase(t, o) {
2047 for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););
2048 return t;
2049 }
2050 module.exports = _superPropBase, module.exports.__esModule = true, module.exports["default"] = module.exports;
2051
2052 /***/ }),
2053
2054 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
2055 /*!*************************************************************!*\
2056 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
2057 \*************************************************************/
2058 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2059
2060 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
2061 function toPrimitive(t, r) {
2062 if ("object" != _typeof(t) || !t) return t;
2063 var e = t[Symbol.toPrimitive];
2064 if (void 0 !== e) {
2065 var i = e.call(t, r || "default");
2066 if ("object" != _typeof(i)) return i;
2067 throw new TypeError("@@toPrimitive must return a primitive value.");
2068 }
2069 return ("string" === r ? String : Number)(t);
2070 }
2071 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
2072
2073 /***/ }),
2074
2075 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
2076 /*!***************************************************************!*\
2077 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
2078 \***************************************************************/
2079 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2080
2081 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
2082 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
2083 function toPropertyKey(t) {
2084 var i = toPrimitive(t, "string");
2085 return "symbol" == _typeof(i) ? i : i + "";
2086 }
2087 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
2088
2089 /***/ }),
2090
2091 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
2092 /*!********************************************************!*\
2093 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
2094 \********************************************************/
2095 /***/ ((module) => {
2096
2097 function _typeof(o) {
2098 "@babel/helpers - typeof";
2099
2100 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
2101 return typeof o;
2102 } : function (o) {
2103 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
2104 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
2105 }
2106 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
2107
2108 /***/ }),
2109
2110 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
2111 /*!****************************************************************************!*\
2112 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
2113 \****************************************************************************/
2114 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2115
2116 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
2117 function _unsupportedIterableToArray(r, a) {
2118 if (r) {
2119 if ("string" == typeof r) return arrayLikeToArray(r, a);
2120 var t = {}.toString.call(r).slice(8, -1);
2121 return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;
2122 }
2123 }
2124 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
2125
2126 /***/ })
2127
2128 /******/ });
2129 /************************************************************************/
2130 /******/ // The module cache
2131 /******/ var __webpack_module_cache__ = {};
2132 /******/
2133 /******/ // The require function
2134 /******/ function __webpack_require__(moduleId) {
2135 /******/ // Check if module is in cache
2136 /******/ var cachedModule = __webpack_module_cache__[moduleId];
2137 /******/ if (cachedModule !== undefined) {
2138 /******/ return cachedModule.exports;
2139 /******/ }
2140 /******/ // Create a new module (and put it into the cache)
2141 /******/ var module = __webpack_module_cache__[moduleId] = {
2142 /******/ // no module.id needed
2143 /******/ // no module.loaded needed
2144 /******/ exports: {}
2145 /******/ };
2146 /******/
2147 /******/ // Execute the module function
2148 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
2149 /******/
2150 /******/ // Return the exports of the module
2151 /******/ return module.exports;
2152 /******/ }
2153 /******/
2154 /************************************************************************/
2155 var __webpack_exports__ = {};
2156 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
2157 (() => {
2158 "use strict";
2159 /*!*****************************************************!*\
2160 !*** ../modules/styleguide/assets/js/styleguide.js ***!
2161 \*****************************************************/
2162
2163
2164 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2165 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2166 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2167 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
2168 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
2169 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
2170 var _eComponent = _interopRequireDefault(__webpack_require__(/*! ./e-component */ "../modules/styleguide/assets/js/e-component.js"));
2171 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
2172 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
2173 var Styleguide = /*#__PURE__*/function (_elementorModules$edi) {
2174 function Styleguide() {
2175 (0, _classCallCheck2.default)(this, Styleguide);
2176 return _callSuper(this, Styleguide, arguments);
2177 }
2178 (0, _inherits2.default)(Styleguide, _elementorModules$edi);
2179 return (0, _createClass2.default)(Styleguide, [{
2180 key: "onInit",
2181 value: function onInit() {
2182 $e.components.register(new _eComponent.default());
2183 this.addHooks();
2184 }
2185 }, {
2186 key: "getGlobalRoutes",
2187 value: function getGlobalRoutes() {
2188 return {
2189 'global-colors': 'panel/global/global-colors',
2190 'global-typography': 'panel/global/global-typography'
2191 };
2192 }
2193 }, {
2194 key: "addHooks",
2195 value: function addHooks() {
2196 elementor.hooks.addAction('panel/global/tab/before-show', this.show.bind(this));
2197 elementor.hooks.addAction('panel/global/tab/before-destroy', this.hide.bind(this));
2198 }
2199
2200 /**
2201 * Function show() triggered before showing a new tab at the Globals panel.
2202 *
2203 * @param {Object} args
2204 */
2205 }, {
2206 key: "show",
2207 value: function show(args) {
2208 if (!args.id || !(args.id in this.getGlobalRoutes())) {
2209 return;
2210 }
2211 $e.run("preview/styleguide/".concat(args.id));
2212 }
2213
2214 /**
2215 * Function hide() triggered before hiding a tab at the Globals panel.
2216 *
2217 * @param {Object} args
2218 */
2219 }, {
2220 key: "hide",
2221 value: function hide(args) {
2222 if (!args.id || !(args.id in this.getGlobalRoutes())) {
2223 return;
2224 }
2225 var isGlobalsRoute = Object.values(this.getGlobalRoutes()).some(function (route) {
2226 return $e.routes.current.panel === route;
2227 });
2228 if (isGlobalsRoute) {
2229 return;
2230 }
2231 $e.run('preview/styleguide/hide');
2232 }
2233 }]);
2234 }(elementorModules.editor.utils.Module);
2235 new Styleguide();
2236 })();
2237
2238 /******/ })()
2239 ;
2240 //# sourceMappingURL=styleguide.js.map