PluginProbe
Elementor Website Builder – more than just a page builder / 3.28.0-dev2
Elementor Website Builder – more than just a page builder v3.28.0-dev2
4.3.2 4.3.1 4.3.0 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 All 455 releases
← All changes | assets/js/styleguide.js +2198 -1723 4.3.0-beta1 → 3.28.0-dev2 View file →
@@ -1,1765 +1,2240 @@
1 -(function(_wordpress_i18n) {
1 +/*! elementor - v3.28.0 - 10-03-2025 */
2 +/******/ (() => { // webpackBootstrap
3 +/******/ var __webpack_modules__ = ({
2 4
3 -//#region \0rolldown/runtime.js
4 - var __create = Object.create;
5 - var __defProp = Object.defineProperty;
6 - var __name = (target, value) => __defProp(target, "name", {
7 - value,
8 - configurable: true
9 - });
10 - var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11 - var __getOwnPropNames = Object.getOwnPropertyNames;
12 - var __getProtoOf = Object.getPrototypeOf;
13 - var __hasOwnProp = Object.prototype.hasOwnProperty;
14 - var __esmMin = (fn, res, err) => () => {
15 - if (err) throw err[0];
16 - try {
17 - return fn && (res = fn(fn = 0)), res;
18 - } catch (e) {
19 - throw err = [e], e;
20 - }
21 - };
22 - var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
23 - var __exportAll = (all, no_symbols) => {
24 - let target = {};
25 - for (var name in all) {
26 - __defProp(target, name, {
27 - get: all[name],
28 - enumerable: true
29 - });
30 - }
31 - if (!no_symbols) {
32 - __defProp(target, Symbol.toStringTag, { value: "Module" });
33 - }
34 - return target;
35 - };
36 - var __copyProps = (to, from, except, desc) => {
37 - if (from && typeof from === "object" || typeof from === "function") {
38 - for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
39 - key = keys[i];
40 - if (!__hasOwnProp.call(to, key) && key !== except) {
41 - __defProp(to, key, {
42 - get: ((k) => from[k]).bind(null, key),
43 - enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
44 - });
45 - }
46 - }
47 - }
48 - return to;
49 - };
50 - var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
51 - value: mod,
52 - enumerable: true
53 - }) : target, mod));
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__) => {
54 10
55 -//#endregion
11 +"use strict";
12 +/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
56 13
57 -//#region node_modules/@babel/runtime/helpers/esm/classCallCheck.js
58 - function _classCallCheck(a, n) {
59 - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
60 - }
61 - var init_classCallCheck = __esmMin((() => {}));
62 14
63 -//#endregion
64 -//#region node_modules/@babel/runtime/helpers/esm/typeof.js
65 - function _typeof(o) {
66 - "@babel/helpers - typeof";
67 - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
68 - return typeof o;
69 - } : function(o) {
70 - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
71 - }, _typeof(o);
72 - }
73 - var init_typeof = __esmMin((() => {}));
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 + }
74 56
75 -//#endregion
76 -//#region node_modules/@babel/runtime/helpers/esm/toPrimitive.js
77 - function toPrimitive(t, r) {
78 - if ("object" != _typeof(t) || !t) return t;
79 - var e = t[Symbol.toPrimitive];
80 - if (void 0 !== e) {
81 - var i = e.call(t, r || "default");
82 - if ("object" != _typeof(i)) return i;
83 - throw new TypeError("@@toPrimitive must return a primitive value.");
84 - }
85 - return ("string" === r ? String : Number)(t);
86 - }
87 - var init_toPrimitive = __esmMin((() => {
88 - init_typeof();
89 - }));
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 + });
90 110
91 -//#endregion
92 -//#region node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
93 - function toPropertyKey(t) {
94 - var i = toPrimitive(t, "string");
95 - return "symbol" == _typeof(i) ? i : i + "";
96 - }
97 - var init_toPropertyKey = __esmMin((() => {
98 - init_typeof();
99 - init_toPrimitive();
100 - }));
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'), {});
101 220
102 -//#endregion
103 -//#region node_modules/@babel/runtime/helpers/esm/createClass.js
104 - function _defineProperties(e, r) {
105 - for (var t = 0; t < r.length; t++) {
106 - var o = r[t];
107 - o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
108 - }
109 - }
110 - function _createClass(e, r, t) {
111 - return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e;
112 - }
113 - var init_createClass = __esmMin((() => {
114 - init_toPropertyKey();
115 - }));
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 +});
116 263
117 -//#endregion
118 -//#region node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
119 - function _assertThisInitialized(e) {
120 - if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
121 - return e;
122 - }
123 - var init_assertThisInitialized = __esmMin((() => {}));
264 +/***/ }),
124 265
125 -//#endregion
126 -//#region node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
127 - function _possibleConstructorReturn(t, e) {
128 - if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
129 - if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
130 - return _assertThisInitialized(t);
131 - }
132 - var init_possibleConstructorReturn = __esmMin((() => {
133 - init_typeof();
134 - init_assertThisInitialized();
135 - }));
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) => {
136 271
137 -//#endregion
138 -//#region node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
139 - function _getPrototypeOf(t) {
140 - return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t) {
141 - return t.__proto__ || Object.getPrototypeOf(t);
142 - }, _getPrototypeOf(t);
143 - }
144 - var init_getPrototypeOf = __esmMin((() => {}));
272 +"use strict";
145 273
146 -//#endregion
147 -//#region node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
148 - function _setPrototypeOf(t, e) {
149 - return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t, e) {
150 - return t.__proto__ = e, t;
151 - }, _setPrototypeOf(t, e);
152 - }
153 - var init_setPrototypeOf = __esmMin((() => {}));
154 274
155 -//#endregion
156 -//#region node_modules/@babel/runtime/helpers/esm/inherits.js
157 - function _inherits(t, e) {
158 - if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
159 - t.prototype = Object.create(e && e.prototype, { constructor: {
160 - value: t,
161 - writable: !0,
162 - configurable: !0
163 - } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e);
164 - }
165 - var init_inherits = __esmMin((() => {
166 - init_setPrototypeOf();
167 - }));
275 +module.exports = Marionette.ItemView.extend({
276 + className: 'elementor-tag-controls-stack-empty',
277 + template: '#tmpl-elementor-tag-controls-stack-empty'
278 +});
168 279
169 -//#endregion
170 -//#region modules/styleguide/assets/js/commands/enable.js
171 - init_classCallCheck();
172 - init_createClass();
173 - init_possibleConstructorReturn();
174 - init_getPrototypeOf();
175 - init_inherits();
176 - function _callSuper$8(t, o, e) {
177 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$8() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
178 - }
179 - __name(_callSuper$8, "_callSuper");
180 - function _isNativeReflectConstruct$8() {
181 - try {
182 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
183 - } catch (t) {}
184 - return (_isNativeReflectConstruct$8 = function _isNativeReflectConstruct() {
185 - return !!t;
186 - })();
187 - }
188 - __name(_isNativeReflectConstruct$8, "_isNativeReflectConstruct");
189 - var Enable = /*#__PURE__*/ function(_$e$modules$CommandBa) {
190 - function Enable() {
191 - _classCallCheck(this, Enable);
192 - return _callSuper$8(this, Enable, arguments);
193 - }
194 - _inherits(Enable, _$e$modules$CommandBa);
195 - return _createClass(Enable, [{
196 - key: "apply",
197 - value: function apply(args) {
198 - $e.components.get("preview/styleguide").enableStyleguidePreview(args);
199 - }
200 - }]);
201 - }($e.modules.CommandBase);
280 +/***/ }),
202 281
203 -//#endregion
204 -//#region modules/styleguide/assets/js/commands/global-colors.js
205 - init_classCallCheck();
206 - init_createClass();
207 - init_possibleConstructorReturn();
208 - init_getPrototypeOf();
209 - init_inherits();
210 - function _callSuper$7(t, o, e) {
211 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$7() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
212 - }
213 - __name(_callSuper$7, "_callSuper");
214 - function _isNativeReflectConstruct$7() {
215 - try {
216 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
217 - } catch (t) {}
218 - return (_isNativeReflectConstruct$7 = function _isNativeReflectConstruct() {
219 - return !!t;
220 - })();
221 - }
222 - __name(_isNativeReflectConstruct$7, "_isNativeReflectConstruct");
223 - var GlobalColors = /*#__PURE__*/ function(_$e$modules$CommandBa) {
224 - function GlobalColors() {
225 - _classCallCheck(this, GlobalColors);
226 - return _callSuper$7(this, GlobalColors, arguments);
227 - }
228 - _inherits(GlobalColors, _$e$modules$CommandBa);
229 - return _createClass(GlobalColors, [{
230 - key: "apply",
231 - value: function apply() {
232 - $e.components.get("preview/styleguide").showStyleguidePreview();
233 - }
234 - }]);
235 - }($e.modules.CommandBase);
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__) => {
236 287
237 -//#endregion
238 -//#region modules/styleguide/assets/js/commands/global-typography.js
239 - init_classCallCheck();
240 - init_createClass();
241 - init_possibleConstructorReturn();
242 - init_getPrototypeOf();
243 - init_inherits();
244 - function _callSuper$6(t, o, e) {
245 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$6() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
246 - }
247 - __name(_callSuper$6, "_callSuper");
248 - function _isNativeReflectConstruct$6() {
249 - try {
250 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
251 - } catch (t) {}
252 - return (_isNativeReflectConstruct$6 = function _isNativeReflectConstruct() {
253 - return !!t;
254 - })();
255 - }
256 - __name(_isNativeReflectConstruct$6, "_isNativeReflectConstruct");
257 - var GlobalTypography = /*#__PURE__*/ function(_$e$modules$CommandBa) {
258 - function GlobalTypography() {
259 - _classCallCheck(this, GlobalTypography);
260 - return _callSuper$6(this, GlobalTypography, arguments);
261 - }
262 - _inherits(GlobalTypography, _$e$modules$CommandBa);
263 - return _createClass(GlobalTypography, [{
264 - key: "apply",
265 - value: function apply() {
266 - $e.components.get("preview/styleguide").showStyleguidePreview();
267 - }
268 - }]);
269 - }($e.modules.CommandBase);
288 +"use strict";
270 289
271 -//#endregion
272 -//#region modules/styleguide/assets/js/commands/hide.js
273 - init_classCallCheck();
274 - init_createClass();
275 - init_possibleConstructorReturn();
276 - init_getPrototypeOf();
277 - init_inherits();
278 - function _callSuper$5(t, o, e) {
279 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$5() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
280 - }
281 - __name(_callSuper$5, "_callSuper");
282 - function _isNativeReflectConstruct$5() {
283 - try {
284 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
285 - } catch (t) {}
286 - return (_isNativeReflectConstruct$5 = function _isNativeReflectConstruct() {
287 - return !!t;
288 - })();
289 - }
290 - __name(_isNativeReflectConstruct$5, "_isNativeReflectConstruct");
291 - var Hide = /*#__PURE__*/ function(_$e$modules$CommandBa) {
292 - function Hide() {
293 - _classCallCheck(this, Hide);
294 - return _callSuper$5(this, Hide, arguments);
295 - }
296 - _inherits(Hide, _$e$modules$CommandBa);
297 - return _createClass(Hide, [{
298 - key: "apply",
299 - value: function apply() {
300 - $e.components.get("preview/styleguide").hideStyleguidePreview();
301 - }
302 - }]);
303 - }($e.modules.CommandBase);
304 290
305 -//#endregion
306 -//#region modules/styleguide/assets/js/commands/switcher-change.js
307 - init_classCallCheck();
308 - init_createClass();
309 - init_possibleConstructorReturn();
310 - init_getPrototypeOf();
311 - init_inherits();
312 - function _callSuper$4(t, o, e) {
313 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$4() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
314 - }
315 - __name(_callSuper$4, "_callSuper");
316 - function _isNativeReflectConstruct$4() {
317 - try {
318 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
319 - } catch (t) {}
320 - return (_isNativeReflectConstruct$4 = function _isNativeReflectConstruct() {
321 - return !!t;
322 - })();
323 - }
324 - __name(_isNativeReflectConstruct$4, "_isNativeReflectConstruct");
325 - var SwitcherChange = /*#__PURE__*/ function(_$e$modules$CommandBa) {
326 - function SwitcherChange() {
327 - _classCallCheck(this, SwitcherChange);
328 - return _callSuper$4(this, SwitcherChange, arguments);
329 - }
330 - _inherits(SwitcherChange, _$e$modules$CommandBa);
331 - return _createClass(SwitcherChange, [{
332 - key: "validateArgs",
333 - value: function validateArgs() {
334 - var args = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
335 - this.requireArgumentType("name", "string", args);
336 - this.requireArgumentType("value", "string", args);
337 - }
338 - }, {
339 - key: "apply",
340 - value: function apply(args) {
341 - if (args.name.includes("enable_styleguide_preview")) $e.components.get("preview/styleguide").enableStyleguidePreview({ value: args.value });
342 - }
343 - }]);
344 - }($e.modules.CommandBase);
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 +});
345 317
346 -//#endregion
347 -//#region modules/styleguide/assets/js/commands/index.js
348 - var commands_exports = /* @__PURE__ */ __exportAll({
349 - Enable: () => Enable,
350 - GlobalColors: () => GlobalColors,
351 - GlobalTypography: () => GlobalTypography,
352 - Hide: () => Hide,
353 - SwitcherChange: () => SwitcherChange
354 - });
318 +/***/ }),
355 319
356 -//#endregion
357 -//#region node_modules/@babel/runtime/helpers/esm/superPropBase.js
358 - init_getPrototypeOf();
359 - function _superPropBase(t, o) {
360 - for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););
361 - return t;
362 - }
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__) => {
363 325
364 -//#endregion
365 -//#region node_modules/@babel/runtime/helpers/esm/get.js
366 - function _get() {
367 - return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function(e, t, r) {
368 - var p = _superPropBase(e, t);
369 - if (p) {
370 - var n = Object.getOwnPropertyDescriptor(p, t);
371 - return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;
372 - }
373 - }, _get.apply(null, arguments);
374 - }
326 +"use strict";
375 327
376 -//#endregion
377 -//#region node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
378 - function _arrayWithHoles(r) {
379 - if (Array.isArray(r)) return r;
380 - }
381 - var init_arrayWithHoles = __esmMin((() => {}));
382 328
383 -//#endregion
384 -//#region node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
385 - function _iterableToArrayLimit(r, l) {
386 - var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
387 - if (null != t) {
388 - var e;
389 - var n;
390 - var i;
391 - var u;
392 - var a = [];
393 - var f = !0;
394 - var o = !1;
395 - try {
396 - if (i = (t = t.call(r)).next, 0 === l) {
397 - if (Object(t) !== t) return;
398 - f = !1;
399 - } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
400 - } catch (r) {
401 - o = !0, n = r;
402 - } finally {
403 - try {
404 - if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
405 - } finally {
406 - if (o) throw n;
407 - }
408 - }
409 - return a;
410 - }
411 - }
412 - var init_iterableToArrayLimit = __esmMin((() => {}));
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 +});
413 439
414 -//#endregion
415 -//#region node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
416 - function _arrayLikeToArray(r, a) {
417 - (null == a || a > r.length) && (a = r.length);
418 - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
419 - return n;
420 - }
421 - var init_arrayLikeToArray = __esmMin((() => {}));
440 +/***/ }),
422 441
423 -//#endregion
424 -//#region node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
425 - function _unsupportedIterableToArray(r, a) {
426 - if (r) {
427 - if ("string" == typeof r) return _arrayLikeToArray(r, a);
428 - var t = {}.toString.call(r).slice(8, -1);
429 - 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;
430 - }
431 - }
432 - var init_unsupportedIterableToArray = __esmMin((() => {
433 - init_arrayLikeToArray();
434 - }));
442 +/***/ "../assets/dev/js/editor/components/validator/base.js":
443 +/*!************************************************************!*\
444 + !*** ../assets/dev/js/editor/components/validator/base.js ***!
445 + \************************************************************/
446 +/***/ ((module) => {
435 447
436 -//#endregion
437 -//#region node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
438 - function _nonIterableRest() {
439 - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
440 - }
441 - var init_nonIterableRest = __esmMin((() => {}));
448 +"use strict";
442 449
443 -//#endregion
444 -//#region node_modules/@babel/runtime/helpers/esm/slicedToArray.js
445 - function _slicedToArray(r, e) {
446 - return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
447 - }
448 - var init_slicedToArray = __esmMin((() => {
449 - init_arrayWithHoles();
450 - init_iterableToArrayLimit();
451 - init_unsupportedIterableToArray();
452 - init_nonIterableRest();
453 - }));
454 450
455 -//#endregion
456 -//#region node_modules/@babel/runtime/helpers/esm/defineProperty.js
457 - function _defineProperty(e, r, t) {
458 - return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
459 - value: t,
460 - enumerable: !0,
461 - configurable: !0,
462 - writable: !0
463 - }) : e[r] = t, e;
464 - }
465 - var init_defineProperty = __esmMin((() => {
466 - init_toPropertyKey();
467 - }));
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 +});
468 483
469 -//#endregion
470 -//#region assets/dev/js/editor/components/validator/base.js
471 - var require_base$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
472 - module.exports = elementorModules.Module.extend({
473 - errors: [],
474 - __construct: function __construct(settings) {
475 - var customValidationMethod = settings.customValidationMethod;
476 - if (customValidationMethod) this.validationMethod = customValidationMethod;
477 - },
478 - getDefaultSettings: function getDefaultSettings() {
479 - return { validationTerms: {} };
480 - },
481 - isValid: function isValid() {
482 - var validationErrors = this.validationMethod.apply(this, arguments);
483 - if (validationErrors.length) {
484 - this.errors = validationErrors;
485 - return false;
486 - }
487 - return true;
488 - },
489 - validationMethod: function validationMethod(newValue) {
490 - var validationTerms = this.getSettings("validationTerms");
491 - var errors = [];
492 - if (validationTerms.required) {
493 - if (!("" + newValue).length) errors.push("Required value is empty");
494 - }
495 - return errors;
496 - }
497 - });
498 - }));
484 +/***/ }),
499 485
500 -//#endregion
501 -//#region assets/dev/js/editor/components/validator/number.js
502 - var require_number = /* @__PURE__ */ __commonJSMin(((exports, module) => {
503 - var Validator = require_base$1();
504 - module.exports = Validator.extend({ validationMethod: function validationMethod(newValue) {
505 - var validationTerms = this.getSettings("validationTerms");
506 - var errors = [];
507 - if (_.isFinite(newValue)) {
508 - if (void 0 !== validationTerms.min && newValue < validationTerms.min) errors.push("Value is less than minimum");
509 - if (void 0 !== validationTerms.max && newValue > validationTerms.max) errors.push("Value is greater than maximum");
510 - }
511 - return errors;
512 - } });
513 - }));
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__) => {
514 491
515 -//#endregion
516 -//#region assets/dev/js/editor/components/validator/breakpoint.js
517 - function _callSuper$3(t, o, e) {
518 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$3() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
519 - }
520 - function _isNativeReflectConstruct$3() {
521 - try {
522 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
523 - } catch (t) {}
524 - return (_isNativeReflectConstruct$3 = function _isNativeReflectConstruct() {
525 - return !!t;
526 - })();
527 - }
528 - var NumberValidator, BreakpointValidator;
529 - var init_breakpoint = __esmMin((() => {
530 - init_classCallCheck();
531 - init_createClass();
532 - init_possibleConstructorReturn();
533 - init_getPrototypeOf();
534 - init_inherits();
535 - __name(_callSuper$3, "_callSuper");
536 - __name(_isNativeReflectConstruct$3, "_isNativeReflectConstruct");
537 - NumberValidator = require_number();
538 - BreakpointValidator = /*#__PURE__*/ function(_NumberValidator) {
539 - function BreakpointValidator() {
540 - _classCallCheck(this, BreakpointValidator);
541 - return _callSuper$3(this, BreakpointValidator, arguments);
542 - }
543 - _inherits(BreakpointValidator, _NumberValidator);
544 - return _createClass(BreakpointValidator, [
545 - {
546 - key: "getDefaultSettings",
547 - value: function getDefaultSettings() {
548 - return { validationTerms: { max: 5120 } };
549 - }
550 - },
551 - {
552 - key: "getPanelActiveBreakpoints",
553 - value: function getPanelActiveBreakpoints() {
554 - var panelBreakpoints = elementor.documents.currentDocument.config.settings.settings.active_breakpoints.map(function(breakpointName) {
555 - return breakpointName.replace("viewport_", "");
556 - });
557 - var panelActiveBreakpoints = {};
558 - panelBreakpoints.forEach(function(breakpointName) {
559 - panelActiveBreakpoints[breakpointName] = elementorFrontend.config.responsive.breakpoints[breakpointName];
560 - });
561 - return panelActiveBreakpoints;
562 - }
563 - },
564 - {
565 - key: "initBreakpointProperties",
566 - value: function initBreakpointProperties() {
567 - var _activeBreakpoints$br;
568 - var _activeBreakpoints$br2;
569 - var validationTerms = this.getSettings("validationTerms");
570 - var activeBreakpoints = this.getPanelActiveBreakpoints();
571 - var breakpointKeys = Object.keys(activeBreakpoints);
572 - this.breakpointIndex = breakpointKeys.indexOf(validationTerms.breakpointName);
573 - this.topBreakpoint = (_activeBreakpoints$br = activeBreakpoints[breakpointKeys[this.breakpointIndex + 1]]) === null || _activeBreakpoints$br === void 0 ? void 0 : _activeBreakpoints$br.value;
574 - this.bottomBreakpoint = (_activeBreakpoints$br2 = activeBreakpoints[breakpointKeys[this.breakpointIndex - 1]]) === null || _activeBreakpoints$br2 === void 0 ? void 0 : _activeBreakpoints$br2.value;
575 - }
576 - },
577 - {
578 - key: "validationMethod",
579 - value: function validationMethod(newValue) {
580 - var validationTerms = this.getSettings("validationTerms");
581 - var errors = NumberValidator.prototype.validationMethod.call(this, newValue);
582 - if (_.isFinite(newValue) || "" === newValue) {
583 - if (!this.validateMinMaxForBreakpoint(newValue, validationTerms)) errors.push("Value is not between the breakpoints above or under the edited breakpoint");
584 - }
585 - return errors;
586 - }
587 - },
588 - {
589 - key: "validateMinMaxForBreakpoint",
590 - value: function validateMinMaxForBreakpoint(newValue, validationTerms) {
591 - var breakpointDefaultValue = elementorFrontend.config.responsive.breakpoints[validationTerms.breakpointName].default_value;
592 - var isValid = true;
593 - this.initBreakpointProperties();
594 - if ("mobile" === validationTerms.breakpointName && 320 === this.bottomBreakpoint) this.bottomBreakpoint -= 1;
595 - if (this.bottomBreakpoint) {
596 - if ("" !== newValue && newValue <= this.bottomBreakpoint) isValid = false;
597 - if ("" === newValue && breakpointDefaultValue <= this.bottomBreakpoint) isValid = false;
598 - }
599 - if (this.topBreakpoint) {
600 - if ("" !== newValue && newValue >= this.topBreakpoint) isValid = false;
601 - if ("" === newValue && breakpointDefaultValue >= this.topBreakpoint) isValid = false;
602 - }
603 - return isValid;
604 - }
605 - }
606 - ]);
607 - }(NumberValidator);
608 - }));
492 +"use strict";
609 493
610 -//#endregion
611 -//#region assets/dev/js/editor/controls/base.js
612 - var require_base = /* @__PURE__ */ __commonJSMin(((exports, module) => {
613 - init_defineProperty();
614 - function ownKeys(e, r) {
615 - var t = Object.keys(e);
616 - if (Object.getOwnPropertySymbols) {
617 - var o = Object.getOwnPropertySymbols(e);
618 - r && (o = o.filter(function(r) {
619 - return Object.getOwnPropertyDescriptor(e, r).enumerable;
620 - })), t.push.apply(t, o);
621 - }
622 - return t;
623 - }
624 - function _objectSpread(e) {
625 - for (var r = 1; r < arguments.length; r++) {
626 - var t = null != arguments[r] ? arguments[r] : {};
627 - r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
628 - _defineProperty(e, r, t[r]);
629 - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
630 - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
631 - });
632 - }
633 - return e;
634 - }
635 - var ControlBaseView = Marionette.CompositeView.extend({
636 - ui: function ui() {
637 - return { controlTitle: ".elementor-control-title" };
638 - },
639 - behaviors: function behaviors() {
640 - return elementor.hooks.applyFilters("controls/base/behaviors", {}, this);
641 - },
642 - getBehavior: function getBehavior(name) {
643 - return this._behaviors[Object.keys(this.behaviors()).indexOf(name)];
644 - },
645 - className: function className() {
646 - var classes = "elementor-control elementor-control-" + this.model.get("name") + " elementor-control-type-" + this.model.get("type");
647 - var modelClasses = this.model.get("classes");
648 - var responsive = this.model.get("responsive");
649 - if (!_.isEmpty(modelClasses)) classes += " " + modelClasses;
650 - if (!_.isEmpty(responsive)) {
651 - var responsiveControlName = responsive.max || responsive.min;
652 - classes += " elementor-control-responsive-" + responsiveControlName;
653 - }
654 - return classes;
655 - },
656 - templateHelpers: function templateHelpers() {
657 - var controlData = { _cid: this.model.cid };
658 - return {
659 - view: this,
660 - data: _.extend({}, this.model.toJSON(), controlData)
661 - };
662 - },
663 - getTemplate: function getTemplate() {
664 - return Marionette.TemplateCache.get("#tmpl-elementor-control-" + this.model.get("type") + "-content");
665 - },
666 - initialize: function initialize(options) {
667 - var label = this.model.get("label");
668 - Object.defineProperty(this, "container", { get: function get() {
669 - if (!options.container) {
670 - var settingsModel = options.elementSettingsModel;
671 - var view = $e.components.get("document").utils.findViewById(settingsModel.id);
672 - if (view && view.getContainer) options.container = view.getContainer();
673 - else {
674 - if (!settingsModel.id) settingsModel.id = "bc-" + elementorCommon.helpers.getUniqueId();
675 - options.container = new elementorModules.editor.Container({
676 - type: "bc-container",
677 - id: settingsModel.id,
678 - model: settingsModel,
679 - settings: settingsModel,
680 - label,
681 - view: false,
682 - parent: false,
683 - renderer: false,
684 - controls: settingsModel.options.controls
685 - });
686 - }
687 - }
688 - return options.container;
689 - } });
690 - Object.defineProperty(this, "elementSettingsModel", { get: function get() {
691 - elementorDevTools.deprecation.deprecated("elementSettingsModel", "2.8.0", "container.settings");
692 - return options.container ? options.container.settings : options.elementSettingsModel;
693 - } });
694 - var controlType = this.model.get("type");
695 - var controlSettings = jQuery.extend(true, {}, elementor.config.controls[controlType], this.model.attributes);
696 - this.model.set(controlSettings);
697 - var settings = this.container ? this.container.settings : this.elementSettingsModel;
698 - this.listenTo(settings, "change", this.onAfterChange);
699 - if (this.model.attributes.responsive) {
700 - this.onDeviceModeChange = this.onDeviceModeChange.bind(this);
701 - elementor.listenTo(elementor.channels.deviceMode, "change", this.onDeviceModeChange);
702 - }
703 - },
704 - onDestroy: function onDestroy() {
705 - elementor.stopListening(elementor.channels.deviceMode, "change", this.onDeviceModeChange);
706 - },
707 - onDeviceModeChange: function onDeviceModeChange() {
708 - this.toggleControlVisibility();
709 - },
710 - onAfterChange: function onAfterChange() {
711 - this.toggleControlVisibility();
712 - },
713 - toggleControlVisibility: function toggleControlVisibility() {
714 - var settings = this.container ? this.container.settings : this.elementSettingsModel;
715 - var isVisible = elementor.helpers.isActiveControl(this.model, settings.attributes, settings.controls);
716 - this.$el.toggleClass("elementor-hidden-control", !isVisible);
717 - elementor.getPanelView().updateScrollbar();
718 - },
719 - onRender: function onRender() {
720 - var layoutType = this.model.get("label_block") ? "block" : "inline";
721 - var showLabel = this.model.get("show_label");
722 - var elClasses = "elementor-label-" + layoutType;
723 - elClasses += " elementor-control-separator-" + this.model.get("separator");
724 - if (!showLabel) elClasses += " elementor-control-hidden-label";
725 - this.$el.addClass(elClasses);
726 - this.toggleControlVisibility();
727 - },
728 - reRoute: function reRoute(controlActive) {
729 - $e.route($e.routes.getCurrent("panel"), this.getControlInRouteArgs(controlActive ? this.getControlPath() : ""), { history: false });
730 - },
731 - getControlInRouteArgs: function getControlInRouteArgs(path) {
732 - return _objectSpread(_objectSpread({}, $e.routes.getCurrentArgs("panel")), {}, { activeControl: path });
733 - },
734 - getControlPath: function getControlPath() {
735 - var controlPath = this.model.get("name");
736 - var parent = this._parent;
737 - while (!parent.$el.hasClass("elementor-controls-stack")) {
738 - controlPath = (parent.model.get("name") || parent.model.get("_id")) + "/" + controlPath;
739 - parent = parent._parent;
740 - }
741 - return controlPath;
742 - }
743 - });
744 - module.exports = ControlBaseView;
745 - }));
746 494
747 -//#endregion
748 -//#region assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js
749 - var require_tag_controls_stack_empty = /* @__PURE__ */ __commonJSMin(((exports, module) => {
750 - module.exports = Marionette.ItemView.extend({
751 - className: "elementor-tag-controls-stack-empty",
752 - template: "#tmpl-elementor-tag-controls-stack-empty"
753 - });
754 - }));
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 + }
755 524
756 -//#endregion
757 -//#region assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js
758 - var require_tag_controls_stack = /* @__PURE__ */ __commonJSMin(((exports, module) => {
759 - var EmptyView = require_tag_controls_stack_empty();
760 - module.exports = elementorModules.editor.views.ControlsStack.extend({
761 - activeTab: "content",
762 - template: _.noop,
763 - emptyView: EmptyView,
764 - isEmpty: function isEmpty() {
765 - return this.collection.length < 2;
766 - },
767 - childViewOptions: function childViewOptions() {
768 - return { container: this.options.container };
769 - },
770 - getNamespaceArray: function getNamespaceArray() {
771 - var currentPageView = elementor.getPanelView().getCurrentPageView();
772 - var eventNamespace = currentPageView.getNamespaceArray();
773 - eventNamespace.push(currentPageView.activeSection);
774 - eventNamespace.push(this.getOption("controlName"));
775 - eventNamespace.push(this.getOption("name"));
776 - return eventNamespace;
777 - },
778 - onRenderTemplate: function onRenderTemplate() {
779 - this.activateFirstSection();
780 - }
781 - });
782 - }));
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);
783 561
784 -//#endregion
785 -//#region assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js
786 - var require_tag_panel_view = /* @__PURE__ */ __commonJSMin(((exports, module) => {
787 - var TagControlsStack = require_tag_controls_stack();
788 - module.exports = Marionette.ItemView.extend({
789 - className: "elementor-dynamic-cover e-input-style",
790 - tagControlsStack: null,
791 - templateHelpers: function templateHelpers() {
792 - var helpers = {};
793 - if (this.model) helpers.controls = this.model.options.controls;
794 - return helpers;
795 - },
796 - ui: { remove: ".elementor-dynamic-cover__remove" },
797 - events: function events() {
798 - var events = { "click @ui.remove": "onRemoveClick" };
799 - if (this.hasSettings()) events.click = "onClick";
800 - return events;
801 - },
802 - getTemplate: function getTemplate() {
803 - var config = this.getTagConfig();
804 - var templateFunction = Marionette.TemplateCache.get("#tmpl-elementor-control-dynamic-cover");
805 - var renderedTemplate = Marionette.Renderer.render(templateFunction, {
806 - hasSettings: this.hasSettings(),
807 - isRemovable: !this.getOption("dynamicSettings").default,
808 - title: config.title,
809 - content: config.panel_template
810 - });
811 - return Marionette.TemplateCache.prototype.compileTemplate(renderedTemplate.trim());
812 - },
813 - getTagConfig: function getTagConfig() {
814 - return elementor.dynamicTags.getConfig("tags." + this.getOption("name"));
815 - },
816 - initSettingsPopup: function initSettingsPopup() {
817 - var settingsPopupOptions = {
818 - className: "elementor-tag-settings-popup",
819 - position: {
820 - my: "left top+5",
821 - at: "left bottom",
822 - of: this.$el,
823 - autoRefresh: true
824 - },
825 - hide: { ignore: ".select2-container" }
826 - };
827 - var settingsPopup = elementorCommon.dialogsManager.createWidget("buttons", settingsPopupOptions);
828 - this.getSettingsPopup = function() {
829 - return settingsPopup;
830 - };
831 - },
832 - hasSettings: function hasSettings() {
833 - return !!Object.values(this.getTagConfig().controls).length;
834 - },
835 - showSettingsPopup: function showSettingsPopup() {
836 - if (!this.tagControlsStack) this.initTagControlsStack();
837 - var settingsPopup = this.getSettingsPopup();
838 - if (settingsPopup.isVisible()) return;
839 - settingsPopup.show();
840 - },
841 - initTagControlsStack: function initTagControlsStack() {
842 - this.tagControlsStack = new TagControlsStack({
843 - model: this.model,
844 - controls: this.model.controls,
845 - name: this.options.name,
846 - controlName: this.options.controlName,
847 - container: this.options.container,
848 - el: this.getSettingsPopup().getElements("message")[0]
849 - });
850 - this.tagControlsStack.render();
851 - },
852 - initModel: function initModel() {
853 - this.model = new elementorModules.editor.elements.models.BaseSettings(this.getOption("settings"), { controls: this.getTagConfig().controls });
854 - },
855 - initialize: function initialize() {
856 - this.initModel();
857 - if (!this.hasSettings()) return;
858 - this.initSettingsPopup();
859 - this.listenTo(this.model, "change", this.render);
860 - },
861 - onClick: function onClick() {
862 - this.showSettingsPopup();
863 - },
864 - onRemoveClick: function onRemoveClick(event) {
865 - event.stopPropagation();
866 - this.destroy();
867 - this.trigger("remove");
868 - },
869 - onDestroy: function onDestroy() {
870 - if (this.hasSettings()) this.getSettingsPopup().destroy();
871 - if (this.tagControlsStack) this.tagControlsStack.destroy();
872 - }
873 - });
874 - }));
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();
875 576
876 -//#endregion
877 -//#region assets/dev/js/editor/components/dynamic-tags/control-behavior.js
878 - var require_control_behavior = /* @__PURE__ */ __commonJSMin(((exports, module) => {
879 - init_defineProperty();
880 - var TagPanelView = require_tag_panel_view();
881 - module.exports = Marionette.Behavior.extend({
882 - tagView: null,
883 - listenerAttached: false,
884 - initialize: function initialize() {
885 - if (!this.listenerAttached) {
886 - this.listenTo(this.view.options.container.settings, "change:external:__dynamic__", this.onAfterExternalChange);
887 - this.listenerAttached = true;
888 - }
889 - },
890 - shouldRenderTools: function shouldRenderTools() {
891 - if (this.getOption("dynamicSettings").default) return false;
892 - var isFeatureAvailableToUser = elementor.helpers.hasPro() && !elementor.helpers.hasProAndNotConnected();
893 - var hasTags = this.getOption("tags").length > 0;
894 - return !isFeatureAvailableToUser || hasTags;
895 - },
896 - renderTools: function renderTools() {
897 - var _this = this;
898 - if (!this.shouldRenderTools()) return;
899 - var $dynamicSwitcher = jQuery(Marionette.Renderer.render("#tmpl-elementor-control-dynamic-switcher"));
900 - $dynamicSwitcher.on("click", function(event) {
901 - return _this.onDynamicSwitcherClick(event);
902 - });
903 - this.$el.find(".elementor-control-dynamic-switcher-wrapper").append($dynamicSwitcher);
904 - this.ui.dynamicSwitcher = $dynamicSwitcher;
905 - if ("color" === this.view.model.get("type")) if (this.view.colorPicker) this.moveDynamicSwitcherToColorPicker();
906 - else setTimeout(function() {
907 - return _this.moveDynamicSwitcherToColorPicker();
908 - });
909 - this.ui.dynamicSwitcher.tipsy({
910 - title: function title() {
911 - return this.getAttribute("data-tooltip");
912 - },
913 - gravity: "s"
914 - });
915 - },
916 - moveDynamicSwitcherToColorPicker: function moveDynamicSwitcherToColorPicker() {
917 - var $colorPickerToolsContainer = this.view.colorPicker.$pickerToolsContainer;
918 - this.ui.dynamicSwitcher.removeClass("elementor-control-unit-1").addClass("e-control-tool");
919 - var $eyedropper = $colorPickerToolsContainer.find(".elementor-control-element-color-picker");
920 - if ($eyedropper.length) this.ui.dynamicSwitcher.insertBefore($eyedropper);
921 - else $colorPickerToolsContainer.append(this.ui.dynamicSwitcher);
922 - },
923 - toggleDynamicClass: function toggleDynamicClass() {
924 - this.$el.toggleClass("elementor-control-dynamic-value", this.isDynamicMode());
925 - },
926 - isDynamicMode: function isDynamicMode() {
927 - var dynamicSettings = this.view.container.settings.get("__dynamic__");
928 - return !!(dynamicSettings && dynamicSettings[this.view.model.get("name")]);
929 - },
930 - createTagsList: function createTagsList() {
931 - var tags = _.groupBy(this.getOption("tags"), "group");
932 - var groups = elementor.dynamicTags.getConfig("groups");
933 - var $tagsList = this.ui.tagsList = jQuery("<div>", { class: "elementor-tags-list" });
934 - var $tagsListInner = jQuery("<div>", { class: "elementor-tags-list__inner" });
935 - $tagsList.append($tagsListInner);
936 - jQuery.each(groups, function(groupName) {
937 - var groupTags = tags[groupName];
938 - if (!groupTags) return;
939 - var group = this;
940 - var $groupTitle = jQuery("<div>", { class: "elementor-tags-list__group-title" }).text(group.title);
941 - $tagsListInner.append($groupTitle);
942 - groupTags.forEach(function(tag) {
943 - var $tag = jQuery("<div>", { class: "elementor-tags-list__item" });
944 - $tag.text(tag.title).attr("data-tag-name", tag.name);
945 - $tagsListInner.append($tag);
946 - });
947 - });
948 - if (!elementor.helpers.hasPro() && Object.keys(tags).length) {
949 - var proTeaser = Marionette.Renderer.render("#tmpl-elementor-dynamic-tags-promo", { promotionUrl: elementor.config.dynamicPromotionURL.replace("%s", this.view.model.get("name")) });
950 - $tagsListInner.append(proTeaser);
951 - }
952 - $tagsListInner.on("click", ".elementor-tags-list__item", this.onTagsListItemClick.bind(this));
953 - elementorCommon.elements.$body.append($tagsList);
954 - },
955 - getTagsList: function getTagsList() {
956 - if (!this.ui.tagsList) this.createTagsList();
957 - return this.ui.tagsList;
958 - },
959 - toggleTagsList: function toggleTagsList() {
960 - var $tagsList = this.getTagsList();
961 - if ($tagsList.is(":visible")) {
962 - $tagsList.hide();
963 - return;
964 - }
965 - var direction = elementorCommon.config.isRTL ? "left" : "right";
966 - $tagsList.show().position({
967 - my: "".concat(direction, " top"),
968 - at: "".concat(direction, " bottom+5"),
969 - of: this.ui.dynamicSwitcher
970 - });
971 - },
972 - setTagView: function setTagView(id, name, settings) {
973 - if (this.tagView) this.tagView.destroy();
974 - var tagView = this.tagView = new TagPanelView({
975 - id,
976 - name,
977 - settings,
978 - controlName: this.view.model.get("name"),
979 - dynamicSettings: this.getOption("dynamicSettings")
980 - });
981 - var elementContainer = this.view.options.container;
982 - var tagViewLabel = elementContainer.controls[tagView.options.controlName].label;
983 - tagView.options.container = new elementorModules.editor.Container({
984 - type: "dynamic",
985 - id,
986 - model: tagView.model,
987 - settings: tagView.model,
988 - view: tagView,
989 - parent: elementContainer,
990 - label: elementContainer.label + " " + tagViewLabel,
991 - controls: tagView.model.options.controls,
992 - renderer: elementContainer
993 - });
994 - tagView.render();
995 - this.$el.find(".elementor-control-tag-area").after(tagView.el);
996 - this.listenTo(tagView, "remove", this.onTagViewRemove.bind(this));
997 - },
998 - setDefaultTagView: function setDefaultTagView() {
999 - var tagData = elementor.dynamicTags.tagTextToTagData(this.getDynamicValue());
1000 - this.setTagView(tagData.id, tagData.name, tagData.settings);
1001 - },
1002 - tagViewToTagText: function tagViewToTagText() {
1003 - var tagView = this.tagView;
1004 - return elementor.dynamicTags.tagDataToTagText(tagView.getOption("id"), tagView.getOption("name"), tagView.model);
1005 - },
1006 - getDynamicValue: function getDynamicValue() {
1007 - return this.view.container.dynamic.get(this.view.model.get("name"));
1008 - },
1009 - destroyTagView: function destroyTagView() {
1010 - if (this.tagView) {
1011 - this.tagView.destroy();
1012 - this.tagView = null;
1013 - }
1014 - },
1015 - showPromotion: function showPromotion() {
1016 - var hasProAndNotConnected = elementor.helpers.hasProAndNotConnected();
1017 - var dialogOptions = {
1018 - title: (0, _wordpress_i18n.__)("Dynamic Content", "elementor"),
1019 - content: (0, _wordpress_i18n.__)("Create more personalized and dynamic sites by populating data from various sources with dozens of dynamic tags to choose from.", "elementor"),
1020 - targetElement: this.ui.dynamicSwitcher,
1021 - position: { blockStart: "-10" },
1022 - actionButton: {
1023 - url: hasProAndNotConnected ? elementorProEditorConfig.urls.connect : elementor.config.dynamicPromotionURL.replace("%s", this.view.model.get("name")),
1024 - text: hasProAndNotConnected ? (0, _wordpress_i18n.__)("Connect & Activate", "elementor") : (0, _wordpress_i18n.__)("Upgrade", "elementor")
1025 - }
1026 - };
1027 - elementor.promotion.showDialog(dialogOptions);
1028 - },
1029 - onRender: function onRender() {
1030 - this.$el.addClass("elementor-control-dynamic");
1031 - this.renderTools();
1032 - this.toggleDynamicClass();
1033 - if (this.isDynamicMode()) this.setDefaultTagView();
1034 - },
1035 - onDynamicSwitcherClick: function onDynamicSwitcherClick(event) {
1036 - event.stopPropagation();
1037 - if (this.getOption("tags").length) this.toggleTagsList();
1038 - else this.showPromotion();
1039 - },
1040 - onTagsListItemClick: function onTagsListItemClick(event) {
1041 - var $tag = jQuery(event.currentTarget);
1042 - this.setTagView(elementorCommon.helpers.getUniqueId(), $tag.data("tagName"), {});
1043 - if (this.view.getGlobalKey()) this.view.triggerMethod("unset:global:value");
1044 - if (this.isDynamicMode()) $e.run("document/dynamic/settings", {
1045 - container: this.view.options.container,
1046 - settings: _defineProperty({}, this.view.model.get("name"), this.tagViewToTagText())
1047 - });
1048 - else $e.run("document/dynamic/enable", {
1049 - container: this.view.options.container,
1050 - settings: _defineProperty({}, this.view.model.get("name"), this.tagViewToTagText())
1051 - });
1052 - this.toggleDynamicClass();
1053 - this.toggleTagsList();
1054 - if (this.tagView.getTagConfig().settings_required) this.tagView.showSettingsPopup();
1055 - },
1056 - onTagViewRemove: function onTagViewRemove() {
1057 - $e.run("document/dynamic/disable", {
1058 - container: this.view.options.container,
1059 - settings: _defineProperty({}, this.view.model.get("name"), this.tagViewToTagText())
1060 - });
1061 - this.toggleDynamicClass();
1062 - },
1063 - onAfterExternalChange: function onAfterExternalChange() {
1064 - this.destroyTagView();
1065 - if (this.isDynamicMode()) this.setDefaultTagView();
1066 - this.toggleDynamicClass();
1067 - },
1068 - onDestroy: function onDestroy() {
1069 - this.destroyTagView();
1070 - if (this.ui.tagsList) this.ui.tagsList.remove();
1071 - }
1072 - });
1073 - }));
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 + }
1074 581
1075 -//#endregion
1076 -//#region assets/dev/js/editor/controls/base-data.js
1077 - var require_base_data = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1078 - init_slicedToArray();
1079 - init_defineProperty();
1080 - init_breakpoint();
1081 - function _createForOfIteratorHelper(r, e) {
1082 - var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
1083 - if (!t) {
1084 - if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
1085 - t && (r = t);
1086 - var _n = 0;
1087 - var F = function F() {};
1088 - return {
1089 - s: F,
1090 - n: function n() {
1091 - return _n >= r.length ? { done: !0 } : {
1092 - done: !1,
1093 - value: r[_n++]
1094 - };
1095 - },
1096 - e: function e(r) {
1097 - throw r;
1098 - },
1099 - f: F
1100 - };
1101 - }
1102 - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1103 - }
1104 - var o;
1105 - var a = !0;
1106 - var u = !1;
1107 - return {
1108 - s: function s() {
1109 - t = t.call(r);
1110 - },
1111 - n: function n() {
1112 - var r = t.next();
1113 - return a = r.done, r;
1114 - },
1115 - e: function e(r) {
1116 - u = !0, o = r;
1117 - },
1118 - f: function f() {
1119 - try {
1120 - a || null == t.return || t.return();
1121 - } finally {
1122 - if (u) throw o;
1123 - }
1124 - }
1125 - };
1126 - }
1127 - function _unsupportedIterableToArray(r, a) {
1128 - if (r) {
1129 - if ("string" == typeof r) return _arrayLikeToArray(r, a);
1130 - var t = {}.toString.call(r).slice(8, -1);
1131 - 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;
1132 - }
1133 - }
1134 - function _arrayLikeToArray(r, a) {
1135 - (null == a || a > r.length) && (a = r.length);
1136 - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
1137 - return n;
1138 - }
1139 - var ControlBaseView = require_base();
1140 - var TagsBehavior = require_control_behavior();
1141 - var Validator = require_base$1();
1142 - var NumberValidator = require_number();
1143 - var ControlBaseDataView = ControlBaseView.extend({
1144 - validatorTypes: {
1145 - Base: Validator,
1146 - Number: NumberValidator,
1147 - Breakpoint: BreakpointValidator
1148 - },
1149 - ui: function ui() {
1150 - var ui = ControlBaseView.prototype.ui.apply(this, arguments);
1151 - _.extend(ui, {
1152 - input: "input[data-setting][type!=\"checkbox\"][type!=\"radio\"]",
1153 - checkbox: "input[data-setting][type=\"checkbox\"]",
1154 - radio: "input[data-setting][type=\"radio\"]",
1155 - select: "select[data-setting]",
1156 - textarea: "textarea[data-setting]",
1157 - responsiveSwitchersSibling: "".concat(ui.controlTitle, "[data-e-responsive-switcher-sibling!=\"false\"]"),
1158 - responsiveSwitchers: ".elementor-responsive-switcher",
1159 - contentEditable: "[contenteditable=\"true\"]"
1160 - });
1161 - return ui;
1162 - },
1163 - templateHelpers: function templateHelpers() {
1164 - var controlData = ControlBaseView.prototype.templateHelpers.apply(this, arguments);
1165 - controlData.data.controlValue = this.getControlValue();
1166 - return controlData;
1167 - },
1168 - events: function events() {
1169 - return {
1170 - "input @ui.input": "onBaseInputTextChange",
1171 - "change @ui.checkbox": "onBaseInputChange",
1172 - "change @ui.radio": "onBaseInputChange",
1173 - "input @ui.textarea": "onBaseInputTextChange",
1174 - "change @ui.select": "onBaseInputChange",
1175 - "input @ui.contentEditable": "onBaseInputTextChange",
1176 - "click @ui.responsiveSwitchers": "onResponsiveSwitchersClick"
1177 - };
1178 - },
1179 - behaviors: function behaviors() {
1180 - var behaviors = ControlBaseView.prototype.behaviors.apply(this, arguments);
1181 - var dynamicSettings = this.options.model.get("dynamic");
1182 - if (dynamicSettings && dynamicSettings.active) {
1183 - var tags = _.filter(elementor.dynamicTags.getConfig("tags"), function(tag) {
1184 - return tag.editable && _.intersection(tag.categories, dynamicSettings.categories).length;
1185 - });
1186 - if (tags.length || elementor.config.user.is_administrator) behaviors.tags = {
1187 - behaviorClass: TagsBehavior,
1188 - tags,
1189 - dynamicSettings
1190 - };
1191 - }
1192 - return behaviors;
1193 - },
1194 - initialize: function initialize() {
1195 - ControlBaseView.prototype.initialize.apply(this, arguments);
1196 - this.registerValidators();
1197 - if (this.model.get("responsive")) this.setPlaceholderFromParent();
1198 - if (void 0 === this.model.get("inherit_placeholders")) this.model.set("inherit_placeholders", true);
1199 - var settings = this.container ? this.container.settings : this.elementSettingsModel;
1200 - this.listenTo(settings, "change:external:" + this.model.get("name"), this.onAfterExternalChange);
1201 - },
1202 - getControlValue: function getControlValue() {
1203 - return this.container.settings.get(this.model.get("name"));
1204 - },
1205 - getGlobalKey: function getGlobalKey() {
1206 - return this.container.globals.get(this.model.get("name"));
1207 - },
1208 - getGlobalValue: function getGlobalValue() {
1209 - return this.globalValue;
1210 - },
1211 - getGlobalDefault: function getGlobalDefault() {
1212 - var controlGlobalArgs = this.model.get("global");
1213 - if (controlGlobalArgs !== null && controlGlobalArgs !== void 0 && controlGlobalArgs.default) {
1214 - if (!elementor.config.globals.defaults_enabled[this.getGlobalMeta().controlType]) return "";
1215 - var _$e$data$commandExtra = $e.data.commandExtractArgs(controlGlobalArgs.default);
1216 - var command = _$e$data$commandExtra.command;
1217 - var args = _$e$data$commandExtra.args;
1218 - var result = $e.data.getCache($e.components.get("globals"), command, args.query);
1219 - return result === null || result === void 0 ? void 0 : result.value;
1220 - }
1221 - return "";
1222 - },
1223 - getCurrentValue: function getCurrentValue() {
1224 - if (this.getGlobalKey() && !this.globalValue) return "";
1225 - if (this.globalValue) return this.globalValue;
1226 - var controlValue = this.getControlValue();
1227 - if (controlValue) return controlValue;
1228 - return this.getGlobalDefault();
1229 - },
1230 - isGlobalActive: function isGlobalActive() {
1231 - var _this$options$model$g;
1232 - return (_this$options$model$g = this.options.model.get("global")) === null || _this$options$model$g === void 0 ? void 0 : _this$options$model$g.active;
1233 - },
1234 - setValue: function setValue(value) {
1235 - this.setSettingsModel(value);
1236 - },
1237 - setSettingsModel: function setSettingsModel(value) {
1238 - var key = this.model.get("name");
1239 - $e.run("document/elements/settings", {
1240 - container: this.options.container,
1241 - settings: _defineProperty({}, key, value)
1242 - });
1243 - this.triggerMethod("settings:change");
1244 - },
1245 - applySavedValue: function applySavedValue() {
1246 - this.setInputValue("[data-setting=\"" + this.model.get("name") + "\"]", this.getControlValue());
1247 - },
1248 - getEditSettings: function getEditSettings(setting) {
1249 - var settings = this.getOption("elementEditSettings").toJSON();
1250 - if (setting) return settings[setting];
1251 - return settings;
1252 - },
1253 - setEditSetting: function setEditSetting(settingKey, settingValue) {
1254 - (this.getOption("elementEditSettings") || this.getOption("container").settings).set(settingKey, settingValue);
1255 - },
1256 - /**
1257 - * Get the placeholder for the current control.
1258 - *
1259 - * @return {*} placeholder
1260 - */
1261 - getControlPlaceholder: function getControlPlaceholder() {
1262 - var placeholder = this.model.get("placeholder");
1263 - if (this.model.get("responsive") && this.model.get("inherit_placeholders")) placeholder = placeholder || this.container.placeholders[this.model.get("name")];
1264 - return placeholder;
1265 - },
1266 - /**
1267 - * Get the responsive parent view if exists.
1268 - *
1269 - * @return {ControlBaseDataView|undefined} responsive parent view if exists
1270 - */
1271 - getResponsiveParentView: function getResponsiveParentView() {
1272 - var parent = this.model.get("parent");
1273 - try {
1274 - return parent && this.container.panel.getControlView(parent);
1275 - } catch (e) {}
1276 - },
1277 - /**
1278 - * Get the responsive children views if exists.
1279 - *
1280 - * @return {ControlBaseDataView|null} responsive children views if exists
1281 - */
1282 - getResponsiveChildrenViews: function getResponsiveChildrenViews() {
1283 - var children = this.model.get("inheritors");
1284 - var views = [];
1285 - try {
1286 - var _iterator = _createForOfIteratorHelper(children);
1287 - var _step;
1288 - try {
1289 - for (_iterator.s(); !(_step = _iterator.n()).done;) {
1290 - var child = _step.value;
1291 - views.push(this.container.panel.getControlView(child));
1292 - }
1293 - } catch (err) {
1294 - _iterator.e(err);
1295 - } finally {
1296 - _iterator.f();
1297 - }
1298 - } catch (e) {}
1299 - return views;
1300 - },
1301 - /**
1302 - * Get prepared placeholder from the responsive parent, and put it into current
1303 - * control model as placeholder.
1304 - */
1305 - setPlaceholderFromParent: function setPlaceholderFromParent() {
1306 - var parent = this.getResponsiveParentView();
1307 - if (parent) this.container.placeholders[this.model.get("name")] = parent.preparePlaceholderForChildren();
1308 - },
1309 - /**
1310 - * Returns the value of the current control if exists, or the parent value if not,
1311 - * so responsive children can set it as their placeholder. When there are multiple
1312 - * inputs, the inputs which are empty on this control will inherit their values
1313 - * from the responsive parent.
1314 - * For example, if on desktop the padding of all edges is 10, and on tablet only
1315 - * padding right and left is set to 15, the mobile control placeholder will
1316 - * eventually be: { top: 10, right: 15, left: 15, bottom: 10 }, because of the
1317 - * inheritance of multiple values.
1318 - *
1319 - * @return {*} value of the current control if exists, or the parent value if not
1320 - */
1321 - preparePlaceholderForChildren: function preparePlaceholderForChildren() {
1322 - var _this$getResponsivePa;
1323 - var cleanValue = this.getCleanControlValue();
1324 - var parentValue = (_this$getResponsivePa = this.getResponsiveParentView()) === null || _this$getResponsivePa === void 0 ? void 0 : _this$getResponsivePa.preparePlaceholderForChildren();
1325 - if (cleanValue instanceof Object) return Object.assign({}, parentValue, cleanValue);
1326 - return cleanValue || parentValue;
1327 - },
1328 - /**
1329 - * Start the re-rendering recursive chain from the responsive child of this
1330 - * control. It's useful when the current control value is changed and we want
1331 - * to update all responsive children. In this case, the re-rendering is supposed
1332 - * to be applied only from the responsive child of this control and on.
1333 - */
1334 - propagatePlaceholder: function propagatePlaceholder() {
1335 - var _iterator2 = _createForOfIteratorHelper(this.getResponsiveChildrenViews());
1336 - var _step2;
1337 - try {
1338 - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) _step2.value.renderWithChildren();
1339 - } catch (err) {
1340 - _iterator2.e(err);
1341 - } finally {
1342 - _iterator2.f();
1343 - }
1344 - },
1345 - /**
1346 - * Re-render current control and trigger this method on the responsive child.
1347 - * The purpose of those actions is to recursively re-render all responsive
1348 - * children.
1349 - */
1350 - renderWithChildren: function renderWithChildren() {
1351 - this.render();
1352 - this.propagatePlaceholder();
1353 - },
1354 - /**
1355 - * Get control value without empty properties, and without default values.
1356 - *
1357 - * @return {{}} control value without empty properties, and without default values
1358 - */
1359 - getCleanControlValue: function getCleanControlValue() {
1360 - var value = this.getControlValue();
1361 - return value && value !== this.model.get("default") ? value : void 0;
1362 - },
1363 - onAfterChange: function onAfterChange(control) {
1364 - if (Object.keys(control.changed).includes(this.model.get("name"))) this.propagatePlaceholder();
1365 - ControlBaseView.prototype.onAfterChange.apply(this, arguments);
1366 - },
1367 - getInputValue: function getInputValue(input) {
1368 - var $input = this.$(input);
1369 - if ($input.is("[contenteditable=\"true\"]")) return $input.html();
1370 - var inputValue = $input.val();
1371 - var inputType = $input.attr("type");
1372 - if (-1 !== ["radio", "checkbox"].indexOf(inputType)) return $input.prop("checked") ? inputValue : "";
1373 - if ("number" === inputType && _.isFinite(inputValue)) return +inputValue;
1374 - if ("SELECT" === input.tagName && $input.prop("multiple") && null === inputValue) inputValue = [];
1375 - return inputValue;
1376 - },
1377 - setInputValue: function setInputValue(input, value) {
1378 - var $input = this.$(input);
1379 - var inputType = $input.attr("type");
1380 - if ("checkbox" === inputType) $input.prop("checked", !!value);
1381 - else if ("radio" === inputType) $input.filter("[value=\"" + value + "\"]").prop("checked", true);
1382 - else $input.val(value);
1383 - },
1384 - addValidator: function addValidator(validator) {
1385 - this.validators.push(validator);
1386 - },
1387 - registerValidators: function registerValidators() {
1388 - var _this = this;
1389 - this.validators = [];
1390 - var validationTerms = {};
1391 - if (this.model.get("required")) validationTerms.required = true;
1392 - if (!jQuery.isEmptyObject(validationTerms)) this.addValidator(new this.validatorTypes.Base({ validationTerms }));
1393 - var validators = this.model.get("validators");
1394 - if (validators) Object.entries(validators).forEach(function(_ref) {
1395 - var _ref2 = _slicedToArray(_ref, 2);
1396 - var key = _ref2[0];
1397 - var args = _ref2[1];
1398 - _this.addValidator(new _this.validatorTypes[key]({ validationTerms: args }));
1399 - });
1400 - },
1401 - onBeforeRender: function onBeforeRender() {
1402 - this.setPlaceholderFromParent();
1403 - },
1404 - onRender: function onRender() {
1405 - ControlBaseView.prototype.onRender.apply(this, arguments);
1406 - if (this.model.get("responsive")) this.renderResponsiveSwitchers();
1407 - this.applySavedValue();
1408 - this.triggerMethod("ready");
1409 - this.toggleControlVisibility();
1410 - this.addTooltip();
1411 - },
1412 - onBaseInputTextChange: function onBaseInputTextChange(event) {
1413 - this.onBaseInputChange(event);
1414 - },
1415 - onBaseInputChange: function onBaseInputChange(event) {
1416 - clearTimeout(this.correctionTimeout);
1417 - var input = event.currentTarget;
1418 - var value = this.getInputValue(input);
1419 - var validators = this.validators.slice(0);
1420 - var settingsValidators = this.container.settings.validators[this.model.get("name")];
1421 - if (settingsValidators) validators = validators.concat(settingsValidators);
1422 - if (validators) {
1423 - var oldValue = this.getControlValue(input.dataset.setting);
1424 - if (!validators.every(function(validator) {
1425 - return validator.isValid(value, oldValue);
1426 - })) {
1427 - this.correctionTimeout = setTimeout(this.setInputValue.bind(this, input, oldValue), 1200);
1428 - return;
1429 - }
1430 - }
1431 - this.updateElementModel(value, input);
1432 - this.triggerMethod("input:change", event);
1433 - },
1434 - onResponsiveSwitchersClick: function onResponsiveSwitchersClick(event) {
1435 - var $switcher = jQuery(event.currentTarget);
1436 - var device = $switcher.data("device");
1437 - var $switchersWrapper = this.ui.responsiveSwitchersWrapper;
1438 - var selectedOption = $switcher.index();
1439 - $switchersWrapper.toggleClass("elementor-responsive-switchers-open");
1440 - $switchersWrapper[0].style.setProperty("--selected-option", selectedOption);
1441 - this.triggerMethod("responsive:switcher:click", device);
1442 - elementor.changeDeviceMode(device);
1443 - },
1444 - renderResponsiveSwitchers: function renderResponsiveSwitchers() {
1445 - var templateHtml = Marionette.Renderer.render("#tmpl-elementor-control-responsive-switchers", this.model.attributes);
1446 - this.ui.responsiveSwitchersSibling.after(templateHtml);
1447 - this.ui.responsiveSwitchersWrapper = this.$el.find(".elementor-control-responsive-switchers");
1448 - },
1449 - onAfterExternalChange: function onAfterExternalChange() {
1450 - this.hideTooltip();
1451 - this.applySavedValue();
1452 - },
1453 - addTooltip: function addTooltip() {
1454 - this.ui.tooltipTargets = this.$el.find(".tooltip-target");
1455 - if (!this.ui.tooltipTargets.length) return;
1456 - this.ui.tooltipTargets.tipsy({
1457 - gravity: function gravity() {
1458 - var gravity = jQuery(this).data("tooltip-pos");
1459 - if (void 0 !== gravity) return gravity;
1460 - return "s";
1461 - },
1462 - title: function title() {
1463 - return this.getAttribute("data-tooltip");
1464 - }
1465 - });
1466 - },
1467 - hideTooltip: function hideTooltip() {
1468 - if (this.ui.tooltipTargets.length) this.ui.tooltipTargets.tipsy("hide");
1469 - },
1470 - updateElementModel: function updateElementModel(value) {
1471 - this.setValue(value);
1472 - }
1473 - }, {
1474 - getStyleValue: function getStyleValue(placeholder, controlValue, controlData) {
1475 - if ("DEFAULT" === placeholder) return controlData.default;
1476 - return controlValue;
1477 - },
1478 - onPasteStyle: function onPasteStyle() {
1479 - return true;
1480 - }
1481 - });
1482 - module.exports = ControlBaseDataView;
1483 - }));
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 + }
1484 588
1485 -//#endregion
1486 -//#region assets/dev/js/editor/controls/switcher.js
1487 - var require_switcher = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1488 - var ControlBaseDataView = require_base_data();
1489 - module.exports = ControlBaseDataView.extend({ setInputValue: function setInputValue(input, value) {
1490 - this.$(input).prop("checked", this.model.get("return_value") === value);
1491 - } }, { onPasteStyle: function onPasteStyle(control, clipboardValue) {
1492 - return !clipboardValue || clipboardValue === control.return_value;
1493 - } });
1494 - }));
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 + }
1495 594
1496 -//#endregion
1497 -//#region modules/styleguide/assets/js/controls/switcher.js
1498 - init_classCallCheck();
1499 - init_createClass();
1500 - init_possibleConstructorReturn();
1501 - init_getPrototypeOf();
1502 - init_inherits();
1503 - var import_switcher = /* @__PURE__ */ __toESM(require_switcher());
1504 - var import_base_data = /* @__PURE__ */ __toESM(require_base_data());
1505 - function _callSuper$2(t, o, e) {
1506 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$2() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
1507 - }
1508 - __name(_callSuper$2, "_callSuper");
1509 - function _isNativeReflectConstruct$2() {
1510 - try {
1511 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
1512 - } catch (t) {}
1513 - return (_isNativeReflectConstruct$2 = function _isNativeReflectConstruct() {
1514 - return !!t;
1515 - })();
1516 - }
1517 - __name(_isNativeReflectConstruct$2, "_isNativeReflectConstruct");
1518 - function _superPropGet(t, o, e, r) {
1519 - var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e);
1520 - return 2 & r && "function" == typeof p ? function(t) {
1521 - return p.apply(e, t);
1522 - } : p;
1523 - }
1524 - var _default$1 = /*#__PURE__*/ function(_Switcher) {
1525 - function _default() {
1526 - _classCallCheck(this, _default);
1527 - return _callSuper$2(this, _default, arguments);
1528 - }
1529 - _inherits(_default, _Switcher);
1530 - return _createClass(_default, [
1531 - {
1532 - key: "initialize",
1533 - value: function initialize() {
1534 - import_base_data.default.prototype.initialize.apply(this, arguments);
1535 - this.$el.addClass("elementor-control-type-switcher");
1536 - }
1537 - },
1538 - {
1539 - key: "onBeforeRender",
1540 - value: function onBeforeRender() {
1541 - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
1542 - _superPropGet(_default, "onBeforeRender", this, 3)(args);
1543 - var actualValue = elementor.getPreferences("enable_styleguide_preview");
1544 - if (actualValue !== this.getCurrentValue()) this.setValue(actualValue);
1545 - }
1546 - },
1547 - {
1548 - key: "onBaseInputChange",
1549 - value: function onBaseInputChange(event) {
1550 - import_base_data.default.prototype.onBaseInputChange.apply(this, arguments);
1551 - var input = event.currentTarget;
1552 - var value = this.getInputValue(input);
1553 - if (this.model.get("on_change_command")) this.runCommand(value);
1554 - this.model.set("return_value", null);
1555 - }
1556 - },
1557 - {
1558 - key: "runCommand",
1559 - value: function runCommand(value) {
1560 - $e.run("preview/styleguide/switcher-change", {
1561 - name: this.model.get("name"),
1562 - value
1563 - });
1564 - }
1565 - }
1566 - ]);
1567 - }(import_switcher.default);
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 + }
1568 601
1569 -//#endregion
1570 -//#region modules/styleguide/assets/js/e-component.js
1571 - init_classCallCheck();
1572 - init_createClass();
1573 - init_possibleConstructorReturn();
1574 - init_getPrototypeOf();
1575 - init_inherits();
1576 - function _callSuper$1(t, o, e) {
1577 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$1() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
1578 - }
1579 - __name(_callSuper$1, "_callSuper");
1580 - function _isNativeReflectConstruct$1() {
1581 - try {
1582 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
1583 - } catch (t) {}
1584 - return (_isNativeReflectConstruct$1 = function _isNativeReflectConstruct() {
1585 - return !!t;
1586 - })();
1587 - }
1588 - __name(_isNativeReflectConstruct$1, "_isNativeReflectConstruct");
1589 - var _default = /*#__PURE__*/ function(_$e$modules$Component) {
1590 - function _default(args) {
1591 - var _this;
1592 - _classCallCheck(this, _default);
1593 - _this = _callSuper$1(this, _default, [args]);
1594 - elementor.addControlView("global-style-switcher", _default$1);
1595 - _this.registerStyleguideDialogType();
1596 - elementor.once("preview:loaded", function() {
1597 - _this.initModal();
1598 - });
1599 - return _this;
1600 - }
1601 - _inherits(_default, _$e$modules$Component);
1602 - return _createClass(_default, [
1603 - {
1604 - key: "getNamespace",
1605 - value: function getNamespace() {
1606 - return "preview/styleguide";
1607 - }
1608 - },
1609 - {
1610 - key: "defaultCommands",
1611 - value: function defaultCommands() {
1612 - return this.importCommands(commands_exports);
1613 - }
1614 - },
1615 - {
1616 - key: "registerStyleguideDialogType",
1617 - value: function registerStyleguideDialogType() {
1618 - DialogsManager.addWidgetType("styleguide", DialogsManager.getWidgetType("lightbox").extend("alert", { buildWidget: function buildWidget() {
1619 - DialogsManager.getWidgetType("lightbox").prototype.buildWidget.apply(this, arguments);
1620 - var $widgetContent = this.addElement("widgetContent");
1621 - var elements = this.getElements();
1622 - $widgetContent.append(elements.message);
1623 - elements.widget.html($widgetContent);
1624 - } }));
1625 - }
1626 - },
1627 - {
1628 - key: "initModal",
1629 - value: function initModal() {
1630 - var modal;
1631 - this.getModal = function() {
1632 - if (modal) return modal;
1633 - modal = elementorCommon.dialogsManager.createWidget("styleguide", {
1634 - id: "e-styleguide-preview-dialog",
1635 - message: "<div class=\"e-styleguide-preview-root\"></div>",
1636 - position: {
1637 - my: "center center",
1638 - at: "center center"
1639 - },
1640 - hide: {
1641 - onOutsideClick: false,
1642 - onEscKeyPress: false,
1643 - onClick: false,
1644 - onBackgroundClick: false
1645 - },
1646 - container: elementor.$previewContents.find("body")
1647 - });
1648 - return modal;
1649 - };
1650 - }
1651 - },
1652 - {
1653 - key: "showStyleguidePreview",
1654 - value: function showStyleguidePreview() {
1655 - var skipPreferencesCheck = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
1656 - if (this.getModal().isVisible() || !skipPreferencesCheck && !elementor.getPreferences("enable_styleguide_preview")) return;
1657 - this.getPreviewFrame().postMessage({ name: "elementor/styleguide/preview/show" }, "*");
1658 - this.getModal().show();
1659 - }
1660 - },
1661 - {
1662 - key: "hideStyleguidePreview",
1663 - value: function hideStyleguidePreview() {
1664 - this.getPreviewFrame().postMessage({ name: "elementor/styleguide/preview/hide" }, "*");
1665 - this.getModal().hide();
1666 - }
1667 - },
1668 - {
1669 - key: "enableStyleguidePreview",
1670 - value: function enableStyleguidePreview(options) {
1671 - if (options.value) this.showStyleguidePreview(true);
1672 - else this.hideStyleguidePreview();
1673 - $e.run("document/elements/settings", {
1674 - container: elementor.settings.editorPreferences.getEditedView().getContainer(),
1675 - settings: { enable_styleguide_preview: options.value },
1676 - options: { external: true }
1677 - });
1678 - }
1679 - },
1680 - {
1681 - key: "isInEditor",
1682 - value: function isInEditor() {
1683 - return !!window.elementor;
1684 - }
1685 - },
1686 - {
1687 - key: "getPreviewFrame",
1688 - value: function getPreviewFrame() {
1689 - return this.isInEditor() ? elementor.$preview[0].contentWindow : window;
1690 - }
1691 - }
1692 - ]);
1693 - }($e.modules.ComponentBase);
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);
1694 611
1695 -//#endregion
1696 -//#region modules/styleguide/assets/js/styleguide.js
1697 - init_classCallCheck();
1698 - init_createClass();
1699 - init_possibleConstructorReturn();
1700 - init_getPrototypeOf();
1701 - init_inherits();
1702 - function _callSuper(t, o, e) {
1703 - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
1704 - }
1705 - function _isNativeReflectConstruct() {
1706 - try {
1707 - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
1708 - } catch (t) {}
1709 - return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
1710 - return !!t;
1711 - })();
1712 - }
1713 - new (/* @__PURE__ */ function(_elementorModules$edi) {
1714 - function Styleguide() {
1715 - _classCallCheck(this, Styleguide);
1716 - return _callSuper(this, Styleguide, arguments);
1717 - }
1718 - _inherits(Styleguide, _elementorModules$edi);
1719 - return _createClass(Styleguide, [
1720 - {
1721 - key: "onInit",
1722 - value: function onInit() {
1723 - $e.components.register(new _default());
1724 - this.addHooks();
1725 - }
1726 - },
1727 - {
1728 - key: "getGlobalRoutes",
1729 - value: function getGlobalRoutes() {
1730 - return {
1731 - "global-colors": "panel/global/global-colors",
1732 - "global-typography": "panel/global/global-typography"
1733 - };
1734 - }
1735 - },
1736 - {
1737 - key: "addHooks",
1738 - value: function addHooks() {
1739 - elementor.hooks.addAction("panel/global/tab/before-show", this.show.bind(this));
1740 - elementor.hooks.addAction("panel/global/tab/before-destroy", this.hide.bind(this));
1741 - }
1742 - },
1743 - {
1744 - key: "show",
1745 - value: function show(args) {
1746 - if (!args.id || !(args.id in this.getGlobalRoutes())) return;
1747 - $e.run("preview/styleguide/".concat(args.id));
1748 - }
1749 - },
1750 - {
1751 - key: "hide",
1752 - value: function hide(args) {
1753 - if (!args.id || !(args.id in this.getGlobalRoutes())) return;
1754 - if (Object.values(this.getGlobalRoutes()).some(function(route) {
1755 - return $e.routes.current.panel === route;
1756 - })) return;
1757 - $e.run("preview/styleguide/hide");
1758 - }
1759 - }
1760 - ]);
1761 - }(elementorModules.editor.utils.Module))();
612 +/***/ }),
1762 613
1763 -//#endregion
1764 -})(wp.i18n);
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 +;
1765 2240 //# sourceMappingURL=styleguide.js.map