Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/elementor/assets/js/e-react-promotions.js
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
/******/ (() => { // webpackBootstrap
2
+
/******/ var __webpack_modules__ = ({
3
+
4
+
/***/ "../assets/dev/js/editor/components/dynamic-tags/control-behavior.js":
5
+
/*!***************************************************************************!*\
6
+
!*** ../assets/dev/js/editor/components/dynamic-tags/control-behavior.js ***!
7
+
\***************************************************************************/
8
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9
+
10
+
"use strict";
11
+
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
12
+
13
+
14
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
15
+
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
16
+
var TagPanelView = __webpack_require__(/*! elementor-dynamic-tags/tag-panel-view */ "../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js");
17
+
module.exports = Marionette.Behavior.extend({
18
+
tagView: null,
19
+
listenerAttached: false,
20
+
initialize: function initialize() {
21
+
if (!this.listenerAttached) {
22
+
this.listenTo(this.view.options.container.settings, 'change:external:__dynamic__', this.onAfterExternalChange);
23
+
this.listenerAttached = true;
24
+
}
25
+
},
26
+
shouldRenderTools: function shouldRenderTools() {
27
+
var hasDefault = this.getOption('dynamicSettings').default;
28
+
if (hasDefault) {
29
+
return false;
30
+
}
31
+
var isFeatureAvailableToUser = elementor.helpers.hasPro() && !elementor.helpers.hasProAndNotConnected(),
32
+
hasTags = this.getOption('tags').length > 0;
33
+
return !isFeatureAvailableToUser || hasTags;
34
+
},
35
+
renderTools: function renderTools() {
36
+
var _this = this;
37
+
if (!this.shouldRenderTools()) {
38
+
return;
39
+
}
40
+
var $dynamicSwitcher = jQuery(Marionette.Renderer.render('#tmpl-elementor-control-dynamic-switcher'));
41
+
$dynamicSwitcher.on('click', function (event) {
42
+
return _this.onDynamicSwitcherClick(event);
43
+
});
44
+
this.$el.find('.elementor-control-dynamic-switcher-wrapper').append($dynamicSwitcher);
45
+
this.ui.dynamicSwitcher = $dynamicSwitcher;
46
+
if ('color' === this.view.model.get('type')) {
47
+
if (this.view.colorPicker) {
48
+
this.moveDynamicSwitcherToColorPicker();
49
+
} else {
50
+
setTimeout(function () {
51
+
return _this.moveDynamicSwitcherToColorPicker();
52
+
});
53
+
}
54
+
}
55
+
56
+
// Add a Tipsy Tooltip to the Dynamic Switcher
57
+
this.ui.dynamicSwitcher.tipsy({
58
+
title: function title() {
59
+
return this.getAttribute('data-tooltip');
60
+
},
61
+
gravity: 's'
62
+
});
63
+
},
64
+
moveDynamicSwitcherToColorPicker: function moveDynamicSwitcherToColorPicker() {
65
+
var $colorPickerToolsContainer = this.view.colorPicker.$pickerToolsContainer;
66
+
this.ui.dynamicSwitcher.removeClass('elementor-control-unit-1').addClass('e-control-tool');
67
+
var $eyedropper = $colorPickerToolsContainer.find('.elementor-control-element-color-picker');
68
+
if ($eyedropper.length) {
69
+
this.ui.dynamicSwitcher.insertBefore($eyedropper);
70
+
} else {
71
+
$colorPickerToolsContainer.append(this.ui.dynamicSwitcher);
72
+
}
73
+
},
74
+
toggleDynamicClass: function toggleDynamicClass() {
75
+
this.$el.toggleClass('elementor-control-dynamic-value', this.isDynamicMode());
76
+
},
77
+
isDynamicMode: function isDynamicMode() {
78
+
var dynamicSettings = this.view.container.settings.get('__dynamic__');
79
+
return !!(dynamicSettings && dynamicSettings[this.view.model.get('name')]);
80
+
},
81
+
createTagsList: function createTagsList() {
82
+
var tags = _.groupBy(this.getOption('tags'), 'group'),
83
+
groups = elementor.dynamicTags.getConfig('groups'),
84
+
$tagsList = this.ui.tagsList = jQuery('<div>', {
85
+
class: 'elementor-tags-list'
86
+
}),
87
+
$tagsListInner = jQuery('<div>', {
88
+
class: 'elementor-tags-list__inner'
89
+
});
90
+
$tagsList.append($tagsListInner);
91
+
jQuery.each(groups, function (groupName) {
92
+
var groupTags = tags[groupName];
93
+
if (!groupTags) {
94
+
return;
95
+
}
96
+
var group = this,
97
+
$groupTitle = jQuery('<div>', {
98
+
class: 'elementor-tags-list__group-title'
99
+
}).text(group.title);
100
+
$tagsListInner.append($groupTitle);
101
+
groupTags.forEach(function (tag) {
102
+
var $tag = jQuery('<div>', {
103
+
class: 'elementor-tags-list__item'
104
+
});
105
+
$tag.text(tag.title).attr('data-tag-name', tag.name);
106
+
$tagsListInner.append($tag);
107
+
});
108
+
});
109
+
110
+
// Create and inject pro dynamic teaser template if Pro is not installed
111
+
if (!elementor.helpers.hasPro() && Object.keys(tags).length) {
112
+
var proTeaser = Marionette.Renderer.render('#tmpl-elementor-dynamic-tags-promo', {
113
+
promotionUrl: elementor.config.dynamicPromotionURL.replace('%s', this.view.model.get('name'))
114
+
});
115
+
$tagsListInner.append(proTeaser);
116
+
}
117
+
$tagsListInner.on('click', '.elementor-tags-list__item', this.onTagsListItemClick.bind(this));
118
+
elementorCommon.elements.$body.append($tagsList);
119
+
},
120
+
getTagsList: function getTagsList() {
121
+
if (!this.ui.tagsList) {
122
+
this.createTagsList();
123
+
}
124
+
return this.ui.tagsList;
125
+
},
126
+
toggleTagsList: function toggleTagsList() {
127
+
var $tagsList = this.getTagsList();
128
+
if ($tagsList.is(':visible')) {
129
+
$tagsList.hide();
130
+
return;
131
+
}
132
+
var direction = elementorCommon.config.isRTL ? 'left' : 'right';
133
+
$tagsList.show().position({
134
+
my: "".concat(direction, " top"),
135
+
at: "".concat(direction, " bottom+5"),
136
+
of: this.ui.dynamicSwitcher
137
+
});
138
+
},
139
+
setTagView: function setTagView(id, name, settings) {
140
+
if (this.tagView) {
141
+
this.tagView.destroy();
142
+
}
143
+
var tagView = this.tagView = new TagPanelView({
144
+
id: id,
145
+
name: name,
146
+
settings: settings,
147
+
controlName: this.view.model.get('name'),
148
+
dynamicSettings: this.getOption('dynamicSettings')
149
+
}),
150
+
elementContainer = this.view.options.container,
151
+
tagViewLabel = elementContainer.controls[tagView.options.controlName].label;
152
+
tagView.options.container = new elementorModules.editor.Container({
153
+
type: 'dynamic',
154
+
id: id,
155
+
model: tagView.model,
156
+
settings: tagView.model,
157
+
view: tagView,
158
+
parent: elementContainer,
159
+
label: elementContainer.label + ' ' + tagViewLabel,
160
+
controls: tagView.model.options.controls,
161
+
renderer: elementContainer
162
+
});
163
+
tagView.render();
164
+
this.$el.find('.elementor-control-tag-area').after(tagView.el);
165
+
this.listenTo(tagView, 'remove', this.onTagViewRemove.bind(this));
166
+
},
167
+
setDefaultTagView: function setDefaultTagView() {
168
+
var tagData = elementor.dynamicTags.tagTextToTagData(this.getDynamicValue());
169
+
this.setTagView(tagData.id, tagData.name, tagData.settings);
170
+
},
171
+
tagViewToTagText: function tagViewToTagText() {
172
+
var tagView = this.tagView;
173
+
return elementor.dynamicTags.tagDataToTagText(tagView.getOption('id'), tagView.getOption('name'), tagView.model);
174
+
},
175
+
getDynamicValue: function getDynamicValue() {
176
+
return this.view.container.dynamic.get(this.view.model.get('name'));
177
+
},
178
+
destroyTagView: function destroyTagView() {
179
+
if (this.tagView) {
180
+
this.tagView.destroy();
181
+
this.tagView = null;
182
+
}
183
+
},
184
+
showPromotion: function showPromotion() {
185
+
var hasProAndNotConnected = elementor.helpers.hasProAndNotConnected(),
186
+
dialogOptions = {
187
+
title: __('Dynamic Content', 'elementor'),
188
+
content: __('Create more personalized and dynamic sites by populating data from various sources with dozens of dynamic tags to choose from.', 'elementor'),
189
+
targetElement: this.ui.dynamicSwitcher,
190
+
position: {
191
+
blockStart: '-10'
192
+
},
193
+
actionButton: {
194
+
url: hasProAndNotConnected ? elementorProEditorConfig.urls.connect : elementor.config.dynamicPromotionURL.replace('%s', this.view.model.get('name')),
195
+
text: hasProAndNotConnected ? __('Connect & Activate', 'elementor') : __('Upgrade', 'elementor')
196
+
}
197
+
};
198
+
elementor.promotion.showDialog(dialogOptions);
199
+
},
200
+
onRender: function onRender() {
201
+
this.$el.addClass('elementor-control-dynamic');
202
+
this.renderTools();
203
+
this.toggleDynamicClass();
204
+
if (this.isDynamicMode()) {
205
+
this.setDefaultTagView();
206
+
}
207
+
},
208
+
onDynamicSwitcherClick: function onDynamicSwitcherClick(event) {
209
+
event.stopPropagation();
210
+
if (this.getOption('tags').length) {
211
+
this.toggleTagsList();
212
+
} else {
213
+
this.showPromotion();
214
+
}
215
+
},
216
+
onTagsListItemClick: function onTagsListItemClick(event) {
217
+
var $tag = jQuery(event.currentTarget);
218
+
this.setTagView(elementorCommon.helpers.getUniqueId(), $tag.data('tagName'), {});
219
+
220
+
// If an element has an active global value, disable it before applying the dynamic value.
221
+
if (this.view.getGlobalKey()) {
222
+
this.view.triggerMethod('unset:global:value');
223
+
}
224
+
if (this.isDynamicMode()) {
225
+
$e.run('document/dynamic/settings', {
226
+
container: this.view.options.container,
227
+
settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
228
+
});
229
+
} else {
230
+
$e.run('document/dynamic/enable', {
231
+
container: this.view.options.container,
232
+
settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
233
+
});
234
+
}
235
+
this.toggleDynamicClass();
236
+
this.toggleTagsList();
237
+
if (this.tagView.getTagConfig().settings_required) {
238
+
this.tagView.showSettingsPopup();
239
+
}
240
+
},
241
+
onTagViewRemove: function onTagViewRemove() {
242
+
$e.run('document/dynamic/disable', {
243
+
container: this.view.options.container,
244
+
settings: (0, _defineProperty2.default)({}, this.view.model.get('name'), this.tagViewToTagText())
245
+
});
246
+
this.toggleDynamicClass();
247
+
},
248
+
onAfterExternalChange: function onAfterExternalChange() {
249
+
this.destroyTagView();
250
+
if (this.isDynamicMode()) {
251
+
this.setDefaultTagView();
252
+
}
253
+
this.toggleDynamicClass();
254
+
},
255
+
onDestroy: function onDestroy() {
256
+
this.destroyTagView();
257
+
if (this.ui.tagsList) {
258
+
this.ui.tagsList.remove();
259
+
}
260
+
}
261
+
});
262
+
263
+
/***/ }),
264
+
265
+
/***/ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js":
266
+
/*!***********************************************************************************!*\
267
+
!*** ../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js ***!
268
+
\***********************************************************************************/
269
+
/***/ ((module) => {
270
+
271
+
"use strict";
272
+
273
+
274
+
module.exports = Marionette.ItemView.extend({
275
+
className: 'elementor-tag-controls-stack-empty',
276
+
template: '#tmpl-elementor-tag-controls-stack-empty'
277
+
});
278
+
279
+
/***/ }),
280
+
281
+
/***/ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js":
282
+
/*!*****************************************************************************!*\
283
+
!*** ../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js ***!
284
+
\*****************************************************************************/
285
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
286
+
287
+
"use strict";
288
+
289
+
290
+
var EmptyView = __webpack_require__(/*! elementor-dynamic-tags/tag-controls-stack-empty */ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack-empty.js");
291
+
module.exports = elementorModules.editor.views.ControlsStack.extend({
292
+
activeTab: 'content',
293
+
template: _.noop,
294
+
emptyView: EmptyView,
295
+
isEmpty: function isEmpty() {
296
+
// Ignore the section control
297
+
return this.collection.length < 2;
298
+
},
299
+
childViewOptions: function childViewOptions() {
300
+
return {
301
+
container: this.options.container
302
+
};
303
+
},
304
+
getNamespaceArray: function getNamespaceArray() {
305
+
var currentPageView = elementor.getPanelView().getCurrentPageView(),
306
+
eventNamespace = currentPageView.getNamespaceArray();
307
+
eventNamespace.push(currentPageView.activeSection);
308
+
eventNamespace.push(this.getOption('controlName'));
309
+
eventNamespace.push(this.getOption('name'));
310
+
return eventNamespace;
311
+
},
312
+
onRenderTemplate: function onRenderTemplate() {
313
+
this.activateFirstSection();
314
+
}
315
+
});
316
+
317
+
/***/ }),
318
+
319
+
/***/ "../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js":
320
+
/*!*************************************************************************!*\
321
+
!*** ../assets/dev/js/editor/components/dynamic-tags/tag-panel-view.js ***!
322
+
\*************************************************************************/
323
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
324
+
325
+
"use strict";
326
+
327
+
328
+
var TagControlsStack = __webpack_require__(/*! elementor-dynamic-tags/tag-controls-stack */ "../assets/dev/js/editor/components/dynamic-tags/tag-controls-stack.js");
329
+
module.exports = Marionette.ItemView.extend({
330
+
className: 'elementor-dynamic-cover e-input-style',
331
+
tagControlsStack: null,
332
+
templateHelpers: function templateHelpers() {
333
+
var helpers = {};
334
+
if (this.model) {
335
+
helpers.controls = this.model.options.controls;
336
+
}
337
+
return helpers;
338
+
},
339
+
ui: {
340
+
remove: '.elementor-dynamic-cover__remove'
341
+
},
342
+
events: function events() {
343
+
var events = {
344
+
'click @ui.remove': 'onRemoveClick'
345
+
};
346
+
if (this.hasSettings()) {
347
+
events.click = 'onClick';
348
+
}
349
+
return events;
350
+
},
351
+
getTemplate: function getTemplate() {
352
+
var config = this.getTagConfig(),
353
+
templateFunction = Marionette.TemplateCache.get('#tmpl-elementor-control-dynamic-cover'),
354
+
renderedTemplate = Marionette.Renderer.render(templateFunction, {
355
+
hasSettings: this.hasSettings(),
356
+
isRemovable: !this.getOption('dynamicSettings').default,
357
+
title: config.title,
358
+
content: config.panel_template
359
+
});
360
+
return Marionette.TemplateCache.prototype.compileTemplate(renderedTemplate.trim());
361
+
},
362
+
getTagConfig: function getTagConfig() {
363
+
return elementor.dynamicTags.getConfig('tags.' + this.getOption('name'));
364
+
},
365
+
initSettingsPopup: function initSettingsPopup() {
366
+
var settingsPopupOptions = {
367
+
className: 'elementor-tag-settings-popup',
368
+
position: {
369
+
my: 'left top+5',
370
+
at: 'left bottom',
371
+
of: this.$el,
372
+
autoRefresh: true
373
+
},
374
+
hide: {
375
+
ignore: '.select2-container'
376
+
}
377
+
};
378
+
var settingsPopup = elementorCommon.dialogsManager.createWidget('buttons', settingsPopupOptions);
379
+
this.getSettingsPopup = function () {
380
+
return settingsPopup;
381
+
};
382
+
},
383
+
hasSettings: function hasSettings() {
384
+
return !!Object.values(this.getTagConfig().controls).length;
385
+
},
386
+
showSettingsPopup: function showSettingsPopup() {
387
+
if (!this.tagControlsStack) {
388
+
this.initTagControlsStack();
389
+
}
390
+
var settingsPopup = this.getSettingsPopup();
391
+
if (settingsPopup.isVisible()) {
392
+
return;
393
+
}
394
+
settingsPopup.show();
395
+
},
396
+
initTagControlsStack: function initTagControlsStack() {
397
+
this.tagControlsStack = new TagControlsStack({
398
+
model: this.model,
399
+
controls: this.model.controls,
400
+
name: this.options.name,
401
+
controlName: this.options.controlName,
402
+
container: this.options.container,
403
+
el: this.getSettingsPopup().getElements('message')[0]
404
+
});
405
+
this.tagControlsStack.render();
406
+
},
407
+
initModel: function initModel() {
408
+
this.model = new elementorModules.editor.elements.models.BaseSettings(this.getOption('settings'), {
409
+
controls: this.getTagConfig().controls
410
+
});
411
+
},
412
+
initialize: function initialize() {
413
+
// The `model` should always be available.
414
+
this.initModel();
415
+
if (!this.hasSettings()) {
416
+
return;
417
+
}
418
+
this.initSettingsPopup();
419
+
this.listenTo(this.model, 'change', this.render);
420
+
},
421
+
onClick: function onClick() {
422
+
this.showSettingsPopup();
423
+
},
424
+
onRemoveClick: function onRemoveClick(event) {
425
+
event.stopPropagation();
426
+
this.destroy();
427
+
this.trigger('remove');
428
+
},
429
+
onDestroy: function onDestroy() {
430
+
if (this.hasSettings()) {
431
+
this.getSettingsPopup().destroy();
432
+
}
433
+
if (this.tagControlsStack) {
434
+
this.tagControlsStack.destroy();
435
+
}
436
+
}
437
+
});
438
+
439
+
/***/ }),
440
+
441
+
/***/ "../assets/dev/js/editor/components/validator/base.js":
442
+
/*!************************************************************!*\
443
+
!*** ../assets/dev/js/editor/components/validator/base.js ***!
444
+
\************************************************************/
445
+
/***/ ((module) => {
446
+
447
+
"use strict";
448
+
449
+
450
+
module.exports = elementorModules.Module.extend({
451
+
errors: [],
452
+
__construct: function __construct(settings) {
453
+
var customValidationMethod = settings.customValidationMethod;
454
+
if (customValidationMethod) {
455
+
this.validationMethod = customValidationMethod;
456
+
}
457
+
},
458
+
getDefaultSettings: function getDefaultSettings() {
459
+
return {
460
+
validationTerms: {}
461
+
};
462
+
},
463
+
isValid: function isValid() {
464
+
var validationErrors = this.validationMethod.apply(this, arguments);
465
+
if (validationErrors.length) {
466
+
this.errors = validationErrors;
467
+
return false;
468
+
}
469
+
return true;
470
+
},
471
+
validationMethod: function validationMethod(newValue) {
472
+
var validationTerms = this.getSettings('validationTerms'),
473
+
errors = [];
474
+
if (validationTerms.required) {
475
+
if (!('' + newValue).length) {
476
+
errors.push('Required value is empty');
477
+
}
478
+
}
479
+
return errors;
480
+
}
481
+
});
482
+
483
+
/***/ }),
484
+
485
+
/***/ "../assets/dev/js/editor/components/validator/breakpoint.js":
486
+
/*!******************************************************************!*\
487
+
!*** ../assets/dev/js/editor/components/validator/breakpoint.js ***!
488
+
\******************************************************************/
489
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
490
+
491
+
"use strict";
492
+
493
+
494
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
495
+
Object.defineProperty(exports, "__esModule", ({
496
+
value: true
497
+
}));
498
+
exports["default"] = void 0;
499
+
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
500
+
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
501
+
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
502
+
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
503
+
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
504
+
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)); }
505
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
506
+
var NumberValidator = __webpack_require__(/*! elementor-validator/number */ "../assets/dev/js/editor/components/validator/number.js");
507
+
var BreakpointValidator = exports["default"] = /*#__PURE__*/function (_NumberValidator) {
508
+
function BreakpointValidator() {
509
+
(0, _classCallCheck2.default)(this, BreakpointValidator);
510
+
return _callSuper(this, BreakpointValidator, arguments);
511
+
}
512
+
(0, _inherits2.default)(BreakpointValidator, _NumberValidator);
513
+
return (0, _createClass2.default)(BreakpointValidator, [{
514
+
key: "getDefaultSettings",
515
+
value: function getDefaultSettings() {
516
+
return {
517
+
validationTerms: {
518
+
// Max width we allow in general
519
+
max: 5120
520
+
}
521
+
};
522
+
}
523
+
524
+
/**
525
+
* Get Panel Active Breakpoints
526
+
*
527
+
* Since the active kit used in the Site Settings panel could be a draft, we need to use the panel's active
528
+
* breakpoints settings and not the elementorFrontend.config values (which come from the DB).
529
+
*
530
+
* @return {*} Object
531
+
*/
532
+
}, {
533
+
key: "getPanelActiveBreakpoints",
534
+
value: function getPanelActiveBreakpoints() {
535
+
var panelBreakpoints = elementor.documents.currentDocument.config.settings.settings.active_breakpoints.map(function (breakpointName) {
536
+
return breakpointName.replace('viewport_', '');
537
+
}),
538
+
panelActiveBreakpoints = {};
539
+
panelBreakpoints.forEach(function (breakpointName) {
540
+
panelActiveBreakpoints[breakpointName] = elementorFrontend.config.responsive.breakpoints[breakpointName];
541
+
});
542
+
return panelActiveBreakpoints;
543
+
}
544
+
}, {
545
+
key: "initBreakpointProperties",
546
+
value: function initBreakpointProperties() {
547
+
var _activeBreakpoints$br, _activeBreakpoints$br2;
548
+
var validationTerms = this.getSettings('validationTerms'),
549
+
activeBreakpoints = this.getPanelActiveBreakpoints(),
550
+
breakpointKeys = Object.keys(activeBreakpoints);
551
+
this.breakpointIndex = breakpointKeys.indexOf(validationTerms.breakpointName);
552
+
this.topBreakpoint = (_activeBreakpoints$br = activeBreakpoints[breakpointKeys[this.breakpointIndex + 1]]) === null || _activeBreakpoints$br === void 0 ? void 0 : _activeBreakpoints$br.value;
553
+
this.bottomBreakpoint = (_activeBreakpoints$br2 = activeBreakpoints[breakpointKeys[this.breakpointIndex - 1]]) === null || _activeBreakpoints$br2 === void 0 ? void 0 : _activeBreakpoints$br2.value;
554
+
}
555
+
}, {
556
+
key: "validationMethod",
557
+
value: function validationMethod(newValue) {
558
+
var validationTerms = this.getSettings('validationTerms'),
559
+
errors = NumberValidator.prototype.validationMethod.call(this, newValue);
560
+
561
+
// Validate both numeric and empty values, since breakpoints utilize default values when empty.
562
+
if (_.isFinite(newValue) || '' === newValue) {
563
+
if (!this.validateMinMaxForBreakpoint(newValue, validationTerms)) {
564
+
errors.push('Value is not between the breakpoints above or under the edited breakpoint');
565
+
}
566
+
}
567
+
return errors;
568
+
}
569
+
}, {
570
+
key: "validateMinMaxForBreakpoint",
571
+
value: function validateMinMaxForBreakpoint(newValue, validationTerms) {
572
+
var breakpointDefaultValue = elementorFrontend.config.responsive.breakpoints[validationTerms.breakpointName].default_value;
573
+
var isValid = true;
574
+
this.initBreakpointProperties();
575
+
576
+
// Since the following comparison is <=, allow usage of the 320px value for the mobile breakpoint.
577
+
if ('mobile' === validationTerms.breakpointName && 320 === this.bottomBreakpoint) {
578
+
this.bottomBreakpoint -= 1;
579
+
}
580
+
581
+
// If there is a breakpoint below the currently edited breakpoint
582
+
if (this.bottomBreakpoint) {
583
+
// Check that the new value is not under the bottom breakpoint's value.
584
+
if ('' !== newValue && newValue <= this.bottomBreakpoint) {
585
+
isValid = false;
586
+
}
587
+
588
+
// If the new value is empty, check that the default breakpoint value is not below the bottom breakpoint.
589
+
if ('' === newValue && breakpointDefaultValue <= this.bottomBreakpoint) {
590
+
isValid = false;
591
+
}
592
+
}
593
+
594
+
// If there is a breakpoint above the currently edited breakpoint.
595
+
if (this.topBreakpoint) {
596
+
// Check that the value is not above the top breakpoint's value.
597
+
if ('' !== newValue && newValue >= this.topBreakpoint) {
598
+
isValid = false;
599
+
}
600
+
601
+
// If the new value is empty, check that the default breakpoint value is not above the top breakpoint.
602
+
if ('' === newValue && breakpointDefaultValue >= this.topBreakpoint) {
603
+
isValid = false;
604
+
}
605
+
}
606
+
return isValid;
607
+
}
608
+
}]);
609
+
}(NumberValidator);
610
+
611
+
/***/ }),
612
+
613
+
/***/ "../assets/dev/js/editor/components/validator/number.js":
614
+
/*!**************************************************************!*\
615
+
!*** ../assets/dev/js/editor/components/validator/number.js ***!
616
+
\**************************************************************/
617
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
618
+
619
+
"use strict";
620
+
621
+
622
+
var Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js");
623
+
module.exports = Validator.extend({
624
+
validationMethod: function validationMethod(newValue) {
625
+
var validationTerms = this.getSettings('validationTerms'),
626
+
errors = [];
627
+
if (_.isFinite(newValue)) {
628
+
if (undefined !== validationTerms.min && newValue < validationTerms.min) {
629
+
errors.push('Value is less than minimum');
630
+
}
631
+
if (undefined !== validationTerms.max && newValue > validationTerms.max) {
632
+
errors.push('Value is greater than maximum');
633
+
}
634
+
}
635
+
return errors;
636
+
}
637
+
});
638
+
639
+
/***/ }),
640
+
641
+
/***/ "../assets/dev/js/editor/controls/base-data.js":
642
+
/*!*****************************************************!*\
643
+
!*** ../assets/dev/js/editor/controls/base-data.js ***!
644
+
\*****************************************************/
645
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
646
+
647
+
"use strict";
648
+
649
+
650
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
651
+
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
652
+
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
653
+
var _breakpoint = _interopRequireDefault(__webpack_require__(/*! elementor-validator/breakpoint */ "../assets/dev/js/editor/components/validator/breakpoint.js"));
654
+
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; } } }; }
655
+
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; } }
656
+
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; }
657
+
var ControlBaseView = __webpack_require__(/*! elementor-controls/base */ "../assets/dev/js/editor/controls/base.js"),
658
+
TagsBehavior = __webpack_require__(/*! elementor-dynamic-tags/control-behavior */ "../assets/dev/js/editor/components/dynamic-tags/control-behavior.js"),
659
+
Validator = __webpack_require__(/*! elementor-validator/base */ "../assets/dev/js/editor/components/validator/base.js"),
660
+
NumberValidator = __webpack_require__(/*! elementor-validator/number */ "../assets/dev/js/editor/components/validator/number.js"),
661
+
ControlBaseDataView;
662
+
ControlBaseDataView = ControlBaseView.extend({
663
+
validatorTypes: {
664
+
Base: Validator,
665
+
Number: NumberValidator,
666
+
Breakpoint: _breakpoint.default
667
+
},
668
+
ui: function ui() {
669
+
var ui = ControlBaseView.prototype.ui.apply(this, arguments);
670
+
_.extend(ui, {
671
+
input: 'input[data-setting][type!="checkbox"][type!="radio"]',
672
+
checkbox: 'input[data-setting][type="checkbox"]',
673
+
radio: 'input[data-setting][type="radio"]',
674
+
select: 'select[data-setting]',
675
+
textarea: 'textarea[data-setting]',
676
+
responsiveSwitchersSibling: "".concat(ui.controlTitle, "[data-e-responsive-switcher-sibling!=\"false\"]"),
677
+
responsiveSwitchers: '.elementor-responsive-switcher',
678
+
contentEditable: '[contenteditable="true"]'
679
+
});
680
+
return ui;
681
+
},
682
+
templateHelpers: function templateHelpers() {
683
+
var controlData = ControlBaseView.prototype.templateHelpers.apply(this, arguments);
684
+
controlData.data.controlValue = this.getControlValue();
685
+
return controlData;
686
+
},
687
+
events: function events() {
688
+
return {
689
+
'input @ui.input': 'onBaseInputTextChange',
690
+
'change @ui.checkbox': 'onBaseInputChange',
691
+
'change @ui.radio': 'onBaseInputChange',
692
+
'input @ui.textarea': 'onBaseInputTextChange',
693
+
'change @ui.select': 'onBaseInputChange',
694
+
'input @ui.contentEditable': 'onBaseInputTextChange',
695
+
'click @ui.responsiveSwitchers': 'onResponsiveSwitchersClick'
696
+
};
697
+
},
698
+
behaviors: function behaviors() {
699
+
var behaviors = ControlBaseView.prototype.behaviors.apply(this, arguments),
700
+
dynamicSettings = this.options.model.get('dynamic');
701
+
if (dynamicSettings && dynamicSettings.active) {
702
+
var tags = _.filter(elementor.dynamicTags.getConfig('tags'), function (tag) {
703
+
return tag.editable && _.intersection(tag.categories, dynamicSettings.categories).length;
704
+
});
705
+
if (tags.length || elementor.config.user.is_administrator) {
706
+
behaviors.tags = {
707
+
behaviorClass: TagsBehavior,
708
+
tags: tags,
709
+
dynamicSettings: dynamicSettings
710
+
};
711
+
}
712
+
}
713
+
return behaviors;
714
+
},
715
+
initialize: function initialize() {
716
+
ControlBaseView.prototype.initialize.apply(this, arguments);
717
+
this.registerValidators();
718
+
if (this.model.get('responsive')) {
719
+
this.setPlaceholderFromParent();
720
+
}
721
+
if (undefined === this.model.get('inherit_placeholders')) {
722
+
this.model.set('inherit_placeholders', true);
723
+
}
724
+
725
+
// TODO: this.elementSettingsModel is deprecated since 2.8.0.
726
+
var settings = this.container ? this.container.settings : this.elementSettingsModel;
727
+
this.listenTo(settings, 'change:external:' + this.model.get('name'), this.onAfterExternalChange);
728
+
},
729
+
getControlValue: function getControlValue() {
730
+
return this.container.settings.get(this.model.get('name'));
731
+
},
732
+
getGlobalKey: function getGlobalKey() {
733
+
return this.container.globals.get(this.model.get('name'));
734
+
},
735
+
getGlobalValue: function getGlobalValue() {
736
+
return this.globalValue;
737
+
},
738
+
getGlobalDefault: function getGlobalDefault() {
739
+
var controlGlobalArgs = this.model.get('global');
740
+
if (controlGlobalArgs !== null && controlGlobalArgs !== void 0 && controlGlobalArgs.default) {
741
+
// If the control is a color/typography control and default colors/typography are disabled, don't return the global value.
742
+
if (!elementor.config.globals.defaults_enabled[this.getGlobalMeta().controlType]) {
743
+
return '';
744
+
}
745
+
var _$e$data$commandExtra = $e.data.commandExtractArgs(controlGlobalArgs.default),
746
+
command = _$e$data$commandExtra.command,
747
+
args = _$e$data$commandExtra.args,
748
+
result = $e.data.getCache($e.components.get('globals'), command, args.query);
749
+
return result === null || result === void 0 ? void 0 : result.value;
750
+
}
751
+
752
+
// No global default.
753
+
return '';
754
+
},
755
+
getCurrentValue: function getCurrentValue() {
756
+
if (this.getGlobalKey() && !this.globalValue) {
757
+
return '';
758
+
}
759
+
if (this.globalValue) {
760
+
return this.globalValue;
761
+
}
762
+
var controlValue = this.getControlValue();
763
+
if (controlValue) {
764
+
return controlValue;
765
+
}
766
+
return this.getGlobalDefault();
767
+
},
768
+
isGlobalActive: function isGlobalActive() {
769
+
var _this$options$model$g;
770
+
return (_this$options$model$g = this.options.model.get('global')) === null || _this$options$model$g === void 0 ? void 0 : _this$options$model$g.active;
771
+
},
772
+
setValue: function setValue(value) {
773
+
this.setSettingsModel(value);
774
+
},
775
+
setSettingsModel: function setSettingsModel(value) {
776
+
var key = this.model.get('name');
777
+
$e.run('document/elements/settings', {
778
+
container: this.options.container,
779
+
settings: (0, _defineProperty2.default)({}, key, value)
780
+
});
781
+
this.triggerMethod('settings:change');
782
+
},
783
+
applySavedValue: function applySavedValue() {
784
+
this.setInputValue('[data-setting="' + this.model.get('name') + '"]', this.getControlValue());
785
+
},
786
+
getEditSettings: function getEditSettings(setting) {
787
+
var settings = this.getOption('elementEditSettings').toJSON();
788
+
if (setting) {
789
+
return settings[setting];
790
+
}
791
+
return settings;
792
+
},
793
+
setEditSetting: function setEditSetting(settingKey, settingValue) {
794
+
var settings = this.getOption('elementEditSettings') || this.getOption('container').settings;
795
+
settings.set(settingKey, settingValue);
796
+
},
797
+
/**
798
+
* Get the placeholder for the current control.
799
+
*
800
+
* @return {*} placeholder
801
+
*/
802
+
getControlPlaceholder: function getControlPlaceholder() {
803
+
var placeholder = this.model.get('placeholder');
804
+
if (this.model.get('responsive') && this.model.get('inherit_placeholders')) {
805
+
placeholder = placeholder || this.container.placeholders[this.model.get('name')];
806
+
}
807
+
return placeholder;
808
+
},
809
+
/**
810
+
* Get the responsive parent view if exists.
811
+
*
812
+
* @return {ControlBaseDataView|undefined} responsive parent view if exists
813
+
*/
814
+
getResponsiveParentView: function getResponsiveParentView() {
815
+
var parent = this.model.get('parent');
816
+
try {
817
+
return parent && this.container.panel.getControlView(parent);
818
+
// eslint-disable-next-line no-empty
819
+
} catch (e) {}
820
+
},
821
+
/**
822
+
* Get the responsive children views if exists.
823
+
*
824
+
* @return {ControlBaseDataView|null} responsive children views if exists
825
+
*/
826
+
getResponsiveChildrenViews: function getResponsiveChildrenViews() {
827
+
var children = this.model.get('inheritors'),
828
+
views = [];
829
+
try {
830
+
var _iterator = _createForOfIteratorHelper(children),
831
+
_step;
832
+
try {
833
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
834
+
var child = _step.value;
835
+
views.push(this.container.panel.getControlView(child));
836
+
}
837
+
// eslint-disable-next-line no-empty
838
+
} catch (err) {
839
+
_iterator.e(err);
840
+
} finally {
841
+
_iterator.f();
842
+
}
843
+
} catch (e) {}
844
+
return views;
845
+
},
846
+
/**
847
+
* Get prepared placeholder from the responsive parent, and put it into current
848
+
* control model as placeholder.
849
+
*/
850
+
setPlaceholderFromParent: function setPlaceholderFromParent() {
851
+
var parent = this.getResponsiveParentView();
852
+
if (parent) {
853
+
this.container.placeholders[this.model.get('name')] = parent.preparePlaceholderForChildren();
854
+
}
855
+
},
856
+
/**
857
+
* Returns the value of the current control if exists, or the parent value if not,
858
+
* so responsive children can set it as their placeholder. When there are multiple
859
+
* inputs, the inputs which are empty on this control will inherit their values
860
+
* from the responsive parent.
861
+
* For example, if on desktop the padding of all edges is 10, and on tablet only
862
+
* padding right and left is set to 15, the mobile control placeholder will
863
+
* eventually be: { top: 10, right: 15, left: 15, bottom: 10 }, because of the
864
+
* inheritance of multiple values.
865
+
*
866
+
* @return {*} value of the current control if exists, or the parent value if not
867
+
*/
868
+
preparePlaceholderForChildren: function preparePlaceholderForChildren() {
869
+
var _this$getResponsivePa;
870
+
var cleanValue = this.getCleanControlValue(),
871
+
parentValue = (_this$getResponsivePa = this.getResponsiveParentView()) === null || _this$getResponsivePa === void 0 ? void 0 : _this$getResponsivePa.preparePlaceholderForChildren();
872
+
if (cleanValue instanceof Object) {
873
+
return Object.assign({}, parentValue, cleanValue);
874
+
}
875
+
return cleanValue || parentValue;
876
+
},
877
+
/**
878
+
* Start the re-rendering recursive chain from the responsive child of this
879
+
* control. It's useful when the current control value is changed and we want
880
+
* to update all responsive children. In this case, the re-rendering is supposed
881
+
* to be applied only from the responsive child of this control and on.
882
+
*/
883
+
propagatePlaceholder: function propagatePlaceholder() {
884
+
var children = this.getResponsiveChildrenViews();
885
+
var _iterator2 = _createForOfIteratorHelper(children),
886
+
_step2;
887
+
try {
888
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
889
+
var child = _step2.value;
890
+
child.renderWithChildren();
891
+
}
892
+
} catch (err) {
893
+
_iterator2.e(err);
894
+
} finally {
895
+
_iterator2.f();
896
+
}
897
+
},
898
+
/**
899
+
* Re-render current control and trigger this method on the responsive child.
900
+
* The purpose of those actions is to recursively re-render all responsive
901
+
* children.
902
+
*/
903
+
renderWithChildren: function renderWithChildren() {
904
+
this.render();
905
+
this.propagatePlaceholder();
906
+
},
907
+
/**
908
+
* Get control value without empty properties, and without default values.
909
+
*
910
+
* @return {{}} control value without empty properties, and without default values
911
+
*/
912
+
getCleanControlValue: function getCleanControlValue() {
913
+
var value = this.getControlValue();
914
+
return value && value !== this.model.get('default') ? value : undefined;
915
+
},
916
+
onAfterChange: function onAfterChange(control) {
917
+
if (Object.keys(control.changed).includes(this.model.get('name'))) {
918
+
this.propagatePlaceholder();
919
+
}
920
+
ControlBaseView.prototype.onAfterChange.apply(this, arguments);
921
+
},
922
+
getInputValue: function getInputValue(input) {
923
+
var $input = this.$(input);
924
+
if ($input.is('[contenteditable="true"]')) {
925
+
return $input.html();
926
+
}
927
+
var inputValue = $input.val(),
928
+
inputType = $input.attr('type');
929
+
if (-1 !== ['radio', 'checkbox'].indexOf(inputType)) {
930
+
return $input.prop('checked') ? inputValue : '';
931
+
}
932
+
if ('number' === inputType && _.isFinite(inputValue)) {
933
+
return +inputValue;
934
+
}
935
+
936
+
// Temp fix for jQuery (< 3.0) that return null instead of empty array
937
+
if ('SELECT' === input.tagName && $input.prop('multiple') && null === inputValue) {
938
+
inputValue = [];
939
+
}
940
+
return inputValue;
941
+
},
942
+
setInputValue: function setInputValue(input, value) {
943
+
var $input = this.$(input),
944
+
inputType = $input.attr('type');
945
+
if ('checkbox' === inputType) {
946
+
$input.prop('checked', !!value);
947
+
} else if ('radio' === inputType) {
948
+
$input.filter('[value="' + value + '"]').prop('checked', true);
949
+
} else {
950
+
$input.val(value);
951
+
}
952
+
},
953
+
addValidator: function addValidator(validator) {
954
+
this.validators.push(validator);
955
+
},
956
+
registerValidators: function registerValidators() {
957
+
var _this = this;
958
+
this.validators = [];
959
+
var validationTerms = {};
960
+
if (this.model.get('required')) {
961
+
validationTerms.required = true;
962
+
}
963
+
if (!jQuery.isEmptyObject(validationTerms)) {
964
+
this.addValidator(new this.validatorTypes.Base({
965
+
validationTerms: validationTerms
966
+
}));
967
+
}
968
+
var validators = this.model.get('validators');
969
+
if (validators) {
970
+
Object.entries(validators).forEach(function (_ref) {
971
+
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
972
+
key = _ref2[0],
973
+
args = _ref2[1];
974
+
_this.addValidator(new _this.validatorTypes[key]({
975
+
validationTerms: args
976
+
}));
977
+
});
978
+
}
979
+
},
980
+
onBeforeRender: function onBeforeRender() {
981
+
this.setPlaceholderFromParent();
982
+
},
983
+
onRender: function onRender() {
984
+
ControlBaseView.prototype.onRender.apply(this, arguments);
985
+
if (this.model.get('responsive')) {
986
+
this.renderResponsiveSwitchers();
987
+
}
988
+
this.applySavedValue();
989
+
this.triggerMethod('ready');
990
+
this.toggleControlVisibility();
991
+
this.addTooltip();
992
+
},
993
+
onBaseInputTextChange: function onBaseInputTextChange(event) {
994
+
this.onBaseInputChange(event);
995
+
},
996
+
onBaseInputChange: function onBaseInputChange(event) {
997
+
clearTimeout(this.correctionTimeout);
998
+
var input = event.currentTarget,
999
+
value = this.getInputValue(input),
1000
+
validators = this.validators.slice(0),
1001
+
settingsValidators = this.container.settings.validators[this.model.get('name')];
1002
+
if (settingsValidators) {
1003
+
validators = validators.concat(settingsValidators);
1004
+
}
1005
+
if (validators) {
1006
+
var oldValue = this.getControlValue(input.dataset.setting);
1007
+
var isValidValue = validators.every(function (validator) {
1008
+
return validator.isValid(value, oldValue);
1009
+
});
1010
+
if (!isValidValue) {
1011
+
this.correctionTimeout = setTimeout(this.setInputValue.bind(this, input, oldValue), 1200);
1012
+
return;
1013
+
}
1014
+
}
1015
+
this.updateElementModel(value, input);
1016
+
this.triggerMethod('input:change', event);
1017
+
},
1018
+
onResponsiveSwitchersClick: function onResponsiveSwitchersClick(event) {
1019
+
var $switcher = jQuery(event.currentTarget),
1020
+
device = $switcher.data('device'),
1021
+
$switchersWrapper = this.ui.responsiveSwitchersWrapper,
1022
+
selectedOption = $switcher.index();
1023
+
$switchersWrapper.toggleClass('elementor-responsive-switchers-open');
1024
+
$switchersWrapper[0].style.setProperty('--selected-option', selectedOption);
1025
+
this.triggerMethod('responsive:switcher:click', device);
1026
+
elementor.changeDeviceMode(device);
1027
+
},
1028
+
renderResponsiveSwitchers: function renderResponsiveSwitchers() {
1029
+
var templateHtml = Marionette.Renderer.render('#tmpl-elementor-control-responsive-switchers', this.model.attributes);
1030
+
this.ui.responsiveSwitchersSibling.after(templateHtml);
1031
+
this.ui.responsiveSwitchersWrapper = this.$el.find('.elementor-control-responsive-switchers');
1032
+
},
1033
+
onAfterExternalChange: function onAfterExternalChange() {
1034
+
this.hideTooltip();
1035
+
this.applySavedValue();
1036
+
},
1037
+
addTooltip: function addTooltip() {
1038
+
this.ui.tooltipTargets = this.$el.find('.tooltip-target');
1039
+
if (!this.ui.tooltipTargets.length) {
1040
+
return;
1041
+
}
1042
+
1043
+
// Create tooltip on controls
1044
+
this.ui.tooltipTargets.tipsy({
1045
+
gravity: function gravity() {
1046
+
// `n` for down, `s` for up
1047
+
var gravity = jQuery(this).data('tooltip-pos');
1048
+
if (undefined !== gravity) {
1049
+
return gravity;
1050
+
}
1051
+
return 's';
1052
+
},
1053
+
title: function title() {
1054
+
return this.getAttribute('data-tooltip');
1055
+
}
1056
+
});
1057
+
},
1058
+
hideTooltip: function hideTooltip() {
1059
+
if (this.ui.tooltipTargets.length) {
1060
+
this.ui.tooltipTargets.tipsy('hide');
1061
+
}
1062
+
},
1063
+
updateElementModel: function updateElementModel(value) {
1064
+
this.setValue(value);
1065
+
}
1066
+
}, {
1067
+
// Static methods
1068
+
getStyleValue: function getStyleValue(placeholder, controlValue, controlData) {
1069
+
if ('DEFAULT' === placeholder) {
1070
+
return controlData.default;
1071
+
}
1072
+
return controlValue;
1073
+
},
1074
+
onPasteStyle: function onPasteStyle() {
1075
+
return true;
1076
+
}
1077
+
});
1078
+
module.exports = ControlBaseDataView;
1079
+
1080
+
/***/ }),
1081
+
1082
+
/***/ "../assets/dev/js/editor/controls/base.js":
1083
+
/*!************************************************!*\
1084
+
!*** ../assets/dev/js/editor/controls/base.js ***!
1085
+
\************************************************/
1086
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1087
+
1088
+
"use strict";
1089
+
1090
+
1091
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1092
+
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1093
+
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; }
1094
+
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; }
1095
+
var ControlBaseView;
1096
+
ControlBaseView = Marionette.CompositeView.extend({
1097
+
ui: function ui() {
1098
+
return {
1099
+
controlTitle: '.elementor-control-title'
1100
+
};
1101
+
},
1102
+
behaviors: function behaviors() {
1103
+
var behaviors = {};
1104
+
return elementor.hooks.applyFilters('controls/base/behaviors', behaviors, this);
1105
+
},
1106
+
getBehavior: function getBehavior(name) {
1107
+
return this._behaviors[Object.keys(this.behaviors()).indexOf(name)];
1108
+
},
1109
+
className: function className() {
1110
+
// TODO: Any better classes for that?
1111
+
var classes = 'elementor-control elementor-control-' + this.model.get('name') + ' elementor-control-type-' + this.model.get('type'),
1112
+
modelClasses = this.model.get('classes'),
1113
+
responsive = this.model.get('responsive');
1114
+
if (!_.isEmpty(modelClasses)) {
1115
+
classes += ' ' + modelClasses;
1116
+
}
1117
+
if (!_.isEmpty(responsive)) {
1118
+
var responsiveControlName = responsive.max || responsive.min;
1119
+
classes += ' elementor-control-responsive-' + responsiveControlName;
1120
+
}
1121
+
return classes;
1122
+
},
1123
+
templateHelpers: function templateHelpers() {
1124
+
var controlData = {
1125
+
_cid: this.model.cid
1126
+
};
1127
+
return {
1128
+
view: this,
1129
+
data: _.extend({}, this.model.toJSON(), controlData)
1130
+
};
1131
+
},
1132
+
getTemplate: function getTemplate() {
1133
+
return Marionette.TemplateCache.get('#tmpl-elementor-control-' + this.model.get('type') + '-content');
1134
+
},
1135
+
initialize: function initialize(options) {
1136
+
var label = this.model.get('label');
1137
+
1138
+
// TODO: Temp backwards compatibility. since 2.8.0.
1139
+
Object.defineProperty(this, 'container', {
1140
+
get: function get() {
1141
+
if (!options.container) {
1142
+
var settingsModel = options.elementSettingsModel,
1143
+
view = $e.components.get('document').utils.findViewById(settingsModel.id);
1144
+
1145
+
// Element control.
1146
+
if (view && view.getContainer) {
1147
+
options.container = view.getContainer();
1148
+
} else {
1149
+
if (!settingsModel.id) {
1150
+
settingsModel.id = 'bc-' + elementorCommon.helpers.getUniqueId();
1151
+
}
1152
+
1153
+
// Document/General/Other control.
1154
+
options.container = new elementorModules.editor.Container({
1155
+
type: 'bc-container',
1156
+
id: settingsModel.id,
1157
+
model: settingsModel,
1158
+
settings: settingsModel,
1159
+
label: label,
1160
+
view: false,
1161
+
parent: false,
1162
+
renderer: false,
1163
+
controls: settingsModel.options.controls
1164
+
});
1165
+
}
1166
+
}
1167
+
return options.container;
1168
+
}
1169
+
});
1170
+
1171
+
// Use `defineProperty` because `get elementSettingsModel()` fails during the `Marionette.CompositeView.extend`.
1172
+
Object.defineProperty(this, 'elementSettingsModel', {
1173
+
get: function get() {
1174
+
elementorDevTools.deprecation.deprecated('elementSettingsModel', '2.8.0', 'container.settings');
1175
+
return options.container ? options.container.settings : options.elementSettingsModel;
1176
+
}
1177
+
});
1178
+
var controlType = this.model.get('type'),
1179
+
controlSettings = jQuery.extend(true, {}, elementor.config.controls[controlType], this.model.attributes);
1180
+
this.model.set(controlSettings);
1181
+
1182
+
// TODO: this.elementSettingsModel is deprecated since 2.8.0.
1183
+
var settings = this.container ? this.container.settings : this.elementSettingsModel;
1184
+
this.listenTo(settings, 'change', this.onAfterChange);
1185
+
if (this.model.attributes.responsive) {
1186
+
this.onDeviceModeChange = this.onDeviceModeChange.bind(this);
1187
+
elementor.listenTo(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
1188
+
}
1189
+
},
1190
+
onDestroy: function onDestroy() {
1191
+
elementor.stopListening(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
1192
+
},
1193
+
onDeviceModeChange: function onDeviceModeChange() {
1194
+
this.toggleControlVisibility();
1195
+
},
1196
+
onAfterChange: function onAfterChange() {
1197
+
this.toggleControlVisibility();
1198
+
},
1199
+
toggleControlVisibility: function toggleControlVisibility() {
1200
+
// TODO: this.elementSettingsModel is deprecated since 2.8.0.
1201
+
var settings = this.container ? this.container.settings : this.elementSettingsModel;
1202
+
var isVisible = elementor.helpers.isActiveControl(this.model, settings.attributes, settings.controls);
1203
+
this.$el.toggleClass('elementor-hidden-control', !isVisible);
1204
+
elementor.getPanelView().updateScrollbar();
1205
+
},
1206
+
onRender: function onRender() {
1207
+
var layoutType = this.model.get('label_block') ? 'block' : 'inline',
1208
+
showLabel = this.model.get('show_label'),
1209
+
elClasses = 'elementor-label-' + layoutType;
1210
+
elClasses += ' elementor-control-separator-' + this.model.get('separator');
1211
+
if (!showLabel) {
1212
+
elClasses += ' elementor-control-hidden-label';
1213
+
}
1214
+
this.$el.addClass(elClasses);
1215
+
this.toggleControlVisibility();
1216
+
},
1217
+
reRoute: function reRoute(controlActive) {
1218
+
$e.route($e.routes.getCurrent('panel'), this.getControlInRouteArgs(controlActive ? this.getControlPath() : ''), {
1219
+
history: false
1220
+
});
1221
+
},
1222
+
getControlInRouteArgs: function getControlInRouteArgs(path) {
1223
+
return _objectSpread(_objectSpread({}, $e.routes.getCurrentArgs('panel')), {}, {
1224
+
activeControl: path
1225
+
});
1226
+
},
1227
+
getControlPath: function getControlPath() {
1228
+
var controlPath = this.model.get('name'),
1229
+
parent = this._parent;
1230
+
while (!parent.$el.hasClass('elementor-controls-stack')) {
1231
+
var parentName = parent.model.get('name') || parent.model.get('_id');
1232
+
controlPath = parentName + '/' + controlPath;
1233
+
parent = parent._parent;
1234
+
}
1235
+
return controlPath;
1236
+
}
1237
+
});
1238
+
module.exports = ControlBaseView;
1239
+
1240
+
/***/ }),
1241
+
1242
+
/***/ "../modules/promotions/assets/js/react/app-manager.js":
1243
+
/*!************************************************************!*\
1244
+
!*** ../modules/promotions/assets/js/react/app-manager.js ***!
1245
+
\************************************************************/
1246
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1247
+
1248
+
"use strict";
1249
+
1250
+
1251
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1252
+
Object.defineProperty(exports, "__esModule", ({
1253
+
value: true
1254
+
}));
1255
+
exports.AppManager = void 0;
1256
+
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1257
+
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1258
+
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1259
+
var _app = _interopRequireDefault(__webpack_require__(/*! ./app */ "../modules/promotions/assets/js/react/app.js"));
1260
+
var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
1261
+
var AppManager = exports.AppManager = /*#__PURE__*/function () {
1262
+
function AppManager() {
1263
+
(0, _classCallCheck2.default)(this, AppManager);
1264
+
this.promotionInfoTip = null;
1265
+
this.onRoute = function () {};
1266
+
}
1267
+
return (0, _createClass2.default)(AppManager, [{
1268
+
key: "getPromotionData",
1269
+
value: function getPromotionData(promotionType) {
1270
+
return elementorPromotionsData[promotionType] || {};
1271
+
}
1272
+
}, {
1273
+
key: "mount",
1274
+
value: function mount(targetNode, selectors) {
1275
+
var _elementor,
1276
+
_elementor$getPrefere,
1277
+
_rootElement$getAttri,
1278
+
_this = this;
1279
+
if (this.promotionInfoTip) {
1280
+
return;
1281
+
}
1282
+
var wrapperElement = targetNode === null || targetNode === void 0 ? void 0 : targetNode.closest(selectors.wrapperElement);
1283
+
var rootElement = wrapperElement === null || wrapperElement === void 0 ? void 0 : wrapperElement.querySelector(selectors.reactAnchor);
1284
+
if (!rootElement) {
1285
+
return;
1286
+
}
1287
+
this.attachEditorEventListeners();
1288
+
this.promotionInfoTip = (0, _client.createRoot)(rootElement);
1289
+
var colorScheme = ((_elementor = elementor) === null || _elementor === void 0 || (_elementor$getPrefere = _elementor.getPreferences) === null || _elementor$getPrefere === void 0 ? void 0 : _elementor$getPrefere.call(_elementor, 'ui_theme')) || 'auto';
1290
+
var isRTL = elementorCommon.config.isRTL;
1291
+
var promotionType = (_rootElement$getAttri = rootElement.getAttribute('data-promotion')) === null || _rootElement$getAttri === void 0 ? void 0 : _rootElement$getAttri.replace('_promotion', '');
1292
+
this.promotionInfoTip.render(/*#__PURE__*/_react.default.createElement(_app.default, {
1293
+
colorScheme: colorScheme,
1294
+
isRTL: isRTL,
1295
+
promotionsData: this.getPromotionData(promotionType),
1296
+
onClose: function onClose() {
1297
+
return _this.unmount();
1298
+
}
1299
+
}));
1300
+
}
1301
+
}, {
1302
+
key: "unmount",
1303
+
value: function unmount() {
1304
+
if (this.promotionInfoTip) {
1305
+
this.detachEditorEventListeners();
1306
+
this.promotionInfoTip.unmount();
1307
+
}
1308
+
this.promotionInfoTip = null;
1309
+
}
1310
+
}, {
1311
+
key: "attachEditorEventListeners",
1312
+
value: function attachEditorEventListeners() {
1313
+
var _this2 = this;
1314
+
this.onRoute = function (component, route) {
1315
+
if (route !== 'panel/elements/categories' && route !== 'panel/editor/content') {
1316
+
return;
1317
+
}
1318
+
_this2.unmount();
1319
+
};
1320
+
$e.routes.on('run:after', this.onRoute);
1321
+
}
1322
+
}, {
1323
+
key: "detachEditorEventListeners",
1324
+
value: function detachEditorEventListeners() {
1325
+
$e.routes.off('run:after', this.onRoute);
1326
+
}
1327
+
}]);
1328
+
}();
1329
+
1330
+
/***/ }),
1331
+
1332
+
/***/ "../modules/promotions/assets/js/react/app.js":
1333
+
/*!****************************************************!*\
1334
+
!*** ../modules/promotions/assets/js/react/app.js ***!
1335
+
\****************************************************/
1336
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1337
+
1338
+
"use strict";
1339
+
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1340
+
1341
+
1342
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1343
+
Object.defineProperty(exports, "__esModule", ({
1344
+
value: true
1345
+
}));
1346
+
exports["default"] = void 0;
1347
+
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1348
+
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1349
+
var _promotionCard = _interopRequireDefault(__webpack_require__(/*! ./components/promotion-card */ "../modules/promotions/assets/js/react/components/promotion-card.js"));
1350
+
var App = function App(props) {
1351
+
return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
1352
+
rtl: props.isRTL
1353
+
}, /*#__PURE__*/_react.default.createElement(_ui.LocalizationProvider, null, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
1354
+
colorScheme: props.colorScheme
1355
+
}, /*#__PURE__*/_react.default.createElement(_ui.Infotip, {
1356
+
content: /*#__PURE__*/_react.default.createElement(_promotionCard.default, {
1357
+
doClose: props.onClose,
1358
+
promotionsData: props.promotionsData
1359
+
}),
1360
+
placement: "right",
1361
+
arrow: true,
1362
+
open: true,
1363
+
disableHoverListener: true,
1364
+
PopperProps: {
1365
+
modifiers: [{
1366
+
name: 'offset',
1367
+
options: {
1368
+
offset: [-24, 8]
1369
+
}
1370
+
}]
1371
+
}
1372
+
}, /*#__PURE__*/_react.default.createElement("span", null)))));
1373
+
};
1374
+
App.propTypes = {
1375
+
colorScheme: PropTypes.oneOf(['auto', 'light', 'dark']),
1376
+
isRTL: PropTypes.bool,
1377
+
promotionsData: PropTypes.object,
1378
+
onClose: PropTypes.func.isRequired
1379
+
};
1380
+
var _default = exports["default"] = App;
1381
+
1382
+
/***/ }),
1383
+
1384
+
/***/ "../modules/promotions/assets/js/react/components/promotion-card.js":
1385
+
/*!**************************************************************************!*\
1386
+
!*** ../modules/promotions/assets/js/react/components/promotion-card.js ***!
1387
+
\**************************************************************************/
1388
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1389
+
1390
+
"use strict";
1391
+
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1392
+
1393
+
1394
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1395
+
Object.defineProperty(exports, "__esModule", ({
1396
+
value: true
1397
+
}));
1398
+
exports["default"] = void 0;
1399
+
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1400
+
var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1401
+
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
1402
+
var PromotionCard = function PromotionCard(_ref) {
1403
+
var doClose = _ref.doClose,
1404
+
promotionsData = _ref.promotionsData;
1405
+
var title = promotionsData === null || promotionsData === void 0 ? void 0 : promotionsData.title,
1406
+
description = promotionsData === null || promotionsData === void 0 ? void 0 : promotionsData.description,
1407
+
imgSrc = promotionsData === null || promotionsData === void 0 ? void 0 : promotionsData.image,
1408
+
imgAlt = promotionsData === null || promotionsData === void 0 ? void 0 : promotionsData.image_alt,
1409
+
ctaText = promotionsData === null || promotionsData === void 0 ? void 0 : promotionsData.upgrade_text,
1410
+
ctaUrl = promotionsData === null || promotionsData === void 0 ? void 0 : promotionsData.upgrade_url;
1411
+
var redirectHandler = function redirectHandler() {
1412
+
window.open(ctaUrl, '_blank');
1413
+
return doClose();
1414
+
};
1415
+
return /*#__PURE__*/_react.default.createElement(_ui.ClickAwayListener, {
1416
+
disableReactTree: true,
1417
+
mouseEvent: "onMouseDown",
1418
+
touchEvent: "onTouchStart",
1419
+
onClickAway: doClose
1420
+
}, /*#__PURE__*/_react.default.createElement(_ui.Box, {
1421
+
sx: {
1422
+
width: 296
1423
+
},
1424
+
"data-testid": "e-promotion-card"
1425
+
}, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1426
+
direction: "row",
1427
+
alignItems: "center",
1428
+
py: 1,
1429
+
px: 2
1430
+
}, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1431
+
variant: "subtitle2"
1432
+
}, title), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
1433
+
label: (0, _i18n.__)('PRO', 'elementor'),
1434
+
size: "small",
1435
+
variant: "outlined",
1436
+
color: "promotion",
1437
+
sx: {
1438
+
ml: 1
1439
+
}
1440
+
}), /*#__PURE__*/_react.default.createElement(_ui.CloseButton, {
1441
+
edge: "end",
1442
+
sx: {
1443
+
ml: 'auto'
1444
+
},
1445
+
slotProps: {
1446
+
icon: {
1447
+
fontSize: 'small'
1448
+
}
1449
+
},
1450
+
onClick: doClose
1451
+
})), /*#__PURE__*/_react.default.createElement(_ui.Image, {
1452
+
src: imgSrc,
1453
+
alt: imgAlt,
1454
+
sx: {
1455
+
height: 150,
1456
+
width: '100%'
1457
+
}
1458
+
}), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1459
+
px: 2
1460
+
}, 1 === description.length ? /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1461
+
variant: "body2",
1462
+
color: "secondary",
1463
+
sx: {
1464
+
pt: 1.5,
1465
+
pb: 1
1466
+
}
1467
+
}, description[0]) : /*#__PURE__*/_react.default.createElement(_ui.List, {
1468
+
sx: {
1469
+
pl: 2
1470
+
}
1471
+
}, description.map(function (text, index) {
1472
+
return /*#__PURE__*/_react.default.createElement(_ui.ListItem, {
1473
+
key: index,
1474
+
sx: {
1475
+
listStyle: 'disc',
1476
+
display: 'list-item',
1477
+
color: 'text.secondary',
1478
+
p: 0
1479
+
}
1480
+
}, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
1481
+
variant: "body2",
1482
+
color: "secondary"
1483
+
}, text));
1484
+
}))), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
1485
+
pt: 1,
1486
+
pb: 1.5,
1487
+
px: 2
1488
+
}, /*#__PURE__*/_react.default.createElement(_ui.Button, {
1489
+
variant: "contained",
1490
+
size: "small",
1491
+
color: "promotion",
1492
+
onClick: redirectHandler,
1493
+
sx: {
1494
+
ml: 'auto'
1495
+
}
1496
+
}, ctaText))));
1497
+
};
1498
+
PromotionCard.propTypes = {
1499
+
doClose: PropTypes.func,
1500
+
promotionsData: PropTypes.object
1501
+
};
1502
+
var _default = exports["default"] = PromotionCard;
1503
+
1504
+
/***/ }),
1505
+
1506
+
/***/ "../modules/promotions/assets/js/react/controls/promotion.js":
1507
+
/*!*******************************************************************!*\
1508
+
!*** ../modules/promotions/assets/js/react/controls/promotion.js ***!
1509
+
\*******************************************************************/
1510
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1511
+
1512
+
"use strict";
1513
+
1514
+
1515
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1516
+
Object.defineProperty(exports, "__esModule", ({
1517
+
value: true
1518
+
}));
1519
+
exports["default"] = void 0;
1520
+
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1521
+
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1522
+
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1523
+
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1524
+
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1525
+
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1526
+
var _baseData = _interopRequireDefault(__webpack_require__(/*! elementor-controls/base-data */ "../assets/dev/js/editor/controls/base-data.js"));
1527
+
var _appManager = __webpack_require__(/*! ../app-manager */ "../modules/promotions/assets/js/react/app-manager.js");
1528
+
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)); }
1529
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1530
+
var _default = exports["default"] = /*#__PURE__*/function (_ControlBaseDataView) {
1531
+
function _default(options) {
1532
+
var _this;
1533
+
(0, _classCallCheck2.default)(this, _default);
1534
+
_this = _callSuper(this, _default, [options]);
1535
+
(0, _defineProperty2.default)(_this, "promotionInfoTip", null);
1536
+
(0, _defineProperty2.default)(_this, "selectors", {
1537
+
wrapperElement: '.elementor-control-type-switcher',
1538
+
reactAnchor: '.e-promotion-react-wrapper'
1539
+
});
1540
+
_this.AppManager = new _appManager.AppManager();
1541
+
return _this;
1542
+
}
1543
+
(0, _inherits2.default)(_default, _ControlBaseDataView);
1544
+
return (0, _createClass2.default)(_default, [{
1545
+
key: "ui",
1546
+
value: function ui() {
1547
+
return {
1548
+
switcher: '[data-promotion].elementor-control-type-switcher'
1549
+
};
1550
+
}
1551
+
}, {
1552
+
key: "events",
1553
+
value: function events() {
1554
+
return {
1555
+
'click @ui.switcher': 'onClickControlSwitcher'
1556
+
};
1557
+
}
1558
+
}, {
1559
+
key: "promotionData",
1560
+
value: function promotionData(promotionType) {
1561
+
return elementorPromotionsData[promotionType] || {};
1562
+
}
1563
+
}, {
1564
+
key: "onClickControlSwitcher",
1565
+
value: function onClickControlSwitcher(event) {
1566
+
event.stopPropagation();
1567
+
this.AppManager.mount(event.target, this.selectors);
1568
+
}
1569
+
}]);
1570
+
}(_baseData.default);
1571
+
1572
+
/***/ }),
1573
+
1574
+
/***/ "../modules/promotions/assets/js/react/module.js":
1575
+
/*!*******************************************************!*\
1576
+
!*** ../modules/promotions/assets/js/react/module.js ***!
1577
+
\*******************************************************/
1578
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1579
+
1580
+
"use strict";
1581
+
1582
+
1583
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1584
+
Object.defineProperty(exports, "__esModule", ({
1585
+
value: true
1586
+
}));
1587
+
exports["default"] = void 0;
1588
+
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1589
+
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1590
+
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1591
+
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1592
+
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1593
+
var _promotion = _interopRequireDefault(__webpack_require__(/*! ./controls/promotion */ "../modules/promotions/assets/js/react/controls/promotion.js"));
1594
+
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)); }
1595
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1596
+
var Module = exports["default"] = /*#__PURE__*/function (_elementorModules$edi) {
1597
+
function Module() {
1598
+
(0, _classCallCheck2.default)(this, Module);
1599
+
return _callSuper(this, Module, arguments);
1600
+
}
1601
+
(0, _inherits2.default)(Module, _elementorModules$edi);
1602
+
return (0, _createClass2.default)(Module, [{
1603
+
key: "onElementorInit",
1604
+
value: function onElementorInit() {
1605
+
elementor.addControlView('promotion_control', _promotion.default);
1606
+
}
1607
+
}]);
1608
+
}(elementorModules.editor.utils.Module);
1609
+
1610
+
/***/ }),
1611
+
1612
+
/***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
1613
+
/*!******************************************************************!*\
1614
+
!*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
1615
+
\******************************************************************/
1616
+
/***/ ((module) => {
1617
+
1618
+
function _arrayLikeToArray(r, a) {
1619
+
(null == a || a > r.length) && (a = r.length);
1620
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
1621
+
return n;
1622
+
}
1623
+
module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1624
+
1625
+
/***/ }),
1626
+
1627
+
/***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
1628
+
/*!****************************************************************!*\
1629
+
!*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
1630
+
\****************************************************************/
1631
+
/***/ ((module) => {
1632
+
1633
+
function _arrayWithHoles(r) {
1634
+
if (Array.isArray(r)) return r;
1635
+
}
1636
+
module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
1637
+
1638
+
/***/ }),
1639
+
1640
+
/***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
1641
+
/*!***********************************************************************!*\
1642
+
!*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
1643
+
\***********************************************************************/
1644
+
/***/ ((module) => {
1645
+
1646
+
function _assertThisInitialized(e) {
1647
+
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1648
+
return e;
1649
+
}
1650
+
module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
1651
+
1652
+
/***/ }),
1653
+
1654
+
/***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
1655
+
/*!****************************************************************!*\
1656
+
!*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
1657
+
\****************************************************************/
1658
+
/***/ ((module) => {
1659
+
1660
+
function _classCallCheck(a, n) {
1661
+
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
1662
+
}
1663
+
module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
1664
+
1665
+
/***/ }),
1666
+
1667
+
/***/ "../node_modules/@babel/runtime/helpers/createClass.js":
1668
+
/*!*************************************************************!*\
1669
+
!*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
1670
+
\*************************************************************/
1671
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1672
+
1673
+
var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
1674
+
function _defineProperties(e, r) {
1675
+
for (var t = 0; t < r.length; t++) {
1676
+
var o = r[t];
1677
+
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
1678
+
}
1679
+
}
1680
+
function _createClass(e, r, t) {
1681
+
return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
1682
+
writable: !1
1683
+
}), e;
1684
+
}
1685
+
module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
1686
+
1687
+
/***/ }),
1688
+
1689
+
/***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
1690
+
/*!****************************************************************!*\
1691
+
!*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
1692
+
\****************************************************************/
1693
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1694
+
1695
+
var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
1696
+
function _defineProperty(e, r, t) {
1697
+
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
1698
+
value: t,
1699
+
enumerable: !0,
1700
+
configurable: !0,
1701
+
writable: !0
1702
+
}) : e[r] = t, e;
1703
+
}
1704
+
module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
1705
+
1706
+
/***/ }),
1707
+
1708
+
/***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
1709
+
/*!****************************************************************!*\
1710
+
!*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
1711
+
\****************************************************************/
1712
+
/***/ ((module) => {
1713
+
1714
+
function _getPrototypeOf(t) {
1715
+
return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
1716
+
return t.__proto__ || Object.getPrototypeOf(t);
1717
+
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
1718
+
}
1719
+
module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
1720
+
1721
+
/***/ }),
1722
+
1723
+
/***/ "../node_modules/@babel/runtime/helpers/inherits.js":
1724
+
/*!**********************************************************!*\
1725
+
!*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
1726
+
\**********************************************************/
1727
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1728
+
1729
+
var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
1730
+
function _inherits(t, e) {
1731
+
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
1732
+
t.prototype = Object.create(e && e.prototype, {
1733
+
constructor: {
1734
+
value: t,
1735
+
writable: !0,
1736
+
configurable: !0
1737
+
}
1738
+
}), Object.defineProperty(t, "prototype", {
1739
+
writable: !1
1740
+
}), e && setPrototypeOf(t, e);
1741
+
}
1742
+
module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
1743
+
1744
+
/***/ }),
1745
+
1746
+
/***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
1747
+
/*!***********************************************************************!*\
1748
+
!*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
1749
+
\***********************************************************************/
1750
+
/***/ ((module) => {
1751
+
1752
+
function _interopRequireDefault(e) {
1753
+
return e && e.__esModule ? e : {
1754
+
"default": e
1755
+
};
1756
+
}
1757
+
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
1758
+
1759
+
/***/ }),
1760
+
1761
+
/***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
1762
+
/*!**********************************************************************!*\
1763
+
!*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
1764
+
\**********************************************************************/
1765
+
/***/ ((module) => {
1766
+
1767
+
function _iterableToArrayLimit(r, l) {
1768
+
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
1769
+
if (null != t) {
1770
+
var e,
1771
+
n,
1772
+
i,
1773
+
u,
1774
+
a = [],
1775
+
f = !0,
1776
+
o = !1;
1777
+
try {
1778
+
if (i = (t = t.call(r)).next, 0 === l) {
1779
+
if (Object(t) !== t) return;
1780
+
f = !1;
1781
+
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
1782
+
} catch (r) {
1783
+
o = !0, n = r;
1784
+
} finally {
1785
+
try {
1786
+
if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
1787
+
} finally {
1788
+
if (o) throw n;
1789
+
}
1790
+
}
1791
+
return a;
1792
+
}
1793
+
}
1794
+
module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
1795
+
1796
+
/***/ }),
1797
+
1798
+
/***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
1799
+
/*!*****************************************************************!*\
1800
+
!*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
1801
+
\*****************************************************************/
1802
+
/***/ ((module) => {
1803
+
1804
+
function _nonIterableRest() {
1805
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1806
+
}
1807
+
module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
1808
+
1809
+
/***/ }),
1810
+
1811
+
/***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
1812
+
/*!***************************************************************************!*\
1813
+
!*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
1814
+
\***************************************************************************/
1815
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1816
+
1817
+
var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1818
+
var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
1819
+
function _possibleConstructorReturn(t, e) {
1820
+
if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
1821
+
if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
1822
+
return assertThisInitialized(t);
1823
+
}
1824
+
module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
1825
+
1826
+
/***/ }),
1827
+
1828
+
/***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
1829
+
/*!****************************************************************!*\
1830
+
!*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
1831
+
\****************************************************************/
1832
+
/***/ ((module) => {
1833
+
1834
+
function _setPrototypeOf(t, e) {
1835
+
return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
1836
+
return t.__proto__ = e, t;
1837
+
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
1838
+
}
1839
+
module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
1840
+
1841
+
/***/ }),
1842
+
1843
+
/***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
1844
+
/*!***************************************************************!*\
1845
+
!*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
1846
+
\***************************************************************/
1847
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1848
+
1849
+
var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
1850
+
var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
1851
+
var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
1852
+
var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
1853
+
function _slicedToArray(r, e) {
1854
+
return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
1855
+
}
1856
+
module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1857
+
1858
+
/***/ }),
1859
+
1860
+
/***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
1861
+
/*!*************************************************************!*\
1862
+
!*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
1863
+
\*************************************************************/
1864
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1865
+
1866
+
var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1867
+
function toPrimitive(t, r) {
1868
+
if ("object" != _typeof(t) || !t) return t;
1869
+
var e = t[Symbol.toPrimitive];
1870
+
if (void 0 !== e) {
1871
+
var i = e.call(t, r || "default");
1872
+
if ("object" != _typeof(i)) return i;
1873
+
throw new TypeError("@@toPrimitive must return a primitive value.");
1874
+
}
1875
+
return ("string" === r ? String : Number)(t);
1876
+
}
1877
+
module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
1878
+
1879
+
/***/ }),
1880
+
1881
+
/***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
1882
+
/*!***************************************************************!*\
1883
+
!*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
1884
+
\***************************************************************/
1885
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1886
+
1887
+
var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1888
+
var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
1889
+
function toPropertyKey(t) {
1890
+
var i = toPrimitive(t, "string");
1891
+
return "symbol" == _typeof(i) ? i : i + "";
1892
+
}
1893
+
module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
1894
+
1895
+
/***/ }),
1896
+
1897
+
/***/ "../node_modules/@babel/runtime/helpers/typeof.js":
1898
+
/*!********************************************************!*\
1899
+
!*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
1900
+
\********************************************************/
1901
+
/***/ ((module) => {
1902
+
1903
+
function _typeof(o) {
1904
+
"@babel/helpers - typeof";
1905
+
1906
+
return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
1907
+
return typeof o;
1908
+
} : function (o) {
1909
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
1910
+
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
1911
+
}
1912
+
module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
1913
+
1914
+
/***/ }),
1915
+
1916
+
/***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
1917
+
/*!****************************************************************************!*\
1918
+
!*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
1919
+
\****************************************************************************/
1920
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1921
+
1922
+
var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
1923
+
function _unsupportedIterableToArray(r, a) {
1924
+
if (r) {
1925
+
if ("string" == typeof r) return arrayLikeToArray(r, a);
1926
+
var t = {}.toString.call(r).slice(8, -1);
1927
+
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;
1928
+
}
1929
+
}
1930
+
module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1931
+
1932
+
/***/ }),
1933
+
1934
+
/***/ "../node_modules/object-assign/index.js":
1935
+
/*!**********************************************!*\
1936
+
!*** ../node_modules/object-assign/index.js ***!
1937
+
\**********************************************/
1938
+
/***/ ((module) => {
1939
+
1940
+
"use strict";
1941
+
/*
1942
+
object-assign
1943
+
(c) Sindre Sorhus
1944
+
@license MIT
1945
+
*/
1946
+
1947
+
1948
+
/* eslint-disable no-unused-vars */
1949
+
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
1950
+
var hasOwnProperty = Object.prototype.hasOwnProperty;
1951
+
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
1952
+
1953
+
function toObject(val) {
1954
+
if (val === null || val === undefined) {
1955
+
throw new TypeError('Object.assign cannot be called with null or undefined');
1956
+
}
1957
+
1958
+
return Object(val);
1959
+
}
1960
+
1961
+
function shouldUseNative() {
1962
+
try {
1963
+
if (!Object.assign) {
1964
+
return false;
1965
+
}
1966
+
1967
+
// Detect buggy property enumeration order in older V8 versions.
1968
+
1969
+
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
1970
+
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
1971
+
test1[5] = 'de';
1972
+
if (Object.getOwnPropertyNames(test1)[0] === '5') {
1973
+
return false;
1974
+
}
1975
+
1976
+
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
1977
+
var test2 = {};
1978
+
for (var i = 0; i < 10; i++) {
1979
+
test2['_' + String.fromCharCode(i)] = i;
1980
+
}
1981
+
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
1982
+
return test2[n];
1983
+
});
1984
+
if (order2.join('') !== '0123456789') {
1985
+
return false;
1986
+
}
1987
+
1988
+
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
1989
+
var test3 = {};
1990
+
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
1991
+
test3[letter] = letter;
1992
+
});
1993
+
if (Object.keys(Object.assign({}, test3)).join('') !==
1994
+
'abcdefghijklmnopqrst') {
1995
+
return false;
1996
+
}
1997
+
1998
+
return true;
1999
+
} catch (err) {
2000
+
// We don't expect any of the above to throw, but better to be safe.
2001
+
return false;
2002
+
}
2003
+
}
2004
+
2005
+
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
2006
+
var from;
2007
+
var to = toObject(target);
2008
+
var symbols;
2009
+
2010
+
for (var s = 1; s < arguments.length; s++) {
2011
+
from = Object(arguments[s]);
2012
+
2013
+
for (var key in from) {
2014
+
if (hasOwnProperty.call(from, key)) {
2015
+
to[key] = from[key];
2016
+
}
2017
+
}
2018
+
2019
+
if (getOwnPropertySymbols) {
2020
+
symbols = getOwnPropertySymbols(from);
2021
+
for (var i = 0; i < symbols.length; i++) {
2022
+
if (propIsEnumerable.call(from, symbols[i])) {
2023
+
to[symbols[i]] = from[symbols[i]];
2024
+
}
2025
+
}
2026
+
}
2027
+
}
2028
+
2029
+
return to;
2030
+
};
2031
+
2032
+
2033
+
/***/ }),
2034
+
2035
+
/***/ "../node_modules/prop-types/checkPropTypes.js":
2036
+
/*!****************************************************!*\
2037
+
!*** ../node_modules/prop-types/checkPropTypes.js ***!
2038
+
\****************************************************/
2039
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2040
+
2041
+
"use strict";
2042
+
/**
2043
+
* Copyright (c) 2013-present, Facebook, Inc.
2044
+
*
2045
+
* This source code is licensed under the MIT license found in the
2046
+
* LICENSE file in the root directory of this source tree.
2047
+
*/
2048
+
2049
+
2050
+
2051
+
var printWarning = function() {};
2052
+
2053
+
if (true) {
2054
+
var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
2055
+
var loggedTypeFailures = {};
2056
+
var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
2057
+
2058
+
printWarning = function(text) {
2059
+
var message = 'Warning: ' + text;
2060
+
if (typeof console !== 'undefined') {
2061
+
console.error(message);
2062
+
}
2063
+
try {
2064
+
// --- Welcome to debugging React ---
2065
+
// This error was thrown as a convenience so that you can use this stack
2066
+
// to find the callsite that caused this warning to fire.
2067
+
throw new Error(message);
2068
+
} catch (x) { /**/ }
2069
+
};
2070
+
}
2071
+
2072
+
/**
2073
+
* Assert that the values match with the type specs.
2074
+
* Error messages are memorized and will only be shown once.
2075
+
*
2076
+
* @param {object} typeSpecs Map of name to a ReactPropType
2077
+
* @param {object} values Runtime values that need to be type-checked
2078
+
* @param {string} location e.g. "prop", "context", "child context"
2079
+
* @param {string} componentName Name of the component for error messages.
2080
+
* @param {?Function} getStack Returns the component stack.
2081
+
* @private
2082
+
*/
2083
+
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
2084
+
if (true) {
2085
+
for (var typeSpecName in typeSpecs) {
2086
+
if (has(typeSpecs, typeSpecName)) {
2087
+
var error;
2088
+
// Prop type validation may throw. In case they do, we don't want to
2089
+
// fail the render phase where it didn't fail before. So we log it.
2090
+
// After these have been cleaned up, we'll let them throw.
2091
+
try {
2092
+
// This is intentionally an invariant that gets caught. It's the same
2093
+
// behavior as without this statement except with a better message.
2094
+
if (typeof typeSpecs[typeSpecName] !== 'function') {
2095
+
var err = Error(
2096
+
(componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
2097
+
'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
2098
+
'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
2099
+
);
2100
+
err.name = 'Invariant Violation';
2101
+
throw err;
2102
+
}
2103
+
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
2104
+
} catch (ex) {
2105
+
error = ex;
2106
+
}
2107
+
if (error && !(error instanceof Error)) {
2108
+
printWarning(
2109
+
(componentName || 'React class') + ': type specification of ' +
2110
+
location + ' `' + typeSpecName + '` is invalid; the type checker ' +
2111
+
'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
2112
+
'You may have forgotten to pass an argument to the type checker ' +
2113
+
'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
2114
+
'shape all require an argument).'
2115
+
);
2116
+
}
2117
+
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
2118
+
// Only monitor this failure once because there tends to be a lot of the
2119
+
// same error.
2120
+
loggedTypeFailures[error.message] = true;
2121
+
2122
+
var stack = getStack ? getStack() : '';
2123
+
2124
+
printWarning(
2125
+
'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
2126
+
);
2127
+
}
2128
+
}
2129
+
}
2130
+
}
2131
+
}
2132
+
2133
+
/**
2134
+
* Resets warning cache when testing.
2135
+
*
2136
+
* @private
2137
+
*/
2138
+
checkPropTypes.resetWarningCache = function() {
2139
+
if (true) {
2140
+
loggedTypeFailures = {};
2141
+
}
2142
+
}
2143
+
2144
+
module.exports = checkPropTypes;
2145
+
2146
+
2147
+
/***/ }),
2148
+
2149
+
/***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
2150
+
/*!*************************************************************!*\
2151
+
!*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
2152
+
\*************************************************************/
2153
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2154
+
2155
+
"use strict";
2156
+
/**
2157
+
* Copyright (c) 2013-present, Facebook, Inc.
2158
+
*
2159
+
* This source code is licensed under the MIT license found in the
2160
+
* LICENSE file in the root directory of this source tree.
2161
+
*/
2162
+
2163
+
2164
+
2165
+
var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
2166
+
var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
2167
+
2168
+
var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
2169
+
var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
2170
+
var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
2171
+
2172
+
var printWarning = function() {};
2173
+
2174
+
if (true) {
2175
+
printWarning = function(text) {
2176
+
var message = 'Warning: ' + text;
2177
+
if (typeof console !== 'undefined') {
2178
+
console.error(message);
2179
+
}
2180
+
try {
2181
+
// --- Welcome to debugging React ---
2182
+
// This error was thrown as a convenience so that you can use this stack
2183
+
// to find the callsite that caused this warning to fire.
2184
+
throw new Error(message);
2185
+
} catch (x) {}
2186
+
};
2187
+
}
2188
+
2189
+
function emptyFunctionThatReturnsNull() {
2190
+
return null;
2191
+
}
2192
+
2193
+
module.exports = function(isValidElement, throwOnDirectAccess) {
2194
+
/* global Symbol */
2195
+
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
2196
+
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
2197
+
2198
+
/**
2199
+
* Returns the iterator method function contained on the iterable object.
2200
+
*
2201
+
* Be sure to invoke the function with the iterable as context:
2202
+
*
2203
+
* var iteratorFn = getIteratorFn(myIterable);
2204
+
* if (iteratorFn) {
2205
+
* var iterator = iteratorFn.call(myIterable);
2206
+
* ...
2207
+
* }
2208
+
*
2209
+
* @param {?object} maybeIterable
2210
+
* @return {?function}
2211
+
*/
2212
+
function getIteratorFn(maybeIterable) {
2213
+
var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
2214
+
if (typeof iteratorFn === 'function') {
2215
+
return iteratorFn;
2216
+
}
2217
+
}
2218
+
2219
+
/**
2220
+
* Collection of methods that allow declaration and validation of props that are
2221
+
* supplied to React components. Example usage:
2222
+
*
2223
+
* var Props = require('ReactPropTypes');
2224
+
* var MyArticle = React.createClass({
2225
+
* propTypes: {
2226
+
* // An optional string prop named "description".
2227
+
* description: Props.string,
2228
+
*
2229
+
* // A required enum prop named "category".
2230
+
* category: Props.oneOf(['News','Photos']).isRequired,
2231
+
*
2232
+
* // A prop named "dialog" that requires an instance of Dialog.
2233
+
* dialog: Props.instanceOf(Dialog).isRequired
2234
+
* },
2235
+
* render: function() { ... }
2236
+
* });
2237
+
*
2238
+
* A more formal specification of how these methods are used:
2239
+
*
2240
+
* type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
2241
+
* decl := ReactPropTypes.{type}(.isRequired)?
2242
+
*
2243
+
* Each and every declaration produces a function with the same signature. This
2244
+
* allows the creation of custom validation functions. For example:
2245
+
*
2246
+
* var MyLink = React.createClass({
2247
+
* propTypes: {
2248
+
* // An optional string or URI prop named "href".
2249
+
* href: function(props, propName, componentName) {
2250
+
* var propValue = props[propName];
2251
+
* if (propValue != null && typeof propValue !== 'string' &&
2252
+
* !(propValue instanceof URI)) {
2253
+
* return new Error(
2254
+
* 'Expected a string or an URI for ' + propName + ' in ' +
2255
+
* componentName
2256
+
* );
2257
+
* }
2258
+
* }
2259
+
* },
2260
+
* render: function() {...}
2261
+
* });
2262
+
*
2263
+
* @internal
2264
+
*/
2265
+
2266
+
var ANONYMOUS = '<<anonymous>>';
2267
+
2268
+
// Important!
2269
+
// Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
2270
+
var ReactPropTypes = {
2271
+
array: createPrimitiveTypeChecker('array'),
2272
+
bigint: createPrimitiveTypeChecker('bigint'),
2273
+
bool: createPrimitiveTypeChecker('boolean'),
2274
+
func: createPrimitiveTypeChecker('function'),
2275
+
number: createPrimitiveTypeChecker('number'),
2276
+
object: createPrimitiveTypeChecker('object'),
2277
+
string: createPrimitiveTypeChecker('string'),
2278
+
symbol: createPrimitiveTypeChecker('symbol'),
2279
+
2280
+
any: createAnyTypeChecker(),
2281
+
arrayOf: createArrayOfTypeChecker,
2282
+
element: createElementTypeChecker(),
2283
+
elementType: createElementTypeTypeChecker(),
2284
+
instanceOf: createInstanceTypeChecker,
2285
+
node: createNodeChecker(),
2286
+
objectOf: createObjectOfTypeChecker,
2287
+
oneOf: createEnumTypeChecker,
2288
+
oneOfType: createUnionTypeChecker,
2289
+
shape: createShapeTypeChecker,
2290
+
exact: createStrictShapeTypeChecker,
2291
+
};
2292
+
2293
+
/**
2294
+
* inlined Object.is polyfill to avoid requiring consumers ship their own
2295
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
2296
+
*/
2297
+
/*eslint-disable no-self-compare*/
2298
+
function is(x, y) {
2299
+
// SameValue algorithm
2300
+
if (x === y) {
2301
+
// Steps 1-5, 7-10
2302
+
// Steps 6.b-6.e: +0 != -0
2303
+
return x !== 0 || 1 / x === 1 / y;
2304
+
} else {
2305
+
// Step 6.a: NaN == NaN
2306
+
return x !== x && y !== y;
2307
+
}
2308
+
}
2309
+
/*eslint-enable no-self-compare*/
2310
+
2311
+
/**
2312
+
* We use an Error-like object for backward compatibility as people may call
2313
+
* PropTypes directly and inspect their output. However, we don't use real
2314
+
* Errors anymore. We don't inspect their stack anyway, and creating them
2315
+
* is prohibitively expensive if they are created too often, such as what
2316
+
* happens in oneOfType() for any type before the one that matched.
2317
+
*/
2318
+
function PropTypeError(message, data) {
2319
+
this.message = message;
2320
+
this.data = data && typeof data === 'object' ? data: {};
2321
+
this.stack = '';
2322
+
}
2323
+
// Make `instanceof Error` still work for returned errors.
2324
+
PropTypeError.prototype = Error.prototype;
2325
+
2326
+
function createChainableTypeChecker(validate) {
2327
+
if (true) {
2328
+
var manualPropTypeCallCache = {};
2329
+
var manualPropTypeWarningCount = 0;
2330
+
}
2331
+
function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
2332
+
componentName = componentName || ANONYMOUS;
2333
+
propFullName = propFullName || propName;
2334
+
2335
+
if (secret !== ReactPropTypesSecret) {
2336
+
if (throwOnDirectAccess) {
2337
+
// New behavior only for users of `prop-types` package
2338
+
var err = new Error(
2339
+
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
2340
+
'Use `PropTypes.checkPropTypes()` to call them. ' +
2341
+
'Read more at http://fb.me/use-check-prop-types'
2342
+
);
2343
+
err.name = 'Invariant Violation';
2344
+
throw err;
2345
+
} else if ( true && typeof console !== 'undefined') {
2346
+
// Old behavior for people using React.PropTypes
2347
+
var cacheKey = componentName + ':' + propName;
2348
+
if (
2349
+
!manualPropTypeCallCache[cacheKey] &&
2350
+
// Avoid spamming the console because they are often not actionable except for lib authors
2351
+
manualPropTypeWarningCount < 3
2352
+
) {
2353
+
printWarning(
2354
+
'You are manually calling a React.PropTypes validation ' +
2355
+
'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
2356
+
'and will throw in the standalone `prop-types` package. ' +
2357
+
'You may be seeing this warning due to a third-party PropTypes ' +
2358
+
'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
2359
+
);
2360
+
manualPropTypeCallCache[cacheKey] = true;
2361
+
manualPropTypeWarningCount++;
2362
+
}
2363
+
}
2364
+
}
2365
+
if (props[propName] == null) {
2366
+
if (isRequired) {
2367
+
if (props[propName] === null) {
2368
+
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
2369
+
}
2370
+
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
2371
+
}
2372
+
return null;
2373
+
} else {
2374
+
return validate(props, propName, componentName, location, propFullName);
2375
+
}
2376
+
}
2377
+
2378
+
var chainedCheckType = checkType.bind(null, false);
2379
+
chainedCheckType.isRequired = checkType.bind(null, true);
2380
+
2381
+
return chainedCheckType;
2382
+
}
2383
+
2384
+
function createPrimitiveTypeChecker(expectedType) {
2385
+
function validate(props, propName, componentName, location, propFullName, secret) {
2386
+
var propValue = props[propName];
2387
+
var propType = getPropType(propValue);
2388
+
if (propType !== expectedType) {
2389
+
// `propValue` being instance of, say, date/regexp, pass the 'object'
2390
+
// check, but we can offer a more precise error message here rather than
2391
+
// 'of type `object`'.
2392
+
var preciseType = getPreciseType(propValue);
2393
+
2394
+
return new PropTypeError(
2395
+
'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
2396
+
{expectedType: expectedType}
2397
+
);
2398
+
}
2399
+
return null;
2400
+
}
2401
+
return createChainableTypeChecker(validate);
2402
+
}
2403
+
2404
+
function createAnyTypeChecker() {
2405
+
return createChainableTypeChecker(emptyFunctionThatReturnsNull);
2406
+
}
2407
+
2408
+
function createArrayOfTypeChecker(typeChecker) {
2409
+
function validate(props, propName, componentName, location, propFullName) {
2410
+
if (typeof typeChecker !== 'function') {
2411
+
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
2412
+
}
2413
+
var propValue = props[propName];
2414
+
if (!Array.isArray(propValue)) {
2415
+
var propType = getPropType(propValue);
2416
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
2417
+
}
2418
+
for (var i = 0; i < propValue.length; i++) {
2419
+
var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
2420
+
if (error instanceof Error) {
2421
+
return error;
2422
+
}
2423
+
}
2424
+
return null;
2425
+
}
2426
+
return createChainableTypeChecker(validate);
2427
+
}
2428
+
2429
+
function createElementTypeChecker() {
2430
+
function validate(props, propName, componentName, location, propFullName) {
2431
+
var propValue = props[propName];
2432
+
if (!isValidElement(propValue)) {
2433
+
var propType = getPropType(propValue);
2434
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
2435
+
}
2436
+
return null;
2437
+
}
2438
+
return createChainableTypeChecker(validate);
2439
+
}
2440
+
2441
+
function createElementTypeTypeChecker() {
2442
+
function validate(props, propName, componentName, location, propFullName) {
2443
+
var propValue = props[propName];
2444
+
if (!ReactIs.isValidElementType(propValue)) {
2445
+
var propType = getPropType(propValue);
2446
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
2447
+
}
2448
+
return null;
2449
+
}
2450
+
return createChainableTypeChecker(validate);
2451
+
}
2452
+
2453
+
function createInstanceTypeChecker(expectedClass) {
2454
+
function validate(props, propName, componentName, location, propFullName) {
2455
+
if (!(props[propName] instanceof expectedClass)) {
2456
+
var expectedClassName = expectedClass.name || ANONYMOUS;
2457
+
var actualClassName = getClassName(props[propName]);
2458
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
2459
+
}
2460
+
return null;
2461
+
}
2462
+
return createChainableTypeChecker(validate);
2463
+
}
2464
+
2465
+
function createEnumTypeChecker(expectedValues) {
2466
+
if (!Array.isArray(expectedValues)) {
2467
+
if (true) {
2468
+
if (arguments.length > 1) {
2469
+
printWarning(
2470
+
'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
2471
+
'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
2472
+
);
2473
+
} else {
2474
+
printWarning('Invalid argument supplied to oneOf, expected an array.');
2475
+
}
2476
+
}
2477
+
return emptyFunctionThatReturnsNull;
2478
+
}
2479
+
2480
+
function validate(props, propName, componentName, location, propFullName) {
2481
+
var propValue = props[propName];
2482
+
for (var i = 0; i < expectedValues.length; i++) {
2483
+
if (is(propValue, expectedValues[i])) {
2484
+
return null;
2485
+
}
2486
+
}
2487
+
2488
+
var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
2489
+
var type = getPreciseType(value);
2490
+
if (type === 'symbol') {
2491
+
return String(value);
2492
+
}
2493
+
return value;
2494
+
});
2495
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
2496
+
}
2497
+
return createChainableTypeChecker(validate);
2498
+
}
2499
+
2500
+
function createObjectOfTypeChecker(typeChecker) {
2501
+
function validate(props, propName, componentName, location, propFullName) {
2502
+
if (typeof typeChecker !== 'function') {
2503
+
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
2504
+
}
2505
+
var propValue = props[propName];
2506
+
var propType = getPropType(propValue);
2507
+
if (propType !== 'object') {
2508
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
2509
+
}
2510
+
for (var key in propValue) {
2511
+
if (has(propValue, key)) {
2512
+
var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
2513
+
if (error instanceof Error) {
2514
+
return error;
2515
+
}
2516
+
}
2517
+
}
2518
+
return null;
2519
+
}
2520
+
return createChainableTypeChecker(validate);
2521
+
}
2522
+
2523
+
function createUnionTypeChecker(arrayOfTypeCheckers) {
2524
+
if (!Array.isArray(arrayOfTypeCheckers)) {
2525
+
true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
2526
+
return emptyFunctionThatReturnsNull;
2527
+
}
2528
+
2529
+
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
2530
+
var checker = arrayOfTypeCheckers[i];
2531
+
if (typeof checker !== 'function') {
2532
+
printWarning(
2533
+
'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
2534
+
'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
2535
+
);
2536
+
return emptyFunctionThatReturnsNull;
2537
+
}
2538
+
}
2539
+
2540
+
function validate(props, propName, componentName, location, propFullName) {
2541
+
var expectedTypes = [];
2542
+
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
2543
+
var checker = arrayOfTypeCheckers[i];
2544
+
var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
2545
+
if (checkerResult == null) {
2546
+
return null;
2547
+
}
2548
+
if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
2549
+
expectedTypes.push(checkerResult.data.expectedType);
2550
+
}
2551
+
}
2552
+
var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
2553
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
2554
+
}
2555
+
return createChainableTypeChecker(validate);
2556
+
}
2557
+
2558
+
function createNodeChecker() {
2559
+
function validate(props, propName, componentName, location, propFullName) {
2560
+
if (!isNode(props[propName])) {
2561
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
2562
+
}
2563
+
return null;
2564
+
}
2565
+
return createChainableTypeChecker(validate);
2566
+
}
2567
+
2568
+
function invalidValidatorError(componentName, location, propFullName, key, type) {
2569
+
return new PropTypeError(
2570
+
(componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
2571
+
'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
2572
+
);
2573
+
}
2574
+
2575
+
function createShapeTypeChecker(shapeTypes) {
2576
+
function validate(props, propName, componentName, location, propFullName) {
2577
+
var propValue = props[propName];
2578
+
var propType = getPropType(propValue);
2579
+
if (propType !== 'object') {
2580
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
2581
+
}
2582
+
for (var key in shapeTypes) {
2583
+
var checker = shapeTypes[key];
2584
+
if (typeof checker !== 'function') {
2585
+
return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
2586
+
}
2587
+
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
2588
+
if (error) {
2589
+
return error;
2590
+
}
2591
+
}
2592
+
return null;
2593
+
}
2594
+
return createChainableTypeChecker(validate);
2595
+
}
2596
+
2597
+
function createStrictShapeTypeChecker(shapeTypes) {
2598
+
function validate(props, propName, componentName, location, propFullName) {
2599
+
var propValue = props[propName];
2600
+
var propType = getPropType(propValue);
2601
+
if (propType !== 'object') {
2602
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
2603
+
}
2604
+
// We need to check all keys in case some are required but missing from props.
2605
+
var allKeys = assign({}, props[propName], shapeTypes);
2606
+
for (var key in allKeys) {
2607
+
var checker = shapeTypes[key];
2608
+
if (has(shapeTypes, key) && typeof checker !== 'function') {
2609
+
return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
2610
+
}
2611
+
if (!checker) {
2612
+
return new PropTypeError(
2613
+
'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
2614
+
'\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
2615
+
'\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
2616
+
);
2617
+
}
2618
+
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
2619
+
if (error) {
2620
+
return error;
2621
+
}
2622
+
}
2623
+
return null;
2624
+
}
2625
+
2626
+
return createChainableTypeChecker(validate);
2627
+
}
2628
+
2629
+
function isNode(propValue) {
2630
+
switch (typeof propValue) {
2631
+
case 'number':
2632
+
case 'string':
2633
+
case 'undefined':
2634
+
return true;
2635
+
case 'boolean':
2636
+
return !propValue;
2637
+
case 'object':
2638
+
if (Array.isArray(propValue)) {
2639
+
return propValue.every(isNode);
2640
+
}
2641
+
if (propValue === null || isValidElement(propValue)) {
2642
+
return true;
2643
+
}
2644
+
2645
+
var iteratorFn = getIteratorFn(propValue);
2646
+
if (iteratorFn) {
2647
+
var iterator = iteratorFn.call(propValue);
2648
+
var step;
2649
+
if (iteratorFn !== propValue.entries) {
2650
+
while (!(step = iterator.next()).done) {
2651
+
if (!isNode(step.value)) {
2652
+
return false;
2653
+
}
2654
+
}
2655
+
} else {
2656
+
// Iterator will provide entry [k,v] tuples rather than values.
2657
+
while (!(step = iterator.next()).done) {
2658
+
var entry = step.value;
2659
+
if (entry) {
2660
+
if (!isNode(entry[1])) {
2661
+
return false;
2662
+
}
2663
+
}
2664
+
}
2665
+
}
2666
+
} else {
2667
+
return false;
2668
+
}
2669
+
2670
+
return true;
2671
+
default:
2672
+
return false;
2673
+
}
2674
+
}
2675
+
2676
+
function isSymbol(propType, propValue) {
2677
+
// Native Symbol.
2678
+
if (propType === 'symbol') {
2679
+
return true;
2680
+
}
2681
+
2682
+
// falsy value can't be a Symbol
2683
+
if (!propValue) {
2684
+
return false;
2685
+
}
2686
+
2687
+
// 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
2688
+
if (propValue['@@toStringTag'] === 'Symbol') {
2689
+
return true;
2690
+
}
2691
+
2692
+
// Fallback for non-spec compliant Symbols which are polyfilled.
2693
+
if (typeof Symbol === 'function' && propValue instanceof Symbol) {
2694
+
return true;
2695
+
}
2696
+
2697
+
return false;
2698
+
}
2699
+
2700
+
// Equivalent of `typeof` but with special handling for array and regexp.
2701
+
function getPropType(propValue) {
2702
+
var propType = typeof propValue;
2703
+
if (Array.isArray(propValue)) {
2704
+
return 'array';
2705
+
}
2706
+
if (propValue instanceof RegExp) {
2707
+
// Old webkits (at least until Android 4.0) return 'function' rather than
2708
+
// 'object' for typeof a RegExp. We'll normalize this here so that /bla/
2709
+
// passes PropTypes.object.
2710
+
return 'object';
2711
+
}
2712
+
if (isSymbol(propType, propValue)) {
2713
+
return 'symbol';
2714
+
}
2715
+
return propType;
2716
+
}
2717
+
2718
+
// This handles more types than `getPropType`. Only used for error messages.
2719
+
// See `createPrimitiveTypeChecker`.
2720
+
function getPreciseType(propValue) {
2721
+
if (typeof propValue === 'undefined' || propValue === null) {
2722
+
return '' + propValue;
2723
+
}
2724
+
var propType = getPropType(propValue);
2725
+
if (propType === 'object') {
2726
+
if (propValue instanceof Date) {
2727
+
return 'date';
2728
+
} else if (propValue instanceof RegExp) {
2729
+
return 'regexp';
2730
+
}
2731
+
}
2732
+
return propType;
2733
+
}
2734
+
2735
+
// Returns a string that is postfixed to a warning about an invalid type.
2736
+
// For example, "undefined" or "of type array"
2737
+
function getPostfixForTypeWarning(value) {
2738
+
var type = getPreciseType(value);
2739
+
switch (type) {
2740
+
case 'array':
2741
+
case 'object':
2742
+
return 'an ' + type;
2743
+
case 'boolean':
2744
+
case 'date':
2745
+
case 'regexp':
2746
+
return 'a ' + type;
2747
+
default:
2748
+
return type;
2749
+
}
2750
+
}
2751
+
2752
+
// Returns class name of the object, if any.
2753
+
function getClassName(propValue) {
2754
+
if (!propValue.constructor || !propValue.constructor.name) {
2755
+
return ANONYMOUS;
2756
+
}
2757
+
return propValue.constructor.name;
2758
+
}
2759
+
2760
+
ReactPropTypes.checkPropTypes = checkPropTypes;
2761
+
ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
2762
+
ReactPropTypes.PropTypes = ReactPropTypes;
2763
+
2764
+
return ReactPropTypes;
2765
+
};
2766
+
2767
+
2768
+
/***/ }),
2769
+
2770
+
/***/ "../node_modules/prop-types/index.js":
2771
+
/*!*******************************************!*\
2772
+
!*** ../node_modules/prop-types/index.js ***!
2773
+
\*******************************************/
2774
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2775
+
2776
+
/**
2777
+
* Copyright (c) 2013-present, Facebook, Inc.
2778
+
*
2779
+
* This source code is licensed under the MIT license found in the
2780
+
* LICENSE file in the root directory of this source tree.
2781
+
*/
2782
+
2783
+
if (true) {
2784
+
var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
2785
+
2786
+
// By explicitly using `prop-types` you are opting into new development behavior.
2787
+
// http://fb.me/prop-types-in-prod
2788
+
var throwOnDirectAccess = true;
2789
+
module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
2790
+
} else // removed by dead control flow
2791
+
{}
2792
+
2793
+
2794
+
/***/ }),
2795
+
2796
+
/***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
2797
+
/*!**************************************************************!*\
2798
+
!*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
2799
+
\**************************************************************/
2800
+
/***/ ((module) => {
2801
+
2802
+
"use strict";
2803
+
/**
2804
+
* Copyright (c) 2013-present, Facebook, Inc.
2805
+
*
2806
+
* This source code is licensed under the MIT license found in the
2807
+
* LICENSE file in the root directory of this source tree.
2808
+
*/
2809
+
2810
+
2811
+
2812
+
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
2813
+
2814
+
module.exports = ReactPropTypesSecret;
2815
+
2816
+
2817
+
/***/ }),
2818
+
2819
+
/***/ "../node_modules/prop-types/lib/has.js":
2820
+
/*!*********************************************!*\
2821
+
!*** ../node_modules/prop-types/lib/has.js ***!
2822
+
\*********************************************/
2823
+
/***/ ((module) => {
2824
+
2825
+
module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
2826
+
2827
+
2828
+
/***/ }),
2829
+
2830
+
/***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
2831
+
/*!************************************************************************************!*\
2832
+
!*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
2833
+
\************************************************************************************/
2834
+
/***/ ((__unused_webpack_module, exports) => {
2835
+
2836
+
"use strict";
2837
+
/** @license React v16.13.1
2838
+
* react-is.development.js
2839
+
*
2840
+
* Copyright (c) Facebook, Inc. and its affiliates.
2841
+
*
2842
+
* This source code is licensed under the MIT license found in the
2843
+
* LICENSE file in the root directory of this source tree.
2844
+
*/
2845
+
2846
+
2847
+
2848
+
2849
+
2850
+
if (true) {
2851
+
(function() {
2852
+
'use strict';
2853
+
2854
+
// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
2855
+
// nor polyfill, then a plain number is used for performance.
2856
+
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
2857
+
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
2858
+
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
2859
+
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
2860
+
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
2861
+
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
2862
+
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
2863
+
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
2864
+
// (unstable) APIs that have been removed. Can we remove the symbols?
2865
+
2866
+
var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
2867
+
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
2868
+
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
2869
+
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
2870
+
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
2871
+
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
2872
+
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
2873
+
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
2874
+
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
2875
+
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
2876
+
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
2877
+
2878
+
function isValidElementType(type) {
2879
+
return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
2880
+
type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
2881
+
}
2882
+
2883
+
function typeOf(object) {
2884
+
if (typeof object === 'object' && object !== null) {
2885
+
var $$typeof = object.$$typeof;
2886
+
2887
+
switch ($$typeof) {
2888
+
case REACT_ELEMENT_TYPE:
2889
+
var type = object.type;
2890
+
2891
+
switch (type) {
2892
+
case REACT_ASYNC_MODE_TYPE:
2893
+
case REACT_CONCURRENT_MODE_TYPE:
2894
+
case REACT_FRAGMENT_TYPE:
2895
+
case REACT_PROFILER_TYPE:
2896
+
case REACT_STRICT_MODE_TYPE:
2897
+
case REACT_SUSPENSE_TYPE:
2898
+
return type;
2899
+
2900
+
default:
2901
+
var $$typeofType = type && type.$$typeof;
2902
+
2903
+
switch ($$typeofType) {
2904
+
case REACT_CONTEXT_TYPE:
2905
+
case REACT_FORWARD_REF_TYPE:
2906
+
case REACT_LAZY_TYPE:
2907
+
case REACT_MEMO_TYPE:
2908
+
case REACT_PROVIDER_TYPE:
2909
+
return $$typeofType;
2910
+
2911
+
default:
2912
+
return $$typeof;
2913
+
}
2914
+
2915
+
}
2916
+
2917
+
case REACT_PORTAL_TYPE:
2918
+
return $$typeof;
2919
+
}
2920
+
}
2921
+
2922
+
return undefined;
2923
+
} // AsyncMode is deprecated along with isAsyncMode
2924
+
2925
+
var AsyncMode = REACT_ASYNC_MODE_TYPE;
2926
+
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
2927
+
var ContextConsumer = REACT_CONTEXT_TYPE;
2928
+
var ContextProvider = REACT_PROVIDER_TYPE;
2929
+
var Element = REACT_ELEMENT_TYPE;
2930
+
var ForwardRef = REACT_FORWARD_REF_TYPE;
2931
+
var Fragment = REACT_FRAGMENT_TYPE;
2932
+
var Lazy = REACT_LAZY_TYPE;
2933
+
var Memo = REACT_MEMO_TYPE;
2934
+
var Portal = REACT_PORTAL_TYPE;
2935
+
var Profiler = REACT_PROFILER_TYPE;
2936
+
var StrictMode = REACT_STRICT_MODE_TYPE;
2937
+
var Suspense = REACT_SUSPENSE_TYPE;
2938
+
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
2939
+
2940
+
function isAsyncMode(object) {
2941
+
{
2942
+
if (!hasWarnedAboutDeprecatedIsAsyncMode) {
2943
+
hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
2944
+
2945
+
console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
2946
+
}
2947
+
}
2948
+
2949
+
return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
2950
+
}
2951
+
function isConcurrentMode(object) {
2952
+
return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
2953
+
}
2954
+
function isContextConsumer(object) {
2955
+
return typeOf(object) === REACT_CONTEXT_TYPE;
2956
+
}
2957
+
function isContextProvider(object) {
2958
+
return typeOf(object) === REACT_PROVIDER_TYPE;
2959
+
}
2960
+
function isElement(object) {
2961
+
return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
2962
+
}
2963
+
function isForwardRef(object) {
2964
+
return typeOf(object) === REACT_FORWARD_REF_TYPE;
2965
+
}
2966
+
function isFragment(object) {
2967
+
return typeOf(object) === REACT_FRAGMENT_TYPE;
2968
+
}
2969
+
function isLazy(object) {
2970
+
return typeOf(object) === REACT_LAZY_TYPE;
2971
+
}
2972
+
function isMemo(object) {
2973
+
return typeOf(object) === REACT_MEMO_TYPE;
2974
+
}
2975
+
function isPortal(object) {
2976
+
return typeOf(object) === REACT_PORTAL_TYPE;
2977
+
}
2978
+
function isProfiler(object) {
2979
+
return typeOf(object) === REACT_PROFILER_TYPE;
2980
+
}
2981
+
function isStrictMode(object) {
2982
+
return typeOf(object) === REACT_STRICT_MODE_TYPE;
2983
+
}
2984
+
function isSuspense(object) {
2985
+
return typeOf(object) === REACT_SUSPENSE_TYPE;
2986
+
}
2987
+
2988
+
exports.AsyncMode = AsyncMode;
2989
+
exports.ConcurrentMode = ConcurrentMode;
2990
+
exports.ContextConsumer = ContextConsumer;
2991
+
exports.ContextProvider = ContextProvider;
2992
+
exports.Element = Element;
2993
+
exports.ForwardRef = ForwardRef;
2994
+
exports.Fragment = Fragment;
2995
+
exports.Lazy = Lazy;
2996
+
exports.Memo = Memo;
2997
+
exports.Portal = Portal;
2998
+
exports.Profiler = Profiler;
2999
+
exports.StrictMode = StrictMode;
3000
+
exports.Suspense = Suspense;
3001
+
exports.isAsyncMode = isAsyncMode;
3002
+
exports.isConcurrentMode = isConcurrentMode;
3003
+
exports.isContextConsumer = isContextConsumer;
3004
+
exports.isContextProvider = isContextProvider;
3005
+
exports.isElement = isElement;
3006
+
exports.isForwardRef = isForwardRef;
3007
+
exports.isFragment = isFragment;
3008
+
exports.isLazy = isLazy;
3009
+
exports.isMemo = isMemo;
3010
+
exports.isPortal = isPortal;
3011
+
exports.isProfiler = isProfiler;
3012
+
exports.isStrictMode = isStrictMode;
3013
+
exports.isSuspense = isSuspense;
3014
+
exports.isValidElementType = isValidElementType;
3015
+
exports.typeOf = typeOf;
3016
+
})();
3017
+
}
3018
+
3019
+
3020
+
/***/ }),
3021
+
3022
+
/***/ "../node_modules/prop-types/node_modules/react-is/index.js":
3023
+
/*!*****************************************************************!*\
3024
+
!*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
3025
+
\*****************************************************************/
3026
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3027
+
3028
+
"use strict";
3029
+
3030
+
3031
+
if (false) // removed by dead control flow
3032
+
{} else {
3033
+
module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
3034
+
}
3035
+
3036
+
3037
+
/***/ }),
3038
+
3039
+
/***/ "../node_modules/react-dom/client.js":
3040
+
/*!*******************************************!*\
3041
+
!*** ../node_modules/react-dom/client.js ***!
3042
+
\*******************************************/
3043
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3044
+
3045
+
"use strict";
3046
+
3047
+
3048
+
var m = __webpack_require__(/*! react-dom */ "react-dom");
3049
+
if (false) // removed by dead control flow
3050
+
{} else {
3051
+
var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
3052
+
exports.createRoot = function(c, o) {
3053
+
i.usingClientEntryPoint = true;
3054
+
try {
3055
+
return m.createRoot(c, o);
3056
+
} finally {
3057
+
i.usingClientEntryPoint = false;
3058
+
}
3059
+
};
3060
+
exports.hydrateRoot = function(c, h, o) {
3061
+
i.usingClientEntryPoint = true;
3062
+
try {
3063
+
return m.hydrateRoot(c, h, o);
3064
+
} finally {
3065
+
i.usingClientEntryPoint = false;
3066
+
}
3067
+
};
3068
+
}
3069
+
3070
+
3071
+
/***/ }),
3072
+
3073
+
/***/ "@elementor/ui":
3074
+
/*!*********************************!*\
3075
+
!*** external "elementorV2.ui" ***!
3076
+
\*********************************/
3077
+
/***/ ((module) => {
3078
+
3079
+
"use strict";
3080
+
module.exports = elementorV2.ui;
3081
+
3082
+
/***/ }),
3083
+
3084
+
/***/ "@wordpress/i18n":
3085
+
/*!**************************!*\
3086
+
!*** external "wp.i18n" ***!
3087
+
\**************************/
3088
+
/***/ ((module) => {
3089
+
3090
+
"use strict";
3091
+
module.exports = wp.i18n;
3092
+
3093
+
/***/ }),
3094
+
3095
+
/***/ "react":
3096
+
/*!************************!*\
3097
+
!*** external "React" ***!
3098
+
\************************/
3099
+
/***/ ((module) => {
3100
+
3101
+
"use strict";
3102
+
module.exports = React;
3103
+
3104
+
/***/ }),
3105
+
3106
+
/***/ "react-dom":
3107
+
/*!***************************!*\
3108
+
!*** external "ReactDOM" ***!
3109
+
\***************************/
3110
+
/***/ ((module) => {
3111
+
3112
+
"use strict";
3113
+
module.exports = ReactDOM;
3114
+
3115
+
/***/ })
3116
+
3117
+
/******/ });
3118
+
/************************************************************************/
3119
+
/******/ // The module cache
3120
+
/******/ var __webpack_module_cache__ = {};
3121
+
/******/
3122
+
/******/ // The require function
3123
+
/******/ function __webpack_require__(moduleId) {
3124
+
/******/ // Check if module is in cache
3125
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
3126
+
/******/ if (cachedModule !== undefined) {
3127
+
/******/ return cachedModule.exports;
3128
+
/******/ }
3129
+
/******/ // Create a new module (and put it into the cache)
3130
+
/******/ var module = __webpack_module_cache__[moduleId] = {
3131
+
/******/ // no module.id needed
3132
+
/******/ // no module.loaded needed
3133
+
/******/ exports: {}
3134
+
/******/ };
3135
+
/******/
3136
+
/******/ // Execute the module function
3137
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
3138
+
/******/
3139
+
/******/ // Return the exports of the module
3140
+
/******/ return module.exports;
3141
+
/******/ }
3142
+
/******/
3143
+
/************************************************************************/
3144
+
var __webpack_exports__ = {};
3145
+
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
3146
+
(() => {
3147
+
"use strict";
3148
+
/*!******************************************************!*\
3149
+
!*** ../modules/promotions/assets/js/react/index.js ***!
3150
+
\******************************************************/
3151
+
3152
+
3153
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3154
+
var _module = _interopRequireDefault(__webpack_require__(/*! ./module.js */ "../modules/promotions/assets/js/react/module.js"));
3155
+
new _module.default();
3156
+
})();
3157
+
3158
+
/******/ })()
3159
+
;
3160
+
//# sourceMappingURL=e-react-promotions.js.map