PluginProbe
Elementor Website Builder – more than just a page builder / 3.26.1
Elementor Website Builder – more than just a page builder v3.26.1
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.b0f0ab89c95fe1f6fde3.bundle.js

kit-library.b0f0ab89c95fe1f6fde3.bundle.js in Elementor Website Builder – more than just a page builder 3.26.1, at assets/js/kit-library.b0f0ab89c95fe1f6fde3.bundle.js

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