PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta3
Elementor Website Builder – more than just a page builder v4.3.0-beta3
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / assets / js / editor-notifications.js

editor-notifications.js in Elementor Website Builder – more than just a page builder 4.3.0-beta3, at assets/js/editor-notifications.js

1,578 lines 64.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function(_wordpress_i18n, react, react_dom, _elementor_ui, _elementor_query, _elementor_icons, _elementor_editor_app_bar, _elementor_icons_SpeakerphoneIcon) {
2
3 //#region \0rolldown/runtime.js
4 var __create = Object.create;
5 var __defProp = Object.defineProperty;
6 var __name = (target, value) => __defProp(target, "name", {
7 value,
8 configurable: true
9 });
10 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11 var __getOwnPropNames = Object.getOwnPropertyNames;
12 var __getProtoOf = Object.getPrototypeOf;
13 var __hasOwnProp = Object.prototype.hasOwnProperty;
14 var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
15 var __copyProps = (to, from, except, desc) => {
16 if (from && typeof from === "object" || typeof from === "function") {
17 for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
18 key = keys[i];
19 if (!__hasOwnProp.call(to, key) && key !== except) {
20 __defProp(to, key, {
21 get: ((k) => from[k]).bind(null, key),
22 enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23 });
24 }
25 }
26 }
27 return to;
28 };
29 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30 value: mod,
31 enumerable: true
32 }) : target, mod));
33
34 //#endregion
35 react = __toESM(react);
36 react_dom = __toESM(react_dom);
37 _elementor_editor_app_bar = __toESM(_elementor_editor_app_bar);
38 _elementor_icons_SpeakerphoneIcon = __toESM(_elementor_icons_SpeakerphoneIcon);
39
40 //#region node_modules/react-dom/client.js
41 var require_client = /* @__PURE__ */ __commonJSMin(((exports) => {
42 var m = (globalThis.ReactDOM);
43 var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
44 exports.createRoot = function(c, o) {
45 i.usingClientEntryPoint = true;
46 try {
47 return m.createRoot(c, o);
48 } finally {
49 i.usingClientEntryPoint = false;
50 }
51 };
52 }));
53
54 //#endregion
55 //#region assets/dev/js/utils/react.js
56 var import_client = require_client();
57 /**
58 * Support conditional rendering of a React App to the DOM, based on the React version.
59 * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
60 *
61 * @param {Promise.resolve(React).ReactElement} app The app to render.
62 * @param {HTMLElement} domElement The DOM element to render the app into.
63 *
64 * @return {{ unmount: () => void }} The unmount function.
65 */
66 function render(app, domElement) {
67 var unmountFunction;
68 try {
69 var root = (0, import_client.createRoot)(domElement);
70 root.render(app);
71 unmountFunction = function unmountFunction() {
72 root.unmount();
73 };
74 } catch (e) {
75 react_dom.render(app, domElement);
76 unmountFunction = function unmountFunction() {
77 react_dom.unmountComponentAtNode(domElement);
78 };
79 }
80 return { unmount: unmountFunction };
81 }
82 var react_default = { render };
83
84 //#endregion
85 //#region node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js
86 /** @license React v16.13.1
87 * react-is.development.js
88 *
89 * Copyright (c) Facebook, Inc. and its affiliates.
90 *
91 * This source code is licensed under the MIT license found in the
92 * LICENSE file in the root directory of this source tree.
93 */
94 var require_react_is_development = /* @__PURE__ */ __commonJSMin(((exports) => {
95 (function() {
96 "use strict";
97 var hasSymbol = typeof Symbol === "function" && Symbol.for;
98 var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for("react.element") : 60103;
99 var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for("react.portal") : 60106;
100 var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for("react.fragment") : 60107;
101 var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for("react.strict_mode") : 60108;
102 var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for("react.profiler") : 60114;
103 var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for("react.provider") : 60109;
104 var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for("react.context") : 60110;
105 var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for("react.async_mode") : 60111;
106 var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for("react.concurrent_mode") : 60111;
107 var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for("react.forward_ref") : 60112;
108 var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for("react.suspense") : 60113;
109 var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for("react.suspense_list") : 60120;
110 var REACT_MEMO_TYPE = hasSymbol ? Symbol.for("react.memo") : 60115;
111 var REACT_LAZY_TYPE = hasSymbol ? Symbol.for("react.lazy") : 60116;
112 var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for("react.block") : 60121;
113 var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for("react.fundamental") : 60117;
114 var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for("react.responder") : 60118;
115 var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for("react.scope") : 60119;
116 function isValidElementType(type) {
117 return typeof type === "string" || typeof type === "function" || 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);
118 }
119 function typeOf(object) {
120 if (typeof object === "object" && object !== null) {
121 var $$typeof = object.$$typeof;
122 switch ($$typeof) {
123 case REACT_ELEMENT_TYPE:
124 var type = object.type;
125 switch (type) {
126 case REACT_ASYNC_MODE_TYPE:
127 case REACT_CONCURRENT_MODE_TYPE:
128 case REACT_FRAGMENT_TYPE:
129 case REACT_PROFILER_TYPE:
130 case REACT_STRICT_MODE_TYPE:
131 case REACT_SUSPENSE_TYPE: return type;
132 default:
133 var $$typeofType = type && type.$$typeof;
134 switch ($$typeofType) {
135 case REACT_CONTEXT_TYPE:
136 case REACT_FORWARD_REF_TYPE:
137 case REACT_LAZY_TYPE:
138 case REACT_MEMO_TYPE:
139 case REACT_PROVIDER_TYPE: return $$typeofType;
140 default: return $$typeof;
141 }
142 }
143 case REACT_PORTAL_TYPE: return $$typeof;
144 }
145 }
146 }
147 var AsyncMode = REACT_ASYNC_MODE_TYPE;
148 var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
149 var ContextConsumer = REACT_CONTEXT_TYPE;
150 var ContextProvider = REACT_PROVIDER_TYPE;
151 var Element = REACT_ELEMENT_TYPE;
152 var ForwardRef = REACT_FORWARD_REF_TYPE;
153 var Fragment = REACT_FRAGMENT_TYPE;
154 var Lazy = REACT_LAZY_TYPE;
155 var Memo = REACT_MEMO_TYPE;
156 var Portal = REACT_PORTAL_TYPE;
157 var Profiler = REACT_PROFILER_TYPE;
158 var StrictMode = REACT_STRICT_MODE_TYPE;
159 var Suspense = REACT_SUSPENSE_TYPE;
160 var hasWarnedAboutDeprecatedIsAsyncMode = false;
161 function isAsyncMode(object) {
162 if (!hasWarnedAboutDeprecatedIsAsyncMode) {
163 hasWarnedAboutDeprecatedIsAsyncMode = true;
164 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.");
165 }
166 return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
167 }
168 function isConcurrentMode(object) {
169 return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
170 }
171 function isContextConsumer(object) {
172 return typeOf(object) === REACT_CONTEXT_TYPE;
173 }
174 function isContextProvider(object) {
175 return typeOf(object) === REACT_PROVIDER_TYPE;
176 }
177 function isElement(object) {
178 return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
179 }
180 function isForwardRef(object) {
181 return typeOf(object) === REACT_FORWARD_REF_TYPE;
182 }
183 function isFragment(object) {
184 return typeOf(object) === REACT_FRAGMENT_TYPE;
185 }
186 function isLazy(object) {
187 return typeOf(object) === REACT_LAZY_TYPE;
188 }
189 function isMemo(object) {
190 return typeOf(object) === REACT_MEMO_TYPE;
191 }
192 function isPortal(object) {
193 return typeOf(object) === REACT_PORTAL_TYPE;
194 }
195 function isProfiler(object) {
196 return typeOf(object) === REACT_PROFILER_TYPE;
197 }
198 function isStrictMode(object) {
199 return typeOf(object) === REACT_STRICT_MODE_TYPE;
200 }
201 function isSuspense(object) {
202 return typeOf(object) === REACT_SUSPENSE_TYPE;
203 }
204 exports.AsyncMode = AsyncMode;
205 exports.ConcurrentMode = ConcurrentMode;
206 exports.ContextConsumer = ContextConsumer;
207 exports.ContextProvider = ContextProvider;
208 exports.Element = Element;
209 exports.ForwardRef = ForwardRef;
210 exports.Fragment = Fragment;
211 exports.Lazy = Lazy;
212 exports.Memo = Memo;
213 exports.Portal = Portal;
214 exports.Profiler = Profiler;
215 exports.StrictMode = StrictMode;
216 exports.Suspense = Suspense;
217 exports.isAsyncMode = isAsyncMode;
218 exports.isConcurrentMode = isConcurrentMode;
219 exports.isContextConsumer = isContextConsumer;
220 exports.isContextProvider = isContextProvider;
221 exports.isElement = isElement;
222 exports.isForwardRef = isForwardRef;
223 exports.isFragment = isFragment;
224 exports.isLazy = isLazy;
225 exports.isMemo = isMemo;
226 exports.isPortal = isPortal;
227 exports.isProfiler = isProfiler;
228 exports.isStrictMode = isStrictMode;
229 exports.isSuspense = isSuspense;
230 exports.isValidElementType = isValidElementType;
231 exports.typeOf = typeOf;
232 })();
233 }));
234
235 //#endregion
236 //#region node_modules/prop-types/node_modules/react-is/index.js
237 var require_react_is = /* @__PURE__ */ __commonJSMin(((exports, module) => {
238 module.exports = require_react_is_development();
239 }));
240
241 //#endregion
242 //#region node_modules/object-assign/index.js
243 /*
244 object-assign
245 (c) Sindre Sorhus
246 @license MIT
247 */
248 var require_object_assign = /* @__PURE__ */ __commonJSMin(((exports, module) => {
249 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
250 var hasOwnProperty = Object.prototype.hasOwnProperty;
251 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
252 function toObject(val) {
253 if (val === null || val === void 0) throw new TypeError("Object.assign cannot be called with null or undefined");
254 return Object(val);
255 }
256 function shouldUseNative() {
257 try {
258 if (!Object.assign) return false;
259 var test1 = /* @__PURE__ */ new String("abc");
260 test1[5] = "de";
261 if (Object.getOwnPropertyNames(test1)[0] === "5") return false;
262 var test2 = {};
263 for (var i = 0; i < 10; i++) test2["_" + String.fromCharCode(i)] = i;
264 if (Object.getOwnPropertyNames(test2).map(function(n) {
265 return test2[n];
266 }).join("") !== "0123456789") return false;
267 var test3 = {};
268 "abcdefghijklmnopqrst".split("").forEach(function(letter) {
269 test3[letter] = letter;
270 });
271 if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") return false;
272 return true;
273 } catch (err) {
274 return false;
275 }
276 }
277 module.exports = shouldUseNative() ? Object.assign : function(target, source) {
278 var from;
279 var to = toObject(target);
280 var symbols;
281 for (var s = 1; s < arguments.length; s++) {
282 from = Object(arguments[s]);
283 for (var key in from) if (hasOwnProperty.call(from, key)) to[key] = from[key];
284 if (getOwnPropertySymbols) {
285 symbols = getOwnPropertySymbols(from);
286 for (var i = 0; i < symbols.length; i++) if (propIsEnumerable.call(from, symbols[i])) to[symbols[i]] = from[symbols[i]];
287 }
288 }
289 return to;
290 };
291 }));
292
293 //#endregion
294 //#region node_modules/prop-types/lib/ReactPropTypesSecret.js
295 /**
296 * Copyright (c) 2013-present, Facebook, Inc.
297 *
298 * This source code is licensed under the MIT license found in the
299 * LICENSE file in the root directory of this source tree.
300 */
301 var require_ReactPropTypesSecret = /* @__PURE__ */ __commonJSMin(((exports, module) => {
302 var ReactPropTypesSecret = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";
303 module.exports = ReactPropTypesSecret;
304 }));
305
306 //#endregion
307 //#region node_modules/prop-types/lib/has.js
308 var require_has = /* @__PURE__ */ __commonJSMin(((exports, module) => {
309 module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
310 }));
311
312 //#endregion
313 //#region node_modules/prop-types/checkPropTypes.js
314 /**
315 * Copyright (c) 2013-present, Facebook, Inc.
316 *
317 * This source code is licensed under the MIT license found in the
318 * LICENSE file in the root directory of this source tree.
319 */
320 var require_checkPropTypes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
321 var printWarning = function() {};
322 var ReactPropTypesSecret = require_ReactPropTypesSecret();
323 var loggedTypeFailures = {};
324 var has = require_has();
325 printWarning = function(text) {
326 var message = "Warning: " + text;
327 if (typeof console !== "undefined") console.error(message);
328 try {
329 throw new Error(message);
330 } catch (x) {}
331 };
332 /**
333 * Assert that the values match with the type specs.
334 * Error messages are memorized and will only be shown once.
335 *
336 * @param {object} typeSpecs Map of name to a ReactPropType
337 * @param {object} values Runtime values that need to be type-checked
338 * @param {string} location e.g. "prop", "context", "child context"
339 * @param {string} componentName Name of the component for error messages.
340 * @param {?Function} getStack Returns the component stack.
341 * @private
342 */
343 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
344 for (var typeSpecName in typeSpecs) if (has(typeSpecs, typeSpecName)) {
345 var error;
346 try {
347 if (typeof typeSpecs[typeSpecName] !== "function") {
348 var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
349 err.name = "Invariant Violation";
350 throw err;
351 }
352 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
353 } catch (ex) {
354 error = ex;
355 }
356 if (error && !(error instanceof Error)) printWarning((componentName || "React class") + ": type specification of " + location + " `" + typeSpecName + "` is invalid; the type checker function must return `null` or an `Error` but returned a " + typeof error + ". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).");
357 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
358 loggedTypeFailures[error.message] = true;
359 var stack = getStack ? getStack() : "";
360 printWarning("Failed " + location + " type: " + error.message + (stack != null ? stack : ""));
361 }
362 }
363 }
364 /**
365 * Resets warning cache when testing.
366 *
367 * @private
368 */
369 checkPropTypes.resetWarningCache = function() {
370 loggedTypeFailures = {};
371 };
372 module.exports = checkPropTypes;
373 }));
374
375 //#endregion
376 //#region node_modules/prop-types/factoryWithTypeCheckers.js
377 /**
378 * Copyright (c) 2013-present, Facebook, Inc.
379 *
380 * This source code is licensed under the MIT license found in the
381 * LICENSE file in the root directory of this source tree.
382 */
383 var require_factoryWithTypeCheckers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
384 var ReactIs = require_react_is();
385 var assign = require_object_assign();
386 var ReactPropTypesSecret = require_ReactPropTypesSecret();
387 var has = require_has();
388 var checkPropTypes = require_checkPropTypes();
389 var printWarning = function() {};
390 printWarning = function(text) {
391 var message = "Warning: " + text;
392 if (typeof console !== "undefined") console.error(message);
393 try {
394 throw new Error(message);
395 } catch (x) {}
396 };
397 function emptyFunctionThatReturnsNull() {
398 return null;
399 }
400 module.exports = function(isValidElement, throwOnDirectAccess) {
401 var ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator;
402 var FAUX_ITERATOR_SYMBOL = "@@iterator";
403 /**
404 * Returns the iterator method function contained on the iterable object.
405 *
406 * Be sure to invoke the function with the iterable as context:
407 *
408 * var iteratorFn = getIteratorFn(myIterable);
409 * if (iteratorFn) {
410 * var iterator = iteratorFn.call(myIterable);
411 * ...
412 * }
413 *
414 * @param {?object} maybeIterable
415 * @return {?function}
416 */
417 function getIteratorFn(maybeIterable) {
418 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
419 if (typeof iteratorFn === "function") return iteratorFn;
420 }
421 /**
422 * Collection of methods that allow declaration and validation of props that are
423 * supplied to React components. Example usage:
424 *
425 * var Props = require('ReactPropTypes');
426 * var MyArticle = React.createClass({
427 * propTypes: {
428 * // An optional string prop named "description".
429 * description: Props.string,
430 *
431 * // A required enum prop named "category".
432 * category: Props.oneOf(['News','Photos']).isRequired,
433 *
434 * // A prop named "dialog" that requires an instance of Dialog.
435 * dialog: Props.instanceOf(Dialog).isRequired
436 * },
437 * render: function() { ... }
438 * });
439 *
440 * A more formal specification of how these methods are used:
441 *
442 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
443 * decl := ReactPropTypes.{type}(.isRequired)?
444 *
445 * Each and every declaration produces a function with the same signature. This
446 * allows the creation of custom validation functions. For example:
447 *
448 * var MyLink = React.createClass({
449 * propTypes: {
450 * // An optional string or URI prop named "href".
451 * href: function(props, propName, componentName) {
452 * var propValue = props[propName];
453 * if (propValue != null && typeof propValue !== 'string' &&
454 * !(propValue instanceof URI)) {
455 * return new Error(
456 * 'Expected a string or an URI for ' + propName + ' in ' +
457 * componentName
458 * );
459 * }
460 * }
461 * },
462 * render: function() {...}
463 * });
464 *
465 * @internal
466 */
467 var ANONYMOUS = "<<anonymous>>";
468 var ReactPropTypes = {
469 array: createPrimitiveTypeChecker("array"),
470 bigint: createPrimitiveTypeChecker("bigint"),
471 bool: createPrimitiveTypeChecker("boolean"),
472 func: createPrimitiveTypeChecker("function"),
473 number: createPrimitiveTypeChecker("number"),
474 object: createPrimitiveTypeChecker("object"),
475 string: createPrimitiveTypeChecker("string"),
476 symbol: createPrimitiveTypeChecker("symbol"),
477 any: createAnyTypeChecker(),
478 arrayOf: createArrayOfTypeChecker,
479 element: createElementTypeChecker(),
480 elementType: createElementTypeTypeChecker(),
481 instanceOf: createInstanceTypeChecker,
482 node: createNodeChecker(),
483 objectOf: createObjectOfTypeChecker,
484 oneOf: createEnumTypeChecker,
485 oneOfType: createUnionTypeChecker,
486 shape: createShapeTypeChecker,
487 exact: createStrictShapeTypeChecker
488 };
489 /**
490 * inlined Object.is polyfill to avoid requiring consumers ship their own
491 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
492 */
493 function is(x, y) {
494 if (x === y) return x !== 0 || 1 / x === 1 / y;
495 else return x !== x && y !== y;
496 }
497 /**
498 * We use an Error-like object for backward compatibility as people may call
499 * PropTypes directly and inspect their output. However, we don't use real
500 * Errors anymore. We don't inspect their stack anyway, and creating them
501 * is prohibitively expensive if they are created too often, such as what
502 * happens in oneOfType() for any type before the one that matched.
503 */
504 function PropTypeError(message, data) {
505 this.message = message;
506 this.data = data && typeof data === "object" ? data : {};
507 this.stack = "";
508 }
509 PropTypeError.prototype = Error.prototype;
510 function createChainableTypeChecker(validate) {
511 var manualPropTypeCallCache = {};
512 var manualPropTypeWarningCount = 0;
513 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
514 componentName = componentName || ANONYMOUS;
515 propFullName = propFullName || propName;
516 if (secret !== ReactPropTypesSecret) {
517 if (throwOnDirectAccess) {
518 var err = /* @__PURE__ */ new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");
519 err.name = "Invariant Violation";
520 throw err;
521 } else if (typeof console !== "undefined") {
522 var cacheKey = componentName + ":" + propName;
523 if (!manualPropTypeCallCache[cacheKey] && manualPropTypeWarningCount < 3) {
524 printWarning("You are manually calling a React.PropTypes validation function for the `" + propFullName + "` prop on `" + componentName + "`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.");
525 manualPropTypeCallCache[cacheKey] = true;
526 manualPropTypeWarningCount++;
527 }
528 }
529 }
530 if (props[propName] == null) {
531 if (isRequired) {
532 if (props[propName] === null) return new PropTypeError("The " + location + " `" + propFullName + "` is marked as required " + ("in `" + componentName + "`, but its value is `null`."));
533 return new PropTypeError("The " + location + " `" + propFullName + "` is marked as required in " + ("`" + componentName + "`, but its value is `undefined`."));
534 }
535 return null;
536 } else return validate(props, propName, componentName, location, propFullName);
537 }
538 var chainedCheckType = checkType.bind(null, false);
539 chainedCheckType.isRequired = checkType.bind(null, true);
540 return chainedCheckType;
541 }
542 function createPrimitiveTypeChecker(expectedType) {
543 function validate(props, propName, componentName, location, propFullName, secret) {
544 var propValue = props[propName];
545 if (getPropType(propValue) !== expectedType) {
546 var preciseType = getPreciseType(propValue);
547 return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + preciseType + "` supplied to `" + componentName + "`, expected ") + ("`" + expectedType + "`."), { expectedType });
548 }
549 return null;
550 }
551 return createChainableTypeChecker(validate);
552 }
553 function createAnyTypeChecker() {
554 return createChainableTypeChecker(emptyFunctionThatReturnsNull);
555 }
556 function createArrayOfTypeChecker(typeChecker) {
557 function validate(props, propName, componentName, location, propFullName) {
558 if (typeof typeChecker !== "function") return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside arrayOf.");
559 var propValue = props[propName];
560 if (!Array.isArray(propValue)) {
561 var propType = getPropType(propValue);
562 return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an array."));
563 }
564 for (var i = 0; i < propValue.length; i++) {
565 var error = typeChecker(propValue, i, componentName, location, propFullName + "[" + i + "]", ReactPropTypesSecret);
566 if (error instanceof Error) return error;
567 }
568 return null;
569 }
570 return createChainableTypeChecker(validate);
571 }
572 function createElementTypeChecker() {
573 function validate(props, propName, componentName, location, propFullName) {
574 var propValue = props[propName];
575 if (!isValidElement(propValue)) {
576 var propType = getPropType(propValue);
577 return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected a single ReactElement."));
578 }
579 return null;
580 }
581 return createChainableTypeChecker(validate);
582 }
583 function createElementTypeTypeChecker() {
584 function validate(props, propName, componentName, location, propFullName) {
585 var propValue = props[propName];
586 if (!ReactIs.isValidElementType(propValue)) {
587 var propType = getPropType(propValue);
588 return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected a single ReactElement type."));
589 }
590 return null;
591 }
592 return createChainableTypeChecker(validate);
593 }
594 function createInstanceTypeChecker(expectedClass) {
595 function validate(props, propName, componentName, location, propFullName) {
596 if (!(props[propName] instanceof expectedClass)) {
597 var expectedClassName = expectedClass.name || ANONYMOUS;
598 var actualClassName = getClassName(props[propName]);
599 return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + actualClassName + "` supplied to `" + componentName + "`, expected ") + ("instance of `" + expectedClassName + "`."));
600 }
601 return null;
602 }
603 return createChainableTypeChecker(validate);
604 }
605 function createEnumTypeChecker(expectedValues) {
606 if (!Array.isArray(expectedValues)) {
607 if (arguments.length > 1) printWarning("Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).");
608 else printWarning("Invalid argument supplied to oneOf, expected an array.");
609 return emptyFunctionThatReturnsNull;
610 }
611 function validate(props, propName, componentName, location, propFullName) {
612 var propValue = props[propName];
613 for (var i = 0; i < expectedValues.length; i++) if (is(propValue, expectedValues[i])) return null;
614 var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
615 if (getPreciseType(value) === "symbol") return String(value);
616 return value;
617 });
618 return new PropTypeError("Invalid " + location + " `" + propFullName + "` of value `" + String(propValue) + "` " + ("supplied to `" + componentName + "`, expected one of " + valuesString + "."));
619 }
620 return createChainableTypeChecker(validate);
621 }
622 function createObjectOfTypeChecker(typeChecker) {
623 function validate(props, propName, componentName, location, propFullName) {
624 if (typeof typeChecker !== "function") return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside objectOf.");
625 var propValue = props[propName];
626 var propType = getPropType(propValue);
627 if (propType !== "object") return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an object."));
628 for (var key in propValue) if (has(propValue, key)) {
629 var error = typeChecker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret);
630 if (error instanceof Error) return error;
631 }
632 return null;
633 }
634 return createChainableTypeChecker(validate);
635 }
636 function createUnionTypeChecker(arrayOfTypeCheckers) {
637 if (!Array.isArray(arrayOfTypeCheckers)) {
638 printWarning("Invalid argument supplied to oneOfType, expected an instance of array.");
639 return emptyFunctionThatReturnsNull;
640 }
641 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
642 var checker = arrayOfTypeCheckers[i];
643 if (typeof checker !== "function") {
644 printWarning("Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + getPostfixForTypeWarning(checker) + " at index " + i + ".");
645 return emptyFunctionThatReturnsNull;
646 }
647 }
648 function validate(props, propName, componentName, location, propFullName) {
649 var expectedTypes = [];
650 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
651 var checker = arrayOfTypeCheckers[i];
652 var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
653 if (checkerResult == null) return null;
654 if (checkerResult.data && has(checkerResult.data, "expectedType")) expectedTypes.push(checkerResult.data.expectedType);
655 }
656 var expectedTypesMessage = expectedTypes.length > 0 ? ", expected one of type [" + expectedTypes.join(", ") + "]" : "";
657 return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to " + ("`" + componentName + "`" + expectedTypesMessage + "."));
658 }
659 return createChainableTypeChecker(validate);
660 }
661 function createNodeChecker() {
662 function validate(props, propName, componentName, location, propFullName) {
663 if (!isNode(props[propName])) return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to " + ("`" + componentName + "`, expected a ReactNode."));
664 return null;
665 }
666 return createChainableTypeChecker(validate);
667 }
668 function invalidValidatorError(componentName, location, propFullName, key, type) {
669 return new PropTypeError((componentName || "React class") + ": " + location + " type `" + propFullName + "." + key + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + type + "`.");
670 }
671 function createShapeTypeChecker(shapeTypes) {
672 function validate(props, propName, componentName, location, propFullName) {
673 var propValue = props[propName];
674 var propType = getPropType(propValue);
675 if (propType !== "object") return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` " + ("supplied to `" + componentName + "`, expected `object`."));
676 for (var key in shapeTypes) {
677 var checker = shapeTypes[key];
678 if (typeof checker !== "function") return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
679 var error = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret);
680 if (error) return error;
681 }
682 return null;
683 }
684 return createChainableTypeChecker(validate);
685 }
686 function createStrictShapeTypeChecker(shapeTypes) {
687 function validate(props, propName, componentName, location, propFullName) {
688 var propValue = props[propName];
689 var propType = getPropType(propValue);
690 if (propType !== "object") return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` " + ("supplied to `" + componentName + "`, expected `object`."));
691 for (var key in assign({}, props[propName], shapeTypes)) {
692 var checker = shapeTypes[key];
693 if (has(shapeTypes, key) && typeof checker !== "function") return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
694 if (!checker) return new PropTypeError("Invalid " + location + " `" + propFullName + "` key `" + key + "` supplied to `" + componentName + "`.\nBad object: " + JSON.stringify(props[propName], null, " ") + "\nValid keys: " + JSON.stringify(Object.keys(shapeTypes), null, " "));
695 var error = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret);
696 if (error) return error;
697 }
698 return null;
699 }
700 return createChainableTypeChecker(validate);
701 }
702 function isNode(propValue) {
703 switch (typeof propValue) {
704 case "number":
705 case "string":
706 case "undefined": return true;
707 case "boolean": return !propValue;
708 case "object":
709 if (Array.isArray(propValue)) return propValue.every(isNode);
710 if (propValue === null || isValidElement(propValue)) return true;
711 var iteratorFn = getIteratorFn(propValue);
712 if (iteratorFn) {
713 var iterator = iteratorFn.call(propValue);
714 var step;
715 if (iteratorFn !== propValue.entries) {
716 while (!(step = iterator.next()).done) if (!isNode(step.value)) return false;
717 } else while (!(step = iterator.next()).done) {
718 var entry = step.value;
719 if (entry) {
720 if (!isNode(entry[1])) return false;
721 }
722 }
723 } else return false;
724 return true;
725 default: return false;
726 }
727 }
728 function isSymbol(propType, propValue) {
729 if (propType === "symbol") return true;
730 if (!propValue) return false;
731 if (propValue["@@toStringTag"] === "Symbol") return true;
732 if (typeof Symbol === "function" && propValue instanceof Symbol) return true;
733 return false;
734 }
735 function getPropType(propValue) {
736 var propType = typeof propValue;
737 if (Array.isArray(propValue)) return "array";
738 if (propValue instanceof RegExp) return "object";
739 if (isSymbol(propType, propValue)) return "symbol";
740 return propType;
741 }
742 function getPreciseType(propValue) {
743 if (typeof propValue === "undefined" || propValue === null) return "" + propValue;
744 var propType = getPropType(propValue);
745 if (propType === "object") {
746 if (propValue instanceof Date) return "date";
747 else if (propValue instanceof RegExp) return "regexp";
748 }
749 return propType;
750 }
751 function getPostfixForTypeWarning(value) {
752 var type = getPreciseType(value);
753 switch (type) {
754 case "array":
755 case "object": return "an " + type;
756 case "boolean":
757 case "date":
758 case "regexp": return "a " + type;
759 default: return type;
760 }
761 }
762 function getClassName(propValue) {
763 if (!propValue.constructor || !propValue.constructor.name) return ANONYMOUS;
764 return propValue.constructor.name;
765 }
766 ReactPropTypes.checkPropTypes = checkPropTypes;
767 ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
768 ReactPropTypes.PropTypes = ReactPropTypes;
769 return ReactPropTypes;
770 };
771 }));
772
773 //#endregion
774 //#region node_modules/prop-types/index.js
775 var require_prop_types = /* @__PURE__ */ __commonJSMin(((exports, module) => {
776 var ReactIs = require_react_is();
777 var throwOnDirectAccess = true;
778 module.exports = require_factoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);
779 }));
780
781 //#endregion
782 //#region node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
783 var import_prop_types = /* @__PURE__ */ __toESM(require_prop_types());
784 function _arrayWithHoles(r) {
785 if (Array.isArray(r)) return r;
786 }
787
788 //#endregion
789 //#region node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
790 function _iterableToArrayLimit(r, l) {
791 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
792 if (null != t) {
793 var e;
794 var n;
795 var i;
796 var u;
797 var a = [];
798 var f = !0;
799 var o = !1;
800 try {
801 if (i = (t = t.call(r)).next, 0 === l) {
802 if (Object(t) !== t) return;
803 f = !1;
804 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
805 } catch (r) {
806 o = !0, n = r;
807 } finally {
808 try {
809 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
810 } finally {
811 if (o) throw n;
812 }
813 }
814 return a;
815 }
816 }
817
818 //#endregion
819 //#region node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
820 function _arrayLikeToArray(r, a) {
821 (null == a || a > r.length) && (a = r.length);
822 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
823 return n;
824 }
825
826 //#endregion
827 //#region node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
828 function _unsupportedIterableToArray(r, a) {
829 if (r) {
830 if ("string" == typeof r) return _arrayLikeToArray(r, a);
831 var t = {}.toString.call(r).slice(8, -1);
832 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;
833 }
834 }
835
836 //#endregion
837 //#region node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
838 function _nonIterableRest() {
839 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
840 }
841
842 //#endregion
843 //#region node_modules/@babel/runtime/helpers/esm/slicedToArray.js
844 function _slicedToArray(r, e) {
845 return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
846 }
847
848 //#endregion
849 //#region node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
850 function _arrayWithoutHoles(r) {
851 if (Array.isArray(r)) return _arrayLikeToArray(r);
852 }
853
854 //#endregion
855 //#region node_modules/@babel/runtime/helpers/esm/iterableToArray.js
856 function _iterableToArray(r) {
857 if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
858 }
859
860 //#endregion
861 //#region node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
862 function _nonIterableSpread() {
863 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
864 }
865
866 //#endregion
867 //#region node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
868 function _toConsumableArray(r) {
869 return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
870 }
871
872 //#endregion
873 //#region node_modules/@babel/runtime/helpers/esm/extends.js
874 function _extends() {
875 return _extends = Object.assign ? Object.assign.bind() : function(n) {
876 for (var e = 1; e < arguments.length; e++) {
877 var t = arguments[e];
878 for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
879 }
880 return n;
881 }, _extends.apply(null, arguments);
882 }
883
884 //#endregion
885 //#region modules/notifications/assets/js/icons/x-icon.js
886 var XIcon = (0, react.forwardRef)(function(props, ref) {
887 return /*#__PURE__*/ react.default.createElement(_elementor_ui.SvgIcon, _extends({ viewBox: "0 0 24 24" }, props, { ref }), /*#__PURE__*/ react.default.createElement("path", {
888 fillRule: "evenodd",
889 clipRule: "evenodd",
890 d: "M18.5303 5.46967C18.8232 5.76256 18.8232 6.23744 18.5303 6.53033L6.53033 18.5303C6.23744 18.8232 5.76256 18.8232 5.46967 18.5303C5.17678 18.2374 5.17678 17.7626 5.46967 17.4697L17.4697 5.46967C17.7626 5.17678 18.2374 5.17678 18.5303 5.46967Z"
891 }), /*#__PURE__*/ react.default.createElement("path", {
892 fillRule: "evenodd",
893 clipRule: "evenodd",
894 d: "M5.46967 5.46967C5.76256 5.17678 6.23744 5.17678 6.53033 5.46967L18.5303 17.4697C18.8232 17.7626 18.8232 18.2374 18.5303 18.5303C18.2374 18.8232 17.7626 18.8232 17.4697 18.5303L5.46967 6.53033C5.17678 6.23744 5.17678 5.76256 5.46967 5.46967Z"
895 }));
896 });
897
898 //#endregion
899 //#region modules/notifications/assets/js/components/whats-new-top-bar.js
900 var WhatsNewTopBar = function WhatsNewTopBar(props) {
901 var setIsOpen = props.setIsOpen;
902 return /*#__PURE__*/ react.default.createElement(react.default.Fragment, null, /*#__PURE__*/ react.default.createElement(_elementor_ui.AppBar, {
903 elevation: 0,
904 position: "sticky",
905 sx: { backgroundColor: "background.default" }
906 }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Toolbar, { variant: "dense" }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, {
907 variant: "overline",
908 sx: { flexGrow: 1 }
909 }, (0, _wordpress_i18n.__)("What's New", "elementor")), /*#__PURE__*/ react.default.createElement(_elementor_ui.IconButton, {
910 "aria-label": "close",
911 size: "small",
912 onClick: function onClick() {
913 return setIsOpen(false);
914 }
915 }, /*#__PURE__*/ react.default.createElement(XIcon, null)))), /*#__PURE__*/ react.default.createElement(_elementor_ui.Divider, null));
916 };
917 WhatsNewTopBar.propTypes = { setIsOpen: import_prop_types.default.func.isRequired };
918
919 //#endregion
920 //#region modules/notifications/assets/js/api/index.js
921 var request = function request(endpoint) {
922 var data = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
923 return new Promise(function(resolve, reject) {
924 elementorCommon.ajax.addRequest(endpoint, {
925 success: resolve,
926 error: reject,
927 data
928 });
929 });
930 };
931 var getNotifications = function getNotifications() {
932 return request("notifications_get");
933 };
934
935 //#endregion
936 //#region node_modules/@babel/runtime/helpers/esm/typeof.js
937 function _typeof(o) {
938 "@babel/helpers - typeof";
939 return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
940 return typeof o;
941 } : function(o) {
942 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
943 }, _typeof(o);
944 }
945
946 //#endregion
947 //#region node_modules/@babel/runtime/helpers/esm/toPrimitive.js
948 function toPrimitive(t, r) {
949 if ("object" != _typeof(t) || !t) return t;
950 var e = t[Symbol.toPrimitive];
951 if (void 0 !== e) {
952 var i = e.call(t, r || "default");
953 if ("object" != _typeof(i)) return i;
954 throw new TypeError("@@toPrimitive must return a primitive value.");
955 }
956 return ("string" === r ? String : Number)(t);
957 }
958
959 //#endregion
960 //#region node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
961 function toPropertyKey(t) {
962 var i = toPrimitive(t, "string");
963 return "symbol" == _typeof(i) ? i : i + "";
964 }
965
966 //#endregion
967 //#region node_modules/@babel/runtime/helpers/esm/defineProperty.js
968 function _defineProperty(e, r, t) {
969 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
970 value: t,
971 enumerable: !0,
972 configurable: !0,
973 writable: !0
974 }) : e[r] = t, e;
975 }
976
977 //#endregion
978 //#region modules/notifications/assets/js/components/whats-new-item-topic-line.js
979 var WhatsNewItemTopicLine = function WhatsNewItemTopicLine(_ref) {
980 var topic = _ref.topic;
981 var date = _ref.date;
982 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, {
983 direction: "row",
984 divider: /*#__PURE__*/ react.default.createElement(_elementor_ui.Divider, {
985 orientation: "vertical",
986 flexItem: true
987 }),
988 spacing: 1,
989 color: "text.tertiary",
990 sx: { pb: 1 }
991 }, topic && /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, null, topic), date && /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, null, date));
992 };
993 WhatsNewItemTopicLine.propTypes = {
994 topic: import_prop_types.default.string,
995 date: import_prop_types.default.string
996 };
997
998 //#endregion
999 //#region modules/notifications/assets/js/components/wrapper-with-link.js
1000 var WrapperWithLink = function WrapperWithLink(props) {
1001 var link = props.link;
1002 var children = props.children;
1003 if (!link) return children;
1004 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Link, {
1005 href: link,
1006 target: "_blank",
1007 underline: "none",
1008 color: "inherit",
1009 sx: { "&:hover": { color: "inherit" } }
1010 }, children);
1011 };
1012 WrapperWithLink.propTypes = {
1013 link: import_prop_types.default.string,
1014 children: import_prop_types.default.any.isRequired
1015 };
1016
1017 //#endregion
1018 //#region modules/notifications/assets/js/components/whats-new-item-thumbnail.js
1019 var WhatsNewItemThumbnail = function WhatsNewItemThumbnail(_ref) {
1020 var imageSrc = _ref.imageSrc;
1021 var title = _ref.title;
1022 var link = _ref.link;
1023 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: { pb: 2 } }, /*#__PURE__*/ react.default.createElement(WrapperWithLink, { link }, /*#__PURE__*/ react.default.createElement("img", {
1024 src: imageSrc,
1025 alt: title || "",
1026 style: { maxWidth: "100%" }
1027 })));
1028 };
1029 WhatsNewItemThumbnail.propTypes = {
1030 imageSrc: import_prop_types.default.string.isRequired,
1031 title: import_prop_types.default.string,
1032 link: import_prop_types.default.string
1033 };
1034
1035 //#endregion
1036 //#region modules/notifications/assets/js/components/whats-new-item-media.js
1037 var WhatsNewItemMedia = function WhatsNewItemMedia(_ref) {
1038 var item = _ref.item;
1039 if (item.youtubeEmbedId) {
1040 var videoId = item.youtubeEmbedId.split("?")[0];
1041 var src = "https://www.youtube.com/embed/".concat(videoId).concat(item.youtubeAutoplay ? "?autoplay=1&mute=1" : "");
1042 var allow = "encrypted-media; picture-in-picture".concat(item.youtubeAutoplay ? "; autoplay" : "");
1043 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: { pb: 2 } }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, {
1044 component: "iframe",
1045 src,
1046 title: item.title || "Video",
1047 allow,
1048 allowFullScreen: true,
1049 sx: {
1050 aspectRatio: "16/9",
1051 width: "100%",
1052 display: "block",
1053 border: "none"
1054 }
1055 }));
1056 }
1057 var mediaSrc = item.gifSrc || item.imageSrc;
1058 if (!mediaSrc) return null;
1059 return /*#__PURE__*/ react.default.createElement(WhatsNewItemThumbnail, {
1060 imageSrc: mediaSrc,
1061 link: item.link,
1062 title: item.title
1063 });
1064 };
1065
1066 //#endregion
1067 //#region modules/notifications/assets/js/components/whats-new-item-chips.js
1068 var WhatsNewItemChips = function WhatsNewItemChips(_ref) {
1069 var chipPlan = _ref.chipPlan;
1070 var chipTags = _ref.chipTags;
1071 var itemIndex = _ref.itemIndex;
1072 var chips = [];
1073 if (chipPlan) chips.push({
1074 color: "promotion",
1075 size: "small",
1076 label: chipPlan
1077 });
1078 if (chipTags) chipTags.forEach(function(chipTag) {
1079 chips.push({
1080 variant: "outlined",
1081 size: "small",
1082 label: chipTag
1083 });
1084 });
1085 if (!chips.length) return null;
1086 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, {
1087 direction: "row",
1088 flexWrap: "wrap",
1089 gap: 1,
1090 sx: { pb: 1 }
1091 }, chips.map(function(chip, chipIndex) {
1092 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Chip, _extends({ key: "chip-".concat(itemIndex).concat(chipIndex) }, chip));
1093 }));
1094 };
1095 WhatsNewItemChips.propTypes = {
1096 chipPlan: import_prop_types.default.string,
1097 chipTags: import_prop_types.default.array,
1098 itemIndex: import_prop_types.default.number.isRequired
1099 };
1100
1101 //#endregion
1102 //#region modules/notifications/assets/js/components/is-image-only.js
1103 var isImageOnly = function isImageOnly(item) {
1104 return !item.title && !item.description && (item.imageSrc || item.gifSrc || item.youtubeEmbedId);
1105 };
1106
1107 //#endregion
1108 //#region modules/notifications/assets/js/components/whats-new-item.js
1109 function ownKeys(e, r) {
1110 var t = Object.keys(e);
1111 if (Object.getOwnPropertySymbols) {
1112 var o = Object.getOwnPropertySymbols(e);
1113 r && (o = o.filter(function(r) {
1114 return Object.getOwnPropertyDescriptor(e, r).enumerable;
1115 })), t.push.apply(t, o);
1116 }
1117 return t;
1118 }
1119 function _objectSpread(e) {
1120 for (var r = 1; r < arguments.length; r++) {
1121 var t = null != arguments[r] ? arguments[r] : {};
1122 r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
1123 _defineProperty(e, r, t[r]);
1124 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
1125 Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
1126 });
1127 }
1128 return e;
1129 }
1130 var WhatsNewItem = function WhatsNewItem(_ref) {
1131 var item = _ref.item;
1132 var itemIndex = _ref.itemIndex;
1133 var itemsLength = _ref.itemsLength;
1134 var setIsOpen = _ref.setIsOpen;
1135 var _ref$featured = _ref.featured;
1136 var featured = _ref$featured === void 0 ? false : _ref$featured;
1137 var hasMedia = item.imageSrc || item.gifSrc || item.youtubeEmbedId;
1138 if (isImageOnly(item)) return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, {
1139 key: itemIndex,
1140 display: "flex",
1141 flexDirection: "column",
1142 sx: _objectSpread({ pt: 2 }, featured && { px: 1 })
1143 }, /*#__PURE__*/ react.default.createElement(WhatsNewItemMedia, { item }), itemIndex !== itemsLength - 1 && /*#__PURE__*/ react.default.createElement(_elementor_ui.Divider, { sx: { my: 1 } }));
1144 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, {
1145 key: itemIndex,
1146 display: "flex",
1147 flexDirection: "column",
1148 sx: _objectSpread({ pt: 2 }, featured && { px: 1 })
1149 }, (item.topic || item.date) && /*#__PURE__*/ react.default.createElement(WhatsNewItemTopicLine, {
1150 topic: item.topic,
1151 date: item.date
1152 }), /*#__PURE__*/ react.default.createElement(WrapperWithLink, { link: item.link }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, {
1153 variant: featured ? "h6" : "subtitle1",
1154 sx: { pb: 2 }
1155 }, item.title)), /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: { position: "relative" } }, /*#__PURE__*/ react.default.createElement(WhatsNewItemMedia, { item }), featured && item.chipPlan && hasMedia && /*#__PURE__*/ react.default.createElement(_elementor_ui.Chip, {
1156 label: item.chipPlan,
1157 color: "promotion",
1158 size: "small",
1159 sx: {
1160 position: "absolute",
1161 top: 8,
1162 insetInlineStart: 8
1163 }
1164 })), /*#__PURE__*/ react.default.createElement(WhatsNewItemChips, {
1165 chipPlan: featured && hasMedia ? null : item.chipPlan,
1166 chipTags: item.chipTags,
1167 itemIndex
1168 }), item.description && /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, {
1169 variant: "body2",
1170 color: "text.secondary",
1171 sx: { pb: 2 }
1172 }, item.description, item.readMoreText && /*#__PURE__*/ react.default.createElement(react.default.Fragment, null, " ", /*#__PURE__*/ react.default.createElement(_elementor_ui.Link, {
1173 href: item.link,
1174 color: "info.main",
1175 target: "_blank"
1176 }, item.readMoreText))), item.cta && item.ctaLink && /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: { pb: 2 } }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Button, {
1177 href: item.ctaLink,
1178 target: item.ctaLink.startsWith("#") ? "_self" : "_blank",
1179 variant: "contained",
1180 size: "small",
1181 color: "promotion",
1182 onClick: item.ctaLink.startsWith("#") ? function() {
1183 return setIsOpen(false);
1184 } : void 0
1185 }, item.cta)), itemIndex !== itemsLength - 1 && /*#__PURE__*/ react.default.createElement(_elementor_ui.Divider, { sx: { my: 1 } }));
1186 };
1187 WhatsNewItem.propTypes = {
1188 item: import_prop_types.default.object.isRequired,
1189 itemIndex: import_prop_types.default.number.isRequired,
1190 itemsLength: import_prop_types.default.number.isRequired,
1191 setIsOpen: import_prop_types.default.func.isRequired,
1192 featured: import_prop_types.default.bool
1193 };
1194
1195 //#endregion
1196 //#region modules/notifications/assets/js/components/whats-new-item-collapsed.js
1197 var WhatsNewItemCollapsed = function WhatsNewItemCollapsed(_ref) {
1198 var item = _ref.item;
1199 var itemIndex = _ref.itemIndex;
1200 var isNew = _ref.isNew;
1201 var onSeen = _ref.onSeen;
1202 var setIsOpen = _ref.setIsOpen;
1203 var _useState2 = _slicedToArray((0, react.useState)(false), 2);
1204 var expanded = _useState2[0];
1205 var setExpanded = _useState2[1];
1206 var handleToggle = function handleToggle() {
1207 if (!expanded && isNew && onSeen) onSeen(item.id);
1208 setExpanded(!expanded);
1209 };
1210 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, null, /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, {
1211 role: "button",
1212 tabIndex: 0,
1213 "aria-expanded": expanded,
1214 onClick: handleToggle,
1215 onKeyDown: function handleKeyDown(event) {
1216 if ("Enter" === event.key || " " === event.key) {
1217 event.preventDefault();
1218 handleToggle();
1219 }
1220 },
1221 sx: {
1222 position: "relative",
1223 display: "flex",
1224 alignItems: "flex-start",
1225 gap: 1,
1226 cursor: "pointer",
1227 py: 2,
1228 paddingInlineStart: 1
1229 }
1230 }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, {
1231 component: "span",
1232 sx: {
1233 position: "absolute",
1234 insetInlineStart: "-6px",
1235 top: "23px",
1236 width: 6,
1237 height: 6,
1238 borderRadius: "50%",
1239 backgroundColor: "primary.main",
1240 opacity: isNew ? 1 : 0,
1241 transition: "opacity 0.2s ease",
1242 pointerEvents: "none"
1243 }
1244 }), /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: {
1245 flex: 1,
1246 minWidth: 0
1247 } }, item.topic && /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, {
1248 variant: "caption",
1249 color: "text.tertiary",
1250 display: "block"
1251 }, item.topic), /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, {
1252 variant: "subtitle2",
1253 noWrap: true
1254 }, item.title), item.description && /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: {
1255 maxHeight: expanded ? 0 : "3em",
1256 opacity: expanded ? 0 : 1,
1257 overflow: "hidden",
1258 transition: "max-height 0.2s ease, opacity 0.15s ease"
1259 } }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, {
1260 variant: "caption",
1261 color: "text.secondary",
1262 sx: {
1263 display: "-webkit-box",
1264 WebkitLineClamp: 2,
1265 WebkitBoxOrient: "vertical",
1266 overflow: "hidden"
1267 }
1268 }, item.description))), /*#__PURE__*/ react.default.createElement(_elementor_icons.ChevronDownIcon, { sx: {
1269 flexShrink: 0,
1270 color: "secondary.main",
1271 fontSize: "small",
1272 mt: .25,
1273 transform: expanded ? "rotate(180deg)" : "rotate(0deg)",
1274 transition: "transform 0.2s"
1275 } })), /*#__PURE__*/ react.default.createElement(_elementor_ui.Collapse, { in: expanded }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: {
1276 pb: 2,
1277 paddingInlineStart: 1
1278 } }, /*#__PURE__*/ react.default.createElement(WhatsNewItemMedia, { item }), /*#__PURE__*/ react.default.createElement(WhatsNewItemChips, {
1279 chipPlan: item.chipPlan,
1280 chipTags: item.chipTags,
1281 itemIndex
1282 }), item.description && /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, {
1283 variant: "body2",
1284 color: "text.secondary",
1285 sx: { pb: 2 }
1286 }, item.description, item.readMoreText && /*#__PURE__*/ react.default.createElement(react.default.Fragment, null, " ", /*#__PURE__*/ react.default.createElement(_elementor_ui.Link, {
1287 href: item.link,
1288 color: "info.main",
1289 target: "_blank"
1290 }, item.readMoreText))), item.cta && item.ctaLink && /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: { pb: 2 } }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Button, {
1291 href: item.ctaLink,
1292 target: item.ctaLink.startsWith("#") ? "_self" : "_blank",
1293 variant: "contained",
1294 size: "small",
1295 color: "promotion",
1296 onClick: item.ctaLink.startsWith("#") ? function() {
1297 return setIsOpen === null || setIsOpen === void 0 ? void 0 : setIsOpen(false);
1298 } : void 0
1299 }, item.cta)))), /*#__PURE__*/ react.default.createElement(_elementor_ui.Divider, null));
1300 };
1301 WhatsNewItemCollapsed.propTypes = {
1302 item: import_prop_types.default.object.isRequired,
1303 itemIndex: import_prop_types.default.number.isRequired,
1304 isNew: import_prop_types.default.bool,
1305 onSeen: import_prop_types.default.func,
1306 setIsOpen: import_prop_types.default.func
1307 };
1308
1309 //#endregion
1310 //#region modules/notifications/assets/js/components/whats-new-drawer-content.js
1311 var WhatsNewDrawerContent = function WhatsNewDrawerContent(_ref) {
1312 var _items$find$listLabel;
1313 var _items$find;
1314 var setIsOpen = _ref.setIsOpen;
1315 var seenItemIds = _ref.seenItemIds;
1316 var onSeen = _ref.onSeen;
1317 var initialHasUnread = _ref.initialHasUnread;
1318 var _useQuery = (0, _elementor_query.useQuery)({
1319 queryKey: ["e-notifications"],
1320 queryFn: getNotifications
1321 });
1322 var isPending = _useQuery.isPending;
1323 var error = _useQuery.error;
1324 var items = _useQuery.data;
1325 var seenItemIdsRef = (0, react.useRef)(seenItemIds);
1326 seenItemIdsRef.current = seenItemIds;
1327 (0, react.useEffect)(function() {
1328 if (!items) return;
1329 (items.some(function(item) {
1330 return item.featured;
1331 }) ? items.filter(function(item) {
1332 return item.featured;
1333 }) : items).filter(function(item) {
1334 return !seenItemIdsRef.current.has(item.id);
1335 }).forEach(function(item) {
1336 return onSeen(item.id);
1337 });
1338 }, [items, onSeen]);
1339 if (isPending) return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, null, /*#__PURE__*/ react.default.createElement(_elementor_ui.LinearProgress, { color: "secondary" }));
1340 if (error) return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, null, "An error has occurred: ", error);
1341 var featuredItems = items.filter(function(item) {
1342 return item.featured;
1343 });
1344 var nonFeaturedItems = items.filter(function(item) {
1345 return !item.featured && !isImageOnly(item);
1346 });
1347 var listLabel = (_items$find$listLabel = (_items$find = items.find(function(item) {
1348 return item.listLabel;
1349 })) === null || _items$find === void 0 ? void 0 : _items$find.listLabel) !== null && _items$find$listLabel !== void 0 ? _items$find$listLabel : null;
1350 return /*#__PURE__*/ react.default.createElement(react.default.Fragment, null, featuredItems.map(function(item, index) {
1351 return /*#__PURE__*/ react.default.createElement(WhatsNewItem, {
1352 key: item.id,
1353 item,
1354 itemIndex: index,
1355 itemsLength: featuredItems.length,
1356 setIsOpen,
1357 featured: true
1358 });
1359 }), featuredItems.length > 0 && nonFeaturedItems.length > 0 && /*#__PURE__*/ react.default.createElement(react.default.Fragment, null, listLabel ? /*#__PURE__*/ react.default.createElement(_elementor_ui.Divider, { sx: { my: 1.5 } }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, {
1360 variant: "caption",
1361 color: "text.secondary",
1362 sx: {
1363 px: 1,
1364 textTransform: "uppercase",
1365 letterSpacing: "0.08em"
1366 }
1367 }, listLabel)) : /*#__PURE__*/ react.default.createElement(_elementor_ui.Divider, { sx: { my: 1.5 } }), nonFeaturedItems.map(function(item, index) {
1368 return /*#__PURE__*/ react.default.createElement(WhatsNewItemCollapsed, {
1369 key: item.id,
1370 item,
1371 itemIndex: index,
1372 isNew: initialHasUnread && !seenItemIds.has(item.id),
1373 onSeen,
1374 setIsOpen
1375 });
1376 })), 0 === featuredItems.length && nonFeaturedItems.map(function(item, itemIndex) {
1377 return /*#__PURE__*/ react.default.createElement(WhatsNewItem, {
1378 key: item.id,
1379 item,
1380 itemIndex,
1381 itemsLength: nonFeaturedItems.length,
1382 setIsOpen
1383 });
1384 }));
1385 };
1386 WhatsNewDrawerContent.propTypes = {
1387 setIsOpen: import_prop_types.default.func.isRequired,
1388 seenItemIds: import_prop_types.default.instanceOf(Set).isRequired,
1389 onSeen: import_prop_types.default.func.isRequired,
1390 initialHasUnread: import_prop_types.default.bool.isRequired
1391 };
1392
1393 //#endregion
1394 //#region modules/notifications/assets/js/components/whats-new.js
1395 var _window$elementorNoti;
1396 var _window$elementorNoti2;
1397 var queryClient = new _elementor_query.QueryClient({ defaultOptions: { queries: {
1398 refetchOnWindowFocus: false,
1399 retry: false,
1400 staleTime: 1e3 * 60 * 30
1401 } } });
1402 var initialHasUnread = ((_window$elementorNoti = (_window$elementorNoti2 = window.elementorNotifications) === null || _window$elementorNoti2 === void 0 ? void 0 : _window$elementorNoti2.unread_count) !== null && _window$elementorNoti !== void 0 ? _window$elementorNoti : 0) > 0;
1403 var WhatsNew = function WhatsNew(props) {
1404 var _window$elementor;
1405 var _window$elementor$get;
1406 var isOpen = props.isOpen;
1407 var setIsOpen = props.setIsOpen;
1408 var _props$setIsRead = props.setIsRead;
1409 var setIsRead = _props$setIsRead === void 0 ? function() {} : _props$setIsRead;
1410 var _props$anchorPosition = props.anchorPosition;
1411 var anchorPosition = _props$anchorPosition === void 0 ? "right" : _props$anchorPosition;
1412 var _useState2 = _slicedToArray((0, react.useState)(function() {
1413 return /* @__PURE__ */ new Set();
1414 }), 2);
1415 var seenItemIds = _useState2[0];
1416 var setSeenItemIds = _useState2[1];
1417 (0, react.useEffect)(function() {
1418 if (!isOpen) return;
1419 setIsRead(true);
1420 }, [isOpen, setIsRead]);
1421 var handleSeen = (0, react.useCallback)(function(itemId) {
1422 setSeenItemIds(function(prev) {
1423 if (prev.has(itemId)) return prev;
1424 window.dispatchEvent(new CustomEvent("e-notification-item-seen"));
1425 return new Set([].concat(_toConsumableArray(prev), [itemId]));
1426 });
1427 }, []);
1428 return /*#__PURE__*/ react.default.createElement(react.default.Fragment, null, /*#__PURE__*/ react.default.createElement(_elementor_query.QueryClientProvider, { client: queryClient }, /*#__PURE__*/ react.default.createElement(_elementor_ui.DirectionProvider, { rtl: elementorCommon.config.isRTL }, /*#__PURE__*/ react.default.createElement(_elementor_ui.ThemeProvider, { colorScheme: ((_window$elementor = window.elementor) === null || _window$elementor === void 0 || (_window$elementor$get = _window$elementor.getPreferences) === null || _window$elementor$get === void 0 ? void 0 : _window$elementor$get.call(_window$elementor, "ui_theme")) || "auto" }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Drawer, {
1429 anchor: anchorPosition,
1430 open: isOpen,
1431 onClose: function onClose() {
1432 return setIsOpen(false);
1433 },
1434 BackdropProps: { invisible: true },
1435 ModalProps: { style: { zIndex: 999999 } }
1436 }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, {
1437 sx: {
1438 width: 360,
1439 backgroundColor: "background.default"
1440 },
1441 role: "presentation"
1442 }, /*#__PURE__*/ react.default.createElement(WhatsNewTopBar, { setIsOpen }), /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, { sx: { padding: "16px" } }, /*#__PURE__*/ react.default.createElement(WhatsNewDrawerContent, {
1443 setIsOpen,
1444 seenItemIds,
1445 onSeen: handleSeen,
1446 initialHasUnread
1447 }))))))));
1448 };
1449 WhatsNew.propTypes = {
1450 isOpen: import_prop_types.default.bool.isRequired,
1451 setIsOpen: import_prop_types.default.func.isRequired,
1452 setIsRead: import_prop_types.default.func,
1453 anchorPosition: import_prop_types.default.oneOf([
1454 "left",
1455 "top",
1456 "right",
1457 "bottom"
1458 ])
1459 };
1460
1461 //#endregion
1462 //#region modules/notifications/assets/js/components/editor-drawer.js
1463 var EditorDrawer = function EditorDrawer(_ref) {
1464 var _ref$anchorPosition = _ref.anchorPosition;
1465 var anchorPosition = _ref$anchorPosition === void 0 ? "left" : _ref$anchorPosition;
1466 var _useState2 = _slicedToArray((0, react.useState)(true), 2);
1467 var isOpen = _useState2[0];
1468 var setIsOpen = _useState2[1];
1469 (0, react.useEffect)(function() {
1470 elementor.on("elementor/editor/panel/whats-new/clicked", function() {
1471 return setIsOpen(true);
1472 });
1473 }, []);
1474 return /*#__PURE__*/ react.default.createElement(WhatsNew, {
1475 isOpen,
1476 setIsOpen,
1477 setIsRead: function setIsRead() {
1478 return document.body.classList.remove("e-has-notification");
1479 },
1480 anchorPosition
1481 });
1482 };
1483 EditorDrawer.propTypes = { anchorPosition: import_prop_types.default.oneOf([
1484 "left",
1485 "top",
1486 "right",
1487 "bottom"
1488 ]) };
1489
1490 //#endregion
1491 //#region modules/notifications/assets/js/components/editor-on-button-clicked.js
1492 var isRendered = false;
1493 var editorOnButtonClicked = function editorOnButtonClicked() {
1494 var anchorPosition = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "left";
1495 if (!isRendered) {
1496 isRendered = true;
1497 var container = document.createElement("div");
1498 document.body.append(container);
1499 react_default.render(/*#__PURE__*/ react.default.createElement(EditorDrawer, { anchorPosition }), container);
1500 return;
1501 }
1502 elementor.trigger("elementor/editor/panel/whats-new/clicked");
1503 };
1504
1505 //#endregion
1506 //#region modules/notifications/assets/js/components/editor-v1.js
1507 var editorV1 = function editorV1() {
1508 elementor.on("panel:init", function() {
1509 if (elementorNotifications.is_unread) document.body.classList.add("e-has-notification");
1510 elementor.getPanelView().getPages("menu").view.addItem({
1511 name: "notification-center",
1512 icon: "eicon-speakerphone",
1513 title: (0, _wordpress_i18n.__)("What's New", "elementor"),
1514 callback: editorOnButtonClicked
1515 }, "navigate_from_page", "view-page");
1516 });
1517 };
1518
1519 //#endregion
1520 //#region modules/notifications/assets/js/components/editor-app-bar-link.js
1521 var IconWithBadge = function IconWithBadge(_ref) {
1522 var count = _ref.count;
1523 return /*#__PURE__*/ react.default.createElement(_elementor_ui.Badge, {
1524 color: "primary",
1525 badgeContent: count,
1526 invisible: 0 === count
1527 }, /*#__PURE__*/ react.default.createElement(_elementor_icons_SpeakerphoneIcon.default, null));
1528 };
1529 IconWithBadge.propTypes = { count: import_prop_types.default.number };
1530 var useWhatsNewLinkProps = function useWhatsNewLinkProps() {
1531 var _window$elementorNoti;
1532 var _useState2 = _slicedToArray((0, react.useState)(parseInt((_window$elementorNoti = window.elementorNotifications) === null || _window$elementorNoti === void 0 ? void 0 : _window$elementorNoti.unread_count, 10) || 0), 2);
1533 var unreadCount = _useState2[0];
1534 var setUnreadCount = _useState2[1];
1535 (0, react.useEffect)(function() {
1536 var handler = function handler() {
1537 return setUnreadCount(function(prev) {
1538 return Math.max(0, prev - 1);
1539 });
1540 };
1541 window.addEventListener("e-notification-item-seen", handler);
1542 return function() {
1543 return window.removeEventListener("e-notification-item-seen", handler);
1544 };
1545 }, []);
1546 return {
1547 title: (0, _wordpress_i18n.__)("What's New", "elementor"),
1548 icon: function icon() {
1549 return /*#__PURE__*/ react.default.createElement(IconWithBadge, { count: unreadCount });
1550 },
1551 onClick: function onClick() {
1552 editorOnButtonClicked("right");
1553 elementorCommon.eventsManager.dispatchEvent(elementorCommon.eventsManager.config.names.topBar.whatsNew, {
1554 location: elementorCommon.eventsManager.config.locations.topBar,
1555 secondaryLocation: elementorCommon.eventsManager.config.secondaryLocations["whats-new"],
1556 trigger: elementorCommon.eventsManager.config.triggers.click,
1557 element: elementorCommon.eventsManager.config.elements.buttonIcon
1558 });
1559 }
1560 };
1561 };
1562 var editorAppBarLink = function editorAppBarLink() {
1563 _elementor_editor_app_bar.utilitiesMenu.registerLink({
1564 id: "app-bar-menu-item-whats-new",
1565 priority: 10,
1566 useProps: useWhatsNewLinkProps
1567 });
1568 };
1569
1570 //#endregion
1571 //#region modules/notifications/assets/js/editor.js
1572 var _window;
1573 if ((_window = window) !== null && _window !== void 0 && (_window = _window.elementorV2) !== null && _window !== void 0 && _window.editorAppBar) editorAppBarLink();
1574 else editorV1();
1575
1576 //#endregion
1577 })(wp.i18n, React, ReactDOM, elementorV2.ui, elementorV2.query, elementorV2.icons, elementorV2.editorAppBar, elementorV2.icons['SpeakerphoneIcon']);
1578 //# sourceMappingURL=editor-notifications.js.map