PageSourceSearch

https://www.ridetarc.org/wp-content/plugins/advanced-gutenberg/ass…/blocks/advaccordion/frontend.js?ver=3.7.6

js ridetarc.org collected 2026-10-01 12:03:10 UTC 2,947 bytes, 87 lines download raw bytes

1jQuery(document).ready(function($){
2    function setAccordionHeaderState($header, isExpanded) {
3        $header.attr('aria-expanded', isExpanded ? 'true' : 'false');
4    }
5
6    function initExpandAllMode($accordion) {
7        const $headers = $accordion.find('> .advgb-accordion-item > .advgb-accordion-header');
8
9        $headers.each(function() {
10            const $header = $(this);
11            const $body = $header.next('.advgb-accordion-body');
12
13            $body.show();
14            setAccordionHeaderState($header, true);
15            $header.attr({ tabindex: '0', role: 'button' });
16        });
17
18        function toggleItem($header) {
19            const $body = $header.next('.advgb-accordion-body');
20            const isExpanded = $header.attr('aria-expanded') === 'true';
21            if (isExpanded) {
22                $body.stop(true, true).slideUp(200);
23                setAccordionHeaderState($header, false);
24            } else {
25                $body.stop(true, true).slideDown(200);
26                setAccordionHeaderState($header, true);
27            }
28        }
29
30        $headers.on('click', function() {
31            toggleItem($(this));
32        });
33
34        $headers.on('keydown', function(e) {
35            const $header = $(this);
36            const idx = $headers.index($header);
37            switch (e.key) {
38                case 'Enter':
39                case ' ':
40                    e.preventDefault();
41                    toggleItem($header);
42                    break;
43                case 'ArrowDown':
44                    e.preventDefault();
45                    $headers.eq((idx + 1) % $headers.length).focus();
46                    break;
47                case 'ArrowUp':
48                    e.preventDefault();
49                    $headers.eq((idx - 1 + $headers.length) % $headers.length).focus();
50                    break;
51                case 'Home':
52                    e.preventDefault();
53                    $headers.first().focus();
54                    break;
55                case 'End':
56                    e.preventDefault();
57                    $headers.last().focus();
58                    break;
59            }
60        });
61    }
62
63    $(".advgb-accordion-wrapper").each(function() {
64        const $wrapper = $(this);
65
66        if ($wrapper.data('expand-all')) {
67            initExpandAllMode($wrapper);
68            return;
69        }
70
71        $wrapper.accordion({
72            header: "> div > .advgb-accordion-header",
73            heightStyle: "content",
74            collapsible: true,
75            active: $wrapper.data("collapsed") ? false : 0,
76        });
77
78        // Override jQuery UI's roving tabindex so Tab visits every header
79        const $headers = $wrapper.find('> .advgb-accordion-item > .advgb-accordion-header');
80
81        function restoreTabIndex() {
82            $headers.attr('tabindex', '0');
83        }
84        restoreTabIndex();
85        $wrapper.on('accordionactivate', restoreTabIndex);
86    });
87});

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.