PageSourceSearch

https://penedesturisme.cat/themes/custom/moixo_1_bt/js/accordions.js?tm5zyb

js penedesturisme.cat collected 2026-10-02 04:56:03 UTC 3,677 bytes, 89 lines download raw bytes

1/**
2 * Accordion functionality for wine cellar nodes
3 */
4(function (Drupal) {
5  'use strict';
6
7  Drupal.behaviors.winecellarAccordions = {
8    attach: function (context, settings) {
9      // Select all accordion items
10      const accordionItems = context.querySelectorAll('.accordion-item');
11
12      accordionItems.forEach(function(item) {
13        const header = item.querySelector('h4');
14
15        if (!header) return;
16
17        // Remove any existing click listeners
18        const newHeader = header.cloneNode(true);
19        header.parentNode.replaceChild(newHeader, header);
20
21        // Add click event to header
22        newHeader.addEventListener('click', function() {
23          // Toggle is-open class
24          item.classList.toggle('is-open');
25        });
26      });
27
28      // Add multi-column class only if there are more than 3 items
29      const entityReferenceFields = context.querySelectorAll(
30        '.field--name-field-cellar-or-cava-characteris, ' +
31        '.field--name-field-other-services, ' +
32        '.field--name-field-activities, ' +
33        '.field--name-field-languages, ' +
34        '.field--name-field-food-services, ' +
35        '.field--name-field-celler-o-cava-product-type, ' +
36        '.field--name-field-accessibility, ' +
37        '.field--name-field-accomodation-type, ' +
38        '.field--name-field-accommodation-rental-type, ' +
39        '.field--name-field-accommodation-characterist, ' +
40        '.field--name-field-wine-shop-characteristics, ' +
41        '.field--name-field-attraction-category, ' +
42        '.field--name-field-attraction-type, ' +
43        '.field--name-field-attraction-characteristics, ' +
44        '.field--name-field-nature-type, ' +
45        '.field--name-field-nature-characteristi, ' +
46        '.field--name-field-tourist-office-characteris, ' +
47        '.field--name-field-cuisine-type, ' +
48        '.field--name-field-cuisine-special-options, ' +
49        '.field--name-field-menus, ' +
50        '.field--name-field-characteristics-services, ' +
51        '.field--name-field-tourist-service-type, ' +
52        '.field--name-field-tourist-service-characteri, ' +
53        '.field--name-field-mice-proposal-goals, ' +
54        '.field--name-field-mice-experience-type, ' +
55        '.field--name-field-mice-offer-type, ' +
56        '.field--name-field-mice-space-type, ' +
57        '.field--name-field-mice-capacity, ' +
58        '.field--name-field-mice-offer-service-type, ' +
59        '.field--name-field-mice-services, ' +
60        '.field--name-field-mice-resources, ' +
61        '.field--name-field-wine-offer, ' +
62        '.field--name-field-wine-bar-meals, ' +
63        '.field--name-field-meals-offer, ' +
64        '.field--name-field-wine-bar-services, ' +
65        '.field--name-field-booking, ' +
66        '.field--name-field-open-days'
67      );
68
69      entityReferenceFields.forEach(function(field) {
70        const items = field.querySelectorAll('.field__item');
71        // El contenidor pot ser el mateix field o un fill amb classe .field__items
72        const itemsContainer = field.classList.contains('field__items') ? field : field.querySelector('.field__items');
73
74        if (items.length > 3 && itemsContainer) {
75          itemsContainer.classList.add('has-multiple-items');
76        }
77      });
78
79      // Netejar adreça: eliminar codi postal i país
80      const addressFields = context.querySelectorAll('.field--name-field-address p.address');
81      addressFields.forEach(function(addressP) {
82        const html = addressP.innerHTML;
83        // Agafa només el que hi ha abans del primer <br>
84        const firstPart = html.split('<br>')[0].trim();
85        addressP.innerHTML = firstPart;
86      });
87    }
88  };
89})(Drupal);

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.