PageSourceSearch

https://www.studiolspa.com/wp-content/themes/kadence-studiol/assets/js/pricing.js?ver=1.14.2

js studiolspa.com collected 2026-10-04 05:15:16 UTC 2,612 bytes, 84 lines download raw bytes

1/**
2 * Studio L - fiyat listesi arama + kategori filtresi.
3 *
4 * Duda tarafinda bu JS export'a girmemisti; davranis canli siteden birebir alindi:
5 *   - "All" sekmesi tum kategorileri gosterir
6 *   - Bir kategori secilince sadece o bolum kalir
7 *   - Arama tum satirlarda gecer, bos kalan kategori gizlenir
8 *   - Arama yazilinca kategori filtresi "All"a doner
9 */
10( function () {
11	'use strict';
12
13	document.querySelectorAll( '[data-studiol-pricing]' ).forEach( function ( root ) {
14		var search = root.querySelector( '[data-studiol-search]' );
15		var tabs = Array.prototype.slice.call( root.querySelectorAll( '[data-studiol-filter]' ) );
16		var categories = Array.prototype.slice.call( root.querySelectorAll( '[data-studiol-category]' ) );
17		var empty = root.querySelector( '[data-studiol-empty]' );
18		var status = root.querySelector( '[data-studiol-status]' );
19
20		var current = tabs.length ? tabs[ 0 ].dataset.studiolFilter : 'all';
21
22		function apply() {
23			var q = search ? search.value.trim().toLowerCase() : '';
24			var shown = 0;
25
26			categories.forEach( function ( cat ) {
27				var key = cat.dataset.studiolCategory;
28				var inFilter = current === 'all' || current === key;
29				var visibleRows = 0;
30
31				cat.querySelectorAll( '[data-studiol-search-text]' ).forEach( function ( row ) {
32					var match = ! q || row.dataset.studiolSearchText.indexOf( q ) !== -1;
33					var show = inFilter && match;
34					row.hidden = ! show;
35					if ( show ) {
36						visibleRows++;
37					}
38				} );
39
40				cat.hidden = visibleRows === 0;
41				shown += visibleRows;
42			} );
43
44			if ( empty ) {
45				empty.hidden = shown !== 0;
46			}
47			if ( status ) {
48				status.textContent = shown + ' service' + ( shown === 1 ? '' : 's' ) + ' shown';
49			}
50		}
51
52		tabs.forEach( function ( tab ) {
53			tab.addEventListener( 'click', function () {
54				current = tab.dataset.studiolFilter;
55				tabs.forEach( function ( t ) {
56					var active = t === tab;
57					t.classList.toggle( 'is-active', active );
58					t.setAttribute( 'aria-pressed', active ? 'true' : 'false' );
59				} );
60				apply();
61			} );
62		} );
63
64		if ( search ) {
65			var timer;
66			search.addEventListener( 'input', function () {
67				clearTimeout( timer );
68				timer = setTimeout( function () {
69					// Arama yapilinca kategori kisitini kaldir ki sonuc kaybolmasin
70					if ( search.value.trim() && current !== 'all' && tabs.length ) {
71						current = 'all';
72						tabs.forEach( function ( t, i ) {
73							t.classList.toggle( 'is-active', i === 0 );
74							t.setAttribute( 'aria-pressed', i === 0 ? 'true' : 'false' );
75						} );
76					}
77					apply();
78				}, 120 );
79			} );
80		}
81
82		apply();
83	} );
84}() );

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.