PageSourceSearch

https://www.neuchatelville.ch/typo3temp/assets/compressed/tc_accor…c8a7007452a65f82d4a68df52b207.js?1783607243

js neuchatelville.ch collected 2026-10-02 05:13:28 UTC 3,019 bytes, 91 lines download raw bytes

1/**
2 * Gestionnaire des accordéon boostrap
3 * @type {accordeonManager}
4 */
5(function ($) {
6    $.fn.TCAccordeon = function (options) {
7
8        var opts = $.extend({}, $.fn.TCAccordeon.defaults, options);
9
10        if ($('.panel-group').length == 0) return false;
11
12        /**
13         * Retourne l'élément de l'accordeon depuis le hash avec l'id généré depuis TYPO3
14         */
15        function getAccPerTypo3Hash() {
16            // Ouverture automatique d'un accordeon par url
17            var objectId = window.location.hash;
18            var $accordion = $(objectId).parents('.panel-group').first();
19            return $accordion;
20        }
21
22        /**
23         * Retourne l'élément de l'accordéon depuis le hash
24         */
25        function getAccPerIdHash() {
26            var $accordion = $(window.location.hash);
27
28            return $accordion;
29        }
30
31        function openAccordeon() {
32            // Activation d'un onglet par hash
33            var $hashAcc;
34            var isAccordionOpened = false;
35
36            $hashAcc = getAccPerTypo3Hash();
37            if ($hashAcc.length == 0) {
38                $hashAcc = getAccPerIdHash();
39            }
40            
41            if ($hashAcc.length > 0 && $hashAcc.hasClass('panel-group')) {
42                var parent=$hashAcc.parents('.panel-group').first()
43                if(parent) {
44                    parent.collapse('show');
45                    $hashAcc.parents('.panel-collapse').first().collapse('show');
46                }
47
48                $hashAcc.collapse('show');
49                //Enlève la class "collapsed" sur le bouton
50                $(window.location.hash).collapse('show');
51
52                // Scroll de la page vers cet élément
53                $(document).TCScroll({action: 'scrollTo', element: $hashAcc.parent()});
54                isAccordionOpened = true;
55            }
56            return isAccordionOpened;
57        }
58
59        var offsetMargin = 0,
60            scrollSpeed = 500,
61            $header = $('#header'),
62            accID = getAccPerTypo3Hash(),
63            accordionWrapper = $('.panel-group'),
64            headerHeight = $header.height();
65
66        // Scroll du titre de panneau de l'accordéon en dessous du header au clic sur ce titre
67        if ($('[id^="accordion-"]').data('scroll')) {
68            accordionWrapper.on('shown.bs.collapse', function (e) {
69                var id = $(e.target).parent();
70
71                $('html, body').animate({
72                    scrollTop: $(id).offset().top - (headerHeight + offsetMargin)
73                }, scrollSpeed);
74            });
75        }
76
77        openAccordeon();
78
79        $('a[data-toggle="collapse"][data-bookmark="1"]').click(function () {
80            if(!$(this).parents('.panel.collapsed').first().hasClass('active')) {
81                var $link = $(this);
82
83                var nativeHash = $link.attr("href").split("#")[1];
84                window.location.hash = nativeHash;
85            }
86        });
87    };
88
89    $.fn.TCAccordeon.defaults = {};
90
91}(jQuery));

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.