PluginProbe ʕ •ᴥ•ʔ
Elementor Website Builder – more than just a page builder / 3.25.0-beta2
Elementor Website Builder – more than just a page builder v3.25.0-beta2
4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.22.0-dev1 4.0.0-beta3 3.22.0-dev2 4.0.0-beta4 3.22.0-dev3 4.0.0-beta5 3.22.0-dev4 4.0.0-dev1 3.22.0-dev5 4.0.0-dev2 3.22.0-dev6 4.0.0-dev3 3.22.1 4.0.0-dev4 3.22.2 4.0.0-dev5 3.22.3 4.0.1 3.23.0 4.0.2 3.23.0-beta1 3.23.0-beta2 3.23.0-beta3 3.23.0-beta4 3.23.0-beta5 3.23.0-beta6 3.23.0-dev1 3.23.0-dev2 3.23.0-dev3 3.23.0-dev4 3.23.0-dev5 3.23.0-dev6 3.23.1 3.23.2 3.23.3 3.23.4 3.24.0 3.24.0-beta1 3.24.0-beta2 3.24.0-beta3 3.24.0-dev1 3.24.0-dev2 3.24.0-dev3 3.24.1 3.24.2 3.24.3 3.24.4 3.24.5 3.24.6 3.24.7 3.24.8 3.25.0 3.25.0-beta1 3.25.0-beta2 3.25.0-beta3 3.25.0-dev1 3.25.0-dev2 3.25.0-dev3 3.25.1 3.25.10 3.25.11 3.25.2 3.25.3 3.25.4 3.25.5 3.25.6 3.25.7 3.25.8 3.25.9 3.26.0 3.26.0-beta1 3.26.0-beta2 3.26.0-beta3 3.26.0-beta4 3.26.0-beta5 3.26.0-dev1 3.26.0-dev2 3.26.0-dev3 3.26.0-dev4 3.26.0-dev5 3.26.1 3.26.2 3.26.3 3.26.4 3.26.5 3.27.0 3.27.0-beta1 3.27.0-beta2 3.27.0-dev1 3.27.0-dev2 3.27.1 3.27.2 3.27.3 3.27.4 3.27.5 3.27.6 3.27.7 3.28.0 3.28.0-beta1 3.28.0-beta2 3.28.0-beta3 3.28.0-dev1 3.28.0-dev2 3.28.0-dev3 3.28.1 3.28.2 3.28.3 3.28.4 3.29.0 3.29.0-beta1 trunk 3.29.0-beta2 3.0.0 3.29.0-beta3 3.0.1 3.29.0-beta4 3.0.10 3.29.0-dev1 3.0.11 3.29.0-dev2 3.0.12 3.29.0-dev3 3.0.13 3.29.0-dev4 3.0.14 3.29.1 3.0.15 3.29.2 3.0.16 3.3.0 3.0.2 3.3.1 3.0.3 3.30.0 3.0.4 3.30.0-beta1 3.0.5 3.30.0-beta2 3.0.6 3.30.0-beta3 3.0.7 3.30.0-dev1 3.0.8 3.30.0-dev2 3.0.8.1 3.30.0-dev3 3.0.9 3.30.1 3.1.0 3.30.2 3.1.0-beta1 3.30.3 3.1.0-beta2 3.30.4 3.1.0-beta3 3.31.0 3.1.0-beta4 3.31.0-beta1 3.1.0-dev1 3.31.0-beta2 3.1.0-dev2 3.31.0-dev1 3.1.0-dev3 3.31.0-dev2 3.1.1 3.31.1 3.1.2 3.31.2 3.1.3 3.31.3 3.1.4 3.31.4 3.10.0 3.31.5 3.10.0-dev1 3.32.0 3.10.1 3.32.0-beta1 3.10.2 3.32.0-beta2 3.11.0 3.32.0-beta3 3.11.0-beta1 3.32.0-dev1 3.11.0-beta2 3.32.0-dev2 3.11.0-beta3 3.32.0-dev3 3.11.0-dev1 3.32.1 3.11.0-dev2 3.32.2 3.11.0-dev3 3.32.3 3.11.1 3.32.4 3.11.2 3.32.5 3.11.3 3.33.0 3.11.4 3.33.0-beta1 3.11.5 3.33.0-beta2 3.12.0 3.33.0-beta3 3.12.1 3.33.0-beta4 3.12.2 3.33.0-dev1 3.13.0 3.33.0-dev2 3.13.0-beta1 3.33.0-dev3 3.13.0-beta2 3.33.0-dev4 3.13.0-beta3 3.33.1 3.13.0-dev3 3.33.2 3.13.0-dev4 3.33.3 3.13.1 3.33.4 3.13.2 3.33.5 3.13.3 3.33.6 3.13.4 3.34.0 3.14.0 3.34.0-beta1 3.14.0-beta1 3.34.0-beta2 3.14.0-beta2 3.34.0-beta3 3.14.0-beta3 3.34.0-dev1 3.14.0-beta4 3.34.0-dev2 3.14.0-beta5 3.34.1 3.14.1 3.34.2 3.15.0 3.34.3 3.15.1 3.34.4 3.15.2 3.35.0 3.15.3 3.35.0-beta1 3.16.0 3.35.0-beta2 3.16.0-beta3 3.35.0-beta3 3.16.0-beta4 3.35.0-beta4 3.16.0-dev1 3.35.0-dev1 3.16.0-dev2 3.35.0-dev2 3.16.1 3.35.0-dev3 3.16.2 3.35.0-dev4 3.16.3 3.35.1 3.16.4 3.35.2 3.16.5 3.35.3 3.16.6 3.35.4 3.17.0 3.35.5 3.17.0-dev2 3.35.6 3.17.0-dev3 3.35.7 3.17.0-dev4 3.35.8 3.17.1 3.35.9 3.17.2 3.4.0 3.17.3 3.4.0-dev7 3.18.0 3.4.0-dev8 3.18.0-beta1 3.4.0-dev9 3.18.0-beta2 3.4.1 3.18.0-beta3 3.4.2 3.18.0-beta4 3.4.3 3.18.0-dev1 3.4.4 3.18.1 3.4.5 3.18.2 3.4.6 3.18.3 3.4.7 3.19.0 3.4.8 3.19.0-beta1 3.5.0 3.19.0-beta2 3.5.0-beta1 3.19.0-beta3 3.5.0-beta2 3.19.0-beta4 3.5.0-beta3 3.19.0-beta5 3.5.0-beta4 3.19.0-beta6 3.5.0-beta5 3.19.0-dev1 3.5.0-beta7 3.19.0-dev2 3.5.0-beta8 3.19.0-dev3 3.5.0-dev8 3.19.0-dev4 3.5.0-dev9 3.19.0-dev5 3.5.1 3.19.0-dev6 3.5.2 3.19.1 3.5.3 3.19.2 3.5.4 3.19.3 3.5.5 3.19.4 3.5.6 3.2.0 3.6.0 3.2.1 3.6.0-beta1 3.2.2 3.6.0-beta2 3.2.3 3.6.0-beta3 3.2.4 3.6.0-beta4 3.2.5 3.6.0-beta5 3.20.0 3.6.0-dev1 3.20.0-beta1 3.6.0-dev10 3.20.0-beta2 3.6.1 3.20.0-beta3 3.6.2 3.20.0-beta4 3.6.3 3.20.0-dev1 3.6.4 3.20.0-dev2 3.6.5 3.20.0-dev3 3.6.6 3.20.0-dev4 3.6.7 3.20.1 3.6.8 3.20.2 3.7.0 3.20.3 3.7.0-beta1 3.20.4 3.7.0-beta2 3.21.0 3.7.0-beta3 3.21.0-beta1 3.7.0-beta4 3.21.0-beta2 3.7.0-dev1 3.21.0-beta3 3.7.1 3.21.0-dev1 3.7.2 3.21.0-dev2 3.7.3 3.21.0-dev3 3.7.4 3.21.1 3.7.5 3.21.2 3.7.6 3.21.3 3.7.7 3.21.4 3.7.8 3.21.5 3.8.0 3.21.6 3.8.0-beta1 3.21.7 3.8.0-beta2 3.21.8 3.8.0-beta3 3.22.0 3.8.1 3.22.0-beta1 3.9.0 3.22.0-beta2 3.9.1 3.22.0-beta3 3.9.2 3.22.0-beta4 4.0.0 3.22.0-beta5 4.0.0-beta1 3.22.0-beta6 4.0.0-beta2
elementor / assets / js / lightbox.2c9ae19597fcd2a76c3a.bundle.js
elementor / assets / js Last commit date
packages 1 year ago 152486453d0e39071cdb.bundle.js 1 year ago 294b4bf3066815c5927f.bundle.min.js 1 year ago 2f08057553c95b827d30.bundle.min.js 1 year ago 4748df03726015eef04f.bundle.min.js 1 year ago 49d9a23b08ff2c138b03.bundle.min.js 1 year ago 49d9a23b08ff2c138b03.bundle.min.js.LICENSE.txt 1 year ago 7b18c3f2f2bfffda289f.bundle.js 1 year ago 9c42cff515a6191fddaf.bundle.min.js 1 year ago a730ee9caa710006b307.bundle.js 1 year ago accordion.8799675460c73eb48972.bundle.min.js 1 year ago accordion.c16b88b2e8a0c50189bc.bundle.js 1 year ago admin-feedback.js 1 year ago admin-feedback.min.js 1 year ago admin-modules.js 1 year ago admin-modules.min.js 1 year ago admin-modules.min.js.LICENSE.txt 3 years ago admin-notifications.js 1 year ago admin-notifications.min.js 1 year ago admin-notifications.min.js.LICENSE.txt 1 year ago admin-top-bar.js 1 year ago admin-top-bar.min.js 1 year ago admin.js 1 year ago admin.min.js 1 year ago admin.min.js.LICENSE.txt 3 years ago ai-admin.js 1 year ago ai-admin.min.js 1 year ago ai-admin.min.js.LICENSE.txt 2 years ago ai-gutenberg.js 1 year ago ai-gutenberg.min.js 1 year ago ai-gutenberg.min.js.LICENSE.txt 2 years ago ai-layout.js 1 year ago ai-layout.min.js 1 year ago ai-layout.min.js.LICENSE.txt 2 years ago ai-media-library.js 1 year ago ai-media-library.min.js 1 year ago ai-media-library.min.js.LICENSE.txt 2 years ago ai.js 1 year ago ai.min.js 1 year ago ai.min.js.LICENSE.txt 1 year ago alert.c3c6a3fdf4745bd26b7f.bundle.js 1 year ago alert.cbc2a0fee74ee3ed0419.bundle.min.js 1 year ago announcements-app.js 1 year ago announcements-app.min.js 1 year ago announcements-app.min.js.LICENSE.txt 3 years ago app-loader.js 1 year ago app-loader.min.js 1 year ago app-packages.js 1 year ago app-packages.min.js 1 year ago app-packages.min.js.LICENSE.txt 3 years ago app.js 1 year ago app.min.js 1 year ago app.min.js.LICENSE.txt 3 years ago atomic-widgets-editor.js 1 year ago atomic-widgets-editor.min.js 1 year ago b7931adecb98651a09c7.bundle.min.js 1 year ago bdd4030576f6a94a4f0d.bundle.js 1 year ago beta-tester.js 1 year ago beta-tester.min.js 1 year ago c96bb3445f3bc9de7d26.bundle.min.js 1 year ago checklist.js 1 year ago checklist.min.js 1 year ago checklist.min.js.LICENSE.txt 1 year ago common-modules.js 1 year ago common-modules.min.js 1 year ago common.js 1 year ago common.min.js 1 year ago common.min.js.LICENSE.txt 3 years ago contact-buttons.31aad77620f461830ce9.bundle.min.js 1 year ago contact-buttons.a5e2cc7274ba4c94eb66.bundle.js 1 year ago container-converter.js 1 year ago container-converter.min.js 1 year ago container.a7f0a15dfa05df34e1f7.bundle.js 1 year ago container.c65a2a923085e1120e75.bundle.min.js 1 year ago counter.02cef29c589e742d4c8c.bundle.min.js 1 year ago counter.3f74a246dff765f39aea.bundle.js 1 year ago d91e4d7f57d57af2aab9.bundle.min.js 1 year ago d9299811bc70ddb82fbf.bundle.js 1 year ago dev-tools.js 1 year ago dev-tools.min.js 1 year ago e-home-screen.js 1 year ago e-home-screen.min.js 1 year ago e-wc-product-editor.js 1 year ago e-wc-product-editor.min.js 1 year ago e-wc-product-editor.min.js.LICENSE.txt 1 year ago e3f753621bf9be55ec4d.bundle.js 1 year ago editor-document.js 1 year ago editor-document.min.js 1 year ago editor-environment-v2.js 1 year ago editor-environment-v2.min.js 1 year ago editor-loader-v1.js 1 year ago editor-loader-v1.min.js 1 year ago editor-loader-v2.js 1 year ago editor-loader-v2.min.js 1 year ago editor-modules.js 1 year ago editor-modules.min.js 1 year ago editor-modules.min.js.LICENSE.txt 3 years ago editor-notifications.js 1 year ago editor-notifications.min.js 1 year ago editor-notifications.min.js.LICENSE.txt 1 year ago editor.js 1 year ago editor.min.js 1 year ago editor.min.js.LICENSE.txt 1 year ago element-manager-admin.js 1 year ago element-manager-admin.min.js 1 year ago element-manager-admin.min.js.LICENSE.txt 2 years ago elementor-admin-bar.js 1 year ago elementor-admin-bar.min.js 1 year ago f634673e5824ceb13f3d.bundle.js 1 year ago fa0cbd4c7b6a8ad83224.bundle.js 1 year ago fd6a00ae23a1bc2c6190.bundle.js 1 year ago floating-bars.1ebb83f158244b35bda6.bundle.js 1 year ago floating-bars.e4547b87bc6fb09381ca.bundle.min.js 1 year ago floating-elements-modal.js 1 year ago floating-elements-modal.min.js 1 year ago frontend-modules.js 1 year ago frontend-modules.min.js 1 year ago frontend.js 1 year ago frontend.min.js 1 year ago gutenberg.js 1 year ago gutenberg.min.js 1 year ago image-carousel.4455c6362492d9067512.bundle.min.js 1 year ago image-carousel.9399f19d95d7300cbc2e.bundle.js 1 year ago import-export-admin.js 1 year ago import-export-admin.min.js 1 year ago kit-elements-defaults-editor.js 1 year ago kit-elements-defaults-editor.min.js 1 year ago kit-elements-defaults-editor.min.js.LICENSE.txt 3 years ago kit-library.1f8d31888dc9d19dd031.bundle.min.js 1 year ago kit-library.ac1a4cd5deae5526ce49.bundle.js 1 year ago lightbox.01a419d1fcdd47a75a77.bundle.min.js 1 year ago lightbox.2c9ae19597fcd2a76c3a.bundle.js 1 year ago media-hints.js 1 year ago media-hints.min.js 1 year ago nested-accordion.82e5c4e9017e457a5f2e.bundle.js 1 year ago nested-accordion.c3b109b714293a16bd95.bundle.min.js 1 year ago nested-accordion.js 1 year ago nested-accordion.min.js 1 year ago nested-accordion.min.js.LICENSE.txt 3 years ago nested-elements.js 1 year ago nested-elements.min.js 1 year ago nested-tabs.js 1 year ago nested-tabs.min.js 1 year ago nested-tabs.min.js.LICENSE.txt 3 years ago nested-title-keyboard-handler.0b608656da2be746fb80.bundle.min.js 1 year ago nested-title-keyboard-handler.92a73d7a8a75bcb8cd67.bundle.js 1 year ago new-template.js 1 year ago new-template.min.js 1 year ago notes.js 1 year ago notes.min.js 1 year ago onboarding.4a4002ff7ea58bfa166e.bundle.min.js 1 year ago onboarding.5ceee1b219b66e943cb0.bundle.js 1 year ago progress.6d15c16f0f5c4792940f.bundle.js 1 year ago progress.985f012a6336ab21cb44.bundle.min.js 1 year ago responsive-bar.js 1 year ago responsive-bar.min.js 1 year ago styleguide-app-initiator.js 1 year ago styleguide-app-initiator.min.js 1 year ago styleguide-app-initiator.min.js.LICENSE.txt 3 years ago styleguide.js 1 year ago styleguide.min.js 1 year ago tabs.520bc2ed4560c561029e.bundle.js 1 year ago tabs.c2af5be7f9cb3cdcf3d5.bundle.min.js 1 year ago text-editor.2c35aafbe5bf0e127950.bundle.min.js 1 year ago text-editor.2f2f7e0ea1e16387a004.bundle.js 1 year ago text-path.39fb59e43970222f5a3e.bundle.min.js 1 year ago text-path.39fb59e43970222f5a3e.bundle.min.js.LICENSE.txt 1 year ago text-path.a20877e832db83423958.bundle.js 1 year ago toggle.31881477c45ff5cf9d4d.bundle.min.js 1 year ago toggle.d79746a764407a0828ee.bundle.js 1 year ago video.78c625e89ab767d621c5.bundle.min.js 1 year ago video.817bd6a65a1542503aac.bundle.js 1 year ago web-cli.js 1 year ago web-cli.min.js 1 year ago web-cli.min.js.LICENSE.txt 3 years ago webpack.runtime.js 1 year ago webpack.runtime.min.js 1 year ago wp-audio.75f0ced143febb8cd31a.bundle.min.js 1 year ago wp-audio.b8efdc046bc9df72a075.bundle.js 1 year ago
lightbox.2c9ae19597fcd2a76c3a.bundle.js
1394 lines
1 /*! elementor - v3.25.0 - 16-10-2024 */
2 (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["lightbox"],{
3
4 /***/ "../assets/dev/js/frontend/utils/icons/e-icons.js":
5 /*!********************************************************!*\
6 !*** ../assets/dev/js/frontend/utils/icons/e-icons.js ***!
7 \********************************************************/
8 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9
10 "use strict";
11
12
13 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
14 Object.defineProperty(exports, "__esModule", ({
15 value: true
16 }));
17 exports.zoomOutBold = exports.zoomInBold = exports.twitter = exports.shareArrow = exports.pinterest = exports.loading = exports.frameMinimize = exports.frameExpand = exports.facebook = exports.downloadBold = exports.close = exports.chevronRight = exports.chevronLeft = void 0;
18 var _manager = _interopRequireDefault(__webpack_require__(/*! ./manager */ "../assets/dev/js/frontend/utils/icons/manager.js"));
19 // This file is automatically generated, please don't change anything in this file.
20
21 const iconsManager = new _manager.default('eicon');
22 const chevronLeft = {
23 get element() {
24 const svgData = {
25 path: 'M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z',
26 width: 1000,
27 height: 1000
28 };
29 return iconsManager.createSvgElement('chevron-left', svgData);
30 }
31 };
32 exports.chevronLeft = chevronLeft;
33 const chevronRight = {
34 get element() {
35 const svgData = {
36 path: 'M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z',
37 width: 1000,
38 height: 1000
39 };
40 return iconsManager.createSvgElement('chevron-right', svgData);
41 }
42 };
43 exports.chevronRight = chevronRight;
44 const close = {
45 get element() {
46 const svgData = {
47 path: 'M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z',
48 width: 1000,
49 height: 1000
50 };
51 return iconsManager.createSvgElement('close', svgData);
52 }
53 };
54 exports.close = close;
55 const downloadBold = {
56 get element() {
57 const svgData = {
58 path: 'M572 42H428C405 42 385 61 385 85V385H228C197 385 180 424 203 447L475 719C489 732 511 732 524 719L797 447C819 424 803 385 771 385H614V85C615 61 595 42 572 42ZM958 915V715C958 691 939 672 915 672H653L565 760C529 796 471 796 435 760L347 672H85C61 672 42 691 42 715V915C42 939 61 958 85 958H915C939 958 958 939 958 915ZM736 873C736 853 720 837 700 837 681 837 665 853 665 873 665 892 681 908 700 908 720 908 736 892 736 873ZM815 837C835 837 851 853 851 873 851 892 835 908 815 908 795 908 779 892 779 873 779 853 795 837 815 837Z',
59 width: 1000,
60 height: 1000
61 };
62 return iconsManager.createSvgElement('download-bold', svgData);
63 }
64 };
65 exports.downloadBold = downloadBold;
66 const facebook = {
67 get element() {
68 const svgData = {
69 path: 'M858 42H142C88 42 42 87 42 142V863C42 913 88 958 142 958H421V646H292V500H421V387C421 258 496 192 613 192 667 192 725 200 725 200V325H663C600 325 579 362 579 404V500H721L700 646H583V958H863C917 958 963 913 963 858V142C958 87 913 42 858 42L858 42Z',
70 width: 1000,
71 height: 1000
72 };
73 return iconsManager.createSvgElement('facebook', svgData);
74 }
75 };
76 exports.facebook = facebook;
77 const frameExpand = {
78 get element() {
79 const svgData = {
80 path: 'M863 583C890 583 914 605 916 632L917 637V863L916 868C914 893 893 914 868 916L863 917H638L632 916C607 914 586 893 584 868L583 863 584 857C586 832 607 811 632 809L638 808H808V637L809 632C811 605 835 583 863 583ZM138 583C165 583 189 605 191 632L192 637V808H363C390 808 414 830 416 857L417 863C417 890 395 914 368 916L363 917H138C110 917 86 895 84 868L83 863V637C83 607 108 583 138 583ZM863 83C890 83 914 105 916 132L917 137V362C917 392 893 417 863 417 835 417 811 395 809 368L808 362V192H638C610 192 586 170 584 143L583 137C583 110 605 86 632 84L638 83H863ZM363 83L368 84C393 86 414 107 416 132L417 137 416 143C414 168 393 189 368 191L363 192H192V362L191 368C189 395 165 417 138 417S86 395 84 368L83 362V137L84 132C86 107 107 86 132 84L138 83H363Z',
81 width: 1000,
82 height: 1000
83 };
84 return iconsManager.createSvgElement('frame-expand', svgData);
85 }
86 };
87 exports.frameExpand = frameExpand;
88 const frameMinimize = {
89 get element() {
90 const svgData = {
91 path: 'M363 583C392 583 413 604 417 633L417 637V863C417 892 392 917 363 917 333 917 313 896 308 867L308 863V692H138C108 692 88 671 83 642L83 637C83 608 104 587 133 583L138 583H363ZM638 583C608 583 588 604 583 633L583 637V863C583 892 608 917 638 917 667 917 688 896 692 867L692 863V692H863C892 692 913 671 917 642L917 637C917 608 896 587 867 583L863 583H638ZM363 417C392 417 413 396 417 367L417 362V137C417 108 392 83 363 83 333 83 313 104 308 133L308 137V308H138C108 308 88 329 83 358L83 362C83 392 104 412 133 417L138 417H363ZM638 417C608 417 588 396 583 367L583 362V137C583 108 608 83 638 83 667 83 688 104 692 133L692 137V308H863C892 308 913 329 917 358L917 362C917 392 896 412 867 417L863 417H638Z',
92 width: 1000,
93 height: 1000
94 };
95 return iconsManager.createSvgElement('frame-minimize', svgData);
96 }
97 };
98 exports.frameMinimize = frameMinimize;
99 const loading = {
100 get element() {
101 const svgData = {
102 path: 'M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z',
103 width: 1000,
104 height: 1000
105 };
106 return iconsManager.createSvgElement('loading', svgData);
107 }
108 };
109 exports.loading = loading;
110 const pinterest = {
111 get element() {
112 const svgData = {
113 path: 'M950 496C950 746 746 950 496 950 450 950 404 942 363 929 379 900 408 850 421 808 425 787 450 700 450 700 467 729 508 754 554 754 692 754 792 629 792 471 792 321 671 208 513 208 317 208 213 342 213 483 213 550 250 633 304 658 313 662 317 662 321 654 321 650 329 617 333 604 333 600 333 596 329 592 313 567 296 525 296 487 288 387 367 292 496 292 608 292 688 367 688 475 688 600 625 683 546 683 500 683 467 646 479 600 492 546 517 487 517 450 517 417 500 387 458 387 413 387 375 433 375 496 375 537 388 562 388 562S342 754 333 787C325 825 329 883 333 917 163 854 42 687 42 496 42 246 246 42 496 42S950 246 950 496Z',
114 width: 1000,
115 height: 1000
116 };
117 return iconsManager.createSvgElement('pinterest', svgData);
118 }
119 };
120 exports.pinterest = pinterest;
121 const shareArrow = {
122 get element() {
123 const svgData = {
124 path: 'M946 383L667 133C642 112 604 129 604 162V292C238 296 71 637 42 812 238 587 363 521 604 517V658C604 692 642 708 667 687L946 442C963 425 963 400 946 383Z',
125 width: 1000,
126 height: 1000
127 };
128 return iconsManager.createSvgElement('share-arrow', svgData);
129 }
130 };
131 exports.shareArrow = shareArrow;
132 const twitter = {
133 get element() {
134 const svgData = {
135 path: 'M863 312C863 321 863 329 863 337 863 587 675 871 329 871 221 871 125 842 42 787 58 787 71 792 88 792 175 792 254 762 321 712 238 712 171 658 146 583 158 583 171 587 183 587 200 587 217 583 233 579 146 562 83 487 83 396V387C108 400 138 408 167 412 117 379 83 321 83 254 83 221 92 187 108 158 200 271 342 346 496 354 492 342 492 325 492 312 492 208 575 125 679 125 733 125 783 146 817 183 858 175 900 158 938 137 925 179 896 217 854 242 892 237 929 229 963 212 933 250 900 283 863 312Z',
136 width: 1000,
137 height: 1000
138 };
139 return iconsManager.createSvgElement('twitter', svgData);
140 }
141 };
142 exports.twitter = twitter;
143 const zoomInBold = {
144 get element() {
145 const svgData = {
146 path: 'M388 383V312C388 283 413 258 442 258 471 258 496 283 496 312V383H567C596 383 621 408 621 437S596 492 567 492H496V562C496 592 471 617 442 617 413 617 388 592 388 562V492H317C288 492 263 467 263 437S288 383 317 383H388ZM654 733C592 779 517 804 438 804 233 804 71 642 71 437S233 71 438 71 804 233 804 437C804 521 779 596 733 654L896 817C917 837 917 871 896 892 875 913 842 913 821 892L654 733ZM438 696C579 696 696 579 696 437S579 179 438 179 179 296 179 437 296 696 438 696Z',
147 width: 1000,
148 height: 1000
149 };
150 return iconsManager.createSvgElement('zoom-in-bold', svgData);
151 }
152 };
153 exports.zoomInBold = zoomInBold;
154 const zoomOutBold = {
155 get element() {
156 const svgData = {
157 path: 'M750 683L946 879C963 896 963 929 946 946 929 963 896 967 879 946L683 750C617 804 533 833 438 833 221 833 42 654 42 437S221 42 438 42 833 221 833 437C833 529 800 612 750 683ZM296 392H575C600 392 621 412 621 442 621 467 600 487 575 487H296C271 487 250 467 250 442 250 412 271 392 296 392ZM438 737C604 737 738 604 738 437S604 137 438 137 138 271 138 437 271 737 438 737Z',
158 width: 1000,
159 height: 1000
160 };
161 return iconsManager.createSvgElement('zoom-out-bold', svgData);
162 }
163 };
164 exports.zoomOutBold = zoomOutBold;
165
166 /***/ }),
167
168 /***/ "../assets/dev/js/frontend/utils/icons/manager.js":
169 /*!********************************************************!*\
170 !*** ../assets/dev/js/frontend/utils/icons/manager.js ***!
171 \********************************************************/
172 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
173
174 "use strict";
175
176
177 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
178 Object.defineProperty(exports, "__esModule", ({
179 value: true
180 }));
181 exports["default"] = void 0;
182 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
183 class IconsManager {
184 constructor(elementsPrefix) {
185 this.prefix = `${elementsPrefix}-`;
186 this.createSvgSymbolsContainer();
187 }
188 createSvgElement(name, _ref) {
189 let {
190 path,
191 width,
192 height
193 } = _ref;
194 const iconName = this.prefix + name,
195 iconSelector = '#' + this.prefix + name;
196
197 // Create symbol if not exist yet.
198 if (!IconsManager.iconsUsageList.includes(iconName)) {
199 if (!IconsManager.symbolsContainer.querySelector(iconSelector)) {
200 const symbol = this.createSymbolElement({
201 id: iconName,
202 path,
203 width,
204 height
205 });
206 IconsManager.symbolsContainer.appendChild(symbol);
207 }
208 IconsManager.iconsUsageList.push(iconName);
209 }
210 return this.createSvgIconElement({
211 iconName,
212 iconSelector
213 });
214 }
215 createSvgNode(tag, _ref2) {
216 let {
217 props = {},
218 attrs = {}
219 } = _ref2;
220 const node = document.createElementNS('http://www.w3.org/2000/svg', tag);
221 Object.keys(props).map(key => node[key] = props[key]);
222 Object.keys(attrs).map(key => node.setAttributeNS(null, key, attrs[key]));
223 return node;
224 }
225 createSvgIconElement(_ref3) {
226 let {
227 iconName,
228 iconSelector
229 } = _ref3;
230 return this.createSvgNode('svg', {
231 props: {
232 innerHTML: '<use xlink:href="' + iconSelector + '" />'
233 },
234 attrs: {
235 class: 'e-font-icon-svg e-' + iconName
236 }
237 });
238 }
239 createSvgSymbolsContainer() {
240 if (!IconsManager.symbolsContainer) {
241 const symbolsContainerId = 'e-font-icon-svg-symbols';
242 IconsManager.symbolsContainer = document.getElementById(symbolsContainerId);
243 if (!IconsManager.symbolsContainer) {
244 IconsManager.symbolsContainer = this.createSvgNode('svg', {
245 attrs: {
246 style: 'display: none;',
247 class: symbolsContainerId
248 }
249 });
250 document.body.appendChild(IconsManager.symbolsContainer);
251 }
252 }
253 }
254 createSymbolElement(_ref4) {
255 let {
256 id,
257 path,
258 width,
259 height
260 } = _ref4;
261 return this.createSvgNode('symbol', {
262 props: {
263 innerHTML: '<path d="' + path + '"></path>',
264 id
265 },
266 attrs: {
267 viewBox: '0 0 ' + width + ' ' + height
268 }
269 });
270 }
271 }
272 exports["default"] = IconsManager;
273 (0, _defineProperty2.default)(IconsManager, "symbolsContainer", void 0);
274 (0, _defineProperty2.default)(IconsManager, "iconsUsageList", []);
275
276 /***/ }),
277
278 /***/ "../assets/dev/js/frontend/utils/lightbox/lightbox.js":
279 /*!************************************************************!*\
280 !*** ../assets/dev/js/frontend/utils/lightbox/lightbox.js ***!
281 \************************************************************/
282 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
283
284 "use strict";
285
286
287 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
288 var _screenfull = _interopRequireDefault(__webpack_require__(/*! ./screenfull */ "../assets/dev/js/frontend/utils/lightbox/screenfull.js"));
289 var _eIcons = __webpack_require__(/*! @elementor/e-icons */ "../assets/dev/js/frontend/utils/icons/e-icons.js");
290 module.exports = elementorModules.ViewModule.extend({
291 oldAnimation: null,
292 swiper: null,
293 player: null,
294 isFontIconSvgExperiment: elementorFrontend.config.experimentalFeatures.e_font_icon_svg,
295 getDefaultSettings() {
296 return {
297 classes: {
298 item: 'elementor-lightbox-item',
299 image: 'elementor-lightbox-image',
300 videoContainer: 'elementor-video-container',
301 videoWrapper: 'elementor-video-wrapper',
302 playButton: 'elementor-custom-embed-play',
303 playButtonIcon: 'fa',
304 playing: 'elementor-playing',
305 hidden: 'elementor-hidden',
306 invisible: 'elementor-invisible',
307 preventClose: 'elementor-lightbox-prevent-close',
308 slideshow: {
309 container: elementorFrontend.config.swiperClass,
310 slidesWrapper: 'swiper-wrapper',
311 prevButton: 'elementor-swiper-button elementor-swiper-button-prev',
312 nextButton: 'elementor-swiper-button elementor-swiper-button-next',
313 prevButtonIcon: 'eicon-chevron-left',
314 nextButtonIcon: 'eicon-chevron-right',
315 slide: 'swiper-slide',
316 header: 'elementor-slideshow__header',
317 footer: 'elementor-slideshow__footer',
318 title: 'elementor-slideshow__title',
319 description: 'elementor-slideshow__description',
320 counter: 'elementor-slideshow__counter',
321 iconExpand: 'eicon-frame-expand',
322 iconShrink: 'eicon-frame-minimize',
323 iconZoomIn: 'eicon-zoom-in-bold',
324 iconZoomOut: 'eicon-zoom-out-bold',
325 iconShare: 'eicon-share-arrow',
326 shareMenu: 'elementor-slideshow__share-menu',
327 shareLinks: 'elementor-slideshow__share-links',
328 hideUiVisibility: 'elementor-slideshow--ui-hidden',
329 shareMode: 'elementor-slideshow--share-mode',
330 fullscreenMode: 'elementor-slideshow--fullscreen-mode',
331 zoomMode: 'elementor-slideshow--zoom-mode'
332 }
333 },
334 selectors: {
335 image: '.elementor-lightbox-image',
336 links: 'a, [data-elementor-lightbox]',
337 slideshow: {
338 activeSlide: '.swiper-slide-active',
339 prevSlide: '.swiper-slide-prev',
340 nextSlide: '.swiper-slide-next'
341 }
342 },
343 modalOptions: {
344 id: 'elementor-lightbox',
345 entranceAnimation: 'zoomIn',
346 videoAspectRatio: 169,
347 position: {
348 enable: false
349 }
350 }
351 };
352 },
353 getModal() {
354 if (!module.exports.modal) {
355 this.initModal();
356 }
357 return module.exports.modal;
358 },
359 initModal() {
360 const closeIcon = {};
361
362 // If the experiment is active the closeIcon should be an entire SVG element otherwise it should pass the eicon class name.
363 if (this.isFontIconSvgExperiment) {
364 closeIcon.iconElement = _eIcons.close.element;
365 } else {
366 closeIcon.iconClass = 'eicon-close';
367 }
368 const modal = module.exports.modal = elementorFrontend.getDialogsManager().createWidget('lightbox', {
369 className: 'elementor-lightbox',
370 closeButton: true,
371 closeButtonOptions: {
372 ...closeIcon,
373 attributes: {
374 role: 'button',
375 tabindex: 0,
376 'aria-label': elementorFrontend.config.i18n.close + ' (Esc)'
377 }
378 },
379 selectors: {
380 preventClose: '.' + this.getSettings('classes.preventClose')
381 },
382 hide: {
383 onClick: true
384 }
385 });
386 modal.on('hide', function () {
387 modal.setMessage('');
388 });
389 },
390 showModal(options) {
391 if (options.url && !options.url.startsWith('http')) {
392 return;
393 }
394 this.elements.$closeButton = this.getModal().getElements('closeButton');
395 this.$buttons = this.elements.$closeButton;
396 this.focusedButton = null;
397 const self = this,
398 defaultOptions = self.getDefaultSettings().modalOptions;
399 self.id = options.id;
400 self.setSettings('modalOptions', jQuery.extend(defaultOptions, options.modalOptions));
401 const modal = self.getModal();
402 modal.setID(self.getSettings('modalOptions.id'));
403 modal.onShow = function () {
404 DialogsManager.getWidgetType('lightbox').prototype.onShow.apply(modal, arguments);
405 self.setEntranceAnimation();
406 };
407 modal.onHide = function () {
408 DialogsManager.getWidgetType('lightbox').prototype.onHide.apply(modal, arguments);
409 modal.getElements('message').removeClass('animated');
410 if (_screenfull.default.isFullscreen) {
411 self.deactivateFullscreen();
412 }
413 self.unbindHotKeys();
414 };
415 switch (options.type) {
416 case 'video':
417 self.setVideoContent(options);
418 break;
419 case 'image':
420 {
421 const slides = [{
422 image: options.url,
423 index: 0,
424 title: options.title,
425 description: options.description,
426 hash: options.hash
427 }];
428 options.slideshow = {
429 slides,
430 swiper: {
431 loop: false,
432 pagination: false
433 }
434 };
435 self.setSlideshowContent(options.slideshow);
436 break;
437 }
438 case 'slideshow':
439 self.setSlideshowContent(options.slideshow);
440 break;
441 default:
442 self.setHTMLContent(options.html);
443 }
444 modal.show();
445 },
446 createLightbox(element) {
447 let lightboxData = {};
448 if (element.dataset.elementorLightbox) {
449 lightboxData = JSON.parse(element.dataset.elementorLightbox);
450 }
451 if (lightboxData.type && 'slideshow' !== lightboxData.type) {
452 this.showModal(lightboxData);
453 return;
454 }
455 if (!element.dataset.elementorLightboxSlideshow) {
456 const slideshowID = 'single-img';
457 this.showModal({
458 type: 'image',
459 id: slideshowID,
460 url: element.href,
461 hash: element.getAttribute('data-e-action-hash'),
462 title: element.dataset.elementorLightboxTitle,
463 description: element.dataset.elementorLightboxDescription,
464 modalOptions: {
465 id: 'elementor-lightbox-slideshow-' + slideshowID
466 }
467 });
468 return;
469 }
470 const initialSlideURL = element.dataset.elementorLightboxVideo || element.href;
471 this.openSlideshow(element.dataset.elementorLightboxSlideshow, initialSlideURL);
472 },
473 setHTMLContent(html) {
474 if (window.elementorCommon) {
475 elementorDevTools.deprecation.deprecated('elementorFrontend.utils.lightbox.setHTMLContent()', '3.1.4');
476 }
477 this.getModal().setMessage(html);
478 },
479 setVideoContent(options) {
480 const $ = jQuery;
481 let $videoElement;
482 if ('hosted' === options.videoType) {
483 const videoParams = $.extend({
484 src: options.url,
485 autoplay: ''
486 }, options.videoParams);
487 $videoElement = $('<video>', videoParams);
488 } else {
489 let apiProvider;
490 if (-1 !== options.url.indexOf('vimeo.com')) {
491 apiProvider = elementorFrontend.utils.vimeo;
492 } else if (options.url.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com|youtube-nocookie\.com)/)) {
493 apiProvider = elementorFrontend.utils.youtube;
494 } else {
495 return;
496 }
497 $videoElement = $('<iframe>', {
498 allowfullscreen: 1
499 });
500 if ('yes' === options.autoplay) {
501 $videoElement.attr('allow', 'autoplay');
502 $videoElement.attr('src', apiProvider.getAutoplayURL(options.url));
503 } else {
504 $videoElement.attr('src', options.url);
505 }
506 }
507 const classes = this.getSettings('classes'),
508 aspectRatio = this.getRatioDictionry(this.getSettings('modalOptions.videoAspectRatio')),
509 $videoContainer = $('<div>', {
510 class: `${classes.videoContainer} ${classes.preventClose}`
511 }),
512 $videoWrapper = $('<div>', {
513 class: `${classes.videoWrapper} elementor-video-${this.getRatioType(aspectRatio)}`,
514 style: '--video-aspect-ratio: ' + aspectRatio
515 });
516 $videoWrapper.append($videoElement);
517 $videoContainer.append($videoWrapper);
518 const modal = this.getModal();
519 modal.setMessage($videoContainer);
520 const onHideMethod = modal.onHide;
521 modal.onHide = function () {
522 onHideMethod();
523 this.$buttons = jQuery();
524 this.focusedButton = null;
525 modal.getElements('message').removeClass('elementor-video-wrapper');
526 };
527 },
528 getRatioDictionry(ratio) {
529 const aspectRatiosDictionary = {
530 219: 2.33333,
531 // 21/9
532 169: 1.77777,
533 // 16/9
534 43: 1.33333,
535 // 4/3
536 32: 1.5,
537 // 3/2
538 11: 1,
539 // 1/1
540 916: 0.5625 // 9/16
541 };
542
543 return aspectRatiosDictionary[ratio] || ratio;
544 },
545 getRatioType(ratio) {
546 let type = '';
547 if (1 === ratio) {
548 type = 'square';
549 } else {
550 type = ratio < 1 ? 'portrait' : 'landscape';
551 }
552 return type;
553 },
554 getShareLinks() {
555 const {
556 i18n
557 } = elementorFrontend.config,
558 socialNetworks = {
559 facebook: {
560 label: i18n.shareOnFacebook,
561 iconElement: _eIcons.facebook
562 },
563 twitter: {
564 label: i18n.shareOnTwitter,
565 iconElement: _eIcons.twitter
566 },
567 pinterest: {
568 label: i18n.pinIt,
569 iconElement: _eIcons.pinterest
570 }
571 },
572 $ = jQuery,
573 classes = this.getSettings('classes'),
574 selectors = this.getSettings('selectors'),
575 $linkList = $('<div>', {
576 class: classes.slideshow.shareLinks
577 }),
578 $activeSlide = this.getSlide('active'),
579 $image = $activeSlide.find(selectors.image),
580 videoUrl = $activeSlide.data('elementor-slideshow-video');
581 let itemUrl;
582 if (videoUrl) {
583 itemUrl = videoUrl;
584 } else {
585 itemUrl = $image.attr('src');
586 }
587 $.each(socialNetworks, (key, data) => {
588 const networkLabel = data.label,
589 $link = $('<a>', {
590 href: this.createShareLink(key, itemUrl, $activeSlide.attr('data-e-action-hash')),
591 target: '_blank'
592 }).text(networkLabel),
593 $socialNetworkIconElement = this.isFontIconSvgExperiment ? $(data.iconElement.element) : $('<i>', {
594 class: 'eicon-' + key,
595 'aria-hidden': 'true'
596 });
597 $link.prepend($socialNetworkIconElement);
598 $linkList.append($link);
599 });
600 if (!videoUrl) {
601 const $downloadIcon = this.isFontIconSvgExperiment ? $(_eIcons.downloadBold.element) : $('<i>', {
602 class: 'eicon-download-bold'
603 });
604 $downloadIcon.attr('aria-label', i18n.download);
605 $linkList.append($('<a>', {
606 href: itemUrl,
607 download: ''
608 }).text(i18n.downloadImage).prepend($downloadIcon));
609 }
610 return $linkList;
611 },
612 createShareLink(networkName, itemUrl) {
613 let hash = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
614 const options = {};
615 if ('pinterest' === networkName) {
616 options.image = encodeURIComponent(itemUrl);
617 } else {
618 options.url = encodeURIComponent(location.href.replace(/#.*/, '') + hash);
619 }
620 return ShareLink.getNetworkLink(networkName, options);
621 },
622 getSlideshowHeader() {
623 const {
624 i18n
625 } = elementorFrontend.config,
626 $ = jQuery,
627 showCounter = 'yes' === elementorFrontend.getKitSettings('lightbox_enable_counter'),
628 showFullscreen = 'yes' === elementorFrontend.getKitSettings('lightbox_enable_fullscreen'),
629 showZoom = 'yes' === elementorFrontend.getKitSettings('lightbox_enable_zoom'),
630 showShare = 'yes' === elementorFrontend.getKitSettings('lightbox_enable_share'),
631 classes = this.getSettings('classes'),
632 slideshowClasses = classes.slideshow,
633 elements = this.elements;
634 if (!(showCounter || showFullscreen || showZoom || showShare)) {
635 return;
636 }
637 elements.$header = $('<header>', {
638 class: slideshowClasses.header + ' ' + classes.preventClose
639 });
640 if (showShare) {
641 const iconElement = this.isFontIconSvgExperiment ? _eIcons.shareArrow.element : '<i>';
642 elements.$iconShare = $(iconElement, {
643 class: slideshowClasses.iconShare,
644 role: 'button',
645 tabindex: 0,
646 'aria-label': i18n.share,
647 'aria-expanded': false
648 }).append($('<span>'));
649 const $shareLinks = $('<div>');
650 $shareLinks.on('click', e => {
651 e.stopPropagation();
652 });
653 elements.$shareMenu = $('<div>', {
654 class: slideshowClasses.shareMenu
655 }).append($shareLinks);
656 elements.$iconShare.add(elements.$shareMenu).on('click', this.toggleShareMenu);
657 elements.$header.append(elements.$iconShare, elements.$shareMenu);
658 this.$buttons = this.$buttons.add(elements.$iconShare);
659 }
660 if (showZoom) {
661 const iconElement = this.isFontIconSvgExperiment ? _eIcons.zoomInBold.element : '<i>',
662 showZoomElements = [],
663 showZoomAttrs = {
664 role: 'switch',
665 tabindex: 0,
666 'aria-checked': false,
667 'aria-label': i18n.zoom
668 },
669 zoomAttrs = {
670 ...showZoomAttrs
671 };
672 if (!this.isFontIconSvgExperiment) {
673 zoomAttrs.class = slideshowClasses.iconZoomIn;
674 }
675 elements.$iconZoom = $(iconElement).attr(zoomAttrs).on('click', this.toggleZoomMode);
676 showZoomElements.push(elements.$iconZoom);
677 if (this.isFontIconSvgExperiment) {
678 elements.$iconZoomOut = $(_eIcons.zoomOutBold.element).attr(showZoomAttrs).addClass(classes.hidden).on('click', this.toggleZoomMode);
679 showZoomElements.push(elements.$iconZoomOut);
680 }
681 elements.$header.append(showZoomElements);
682 this.$buttons = this.$buttons.add(showZoomElements);
683 }
684 if (showFullscreen) {
685 const iconElement = this.isFontIconSvgExperiment ? _eIcons.frameExpand.element : '<i>',
686 fullScreenElements = [],
687 fullScreenAttrs = {
688 role: 'switch',
689 tabindex: 0,
690 'aria-checked': false,
691 'aria-label': i18n.fullscreen
692 },
693 expandAttrs = {
694 ...fullScreenAttrs
695 };
696
697 // Only if the experiment is not active, we use the class-name in order to render the icon.
698 if (!this.isFontIconSvgExperiment) {
699 expandAttrs.class = slideshowClasses.iconExpand;
700 }
701 elements.$iconExpand = $(iconElement).append($('<span>'), $('<span>')).attr(expandAttrs).on('click', this.toggleFullscreen);
702 fullScreenElements.push(elements.$iconExpand);
703 if (this.isFontIconSvgExperiment) {
704 elements.$iconMinimize = $(_eIcons.frameMinimize.element).attr(fullScreenAttrs).addClass(classes.hidden).on('click', this.toggleFullscreen);
705 fullScreenElements.push(elements.$iconMinimize);
706 }
707 elements.$header.append(fullScreenElements);
708 this.$buttons = this.$buttons.add(fullScreenElements);
709 }
710 if (showCounter) {
711 elements.$counter = $('<span>', {
712 class: slideshowClasses.counter
713 });
714 elements.$header.append(elements.$counter);
715 }
716 return elements.$header;
717 },
718 toggleFullscreen() {
719 if (_screenfull.default.isFullscreen) {
720 this.deactivateFullscreen();
721 } else if (_screenfull.default.isEnabled) {
722 this.activateFullscreen();
723 }
724 },
725 toggleZoomMode() {
726 if (1 !== this.swiper.zoom.scale) {
727 this.deactivateZoom();
728 } else {
729 this.activateZoom();
730 }
731 },
732 toggleShareMenu() {
733 if (this.shareMode) {
734 this.deactivateShareMode();
735 } else {
736 this.elements.$shareMenu.html(this.getShareLinks());
737 this.activateShareMode();
738 }
739 },
740 activateShareMode() {
741 const classes = this.getSettings('classes');
742 this.elements.$container.addClass(classes.slideshow.shareMode);
743 this.elements.$iconShare.attr('aria-expanded', true);
744
745 // Prevent swiper interactions while in share mode
746 this.swiper.detachEvents();
747
748 // Temporarily replace tabbable buttons with share-menu items
749 this.$originalButtons = this.$buttons;
750 this.$buttons = this.elements.$iconShare.add(this.elements.$shareMenu.find('a'));
751 this.shareMode = true;
752 },
753 deactivateShareMode() {
754 const classes = this.getSettings('classes');
755 this.elements.$container.removeClass(classes.slideshow.shareMode);
756 this.elements.$iconShare.attr('aria-expanded', false);
757 this.swiper.attachEvents();
758 this.$buttons = this.$originalButtons;
759 this.shareMode = false;
760 },
761 activateFullscreen() {
762 const classes = this.getSettings('classes');
763 _screenfull.default.request(this.elements.$container.parents('.dialog-widget')[0]);
764 if (this.isFontIconSvgExperiment) {
765 this.elements.$iconExpand.addClass(classes.hidden).attr('aria-checked', 'false');
766 this.elements.$iconMinimize.removeClass(classes.hidden).attr('aria-checked', 'true');
767 } else {
768 this.elements.$iconExpand.removeClass(classes.slideshow.iconExpand).addClass(classes.slideshow.iconShrink).attr('aria-checked', 'true');
769 }
770 this.elements.$container.addClass(classes.slideshow.fullscreenMode);
771 },
772 deactivateFullscreen() {
773 const classes = this.getSettings('classes');
774 _screenfull.default.exit();
775 if (this.isFontIconSvgExperiment) {
776 this.elements.$iconExpand.removeClass(classes.hidden).attr('aria-checked', 'true');
777 this.elements.$iconMinimize.addClass(classes.hidden).attr('aria-checked', 'false');
778 } else {
779 this.elements.$iconExpand.removeClass(classes.slideshow.iconShrink).addClass(classes.slideshow.iconExpand).attr('aria-checked', 'false');
780 }
781 this.elements.$container.removeClass(classes.slideshow.fullscreenMode);
782 },
783 activateZoom() {
784 const swiper = this.swiper,
785 elements = this.elements,
786 classes = this.getSettings('classes');
787 swiper.zoom.in();
788 swiper.allowSlideNext = false;
789 swiper.allowSlidePrev = false;
790 swiper.allowTouchMove = false;
791 elements.$container.addClass(classes.slideshow.zoomMode);
792 if (this.isFontIconSvgExperiment) {
793 elements.$iconZoom.addClass(classes.hidden).attr('aria-checked', 'false');
794 elements.$iconZoomOut.removeClass(classes.hidden).attr('aria-checked', 'true');
795 } else {
796 elements.$iconZoom.removeClass(classes.slideshow.iconZoomIn).addClass(classes.slideshow.iconZoomOut);
797 }
798 },
799 deactivateZoom() {
800 const swiper = this.swiper,
801 elements = this.elements,
802 classes = this.getSettings('classes');
803 swiper.zoom.out();
804 swiper.allowSlideNext = true;
805 swiper.allowSlidePrev = true;
806 swiper.allowTouchMove = true;
807 elements.$container.removeClass(classes.slideshow.zoomMode);
808 if (this.isFontIconSvgExperiment) {
809 elements.$iconZoom.removeClass(classes.hidden).attr('aria-checked', 'true');
810 elements.$iconZoomOut.addClass(classes.hidden).attr('aria-checked', 'false');
811 } else {
812 elements.$iconZoom.removeClass(classes.slideshow.iconZoomOut).addClass(classes.slideshow.iconZoomIn);
813 }
814 },
815 getSlideshowFooter() {
816 const $ = jQuery,
817 classes = this.getSettings('classes'),
818 $footer = $('<footer>', {
819 class: classes.slideshow.footer + ' ' + classes.preventClose
820 }),
821 $title = $('<div>', {
822 class: classes.slideshow.title
823 }),
824 $description = $('<div>', {
825 class: classes.slideshow.description
826 });
827 $footer.append($title, $description);
828 return $footer;
829 },
830 setSlideshowContent(options) {
831 const {
832 i18n
833 } = elementorFrontend.config,
834 $ = jQuery,
835 isSingleSlide = 1 === options.slides.length,
836 hasTitle = '' !== elementorFrontend.getKitSettings('lightbox_title_src'),
837 hasDescription = '' !== elementorFrontend.getKitSettings('lightbox_description_src'),
838 showFooter = hasTitle || hasDescription,
839 classes = this.getSettings('classes'),
840 slideshowClasses = classes.slideshow,
841 $container = $('<div>', {
842 class: slideshowClasses.container
843 }),
844 $slidesWrapper = $('<div>', {
845 class: slideshowClasses.slidesWrapper
846 });
847 let $prevButton, $nextButton;
848 options.slides.forEach(slide => {
849 let slideClass = slideshowClasses.slide + ' ' + classes.item;
850 if (slide.video) {
851 slideClass += ' ' + classes.video;
852 }
853 const $slide = $('<div>', {
854 class: slideClass
855 });
856 if (slide.video) {
857 $slide.attr('data-elementor-slideshow-video', slide.video);
858 const playVideoLoadingElement = this.isFontIconSvgExperiment ? _eIcons.loading.element : '<i>',
859 $playIcon = $('<div>', {
860 class: classes.playButton
861 }).html($(playVideoLoadingElement).attr('aria-label', i18n.playVideo).addClass(classes.playButtonIcon));
862 $slide.append($playIcon);
863 } else {
864 const $zoomContainer = $('<div>', {
865 class: 'swiper-zoom-container'
866 }),
867 $slidePlaceholder = $('<div class="swiper-lazy-preloader"></div>'),
868 imageAttributes = {
869 'data-src': slide.image,
870 class: classes.image + ' ' + classes.preventClose + ' swiper-lazy'
871 };
872 if (slide.title) {
873 imageAttributes['data-title'] = slide.title;
874 imageAttributes.alt = slide.title;
875 }
876 if (slide.description) {
877 imageAttributes['data-description'] = slide.description;
878 imageAttributes.alt += ' - ' + slide.description;
879 }
880 const $slideImage = $('<img>', imageAttributes);
881 $zoomContainer.append([$slideImage, $slidePlaceholder]);
882 $slide.append($zoomContainer);
883 }
884 if (slide.hash) {
885 $slide.attr('data-e-action-hash', slide.hash);
886 }
887 $slidesWrapper.append($slide);
888 });
889 this.elements.$container = $container;
890 this.elements.$header = this.getSlideshowHeader();
891 $container.prepend(this.elements.$header).append($slidesWrapper);
892 if (!isSingleSlide) {
893 const $prevButtonIcon = this.isFontIconSvgExperiment ? $(_eIcons.chevronLeft.element) : $('<i>', {
894 class: slideshowClasses.prevButtonIcon,
895 'aria-hidden': 'true'
896 }),
897 $nextButtonIcon = this.isFontIconSvgExperiment ? $(_eIcons.chevronRight.element) : $('<i>', {
898 class: slideshowClasses.nextButtonIcon,
899 'aria-hidden': 'true'
900 }),
901 $prevButtonLabel = $('<span>', {
902 class: 'screen-reader-text'
903 }).html(i18n.previous),
904 $nextButtonLabel = $('<span>', {
905 class: 'screen-reader-text'
906 }).html(i18n.next);
907 $prevButton = $('<div>', {
908 class: slideshowClasses.prevButton + ' ' + classes.preventClose
909 }).append($prevButtonIcon, $prevButtonLabel);
910 $nextButton = $('<div>', {
911 class: slideshowClasses.nextButton + ' ' + classes.preventClose
912 }).append($nextButtonIcon, $nextButtonLabel);
913 $container.append($nextButton, $prevButton);
914 this.$buttons = this.$buttons.add($nextButton).add($prevButton);
915 }
916 if (showFooter) {
917 this.elements.$footer = this.getSlideshowFooter();
918 $container.append(this.elements.$footer);
919 }
920 this.setSettings('hideUiTimeout', '');
921 $container.on('click mousemove keypress', this.showLightboxUi);
922 const modal = this.getModal();
923 modal.setMessage($container);
924 const onShowMethod = modal.onShow;
925 modal.onShow = async () => {
926 onShowMethod();
927 const swiperOptions = {
928 pagination: {
929 el: '.' + slideshowClasses.counter,
930 type: 'fraction'
931 },
932 on: {
933 slideChangeTransitionEnd: this.onSlideChange
934 },
935 lazy: {
936 loadPrevNext: true
937 },
938 zoom: true,
939 spaceBetween: 100,
940 grabCursor: true,
941 runCallbacksOnInit: false,
942 loop: true,
943 keyboard: true,
944 handleElementorBreakpoints: true
945 };
946 if (!isSingleSlide) {
947 swiperOptions.navigation = {
948 prevEl: $prevButton[0],
949 nextEl: $nextButton[0]
950 };
951 }
952 if (options.swiper) {
953 $.extend(swiperOptions, options.swiper);
954 }
955 const Swiper = elementorFrontend.utils.swiper;
956 this.swiper = await new Swiper($container, swiperOptions);
957
958 // Expose the swiper instance in the frontend
959 $container.data('swiper', this.swiper);
960 this.playSlideVideo();
961 if (showFooter) {
962 this.updateFooterText();
963 }
964 this.bindHotKeys();
965 this.makeButtonsAccessible();
966 };
967 },
968 makeButtonsAccessible() {
969 this.$buttons.attr('tabindex', 0).on('keypress', event => {
970 const ENTER_KEY = 13,
971 SPACE_KEY = 32;
972 if (ENTER_KEY === event.which || SPACE_KEY === event.which) {
973 jQuery(event.currentTarget).trigger('click');
974 }
975 });
976 },
977 showLightboxUi() {
978 const slideshowClasses = this.getSettings('classes').slideshow;
979 this.elements.$container.removeClass(slideshowClasses.hideUiVisibility);
980 clearTimeout(this.getSettings('hideUiTimeout'));
981 this.setSettings('hideUiTimeout', setTimeout(() => {
982 if (!this.shareMode) {
983 this.elements.$container.addClass(slideshowClasses.hideUiVisibility);
984 }
985 }, 3500));
986 },
987 bindHotKeys() {
988 this.getModal().getElements('window').on('keydown', this.activeKeyDown);
989 },
990 unbindHotKeys() {
991 this.getModal().getElements('window').off('keydown', this.activeKeyDown);
992 },
993 activeKeyDown(event) {
994 this.showLightboxUi();
995 const TAB_KEY = 9;
996 if (event.which === TAB_KEY) {
997 const $buttons = this.$buttons;
998 let focusedButton,
999 isFirst = false,
1000 isLast = false;
1001 $buttons.each(index => {
1002 const item = $buttons[index];
1003 if (jQuery(item).is(':focus')) {
1004 focusedButton = item;
1005 isFirst = 0 === index;
1006 isLast = $buttons.length - 1 === index;
1007 return false;
1008 }
1009 });
1010 if (event.shiftKey) {
1011 if (isFirst) {
1012 event.preventDefault();
1013 $buttons.last().trigger('focus');
1014 }
1015 } else if (isLast || !focusedButton) {
1016 event.preventDefault();
1017 $buttons.first().trigger('focus');
1018 }
1019 }
1020 },
1021 getSlide(slideState) {
1022 return jQuery(this.swiper.slides).filter(this.getSettings('selectors.slideshow.' + slideState + 'Slide'));
1023 },
1024 updateFooterText() {
1025 if (!this.elements.$footer) {
1026 return;
1027 }
1028 const classes = this.getSettings('classes'),
1029 $activeSlide = this.getSlide('active'),
1030 $image = $activeSlide.find('.elementor-lightbox-image'),
1031 titleText = $image.data('title'),
1032 descriptionText = $image.data('description'),
1033 $title = this.elements.$footer.find('.' + classes.slideshow.title),
1034 $description = this.elements.$footer.find('.' + classes.slideshow.description);
1035 $title.text(titleText || '');
1036 $description.text(descriptionText || '');
1037 },
1038 playSlideVideo() {
1039 const $activeSlide = this.getSlide('active'),
1040 videoURL = $activeSlide.data('elementor-slideshow-video');
1041 if (!videoURL) {
1042 return;
1043 }
1044 const classes = this.getSettings('classes'),
1045 aspectRatio = this.getRatioDictionry(this.getSettings('modalOptions.videoAspectRatio')),
1046 $videoContainer = jQuery('<div>', {
1047 class: classes.videoContainer + ' ' + classes.invisible
1048 }),
1049 $videoWrapper = jQuery('<div>', {
1050 class: `${classes.videoWrapper} elementor-video-${this.getRatioType(aspectRatio)}`,
1051 style: '--video-aspect-ratio: ' + aspectRatio
1052 }),
1053 $playIcon = $activeSlide.children('.' + classes.playButton);
1054 let videoType, apiProvider;
1055 $videoContainer.append($videoWrapper);
1056 $activeSlide.append($videoContainer);
1057 if (-1 !== videoURL.indexOf('vimeo.com')) {
1058 videoType = 'vimeo';
1059 apiProvider = elementorFrontend.utils.vimeo;
1060 } else if (videoURL.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com)/)) {
1061 videoType = 'youtube';
1062 apiProvider = elementorFrontend.utils.youtube;
1063 }
1064 const videoID = apiProvider.getVideoIDFromURL(videoURL);
1065 apiProvider.onApiReady(apiObject => {
1066 if ('youtube' === videoType) {
1067 this.prepareYTVideo(apiObject, videoID, $videoContainer, $videoWrapper, $playIcon);
1068 } else if ('vimeo' === videoType) {
1069 this.prepareVimeoVideo(apiObject, videoURL, $videoContainer, $videoWrapper, $playIcon);
1070 }
1071 });
1072 $playIcon.addClass(classes.playing).removeClass(classes.hidden);
1073 },
1074 prepareYTVideo(YT, videoID, $videoContainer, $videoWrapper, $playIcon) {
1075 const classes = this.getSettings('classes'),
1076 $videoPlaceholderElement = jQuery('<div>');
1077 let startStateCode = YT.PlayerState.PLAYING;
1078 $videoWrapper.append($videoPlaceholderElement);
1079
1080 // Since version 67, Chrome doesn't fire the `PLAYING` state at start time
1081 if (window.chrome) {
1082 startStateCode = YT.PlayerState.UNSTARTED;
1083 }
1084 $videoContainer.addClass('elementor-loading' + ' ' + classes.invisible);
1085 this.player = new YT.Player($videoPlaceholderElement[0], {
1086 videoId: videoID,
1087 events: {
1088 onReady: () => {
1089 $playIcon.addClass(classes.hidden);
1090 $videoContainer.removeClass(classes.invisible);
1091 this.player.playVideo();
1092 },
1093 onStateChange: event => {
1094 if (event.data === startStateCode) {
1095 $videoContainer.removeClass('elementor-loading' + ' ' + classes.invisible);
1096 }
1097 }
1098 },
1099 playerVars: {
1100 controls: 0,
1101 rel: 0
1102 }
1103 });
1104 },
1105 prepareVimeoVideo(Vimeo, videoURL, $videoContainer, $videoWrapper, $playIcon) {
1106 const classes = this.getSettings('classes'),
1107 vimeoOptions = {
1108 url: videoURL,
1109 autoplay: true,
1110 transparent: false,
1111 playsinline: false
1112 };
1113 this.player = new Vimeo.Player($videoWrapper, vimeoOptions);
1114 this.player.ready().then(() => {
1115 $playIcon.addClass(classes.hidden);
1116 $videoContainer.removeClass(classes.invisible);
1117 });
1118 },
1119 setEntranceAnimation(animation) {
1120 animation = animation || elementorFrontend.getCurrentDeviceSetting(this.getSettings('modalOptions'), 'entranceAnimation');
1121 const $widgetMessage = this.getModal().getElements('message');
1122 if (this.oldAnimation) {
1123 $widgetMessage.removeClass(this.oldAnimation);
1124 }
1125 this.oldAnimation = animation;
1126 if (animation) {
1127 $widgetMessage.addClass('animated ' + animation);
1128 }
1129 },
1130 openSlideshow(slideshowID, initialSlideURL) {
1131 const $allSlideshowLinks = jQuery(this.getSettings('selectors.links')).filter((index, element) => {
1132 const $element = jQuery(element);
1133 return slideshowID === element.dataset.elementorLightboxSlideshow && !$element.parent('.swiper-slide-duplicate').length && !$element.parents('.slick-cloned').length;
1134 });
1135 const slides = [];
1136 let initialSlideIndex = 0;
1137 $allSlideshowLinks.each(function () {
1138 const slideVideo = this.dataset.elementorLightboxVideo;
1139 let slideIndex = this.dataset.elementorLightboxIndex;
1140 if (undefined === slideIndex) {
1141 slideIndex = $allSlideshowLinks.index(this);
1142 }
1143 if (initialSlideURL === this.href || slideVideo && initialSlideURL === slideVideo) {
1144 initialSlideIndex = slideIndex;
1145 }
1146 const slideData = {
1147 image: this.href,
1148 index: slideIndex,
1149 title: this.dataset.elementorLightboxTitle,
1150 description: this.dataset.elementorLightboxDescription,
1151 hash: this.getAttribute('data-e-action-hash')
1152 };
1153 if (slideVideo) {
1154 slideData.video = slideVideo;
1155 }
1156 slides.push(slideData);
1157 });
1158 slides.sort((a, b) => a.index - b.index);
1159 this.showModal({
1160 type: 'slideshow',
1161 id: slideshowID,
1162 modalOptions: {
1163 id: 'elementor-lightbox-slideshow-' + slideshowID
1164 },
1165 slideshow: {
1166 slides,
1167 swiper: {
1168 initialSlide: +initialSlideIndex
1169 }
1170 }
1171 });
1172 },
1173 onSlideChange() {
1174 this.getSlide('prev').add(this.getSlide('next')).add(this.getSlide('active')).find('.' + this.getSettings('classes.videoWrapper')).remove();
1175 this.playSlideVideo();
1176 this.updateFooterText();
1177 }
1178 });
1179
1180 /***/ }),
1181
1182 /***/ "../assets/dev/js/frontend/utils/lightbox/screenfull.js":
1183 /*!**************************************************************!*\
1184 !*** ../assets/dev/js/frontend/utils/lightbox/screenfull.js ***!
1185 \**************************************************************/
1186 /***/ ((module) => {
1187
1188 "use strict";
1189
1190
1191 (function () {
1192 'use strict';
1193
1194 var document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};
1195 var isCommonjs = true && module.exports;
1196 var fn = function () {
1197 var val;
1198 var fnMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],
1199 // New WebKit
1200 ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'],
1201 // Old WebKit
1202 ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'], ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'], ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];
1203 var i = 0;
1204 var l = fnMap.length;
1205 var ret = {};
1206 for (; i < l; i++) {
1207 val = fnMap[i];
1208 if (val && val[1] in document) {
1209 var valLength = val.length;
1210 for (i = 0; i < valLength; i++) {
1211 ret[fnMap[0][i]] = val[i];
1212 }
1213 return ret;
1214 }
1215 }
1216 return false;
1217 }();
1218 var eventNameMap = {
1219 change: fn.fullscreenchange,
1220 error: fn.fullscreenerror
1221 };
1222 var screenfull = {
1223 request(element) {
1224 return new Promise(function (resolve, reject) {
1225 var onFullScreenEntered = function () {
1226 this.off('change', onFullScreenEntered);
1227 resolve();
1228 }.bind(this);
1229 this.on('change', onFullScreenEntered);
1230 element = element || document.documentElement;
1231 Promise.resolve(element[fn.requestFullscreen]()).catch(reject);
1232 }.bind(this));
1233 },
1234 exit() {
1235 return new Promise(function (resolve, reject) {
1236 if (!this.isFullscreen) {
1237 resolve();
1238 return;
1239 }
1240 var onFullScreenExit = function () {
1241 this.off('change', onFullScreenExit);
1242 resolve();
1243 }.bind(this);
1244 this.on('change', onFullScreenExit);
1245 Promise.resolve(document[fn.exitFullscreen]()).catch(reject);
1246 }.bind(this));
1247 },
1248 toggle(element) {
1249 return this.isFullscreen ? this.exit() : this.request(element);
1250 },
1251 onchange(callback) {
1252 this.on('change', callback);
1253 },
1254 onerror(callback) {
1255 this.on('error', callback);
1256 },
1257 on(event, callback) {
1258 var eventName = eventNameMap[event];
1259 if (eventName) {
1260 document.addEventListener(eventName, callback, false);
1261 }
1262 },
1263 off(event, callback) {
1264 var eventName = eventNameMap[event];
1265 if (eventName) {
1266 document.removeEventListener(eventName, callback, false);
1267 }
1268 },
1269 raw: fn
1270 };
1271 if (!fn) {
1272 if (isCommonjs) {
1273 module.exports = {
1274 isEnabled: false
1275 };
1276 } else {
1277 window.screenfull = {
1278 isEnabled: false
1279 };
1280 }
1281 return;
1282 }
1283 Object.defineProperties(screenfull, {
1284 isFullscreen: {
1285 get() {
1286 return Boolean(document[fn.fullscreenElement]);
1287 }
1288 },
1289 element: {
1290 enumerable: true,
1291 get() {
1292 return document[fn.fullscreenElement];
1293 }
1294 },
1295 isEnabled: {
1296 enumerable: true,
1297 get() {
1298 // Coerce to boolean in case of old WebKit
1299 return Boolean(document[fn.fullscreenEnabled]);
1300 }
1301 }
1302 });
1303 if (isCommonjs) {
1304 module.exports = screenfull;
1305 } else {
1306 window.screenfull = screenfull;
1307 }
1308 })();
1309
1310 /***/ }),
1311
1312 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
1313 /*!****************************************************************!*\
1314 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
1315 \****************************************************************/
1316 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1317
1318 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
1319 function _defineProperty(obj, key, value) {
1320 key = toPropertyKey(key);
1321 if (key in obj) {
1322 Object.defineProperty(obj, key, {
1323 value: value,
1324 enumerable: true,
1325 configurable: true,
1326 writable: true
1327 });
1328 } else {
1329 obj[key] = value;
1330 }
1331 return obj;
1332 }
1333 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
1334
1335 /***/ }),
1336
1337 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
1338 /*!*************************************************************!*\
1339 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
1340 \*************************************************************/
1341 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1342
1343 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1344 function toPrimitive(t, r) {
1345 if ("object" != _typeof(t) || !t) return t;
1346 var e = t[Symbol.toPrimitive];
1347 if (void 0 !== e) {
1348 var i = e.call(t, r || "default");
1349 if ("object" != _typeof(i)) return i;
1350 throw new TypeError("@@toPrimitive must return a primitive value.");
1351 }
1352 return ("string" === r ? String : Number)(t);
1353 }
1354 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
1355
1356 /***/ }),
1357
1358 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
1359 /*!***************************************************************!*\
1360 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
1361 \***************************************************************/
1362 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1363
1364 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1365 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
1366 function toPropertyKey(t) {
1367 var i = toPrimitive(t, "string");
1368 return "symbol" == _typeof(i) ? i : String(i);
1369 }
1370 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
1371
1372 /***/ }),
1373
1374 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
1375 /*!********************************************************!*\
1376 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
1377 \********************************************************/
1378 /***/ ((module) => {
1379
1380 function _typeof(o) {
1381 "@babel/helpers - typeof";
1382
1383 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
1384 return typeof o;
1385 } : function (o) {
1386 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
1387 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);
1388 }
1389 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
1390
1391 /***/ })
1392
1393 }]);
1394 //# sourceMappingURL=lightbox.2c9ae19597fcd2a76c3a.bundle.js.map