PageSourceSearch

https://superleague.co.uk/plugins/match_center_htmx/match_center.js?v=1.23

js superleague.co.uk collected 2026-10-02 07:23:30 UTC 8,661 bytes, 257 lines download raw bytes

1const val_predict = 'predict', val_week_slider = 'week_slider';
2
3(function(){
4
5    htmx.on("htmx:after:init", function(evt) {
6        slideInit();
7        ecalWidgetBootstrap();
8    });
9
10    slideInit();
11    htmx.on("htmx:before:request", function(evt) {
12        if(evt.detail.ctx.sourceElement.classList.contains('tab-primary')){
13            if(evt.detail.ctx.target.hasChildNodes()){
14                // prevent another request if tab has content
15                evt.detail.ctx.sourceElement.dataset.once = true
16                evt.preventDefault();
17            }
18        }
19        
20        if(evt.detail.ctx.sourceElement.dataset.hidden&&evt.detail.ctx.sourceElement.dataset.shown){
21            togglePlaceholder(evt.detail.ctx.sourceElement.dataset,true);
22        }
23    });
24    
25    htmx.on("htmx:after:request", function(evt) {        
26        if(evt.detail.ctx.sourceElement.classList.contains('tab-primary')||evt.detail.ctx.sourceElement.classList.contains('tab-pane')){
27            slideInit();
28        }
29        if (evt.detail.ctx.event && evt.detail.ctx.event === val_week_slider) {
30            togglePlaceholder(evt.detail.ctx.values);
31        }
32        if(evt.detail.ctx.sourceElement.dataset.hidden&&evt.detail.ctx.sourceElement.dataset.shown){
33            togglePlaceholder(evt.detail.ctx.sourceElement.dataset);
34        }
35    });
36
37    htmx.on('htmx:after:swap', (evt) => {
38        if (evt.detail.ctx.event && evt.detail.ctx.event === val_predict) {
39            loginToPredict();
40        }
41    });
42    
43    // const userProfileDropdown = document.getElementById('page-header-user-dropdown');
44    // if (userProfileDropdown) {
45    //     userProfileDropdown.addEventListener('hide.bs.dropdown', event => {
46    //         // event.relatedTarget.nextSibling.nextSibling.classList.remove('show');
47    //         console.log(event.relatedTarget.nextSibling);
48            
49    //         event.relatedTarget.nextSibling.classList.remove('show');
50    //     });
51    // }
52    // const userLogout = document.querySelector('[data-href="user-auth-logout"]');
53    // if (userLogout) {
54    //     userLogout.addEventListener('click',event => {
55    //         const dhref = event.target.dataset.href;
56    //         let object = {};
57    //         object[dhref] = 1;
58    //         htmx.ajax('POST', '', {values:object,swap:'none'});
59    //     });
60    // }
61})();
62
63function calculateValue(defaults){
64    let object = {
65        filter: 'matches'
66    }
67    object['cat'] = defaults;
68    if (document.getElementById('reset')) {
69        object['reset'] = document.getElementById('reset').value;
70    }
71    return object;
72}
73
74function slideInit(){
75    let carouselElement = document.querySelectorAll('.weeks-carousel')
76    carouselElement.forEach(element => {
77        element.addEventListener('slide.bs.carousel', event => {
78            event.stopImmediatePropagation()
79            weeksValues(event);            
80        });
81    });
82    loginToPredict();
83}
84
85function weeksValues(event){
86    let el = event.relatedTarget;    
87    let object = {}
88    if (el.dataset !== undefined) {
89        object = el.dataset;
90        for (const [key, val] of Object.entries(el.dataset)) {
91            object[key] = val;
92        }
93    }
94    /* show placeholder */
95    togglePlaceholder(object,true);
96    
97    htmx.ajax('GET', '', {target:`${object.target}`, values: object, select: `${object.swap}`, swap:'innerHTML',event:val_week_slider}).then(() => {
98    });
99
100}
101
102function togglePlaceholder(obj,visibility=false){
103    
104    const hidden = document.getElementById(obj.hidden);
105    const shown = document.getElementById(obj.shown);
106    
107    if (null === obj.once || obj.once === undefined) {
108        if(visibility) {
109            
110            shown.style.display = 'block';
111            hidden.style.display = 'none';
112            
113        }else{
114            
115            shown.style.display = 'none';
116            hidden.style.display = hidden.classList.contains('tab-pane') ? '' : 'block';
117        }
118    }
119}
120
121function resetValues(el){
122    const selectedOption = el.options[el.selectedIndex];
123    if (selectedOption.dataset.reset !== undefined) {
124        if (document.getElementById('reset')) {
125            document.getElementById('reset').value = selectedOption.dataset.reset;
126        }
127    }
128}
129
130function loginToPredict(){
131
132    let divs = document.querySelectorAll('[data-class="login-to-predict"]');
133    divs.forEach(element=> {
134        const target = element.dataset.target;
135        element.addEventListener('click',e=>{
136            e.preventDefault();
137            Swal.fire({
138                title: 'Please login to predict.',
139                text: "You need to login/register to your RL1 account.",
140                icon: 'info',
141                showCancelButton: true,
142                confirmButtonColor: '#272a4a',
143                cancelButtonColor: '#d33',
144                confirmButtonText: 'Login'
145            }).then((result) => {
146    
147                if (result.isConfirmed) {
148                    const vals = document.getElementById(target).dataset.val;
149                    let object = JSON.parse(vals);
150                    object['type'] = 'login';
151                    htmx.ajax('POST', '', {values:object,swap:'none',event:'loginToPredict'});
152                }
153    
154            });
155        });
156    })
157
158    let radios = document.querySelectorAll('[data-predict]');
159    radios.forEach(element=> {        
160        element.addEventListener('click',e=>{
161            e.preventDefault();
162            e.stopImmediatePropagation();
163            let object = {};
164            if (element.dataset !== undefined) {
165                object = element.dataset;
166                for (const [key, val] of Object.entries(element.dataset)) {
167                    object[key] = val;
168                }
169            }
170            object['prediction'] = element.value;
171            const parentElID = e.target.closest('.prediction-button-holder').getAttribute("id");                
172            htmx.ajax('POST', '', {target:`#${parentElID}`,values:object,swap:'outerHTML',event:val_predict});
173        });
174    });
175}
176
177function loadDefaults(){
178    let object = {
179        load: 'true'
180    }
181    object['window_size'] = window.windowSize;
182    
183    return object;
184}
185
186function responsiveObserver(){
187    const divElem = document.querySelector("body");
188    const resizeObserver = new ResizeObserver((entries) => {
189        for (const entry of entries) {
190            if (entry.contentBoxSize) {
191                const contentBoxSize = entry.contentBoxSize[0];
192                window.windowSize = Math.round(contentBoxSize.inlineSize);
193                if (window.windowSize < 600) {
194                    console.log('reload needed');                    
195                }
196            }
197        }
198    });
199    resizeObserver.observe(divElem);
200}
201window.addEventListener("load", (event) => {
202
203    const userProfileDropdown = document.getElementById('page-header-user-dropdown');
204    if (userProfileDropdown) {
205        userProfileDropdown.addEventListener('hide.bs.dropdown', event => {
206            event.relatedTarget.nextSibling.nextSibling.classList.remove('show');
207        });
208    }
209    // ecalWidgetBootstrap();
210    
211});
212
213function ecalWidgetBootstrap () {
214    /* update version whenever we updated something related to the embed scripts functionality */
215    var version = '2.011';
216    var apiKey = 'cTEpANvoLj1JF7SzDtgy7Hlbx7PuEsBCswsoJkqM68db1ec380';
217    var bootSrc = '//sync.ecal.com/v2/ecal.widget.js';
218    var ecalAlias = '';
219    var autoBoot = true;
220
221    bootSrc = bootSrc.split('/v2/ecal.widget')[0];
222    window.EcalWidgetAPIKey = apiKey;
223   
224    function initialized () {
225        window.EcalWidget.host = bootSrc;
226        window[ecalAlias] =  window.EcalWidget;
227        if (!autoBoot) return;
228        window.EcalWidget.boot(apiKey);
229    }
230
231    function loadScript () {
232        var escr = document.createElement('script');
233        escr.onload = function (e) {
234            initialized();
235        }
236        var src = `${bootSrc}/v2/widget.min.js?v=${version}`;
237        escr.setAttribute('src', src);
238        escr.setAttribute('type', 'text/javascript');
239        var head = document.getElementsByTagName('head')[0];
240        head.appendChild(escr);
241    }
242
243    function loadCSS () {
244        // <link rel="stylesheet" href="styles.css"></link>
245
246        var linkcss = document.createElement('link');
247        linkcss.onload = function (e) {
248            loadScript(); 
249        }
250        linkcss.setAttribute('rel', 'stylesheet');
251        linkcss.setAttribute('href', `${bootSrc}/v2/widget.min.css`);
252        var head = document.getElementsByTagName('head')[0];
253        head.appendChild(linkcss);
254    }
255
256    loadCSS();
257}

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.