PageSourceSearch

https://www.borderstates.com/_ui/responsive/common/js/acc.consent.js

js borderstates.com collected 2026-10-03 21:44:01 UTC 6,893 bytes, 185 lines download raw bytes

1ACC.consent = {
2    _autoload: [
3        ["bindSendConsent", $("#consent-management-form").length != 0],
4        ["bindToggleConsentTemplateDescription", $("#consent-management-form").length != 0],
5        "bindConsentClick",
6        "bindConsentManagementAlertBar"
7    ],
8   
9    bindSendConsent: function ()
10    {
11        var consentCheckbox = $('#consent-management-form').find('input.toggle-button__input');
12
13        consentCheckbox.click(function ()
14        {
15            var consentId = $(this).prop('id');
16            var isConsentGiven = $(this).is(':checked');
17            var buttonId = (isConsentGiven ? '#give-consent-button-' : '#withdraw-consent-button-') + consentId;
18            var $consentBtn = $(document).find(buttonId);
19            $consentBtn.trigger('click');
20
21            $consentBtn.on('keydown', function(event) {
22                if (event.keyCode === 13 || event.keyCode === 32) {
23                    event.preventDefault();
24                    $consentBtn.trigger('click');
25                }
26            });
27
28        });
29    },
30
31
32    bindToggleConsentTemplateDescription: function () {
33
34        var accordion = $('#consent-management-form').find('[data-behavior="accordion"]');
35        var expandedClass = 'is-expanded';
36
37        $.each(accordion, function() {
38
39            var accordionItems = $(this).find('[data-binding="expand-accordion-item"]');
40
41            $.each(accordionItems, function() {
42                var $this = $(this);
43                var triggerBtn = $this.find('[data-binding="expand-accordion-trigger"]');
44
45                var setHeight = function(nV) {
46
47                    var innerContent = nV.find('.consent-management-list__content-inner')[0],
48                        maxHeight = $(innerContent).outerHeight(),
49                        content = nV.find('.consent-management-list__content')[0];
50
51                    if (!content.style.height || content.style.height === '0px') {
52                        $(content).css('height', maxHeight);
53                    } else {
54                        $(content).css('height', '0px');
55                    }
56                };
57
58                var toggleClasses = function(event) {
59                    var clickedItem = event.currentTarget;
60                    var currentItem = $(clickedItem).parent();
61                    var clickedContent = $(currentItem).find('.consent-management-list__content')
62                    $(currentItem).toggleClass(expandedClass);
63                    setHeight(currentItem);
64
65                    if ($(currentItem).hasClass('is-expanded')) {
66                        $(clickedItem).attr('aria-selected', 'true');
67                        $(clickedItem).attr('aria-expanded', 'true');
68                        $(clickedContent).attr('aria-hidden', 'false');
69
70                    } else {
71                        $(clickedItem).attr('aria-selected', 'false');
72                        $(clickedItem).attr('aria-expanded', 'false');
73                        $(clickedContent).attr('aria-hidden', 'true');
74                    }
75                }
76
77                triggerBtn.on('click', function(event) {
78                    event.preventDefault();
79                    toggleClasses(event);
80                });
81
82                // keyboard navigation
83                $(triggerBtn).on('keydown', function(event) {
84                    if (event.keyCode === 13 || event.keyCode === 32) {
85                        event.preventDefault();
86                        toggleClasses(event);
87                    }
88                });
89            });
90
91        });
92
93    },
94
95    bindConsentClick:function(){
96        $('.consent-accept').on("click",function(){
97            ACC.consent.changeConsentState(this, "GIVEN");
98        });
99        $('.consent-reject').on("click",function(){
100            ACC.consent.changeConsentState(this, "WITHDRAWN");
101        });
102    },
103
104    changeConsentState:function(element, consentState){
105        var consentCode = ($(element).closest('.consentmanagement-bar').data('code'));
106        $.ajax({
107            url: ACC.config.encodedContextPath+"/anonymous-consent/"+encodeURIComponent(consentCode)+"?consentState="+encodeURIComponent(consentState),
108            type: 'POST',
109            success: function () {
110                $(element).closest('.consentmanagement-bar').hide();
111            }
112        });
113    },
114
115    bindConsentManagementAlertBar: function () {
116
117        //accordion behaviour
118        var accordion = $('#consent-management-alert').find('[data-behavior="accordion"]');
119        var expandedClass = 'is-expanded';
120
121        $.each(accordion, function() {
122
123            var accordionItems = $(this).find('[data-binding="expand-accordion-item"]');
124
125            $.each(accordionItems, function() {
126                var $this = $(this);
127                var triggerBtn = $this.find('[data-binding="expand-accordion-trigger"]');
128
129                var setHeight = function(nV) {
130
131                    var innerContent = nV.find('.consent-management-list__content-inner')[0],
132                        maxHeight = $(innerContent).outerHeight(),
133                        content = nV.find('.consent-management-list__content')[0];
134
135                    if (!content.style.height || content.style.height === '0px') {
136                        $(content).css('height', maxHeight);
137                    } else {
138                        $(content).css('height', '0px');
139                    }
140                };
141
142                var toggleClasses = function(event) {
143                    var clickedItem = event.currentTarget;
144                    var currentItem = $(clickedItem).parent();
145                    var clickedContent = $(currentItem).find('.consent-management-list__content')
146                    $(currentItem).toggleClass(expandedClass);
147                    setHeight(currentItem);
148
149                    if ($(currentItem).hasClass('is-expanded')) {
150                        $(clickedItem).attr('aria-selected', 'true');
151                        $(clickedItem).attr('aria-expanded', 'true');
152                        $(clickedContent).attr('aria-hidden', 'false');
153
154                    } else {
155                        $(clickedItem).attr('aria-selected', 'false');
156                        $(clickedItem).attr('aria-expanded', 'false');
157                        $(clickedContent).attr('aria-hidden', 'true');
158                    }
159                }
160
161                triggerBtn.on('click', function(event) {
162                    event.preventDefault();
163                    toggleClasses(event);
164                });
165
166                // keyboard navigation
167                $(triggerBtn).on('keydown', function(event) {
168                    if (event.keyCode === 13 || event.keyCode === 32) {
169                        event.preventDefault();
170                        toggleClasses(event);
171                    }
172                });
173            });
174
175        });
176
177    }
178
179
180
181};
182
183
184
185

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.