PageSourceSearch

https://benjamin-hotel.co.il/wp-content/plugins/simplex-booking-en…/widget-engine/widget-engine.js?ver=2.0.5

js benjamin-hotel.co.il collected 2026-09-28 07:03:23 UTC 4,208 bytes, 102 lines download raw bytes

1// Wait for Elementor preview to be fully loaded
2jQuery(window).on('elementor/frontend/init', function () {
3  elementorFrontend.hooks.addAction('frontend/element_ready/simplex_booking_engine.default', function ($scope, $) {
4    // Code to execute for the custom widget when Elementor preview is loaded
5    //console.log("Custom Widget Loaded in Elementor Preview");
6
7    // Get the widget CID dynamically
8    const widgetCID = $scope.data('model-cid');
9    // Get widget settings
10    const widgetSettings = elementorFrontend.config?.elements?.data[widgetCID]?.attributes || {};
11    let hotel = widgetSettings.hotel;
12    let lang = null;
13
14    //only on elementor editor preview
15    if (elementorFrontend.isEditMode()) {
16      lang = widgetSettings.language || simplexbe_Helper.getPageLang();
17      let engineDiv = simplexbe_BookingEngine.getEngineDivOnSite($scope);
18      engineDiv.classList.add('engine-editor-preview');
19
20      let bookNowBtn = simplexbe_BookingEngine.createBookNowBtn(true);
21      $scope.append(bookNowBtn);
22    }
23
24    simplexbe_BookingEngine.generateEngine({ widgetScope: $scope, engineHotelID: hotel, engineLang: lang });
25    // simplexbe_BookingEngine.generateCustomStyles(simplexbe_BookingEngine.engineCustomStyleID);
26  });
27});
28
29//widget panel opened action
30jQuery(document).ready(function ($) {
31  try {
32    elementor.hooks.addAction('panel/open_editor/widget/simplex_booking_engine', function (panel, model, view) {
33      // Set the 'hotel' setting to a new value (update value show in panel)
34      //model.setSetting('hotel','heb');
35
36      elementor.channels.editor.on('editor:widget:simplex_booking_engine:hotel_section:activated', function (event) {
37        //element hotel select in hotel control from panel (jquery obj)
38        let selectionHotel = event.$el.find("*[data-setting='hotel']");
39        const hotels = simplexbe_BookingEngine.getHotelsList();
40
41        if (hotels.length < 2) {
42          //single hotel, change option to hotel name and disable selection
43          let firstOption = selectionHotel.find('option:first-of-type');
44          let hostName = hotels[0]?.hotelName ?? '';
45          firstOption.text(hostName);
46          //selectionHotel.prop('disabled', true);
47        } else {
48          //create hotels options
49          hotels.forEach((hotel) => {
50            const option = document.createElement('option');
51            option.textContent = hotel.hotelName;
52            option.value = hotel.hotelID;
53
54            if (hotel.isRegion) {
55              option.disabled = true; // Disable regions
56              option.classList.add('simplexbe-option-region'); // Add class
57            }
58
59            if (event.model.getSetting('hotel') == hotel.hotelID) {
60              //value selected
61              option.selected = true;
62            }
63
64            selectionHotel.append(option);
65          });
66        }
67      });
68
69      elementor.channels.editor.on('editor:widget:simplex_booking_engine:language_section:activated', function (event) {
70        let selectionLanguage = event.$el.find("*[data-setting='language']");
71        simplexbe_Helper
72          .getHotelDataFromAPI(simplexbe_BookingEngine.options[simplexbe_BookingEngine.apiKeyField])
73          .then((hotelData) => {
74            let languages = hotelData.languages;
75
76            languages.forEach((lang) => {
77              const option = document.createElement('option');
78              option.textContent = simplexbe_Helper.getLanguageName(lang.languageIsoCode);
79              option.value = lang.languageIsoCode;
80
81              if (event.model.getSetting('language') == lang.languageIsoCode) {
82                //value selected
83                option.selected = true;
84              }
85
86              selectionLanguage.append(option);
87            });
88          })
89          .catch((error) => {
90            console.log('Error fetching hotel data:', error);
91          });
92      });
93
94      /*
95        // Listen for changes in the editor
96        elementor.channels.editor.on('change', function(container) {
97          console.log("Widget settings changed!");
98        });
99        */
100    });
101  } catch { }
102});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.