PluginProbe
Elementor Website Builder – more than just a page builder / 3.30.0-beta1
Elementor Website Builder – more than just a page builder v3.30.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
elementor / assets / js / kit-library.208fd2e8cdac52e66fcb.bundle.js

kit-library.208fd2e8cdac52e66fcb.bundle.js in Elementor Website Builder – more than just a page builder 3.30.0-beta1, at assets/js/kit-library.208fd2e8cdac52e66fcb.bundle.js

5,248 lines 254.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.30.0 - 10-06-2025 */
2 (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["kit-library"],{
3
4 /***/ "../app/modules/kit-library/assets/js/components/badge.scss":
5 /*!******************************************************************!*\
6 !*** ../app/modules/kit-library/assets/js/components/badge.scss ***!
7 \******************************************************************/
8 /***/ (() => {
9
10
11
12 /***/ }),
13
14 /***/ "../app/modules/kit-library/assets/js/components/collapse.scss":
15 /*!*********************************************************************!*\
16 !*** ../app/modules/kit-library/assets/js/components/collapse.scss ***!
17 \*********************************************************************/
18 /***/ (() => {
19
20
21
22 /***/ }),
23
24 /***/ "../app/modules/kit-library/assets/js/components/envato-promotion.scss":
25 /*!*****************************************************************************!*\
26 !*** ../app/modules/kit-library/assets/js/components/envato-promotion.scss ***!
27 \*****************************************************************************/
28 /***/ (() => {
29
30
31
32 /***/ }),
33
34 /***/ "../app/modules/kit-library/assets/js/components/error-screen.scss":
35 /*!*************************************************************************!*\
36 !*** ../app/modules/kit-library/assets/js/components/error-screen.scss ***!
37 \*************************************************************************/
38 /***/ (() => {
39
40
41
42 /***/ }),
43
44 /***/ "../app/modules/kit-library/assets/js/components/favorites-actions.scss":
45 /*!******************************************************************************!*\
46 !*** ../app/modules/kit-library/assets/js/components/favorites-actions.scss ***!
47 \******************************************************************************/
48 /***/ (() => {
49
50
51
52 /***/ }),
53
54 /***/ "../app/modules/kit-library/assets/js/components/filter-indication-text.scss":
55 /*!***********************************************************************************!*\
56 !*** ../app/modules/kit-library/assets/js/components/filter-indication-text.scss ***!
57 \***********************************************************************************/
58 /***/ (() => {
59
60
61
62 /***/ }),
63
64 /***/ "../app/modules/kit-library/assets/js/components/item-header.scss":
65 /*!************************************************************************!*\
66 !*** ../app/modules/kit-library/assets/js/components/item-header.scss ***!
67 \************************************************************************/
68 /***/ (() => {
69
70
71
72 /***/ }),
73
74 /***/ "../app/modules/kit-library/assets/js/components/kit-list-item.scss":
75 /*!**************************************************************************!*\
76 !*** ../app/modules/kit-library/assets/js/components/kit-list-item.scss ***!
77 \**************************************************************************/
78 /***/ (() => {
79
80
81
82 /***/ }),
83
84 /***/ "../app/modules/kit-library/assets/js/components/layout/header-back-button.scss":
85 /*!**************************************************************************************!*\
86 !*** ../app/modules/kit-library/assets/js/components/layout/header-back-button.scss ***!
87 \**************************************************************************************/
88 /***/ (() => {
89
90
91
92 /***/ }),
93
94 /***/ "../app/modules/kit-library/assets/js/components/page-loader.scss":
95 /*!************************************************************************!*\
96 !*** ../app/modules/kit-library/assets/js/components/page-loader.scss ***!
97 \************************************************************************/
98 /***/ (() => {
99
100
101
102 /***/ }),
103
104 /***/ "../app/modules/kit-library/assets/js/components/search-input.scss":
105 /*!*************************************************************************!*\
106 !*** ../app/modules/kit-library/assets/js/components/search-input.scss ***!
107 \*************************************************************************/
108 /***/ (() => {
109
110
111
112 /***/ }),
113
114 /***/ "../app/modules/kit-library/assets/js/components/sort-select.scss":
115 /*!************************************************************************!*\
116 !*** ../app/modules/kit-library/assets/js/components/sort-select.scss ***!
117 \************************************************************************/
118 /***/ (() => {
119
120
121
122 /***/ }),
123
124 /***/ "../app/modules/kit-library/assets/js/components/tags-filter.scss":
125 /*!************************************************************************!*\
126 !*** ../app/modules/kit-library/assets/js/components/tags-filter.scss ***!
127 \************************************************************************/
128 /***/ (() => {
129
130
131
132 /***/ }),
133
134 /***/ "../app/modules/kit-library/assets/js/pages/index/index-header.scss":
135 /*!**************************************************************************!*\
136 !*** ../app/modules/kit-library/assets/js/pages/index/index-header.scss ***!
137 \**************************************************************************/
138 /***/ (() => {
139
140
141
142 /***/ }),
143
144 /***/ "../app/modules/kit-library/assets/js/pages/index/index.scss":
145 /*!*******************************************************************!*\
146 !*** ../app/modules/kit-library/assets/js/pages/index/index.scss ***!
147 \*******************************************************************/
148 /***/ (() => {
149
150
151
152 /***/ }),
153
154 /***/ "../app/modules/kit-library/assets/js/pages/overview/overview-sidebar.scss":
155 /*!*********************************************************************************!*\
156 !*** ../app/modules/kit-library/assets/js/pages/overview/overview-sidebar.scss ***!
157 \*********************************************************************************/
158 /***/ (() => {
159
160
161
162 /***/ }),
163
164 /***/ "../app/modules/kit-library/assets/js/pages/overview/overview.scss":
165 /*!*************************************************************************!*\
166 !*** ../app/modules/kit-library/assets/js/pages/overview/overview.scss ***!
167 \*************************************************************************/
168 /***/ (() => {
169
170
171
172 /***/ }),
173
174 /***/ "../app/modules/kit-library/assets/js/pages/preview/preview-responsive-controls.scss":
175 /*!*******************************************************************************************!*\
176 !*** ../app/modules/kit-library/assets/js/pages/preview/preview-responsive-controls.scss ***!
177 \*******************************************************************************************/
178 /***/ (() => {
179
180
181
182 /***/ }),
183
184 /***/ "../app/modules/kit-library/assets/js/pages/preview/preview.scss":
185 /*!***********************************************************************!*\
186 !*** ../app/modules/kit-library/assets/js/pages/preview/preview.scss ***!
187 \***********************************************************************/
188 /***/ (() => {
189
190
191
192 /***/ }),
193
194 /***/ "../app/assets/js/ui/popover-dialog/popover-dialog.js":
195 /*!************************************************************!*\
196 !*** ../app/assets/js/ui/popover-dialog/popover-dialog.js ***!
197 \************************************************************/
198 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
199
200 "use strict";
201 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
202
203
204 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
205 Object.defineProperty(exports, "__esModule", ({
206 value: true
207 }));
208 exports["default"] = PopoverDialog;
209 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
210 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
211 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
212 function PopoverDialog(props) {
213 var targetRef = props.targetRef,
214 offsetTop = props.offsetTop,
215 offsetLeft = props.offsetLeft,
216 wrapperClass = props.wrapperClass,
217 trigger = props.trigger,
218 hideAfter = props.hideAfter,
219 popoverRef = (0, _react.useCallback)(function (popoverEl) {
220 var target = targetRef === null || targetRef === void 0 ? void 0 : targetRef.current;
221
222 // If the target or the popover element does not exist on the page anymore after a re-render, do nothing.
223 if (!target || !popoverEl) {
224 return;
225 }
226
227 /**
228 * Show Popover
229 */
230 var showPopover = function showPopover() {
231 popoverEl.style.display = 'block';
232 popoverEl.setAttribute('aria-expanded', true);
233 var targetRect = target.getBoundingClientRect(),
234 popoverRect = popoverEl.getBoundingClientRect(),
235 widthDifference = popoverRect.width - targetRect.width;
236 popoverEl.style.top = targetRect.bottom + offsetTop + 'px';
237 popoverEl.style.left = targetRect.left - widthDifference / 2 - offsetLeft + 'px';
238
239 // 16px to compensate for the arrow width.
240 popoverEl.style.setProperty('--popover-arrow-offset-end', (popoverRect.width - 16) / 2 + 'px');
241 };
242
243 /**
244 * Hide Popover
245 */
246 var hidePopover = function hidePopover() {
247 popoverEl.style.display = 'none';
248 popoverEl.setAttribute('aria-expanded', false);
249 };
250
251 /**
252 * Handle the Popover's hover functionality
253 */
254 var handlePopoverHover = function handlePopoverHover() {
255 var hideOnMouseOut = true,
256 timeOut = null;
257
258 // Show popover on hover of the target
259 target.addEventListener('mouseover', function () {
260 hideOnMouseOut = true;
261 showPopover();
262 });
263
264 // Hide popover when not overing over the target or the popover itself
265 target.addEventListener('mouseleave', function () {
266 timeOut = setTimeout(function () {
267 if (hideOnMouseOut) {
268 if ('block' === popoverEl.style.display) {
269 hidePopover();
270 }
271 }
272 }, hideAfter);
273 });
274
275 // Don't hide the popover if the user is still hovering over it.
276 popoverEl.addEventListener('mouseover', function () {
277 hideOnMouseOut = false;
278 if (timeOut) {
279 clearTimeout(timeOut);
280 timeOut = null;
281 }
282 });
283
284 // Once the user stops hovering over the popover, hide it.
285 popoverEl.addEventListener('mouseleave', function () {
286 timeOut = setTimeout(function () {
287 if (hideOnMouseOut) {
288 if ('block' === popoverEl.style.display) {
289 hidePopover();
290 }
291 }
292 }, hideAfter);
293 hideOnMouseOut = true;
294 });
295 };
296
297 /**
298 * Handle the Popover's click functionality
299 */
300 var handlePopoverClick = function handlePopoverClick() {
301 var popoverIsActive = false;
302 target.addEventListener('click', function (e) {
303 e.preventDefault();
304 e.stopPropagation();
305 if (popoverIsActive) {
306 hidePopover();
307 popoverIsActive = false;
308 } else {
309 showPopover();
310 popoverIsActive = true;
311 }
312 });
313
314 // Make sure the popover doesn't close when it is clicked on.
315 popoverEl.addEventListener('click', function (e) {
316 e.stopPropagation();
317 });
318
319 // Hide the popover when clicking outside of it.
320 document.body.addEventListener('click', function () {
321 if (popoverIsActive) {
322 hidePopover();
323 popoverIsActive = false;
324 }
325 });
326 };
327 if ('hover' === trigger) {
328 handlePopoverHover();
329 } else if ('click' === trigger) {
330 handlePopoverClick();
331 }
332 }, [targetRef]);
333 var wrapperClasses = 'e-app__popover';
334 if (wrapperClass) {
335 wrapperClasses += ' ' + wrapperClass;
336 }
337 return /*#__PURE__*/_react.default.createElement("div", {
338 className: wrapperClasses,
339 ref: popoverRef
340 }, props.children);
341 }
342 PopoverDialog.propTypes = {
343 targetRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
344 current: PropTypes.any
345 })]).isRequired,
346 trigger: PropTypes.string,
347 direction: PropTypes.string,
348 offsetTop: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
349 offsetLeft: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
350 wrapperClass: PropTypes.string,
351 children: PropTypes.any,
352 hideAfter: PropTypes.number
353 };
354 PopoverDialog.defaultProps = {
355 direction: 'bottom',
356 trigger: 'hover',
357 offsetTop: 10,
358 offsetLeft: 0,
359 hideAfter: 300
360 };
361
362 /***/ }),
363
364 /***/ "../app/modules/kit-library/assets/js/app.js":
365 /*!***************************************************!*\
366 !*** ../app/modules/kit-library/assets/js/app.js ***!
367 \***************************************************/
368 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
369
370 "use strict";
371
372
373 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
374 Object.defineProperty(exports, "__esModule", ({
375 value: true
376 }));
377 exports["default"] = App;
378 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
379 var _favorites = _interopRequireDefault(__webpack_require__(/*! ./pages/favorites/favorites */ "../app/modules/kit-library/assets/js/pages/favorites/favorites.js"));
380 var _index = _interopRequireDefault(__webpack_require__(/*! ./pages/index */ "../app/modules/kit-library/assets/js/pages/index/index.js"));
381 var _cloud = _interopRequireDefault(__webpack_require__(/*! ./pages/cloud/cloud */ "../app/modules/kit-library/assets/js/pages/cloud/cloud.js"));
382 var _overview = _interopRequireDefault(__webpack_require__(/*! ./pages/overview/overview */ "../app/modules/kit-library/assets/js/pages/overview/overview.js"));
383 var _preview = _interopRequireDefault(__webpack_require__(/*! ./pages/preview/preview */ "../app/modules/kit-library/assets/js/pages/preview/preview.js"));
384 var _lastFilterContext = __webpack_require__(/*! ./context/last-filter-context */ "../app/modules/kit-library/assets/js/context/last-filter-context.js");
385 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
386 var _devtools = __webpack_require__(/*! react-query/devtools */ "../node_modules/react-query/devtools/index.js");
387 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
388 var _settingsContext = __webpack_require__(/*! ./context/settings-context */ "../app/modules/kit-library/assets/js/context/settings-context.js");
389 var _useCloudKitsEligibility = _interopRequireDefault(__webpack_require__(/*! ./hooks/use-cloud-kits-eligibility */ "../app/modules/kit-library/assets/js/hooks/use-cloud-kits-eligibility.js"));
390 var queryClient = new _reactQuery.QueryClient({
391 defaultOptions: {
392 queries: {
393 refetchOnWindowFocus: false,
394 retry: false,
395 staleTime: 1000 * 60 * 30 // 30 minutes
396 }
397 }
398 });
399 function AppContent() {
400 var _useCloudKitsEligibil = (0, _useCloudKitsEligibility.default)(),
401 isCloudKitsAvailable = _useCloudKitsEligibil.data;
402 return /*#__PURE__*/_react.default.createElement(_settingsContext.SettingsProvider, {
403 value: elementorAppConfig['kit-library']
404 }, /*#__PURE__*/_react.default.createElement(_lastFilterContext.LastFilterProvider, null, /*#__PURE__*/_react.default.createElement(_router.Router, null, /*#__PURE__*/_react.default.createElement(_index.default, {
405 path: "/"
406 }), /*#__PURE__*/_react.default.createElement(_favorites.default, {
407 path: "/favorites"
408 }), /*#__PURE__*/_react.default.createElement(_preview.default, {
409 path: "/preview/:id"
410 }), /*#__PURE__*/_react.default.createElement(_overview.default, {
411 path: "/overview/:id"
412 }), isCloudKitsAvailable && /*#__PURE__*/_react.default.createElement(_cloud.default, {
413 path: "/cloud"
414 }))));
415 }
416 function App() {
417 return /*#__PURE__*/_react.default.createElement("div", {
418 className: "e-kit-library"
419 }, /*#__PURE__*/_react.default.createElement(_reactQuery.QueryClientProvider, {
420 client: queryClient
421 }, /*#__PURE__*/_react.default.createElement(AppContent, null), elementorCommon.config.isElementorDebug && /*#__PURE__*/_react.default.createElement(_devtools.ReactQueryDevtools, {
422 initialIsOpen: false
423 })));
424 }
425
426 /***/ }),
427
428 /***/ "../app/modules/kit-library/assets/js/components/apply-kit-dialog.js":
429 /*!***************************************************************************!*\
430 !*** ../app/modules/kit-library/assets/js/components/apply-kit-dialog.js ***!
431 \***************************************************************************/
432 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
433
434 "use strict";
435 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
436 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
437
438
439 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
440 Object.defineProperty(exports, "__esModule", ({
441 value: true
442 }));
443 exports["default"] = ApplyKitDialog;
444 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
445 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
446 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
447 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
448 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
449 function ApplyKitDialog(props) {
450 var navigate = (0, _router.useNavigate)();
451 var startImportProcess = (0, _react.useCallback)(function () {
452 var applyAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
453 var url = '/import/process' + "?id=".concat(props.id) + "&file_url=".concat(encodeURIComponent(props.downloadLink)) + "&nonce=".concat(props.nonce, "&referrer=kit-library");
454 if (applyAll) {
455 url += '&action_type=apply-all';
456 }
457 navigate(url);
458 }, [props.downloadLink, props.nonce]);
459 return /*#__PURE__*/_react.default.createElement(_appUi.Dialog
460 // Translators: %s is the kit name.
461 , {
462 title: __('Apply %s?', 'elementor').replace('%s', props.title),
463 text: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, __('You can use everything in this kit, or Customize to only include some items.', 'elementor'), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("br", null), __('By applying the entire kit, you\'ll override any styles, settings or content already on your site.', 'elementor')),
464 approveButtonText: __('Apply All', 'elementor'),
465 approveButtonColor: "primary",
466 approveButtonOnClick: function approveButtonOnClick() {
467 return startImportProcess(true);
468 },
469 dismissButtonText: __('Customize', 'elementor'),
470 dismissButtonOnClick: function dismissButtonOnClick() {
471 return startImportProcess(false);
472 },
473 onClose: props.onClose
474 });
475 }
476 ApplyKitDialog.propTypes = {
477 id: PropTypes.string.isRequired,
478 downloadLink: PropTypes.string.isRequired,
479 nonce: PropTypes.string.isRequired,
480 onClose: PropTypes.func.isRequired,
481 title: PropTypes.string
482 };
483 ApplyKitDialog.defaultProps = {
484 title: 'Kit'
485 };
486
487 /***/ }),
488
489 /***/ "../app/modules/kit-library/assets/js/components/badge.js":
490 /*!****************************************************************!*\
491 !*** ../app/modules/kit-library/assets/js/components/badge.js ***!
492 \****************************************************************/
493 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
494
495 "use strict";
496 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
497
498
499 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
500 Object.defineProperty(exports, "__esModule", ({
501 value: true
502 }));
503 exports["default"] = Badge;
504 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
505 __webpack_require__(/*! ./badge.scss */ "../app/modules/kit-library/assets/js/components/badge.scss");
506 function Badge(props) {
507 return /*#__PURE__*/_react.default.createElement("span", {
508 className: "eps-badge eps-badge--".concat(props.variant, " ").concat(props.className),
509 style: props.style
510 }, props.children);
511 }
512 Badge.propTypes = {
513 children: PropTypes.node,
514 className: PropTypes.string,
515 style: PropTypes.object,
516 variant: PropTypes.oneOf(['sm', 'md'])
517 };
518 Badge.defaultProps = {
519 className: '',
520 style: {},
521 variant: 'md'
522 };
523
524 /***/ }),
525
526 /***/ "../app/modules/kit-library/assets/js/components/collapse.js":
527 /*!*******************************************************************!*\
528 !*** ../app/modules/kit-library/assets/js/components/collapse.js ***!
529 \*******************************************************************/
530 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
531
532 "use strict";
533 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
534
535
536 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
537 Object.defineProperty(exports, "__esModule", ({
538 value: true
539 }));
540 exports["default"] = Collapse;
541 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
542 __webpack_require__(/*! ./collapse.scss */ "../app/modules/kit-library/assets/js/components/collapse.scss");
543 function Collapse(props) {
544 // The state of the collapse managed by the parent component to let the parent control if the collapse is open or closed by default.
545 return /*#__PURE__*/_react.default.createElement("div", {
546 className: "eps-collapse ".concat(props.className),
547 "data-open": props.isOpen || undefined /* Set `undefined` when 'isOpen' equals `false` to avoid showing the attr "data-open" */
548 }, /*#__PURE__*/_react.default.createElement("button", {
549 className: "eps-collapse__title",
550 onClick: function onClick() {
551 var _props$onClick;
552 props.onChange(function (value) {
553 return !value;
554 });
555 (_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, props.isOpen, props.title);
556 }
557 }, /*#__PURE__*/_react.default.createElement("span", null, props.title), /*#__PURE__*/_react.default.createElement("i", {
558 className: "eicon-chevron-right eps-collapse__icon"
559 })), /*#__PURE__*/_react.default.createElement("div", {
560 className: "eps-collapse__content"
561 }, props.children));
562 }
563 Collapse.propTypes = {
564 isOpen: PropTypes.bool,
565 onChange: PropTypes.func,
566 className: PropTypes.string,
567 title: PropTypes.node,
568 onClick: PropTypes.func,
569 children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)])
570 };
571 Collapse.defaultProps = {
572 className: '',
573 isOpen: false
574 };
575
576 /***/ }),
577
578 /***/ "../app/modules/kit-library/assets/js/components/connect-dialog.js":
579 /*!*************************************************************************!*\
580 !*** ../app/modules/kit-library/assets/js/components/connect-dialog.js ***!
581 \*************************************************************************/
582 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
583
584 "use strict";
585 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
586 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
587
588
589 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
590 Object.defineProperty(exports, "__esModule", ({
591 value: true
592 }));
593 exports["default"] = ConnectDialog;
594 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
595 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
596 var _settingsContext = __webpack_require__(/*! ../context/settings-context */ "../app/modules/kit-library/assets/js/context/settings-context.js");
597 var _React = _react.default,
598 useEffect = _React.useEffect,
599 useRef = _React.useRef;
600 function ConnectDialog(props) {
601 var _useSettingsContext = (0, _settingsContext.useSettingsContext)(),
602 settings = _useSettingsContext.settings;
603 var approveButtonRef = useRef();
604 useEffect(function () {
605 jQuery(approveButtonRef.current).elementorConnect({
606 success: function success(e, data) {
607 return props.onSuccess(data);
608 },
609 error: function error() {
610 return props.onError(__('Unable to connect', 'elementor'));
611 },
612 parseUrl: function parseUrl(url) {
613 return url.replace('%%page%%', props.pageId);
614 }
615 });
616 }, []);
617 return /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
618 title: __('Connect to Template Library', 'elementor'),
619 text: __('Access this template and our entire library by creating a free personal account', 'elementor'),
620 approveButtonText: __('Get Started', 'elementor'),
621 approveButtonUrl: settings.library_connect_url,
622 approveButtonOnClick: function approveButtonOnClick() {
623 return props.onClose();
624 },
625 approveButtonColor: "primary",
626 approveButtonRef: approveButtonRef,
627 dismissButtonText: __('Cancel', 'elementor'),
628 dismissButtonOnClick: function dismissButtonOnClick() {
629 return props.onClose();
630 },
631 onClose: function onClose() {
632 return props.onClose();
633 }
634 });
635 }
636 ConnectDialog.propTypes = {
637 onClose: PropTypes.func.isRequired,
638 onError: PropTypes.func.isRequired,
639 onSuccess: PropTypes.func.isRequired,
640 pageId: PropTypes.string
641 };
642
643 /***/ }),
644
645 /***/ "../app/modules/kit-library/assets/js/components/envato-promotion.js":
646 /*!***************************************************************************!*\
647 !*** ../app/modules/kit-library/assets/js/components/envato-promotion.js ***!
648 \***************************************************************************/
649 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
650
651 "use strict";
652 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
653 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
654
655
656 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
657 Object.defineProperty(exports, "__esModule", ({
658 value: true
659 }));
660 exports["default"] = EnvatoPromotion;
661 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
662 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
663 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
664 __webpack_require__(/*! ./envato-promotion.scss */ "../app/modules/kit-library/assets/js/components/envato-promotion.scss");
665 function EnvatoPromotion(props) {
666 var eventTracking = function eventTracking(command) {
667 var eventType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click';
668 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
669 page_source: 'home page',
670 element_position: 'library_bottom_promotion',
671 category: props.category && ('/favorites' === props.category ? 'favorites' : 'all kits'),
672 event_type: eventType
673 });
674 };
675 return /*#__PURE__*/_react.default.createElement(_appUi.Text, {
676 className: "e-kit-library-promotion",
677 variant: "xl"
678 }, __('Looking for more Kits?', 'elementor'), " ", ' ', /*#__PURE__*/_react.default.createElement(_appUi.Button, {
679 variant: "underlined",
680 color: "link",
681 url: "https://go.elementor.com/app-envato-kits/",
682 target: "_blank",
683 rel: "noreferrer",
684 text: __('Check out Elementor Template Kits on ThemeForest', 'elementor'),
685 onClick: function onClick() {
686 return eventTracking('kit-library/check-kits-on-theme-forest');
687 }
688 }));
689 }
690 EnvatoPromotion.propTypes = {
691 category: PropTypes.string
692 };
693
694 /***/ }),
695
696 /***/ "../app/modules/kit-library/assets/js/components/error-screen.js":
697 /*!***********************************************************************!*\
698 !*** ../app/modules/kit-library/assets/js/components/error-screen.js ***!
699 \***********************************************************************/
700 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
701
702 "use strict";
703
704
705 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
706 Object.defineProperty(exports, "__esModule", ({
707 value: true
708 }));
709 exports["default"] = ErrorScreen;
710 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
711 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
712 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
713 __webpack_require__(/*! ./error-screen.scss */ "../app/modules/kit-library/assets/js/components/error-screen.scss");
714 /* eslint-disable jsx-a11y/alt-text */
715
716 var ErrorScreenButton = function ErrorScreenButton(props) {
717 var onClick = function onClick() {
718 if (props.action) {
719 props.action();
720 }
721 };
722 return /*#__PURE__*/_react.default.createElement(_appUi.Button, {
723 text: props.text,
724 onClick: onClick,
725 url: props.url,
726 target: props.target,
727 color: props.color || 'link',
728 variant: props.variant || ''
729 });
730 };
731 ErrorScreenButton.propTypes = {
732 text: _propTypes.default.string,
733 action: _propTypes.default.func,
734 url: _propTypes.default.string,
735 target: _propTypes.default.string,
736 color: _propTypes.default.oneOf(['primary', 'secondary', 'cta', 'link', 'disabled']),
737 variant: _propTypes.default.oneOf(['contained', 'underlined', 'outlined', ''])
738 };
739 function ErrorScreen(props) {
740 return /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
741 container: true,
742 alignItems: "center",
743 justify: "center",
744 direction: "column",
745 className: "e-kit-library__error-screen"
746 }, /*#__PURE__*/_react.default.createElement("img", {
747 src: "".concat(elementorAppConfig.assets_url, "images/no-search-results.svg")
748 }), /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
749 tag: "h3",
750 variant: "display-1",
751 className: "e-kit-library__error-screen-title"
752 }, props.title), /*#__PURE__*/_react.default.createElement(_appUi.Text, {
753 variant: "xl",
754 className: "e-kit-library__error-screen-description"
755 }, props.description, " ", ' ', !props.newLineButton && /*#__PURE__*/_react.default.createElement(ErrorScreenButton, props.button)), props.newLineButton && /*#__PURE__*/_react.default.createElement(ErrorScreenButton, props.button));
756 }
757 ErrorScreen.propTypes = {
758 title: _propTypes.default.string,
759 description: _propTypes.default.string,
760 newLineButton: _propTypes.default.bool,
761 button: _propTypes.default.shape({
762 text: _propTypes.default.string,
763 action: _propTypes.default.func,
764 url: _propTypes.default.string,
765 target: _propTypes.default.string,
766 category: _propTypes.default.string,
767 color: _propTypes.default.oneOf(['primary', 'secondary', 'cta', 'link', 'disabled']),
768 variant: _propTypes.default.oneOf(['contained', 'underlined', 'outlined', ''])
769 })
770 };
771
772 /***/ }),
773
774 /***/ "../app/modules/kit-library/assets/js/components/favorites-actions.js":
775 /*!****************************************************************************!*\
776 !*** ../app/modules/kit-library/assets/js/components/favorites-actions.js ***!
777 \****************************************************************************/
778 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
779
780 "use strict";
781 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
782 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
783
784
785 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
786 Object.defineProperty(exports, "__esModule", ({
787 value: true
788 }));
789 exports["default"] = FavoritesActions;
790 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
791 var _useKitFavoritesMutations = __webpack_require__(/*! ../hooks/use-kit-favorites-mutations */ "../app/modules/kit-library/assets/js/hooks/use-kit-favorites-mutations.js");
792 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
793 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
794 __webpack_require__(/*! ./favorites-actions.scss */ "../app/modules/kit-library/assets/js/components/favorites-actions.scss");
795 function FavoritesActions(props) {
796 var _useKitFavoritesMutat = (0, _useKitFavoritesMutations.useKitFavoritesMutations)(),
797 addToFavorites = _useKitFavoritesMutat.addToFavorites,
798 removeFromFavorites = _useKitFavoritesMutat.removeFromFavorites,
799 isLoading = _useKitFavoritesMutat.isLoading;
800 var loadingClasses = isLoading ? 'e-kit-library__kit-favorite-actions--loading' : '';
801 var eventTracking = function eventTracking(kitName, source, action) {
802 var gridLocation = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
803 var searchTerm = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
804 (0, _appsEventTracking.appsEventTrackingDispatch)('kit-library/favorite-icon', {
805 grid_location: gridLocation,
806 search_term: searchTerm,
807 kit_name: kitName,
808 page_source: source && ('/' === source ? 'home page' : 'overview'),
809 element_location: source && 'overview' === source ? 'app_sidebar' : null,
810 action: action
811 });
812 };
813 return props.isFavorite ? /*#__PURE__*/_react.default.createElement(_appUi.Button, {
814 text: __('Remove from Favorites', 'elementor'),
815 hideText: true,
816 icon: "eicon-heart",
817 className: "e-kit-library__kit-favorite-actions e-kit-library__kit-favorite-actions--active ".concat(loadingClasses),
818 onClick: function onClick() {
819 // eslint-disable-next-line no-unused-expressions
820 !isLoading && removeFromFavorites.mutate(props.id);
821 eventTracking(props === null || props === void 0 ? void 0 : props.name, props === null || props === void 0 ? void 0 : props.source, 'uncheck');
822 }
823 }) : /*#__PURE__*/_react.default.createElement(_appUi.Button, {
824 text: __('Add to Favorites', 'elementor'),
825 hideText: true,
826 icon: "eicon-heart-o",
827 className: "e-kit-library__kit-favorite-actions ".concat(loadingClasses),
828 onClick: function onClick() {
829 // eslint-disable-next-line no-unused-expressions
830 !isLoading && addToFavorites.mutate(props.id);
831 eventTracking(props === null || props === void 0 ? void 0 : props.name, props === null || props === void 0 ? void 0 : props.source, 'check', props === null || props === void 0 ? void 0 : props.index, props === null || props === void 0 ? void 0 : props.queryParams);
832 }
833 });
834 }
835 FavoritesActions.propTypes = {
836 isFavorite: PropTypes.bool,
837 id: PropTypes.string,
838 name: PropTypes.string,
839 source: PropTypes.string,
840 index: PropTypes.number,
841 queryParams: PropTypes.string
842 };
843
844 /***/ }),
845
846 /***/ "../app/modules/kit-library/assets/js/components/filter-indication-text.js":
847 /*!*********************************************************************************!*\
848 !*** ../app/modules/kit-library/assets/js/components/filter-indication-text.js ***!
849 \*********************************************************************************/
850 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
851
852 "use strict";
853 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
854 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
855
856
857 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
858 Object.defineProperty(exports, "__esModule", ({
859 value: true
860 }));
861 exports["default"] = FilterIndicationText;
862 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
863 var _useSelectedTaxonomies = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-selected-taxonomies */ "../app/modules/kit-library/assets/js/hooks/use-selected-taxonomies.js"));
864 var _badge = _interopRequireDefault(__webpack_require__(/*! ./badge */ "../app/modules/kit-library/assets/js/components/badge.js"));
865 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
866 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
867 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
868 __webpack_require__(/*! ./filter-indication-text.scss */ "../app/modules/kit-library/assets/js/components/filter-indication-text.scss");
869 var _taxonomyTransformer = __webpack_require__(/*! ../models/taxonomy-transformer */ "../app/modules/kit-library/assets/js/models/taxonomy-transformer.js");
870 function FilterIndicationText(props) {
871 var selectedTaxonomies = (0, _useSelectedTaxonomies.default)(props.queryParams.taxonomies);
872 var eventTracking = function eventTracking(taxonomy) {
873 var eventType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click';
874 (0, _appsEventTracking.appsEventTrackingDispatch)('kit-library/clear-filter', {
875 tag: taxonomy,
876 page_source: 'home page',
877 event_type: eventType
878 });
879 };
880 return /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
881 container: true,
882 className: "e-kit-library__filter-indication"
883 }, /*#__PURE__*/_react.default.createElement(_appUi.Text, {
884 className: "e-kit-library__filter-indication-text"
885 },
886 // Translators: %s is the number of kits in the results
887 (0, _i18n.sprintf)((0, _i18n._n)('Showing %s result for', 'Showing %s results for', props.resultCount, 'elementor'), !props.resultCount ? __('no', 'elementor') : props.resultCount), ' ', props.queryParams.search && "\"".concat(props.queryParams.search, "\""), ' ', selectedTaxonomies.length > 0 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, selectedTaxonomies.map(function (taxonomy) {
888 return /*#__PURE__*/_react.default.createElement(_badge.default, {
889 key: taxonomy,
890 className: "e-kit-library__filter-indication-badge"
891 }, _taxonomyTransformer.NewPlanTexts[taxonomy] || taxonomy, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
892 text: __('Remove', 'elementor'),
893 hideText: true,
894 icon: "eicon-editor-close",
895 className: "e-kit-library__filter-indication-badge-remove",
896 onClick: function onClick() {
897 eventTracking(taxonomy);
898 props.onRemoveTag(taxonomy);
899 }
900 }));
901 }))), /*#__PURE__*/_react.default.createElement(_appUi.Button, {
902 className: "e-kit-library__filter-indication-button",
903 text: __('Clear all', 'elementor'),
904 variant: "underlined",
905 onClick: function onClick() {
906 eventTracking('all');
907 props.onClear();
908 }
909 }));
910 }
911 FilterIndicationText.propTypes = {
912 queryParams: PropTypes.shape({
913 search: PropTypes.string,
914 taxonomies: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),
915 favorite: PropTypes.bool
916 }),
917 resultCount: PropTypes.number.isRequired,
918 onClear: PropTypes.func.isRequired,
919 onRemoveTag: PropTypes.func.isRequired
920 };
921
922 /***/ }),
923
924 /***/ "../app/modules/kit-library/assets/js/components/item-header.js":
925 /*!**********************************************************************!*\
926 !*** ../app/modules/kit-library/assets/js/components/item-header.js ***!
927 \**********************************************************************/
928 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
929
930 "use strict";
931 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
932 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
933
934
935 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
936 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
937 Object.defineProperty(exports, "__esModule", ({
938 value: true
939 }));
940 exports["default"] = ItemHeader;
941 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
942 var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
943 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
944 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
945 var _kitDialog = _interopRequireDefault(__webpack_require__(/*! ./kit-dialog */ "../app/modules/kit-library/assets/js/components/kit-dialog.js"));
946 var _connectDialog = _interopRequireDefault(__webpack_require__(/*! ./connect-dialog */ "../app/modules/kit-library/assets/js/components/connect-dialog.js"));
947 var _header = _interopRequireDefault(__webpack_require__(/*! ./layout/header */ "../app/modules/kit-library/assets/js/components/layout/header.js"));
948 var _headerBackButton = _interopRequireDefault(__webpack_require__(/*! ./layout/header-back-button */ "../app/modules/kit-library/assets/js/components/layout/header-back-button.js"));
949 var _kit = _interopRequireDefault(__webpack_require__(/*! ../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
950 var _useDownloadLinkMutation = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-download-link-mutation */ "../app/modules/kit-library/assets/js/hooks/use-download-link-mutation.js"));
951 var _useKitCallToAction2 = _interopRequireWildcard(__webpack_require__(/*! ../hooks/use-kit-call-to-action */ "../app/modules/kit-library/assets/js/hooks/use-kit-call-to-action.js"));
952 var _useAddKitPromotionUtm = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-add-kit-promotion-utm */ "../app/modules/kit-library/assets/js/hooks/use-add-kit-promotion-utm.js"));
953 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
954 var _settingsContext = __webpack_require__(/*! ../context/settings-context */ "../app/modules/kit-library/assets/js/context/settings-context.js");
955 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
956 var _tiers = __webpack_require__(/*! elementor-utils/tiers */ "../assets/dev/js/utils/tiers.js");
957 __webpack_require__(/*! ./item-header.scss */ "../app/modules/kit-library/assets/js/components/item-header.scss");
958 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
959 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
960 /**
961 * Returns the right call to action button.
962 *
963 * @param {Kit} model
964 * @param {Object} root0
965 * @param {Function} root0.apply
966 * @param {Function} root0.onConnect
967 * @param {Function} root0.onClick
968 * @param {boolean} root0.isApplyLoading
969 * @return {Object} result
970 */
971 function useKitCallToActionButton(model, _ref) {
972 var apply = _ref.apply,
973 isApplyLoading = _ref.isApplyLoading,
974 onConnect = _ref.onConnect,
975 _onClick = _ref.onClick;
976 var _useKitCallToAction = (0, _useKitCallToAction2.default)(model.accessTier),
977 type = _useKitCallToAction.type,
978 subscriptionPlan = _useKitCallToAction.subscriptionPlan;
979 var promotionUrl = (0, _useAddKitPromotionUtm.default)(subscriptionPlan.promotion_url, model.id, model.title);
980 var _useSettingsContext = (0, _settingsContext.useSettingsContext)(),
981 settings = _useSettingsContext.settings;
982 return (0, _react.useMemo)(function () {
983 if (type === _useKitCallToAction2.TYPE_CONNECT) {
984 return {
985 id: 'connect',
986 text: __('Apply Kit', 'elementor'),
987 // The label is Apply kit but the this is connect button
988 hideText: false,
989 variant: 'contained',
990 color: 'primary',
991 size: 'sm',
992 onClick: function onClick(e) {
993 onConnect(e);
994 _onClick === null || _onClick === void 0 || _onClick(e);
995 },
996 includeHeaderBtnClass: false
997 };
998 }
999 if (type === _useKitCallToAction2.TYPE_PROMOTION && subscriptionPlan) {
1000 return {
1001 id: 'promotion',
1002 text: settings.is_pro ? 'Upgrade' : "Go ".concat(subscriptionPlan.label),
1003 hideText: false,
1004 variant: 'contained',
1005 color: 'cta',
1006 size: 'sm',
1007 url: promotionUrl,
1008 target: '_blank',
1009 includeHeaderBtnClass: false
1010 };
1011 }
1012 return {
1013 id: 'apply',
1014 text: __('Apply Kit', 'elementor'),
1015 className: 'e-kit-library__apply-button',
1016 icon: isApplyLoading ? 'eicon-loading eicon-animation-spin' : '',
1017 hideText: false,
1018 variant: 'contained',
1019 color: isApplyLoading ? 'disabled' : 'primary',
1020 size: 'sm',
1021 onClick: function onClick(e) {
1022 if (!isApplyLoading) {
1023 apply(e);
1024 }
1025 _onClick === null || _onClick === void 0 || _onClick(e);
1026 },
1027 includeHeaderBtnClass: false
1028 };
1029 }, [type, subscriptionPlan, isApplyLoading, apply]);
1030 }
1031 function ItemHeader(props) {
1032 var _useSettingsContext2 = (0, _settingsContext.useSettingsContext)(),
1033 updateSettings = _useSettingsContext2.updateSettings;
1034 var _useState = (0, _react.useState)(false),
1035 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1036 isConnectDialogOpen = _useState2[0],
1037 setIsConnectDialogOpen = _useState2[1];
1038 var _useState3 = (0, _react.useState)(null),
1039 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1040 downloadLinkData = _useState4[0],
1041 setDownloadLinkData = _useState4[1];
1042 var _useState5 = (0, _react.useState)(false),
1043 _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
1044 error = _useState6[0],
1045 setError = _useState6[1];
1046 var kitData = {
1047 kitName: props.model.title,
1048 pageId: props.pageId
1049 };
1050 var _useDownloadLinkMutat = (0, _useDownloadLinkMutation.default)(props.model, {
1051 onSuccess: function onSuccess(_ref2) {
1052 var data = _ref2.data;
1053 return setDownloadLinkData(data);
1054 },
1055 onError: function onError(errorResponse) {
1056 if (401 === errorResponse.code) {
1057 elementorCommon.config.library_connect.is_connected = false;
1058 elementorCommon.config.library_connect.current_access_level = 0;
1059 elementorCommon.config.library_connect.current_access_tier = _tiers.TIERS.free;
1060 updateSettings({
1061 is_library_connected: false,
1062 access_level: 0,
1063 access_tier: _tiers.TIERS.free
1064 });
1065 setIsConnectDialogOpen(true);
1066 return;
1067 }
1068 setError({
1069 code: errorResponse.code,
1070 message: __('Something went wrong.', 'elementor')
1071 });
1072 }
1073 }),
1074 apply = _useDownloadLinkMutat.mutate,
1075 isApplyLoading = _useDownloadLinkMutat.isLoading;
1076 var applyButton = useKitCallToActionButton(props.model, {
1077 onConnect: function onConnect() {
1078 return setIsConnectDialogOpen(true);
1079 },
1080 apply: apply,
1081 isApplyLoading: isApplyLoading,
1082 onClick: function onClick() {
1083 return (0, _appsEventTracking.appsEventTrackingDispatch)('kit-library/apply-kit', {
1084 kit_name: props.model.title,
1085 element_position: 'app_header',
1086 page_source: props.pageId,
1087 event_type: 'click'
1088 });
1089 }
1090 });
1091 var buttons = (0, _react.useMemo)(function () {
1092 return [applyButton].concat((0, _toConsumableArray2.default)(props.buttons));
1093 }, [props.buttons, applyButton]);
1094 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
1095 title: error.message,
1096 text: __('Go to the pages screen to make sure your kit pages have been imported successfully. If not, try again.', 'elementor'),
1097 approveButtonText: __('Go to pages', 'elementor'),
1098 approveButtonColor: "primary",
1099 approveButtonUrl: elementorAppConfig.admin_url + 'edit.php?post_type=page',
1100 approveButtonOnClick: function approveButtonOnClick() {
1101 return setError(false);
1102 },
1103 dismissButtonText: __('Got it', 'elementor'),
1104 dismissButtonOnClick: function dismissButtonOnClick() {
1105 return setError(false);
1106 },
1107 onClose: function onClose() {
1108 return setError(false);
1109 }
1110 }), downloadLinkData && /*#__PURE__*/_react.default.createElement(_kitDialog.default, {
1111 id: props.model.id,
1112 downloadLinkData: downloadLinkData,
1113 onClose: function onClose() {
1114 return setDownloadLinkData(null);
1115 }
1116 }), isConnectDialogOpen && /*#__PURE__*/_react.default.createElement(_connectDialog.default, {
1117 pageId: props.pageId,
1118 onClose: function onClose() {
1119 return setIsConnectDialogOpen(false);
1120 },
1121 onSuccess: function onSuccess(data) {
1122 var accessLevel = data.kits_access_level || data.access_level || 0;
1123 var accessTier = data.access_tier;
1124 elementorCommon.config.library_connect.is_connected = true;
1125 elementorCommon.config.library_connect.current_access_level = accessLevel;
1126 elementorCommon.config.library_connect.current_access_tier = accessTier;
1127 updateSettings({
1128 is_library_connected: true,
1129 access_level: accessLevel,
1130 // BC: Check for 'access_level' prop
1131 access_tier: accessTier
1132 });
1133 if (data.access_level < props.model.accessLevel) {
1134 return;
1135 }
1136 if (!(0, _tiers.isTierAtLeast)(accessTier, props.model.accessTier)) {
1137 return;
1138 }
1139 apply();
1140 },
1141 onError: function onError(message) {
1142 return setError({
1143 message: message
1144 });
1145 }
1146 }), /*#__PURE__*/_react.default.createElement(_header.default, (0, _extends2.default)({
1147 startColumn: /*#__PURE__*/_react.default.createElement(_headerBackButton.default, kitData),
1148 centerColumn: props.centerColumn,
1149 buttons: buttons
1150 }, kitData)));
1151 }
1152 ItemHeader.propTypes = {
1153 model: PropTypes.instanceOf(_kit.default).isRequired,
1154 centerColumn: PropTypes.node,
1155 buttons: PropTypes.arrayOf(PropTypes.object),
1156 pageId: PropTypes.string
1157 };
1158
1159 /***/ }),
1160
1161 /***/ "../app/modules/kit-library/assets/js/components/kit-already-applied-dialog.js":
1162 /*!*************************************************************************************!*\
1163 !*** ../app/modules/kit-library/assets/js/components/kit-already-applied-dialog.js ***!
1164 \*************************************************************************************/
1165 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1166
1167 "use strict";
1168 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1169 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1170
1171
1172 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1173 Object.defineProperty(exports, "__esModule", ({
1174 value: true
1175 }));
1176 exports["default"] = KitAlreadyAppliedDialog;
1177 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1178 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1179 function KitAlreadyAppliedDialog(props) {
1180 var getRemoveKitUrl = function getRemoveKitUrl() {
1181 var elementorToolsUrl = elementorAppConfig['import-export'].tools_url;
1182 var url = new URL(elementorToolsUrl);
1183 url.searchParams.append('referrer_kit', props.id);
1184 url.hash = 'tab-import-export-kit';
1185 return url.toString();
1186 };
1187 return /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
1188 title: __('You\'ve already applied a Kit.', 'elementor'),
1189 text: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, __('Applying two Kits on the same website will mix global styles and colors and hurt your site\'s performance.', 'elementor'), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("br", null), __('Remove the existing Kit before applying a new one.', 'elementor')),
1190 approveButtonText: __('Remove existing Kit', 'elementor'),
1191 approveButtonColor: "primary",
1192 approveButtonOnClick: function approveButtonOnClick() {
1193 return location.href = getRemoveKitUrl();
1194 },
1195 dismissButtonText: __('Apply anyway', 'elementor'),
1196 dismissButtonOnClick: props.dismissButtonOnClick,
1197 onClose: props.onClose
1198 });
1199 }
1200 KitAlreadyAppliedDialog.propTypes = {
1201 id: PropTypes.string.isRequired,
1202 dismissButtonOnClick: PropTypes.func.isRequired,
1203 onClose: PropTypes.func.isRequired
1204 };
1205
1206 /***/ }),
1207
1208 /***/ "../app/modules/kit-library/assets/js/components/kit-cloud-delete-dialog.js":
1209 /*!**********************************************************************************!*\
1210 !*** ../app/modules/kit-library/assets/js/components/kit-cloud-delete-dialog.js ***!
1211 \**********************************************************************************/
1212 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1213
1214 "use strict";
1215 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1216
1217
1218 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1219 Object.defineProperty(exports, "__esModule", ({
1220 value: true
1221 }));
1222 exports["default"] = KitCloudDeleteDialog;
1223 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1224 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1225 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1226 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1227 function KitCloudDeleteDialog(_ref) {
1228 var kit = _ref.kit,
1229 show = _ref.show,
1230 onCancelClick = _ref.onCancelClick,
1231 onDeleteClick = _ref.onDeleteClick,
1232 isLoading = _ref.isLoading;
1233 if (!kit || !show) {
1234 return null;
1235 }
1236 var handleDeleteClick = function handleDeleteClick() {
1237 if (!isLoading) {
1238 onDeleteClick();
1239 }
1240 };
1241 var handleCancelClick = function handleCancelClick() {
1242 if (!isLoading) {
1243 onCancelClick();
1244 }
1245 };
1246 return /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
1247 title: __('Delete this kit?', 'elementor'),
1248 text: /* Translators: %s: Kit title. */(0, _i18n.sprintf)(__('Removing %s will permanently delete changes made to the site design and settings.', 'elementor'), (kit === null || kit === void 0 ? void 0 : kit.title) || ''),
1249 onClose: handleCancelClick,
1250 dismissButtonText: __('Cancel', 'elementor'),
1251 dismissButtonOnClick: handleCancelClick,
1252 approveButtonText: isLoading ? '' : __('Delete', 'elementor'),
1253 approveButtonOnClick: handleDeleteClick,
1254 approveButtonColor: "danger"
1255 });
1256 }
1257 KitCloudDeleteDialog.propTypes = {
1258 onDeleteClick: _propTypes.default.func.isRequired,
1259 onCancelClick: _propTypes.default.func.isRequired,
1260 show: _propTypes.default.bool.isRequired,
1261 isLoading: _propTypes.default.bool.isRequired,
1262 kit: _propTypes.default.shape({
1263 id: _propTypes.default.string,
1264 title: _propTypes.default.string
1265 })
1266 };
1267
1268 /***/ }),
1269
1270 /***/ "../app/modules/kit-library/assets/js/components/kit-dialog.js":
1271 /*!*********************************************************************!*\
1272 !*** ../app/modules/kit-library/assets/js/components/kit-dialog.js ***!
1273 \*********************************************************************/
1274 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1275
1276 "use strict";
1277 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1278
1279
1280 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1281 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1282 Object.defineProperty(exports, "__esModule", ({
1283 value: true
1284 }));
1285 exports["default"] = KitDialog;
1286 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1287 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1288 var _kitAlreadyAppliedDialog = _interopRequireDefault(__webpack_require__(/*! ./kit-already-applied-dialog */ "../app/modules/kit-library/assets/js/components/kit-already-applied-dialog.js"));
1289 var _applyKitDialog = _interopRequireDefault(__webpack_require__(/*! ./apply-kit-dialog */ "../app/modules/kit-library/assets/js/components/apply-kit-dialog.js"));
1290 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
1291 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1292 function KitDialog(props) {
1293 var _useState = (0, _react.useState)(false),
1294 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1295 applyAnyway = _useState2[0],
1296 setApplyAnyway = _useState2[1];
1297 var kitAlreadyApplied = !!elementorAppConfig['import-export'].lastImportedSession.session_id;
1298 if (kitAlreadyApplied && !applyAnyway) {
1299 return /*#__PURE__*/_react.default.createElement(_kitAlreadyAppliedDialog.default, {
1300 id: props.id,
1301 dismissButtonOnClick: function dismissButtonOnClick() {
1302 return setApplyAnyway(true);
1303 },
1304 onClose: props.onClose
1305 });
1306 }
1307 return /*#__PURE__*/_react.default.createElement(_applyKitDialog.default, {
1308 id: props.id,
1309 downloadLink: props.downloadLinkData.data.download_link,
1310 nonce: props.downloadLinkData.meta.nonce,
1311 onClose: props.onClose
1312 });
1313 }
1314 KitDialog.propTypes = {
1315 id: PropTypes.string.isRequired,
1316 downloadLinkData: PropTypes.object.isRequired,
1317 onClose: PropTypes.func.isRequired
1318 };
1319
1320 /***/ }),
1321
1322 /***/ "../app/modules/kit-library/assets/js/components/kit-list-cloud-item.js":
1323 /*!******************************************************************************!*\
1324 !*** ../app/modules/kit-library/assets/js/components/kit-list-cloud-item.js ***!
1325 \******************************************************************************/
1326 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1327
1328 "use strict";
1329
1330
1331 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1332 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1333 Object.defineProperty(exports, "__esModule", ({
1334 value: true
1335 }));
1336 exports["default"] = void 0;
1337 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1338 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1339 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1340 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1341 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
1342 var _kit = _interopRequireDefault(__webpack_require__(/*! ../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
1343 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1344 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
1345 var _useKit = __webpack_require__(/*! ../../../../import-export/assets/js/hooks/use-kit */ "../app/modules/import-export/assets/js/hooks/use-kit.js");
1346 __webpack_require__(/*! ./kit-list-item.scss */ "../app/modules/kit-library/assets/js/components/kit-list-item.scss");
1347 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
1348 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1349 var PopoverItem = function PopoverItem(_ref) {
1350 var _ref$className = _ref.className,
1351 className = _ref$className === void 0 ? '' : _ref$className,
1352 icon = _ref.icon,
1353 title = _ref.title,
1354 onClick = _ref.onClick;
1355 var handleClick = function handleClick() {
1356 onClick();
1357 };
1358 var handleKeyDown = function handleKeyDown(event) {
1359 if ('Enter' === event.key || ' ' === event.key) {
1360 event.preventDefault();
1361 onClick();
1362 }
1363 };
1364 return /*#__PURE__*/_react.default.createElement("div", {
1365 className: "e-kit-library__kit-item-actions-popover-item ".concat(className),
1366 role: "button",
1367 tabIndex: 0,
1368 onClick: handleClick,
1369 onKeyDown: handleKeyDown
1370 }, /*#__PURE__*/_react.default.createElement("i", {
1371 className: icon
1372 }), /*#__PURE__*/_react.default.createElement("span", null, title));
1373 };
1374 PopoverItem.propTypes = {
1375 className: _propTypes.default.string,
1376 icon: _propTypes.default.string.isRequired,
1377 title: _propTypes.default.string.isRequired,
1378 onClick: _propTypes.default.func.isRequired
1379 };
1380 var KitActionsPopover = function KitActionsPopover(_ref2) {
1381 var isOpen = _ref2.isOpen,
1382 onClose = _ref2.onClose,
1383 onDelete = _ref2.onDelete,
1384 _ref2$className = _ref2.className,
1385 className = _ref2$className === void 0 ? 'e-kit-library__kit-item-actions-popover' : _ref2$className;
1386 if (!isOpen) {
1387 return null;
1388 }
1389 return /*#__PURE__*/_react.default.createElement(_appUi.Popover, {
1390 className: className,
1391 closeFunction: onClose,
1392 arrowPosition: "none"
1393 }, /*#__PURE__*/_react.default.createElement(PopoverItem, {
1394 className: "e-kit-library__kit-item-actions-popover-item--danger",
1395 icon: "eicon-library-delete",
1396 title: (0, _i18n.__)('Delete', 'elementor'),
1397 onClick: onDelete
1398 }));
1399 };
1400 KitActionsPopover.propTypes = {
1401 isOpen: _propTypes.default.bool.isRequired,
1402 onClose: _propTypes.default.func.isRequired,
1403 onDelete: _propTypes.default.func.isRequired,
1404 className: _propTypes.default.string
1405 };
1406 var KitListCloudItem = function KitListCloudItem(props) {
1407 var navigate = (0, _router.useNavigate)();
1408 var _useState = (0, _react.useState)(false),
1409 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1410 isPopoverOpen = _useState2[0],
1411 setIsPopoverOpen = _useState2[1];
1412 var eventTracking = function eventTracking(command) {
1413 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
1414 kit_name: props.model.title,
1415 grid_location: props.index,
1416 page_source: 'cloud'
1417 });
1418 };
1419 var handleDelete = function handleDelete() {
1420 setIsPopoverOpen(false);
1421 eventTracking('kit-library/cloud-delete');
1422 props.onDelete();
1423 };
1424 return /*#__PURE__*/_react.default.createElement(_appUi.Card, {
1425 className: "e-kit-library__kit-item"
1426 }, /*#__PURE__*/_react.default.createElement(_appUi.CardHeader, {
1427 className: "e-kit-library__kit-item-header"
1428 }, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
1429 tag: "h3",
1430 title: props.model.title,
1431 variant: "h5",
1432 className: "eps-card__headline"
1433 }, props.model.title), /*#__PURE__*/_react.default.createElement(_appUi.Button, {
1434 text: (0, _i18n.__)('Actions', 'elementor'),
1435 hideText: true,
1436 icon: "eicon-ellipsis-v",
1437 className: "e-kit-library__kit-item-actions-menu",
1438 onClick: function onClick(event) {
1439 event.stopPropagation();
1440 setIsPopoverOpen(true);
1441 }
1442 }), /*#__PURE__*/_react.default.createElement(KitActionsPopover, {
1443 isOpen: isPopoverOpen,
1444 onClose: function onClose() {
1445 return setIsPopoverOpen(false);
1446 },
1447 onDelete: handleDelete
1448 })), /*#__PURE__*/_react.default.createElement(_appUi.CardBody, null, /*#__PURE__*/_react.default.createElement(_appUi.CardImage, {
1449 alt: props.model.title,
1450 src: props.model.thumbnailUrl || ''
1451 }, /*#__PURE__*/_react.default.createElement(_appUi.CardOverlay, null, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
1452 container: true,
1453 direction: "column",
1454 className: "e-kit-library__kit-item-cloud-overlay"
1455 }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
1456 className: "eps-button e-kit-library__kit-item-cloud-overlay-import-button eps-button--primary eps-button--sm eps-button--contained",
1457 text: (0, _i18n.__)('Apply', 'elementor'),
1458 icon: "eicon-library-download",
1459 onClick: function onClick() {
1460 eventTracking('kit-library/cloud-import');
1461 navigate("import?referrer=kit-library&source=".concat(_useKit.KIT_SOURCE_MAP.CLOUD, "&kit_id=").concat(props.model.id), {
1462 replace: true
1463 });
1464 }
1465 }))))));
1466 };
1467 KitListCloudItem.propTypes = {
1468 model: _propTypes.default.instanceOf(_kit.default).isRequired,
1469 index: _propTypes.default.number,
1470 source: _propTypes.default.string,
1471 onDelete: _propTypes.default.func.isRequired
1472 };
1473 var _default = exports["default"] = _react.default.memo(KitListCloudItem);
1474
1475 /***/ }),
1476
1477 /***/ "../app/modules/kit-library/assets/js/components/kit-list-cloud.js":
1478 /*!*************************************************************************!*\
1479 !*** ../app/modules/kit-library/assets/js/components/kit-list-cloud.js ***!
1480 \*************************************************************************/
1481 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1482
1483 "use strict";
1484 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1485
1486
1487 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1488 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1489 Object.defineProperty(exports, "__esModule", ({
1490 value: true
1491 }));
1492 exports["default"] = KitListCloud;
1493 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1494 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1495 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1496 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1497 var _kit = _interopRequireDefault(__webpack_require__(/*! ../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
1498 var _kitListCloudItem = _interopRequireDefault(__webpack_require__(/*! ./kit-list-cloud-item */ "../app/modules/kit-library/assets/js/components/kit-list-cloud-item.js"));
1499 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1500 var _useKitCloudMutation = __webpack_require__(/*! ../hooks/use-kit-cloud-mutation */ "../app/modules/kit-library/assets/js/hooks/use-kit-cloud-mutation.js");
1501 var _kitCloudDeleteDialog = _interopRequireDefault(__webpack_require__(/*! ./kit-cloud-delete-dialog */ "../app/modules/kit-library/assets/js/components/kit-cloud-delete-dialog.js"));
1502 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
1503 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1504 function KitListCloud(props) {
1505 var _useState = (0, _react.useState)(false),
1506 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1507 isDeleteModalOpen = _useState2[0],
1508 setIsDeleteModalOpen = _useState2[1];
1509 var _useKitCloudMutations = (0, _useKitCloudMutation.useKitCloudMutations)(),
1510 remove = _useKitCloudMutations.remove,
1511 isLoading = _useKitCloudMutations.isLoading;
1512 var _useState3 = (0, _react.useState)(),
1513 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
1514 kit = _useState4[0],
1515 setKit = _useState4[1];
1516 var resetKit = (0, _react.useCallback)(function () {
1517 setKit(null);
1518 setIsDeleteModalOpen(false);
1519 }, []);
1520 var handleDelete = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
1521 return _regenerator.default.wrap(function _callee$(_context) {
1522 while (1) switch (_context.prev = _context.next) {
1523 case 0:
1524 _context.prev = 0;
1525 _context.next = 3;
1526 return remove.mutate(kit.id);
1527 case 3:
1528 _context.prev = 3;
1529 resetKit();
1530 return _context.finish(3);
1531 case 6:
1532 case "end":
1533 return _context.stop();
1534 }
1535 }, _callee, null, [[0,, 3, 6]]);
1536 })), [kit, remove, resetKit]);
1537 return /*#__PURE__*/_react.default.createElement(_appUi.CssGrid, {
1538 spacing: 24,
1539 colMinWidth: 290
1540 }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.data.map(function (model, index) {
1541 return /*#__PURE__*/_react.default.createElement(_kitListCloudItem.default, {
1542 key: model.id,
1543 model: model,
1544 index: index,
1545 source: props.source,
1546 onDelete: function onDelete() {
1547 setKit(model);
1548 setIsDeleteModalOpen(true);
1549 }
1550 });
1551 })), /*#__PURE__*/_react.default.createElement(_kitCloudDeleteDialog.default, {
1552 kit: kit,
1553 show: isDeleteModalOpen,
1554 onDeleteClick: handleDelete,
1555 onCancelClick: resetKit,
1556 isLoading: isLoading
1557 }));
1558 }
1559 KitListCloud.propTypes = {
1560 data: PropTypes.arrayOf(PropTypes.instanceOf(_kit.default)),
1561 source: PropTypes.string
1562 };
1563
1564 /***/ }),
1565
1566 /***/ "../app/modules/kit-library/assets/js/components/kit-list-item.js":
1567 /*!************************************************************************!*\
1568 !*** ../app/modules/kit-library/assets/js/components/kit-list-item.js ***!
1569 \************************************************************************/
1570 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1571
1572 "use strict";
1573 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1574
1575
1576 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1577 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1578 Object.defineProperty(exports, "__esModule", ({
1579 value: true
1580 }));
1581 exports["default"] = void 0;
1582 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1583 var _badge = _interopRequireDefault(__webpack_require__(/*! ./badge */ "../app/modules/kit-library/assets/js/components/badge.js"));
1584 var _favoritesActions = _interopRequireDefault(__webpack_require__(/*! ../components/favorites-actions */ "../app/modules/kit-library/assets/js/components/favorites-actions.js"));
1585 var _kit = _interopRequireDefault(__webpack_require__(/*! ../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
1586 var _useKitCallToAction2 = _interopRequireWildcard(__webpack_require__(/*! ../hooks/use-kit-call-to-action */ "../app/modules/kit-library/assets/js/hooks/use-kit-call-to-action.js"));
1587 var _useAddKitPromotionUtm = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-add-kit-promotion-utm */ "../app/modules/kit-library/assets/js/hooks/use-add-kit-promotion-utm.js"));
1588 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1589 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
1590 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
1591 __webpack_require__(/*! ./kit-list-item.scss */ "../app/modules/kit-library/assets/js/components/kit-list-item.scss");
1592 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
1593 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1594 var KitListItem = function KitListItem(props) {
1595 var _useKitCallToAction = (0, _useKitCallToAction2.default)(props.model.accessTier),
1596 type = _useKitCallToAction.type,
1597 subscriptionPlan = _useKitCallToAction.subscriptionPlan;
1598 var promotionUrl = (0, _useAddKitPromotionUtm.default)(subscriptionPlan.promotion_url, props.model.id, props.model.title);
1599 var ctaText = (0, _i18n.__)('Upgrade', 'elementor');
1600 var showPromotion = _useKitCallToAction2.TYPE_PROMOTION === type;
1601 var eventTracking = function eventTracking(command) {
1602 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
1603 kit_name: props.model.title,
1604 grid_location: props.index,
1605 search_term: props.queryParams,
1606 page_source: props.source && '/' === props.source ? 'all kits' : 'favorites'
1607 });
1608 };
1609 return /*#__PURE__*/_react.default.createElement(_appUi.Card, {
1610 className: "e-kit-library__kit-item"
1611 }, /*#__PURE__*/_react.default.createElement(_appUi.CardHeader, null, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
1612 tag: "h3",
1613 title: props.model.title,
1614 variant: "h5",
1615 className: "eps-card__headline"
1616 }, props.model.title), /*#__PURE__*/_react.default.createElement(_favoritesActions.default, {
1617 id: props.model.id,
1618 isFavorite: props.model.isFavorite,
1619 index: props.index,
1620 name: props.model.title,
1621 queryParams: props.queryParams,
1622 source: props.source
1623 })), /*#__PURE__*/_react.default.createElement(_appUi.CardBody, null, /*#__PURE__*/_react.default.createElement(_appUi.CardImage, {
1624 alt: props.model.title,
1625 src: props.model.thumbnailUrl || ''
1626 }, /*#__PURE__*/_react.default.createElement(_badge.default, {
1627 variant: "sm",
1628 className: "e-kit-library__kit-item-subscription-plan-badge ".concat(subscriptionPlan.isPromoted ? 'promoted' : '')
1629 }, subscriptionPlan.label), /*#__PURE__*/_react.default.createElement(_appUi.CardOverlay, null, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
1630 container: true,
1631 direction: "column",
1632 className: "e-kit-library__kit-item-overlay"
1633 }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
1634 className: "e-kit-library__kit-item-overlay-overview-button",
1635 text: (0, _i18n.__)('View Demo', 'elementor'),
1636 icon: "eicon-preview-medium",
1637 url: "/kit-library/preview/".concat(props.model.id),
1638 onClick: function onClick() {
1639 return eventTracking('kit-library/check-out-kit');
1640 }
1641 }), showPromotion && /*#__PURE__*/_react.default.createElement(_appUi.Button, {
1642 className: "e-kit-library__kit-item-overlay-promotion-button",
1643 text: ctaText,
1644 icon: "eicon-external-link-square",
1645 url: promotionUrl,
1646 target: "_blank"
1647 }))))));
1648 };
1649 KitListItem.propTypes = {
1650 model: PropTypes.instanceOf(_kit.default).isRequired,
1651 index: PropTypes.number,
1652 queryParams: PropTypes.string,
1653 source: PropTypes.string
1654 };
1655 var _default = exports["default"] = _react.default.memo(KitListItem);
1656
1657 /***/ }),
1658
1659 /***/ "../app/modules/kit-library/assets/js/components/kit-list.js":
1660 /*!*******************************************************************!*\
1661 !*** ../app/modules/kit-library/assets/js/components/kit-list.js ***!
1662 \*******************************************************************/
1663 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1664
1665 "use strict";
1666 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1667
1668
1669 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1670 Object.defineProperty(exports, "__esModule", ({
1671 value: true
1672 }));
1673 exports["default"] = KitList;
1674 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1675 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1676 var _kit = _interopRequireDefault(__webpack_require__(/*! ../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
1677 var _kitListItem = _interopRequireDefault(__webpack_require__(/*! ./kit-list-item */ "../app/modules/kit-library/assets/js/components/kit-list-item.js"));
1678 var _newPageKitListItem = _interopRequireDefault(__webpack_require__(/*! ../../../../onboarding/assets/js/components/new-page-kit-list-item */ "../app/modules/onboarding/assets/js/components/new-page-kit-list-item.js"));
1679 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1680 function KitList(props) {
1681 var _location$pathname$sp;
1682 var location = (0, _router.useLocation)();
1683 var referrer = new URLSearchParams((_location$pathname$sp = location.pathname.split('?')) === null || _location$pathname$sp === void 0 ? void 0 : _location$pathname$sp[1]).get('referrer');
1684 return /*#__PURE__*/_react.default.createElement(_appUi.CssGrid, {
1685 spacing: 24,
1686 colMinWidth: 290
1687 }, 'onboarding' === referrer && /*#__PURE__*/_react.default.createElement(_newPageKitListItem.default, null), props.data.map(function (model, index) {
1688 var _props$queryParams;
1689 return (
1690 /*#__PURE__*/
1691 // The + 1 was added in order to start the map.index from 1 and not from 0.
1692 _react.default.createElement(_kitListItem.default, {
1693 key: model.id,
1694 model: model,
1695 index: index + 1,
1696 queryParams: (_props$queryParams = props.queryParams) === null || _props$queryParams === void 0 ? void 0 : _props$queryParams.search,
1697 source: props.source
1698 })
1699 );
1700 }));
1701 }
1702 KitList.propTypes = {
1703 data: PropTypes.arrayOf(PropTypes.instanceOf(_kit.default)),
1704 queryParams: PropTypes.shape({
1705 search: PropTypes.string
1706 }),
1707 source: PropTypes.string
1708 };
1709
1710 /***/ }),
1711
1712 /***/ "../app/modules/kit-library/assets/js/components/layout/header-back-button.js":
1713 /*!************************************************************************************!*\
1714 !*** ../app/modules/kit-library/assets/js/components/layout/header-back-button.js ***!
1715 \************************************************************************************/
1716 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1717
1718 "use strict";
1719 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1720 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1721
1722
1723 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1724 Object.defineProperty(exports, "__esModule", ({
1725 value: true
1726 }));
1727 exports["default"] = HeaderBackButton;
1728 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1729 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1730 var _lastFilterContext = __webpack_require__(/*! ../../context/last-filter-context */ "../app/modules/kit-library/assets/js/context/last-filter-context.js");
1731 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
1732 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
1733 __webpack_require__(/*! ./header-back-button.scss */ "../app/modules/kit-library/assets/js/components/layout/header-back-button.scss");
1734 function HeaderBackButton(props) {
1735 var navigate = (0, _router.useNavigate)(),
1736 _useLastFilterContext = (0, _lastFilterContext.useLastFilterContext)(),
1737 lastFilter = _useLastFilterContext.lastFilter,
1738 eventTracking = function eventTracking(command) {
1739 var eventType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click';
1740 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
1741 page_source: props.pageId,
1742 kit_name: props.kitName,
1743 element_position: 'app_header',
1744 event_type: eventType
1745 });
1746 };
1747 return /*#__PURE__*/_react.default.createElement("div", {
1748 className: "e-kit-library__header-back-container"
1749 }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
1750 className: "e-kit-library__header-back",
1751 icon: "eicon-chevron-left",
1752 text: __('Back to Library', 'elementor'),
1753 onClick: function onClick() {
1754 eventTracking('kit-library/back-to-library');
1755 navigate(wp.url.addQueryArgs('/kit-library', lastFilter));
1756 }
1757 }));
1758 }
1759 HeaderBackButton.propTypes = {
1760 pageId: PropTypes.string.isRequired,
1761 kitName: PropTypes.string.isRequired
1762 };
1763
1764 /***/ }),
1765
1766 /***/ "../app/modules/kit-library/assets/js/components/layout/header.js":
1767 /*!************************************************************************!*\
1768 !*** ../app/modules/kit-library/assets/js/components/layout/header.js ***!
1769 \************************************************************************/
1770 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1771
1772 "use strict";
1773 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1774 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1775
1776
1777 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1778 Object.defineProperty(exports, "__esModule", ({
1779 value: true
1780 }));
1781 exports["default"] = Header;
1782 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1783 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1784 var _headerButtons = _interopRequireDefault(__webpack_require__(/*! ../../../../../../assets/js/layout/header-buttons */ "../app/assets/js/layout/header-buttons.js"));
1785 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
1786 function Header(props) {
1787 var eventTracking = function eventTracking(command) {
1788 var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'home page';
1789 var kitName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1790 var eventType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'click';
1791 return (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
1792 page_source: source,
1793 element_position: 'app_header',
1794 kit_name: kitName,
1795 event_type: eventType
1796 });
1797 },
1798 onClose = function onClose() {
1799 eventTracking('kit-library/close', props === null || props === void 0 ? void 0 : props.pageId, props === null || props === void 0 ? void 0 : props.kitName);
1800 window.top.location = elementorAppConfig.admin_url;
1801 };
1802 return /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
1803 container: true,
1804 alignItems: "center",
1805 justify: "space-between",
1806 className: "eps-app__header"
1807 }, props.startColumn || /*#__PURE__*/_react.default.createElement("a", {
1808 className: "eps-app__logo-title-wrapper",
1809 href: "#/kit-library",
1810 onClick: function onClick() {
1811 return eventTracking('kit-library/logo');
1812 }
1813 }, /*#__PURE__*/_react.default.createElement("i", {
1814 className: "eps-app__logo eicon-elementor"
1815 }), /*#__PURE__*/_react.default.createElement("h1", {
1816 className: "eps-app__title"
1817 }, __('Kit Library', 'elementor'))), props.centerColumn || /*#__PURE__*/_react.default.createElement("span", null), props.endColumn || /*#__PURE__*/_react.default.createElement("div", {
1818 style: {
1819 flex: 1
1820 }
1821 }, /*#__PURE__*/_react.default.createElement(_headerButtons.default, {
1822 buttons: props.buttons,
1823 onClose: onClose
1824 })));
1825 }
1826 Header.propTypes = {
1827 startColumn: PropTypes.node,
1828 endColumn: PropTypes.node,
1829 centerColumn: PropTypes.node,
1830 buttons: PropTypes.arrayOf(PropTypes.object),
1831 kitName: PropTypes.string,
1832 pageId: PropTypes.string
1833 };
1834
1835 /***/ }),
1836
1837 /***/ "../app/modules/kit-library/assets/js/components/layout/index.js":
1838 /*!***********************************************************************!*\
1839 !*** ../app/modules/kit-library/assets/js/components/layout/index.js ***!
1840 \***********************************************************************/
1841 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1842
1843 "use strict";
1844 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1845
1846
1847 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1848 Object.defineProperty(exports, "__esModule", ({
1849 value: true
1850 }));
1851 exports["default"] = Index;
1852 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1853 var _sidebar = _interopRequireDefault(__webpack_require__(/*! ../../../../../../assets/js/layout/sidebar */ "../app/assets/js/layout/sidebar.js"));
1854 function Index(props) {
1855 return /*#__PURE__*/_react.default.createElement("div", {
1856 className: "eps-app__lightbox"
1857 }, /*#__PURE__*/_react.default.createElement("div", {
1858 className: "eps-app"
1859 }, props.header, /*#__PURE__*/_react.default.createElement("div", {
1860 className: "eps-app__main"
1861 }, props.sidebar && /*#__PURE__*/_react.default.createElement(_sidebar.default, null, props.sidebar), props.children)));
1862 }
1863 Index.propTypes = {
1864 header: PropTypes.node,
1865 sidebar: PropTypes.node,
1866 children: PropTypes.node
1867 };
1868
1869 /***/ }),
1870
1871 /***/ "../app/modules/kit-library/assets/js/components/page-loader.js":
1872 /*!**********************************************************************!*\
1873 !*** ../app/modules/kit-library/assets/js/components/page-loader.js ***!
1874 \**********************************************************************/
1875 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1876
1877 "use strict";
1878 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1879
1880
1881 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1882 Object.defineProperty(exports, "__esModule", ({
1883 value: true
1884 }));
1885 exports["default"] = PageLoader;
1886 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
1887 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1888 __webpack_require__(/*! ./page-loader.scss */ "../app/modules/kit-library/assets/js/components/page-loader.scss");
1889 function PageLoader(props) {
1890 return /*#__PURE__*/_react.default.createElement("div", {
1891 className: "e-kit-library__page-loader ".concat(props.className)
1892 }, /*#__PURE__*/_react.default.createElement(_appUi.Icon, {
1893 className: "eicon-loading eicon-animation-spin"
1894 }));
1895 }
1896 PageLoader.propTypes = {
1897 className: PropTypes.string
1898 };
1899 PageLoader.defaultProps = {
1900 className: ''
1901 };
1902
1903 /***/ }),
1904
1905 /***/ "../app/modules/kit-library/assets/js/components/search-input.js":
1906 /*!***********************************************************************!*\
1907 !*** ../app/modules/kit-library/assets/js/components/search-input.js ***!
1908 \***********************************************************************/
1909 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1910
1911 "use strict";
1912 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1913 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1914
1915
1916 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1917 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1918 Object.defineProperty(exports, "__esModule", ({
1919 value: true
1920 }));
1921 exports["default"] = SearchInput;
1922 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1923 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1924 var _useDebouncedCallback = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-debounced-callback */ "../app/modules/kit-library/assets/js/hooks/use-debounced-callback.js"));
1925 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1926 __webpack_require__(/*! ./search-input.scss */ "../app/modules/kit-library/assets/js/components/search-input.scss");
1927 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
1928 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
1929 function SearchInput(props) {
1930 var _useState = (0, _react.useState)(props.value || ''),
1931 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
1932 localValue = _useState2[0],
1933 setLocalValue = _useState2[1];
1934 var debouncedOnChange = (0, _useDebouncedCallback.default)(function (value) {
1935 return props.onChange(value);
1936 }, props.debounceTimeout);
1937 (0, _react.useEffect)(function () {
1938 if (props.value !== localValue) {
1939 setLocalValue(props.value);
1940 }
1941 }, [props.value]);
1942 return /*#__PURE__*/_react.default.createElement("div", {
1943 className: "eps-search-input__container ".concat(props.className)
1944 }, /*#__PURE__*/_react.default.createElement("input", {
1945 className: "eps-search-input eps-search-input--".concat(props.size),
1946 placeholder: props.placeholder,
1947 value: localValue,
1948 onChange: function onChange(e) {
1949 setLocalValue(e.target.value);
1950 debouncedOnChange(e.target.value);
1951 }
1952 }), /*#__PURE__*/_react.default.createElement(_appUi.Icon, {
1953 className: "eicon-search-bold eps-search-input__icon eps-search-input__icon--".concat(props.size)
1954 }), props.value && /*#__PURE__*/_react.default.createElement(_appUi.Button, {
1955 text: __('Clear', 'elementor'),
1956 hideText: true,
1957 className: "eicon-close-circle eps-search-input__clear-icon eps-search-input__clear-icon--".concat(props.size),
1958 onClick: function onClick() {
1959 return props.onChange('');
1960 }
1961 }));
1962 }
1963 SearchInput.propTypes = {
1964 placeholder: PropTypes.string,
1965 value: PropTypes.string.isRequired,
1966 onChange: PropTypes.func.isRequired,
1967 className: PropTypes.string,
1968 size: PropTypes.oneOf(['md', 'sm']),
1969 debounceTimeout: PropTypes.number
1970 };
1971 SearchInput.defaultProps = {
1972 className: '',
1973 size: 'md',
1974 debounceTimeout: 300
1975 };
1976
1977 /***/ }),
1978
1979 /***/ "../app/modules/kit-library/assets/js/components/sort-select.js":
1980 /*!**********************************************************************!*\
1981 !*** ../app/modules/kit-library/assets/js/components/sort-select.js ***!
1982 \**********************************************************************/
1983 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1984
1985 "use strict";
1986 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1987 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1988
1989
1990 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1991 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1992 Object.defineProperty(exports, "__esModule", ({
1993 value: true
1994 }));
1995 exports["default"] = SortSelect;
1996 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
1997 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1998 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
1999 __webpack_require__(/*! ./sort-select.scss */ "../app/modules/kit-library/assets/js/components/sort-select.scss");
2000 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
2001 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
2002 function SortSelect(props) {
2003 var getSelectedOptionDetails = function getSelectedOptionDetails(value) {
2004 return props.options.find(function (option) {
2005 return option.value === value;
2006 });
2007 };
2008 var _useState = (0, _react.useState)(getSelectedOptionDetails(props.value.by)),
2009 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2010 selectedSortBy = _useState2[0],
2011 setSelectedSortBy = _useState2[1];
2012 (0, _react.useEffect)(function () {
2013 var _selectedSortBy$defau;
2014 props.onChange({
2015 by: selectedSortBy.value,
2016 direction: (_selectedSortBy$defau = selectedSortBy.defaultOrder) !== null && _selectedSortBy$defau !== void 0 ? _selectedSortBy$defau : props.value.direction
2017 });
2018 }, [selectedSortBy]);
2019 return /*#__PURE__*/_react.default.createElement("div", {
2020 className: "eps-sort-select"
2021 }, /*#__PURE__*/_react.default.createElement("div", {
2022 className: "eps-sort-select__select-wrapper"
2023 }, /*#__PURE__*/_react.default.createElement(_appUi.Select, {
2024 options: props.options,
2025 value: props.value.by,
2026 onChange: function onChange(e) {
2027 var _props$onChangeSortVa;
2028 var value = e.target.value;
2029 setSelectedSortBy(getSelectedOptionDetails(value));
2030 (_props$onChangeSortVa = props.onChangeSortValue) === null || _props$onChangeSortVa === void 0 || _props$onChangeSortVa.call(props, value);
2031 },
2032 className: "eps-sort-select__select",
2033 onClick: function onClick() {
2034 var _props$onSortSelectOp;
2035 props.onChange({
2036 by: props.value.by,
2037 direction: props.value.direction
2038 });
2039 (_props$onSortSelectOp = props.onSortSelectOpen) === null || _props$onSortSelectOp === void 0 || _props$onSortSelectOp.call(props);
2040 }
2041 })), !selectedSortBy.orderDisabled && /*#__PURE__*/_react.default.createElement(_appUi.Button, {
2042 text: 'asc' === props.value.direction ? __('Sort Descending', 'elementor') : __('Sort Ascending', 'elementor'),
2043 hideText: true,
2044 icon: 'asc' === props.value.direction ? 'eicon-arrow-up' : 'eicon-arrow-down',
2045 className: "eps-sort-select__button",
2046 onClick: function onClick() {
2047 var direction = props.value.direction && 'asc' === props.value.direction ? 'desc' : 'asc';
2048 if (props.onChangeSortDirection) {
2049 props.onChangeSortDirection(direction);
2050 }
2051 props.onChange({
2052 by: props.value.by,
2053 direction: direction
2054 });
2055 }
2056 }));
2057 }
2058 SortSelect.propTypes = {
2059 options: PropTypes.arrayOf(PropTypes.shape({
2060 label: PropTypes.string.isRequired,
2061 value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired
2062 })).isRequired,
2063 value: PropTypes.shape({
2064 direction: PropTypes.oneOf(['asc', 'desc']).isRequired,
2065 by: PropTypes.string.isRequired
2066 }).isRequired,
2067 onChange: PropTypes.func.isRequired,
2068 onChangeSortValue: PropTypes.func,
2069 onSortSelectOpen: PropTypes.func,
2070 onChangeSortDirection: PropTypes.func
2071 };
2072
2073 /***/ }),
2074
2075 /***/ "../app/modules/kit-library/assets/js/components/taxonomies-filter-list.js":
2076 /*!*********************************************************************************!*\
2077 !*** ../app/modules/kit-library/assets/js/components/taxonomies-filter-list.js ***!
2078 \*********************************************************************************/
2079 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2080
2081 "use strict";
2082 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2083 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2084
2085
2086 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2087 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2088 Object.defineProperty(exports, "__esModule", ({
2089 value: true
2090 }));
2091 exports["default"] = void 0;
2092 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2093 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
2094 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2095 var _taxonomy = _interopRequireDefault(__webpack_require__(/*! ../models/taxonomy */ "../app/modules/kit-library/assets/js/models/taxonomy.js"));
2096 var _collapse = _interopRequireDefault(__webpack_require__(/*! ./collapse */ "../app/modules/kit-library/assets/js/components/collapse.js"));
2097 var _searchInput = _interopRequireDefault(__webpack_require__(/*! ./search-input */ "../app/modules/kit-library/assets/js/components/search-input.js"));
2098 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
2099 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
2100 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
2101 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
2102 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
2103 var MIN_TAGS_LENGTH_FOR_SEARCH_INPUT = 15;
2104 var TaxonomiesFilterList = function TaxonomiesFilterList(props) {
2105 var _useState = (0, _react.useState)(props.taxonomiesByType.isOpenByDefault),
2106 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2107 isOpen = _useState2[0],
2108 setIsOpen = _useState2[1];
2109 var _useState3 = (0, _react.useState)(''),
2110 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2111 search = _useState4[0],
2112 setSearch = _useState4[1];
2113 var taxonomies = (0, _react.useMemo)(function () {
2114 if (!search) {
2115 return props.taxonomiesByType.data;
2116 }
2117 var lowerCaseSearch = search.toLowerCase();
2118 return props.taxonomiesByType.data.filter(function (tag) {
2119 return tag.text.toLowerCase().includes(lowerCaseSearch);
2120 });
2121 }, [props.taxonomiesByType.data, search]);
2122 var eventTracking = function eventTracking(command, section, action, item) {
2123 var category = props.category && ('/favorites' === props.category ? 'favorites' : 'all kits');
2124 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
2125 page_source: 'home page',
2126 element_location: 'app_sidebar',
2127 category: category,
2128 section: section,
2129 item: item,
2130 action: action ? 'checked' : 'unchecked'
2131 });
2132 };
2133 return /*#__PURE__*/_react.default.createElement(_collapse.default, {
2134 className: "e-kit-library__tags-filter-list",
2135 title: props.taxonomiesByType.label,
2136 isOpen: isOpen,
2137 onChange: setIsOpen,
2138 onClick: function onClick(collapseState, title) {
2139 var _props$onCollapseChan;
2140 (_props$onCollapseChan = props.onCollapseChange) === null || _props$onCollapseChan === void 0 || _props$onCollapseChan.call(props, collapseState, title);
2141 }
2142 }, props.taxonomiesByType.data.length >= MIN_TAGS_LENGTH_FOR_SEARCH_INPUT && /*#__PURE__*/_react.default.createElement(_searchInput.default, {
2143 size: "sm",
2144 className: "e-kit-library__tags-filter-list-search"
2145 // Translators: %s is the taxonomy type.
2146 ,
2147 placeholder: (0, _i18n.sprintf)(__('Search %s...', 'elementor'), props.taxonomiesByType.label),
2148 value: search,
2149 onChange: function onChange(searchTerm) {
2150 setSearch(searchTerm);
2151 if (searchTerm) {
2152 var _props$onChange;
2153 (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, searchTerm);
2154 }
2155 }
2156 }), /*#__PURE__*/_react.default.createElement("div", {
2157 className: "e-kit-library__tags-filter-list-container"
2158 }, 0 === taxonomies.length && /*#__PURE__*/_react.default.createElement(_appUi.Text, null, __('No Results Found', 'elementor')), taxonomies.map(function (taxonomy) {
2159 var _props$selected$taxon;
2160 return (
2161 /*#__PURE__*/
2162 // eslint-disable-next-line jsx-a11y/label-has-associated-control
2163 _react.default.createElement("label", {
2164 key: taxonomy.text,
2165 className: "e-kit-library__tags-filter-list-item"
2166 }, /*#__PURE__*/_react.default.createElement(_appUi.Checkbox, {
2167 checked: !!((_props$selected$taxon = props.selected[taxonomy.type]) !== null && _props$selected$taxon !== void 0 && _props$selected$taxon.includes(taxonomy.id || taxonomy.text)),
2168 onChange: function onChange(e) {
2169 var checked = e.target.checked;
2170 eventTracking('kit-library/filter', taxonomy.type, checked, taxonomy.text);
2171 props.onSelect(taxonomy.type, function (prev) {
2172 return checked ? [].concat((0, _toConsumableArray2.default)(prev), [taxonomy.id || taxonomy.text]) : prev.filter(function (tagId) {
2173 return ![taxonomy.id, taxonomy.text].includes(tagId);
2174 });
2175 });
2176 }
2177 }), taxonomy.text)
2178 );
2179 })));
2180 };
2181 TaxonomiesFilterList.propTypes = {
2182 taxonomiesByType: PropTypes.shape({
2183 key: PropTypes.string,
2184 label: PropTypes.string,
2185 data: PropTypes.arrayOf(PropTypes.instanceOf(_taxonomy.default)),
2186 isOpenByDefault: PropTypes.bool
2187 }),
2188 selected: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),
2189 onSelect: PropTypes.func,
2190 onCollapseChange: PropTypes.func,
2191 category: PropTypes.string,
2192 onChange: PropTypes.func
2193 };
2194 var _default = exports["default"] = _react.default.memo(TaxonomiesFilterList);
2195
2196 /***/ }),
2197
2198 /***/ "../app/modules/kit-library/assets/js/components/taxonomies-filter.js":
2199 /*!****************************************************************************!*\
2200 !*** ../app/modules/kit-library/assets/js/components/taxonomies-filter.js ***!
2201 \****************************************************************************/
2202 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2203
2204 "use strict";
2205 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2206
2207
2208 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2209 Object.defineProperty(exports, "__esModule", ({
2210 value: true
2211 }));
2212 exports["default"] = TaxonomiesFilter;
2213 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
2214 var _taxonomiesFilterList = _interopRequireDefault(__webpack_require__(/*! ./taxonomies-filter-list */ "../app/modules/kit-library/assets/js/components/taxonomies-filter-list.js"));
2215 var _taxonomy = _interopRequireDefault(__webpack_require__(/*! ../models/taxonomy */ "../app/modules/kit-library/assets/js/models/taxonomy.js"));
2216 var _taxonomyTransformer = __webpack_require__(/*! ../models/taxonomy-transformer */ "../app/modules/kit-library/assets/js/models/taxonomy-transformer.js");
2217 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
2218 __webpack_require__(/*! ./tags-filter.scss */ "../app/modules/kit-library/assets/js/components/tags-filter.scss");
2219 var _React = _react.default,
2220 useMemo = _React.useMemo;
2221 function TaxonomiesFilter(props) {
2222 var taxonomiesByType = useMemo(function () {
2223 return (0, _taxonomyTransformer.getTaxonomyFilterItems)(props.taxonomies);
2224 }, [props.taxonomies]),
2225 eventTracking = function eventTracking(command, search, section) {
2226 var eventType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'click';
2227 return (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
2228 page_source: 'home page',
2229 element_location: 'app_sidebar',
2230 category: props.category && ('/favorites' === props.category ? 'favorites' : 'all kits'),
2231 section: section,
2232 search_term: search,
2233 event_type: eventType
2234 });
2235 };
2236 return /*#__PURE__*/_react.default.createElement("div", {
2237 className: "e-kit-library__tags-filter"
2238 }, taxonomiesByType.map(function (group) {
2239 return /*#__PURE__*/_react.default.createElement(_taxonomiesFilterList.default, {
2240 key: group.key,
2241 taxonomiesByType: group,
2242 selected: props.selected,
2243 onSelect: props.onSelect,
2244 onCollapseChange: function onCollapseChange(collapseState, title) {
2245 var command = collapseState ? 'kit-library/collapse' : 'kit-library/expand';
2246 eventTracking(command, null, title);
2247 },
2248 onChange: function onChange(search) {
2249 eventTracking('kit-library/filter', search, group.label, 'search');
2250 },
2251 category: props.category
2252 });
2253 }));
2254 }
2255 TaxonomiesFilter.propTypes = {
2256 selected: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),
2257 onSelect: PropTypes.func,
2258 taxonomies: PropTypes.arrayOf(PropTypes.instanceOf(_taxonomy.default)),
2259 category: PropTypes.string
2260 };
2261
2262 /***/ }),
2263
2264 /***/ "../app/modules/kit-library/assets/js/context/last-filter-context.js":
2265 /*!***************************************************************************!*\
2266 !*** ../app/modules/kit-library/assets/js/context/last-filter-context.js ***!
2267 \***************************************************************************/
2268 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2269
2270 "use strict";
2271 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2272
2273
2274 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2275 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2276 Object.defineProperty(exports, "__esModule", ({
2277 value: true
2278 }));
2279 exports.LastFilterProvider = LastFilterProvider;
2280 exports.useLastFilterContext = useLastFilterContext;
2281 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2282 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2283 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
2284 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
2285 var LastFilterContext = (0, _react.createContext)({});
2286
2287 /**
2288 * Consume the context
2289 *
2290 * @return {{}} context value
2291 */
2292 function useLastFilterContext() {
2293 return (0, _react.useContext)(LastFilterContext);
2294 }
2295
2296 /**
2297 * Settings Provider
2298 *
2299 * @param {*} props
2300 * @return {JSX.Element} element
2301 * @function Object() { [native code] }
2302 */
2303 function LastFilterProvider(props) {
2304 var _useState = (0, _react.useState)({}),
2305 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2306 lastFilter = _useState2[0],
2307 setLastFilter = _useState2[1];
2308 return /*#__PURE__*/_react.default.createElement(LastFilterContext.Provider, {
2309 value: {
2310 lastFilter: lastFilter,
2311 setLastFilter: setLastFilter
2312 }
2313 }, props.children);
2314 }
2315 LastFilterProvider.propTypes = {
2316 children: PropTypes.any
2317 };
2318
2319 /***/ }),
2320
2321 /***/ "../app/modules/kit-library/assets/js/context/settings-context.js":
2322 /*!************************************************************************!*\
2323 !*** ../app/modules/kit-library/assets/js/context/settings-context.js ***!
2324 \************************************************************************/
2325 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2326
2327 "use strict";
2328 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
2329
2330
2331 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2332 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2333 Object.defineProperty(exports, "__esModule", ({
2334 value: true
2335 }));
2336 exports.SettingsProvider = SettingsProvider;
2337 exports.useSettingsContext = useSettingsContext;
2338 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
2339 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2340 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2341 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
2342 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
2343 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; }
2344 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; }
2345 var SettingsContext = (0, _react.createContext)({});
2346
2347 /**
2348 * Consume the context
2349 *
2350 * @return {{emptyTrashDays: number}} context value
2351 */
2352 function useSettingsContext() {
2353 return (0, _react.useContext)(SettingsContext);
2354 }
2355
2356 /**
2357 * Settings Provider
2358 *
2359 * @param {*} props
2360 * @return {JSX.Element} element
2361 * @function Object() { [native code] }
2362 */
2363 function SettingsProvider(props) {
2364 var _useState = (0, _react.useState)({}),
2365 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2366 settings = _useState2[0],
2367 setSettings = _useState2[1];
2368 var updateSettings = (0, _react.useCallback)(function (newSettings) {
2369 setSettings(function (prev) {
2370 return _objectSpread(_objectSpread({}, prev), newSettings);
2371 });
2372 }, [setSettings]);
2373 (0, _react.useEffect)(function () {
2374 setSettings(props.value);
2375 }, [setSettings]);
2376 return /*#__PURE__*/_react.default.createElement(SettingsContext.Provider, {
2377 value: {
2378 settings: settings,
2379 setSettings: setSettings,
2380 updateSettings: updateSettings
2381 }
2382 }, props.children);
2383 }
2384 SettingsProvider.propTypes = {
2385 children: PropTypes.any,
2386 value: PropTypes.object.isRequired
2387 };
2388
2389 /***/ }),
2390
2391 /***/ "../app/modules/kit-library/assets/js/hooks/use-add-kit-promotion-utm.js":
2392 /*!*******************************************************************************!*\
2393 !*** ../app/modules/kit-library/assets/js/hooks/use-add-kit-promotion-utm.js ***!
2394 \*******************************************************************************/
2395 /***/ ((__unused_webpack_module, exports) => {
2396
2397 "use strict";
2398
2399
2400 Object.defineProperty(exports, "__esModule", ({
2401 value: true
2402 }));
2403 exports["default"] = useAddKitPromotionUTM;
2404 function useAddKitPromotionUTM(promotionUrl, kitId, kitTitle) {
2405 if (!promotionUrl) {
2406 return '';
2407 }
2408 var url;
2409 try {
2410 url = new URL(promotionUrl);
2411 } catch (e) {
2412 return '';
2413 }
2414 if (kitTitle && 'string' === typeof kitTitle) {
2415 var cleanTitle = kitTitle.trim().replace(/\s+/g, '-').replace(/[^\w-]/g, '').toLowerCase();
2416 url.searchParams.set('utm_term', cleanTitle);
2417 }
2418 if (kitId && 'string' === typeof kitId) {
2419 url.searchParams.set('utm_content', kitId);
2420 }
2421 return url.toString();
2422 }
2423
2424 /***/ }),
2425
2426 /***/ "../app/modules/kit-library/assets/js/hooks/use-cloud-kits-eligibility.js":
2427 /*!********************************************************************************!*\
2428 !*** ../app/modules/kit-library/assets/js/hooks/use-cloud-kits-eligibility.js ***!
2429 \********************************************************************************/
2430 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2431
2432 "use strict";
2433
2434
2435 Object.defineProperty(exports, "__esModule", ({
2436 value: true
2437 }));
2438 exports.KEY = void 0;
2439 exports["default"] = useCloudKitsEligibility;
2440 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
2441 var _cloudKits = __webpack_require__(/*! elementor-app/utils/cloud-kits.js */ "../app/assets/js/utils/cloud-kits.js");
2442 var KEY = exports.KEY = 'cloud-kits-availability';
2443
2444 /**
2445 * Hook to check if cloud kits should be available
2446 *
2447 * @return {Object} Query result with availability status
2448 */
2449 function useCloudKitsEligibility() {
2450 return (0, _reactQuery.useQuery)([KEY], _cloudKits.fetchCloudKitsEligibility);
2451 }
2452
2453 /***/ }),
2454
2455 /***/ "../app/modules/kit-library/assets/js/hooks/use-cloud-kits.js":
2456 /*!********************************************************************!*\
2457 !*** ../app/modules/kit-library/assets/js/hooks/use-cloud-kits.js ***!
2458 \********************************************************************/
2459 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2460
2461 "use strict";
2462
2463
2464 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2465 Object.defineProperty(exports, "__esModule", ({
2466 value: true
2467 }));
2468 exports.KEY = void 0;
2469 exports["default"] = useCloudKits;
2470 exports.defaultQueryParams = void 0;
2471 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
2472 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2473 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2474 var _kit = _interopRequireDefault(__webpack_require__(/*! ../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
2475 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
2476 var _react = __webpack_require__(/*! react */ "react");
2477 var _utils = __webpack_require__(/*! ../utils */ "../app/modules/kit-library/assets/js/utils.js");
2478 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; }
2479 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; }
2480 var KEY = exports.KEY = 'cloud-kits';
2481
2482 /**
2483 * The default query params
2484 *
2485 * @type {Object}
2486 */
2487 var defaultQueryParams = exports.defaultQueryParams = {
2488 search: '',
2489 referrer: null
2490 };
2491 var kitsPipeFunctions = {
2492 /**
2493 * Filter by search term.
2494 *
2495 * @param {Array<*>} data
2496 * @param {*} queryParams
2497 * @return {Array} filtered data
2498 */
2499 searchFilter: function searchFilter(data, queryParams) {
2500 if (!queryParams.search) {
2501 return data;
2502 }
2503 return data.filter(function (item) {
2504 var keywords = [item.title];
2505 var searchTerm = queryParams.search.toLowerCase();
2506 return keywords.some(function (keyword) {
2507 return keyword.toLowerCase().includes(searchTerm);
2508 });
2509 });
2510 }
2511 };
2512
2513 /**
2514 * Fetch kits
2515 *
2516 * @return {*} kits
2517 */
2518 function fetchKits() {
2519 return $e.data.get('cloud-kits/index', {}, {
2520 refresh: true
2521 }).then(function (response) {
2522 return response.data;
2523 }).then(function (_ref) {
2524 var data = _ref.data;
2525 return data.map(function (item) {
2526 return _kit.default.createFromResponse(item);
2527 });
2528 });
2529 }
2530
2531 /**
2532 * Main function.
2533 *
2534 * @param {*} initialQueryParams
2535 * @return {Object} query
2536 */
2537 function useCloudKits() {
2538 var initialQueryParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2539 var _useState = (0, _react.useState)(false),
2540 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
2541 force = _useState2[0],
2542 setForce = _useState2[1];
2543 var _useState3 = (0, _react.useState)(function () {
2544 return _objectSpread(_objectSpread({
2545 ready: false
2546 }, defaultQueryParams), initialQueryParams);
2547 }),
2548 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
2549 queryParams = _useState4[0],
2550 setQueryParams = _useState4[1];
2551 var forceRefetch = (0, _react.useCallback)(function () {
2552 return setForce(true);
2553 }, [setForce]);
2554 var clearQueryParams = (0, _react.useCallback)(function () {
2555 return setQueryParams(_objectSpread(_objectSpread({
2556 ready: true
2557 }, defaultQueryParams), initialQueryParams));
2558 }, [setQueryParams]);
2559 var query = (0, _reactQuery.useQuery)([KEY], function () {
2560 return fetchKits(force);
2561 });
2562 var data = (0, _react.useMemo)(function () {
2563 return !query.data ? [] : _utils.pipe.apply(void 0, (0, _toConsumableArray2.default)(Object.values(kitsPipeFunctions)))((0, _toConsumableArray2.default)(query.data), queryParams);
2564 }, [query.data, queryParams]);
2565 var isFilterActive = (0, _react.useMemo)(function () {
2566 return !!queryParams.search;
2567 }, [queryParams]);
2568 (0, _react.useEffect)(function () {
2569 if (!force) {
2570 return;
2571 }
2572 query.refetch().then(function () {
2573 return setForce(false);
2574 });
2575 }, [force]);
2576 return _objectSpread(_objectSpread({}, query), {}, {
2577 data: data,
2578 queryParams: queryParams,
2579 setQueryParams: setQueryParams,
2580 clearQueryParams: clearQueryParams,
2581 forceRefetch: forceRefetch,
2582 isFilterActive: isFilterActive
2583 });
2584 }
2585
2586 /***/ }),
2587
2588 /***/ "../app/modules/kit-library/assets/js/hooks/use-content-types.js":
2589 /*!***********************************************************************!*\
2590 !*** ../app/modules/kit-library/assets/js/hooks/use-content-types.js ***!
2591 \***********************************************************************/
2592 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2593
2594 "use strict";
2595 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2596
2597
2598 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2599 Object.defineProperty(exports, "__esModule", ({
2600 value: true
2601 }));
2602 exports.KEY = void 0;
2603 exports["default"] = useContentTypes;
2604 var _contentType = _interopRequireDefault(__webpack_require__(/*! ../models/content-type */ "../app/modules/kit-library/assets/js/models/content-type.js"));
2605 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
2606 var _settingsContext = __webpack_require__(/*! ../context/settings-context */ "../app/modules/kit-library/assets/js/context/settings-context.js");
2607 var _tiers = __webpack_require__(/*! elementor-utils/tiers */ "../assets/dev/js/utils/tiers.js");
2608 var KEY = exports.KEY = 'content-types';
2609
2610 /**
2611 * The data should come from the server, this is a temp solution that helps to demonstrate that data comes from the server
2612 * but for now this is a local data.
2613 *
2614 * @return {import('react-query').UseQueryResult<Promise.constructor, unknown>} result
2615 */
2616 function useContentTypes() {
2617 var _useSettingsContext = (0, _settingsContext.useSettingsContext)(),
2618 settings = _useSettingsContext.settings;
2619 return (0, _reactQuery.useQuery)([KEY, settings], function () {
2620 return fetchContentTypes(settings);
2621 });
2622 }
2623
2624 /**
2625 * @param {Object} settings - Current settings
2626 *
2627 * @return {Promise.constructor} content types
2628 */
2629 function fetchContentTypes(settings) {
2630 var contentTypes = [{
2631 id: 'page',
2632 label: __('Pages', 'elementor'),
2633 doc_types: ['wp-page'],
2634 order: 0
2635 }, {
2636 id: 'site-parts',
2637 label: __('Site Parts', 'elementor'),
2638 doc_types: ['archive', 'error-404', 'footer', 'header', 'search-results', 'single-page', 'single-post',
2639 // WooCommerce types
2640 'product', 'product-archive',
2641 // Legacy Types
2642 '404', 'single'],
2643 order: 1
2644 }];
2645
2646 // BC: When user has old Pro version which doesn't override the `free` access_tier.
2647 var userAccessTier = settings.access_tier;
2648 var hasActiveProLicense = settings.is_pro && settings.is_library_connected;
2649 var shouldFallbackToLegacy = hasActiveProLicense && userAccessTier === _tiers.TIERS.free;
2650
2651 // Fallback to the last access_tier before the new tiers were introduced.
2652 // TODO: Remove when Pro with the new tiers is stable.
2653 if (shouldFallbackToLegacy) {
2654 userAccessTier = _tiers.TIERS['essential-oct2023'];
2655 }
2656 var tierThatSupportsPopups = _tiers.TIERS['essential-oct2023'];
2657 if ((0, _tiers.isTierAtLeast)(userAccessTier, tierThatSupportsPopups)) {
2658 contentTypes.push({
2659 id: 'popup',
2660 label: __('Popups', 'elementor'),
2661 doc_types: ['popup'],
2662 order: 2
2663 });
2664 }
2665 return Promise.resolve(contentTypes).then(function (data) {
2666 return data.map(function (contentType) {
2667 return _contentType.default.createFromResponse(contentType);
2668 });
2669 });
2670 }
2671
2672 /***/ }),
2673
2674 /***/ "../app/modules/kit-library/assets/js/hooks/use-debounced-callback.js":
2675 /*!****************************************************************************!*\
2676 !*** ../app/modules/kit-library/assets/js/hooks/use-debounced-callback.js ***!
2677 \****************************************************************************/
2678 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2679
2680 "use strict";
2681
2682
2683 Object.defineProperty(exports, "__esModule", ({
2684 value: true
2685 }));
2686 exports["default"] = useDebouncedCallback;
2687 var _react = __webpack_require__(/*! react */ "react");
2688 function useDebouncedCallback(callback, wait) {
2689 var timeout = (0, _react.useRef)();
2690 return (0, _react.useCallback)(function () {
2691 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
2692 args[_key] = arguments[_key];
2693 }
2694 var later = function later() {
2695 clearTimeout(timeout.current);
2696 callback.apply(void 0, args);
2697 };
2698 clearTimeout(timeout.current);
2699 timeout.current = setTimeout(later, wait);
2700 }, [callback, wait]);
2701 }
2702
2703 /***/ }),
2704
2705 /***/ "../app/modules/kit-library/assets/js/hooks/use-download-link-mutation.js":
2706 /*!********************************************************************************!*\
2707 !*** ../app/modules/kit-library/assets/js/hooks/use-download-link-mutation.js ***!
2708 \********************************************************************************/
2709 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2710
2711 "use strict";
2712
2713
2714 Object.defineProperty(exports, "__esModule", ({
2715 value: true
2716 }));
2717 exports["default"] = useDownloadLinkMutation;
2718 var _react = __webpack_require__(/*! react */ "react");
2719 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
2720 function useDownloadLinkMutation(model, _ref) {
2721 var onError = _ref.onError,
2722 onSuccess = _ref.onSuccess;
2723 var downloadLink = (0, _react.useCallback)(function () {
2724 return $e.data.get('kits/download-link', {
2725 id: model.id
2726 }, {
2727 refresh: true
2728 });
2729 }, [model]);
2730 return (0, _reactQuery.useMutation)(downloadLink, {
2731 onSuccess: onSuccess,
2732 onError: onError
2733 });
2734 }
2735
2736 /***/ }),
2737
2738 /***/ "../app/modules/kit-library/assets/js/hooks/use-kit-call-to-action.js":
2739 /*!****************************************************************************!*\
2740 !*** ../app/modules/kit-library/assets/js/hooks/use-kit-call-to-action.js ***!
2741 \****************************************************************************/
2742 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2743
2744 "use strict";
2745
2746
2747 Object.defineProperty(exports, "__esModule", ({
2748 value: true
2749 }));
2750 exports.TYPE_PROMOTION = exports.TYPE_CONNECT = exports.TYPE_APPLY = void 0;
2751 exports["default"] = useKitCallToAction;
2752 var _react = __webpack_require__(/*! react */ "react");
2753 var _settingsContext = __webpack_require__(/*! ../context/settings-context */ "../app/modules/kit-library/assets/js/context/settings-context.js");
2754 var _tiers = __webpack_require__(/*! elementor-utils/tiers */ "../assets/dev/js/utils/tiers.js");
2755 var _taxonomyTransformer = __webpack_require__(/*! ../models/taxonomy-transformer */ "../app/modules/kit-library/assets/js/models/taxonomy-transformer.js");
2756 var TYPE_CONNECT = exports.TYPE_CONNECT = 'connect';
2757 var TYPE_PROMOTION = exports.TYPE_PROMOTION = 'promotion';
2758 var TYPE_APPLY = exports.TYPE_APPLY = 'apply';
2759 function useKitCallToAction(kitAccessTier) {
2760 var _useSettingsContext = (0, _settingsContext.useSettingsContext)(),
2761 settings = _useSettingsContext.settings;
2762
2763 // BC: When user has old Pro version which doesn't override the `free` access_tier.
2764 var userAccessTier = settings.access_tier;
2765 var tierKey = _taxonomyTransformer.TierToKeyMap[kitAccessTier];
2766 var hasActiveProLicense = settings.is_pro && settings.is_library_connected;
2767 var shouldFallbackToLegacy = hasActiveProLicense && userAccessTier === _tiers.TIERS.free;
2768
2769 // Fallback to the last access_tier before the new tiers were introduced.
2770 // TODO: Remove when Pro with the new tiers is stable.
2771 if (shouldFallbackToLegacy) {
2772 userAccessTier = _tiers.TIERS['essential-oct2023'];
2773 }
2774
2775 // SubscriptionPlan can be null when the context is not filled (can be happened when using back button in the browser.)
2776 var subscriptionPlan = (0, _react.useMemo)(function () {
2777 var _settings$subscriptio;
2778 return (_settings$subscriptio = settings.subscription_plans) === null || _settings$subscriptio === void 0 ? void 0 : _settings$subscriptio[kitAccessTier];
2779 }, [settings, kitAccessTier]);
2780 subscriptionPlan.label = _taxonomyTransformer.PromotionChipText[tierKey];
2781 subscriptionPlan.isPromoted = _tiers.TIERS.free !== kitAccessTier;
2782 var type = (0, _react.useMemo)(function () {
2783 // The user can apply this kit (the user access level is equal or greater then the kit access level).
2784 var isAuthorizeToApplyKit = (0, _tiers.isTierAtLeast)(userAccessTier, kitAccessTier);
2785
2786 // The user in not connected and has pro plugin or the kit is a free kit.
2787 if (!settings.is_library_connected && (settings.is_pro || isAuthorizeToApplyKit)) {
2788 return TYPE_CONNECT;
2789 }
2790
2791 // The user is connected or has only core plugin and cannot access this kit.
2792 if (!isAuthorizeToApplyKit) {
2793 return TYPE_PROMOTION;
2794 }
2795
2796 // The user is connected and can access the kit.
2797 return TYPE_APPLY;
2798 }, [settings, kitAccessTier]);
2799 return {
2800 type: type,
2801 subscriptionPlan: subscriptionPlan
2802 };
2803 }
2804
2805 /***/ }),
2806
2807 /***/ "../app/modules/kit-library/assets/js/hooks/use-kit-cloud-mutation.js":
2808 /*!****************************************************************************!*\
2809 !*** ../app/modules/kit-library/assets/js/hooks/use-kit-cloud-mutation.js ***!
2810 \****************************************************************************/
2811 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2812
2813 "use strict";
2814
2815
2816 Object.defineProperty(exports, "__esModule", ({
2817 value: true
2818 }));
2819 exports.useKitCloudMutations = useKitCloudMutations;
2820 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
2821 var _useCloudKits = __webpack_require__(/*! ../hooks/use-cloud-kits */ "../app/modules/kit-library/assets/js/hooks/use-cloud-kits.js");
2822 function useKitCloudMutations() {
2823 var queryClient = (0, _reactQuery.useQueryClient)();
2824 var remove = (0, _reactQuery.useMutation)(function (id) {
2825 return $e.data.delete('cloud-kits/index', {
2826 id: id
2827 });
2828 }, {
2829 onSuccess: function onSuccess() {
2830 return queryClient.invalidateQueries(_useCloudKits.KEY);
2831 }
2832 });
2833 return {
2834 remove: remove,
2835 isLoading: remove.isLoading
2836 };
2837 }
2838
2839 /***/ }),
2840
2841 /***/ "../app/modules/kit-library/assets/js/hooks/use-kit-document-by-type.js":
2842 /*!******************************************************************************!*\
2843 !*** ../app/modules/kit-library/assets/js/hooks/use-kit-document-by-type.js ***!
2844 \******************************************************************************/
2845 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2846
2847 "use strict";
2848
2849
2850 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2851 Object.defineProperty(exports, "__esModule", ({
2852 value: true
2853 }));
2854 exports["default"] = useKitDocumentByType;
2855 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2856 var _useContentTypes = _interopRequireDefault(__webpack_require__(/*! ./use-content-types */ "../app/modules/kit-library/assets/js/hooks/use-content-types.js"));
2857 var _react = __webpack_require__(/*! react */ "react");
2858 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; }
2859 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; }
2860 function useKitDocumentByType(kit) {
2861 var contentTypesQuery = (0, _useContentTypes.default)();
2862 var data = (0, _react.useMemo)(function () {
2863 if (!kit || !contentTypesQuery.data) {
2864 return [];
2865 }
2866 return kit.getDocumentsByTypes(contentTypesQuery.data).sort(function (a, b) {
2867 return a.order - b.order;
2868 });
2869 }, [kit, contentTypesQuery.data]);
2870 return _objectSpread(_objectSpread({}, contentTypesQuery), {}, {
2871 data: data
2872 });
2873 }
2874
2875 /***/ }),
2876
2877 /***/ "../app/modules/kit-library/assets/js/hooks/use-kit-favorites-mutations.js":
2878 /*!*********************************************************************************!*\
2879 !*** ../app/modules/kit-library/assets/js/hooks/use-kit-favorites-mutations.js ***!
2880 \*********************************************************************************/
2881 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2882
2883 "use strict";
2884
2885
2886 Object.defineProperty(exports, "__esModule", ({
2887 value: true
2888 }));
2889 exports.useKitFavoritesMutations = useKitFavoritesMutations;
2890 var _react = __webpack_require__(/*! react */ "react");
2891 var _useKits = __webpack_require__(/*! ../hooks/use-kits */ "../app/modules/kit-library/assets/js/hooks/use-kits.js");
2892 var _useKit = __webpack_require__(/*! ../hooks/use-kit */ "../app/modules/kit-library/assets/js/hooks/use-kit.js");
2893 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
2894 function useKitFavoritesMutations() {
2895 var queryClient = (0, _reactQuery.useQueryClient)();
2896 var onSuccess = (0, _react.useCallback)(function (_ref) {
2897 var data = _ref.data;
2898 var id = data.data.id;
2899 var isFavorite = data.data.is_favorite;
2900
2901 // Update the kit list if the list exists.
2902 if (queryClient.getQueryData([_useKits.KEY])) {
2903 queryClient.setQueryData([_useKits.KEY], function (kits) {
2904 if (!kits) {
2905 return kits;
2906 }
2907 return kits.map(function (item) {
2908 if (item.id === id) {
2909 item.isFavorite = isFavorite;
2910
2911 // Should return a new kit to trigger rerender.
2912 return item.clone();
2913 }
2914 return item;
2915 });
2916 });
2917 }
2918
2919 // Update specific kit if the kit exists
2920 if (queryClient.getQueryData([_useKit.KEY, id])) {
2921 queryClient.setQueryData([_useKit.KEY, id], function (currentKit) {
2922 currentKit.isFavorite = isFavorite;
2923
2924 // Should return a new kit to trigger rerender.
2925 return currentKit.clone();
2926 });
2927 }
2928 }, [queryClient]);
2929 var addToFavorites = (0, _reactQuery.useMutation)(function (id) {
2930 return $e.data.create('kits/favorites', {}, {
2931 id: id
2932 });
2933 }, {
2934 onSuccess: onSuccess
2935 });
2936 var removeFromFavorites = (0, _reactQuery.useMutation)(function (id) {
2937 return $e.data.delete('kits/favorites', {
2938 id: id
2939 });
2940 }, {
2941 onSuccess: onSuccess
2942 });
2943 return {
2944 addToFavorites: addToFavorites,
2945 removeFromFavorites: removeFromFavorites,
2946 isLoading: addToFavorites.isLoading || removeFromFavorites.isLoading
2947 };
2948 }
2949
2950 /***/ }),
2951
2952 /***/ "../app/modules/kit-library/assets/js/hooks/use-kit.js":
2953 /*!*************************************************************!*\
2954 !*** ../app/modules/kit-library/assets/js/hooks/use-kit.js ***!
2955 \*************************************************************/
2956 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2957
2958 "use strict";
2959
2960
2961 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2962 Object.defineProperty(exports, "__esModule", ({
2963 value: true
2964 }));
2965 exports.KEY = void 0;
2966 exports["default"] = useKit;
2967 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2968 var _kit = _interopRequireDefault(__webpack_require__(/*! ../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
2969 var _useKits = __webpack_require__(/*! ./use-kits */ "../app/modules/kit-library/assets/js/hooks/use-kits.js");
2970 var _react = __webpack_require__(/*! react */ "react");
2971 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
2972 var KEY = exports.KEY = 'kit';
2973 function useKit(id) {
2974 // A function that returns existing data from the kit list for a placeholder data before the kit request will resolved.
2975 var placeholderDataCallback = usePlaceholderDataCallback(id);
2976 return (0, _reactQuery.useQuery)([KEY, id], fetchKitItem, {
2977 placeholderData: placeholderDataCallback
2978 });
2979 }
2980
2981 /**
2982 * Return placeholder function for kit query.
2983 *
2984 * @param {*} id
2985 * @return {function(): (undefined|*)} placeholder
2986 */
2987 function usePlaceholderDataCallback(id) {
2988 var queryClient = (0, _reactQuery.useQueryClient)();
2989 return (0, _react.useCallback)(function () {
2990 var _queryClient$getQuery;
2991 var placeholder = (_queryClient$getQuery = queryClient.getQueryData(_useKits.KEY)) === null || _queryClient$getQuery === void 0 ? void 0 : _queryClient$getQuery.find(function (kit) {
2992 return kit.id === id;
2993 });
2994 if (!placeholder) {
2995 return;
2996 }
2997 return placeholder;
2998 }, [queryClient, id]);
2999 }
3000
3001 /**
3002 * Fetch kit
3003 *
3004 * @param {Object} root0
3005 * @param {Object} root0.queryKey
3006 * @param {*} root0.queryKey.0
3007 * @param {string} root0.queryKey.1
3008 * @return {Promise<Kit>} kit
3009 */
3010 // eslint-disable-next-line no-unused-vars
3011 function fetchKitItem(_ref) {
3012 var _ref$queryKey = (0, _slicedToArray2.default)(_ref.queryKey, 2),
3013 _ = _ref$queryKey[0],
3014 id = _ref$queryKey[1];
3015 return $e.data.get('kits/index', {
3016 id: id
3017 }, {
3018 refresh: true
3019 }).then(function (response) {
3020 return response.data;
3021 }).then(function (_ref2) {
3022 var data = _ref2.data;
3023 return _kit.default.createFromResponse(data);
3024 });
3025 }
3026
3027 /***/ }),
3028
3029 /***/ "../app/modules/kit-library/assets/js/hooks/use-kits.js":
3030 /*!**************************************************************!*\
3031 !*** ../app/modules/kit-library/assets/js/hooks/use-kits.js ***!
3032 \**************************************************************/
3033 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3034
3035 "use strict";
3036
3037
3038 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3039 Object.defineProperty(exports, "__esModule", ({
3040 value: true
3041 }));
3042 exports.KEY = void 0;
3043 exports["default"] = useKits;
3044 exports.defaultQueryParams = void 0;
3045 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3046 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
3047 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3048 var _kit = _interopRequireDefault(__webpack_require__(/*! ../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
3049 var _useSelectedTaxonomies = _interopRequireDefault(__webpack_require__(/*! ./use-selected-taxonomies */ "../app/modules/kit-library/assets/js/hooks/use-selected-taxonomies.js"));
3050 var _taxonomy = __webpack_require__(/*! ../models/taxonomy */ "../app/modules/kit-library/assets/js/models/taxonomy.js");
3051 var _taxonomyTransformer = __webpack_require__(/*! ../models/taxonomy-transformer */ "../app/modules/kit-library/assets/js/models/taxonomy-transformer.js");
3052 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
3053 var _react = __webpack_require__(/*! react */ "react");
3054 var _utils = __webpack_require__(/*! ../utils */ "../app/modules/kit-library/assets/js/utils.js");
3055 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; }
3056 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; }
3057 var KEY = exports.KEY = 'kits';
3058
3059 /**
3060 * The default query params
3061 *
3062 * @type {Object}
3063 */
3064 var defaultQueryParams = exports.defaultQueryParams = {
3065 favorite: false,
3066 search: '',
3067 taxonomies: _taxonomy.TaxonomyTypes.reduce(function (current, _ref) {
3068 var key = _ref.key;
3069 return _objectSpread(_objectSpread({}, current), {}, (0, _defineProperty2.default)({}, key, []));
3070 }, {}),
3071 order: {
3072 direction: 'asc',
3073 by: 'featuredIndex'
3074 },
3075 referrer: null
3076 };
3077 var kitsPipeFunctions = {
3078 /**
3079 * Filter by favorite
3080 *
3081 * @param {Array<*>} data
3082 * @param {*} queryParams
3083 * @return {Array} filtered data
3084 */
3085 favoriteFilter: function favoriteFilter(data, queryParams) {
3086 if (!queryParams.favorite) {
3087 return data;
3088 }
3089 return data.filter(function (item) {
3090 return item.isFavorite;
3091 });
3092 },
3093 /**
3094 * Filter by search term.
3095 *
3096 * @param {Array<*>} data
3097 * @param {*} queryParams
3098 * @return {Array} filtered data
3099 */
3100 searchFilter: function searchFilter(data, queryParams) {
3101 if (!queryParams.search) {
3102 return data;
3103 }
3104 return data.filter(function (item) {
3105 var keywords = [].concat((0, _toConsumableArray2.default)(item.keywords), (0, _toConsumableArray2.default)(item.taxonomies), [item.title]);
3106 var searchTerm = queryParams.search.toLowerCase();
3107 return keywords.some(function (keyword) {
3108 return keyword.toLowerCase().includes(searchTerm);
3109 });
3110 });
3111 },
3112 /**
3113 * Filter by taxonomies.
3114 * In each taxonomy type it use the OR operator and between types it uses the AND operator.
3115 *
3116 * @param {Array<*>} data
3117 * @param {*} queryParams
3118 * @return {Array} filtered data
3119 */
3120 taxonomiesFilter: function taxonomiesFilter(data, queryParams) {
3121 var taxonomyTypes = Object.keys(queryParams.taxonomies).filter(function (taxonomyType) {
3122 return queryParams.taxonomies[taxonomyType].length;
3123 });
3124 return !taxonomyTypes.length ? data : data.filter(function (kit) {
3125 return taxonomyTypes.some(function (taxonomyType) {
3126 return (0, _taxonomyTransformer.isKitInTaxonomy)(kit, taxonomyType, queryParams.taxonomies[taxonomyType]);
3127 });
3128 });
3129 },
3130 /**
3131 * Sort all the data by the "order" query param
3132 *
3133 * @param {Array<*>} data
3134 * @param {*} queryParams
3135 * @return {Array} sorted data
3136 */
3137 sort: function sort(data, queryParams) {
3138 var order = queryParams.order;
3139 return data.sort(function (item1, item2) {
3140 if ('asc' === order.direction) {
3141 return item1[order.by] - item2[order.by];
3142 }
3143 return item2[order.by] - item1[order.by];
3144 });
3145 }
3146 };
3147
3148 /**
3149 * Fetch kits
3150 *
3151 * @param {boolean} force
3152 * @return {*} kits
3153 */
3154 function fetchKits(force) {
3155 return $e.data.get('kits/index', {
3156 force: force ? 1 : undefined
3157 }, {
3158 refresh: true
3159 }).then(function (response) {
3160 return response.data;
3161 }).then(function (_ref2) {
3162 var data = _ref2.data;
3163 return data.map(function (item) {
3164 return _kit.default.createFromResponse(item);
3165 });
3166 });
3167 }
3168
3169 /**
3170 * Main function.
3171 *
3172 * @param {*} initialQueryParams
3173 * @return {Object} query
3174 */
3175 function useKits() {
3176 var initialQueryParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3177 var _useState = (0, _react.useState)(false),
3178 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3179 force = _useState2[0],
3180 setForce = _useState2[1];
3181 var _useState3 = (0, _react.useState)(function () {
3182 return _objectSpread(_objectSpread({
3183 ready: false
3184 }, defaultQueryParams), initialQueryParams);
3185 }),
3186 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
3187 queryParams = _useState4[0],
3188 setQueryParams = _useState4[1];
3189 var forceRefetch = (0, _react.useCallback)(function () {
3190 return setForce(true);
3191 }, [setForce]);
3192 var clearQueryParams = (0, _react.useCallback)(function () {
3193 return setQueryParams(_objectSpread(_objectSpread({
3194 ready: true
3195 }, defaultQueryParams), initialQueryParams));
3196 }, [setQueryParams]);
3197 var query = (0, _reactQuery.useQuery)([KEY], function () {
3198 return fetchKits(force);
3199 });
3200 var data = (0, _react.useMemo)(function () {
3201 return !query.data ? [] : _utils.pipe.apply(void 0, (0, _toConsumableArray2.default)(Object.values(kitsPipeFunctions)))((0, _toConsumableArray2.default)(query.data), queryParams);
3202 }, [query.data, queryParams]);
3203 var selectedTaxonomies = (0, _useSelectedTaxonomies.default)(queryParams.taxonomies);
3204 var isFilterActive = (0, _react.useMemo)(function () {
3205 return !!queryParams.search || !!selectedTaxonomies.length;
3206 }, [queryParams]);
3207 (0, _react.useEffect)(function () {
3208 if (!force) {
3209 return;
3210 }
3211 query.refetch().then(function () {
3212 return setForce(false);
3213 });
3214 }, [force]);
3215 return _objectSpread(_objectSpread({}, query), {}, {
3216 data: data,
3217 queryParams: queryParams,
3218 setQueryParams: setQueryParams,
3219 clearQueryParams: clearQueryParams,
3220 forceRefetch: forceRefetch,
3221 isFilterActive: isFilterActive
3222 });
3223 }
3224
3225 /***/ }),
3226
3227 /***/ "../app/modules/kit-library/assets/js/hooks/use-menu-items.js":
3228 /*!********************************************************************!*\
3229 !*** ../app/modules/kit-library/assets/js/hooks/use-menu-items.js ***!
3230 \********************************************************************/
3231 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3232
3233 "use strict";
3234 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
3235
3236
3237 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3238 Object.defineProperty(exports, "__esModule", ({
3239 value: true
3240 }));
3241 exports["default"] = useMenuItems;
3242 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
3243 var _react = __webpack_require__(/*! react */ "react");
3244 var _useCloudKitsEligibility = _interopRequireDefault(__webpack_require__(/*! ./use-cloud-kits-eligibility */ "../app/modules/kit-library/assets/js/hooks/use-cloud-kits-eligibility.js"));
3245 /**
3246 * Generate the menu items for the kit library pages.
3247 *
3248 * @param {string} path - The current page path
3249 * @return {Array} menu items
3250 */
3251 function useMenuItems(path) {
3252 var _useCloudKitsEligibil = (0, _useCloudKitsEligibility.default)(),
3253 isCloudKitsAvailable = _useCloudKitsEligibil.data;
3254 return (0, _react.useMemo)(function () {
3255 var page = path.replace('/', '');
3256 var menuItems = [{
3257 label: __('All Website Kits', 'elementor'),
3258 icon: 'eicon-filter',
3259 isActive: !page,
3260 url: '/kit-library',
3261 trackEventData: {
3262 command: 'kit-library/select-organizing-category',
3263 category: 'all'
3264 }
3265 }].concat((0, _toConsumableArray2.default)(isCloudKitsAvailable ? [{
3266 label: __('My Cloud Kits', 'elementor'),
3267 icon: 'eicon-library-cloud-empty',
3268 isActive: 'cloud' === page,
3269 url: '/kit-library/cloud',
3270 trackEventData: {
3271 command: 'kit-library/select-organizing-category',
3272 category: 'cloud'
3273 }
3274 }] : []), [{
3275 label: __('Favorites', 'elementor'),
3276 icon: 'eicon-heart-o',
3277 isActive: 'favorites' === page,
3278 url: '/kit-library/favorites',
3279 trackEventData: {
3280 command: 'kit-library/select-organizing-category',
3281 category: 'favorites'
3282 }
3283 }]);
3284 return menuItems;
3285 }, [path, isCloudKitsAvailable]);
3286 }
3287
3288 /***/ }),
3289
3290 /***/ "../app/modules/kit-library/assets/js/hooks/use-selected-taxonomies.js":
3291 /*!*****************************************************************************!*\
3292 !*** ../app/modules/kit-library/assets/js/hooks/use-selected-taxonomies.js ***!
3293 \*****************************************************************************/
3294 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3295
3296 "use strict";
3297
3298
3299 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3300 Object.defineProperty(exports, "__esModule", ({
3301 value: true
3302 }));
3303 exports["default"] = useSelectedTaxonomies;
3304 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
3305 var _react = __webpack_require__(/*! react */ "react");
3306 function useSelectedTaxonomies(taxonomiesFilter) {
3307 return (0, _react.useMemo)(function () {
3308 return Object.values(taxonomiesFilter).reduce(function (current, groupedTaxonomies) {
3309 return [].concat((0, _toConsumableArray2.default)(current), (0, _toConsumableArray2.default)(groupedTaxonomies));
3310 });
3311 }, [taxonomiesFilter]);
3312 }
3313
3314 /***/ }),
3315
3316 /***/ "../app/modules/kit-library/assets/js/hooks/use-taxonomies.js":
3317 /*!********************************************************************!*\
3318 !*** ../app/modules/kit-library/assets/js/hooks/use-taxonomies.js ***!
3319 \********************************************************************/
3320 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3321
3322 "use strict";
3323
3324
3325 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3326 Object.defineProperty(exports, "__esModule", ({
3327 value: true
3328 }));
3329 exports.KEY = void 0;
3330 exports["default"] = useTaxonomies;
3331 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3332 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3333 var _taxonomy = _interopRequireDefault(__webpack_require__(/*! ../models/taxonomy */ "../app/modules/kit-library/assets/js/models/taxonomy.js"));
3334 var _reactQuery = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js");
3335 var _react = __webpack_require__(/*! react */ "react");
3336 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; }
3337 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; }
3338 var KEY = exports.KEY = 'tags';
3339 function useTaxonomies() {
3340 var _useState = (0, _react.useState)(false),
3341 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
3342 force = _useState2[0],
3343 setForce = _useState2[1];
3344 var forceRefetch = (0, _react.useCallback)(function () {
3345 return setForce(true);
3346 }, [setForce]);
3347 var query = (0, _reactQuery.useQuery)([KEY], function () {
3348 return fetchTaxonomies(force);
3349 });
3350 (0, _react.useEffect)(function () {
3351 if (!force) {
3352 return;
3353 }
3354 query.refetch().then(function () {
3355 return setForce(false);
3356 });
3357 }, [force]);
3358 return _objectSpread(_objectSpread({}, query), {}, {
3359 forceRefetch: forceRefetch
3360 });
3361 }
3362 function fetchTaxonomies(force) {
3363 return $e.data.get('kit-taxonomies/index', {
3364 force: force ? 1 : undefined
3365 }, {
3366 refresh: true
3367 }).then(function (response) {
3368 return response.data;
3369 }).then(function (_ref) {
3370 var data = _ref.data;
3371 return data.map(function (taxonomy) {
3372 return _taxonomy.default.createFromResponse(taxonomy);
3373 });
3374 });
3375 }
3376
3377 /***/ }),
3378
3379 /***/ "../app/modules/kit-library/assets/js/models/base-model.js":
3380 /*!*****************************************************************!*\
3381 !*** ../app/modules/kit-library/assets/js/models/base-model.js ***!
3382 \*****************************************************************/
3383 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3384
3385 "use strict";
3386
3387
3388 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3389 Object.defineProperty(exports, "__esModule", ({
3390 value: true
3391 }));
3392 exports["default"] = void 0;
3393 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3394 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
3395 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
3396 var BaseModel = exports["default"] = /*#__PURE__*/function () {
3397 function BaseModel() {
3398 (0, _classCallCheck2.default)(this, BaseModel);
3399 }
3400 return (0, _createClass2.default)(BaseModel, [{
3401 key: "clone",
3402 value:
3403 /**
3404 * Clone to object to avoid changing the reference.
3405 *
3406 * @return {BaseModel} cloned model
3407 */
3408 function clone() {
3409 var _this = this;
3410 var instance = new this.constructor();
3411 Object.keys(this).forEach(function (key) {
3412 instance[key] = _this[key];
3413 });
3414 return instance;
3415 }
3416
3417 /**
3418 * Using init and not the default constructor because there is a problem to fill the instance
3419 * dynamically in the constructor.
3420 *
3421 * @param {*} data
3422 * @return {BaseModel} model
3423 */
3424 }, {
3425 key: "init",
3426 value: function init() {
3427 var _this2 = this;
3428 var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3429 Object.entries(data).forEach(function (_ref) {
3430 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
3431 key = _ref2[0],
3432 value = _ref2[1];
3433 _this2[key] = value;
3434 });
3435 return this;
3436 }
3437 }]);
3438 }();
3439
3440 /***/ }),
3441
3442 /***/ "../app/modules/kit-library/assets/js/models/content-type.js":
3443 /*!*******************************************************************!*\
3444 !*** ../app/modules/kit-library/assets/js/models/content-type.js ***!
3445 \*******************************************************************/
3446 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3447
3448 "use strict";
3449
3450
3451 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3452 Object.defineProperty(exports, "__esModule", ({
3453 value: true
3454 }));
3455 exports["default"] = void 0;
3456 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
3457 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
3458 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
3459 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
3460 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
3461 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3462 var _baseModel = _interopRequireDefault(__webpack_require__(/*! ./base-model */ "../app/modules/kit-library/assets/js/models/base-model.js"));
3463 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)); }
3464 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
3465 var ContentType = exports["default"] = /*#__PURE__*/function (_BaseModel) {
3466 function ContentType() {
3467 var _this;
3468 (0, _classCallCheck2.default)(this, ContentType);
3469 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3470 args[_key] = arguments[_key];
3471 }
3472 _this = _callSuper(this, ContentType, [].concat(args));
3473 (0, _defineProperty2.default)(_this, "id", '');
3474 (0, _defineProperty2.default)(_this, "label", '');
3475 (0, _defineProperty2.default)(_this, "documentTypes", []);
3476 (0, _defineProperty2.default)(_this, "documents", []);
3477 (0, _defineProperty2.default)(_this, "order", 0);
3478 return _this;
3479 }
3480 (0, _inherits2.default)(ContentType, _BaseModel);
3481 return (0, _createClass2.default)(ContentType, null, [{
3482 key: "createFromResponse",
3483 value: function createFromResponse(documentType) {
3484 return new ContentType().init({
3485 id: documentType.id,
3486 label: documentType.label,
3487 documentTypes: documentType.doc_types,
3488 order: documentType.order,
3489 documents: []
3490 });
3491 }
3492 }]);
3493 }(_baseModel.default);
3494
3495 /***/ }),
3496
3497 /***/ "../app/modules/kit-library/assets/js/models/document.js":
3498 /*!***************************************************************!*\
3499 !*** ../app/modules/kit-library/assets/js/models/document.js ***!
3500 \***************************************************************/
3501 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3502
3503 "use strict";
3504
3505
3506 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3507 Object.defineProperty(exports, "__esModule", ({
3508 value: true
3509 }));
3510 exports["default"] = void 0;
3511 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
3512 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
3513 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
3514 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
3515 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
3516 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3517 var _baseModel = _interopRequireDefault(__webpack_require__(/*! ./base-model */ "../app/modules/kit-library/assets/js/models/base-model.js"));
3518 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)); }
3519 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
3520 var Document = exports["default"] = /*#__PURE__*/function (_BaseModel) {
3521 function Document() {
3522 var _this;
3523 (0, _classCallCheck2.default)(this, Document);
3524 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3525 args[_key] = arguments[_key];
3526 }
3527 _this = _callSuper(this, Document, [].concat(args));
3528 (0, _defineProperty2.default)(_this, "id", '');
3529 (0, _defineProperty2.default)(_this, "title", '');
3530 (0, _defineProperty2.default)(_this, "documentType", '');
3531 (0, _defineProperty2.default)(_this, "thumbnailUrl", '');
3532 (0, _defineProperty2.default)(_this, "previewUrl", '');
3533 return _this;
3534 }
3535 (0, _inherits2.default)(Document, _BaseModel);
3536 return (0, _createClass2.default)(Document, null, [{
3537 key: "createFromResponse",
3538 value:
3539 /**
3540 * Create a tag from server response
3541 *
3542 * @param {Document} document
3543 */
3544 function createFromResponse(document) {
3545 return new Document().init({
3546 id: document.id,
3547 title: document.title,
3548 documentType: document.doc_type,
3549 thumbnailUrl: document.thumbnail_url,
3550 previewUrl: document.preview_url
3551 });
3552 }
3553 }]);
3554 }(_baseModel.default);
3555
3556 /***/ }),
3557
3558 /***/ "../app/modules/kit-library/assets/js/models/kit.js":
3559 /*!**********************************************************!*\
3560 !*** ../app/modules/kit-library/assets/js/models/kit.js ***!
3561 \**********************************************************/
3562 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3563
3564 "use strict";
3565
3566
3567 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3568 Object.defineProperty(exports, "__esModule", ({
3569 value: true
3570 }));
3571 exports["default"] = void 0;
3572 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
3573 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
3574 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
3575 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
3576 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
3577 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3578 var _baseModel = _interopRequireDefault(__webpack_require__(/*! ./base-model */ "../app/modules/kit-library/assets/js/models/base-model.js"));
3579 var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../app/modules/kit-library/assets/js/models/document.js"));
3580 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)); }
3581 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
3582 /**
3583 * @typedef {import('./content-type')} ContentType
3584 */
3585 var Kit = exports["default"] = /*#__PURE__*/function (_BaseModel) {
3586 function Kit() {
3587 var _this;
3588 (0, _classCallCheck2.default)(this, Kit);
3589 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3590 args[_key] = arguments[_key];
3591 }
3592 _this = _callSuper(this, Kit, [].concat(args));
3593 (0, _defineProperty2.default)(_this, "id", '');
3594 (0, _defineProperty2.default)(_this, "title", '');
3595 (0, _defineProperty2.default)(_this, "description", '');
3596 (0, _defineProperty2.default)(_this, "isFavorite", false);
3597 (0, _defineProperty2.default)(_this, "thumbnailUrl", null);
3598 (0, _defineProperty2.default)(_this, "previewUrl", '');
3599 (0, _defineProperty2.default)(_this, "accessLevel", 0);
3600 (0, _defineProperty2.default)(_this, "trendIndex", null);
3601 (0, _defineProperty2.default)(_this, "popularityIndex", null);
3602 (0, _defineProperty2.default)(_this, "featuredIndex", null);
3603 (0, _defineProperty2.default)(_this, "createdAt", null);
3604 (0, _defineProperty2.default)(_this, "updatedAt", null);
3605 (0, _defineProperty2.default)(_this, "keywords", []);
3606 (0, _defineProperty2.default)(_this, "taxonomies", []);
3607 (0, _defineProperty2.default)(_this, "documents", []);
3608 return _this;
3609 }
3610 (0, _inherits2.default)(Kit, _BaseModel);
3611 return (0, _createClass2.default)(Kit, [{
3612 key: "getDocumentsByTypes",
3613 value:
3614 /**
3615 * Get content types as param and group all the documents based on it.
3616 *
3617 * @param {ContentType[]} contentTypes
3618 * @return {ContentType[]} content types
3619 */
3620 function getDocumentsByTypes(contentTypes) {
3621 var _this2 = this;
3622 return contentTypes.map(function (contentType) {
3623 contentType = contentType.clone();
3624 contentType.documents = _this2.documents.filter(function (document) {
3625 return contentType.documentTypes.includes(document.documentType);
3626 });
3627 return contentType;
3628 });
3629 }
3630 }], [{
3631 key: "createFromResponse",
3632 value:
3633 /**
3634 * Create a kit from server response
3635 *
3636 * @param {Kit} kit
3637 */
3638 function createFromResponse(kit) {
3639 return new Kit().init({
3640 id: kit.id,
3641 title: kit.title,
3642 description: kit.description,
3643 isFavorite: kit.is_favorite,
3644 thumbnailUrl: kit.thumbnail_url,
3645 previewUrl: kit.preview_url,
3646 accessLevel: kit.access_level,
3647 accessTier: kit.access_tier,
3648 trendIndex: kit.trend_index,
3649 popularityIndex: kit.popularity_index,
3650 featuredIndex: kit.featured_index,
3651 // TODO: Remove when the API is stable (when date params always exists)
3652 createdAt: kit.created_at ? new Date(kit.created_at) : null,
3653 updatedAt: kit.updated_at ? new Date(kit.updated_at) : null,
3654 //
3655 keywords: kit.keywords,
3656 taxonomies: kit.taxonomies,
3657 documents: kit.documents ? kit.documents.map(function (document) {
3658 return _document.default.createFromResponse(document);
3659 }) : []
3660 });
3661 }
3662 }]);
3663 }(_baseModel.default);
3664
3665 /***/ }),
3666
3667 /***/ "../app/modules/kit-library/assets/js/models/taxonomy-transformer.js":
3668 /*!***************************************************************************!*\
3669 !*** ../app/modules/kit-library/assets/js/models/taxonomy-transformer.js ***!
3670 \***************************************************************************/
3671 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3672
3673 "use strict";
3674
3675
3676 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3677 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
3678 Object.defineProperty(exports, "__esModule", ({
3679 value: true
3680 }));
3681 exports.TierToKeyMap = exports.PromotionChipText = exports.OldPlanTexts = exports.NewPlanTexts = void 0;
3682 exports.getTaxonomyFilterItems = getTaxonomyFilterItems;
3683 exports.isKitInTaxonomy = isKitInTaxonomy;
3684 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
3685 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3686 var _tiers = __webpack_require__(/*! elementor-utils/tiers */ "../assets/dev/js/utils/tiers.js");
3687 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3688 var _taxonomy = _interopRequireWildcard(__webpack_require__(/*! ./taxonomy */ "../app/modules/kit-library/assets/js/models/taxonomy.js"));
3689 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
3690 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
3691 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; }
3692 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; }
3693 var FREE = 'free',
3694 ESSENTIAL = 'essential',
3695 ADVANCED = 'advanced',
3696 PRO = 'pro',
3697 EXPERT = 'expert,',
3698 AGENCY = 'agency';
3699 var OldPlanTexts = exports.OldPlanTexts = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, FREE, (0, _i18n.__)('Free', 'elementor')), PRO, (0, _i18n.__)('Pro', 'elementor')), ADVANCED, (0, _i18n.__)('Advanced', 'elementor')), EXPERT, (0, _i18n.__)('Expert', 'elementor')), AGENCY, (0, _i18n.__)('Agency', 'elementor'));
3700 var NewPlanTexts = exports.NewPlanTexts = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, FREE, (0, _i18n.__)('Free', 'elementor')), ESSENTIAL, (0, _i18n.__)('Essential', 'elementor')), ADVANCED, (0, _i18n.__)('Advanced & Higher', 'elementor'));
3701 var TaxonomyTransformMap = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, PRO, ESSENTIAL), EXPERT, ADVANCED), AGENCY, ADVANCED);
3702 var TierToKeyMap = exports.TierToKeyMap = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _tiers.TIERS.free, FREE), _tiers.TIERS.essential, ESSENTIAL), _tiers.TIERS['essential-oct2023'], ADVANCED), _tiers.TIERS.expert, ADVANCED), _tiers.TIERS.agency, ADVANCED);
3703 var PromotionChipText = exports.PromotionChipText = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, FREE, (0, _i18n.__)('Free', 'elementor')), ESSENTIAL, (0, _i18n.__)('Essential', 'elementor')), ADVANCED, (0, _i18n.__)('Advanced', 'elementor'));
3704 function getTaxonomyFilterItems(taxonomies) {
3705 taxonomies = taxonomies ? (0, _toConsumableArray2.default)(taxonomies) : [];
3706 var taxonomyFilterItems = taxonomies.reduce(function (map, taxonomy) {
3707 var formattedTaxonomy = _getFormattedTaxonomyItem(taxonomy),
3708 taxonomyType = _taxonomy.TaxonomyTypes.find(function (_ref) {
3709 var key = _ref.key;
3710 return key === formattedTaxonomy.type;
3711 });
3712 if (!taxonomyType) {
3713 return map;
3714 }
3715 if (!map[formattedTaxonomy.type]) {
3716 map[formattedTaxonomy.type] = _objectSpread({}, taxonomyType);
3717 }
3718 var data = map[formattedTaxonomy.type].data;
3719 if (!data.find(function (_ref2) {
3720 var text = _ref2.text;
3721 return text === formattedTaxonomy.text;
3722 })) {
3723 map[formattedTaxonomy.type].data.push(formattedTaxonomy);
3724 }
3725 return map;
3726 }, {});
3727 return _taxonomy.TaxonomyTypes.reduce(function (formattedTaxonomies, taxonomyItem) {
3728 var _taxonomyFilterItems$;
3729 if ((_taxonomyFilterItems$ = taxonomyFilterItems[taxonomyItem.key]) !== null && _taxonomyFilterItems$ !== void 0 && (_taxonomyFilterItems$ = _taxonomyFilterItems$.data) !== null && _taxonomyFilterItems$ !== void 0 && _taxonomyFilterItems$.length) {
3730 formattedTaxonomies.push(taxonomyFilterItems[taxonomyItem.key]);
3731 }
3732 return formattedTaxonomies;
3733 }, []);
3734 }
3735 function isKitInTaxonomy(kit, taxonomyType, taxonomies) {
3736 return _taxonomy.SUBSCRIPTION_PLAN === taxonomyType ? taxonomies.includes(TierToKeyMap[kit.accessTier]) : taxonomies.some(function (taxonomy) {
3737 return kit.taxonomies.includes(taxonomy);
3738 });
3739 }
3740 function _getFormattedTaxonomyItem(taxonomy) {
3741 switch (taxonomy.type) {
3742 case _taxonomy.SUBSCRIPTION_PLAN:
3743 return _getFormattedSubscriptionByPlanTaxonomy(taxonomy);
3744 default:
3745 return taxonomy;
3746 }
3747 }
3748 function _getTaxonomyIdByText(taxonomyText) {
3749 return Object.keys(OldPlanTexts).find(function (id) {
3750 return OldPlanTexts[id] === taxonomyText;
3751 });
3752 }
3753 function _getFormattedTaxonomyId(taxonomyId) {
3754 return TaxonomyTransformMap[taxonomyId] || taxonomyId;
3755 }
3756 function _getFormattedSubscriptionByPlanTaxonomy(taxonomy) {
3757 var transformedTaxonomy = new _taxonomy.default();
3758 transformedTaxonomy.id = _getFormattedTaxonomyId(_getTaxonomyIdByText(taxonomy.text));
3759 transformedTaxonomy.text = NewPlanTexts[transformedTaxonomy.id] || taxonomy.text;
3760 transformedTaxonomy.type = taxonomy.type;
3761 return transformedTaxonomy;
3762 }
3763
3764 /***/ }),
3765
3766 /***/ "../app/modules/kit-library/assets/js/models/taxonomy.js":
3767 /*!***************************************************************!*\
3768 !*** ../app/modules/kit-library/assets/js/models/taxonomy.js ***!
3769 \***************************************************************/
3770 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3771
3772 "use strict";
3773
3774
3775 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3776 Object.defineProperty(exports, "__esModule", ({
3777 value: true
3778 }));
3779 exports["default"] = exports.TaxonomyTypes = exports.TAG = exports.SUBSCRIPTION_PLAN = exports.FEATURE = exports.CATEGORY = void 0;
3780 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
3781 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
3782 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
3783 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
3784 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
3785 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3786 var _baseModel = _interopRequireDefault(__webpack_require__(/*! ./base-model */ "../app/modules/kit-library/assets/js/models/base-model.js"));
3787 var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
3788 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)); }
3789 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
3790 var CATEGORY = exports.CATEGORY = 'categories',
3791 TAG = exports.TAG = 'tags',
3792 FEATURE = exports.FEATURE = 'features',
3793 SUBSCRIPTION_PLAN = exports.SUBSCRIPTION_PLAN = 'subscription_plans';
3794 var TaxonomyTypes = exports.TaxonomyTypes = [{
3795 key: 'categories',
3796 label: (0, _i18n.__)('Categories', 'elementor'),
3797 isOpenByDefault: true,
3798 data: []
3799 }, {
3800 key: 'tags',
3801 label: (0, _i18n.__)('Tags', 'elementor'),
3802 data: []
3803 }, {
3804 key: 'features',
3805 label: (0, _i18n.__)('Features', 'elementor'),
3806 data: []
3807 }, {
3808 key: SUBSCRIPTION_PLAN,
3809 label: (0, _i18n.__)('Kits by plan', 'elementor'),
3810 data: []
3811 }];
3812 var Taxonomy = exports["default"] = /*#__PURE__*/function (_BaseModel) {
3813 function Taxonomy() {
3814 var _this;
3815 (0, _classCallCheck2.default)(this, Taxonomy);
3816 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3817 args[_key] = arguments[_key];
3818 }
3819 _this = _callSuper(this, Taxonomy, [].concat(args));
3820 (0, _defineProperty2.default)(_this, "text", '');
3821 (0, _defineProperty2.default)(_this, "type", 'tag');
3822 (0, _defineProperty2.default)(_this, "id", null);
3823 return _this;
3824 }
3825 (0, _inherits2.default)(Taxonomy, _BaseModel);
3826 return (0, _createClass2.default)(Taxonomy, null, [{
3827 key: "createFromResponse",
3828 value:
3829 /**
3830 * Create a tag from server response
3831 *
3832 * @param {Taxonomy} taxonomy
3833 */
3834 function createFromResponse(taxonomy) {
3835 return new Taxonomy().init({
3836 text: taxonomy.text,
3837 type: taxonomy.type,
3838 id: taxonomy.id || null
3839 });
3840 }
3841 }]);
3842 }(_baseModel.default);
3843
3844 /***/ }),
3845
3846 /***/ "../app/modules/kit-library/assets/js/pages/cloud/cloud.js":
3847 /*!*****************************************************************!*\
3848 !*** ../app/modules/kit-library/assets/js/pages/cloud/cloud.js ***!
3849 \*****************************************************************/
3850 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3851
3852 "use strict";
3853 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
3854
3855
3856 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3857 Object.defineProperty(exports, "__esModule", ({
3858 value: true
3859 }));
3860 exports["default"] = Cloud;
3861 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
3862 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
3863 var _content = _interopRequireDefault(__webpack_require__(/*! ../../../../../../assets/js/layout/content */ "../app/assets/js/layout/content.js"));
3864 var _errorScreen = _interopRequireDefault(__webpack_require__(/*! ../../components/error-screen */ "../app/modules/kit-library/assets/js/components/error-screen.js"));
3865 var _indexHeader = _interopRequireDefault(__webpack_require__(/*! ../index/index-header */ "../app/modules/kit-library/assets/js/pages/index/index-header.js"));
3866 var _indexSidebar = _interopRequireDefault(__webpack_require__(/*! ../index/index-sidebar */ "../app/modules/kit-library/assets/js/pages/index/index-sidebar.js"));
3867 var _kitListCloud = _interopRequireDefault(__webpack_require__(/*! ../../components/kit-list-cloud */ "../app/modules/kit-library/assets/js/components/kit-list-cloud.js"));
3868 var _layout = _interopRequireDefault(__webpack_require__(/*! ../../components/layout */ "../app/modules/kit-library/assets/js/components/layout/index.js"));
3869 var _pageLoader = _interopRequireDefault(__webpack_require__(/*! ../../components/page-loader */ "../app/modules/kit-library/assets/js/components/page-loader.js"));
3870 var _searchInput = _interopRequireDefault(__webpack_require__(/*! ../../components/search-input */ "../app/modules/kit-library/assets/js/components/search-input.js"));
3871 var _useCloudKits2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-cloud-kits */ "../app/modules/kit-library/assets/js/hooks/use-cloud-kits.js"));
3872 var _useMenuItems = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-menu-items */ "../app/modules/kit-library/assets/js/hooks/use-menu-items.js"));
3873 var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js"));
3874 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
3875 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
3876 var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));
3877 __webpack_require__(/*! ../index/index.scss */ "../app/modules/kit-library/assets/js/pages/index/index.scss");
3878 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; }
3879 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; }
3880 function Cloud(_ref) {
3881 var _ref$path = _ref.path,
3882 path = _ref$path === void 0 ? '' : _ref$path,
3883 _ref$renderNoResultsC = _ref.renderNoResultsComponent,
3884 renderNoResultsComponent = _ref$renderNoResultsC === void 0 ? function (_ref2) {
3885 var defaultComponent = _ref2.defaultComponent;
3886 return defaultComponent;
3887 } : _ref$renderNoResultsC;
3888 (0, _usePageTitle.default)({
3889 title: __('Kit Library', 'elementor')
3890 });
3891 var menuItems = (0, _useMenuItems.default)(path);
3892 var _useCloudKits = (0, _useCloudKits2.default)(),
3893 data = _useCloudKits.data,
3894 isSuccess = _useCloudKits.isSuccess,
3895 isLoading = _useCloudKits.isLoading,
3896 isFetching = _useCloudKits.isFetching,
3897 isError = _useCloudKits.isError,
3898 queryParams = _useCloudKits.queryParams,
3899 setQueryParams = _useCloudKits.setQueryParams,
3900 clearQueryParams = _useCloudKits.clearQueryParams,
3901 forceRefetch = _useCloudKits.forceRefetch,
3902 isFilterActive = _useCloudKits.isFilterActive;
3903 var eventTracking = function eventTracking(command, elementPosition) {
3904 var search = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
3905 var direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
3906 var sortType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
3907 var action = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
3908 var eventType = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 'click';
3909 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
3910 page_source: 'cloud page',
3911 element_position: elementPosition,
3912 search_term: search,
3913 sort_direction: direction,
3914 sort_type: sortType,
3915 event_type: eventType,
3916 action: action
3917 });
3918 };
3919 return /*#__PURE__*/_react.default.createElement(_layout.default, {
3920 sidebar: /*#__PURE__*/_react.default.createElement(_indexSidebar.default, {
3921 menuItems: menuItems
3922 }),
3923 header: /*#__PURE__*/_react.default.createElement(_indexHeader.default, {
3924 refetch: function refetch() {
3925 forceRefetch();
3926 },
3927 isFetching: isFetching
3928 })
3929 }, /*#__PURE__*/_react.default.createElement("div", {
3930 className: "e-kit-library__index-layout-container"
3931 }, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
3932 container: true,
3933 className: "e-kit-library__index-layout-heading"
3934 }, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
3935 item: true,
3936 className: "e-kit-library__index-layout-heading-search"
3937 }, /*#__PURE__*/_react.default.createElement(_searchInput.default
3938 // eslint-disable-next-line @wordpress/i18n-ellipsis
3939 , {
3940 placeholder: __('Search all Cloud Kits...', 'elementor'),
3941 value: queryParams.search,
3942 onChange: function onChange(value) {
3943 setQueryParams(function (prev) {
3944 return _objectSpread(_objectSpread({}, prev), {}, {
3945 search: value
3946 });
3947 });
3948 eventTracking('kit-library/kit-free-search', 'top_area_search', value, null, null, null, 'search');
3949 }
3950 }))), /*#__PURE__*/_react.default.createElement(_content.default, {
3951 className: "e-kit-library__index-layout-main"
3952 }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isLoading && /*#__PURE__*/_react.default.createElement(_pageLoader.default, null), isError && /*#__PURE__*/_react.default.createElement(_errorScreen.default, {
3953 title: __('Something went wrong.', 'elementor'),
3954 description: __('Nothing to worry about, use 🔄 on the top corner to try again. If the problem continues, head over to the Help Center.', 'elementor'),
3955 button: {
3956 text: __('Learn More', 'elementor'),
3957 url: 'https://go.elementor.com/app-kit-library-error/',
3958 target: '_blank'
3959 }
3960 }), isSuccess && 0 < data.length && /*#__PURE__*/_react.default.createElement(_kitListCloud.default, {
3961 data: data,
3962 source: path
3963 }), isSuccess && 0 === data.length && (queryParams.search ? /*#__PURE__*/_react.default.createElement(_errorScreen.default, {
3964 title: __('No kits found for your search', 'elementor'),
3965 description: __('Try different keywords or ', 'elementor'),
3966 button: {
3967 text: __('Continue browsing.', 'elementor'),
3968 action: clearQueryParams
3969 }
3970 }) : renderNoResultsComponent({
3971 defaultComponent: /*#__PURE__*/_react.default.createElement(_errorScreen.default, {
3972 title: __('No kits to show here yet', 'elementor'),
3973 description: __("Once you export a Website Kit to the cloud, you'll find it here and be able to use it on all your sites.", 'elementor'),
3974 newLineButton: true,
3975 button: {
3976 text: __('Export this site', 'elementor'),
3977 url: elementorAppConfig.base_url + '#/export',
3978 target: '_blank',
3979 variant: 'contained',
3980 color: 'primary'
3981 }
3982 }),
3983 isFilterActive: isFilterActive
3984 }))))));
3985 }
3986 Cloud.propTypes = {
3987 path: _propTypes.default.string,
3988 renderNoResultsComponent: _propTypes.default.func
3989 };
3990
3991 /***/ }),
3992
3993 /***/ "../app/modules/kit-library/assets/js/pages/favorites/favorites.js":
3994 /*!*************************************************************************!*\
3995 !*** ../app/modules/kit-library/assets/js/pages/favorites/favorites.js ***!
3996 \*************************************************************************/
3997 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3998
3999 "use strict";
4000 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
4001 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4002
4003
4004 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4005 Object.defineProperty(exports, "__esModule", ({
4006 value: true
4007 }));
4008 exports["default"] = Favorites;
4009 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4010 var _index = _interopRequireDefault(__webpack_require__(/*! ../index/index */ "../app/modules/kit-library/assets/js/pages/index/index.js"));
4011 var _errorScreen = _interopRequireDefault(__webpack_require__(/*! ../../components/error-screen */ "../app/modules/kit-library/assets/js/components/error-screen.js"));
4012 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
4013 function Favorites(props) {
4014 var navigate = (0, _router.useNavigate)();
4015 var indexNotResultsFavorites = /*#__PURE__*/_react.default.createElement(_errorScreen.default
4016 // eslint-disable-next-line @wordpress/i18n-ellipsis
4017 , {
4018 title: __('No favorites here yet...', 'elementor'),
4019 description: __('Use the heart icon to save kits that inspire you. You\'ll be able to find them here.', 'elementor'),
4020 button: {
4021 text: __('Continue browsing.', 'elementor'),
4022 action: function action() {
4023 return navigate('/kit-library');
4024 }
4025 }
4026 });
4027 return /*#__PURE__*/_react.default.createElement(_index.default, {
4028 path: props.path,
4029 initialQueryParams: {
4030 favorite: true
4031 },
4032 renderNoResultsComponent: function renderNoResultsComponent(_ref) {
4033 var defaultComponent = _ref.defaultComponent,
4034 isFilterActive = _ref.isFilterActive;
4035 if (!isFilterActive) {
4036 return indexNotResultsFavorites;
4037 }
4038 return defaultComponent;
4039 }
4040 });
4041 }
4042 Favorites.propTypes = {
4043 path: PropTypes.string
4044 };
4045
4046 /***/ }),
4047
4048 /***/ "../app/modules/kit-library/assets/js/pages/index/index-header.js":
4049 /*!************************************************************************!*\
4050 !*** ../app/modules/kit-library/assets/js/pages/index/index-header.js ***!
4051 \************************************************************************/
4052 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4053
4054 "use strict";
4055 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
4056 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4057
4058
4059 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4060 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4061 Object.defineProperty(exports, "__esModule", ({
4062 value: true
4063 }));
4064 exports["default"] = IndexHeader;
4065 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4066 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4067 var _header = _interopRequireDefault(__webpack_require__(/*! ../../components/layout/header */ "../app/modules/kit-library/assets/js/components/layout/header.js"));
4068 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
4069 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
4070 var _popoverDialog = _interopRequireDefault(__webpack_require__(/*! elementor-app/ui/popover-dialog/popover-dialog */ "../app/assets/js/ui/popover-dialog/popover-dialog.js"));
4071 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
4072 __webpack_require__(/*! ./index-header.scss */ "../app/modules/kit-library/assets/js/pages/index/index-header.scss");
4073 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
4074 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
4075 function IndexHeader(props) {
4076 var _elementorAppConfig$u, _elementorAppConfig$u2;
4077 var navigate = (0, _router.useNavigate)();
4078 var _useState = (0, _react.useState)(false),
4079 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4080 isInfoModalOpen = _useState2[0],
4081 setIsInfoModalOpen = _useState2[1];
4082 var importRef = (0, _react.useRef)();
4083 var eventTracking = function eventTracking(command) {
4084 var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
4085 var eventType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'click';
4086 var modalType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
4087 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
4088 element: element,
4089 event_type: eventType,
4090 page_source: 'home page',
4091 element_position: 'app_header',
4092 modal_type: modalType
4093 });
4094 };
4095 var _onClose = function onClose(e) {
4096 var element = e.target.classList.contains('eps-modal__overlay') ? 'overlay' : 'x';
4097 eventTracking('kit-library/modal-close', element, null, 'info');
4098 };
4099 var shouldShowImportButton = elementorAppConfig.user.is_administrator || ((_elementorAppConfig$u = (_elementorAppConfig$u2 = elementorAppConfig.user.restrictions) === null || _elementorAppConfig$u2 === void 0 ? void 0 : _elementorAppConfig$u2.includes('json-upload')) !== null && _elementorAppConfig$u !== void 0 ? _elementorAppConfig$u : false);
4100 var buttons = (0, _react.useMemo)(function () {
4101 return [{
4102 id: 'info',
4103 text: __('Info', 'elementor'),
4104 hideText: true,
4105 icon: 'eicon-info-circle-o',
4106 onClick: function onClick() {
4107 eventTracking('kit-library/seek-more-info');
4108 setIsInfoModalOpen(true);
4109 }
4110 }, {
4111 id: 'refetch',
4112 text: __('Refetch', 'elementor'),
4113 hideText: true,
4114 icon: "eicon-sync ".concat(props.isFetching ? 'eicon-animation-spin' : ''),
4115 onClick: function onClick() {
4116 eventTracking('kit-library/refetch');
4117 props.refetch();
4118 }
4119 }, shouldShowImportButton && {
4120 id: 'import',
4121 text: __('Import', 'elementor'),
4122 hideText: true,
4123 icon: 'eicon-upload-circle-o',
4124 elRef: importRef,
4125 onClick: function onClick() {
4126 eventTracking('kit-library/kit-import');
4127 navigate('/import?referrer=kit-library');
4128 }
4129 }];
4130 }, [props.isFetching, props.refetch, shouldShowImportButton]);
4131 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_header.default, {
4132 buttons: buttons
4133 }), /*#__PURE__*/_react.default.createElement(_popoverDialog.default, {
4134 targetRef: importRef,
4135 wrapperClass: "e-kit-library__tooltip"
4136 }, __('Import Kit', 'elementor')), /*#__PURE__*/_react.default.createElement(_appUi.ModalProvider, {
4137 title: __('Welcome to the Library', 'elementor'),
4138 show: isInfoModalOpen,
4139 setShow: setIsInfoModalOpen,
4140 onOpen: function onOpen() {
4141 return eventTracking('kit-library/modal-open', null, 'load', 'info');
4142 },
4143 onClose: function onClose(e) {
4144 return _onClose(e);
4145 }
4146 }, /*#__PURE__*/_react.default.createElement("div", {
4147 className: "e-kit-library-header-info-modal-container"
4148 }, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
4149 tag: "h3",
4150 variant: "h3"
4151 }, __('What\'s a Website Kit?', 'elementor')), /*#__PURE__*/_react.default.createElement(_appUi.Text, null, __('A Website Kit is full, ready-made design that you can apply to your site. It includes all the pages, parts, settings and content that you\'d expect in a fully functional website.', 'elementor'))), /*#__PURE__*/_react.default.createElement("div", {
4152 className: "e-kit-library-header-info-modal-container"
4153 }, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
4154 tag: "h3",
4155 variant: "h3"
4156 }, __('What\'s going on in the Kit Library?', 'elementor')), /*#__PURE__*/_react.default.createElement(_appUi.Text, null, __('Search & filter for kits by category and tags, or browse through individual kits to see what\'s inside.', 'elementor'), /*#__PURE__*/_react.default.createElement("br", null), __('Once you\'ve picked a winner, apply it to your site!', 'elementor'))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
4157 tag: "h3",
4158 variant: "h3"
4159 }, __('Happy browsing!', 'elementor')), /*#__PURE__*/_react.default.createElement(_appUi.Text, null, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
4160 url: "https://go.elementor.com/app-kit-library-how-to-use-kits/",
4161 target: "_blank",
4162 rel: "noreferrer",
4163 text: __('Learn more', 'elementor'),
4164 color: "link",
4165 onClick: function onClick() {
4166 eventTracking('kit-library/seek-more-info', 'text link', null, 'info');
4167 }
4168 }), ' ', __('about using templates', 'elementor')))));
4169 }
4170 IndexHeader.propTypes = {
4171 refetch: PropTypes.func.isRequired,
4172 isFetching: PropTypes.bool
4173 };
4174
4175 /***/ }),
4176
4177 /***/ "../app/modules/kit-library/assets/js/pages/index/index-sidebar.js":
4178 /*!*************************************************************************!*\
4179 !*** ../app/modules/kit-library/assets/js/pages/index/index-sidebar.js ***!
4180 \*************************************************************************/
4181 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4182
4183 "use strict";
4184 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4185
4186
4187 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4188 Object.defineProperty(exports, "__esModule", ({
4189 value: true
4190 }));
4191 exports["default"] = IndexSidebar;
4192 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4193 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
4194 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
4195 function IndexSidebar(props) {
4196 var eventTracking = function eventTracking(command, category, source) {
4197 var eventType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'click';
4198 return (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
4199 category: category,
4200 source: source,
4201 element_location: 'app_sidebar',
4202 event_type: eventType
4203 });
4204 };
4205 return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.menuItems.map(function (item) {
4206 return /*#__PURE__*/_react.default.createElement(_appUi.MenuItem, {
4207 key: item.label,
4208 text: item.label,
4209 className: "eps-menu-item__link ".concat(item.isActive ? 'eps-menu-item--active' : ''),
4210 icon: item.icon,
4211 url: item.url,
4212 onClick: function onClick() {
4213 return eventTracking(item.trackEventData.command, item.trackEventData.category, 'home page');
4214 }
4215 });
4216 }), props.tagsFilterSlot);
4217 }
4218 IndexSidebar.propTypes = {
4219 tagsFilterSlot: PropTypes.node,
4220 menuItems: PropTypes.arrayOf(PropTypes.shape({
4221 label: PropTypes.string,
4222 icon: PropTypes.string,
4223 isActive: PropTypes.bool,
4224 url: PropTypes.string
4225 }))
4226 };
4227
4228 /***/ }),
4229
4230 /***/ "../app/modules/kit-library/assets/js/pages/index/index.js":
4231 /*!*****************************************************************!*\
4232 !*** ../app/modules/kit-library/assets/js/pages/index/index.js ***!
4233 \*****************************************************************/
4234 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4235
4236 "use strict";
4237 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
4238 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4239
4240
4241 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4242 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4243 Object.defineProperty(exports, "__esModule", ({
4244 value: true
4245 }));
4246 exports["default"] = Index;
4247 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4248 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "../node_modules/@babel/runtime/helpers/toConsumableArray.js"));
4249 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4250 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
4251 var _content = _interopRequireDefault(__webpack_require__(/*! ../../../../../../assets/js/layout/content */ "../app/assets/js/layout/content.js"));
4252 var _envatoPromotion = _interopRequireDefault(__webpack_require__(/*! ../../components/envato-promotion */ "../app/modules/kit-library/assets/js/components/envato-promotion.js"));
4253 var _errorScreen = _interopRequireDefault(__webpack_require__(/*! ../../components/error-screen */ "../app/modules/kit-library/assets/js/components/error-screen.js"));
4254 var _filterIndicationText = _interopRequireDefault(__webpack_require__(/*! ../../components/filter-indication-text */ "../app/modules/kit-library/assets/js/components/filter-indication-text.js"));
4255 var _indexHeader = _interopRequireDefault(__webpack_require__(/*! ./index-header */ "../app/modules/kit-library/assets/js/pages/index/index-header.js"));
4256 var _indexSidebar = _interopRequireDefault(__webpack_require__(/*! ./index-sidebar */ "../app/modules/kit-library/assets/js/pages/index/index-sidebar.js"));
4257 var _kitList = _interopRequireDefault(__webpack_require__(/*! ../../components/kit-list */ "../app/modules/kit-library/assets/js/components/kit-list.js"));
4258 var _layout = _interopRequireDefault(__webpack_require__(/*! ../../components/layout */ "../app/modules/kit-library/assets/js/components/layout/index.js"));
4259 var _pageLoader = _interopRequireDefault(__webpack_require__(/*! ../../components/page-loader */ "../app/modules/kit-library/assets/js/components/page-loader.js"));
4260 var _searchInput = _interopRequireDefault(__webpack_require__(/*! ../../components/search-input */ "../app/modules/kit-library/assets/js/components/search-input.js"));
4261 var _sortSelect = _interopRequireDefault(__webpack_require__(/*! ../../components/sort-select */ "../app/modules/kit-library/assets/js/components/sort-select.js"));
4262 var _taxonomiesFilter = _interopRequireDefault(__webpack_require__(/*! ../../components/taxonomies-filter */ "../app/modules/kit-library/assets/js/components/taxonomies-filter.js"));
4263 var _useKits2 = _interopRequireWildcard(__webpack_require__(/*! ../../hooks/use-kits */ "../app/modules/kit-library/assets/js/hooks/use-kits.js"));
4264 var _useMenuItems = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-menu-items */ "../app/modules/kit-library/assets/js/hooks/use-menu-items.js"));
4265 var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js"));
4266 var _useTaxonomies2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-taxonomies */ "../app/modules/kit-library/assets/js/hooks/use-taxonomies.js"));
4267 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
4268 var _lastFilterContext = __webpack_require__(/*! ../../context/last-filter-context */ "../app/modules/kit-library/assets/js/context/last-filter-context.js");
4269 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
4270 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
4271 __webpack_require__(/*! ./index.scss */ "../app/modules/kit-library/assets/js/pages/index/index.scss");
4272 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
4273 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
4274 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; }
4275 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; }
4276 /**
4277 * Generate select and unselect taxonomy functions.
4278 *
4279 * @param {Function} setQueryParams
4280 * @return {((function(*, *): *)|(function(*=): *))[]} taxonomy functions
4281 */
4282 function useTaxonomiesSelection(setQueryParams) {
4283 var selectTaxonomy = (0, _react.useCallback)(function (type, callback) {
4284 return setQueryParams(function (prev) {
4285 var taxonomies = _objectSpread({}, prev.taxonomies);
4286 taxonomies[type] = callback(prev.taxonomies[type]);
4287 return _objectSpread(_objectSpread({}, prev), {}, {
4288 taxonomies: taxonomies
4289 });
4290 });
4291 }, [setQueryParams]);
4292 var unselectTaxonomy = (0, _react.useCallback)(function (taxonomy) {
4293 return setQueryParams(function (prev) {
4294 var taxonomies = Object.entries(prev.taxonomies).reduce(function (current, _ref) {
4295 var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
4296 key = _ref2[0],
4297 groupedTaxonomies = _ref2[1];
4298 return _objectSpread(_objectSpread({}, current), {}, (0, _defineProperty2.default)({}, key, groupedTaxonomies.filter(function (item) {
4299 return item !== taxonomy;
4300 })));
4301 }, {});
4302 return _objectSpread(_objectSpread({}, prev), {}, {
4303 taxonomies: taxonomies
4304 });
4305 });
4306 }, [setQueryParams]);
4307 return [selectTaxonomy, unselectTaxonomy];
4308 }
4309
4310 /**
4311 * Update and read the query param from the url
4312 *
4313 * @param {*} queryParams
4314 * @param {*} setQueryParams
4315 * @param {Array<string>} exclude
4316 */
4317 function useRouterQueryParams(queryParams, setQueryParams) {
4318 var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
4319 var location = (0, _router.useLocation)(),
4320 _useLastFilterContext = (0, _lastFilterContext.useLastFilterContext)(),
4321 setLastFilter = _useLastFilterContext.setLastFilter;
4322 (0, _react.useEffect)(function () {
4323 var filteredQueryParams = Object.fromEntries(Object.entries(queryParams).filter(function (_ref3) {
4324 var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
4325 key = _ref4[0],
4326 item = _ref4[1];
4327 return !exclude.includes(key) && item;
4328 }));
4329 setLastFilter(filteredQueryParams);
4330 history.replaceState(null, '', decodeURI("#".concat(wp.url.addQueryArgs(location.pathname.split('?')[0] || '/', filteredQueryParams))));
4331 }, [queryParams]);
4332 (0, _react.useEffect)(function () {
4333 var routerQueryParams = Object.keys(_useKits2.defaultQueryParams).reduce(function (current, key) {
4334 // TODO: Replace with `wp.url.getQueryArgs` when WordPress 5.7 is the min version
4335 var queryArg = wp.url.getQueryArg(location.pathname, key);
4336 if (!queryArg) {
4337 return current;
4338 }
4339 return _objectSpread(_objectSpread({}, current), {}, (0, _defineProperty2.default)({}, key, queryArg));
4340 }, {});
4341 setQueryParams(function (prev) {
4342 return _objectSpread(_objectSpread(_objectSpread({}, prev), routerQueryParams), {}, {
4343 taxonomies: _objectSpread(_objectSpread({}, prev.taxonomies), routerQueryParams.taxonomies),
4344 ready: true
4345 });
4346 });
4347 }, []);
4348 }
4349 function Index(props) {
4350 (0, _usePageTitle.default)({
4351 title: __('Kit Library', 'elementor')
4352 });
4353 var menuItems = (0, _useMenuItems.default)(props.path);
4354 var _useKits = (0, _useKits2.default)(props.initialQueryParams),
4355 data = _useKits.data,
4356 isSuccess = _useKits.isSuccess,
4357 isLoading = _useKits.isLoading,
4358 isFetching = _useKits.isFetching,
4359 isError = _useKits.isError,
4360 queryParams = _useKits.queryParams,
4361 setQueryParams = _useKits.setQueryParams,
4362 clearQueryParams = _useKits.clearQueryParams,
4363 forceRefetch = _useKits.forceRefetch,
4364 isFilterActive = _useKits.isFilterActive;
4365 useRouterQueryParams(queryParams, setQueryParams, ['ready'].concat((0, _toConsumableArray2.default)(Object.keys(props.initialQueryParams))));
4366 var _useTaxonomies = (0, _useTaxonomies2.default)(),
4367 taxonomiesData = _useTaxonomies.data,
4368 forceRefetchTaxonomies = _useTaxonomies.forceRefetch,
4369 isFetchingTaxonomies = _useTaxonomies.isFetching;
4370 var _useTaxonomiesSelecti = useTaxonomiesSelection(setQueryParams),
4371 _useTaxonomiesSelecti2 = (0, _slicedToArray2.default)(_useTaxonomiesSelecti, 2),
4372 selectTaxonomy = _useTaxonomiesSelecti2[0],
4373 unselectTaxonomy = _useTaxonomiesSelecti2[1];
4374 var eventTracking = function eventTracking(command, elementPosition) {
4375 var search = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
4376 var direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
4377 var sortType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
4378 var action = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
4379 var eventType = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 'click';
4380 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
4381 page_source: 'home page',
4382 element_position: elementPosition,
4383 search_term: search,
4384 sort_direction: direction,
4385 sort_type: sortType,
4386 event_type: eventType,
4387 action: action
4388 });
4389 };
4390 return /*#__PURE__*/_react.default.createElement(_layout.default, {
4391 sidebar: /*#__PURE__*/_react.default.createElement(_indexSidebar.default, {
4392 tagsFilterSlot: /*#__PURE__*/_react.default.createElement(_taxonomiesFilter.default, {
4393 selected: queryParams.taxonomies,
4394 onSelect: selectTaxonomy,
4395 taxonomies: taxonomiesData,
4396 category: props.path
4397 }),
4398 menuItems: menuItems
4399 }),
4400 header: /*#__PURE__*/_react.default.createElement(_indexHeader.default, {
4401 refetch: function refetch() {
4402 forceRefetch();
4403 forceRefetchTaxonomies();
4404 },
4405 isFetching: isFetching || isFetchingTaxonomies
4406 })
4407 }, /*#__PURE__*/_react.default.createElement("div", {
4408 className: "e-kit-library__index-layout-container"
4409 }, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
4410 container: true,
4411 className: "e-kit-library__index-layout-heading"
4412 }, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
4413 item: true,
4414 className: "e-kit-library__index-layout-heading-search"
4415 }, /*#__PURE__*/_react.default.createElement(_searchInput.default
4416 // eslint-disable-next-line @wordpress/i18n-ellipsis
4417 , {
4418 placeholder: __('Search all Website Kits...', 'elementor'),
4419 value: queryParams.search,
4420 onChange: function onChange(value) {
4421 setQueryParams(function (prev) {
4422 return _objectSpread(_objectSpread({}, prev), {}, {
4423 search: value
4424 });
4425 });
4426 eventTracking('kit-library/kit-free-search', 'top_area_search', value, null, null, null, 'search');
4427 }
4428 }), isFilterActive && /*#__PURE__*/_react.default.createElement(_filterIndicationText.default, {
4429 queryParams: queryParams,
4430 resultCount: data.length || 0,
4431 onClear: clearQueryParams,
4432 onRemoveTag: unselectTaxonomy
4433 })), /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
4434 item: true,
4435 className: "e-kit-library__index-layout-heading-sort"
4436 }, /*#__PURE__*/_react.default.createElement(_sortSelect.default, {
4437 options: [{
4438 label: __('Featured', 'elementor'),
4439 value: 'featuredIndex',
4440 defaultOrder: 'asc',
4441 orderDisabled: true
4442 }, {
4443 label: __('New', 'elementor'),
4444 value: 'createdAt',
4445 defaultOrder: 'desc'
4446 }, {
4447 label: __('Popular', 'elementor'),
4448 value: 'popularityIndex',
4449 defaultOrder: 'desc'
4450 }, {
4451 label: __('Trending', 'elementor'),
4452 value: 'trendIndex',
4453 defaultOrder: 'desc'
4454 }],
4455 value: queryParams.order,
4456 onChange: function onChange(order) {
4457 return setQueryParams(function (prev) {
4458 return _objectSpread(_objectSpread({}, prev), {}, {
4459 order: order
4460 });
4461 });
4462 },
4463 onChangeSortDirection: function onChangeSortDirection(direction) {
4464 return eventTracking('kit-library/change-sort-direction', 'top_area_sort', null, direction);
4465 },
4466 onChangeSortValue: function onChangeSortValue(value) {
4467 return eventTracking('kit-library/change-sort-value', 'top_area_sort', null, null, value);
4468 },
4469 onSortSelectOpen: function onSortSelectOpen() {
4470 return eventTracking('kit-library/change-sort-type', 'top_area_sort', null, null, null, 'expand');
4471 }
4472 }))), /*#__PURE__*/_react.default.createElement(_content.default, {
4473 className: "e-kit-library__index-layout-main"
4474 }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isLoading && /*#__PURE__*/_react.default.createElement(_pageLoader.default, null), isError && /*#__PURE__*/_react.default.createElement(_errorScreen.default, {
4475 title: __('Something went wrong.', 'elementor'),
4476 description: __('Nothing to worry about, use 🔄 on the top corner to try again. If the problem continues, head over to the Help Center.', 'elementor'),
4477 button: {
4478 text: __('Learn More', 'elementor'),
4479 url: 'https://go.elementor.com/app-kit-library-error/',
4480 target: '_blank'
4481 }
4482 }), isSuccess && 0 < data.length && queryParams.ready && /*#__PURE__*/_react.default.createElement(_kitList.default, {
4483 data: data,
4484 queryParams: queryParams,
4485 source: props.path
4486 }), isSuccess && 0 === data.length && queryParams.ready && props.renderNoResultsComponent({
4487 defaultComponent: /*#__PURE__*/_react.default.createElement(_errorScreen.default, {
4488 title: __('No results matched your search.', 'elementor'),
4489 description: __('Try different keywords or ', 'elementor'),
4490 button: {
4491 text: __('Continue browsing.', 'elementor'),
4492 action: clearQueryParams,
4493 category: props.path
4494 }
4495 }),
4496 isFilterActive: isFilterActive
4497 }), /*#__PURE__*/_react.default.createElement(_envatoPromotion.default, {
4498 category: props.path
4499 })))));
4500 }
4501 Index.propTypes = {
4502 path: PropTypes.string,
4503 initialQueryParams: PropTypes.object,
4504 renderNoResultsComponent: PropTypes.func
4505 };
4506 Index.defaultProps = {
4507 initialQueryParams: {},
4508 renderNoResultsComponent: function renderNoResultsComponent(_ref5) {
4509 var defaultComponent = _ref5.defaultComponent;
4510 return defaultComponent;
4511 }
4512 };
4513
4514 /***/ }),
4515
4516 /***/ "../app/modules/kit-library/assets/js/pages/overview/overview-content-group-item.js":
4517 /*!******************************************************************************************!*\
4518 !*** ../app/modules/kit-library/assets/js/pages/overview/overview-content-group-item.js ***!
4519 \******************************************************************************************/
4520 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4521
4522 "use strict";
4523 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
4524 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4525
4526
4527 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4528 Object.defineProperty(exports, "__esModule", ({
4529 value: true
4530 }));
4531 exports["default"] = OverviewContentGroupItem;
4532 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4533 var _document = _interopRequireDefault(__webpack_require__(/*! ../../models/document */ "../app/modules/kit-library/assets/js/models/document.js"));
4534 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
4535 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
4536 function OverviewContentGroupItem(props) {
4537 var eventTracking = function eventTracking(command) {
4538 var eventType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click';
4539 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
4540 kit_name: props.kitTitle,
4541 document_type: props.groupData.id,
4542 document_name: "".concat(props.groupData.label, "-").concat(props.document.title),
4543 page_source: 'overview',
4544 element_position: 'content_overview',
4545 event_type: eventType
4546 });
4547 };
4548 return /*#__PURE__*/_react.default.createElement(_appUi.Card, null, /*#__PURE__*/_react.default.createElement(_appUi.CardHeader, null, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
4549 tag: "h3",
4550 title: props.document.title,
4551 variant: "h5",
4552 className: "eps-card__headline"
4553 }, props.document.title)), /*#__PURE__*/_react.default.createElement(_appUi.CardBody, null, /*#__PURE__*/_react.default.createElement(_appUi.CardImage, {
4554 alt: props.document.title,
4555 src: props.document.thumbnailUrl || ''
4556 }, props.document.previewUrl && /*#__PURE__*/_react.default.createElement(_appUi.CardOverlay, null, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
4557 className: "e-kit-library__kit-item-overlay-overview-button",
4558 text: __('View Demo', 'elementor'),
4559 icon: "eicon-preview-medium",
4560 url: "/kit-library/preview/".concat(props.kitId, "?document_id=").concat(props.document.id),
4561 onClick: function onClick() {
4562 return eventTracking('kit-library/view-demo-part');
4563 }
4564 })))));
4565 }
4566 OverviewContentGroupItem.propTypes = {
4567 document: PropTypes.instanceOf(_document.default).isRequired,
4568 kitId: PropTypes.string.isRequired,
4569 kitTitle: PropTypes.string.isRequired,
4570 groupData: PropTypes.shape({
4571 label: PropTypes.string,
4572 id: PropTypes.string
4573 }).isRequired
4574 };
4575
4576 /***/ }),
4577
4578 /***/ "../app/modules/kit-library/assets/js/pages/overview/overview-content-group.js":
4579 /*!*************************************************************************************!*\
4580 !*** ../app/modules/kit-library/assets/js/pages/overview/overview-content-group.js ***!
4581 \*************************************************************************************/
4582 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4583
4584 "use strict";
4585 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4586
4587
4588 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4589 Object.defineProperty(exports, "__esModule", ({
4590 value: true
4591 }));
4592 exports["default"] = OverviewContentGroup;
4593 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4594 var _contentType = _interopRequireDefault(__webpack_require__(/*! ../../models/content-type */ "../app/modules/kit-library/assets/js/models/content-type.js"));
4595 var _overviewContentGroupItem = _interopRequireDefault(__webpack_require__(/*! ./overview-content-group-item */ "../app/modules/kit-library/assets/js/pages/overview/overview-content-group-item.js"));
4596 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
4597 function OverviewContentGroup(props) {
4598 var _props$contentType;
4599 if (((_props$contentType = props.contentType) === null || _props$contentType === void 0 || (_props$contentType = _props$contentType.documents) === null || _props$contentType === void 0 ? void 0 : _props$contentType.length) <= 0) {
4600 return '';
4601 }
4602 return /*#__PURE__*/_react.default.createElement("div", {
4603 className: "e-kit-library__content-overview-group-item"
4604 }, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
4605 tag: "h3",
4606 variant: "h3",
4607 className: "e-kit-library__content-overview-group-title"
4608 }, props.contentType.label), /*#__PURE__*/_react.default.createElement(_appUi.CssGrid, {
4609 spacing: 24,
4610 colMinWidth: 250
4611 }, props.contentType.documents.map(function (document) {
4612 return /*#__PURE__*/_react.default.createElement(_overviewContentGroupItem.default, {
4613 key: document.id,
4614 document: document,
4615 kitId: props.kitId,
4616 kitTitle: props.kitTitle,
4617 groupData: props.contentType
4618 });
4619 })));
4620 }
4621 OverviewContentGroup.propTypes = {
4622 contentType: PropTypes.instanceOf(_contentType.default),
4623 kitId: PropTypes.string.isRequired,
4624 kitTitle: PropTypes.string.isRequired
4625 };
4626
4627 /***/ }),
4628
4629 /***/ "../app/modules/kit-library/assets/js/pages/overview/overview-sidebar.js":
4630 /*!*******************************************************************************!*\
4631 !*** ../app/modules/kit-library/assets/js/pages/overview/overview-sidebar.js ***!
4632 \*******************************************************************************/
4633 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4634
4635 "use strict";
4636 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
4637 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4638
4639
4640 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4641 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4642 Object.defineProperty(exports, "__esModule", ({
4643 value: true
4644 }));
4645 exports["default"] = OverviewSidebar;
4646 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4647 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4648 var _collapse = _interopRequireDefault(__webpack_require__(/*! ../../components/collapse */ "../app/modules/kit-library/assets/js/components/collapse.js"));
4649 var _contentType = _interopRequireDefault(__webpack_require__(/*! ../../models/content-type */ "../app/modules/kit-library/assets/js/models/content-type.js"));
4650 var _favoritesActions = _interopRequireDefault(__webpack_require__(/*! ../../components/favorites-actions */ "../app/modules/kit-library/assets/js/components/favorites-actions.js"));
4651 var _kit = _interopRequireDefault(__webpack_require__(/*! ../../models/kit */ "../app/modules/kit-library/assets/js/models/kit.js"));
4652 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
4653 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
4654 __webpack_require__(/*! ./overview-sidebar.scss */ "../app/modules/kit-library/assets/js/pages/overview/overview-sidebar.scss");
4655 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
4656 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
4657 function OverviewSidebar(props) {
4658 var _props$groupedKitCont;
4659 var _useState = (0, _react.useState)(true),
4660 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
4661 isInformationCollapseOpen = _useState2[0],
4662 setIsInformationCollapseOpen = _useState2[1];
4663 var eventTracking = function eventTracking(command) {
4664 var section = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
4665 var kitName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
4666 var tag = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
4667 var isCollapsed = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
4668 var eventType = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'click';
4669 var action = isCollapsed && isCollapsed ? 'collapse' : 'expand';
4670 if ('boolean' === typeof isCollapsed) {
4671 command = "kit-library/".concat(action);
4672 }
4673 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
4674 page_source: 'overview',
4675 element_location: 'app_sidebar',
4676 kit_name: kitName,
4677 tag: tag,
4678 section: section,
4679 event_type: eventType
4680 });
4681 };
4682 return /*#__PURE__*/_react.default.createElement("div", {
4683 className: "e-kit-library__item-sidebar"
4684 }, /*#__PURE__*/_react.default.createElement("div", {
4685 className: "e-kit-library__item-sidebar-header"
4686 }, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
4687 tag: "h1",
4688 variant: "h5",
4689 className: "e-kit-library__item-sidebar-header-title"
4690 }, props.model.title), /*#__PURE__*/_react.default.createElement(_favoritesActions.default, {
4691 isFavorite: props.model.isFavorite,
4692 id: props.model.id
4693 })), /*#__PURE__*/_react.default.createElement(_appUi.CardImage, {
4694 className: "e-kit-library__item-sidebar-thumbnail",
4695 alt: props.model.title,
4696 src: props.model.thumbnailUrl || ''
4697 }), /*#__PURE__*/_react.default.createElement(_appUi.Text, {
4698 className: "e-kit-library__item-sidebar-description"
4699 }, props.model.description || ''), ((_props$groupedKitCont = props.groupedKitContent) === null || _props$groupedKitCont === void 0 ? void 0 : _props$groupedKitCont.length) > 0 && props.model.documents.length > 0 && /*#__PURE__*/_react.default.createElement(_collapse.default, {
4700 isOpen: isInformationCollapseOpen,
4701 onChange: setIsInformationCollapseOpen,
4702 title: __('WHAT\'S INSIDE', 'elementor'),
4703 className: "e-kit-library__item-sidebar-collapse-info",
4704 onClick: function onClick(collapseState, title) {
4705 eventTracking(null, title, null, null, collapseState);
4706 }
4707 }, props.groupedKitContent.map(function (contentType) {
4708 if (contentType.documents <= 0) {
4709 return '';
4710 }
4711 return /*#__PURE__*/_react.default.createElement(_appUi.Text, {
4712 className: "e-kit-library__item-information-text",
4713 key: contentType.id
4714 }, contentType.documents.length, " ", contentType.label);
4715 })));
4716 }
4717 OverviewSidebar.propTypes = {
4718 model: PropTypes.instanceOf(_kit.default).isRequired,
4719 index: PropTypes.number,
4720 groupedKitContent: PropTypes.arrayOf(PropTypes.instanceOf(_contentType.default))
4721 };
4722
4723 /***/ }),
4724
4725 /***/ "../app/modules/kit-library/assets/js/pages/overview/overview.js":
4726 /*!***********************************************************************!*\
4727 !*** ../app/modules/kit-library/assets/js/pages/overview/overview.js ***!
4728 \***********************************************************************/
4729 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4730
4731 "use strict";
4732 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
4733 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4734
4735
4736 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4737 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4738 Object.defineProperty(exports, "__esModule", ({
4739 value: true
4740 }));
4741 exports["default"] = Overview;
4742 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4743 var _content = _interopRequireDefault(__webpack_require__(/*! elementor-app/layout/content */ "../app/assets/js/layout/content.js"));
4744 var _elementorLoading = _interopRequireDefault(__webpack_require__(/*! elementor-app/molecules/elementor-loading */ "../app/assets/js/molecules/elementor-loading.js"));
4745 var _itemHeader = _interopRequireDefault(__webpack_require__(/*! ../../components/item-header */ "../app/modules/kit-library/assets/js/components/item-header.js"));
4746 var _layout = _interopRequireDefault(__webpack_require__(/*! ../../components/layout */ "../app/modules/kit-library/assets/js/components/layout/index.js"));
4747 var _overviewContentGroup = _interopRequireDefault(__webpack_require__(/*! ./overview-content-group */ "../app/modules/kit-library/assets/js/pages/overview/overview-content-group.js"));
4748 var _overviewSidebar = _interopRequireDefault(__webpack_require__(/*! ./overview-sidebar */ "../app/modules/kit-library/assets/js/pages/overview/overview-sidebar.js"));
4749 var _useKit2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-kit */ "../app/modules/kit-library/assets/js/hooks/use-kit.js"));
4750 var _useKitDocumentByType2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-kit-document-by-type */ "../app/modules/kit-library/assets/js/hooks/use-kit-document-by-type.js"));
4751 var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js"));
4752 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
4753 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
4754 __webpack_require__(/*! ./overview.scss */ "../app/modules/kit-library/assets/js/pages/overview/overview.scss");
4755 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
4756 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
4757 function useHeaderButtons(id, kitName) {
4758 var navigate = (0, _router.useNavigate)();
4759 return (0, _react.useMemo)(function () {
4760 return [{
4761 id: 'view-demo',
4762 text: __('View Demo', 'elementor'),
4763 hideText: false,
4764 variant: 'outlined',
4765 color: 'secondary',
4766 size: 'sm',
4767 onClick: function onClick() {
4768 (0, _appsEventTracking.appsEventTrackingDispatch)('kit-library/view-demo-page', {
4769 kit_name: kitName,
4770 page_source: 'overview',
4771 element_position: 'app_header',
4772 view_type_clicked: 'demo'
4773 });
4774 navigate("/kit-library/preview/".concat(id));
4775 },
4776 includeHeaderBtnClass: false
4777 }];
4778 }, [id]);
4779 }
4780 function Overview(props) {
4781 var _useKit = (0, _useKit2.default)(props.id),
4782 kit = _useKit.data,
4783 isError = _useKit.isError,
4784 isLoading = _useKit.isLoading;
4785 var _useKitDocumentByType = (0, _useKitDocumentByType2.default)(kit),
4786 documentsByType = _useKitDocumentByType.data;
4787 var headerButtons = useHeaderButtons(props.id, kit && kit.title);
4788 (0, _usePageTitle.default)({
4789 title: kit ? "".concat(__('Kit Library', 'elementor'), " | ").concat(kit.title) // eslint-disable-next-line @wordpress/i18n-ellipsis
4790 : __('Loading...', 'elementor')
4791 });
4792 if (isError) {
4793 // Will be caught by the App error boundary.
4794 throw new Error();
4795 }
4796 if (isLoading) {
4797 return /*#__PURE__*/_react.default.createElement(_elementorLoading.default, null);
4798 }
4799 return /*#__PURE__*/_react.default.createElement(_layout.default, {
4800 header: /*#__PURE__*/_react.default.createElement(_itemHeader.default, {
4801 model: kit,
4802 buttons: headerButtons,
4803 pageId: "overview"
4804 }),
4805 sidebar: /*#__PURE__*/_react.default.createElement(_overviewSidebar.default, {
4806 model: kit,
4807 groupedKitContent: documentsByType
4808 })
4809 }, documentsByType.length > 0 && /*#__PURE__*/_react.default.createElement(_content.default, null, documentsByType.map(function (contentType) {
4810 return /*#__PURE__*/_react.default.createElement(_overviewContentGroup.default, {
4811 key: contentType.id,
4812 contentType: contentType,
4813 kitId: props.id,
4814 kitTitle: kit.title
4815 });
4816 })));
4817 }
4818 Overview.propTypes = {
4819 id: PropTypes.string
4820 };
4821
4822 /***/ }),
4823
4824 /***/ "../app/modules/kit-library/assets/js/pages/preview/preview-iframe.js":
4825 /*!****************************************************************************!*\
4826 !*** ../app/modules/kit-library/assets/js/pages/preview/preview-iframe.js ***!
4827 \****************************************************************************/
4828 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4829
4830 "use strict";
4831 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4832
4833
4834 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4835 Object.defineProperty(exports, "__esModule", ({
4836 value: true
4837 }));
4838 exports.PreviewIframe = PreviewIframe;
4839 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4840 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
4841 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
4842 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
4843 /* eslint-disable jsx-a11y/iframe-has-title */
4844
4845 function PreviewIframe(props) {
4846 var ref = (0, _react.useRef)();
4847 (0, _react.useEffect)(function () {
4848 if (!ref.current) {
4849 return;
4850 }
4851 var listener = function listener() {
4852 return props.onLoaded();
4853 };
4854 ref.current.addEventListener('load', listener);
4855 return function () {
4856 return ref.current && ref.current.removeEventListener('load', listener);
4857 };
4858 }, [ref.current, props.previewUrl]);
4859 return /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
4860 container: true,
4861 justify: "center",
4862 className: "e-kit-library__preview-iframe-container"
4863 }, /*#__PURE__*/_react.default.createElement("iframe", {
4864 className: "e-kit-library__preview-iframe",
4865 src: props.previewUrl,
4866 style: props.style,
4867 ref: ref
4868 }));
4869 }
4870 PreviewIframe.propTypes = {
4871 previewUrl: PropTypes.string.isRequired,
4872 style: PropTypes.object,
4873 onLoaded: PropTypes.func
4874 };
4875 PreviewIframe.defaultProps = {
4876 style: {
4877 width: '100%',
4878 height: '100%'
4879 },
4880 onLoaded: function onLoaded() {}
4881 };
4882
4883 /***/ }),
4884
4885 /***/ "../app/modules/kit-library/assets/js/pages/preview/preview-responsive-controls.js":
4886 /*!*****************************************************************************************!*\
4887 !*** ../app/modules/kit-library/assets/js/pages/preview/preview-responsive-controls.js ***!
4888 \*****************************************************************************************/
4889 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4890
4891 "use strict";
4892 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4893
4894
4895 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4896 Object.defineProperty(exports, "__esModule", ({
4897 value: true
4898 }));
4899 exports["default"] = PreviewResponsiveControls;
4900 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4901 var _preview = __webpack_require__(/*! ./preview */ "../app/modules/kit-library/assets/js/pages/preview/preview.js");
4902 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
4903 __webpack_require__(/*! ./preview-responsive-controls.scss */ "../app/modules/kit-library/assets/js/pages/preview/preview-responsive-controls.scss");
4904 function PreviewResponsiveControls(props) {
4905 return /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
4906 container: true,
4907 alignItems: "center",
4908 justify: "center",
4909 className: "e-kit-library__preview-responsive-controls"
4910 }, _preview.breakpoints.map(function (_ref) {
4911 var label = _ref.label,
4912 value = _ref.value;
4913 var className = 'e-kit-library__preview-responsive-controls-item';
4914 if (props.active === value) {
4915 className += ' e-kit-library__preview-responsive-controls-item--active';
4916 }
4917 return /*#__PURE__*/_react.default.createElement(_appUi.Button, {
4918 key: value,
4919 text: label,
4920 hideText: true,
4921 className: className,
4922 icon: "eicon-device-".concat(value),
4923 onClick: function onClick() {
4924 return props.onChange(value);
4925 }
4926 });
4927 }));
4928 }
4929 PreviewResponsiveControls.propTypes = {
4930 active: PropTypes.string,
4931 onChange: PropTypes.func.isRequired
4932 };
4933 PreviewResponsiveControls.defaultProps = {
4934 active: 'desktop'
4935 };
4936
4937 /***/ }),
4938
4939 /***/ "../app/modules/kit-library/assets/js/pages/preview/preview.js":
4940 /*!*********************************************************************!*\
4941 !*** ../app/modules/kit-library/assets/js/pages/preview/preview.js ***!
4942 \*********************************************************************/
4943 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4944
4945 "use strict";
4946 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
4947 /* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4948
4949
4950 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4951 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
4952 Object.defineProperty(exports, "__esModule", ({
4953 value: true
4954 }));
4955 exports.breakpoints = void 0;
4956 exports["default"] = Preview;
4957 var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
4958 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
4959 var _elementorLoading = _interopRequireDefault(__webpack_require__(/*! elementor-app/molecules/elementor-loading */ "../app/assets/js/molecules/elementor-loading.js"));
4960 var _itemHeader = _interopRequireDefault(__webpack_require__(/*! ../../components/item-header */ "../app/modules/kit-library/assets/js/components/item-header.js"));
4961 var _layout = _interopRequireDefault(__webpack_require__(/*! ../../components/layout */ "../app/modules/kit-library/assets/js/components/layout/index.js"));
4962 var _pageLoader = _interopRequireDefault(__webpack_require__(/*! ../../components/page-loader */ "../app/modules/kit-library/assets/js/components/page-loader.js"));
4963 var _previewResponsiveControls = _interopRequireDefault(__webpack_require__(/*! ./preview-responsive-controls */ "../app/modules/kit-library/assets/js/pages/preview/preview-responsive-controls.js"));
4964 var _useKit2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-kit */ "../app/modules/kit-library/assets/js/hooks/use-kit.js"));
4965 var _usePageTitle = _interopRequireDefault(__webpack_require__(/*! elementor-app/hooks/use-page-title */ "../app/assets/js/hooks/use-page-title.js"));
4966 var _previewIframe = __webpack_require__(/*! ./preview-iframe */ "../app/modules/kit-library/assets/js/pages/preview/preview-iframe.js");
4967 var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");
4968 var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
4969 __webpack_require__(/*! ./preview.scss */ "../app/modules/kit-library/assets/js/pages/preview/preview.scss");
4970 function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
4971 function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
4972 var breakpoints = exports.breakpoints = [{
4973 value: 'desktop',
4974 label: __('Desktop', 'elementor'),
4975 style: {
4976 width: '100%',
4977 height: '100%'
4978 }
4979 }, {
4980 value: 'tablet',
4981 label: __('Tablet', 'elementor'),
4982 style: {
4983 marginBlockStart: '30px',
4984 marginBlockEnd: '30px',
4985 width: '768px',
4986 height: '1024px'
4987 }
4988 }, {
4989 value: 'mobile',
4990 label: __('Mobile', 'elementor'),
4991 style: {
4992 marginBlockStart: '30px',
4993 marginBlockEnd: '30px',
4994 width: '375px',
4995 height: '667px'
4996 }
4997 }];
4998 function useHeaderButtons(id, kitName) {
4999 var navigate = (0, _router.useNavigate)();
5000 var eventTracking = function eventTracking(command, viewTypeClicked) {
5001 var eventType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'click';
5002 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
5003 kit_name: kitName,
5004 element_position: 'app_header',
5005 page_source: 'view demo',
5006 view_type_clicked: viewTypeClicked,
5007 event_type: eventType
5008 });
5009 };
5010 return (0, _react.useMemo)(function () {
5011 return [{
5012 id: 'overview',
5013 text: __('Overview', 'elementor'),
5014 hideText: false,
5015 variant: 'outlined',
5016 color: 'secondary',
5017 size: 'sm',
5018 onClick: function onClick() {
5019 eventTracking('kit-library/view-overview-page', 'overview');
5020 navigate("/kit-library/overview/".concat(id));
5021 },
5022 includeHeaderBtnClass: false
5023 }];
5024 }, [id]);
5025 }
5026
5027 /**
5028 * Get preview url.
5029 *
5030 * @param {*} data
5031 * @return {null|string} Preview URL
5032 */
5033 function usePreviewUrl(data) {
5034 var location = (0, _router.useLocation)();
5035 return (0, _react.useMemo)(function () {
5036 var _location$pathname$sp, _data$documents$find;
5037 if (!data) {
5038 return null;
5039 }
5040 var documentId = new URLSearchParams((_location$pathname$sp = location.pathname.split('?')) === null || _location$pathname$sp === void 0 ? void 0 : _location$pathname$sp[1]).get('document_id'),
5041 utm = '?utm_source=kit-library&utm_medium=wp-dash&utm_campaign=preview',
5042 previewUrl = data.previewUrl ? data.previewUrl + utm : data.previewUrl;
5043 if (!documentId) {
5044 return previewUrl;
5045 }
5046 var documentPreviewUrl = ((_data$documents$find = data.documents.find(function (item) {
5047 return item.id === parseInt(documentId);
5048 })) === null || _data$documents$find === void 0 ? void 0 : _data$documents$find.previewUrl) || previewUrl;
5049 return documentPreviewUrl ? documentPreviewUrl + utm : documentPreviewUrl;
5050 }, [location, data]);
5051 }
5052 function Preview(props) {
5053 var _useKit = (0, _useKit2.default)(props.id),
5054 data = _useKit.data,
5055 isError = _useKit.isError,
5056 isLoading = _useKit.isLoading;
5057 var _useState = (0, _react.useState)(true),
5058 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
5059 isIframeLoading = _useState2[0],
5060 setIsIframeLoading = _useState2[1];
5061 var headersButtons = useHeaderButtons(props.id, data && data.title);
5062 var previewUrl = usePreviewUrl(data);
5063 var _useState3 = (0, _react.useState)('desktop'),
5064 _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
5065 activeDevice = _useState4[0],
5066 setActiveDevice = _useState4[1];
5067 var iframeStyle = (0, _react.useMemo)(function () {
5068 return breakpoints.find(function (_ref) {
5069 var value = _ref.value;
5070 return value === activeDevice;
5071 }).style;
5072 }, [activeDevice]);
5073 var eventTracking = function eventTracking(command, layout) {
5074 var elementPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
5075 var eventType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'click';
5076 (0, _appsEventTracking.appsEventTrackingDispatch)(command, {
5077 kit_name: data.title,
5078 page_source: 'view demo',
5079 layout: layout,
5080 element_position: elementPosition,
5081 event_type: eventType
5082 });
5083 };
5084 var _onChange = function onChange(device) {
5085 setActiveDevice(device);
5086 eventTracking('kit-library/responsive-controls', device, 'app_header');
5087 };
5088 (0, _usePageTitle.default)({
5089 title: data ? "".concat(__('Kit Library', 'elementor'), " | ").concat(data.title) // eslint-disable-next-line @wordpress/i18n-ellipsis
5090 : __('Loading...', 'elementor')
5091 });
5092 if (isError) {
5093 // Will be caught by the App error boundary.
5094 throw new Error();
5095 }
5096 if (isLoading) {
5097 return /*#__PURE__*/_react.default.createElement(_elementorLoading.default, null);
5098 }
5099 return /*#__PURE__*/_react.default.createElement(_layout.default, {
5100 header: /*#__PURE__*/_react.default.createElement(_itemHeader.default, {
5101 model: data,
5102 buttons: headersButtons,
5103 centerColumn: /*#__PURE__*/_react.default.createElement(_previewResponsiveControls.default, {
5104 active: activeDevice,
5105 onChange: function onChange(device) {
5106 return _onChange(device);
5107 },
5108 kitName: data.title
5109 }),
5110 pageId: "demo"
5111 })
5112 }, isIframeLoading && /*#__PURE__*/_react.default.createElement(_pageLoader.default, {
5113 className: "e-kit-library__preview-loader"
5114 }), previewUrl && /*#__PURE__*/_react.default.createElement(_previewIframe.PreviewIframe, {
5115 previewUrl: previewUrl,
5116 style: iframeStyle,
5117 onLoaded: function onLoaded() {
5118 return setIsIframeLoading(false);
5119 }
5120 }));
5121 }
5122 Preview.propTypes = {
5123 id: PropTypes.string
5124 };
5125
5126 /***/ }),
5127
5128 /***/ "../app/modules/kit-library/assets/js/utils.js":
5129 /*!*****************************************************!*\
5130 !*** ../app/modules/kit-library/assets/js/utils.js ***!
5131 \*****************************************************/
5132 /***/ ((__unused_webpack_module, exports) => {
5133
5134 "use strict";
5135
5136
5137 Object.defineProperty(exports, "__esModule", ({
5138 value: true
5139 }));
5140 exports.pipe = pipe;
5141 /**
5142 * A util function to transform data throw transform functions
5143 *
5144 * @param {Array<Function>} functions
5145 * @return {function(*=, ...[*]): *} function
5146 */
5147 function pipe() {
5148 for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {
5149 functions[_key] = arguments[_key];
5150 }
5151 return function (value) {
5152 for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
5153 args[_key2 - 1] = arguments[_key2];
5154 }
5155 return functions.reduce(function (currentValue, currentFunction) {
5156 return currentFunction.apply(void 0, [currentValue].concat(args));
5157 }, value);
5158 };
5159 }
5160
5161 /***/ }),
5162
5163 /***/ "../app/modules/onboarding/assets/js/components/new-page-kit-list-item.js":
5164 /*!********************************************************************************!*\
5165 !*** ../app/modules/onboarding/assets/js/components/new-page-kit-list-item.js ***!
5166 \********************************************************************************/
5167 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5168
5169 "use strict";
5170 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
5171
5172
5173 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
5174 Object.defineProperty(exports, "__esModule", ({
5175 value: true
5176 }));
5177 exports["default"] = void 0;
5178 var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
5179 var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");
5180 __webpack_require__(/*! ../../../../kit-library/assets/js/components/kit-list-item.scss */ "../app/modules/kit-library/assets/js/components/kit-list-item.scss");
5181 var NewPageKitListItem = function NewPageKitListItem() {
5182 return /*#__PURE__*/_react.default.createElement(_appUi.Card, {
5183 className: "e-onboarding__kit-library-card e-kit-library__kit-item"
5184 }, /*#__PURE__*/_react.default.createElement(_appUi.CardHeader, null, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
5185 tag: "h3",
5186 title: __('Blank Canvas', 'elementor'),
5187 variant: "h5",
5188 className: "eps-card__headline"
5189 }, __('Blank Canvas', 'elementor'))), /*#__PURE__*/_react.default.createElement(_appUi.CardBody, null, /*#__PURE__*/_react.default.createElement(_appUi.CardImage, {
5190 alt: __('Blank Canvas', 'elementor'),
5191 src: elementorCommon.config.urls.assets + 'images/app/onboarding/Blank_Preview.jpg' || 0
5192 }, /*#__PURE__*/_react.default.createElement(_appUi.CardOverlay, null, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
5193 container: true,
5194 direction: "column",
5195 className: "e-kit-library__kit-item-overlay"
5196 }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
5197 className: "e-kit-library__kit-item-overlay-overview-button",
5198 text: __('Create New Elementor Page', 'elementor'),
5199 icon: "eicon-single-page",
5200 url: elementorAppConfig.onboarding.urls.createNewPage
5201 }))))));
5202 };
5203 var _default = exports["default"] = _react.default.memo(NewPageKitListItem);
5204
5205 /***/ }),
5206
5207 /***/ "../assets/dev/js/utils/tiers.js":
5208 /*!***************************************!*\
5209 !*** ../assets/dev/js/utils/tiers.js ***!
5210 \***************************************/
5211 /***/ ((__unused_webpack_module, exports) => {
5212
5213 "use strict";
5214
5215
5216 Object.defineProperty(exports, "__esModule", ({
5217 value: true
5218 }));
5219 exports.isTierAtLeast = exports.TIERS_PRIORITY = exports.TIERS = void 0;
5220 var TIERS_PRIORITY = exports.TIERS_PRIORITY = Object.freeze(['free', 'essential', 'essential-oct2023', 'advanced', 'expert', 'agency']);
5221
5222 /**
5223 * @type {Readonly<{
5224 * free: string;
5225 * essential: string;
5226 * 'essential-oct2023': string;
5227 * advanced: string;
5228 * expert: string;
5229 * agency: string;
5230 * }>}
5231 */
5232 var TIERS = exports.TIERS = Object.freeze(TIERS_PRIORITY.reduce(function (acc, tier) {
5233 acc[tier] = tier;
5234 return acc;
5235 }, {}));
5236 var isTierAtLeast = exports.isTierAtLeast = function isTierAtLeast(currentTier, expectedTier) {
5237 var currentTierIndex = TIERS_PRIORITY.indexOf(currentTier);
5238 var expectedTierIndex = TIERS_PRIORITY.indexOf(expectedTier);
5239 if (-1 === currentTierIndex || -1 === expectedTierIndex) {
5240 return false;
5241 }
5242 return currentTierIndex >= expectedTierIndex;
5243 };
5244
5245 /***/ })
5246
5247 }]);
5248 //# sourceMappingURL=kit-library.208fd2e8cdac52e66fcb.bundle.js.map