PageSourceSearch

https://viretec.com/wp-content/plugins/ghostpool-core/elementor/assets/js/items.js?ver=2.26

js viretec.com collected 2026-10-03 18:39:34 UTC 35,640 bytes, 857 lines download raw bytes

1// Items elements
2var masonryIsotope;
3function gpIsotope($) {
4    $('body:not(.elementor-editor-active) .gp-items-masonry').imagesLoaded({ background: true }, function () {
5        masonryIsotope = $('body:not(.elementor-editor-active) .gp-items-masonry').isotope({
6            itemSelector: '.gp-item',
7            percentPosition: true,
8            masonry: {
9                columnWidth: '.gp-item',
10                gutter: '.gp-item-gutter-size',
11                horizontalOrder: true,
12            },
13        });
14    });
15}
16
17jQuery(function ($) {
18    'use strict';
19
20    gpIsotope($);
21
22    var attributesTaxQuery = {},
23        attributesMetaQuery = {},
24        attributesPostDateQuery = {},
25        attributesPostModifiedDateQuery = {},
26        attributesSortQuery = '',
27        attributesTitleQuery = {},
28        link = '';
29
30    // Toggle terms
31    $(document).on('click', '.gp-toggle-terms .gp-attribute-header:not(.gp-active)', function (e) {
32        $(this).next('.gp-attribute-terms').slideDown();
33        $(this).addClass('gp-active');
34    });
35    $(document).on('click', '.gp-toggle-terms .gp-attribute-header.gp-active', function (e) {
36        $(this).next('.gp-attribute-terms').slideUp();
37        $(this).removeClass('gp-active');
38    });
39
40    // Heading - Get default sort from Items element and update Headings filters with this data
41    $('.gp-sort-filter .gp-filter-link').each(function (index, value) {
42        var link = $(this),
43            itemElementID = link.closest('.gp-heading-filters').data('item-element-id');
44        if (itemElementID.length) {
45            var itemsParentContainer = $('#' + itemElementID).find('.gp-element-items-wrapper'),
46                itemsContainer = itemsParentContainer.find('.gp-element-items');
47            if (
48                itemsContainer.data('sort') === link.data('sort') ||
49                itemsContainer.data('current-query-sort') === link.data('sort')
50            ) {
51                link.addClass('gp-selected');
52            } else {
53                link.removeClass('gp-selected');
54            }
55        }
56    });
57
58    // Attributes Filter - Get default sort value from Items element and update Attributes filters with this data
59    $('.gp-attribute-terms[data-type="sort-query"] select').each(function (index, value) {
60        var link = $(this),
61            itemElementID = link.closest('.gp-element-attribute-filters').data('item-element-id');
62        if (itemElementID.length) {
63            var itemsParentContainer = $('#' + itemElementID).find('.gp-element-items-wrapper'),
64                itemsContainer = itemsParentContainer.find('.gp-element-items'),
65                defaultSortValue;
66            if (itemsContainer.data('sort')) {
67                defaultSortValue = itemsContainer.data('sort');
68            } else if (itemsContainer.data('current-query-sort')) {
69                defaultSortValue = itemsContainer.data('current-query-sort');
70            }
71            link.val(defaultSortValue);
72        }
73    });
74
75    // Select - clicking select dropdown attribute term
76    $(document).on('change', '.gp-attribute-terms select', function (e) {
77        var vars = selectedAttributeTerm($(this));
78
79        if ('tax-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
80            attributesTaxQuery[vars.taxonomy] = {};
81            attributesTaxQuery[vars.taxonomy]['taxonomy'] = vars.taxonomy;
82            attributesTaxQuery[vars.taxonomy]['terms'] = vars.clickedItem.val();
83        } else if ('meta-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
84            attributesMetaQuery[vars.metaKey] = {};
85            attributesMetaQuery[vars.metaKey]['key'] = vars.metaKey;
86            attributesMetaQuery[vars.metaKey]['value'] = vars.clickedItem.val();
87            attributesMetaQuery[vars.metaKey]['max_value'] = vars.maxValue;
88            attributesMetaQuery[vars.metaKey]['compare'] = vars.metaCompare;
89            attributesMetaQuery[vars.metaKey]['type'] = vars.metaType;
90        } else if ('post-date-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
91            attributesPostDateQuery[0] = {};
92            attributesPostDateQuery[0]['value'] = vars.clickedItem.val();
93            attributesPostDateQuery[0]['max_value'] = vars.maxValue;
94        } else if ('post-modified-date-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
95            attributesPostModifiedDateQuery[0] = {};
96            attributesPostModifiedDateQuery[0]['value'] = vars.clickedItem.val();
97            attributesPostModifiedDateQuery[0]['max_value'] = vars.maxValue;
98        } else if ('sort-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
99            attributesSortQuery = vars.clickedItem.val();
100        }
101
102        // Get selected Heading element sort/taxonomy data
103        var itemID = vars.clickedItem.closest('.gp-element-attribute-filters').data('item-element-id'),
104            link = $('.gp-heading-filters[data-item-element-id="' + itemID + '"]').find('.gp-filter-link.gp-selected');
105
106        gpItemsFilter(
107            $,
108            link,
109            vars.itemsParentContainer,
110            vars.itemsContainer,
111            '',
112            attributesTaxQuery,
113            attributesMetaQuery,
114            attributesPostDateQuery,
115            attributesPostModifiedDateQuery,
116            attributesSortQuery,
117            attributesTitleQuery
118        );
119
120        // Show clear filters button
121        vars.clickedItem.closest('.gp-element-attribute-filters').find('.gp-clear-filters').show();
122
123        // Clear selected heading filter links
124        //REMOVEsetHeadingSortTaxValues( 'attributes', vars.itemElementID );
125    });
126
127    // List - Adding term to filter
128    $(document).on('click', '.gp-attribute-term-li:not(.gp-active)', function (e) {
129        var vars = selectedAttributeTerm($(this));
130
131        // Clear all terms from all attributes when term clicked
132        if (vars.clickedItem.closest('.gp-clear-all-other-terms').length) {
133            vars.clickedItem
134                .closest('.gp-element-attribute-filters')
135                .find('.gp-attribute-term-li')
136                .removeClass('gp-active');
137            // Unselect preselected attribute header
138            vars.clickedItem
139                .closest('.gp-element-attribute-filters')
140                .find('.gp-clear-terms-attribute-click-filter')
141                .removeClass('gp-active');
142        }
143
144        // Clear all other terms from this attribute when term is clicked
145        if (vars.clickedItem.closest('.gp-clear-terms-term-click-filter').length) {
146            vars.clickedItem.closest('.gp-attribute-filter-li').find('.gp-attribute-term-li').removeClass('gp-active');
147            // Unselect preselected attribute header
148            vars.clickedItem
149                .closest('.gp-element-attribute-filters')
150                .find('.gp-clear-terms-attribute-click-filter')
151                .removeClass('gp-active');
152        }
153
154        // Add active class to current term
155        vars.clickedItem.addClass('gp-active');
156
157        var terms = $(vars.clickedItem.parent().find('li.gp-active'))
158            .map(function () {
159                return $(this).data('term');
160            })
161            .get()
162            .join(',');
163
164        var maxValues = $(vars.clickedItem.parent().find('li.gp-active'))
165            .map(function () {
166                return $(this).data('max-value');
167            })
168            .get()
169            .join(',');
170
171        // Create list of all terms currently selected
172        if ('tax-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
173            attributesTaxQuery[vars.taxonomy] = {};
174            attributesTaxQuery[vars.taxonomy]['taxonomy'] = vars.taxonomy;
175            attributesTaxQuery[vars.taxonomy]['terms'] = terms;
176        } else if ('meta-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
177            attributesMetaQuery[vars.metaKey] = {};
178            attributesMetaQuery[vars.metaKey]['key'] = vars.metaKey;
179            attributesMetaQuery[vars.metaKey]['value'] = terms;
180            attributesMetaQuery[vars.metaKey]['max_value'] = maxValues;
181            attributesMetaQuery[vars.metaKey]['compare'] = vars.metaCompare;
182            attributesMetaQuery[vars.metaKey]['type'] = vars.metaType;
183        } else if ('post-date-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
184            attributesPostDateQuery[0] = {};
185            attributesPostDateQuery[0]['value'] = terms;
186            attributesPostDateQuery[0]['max_value'] = maxValues;
187        } else if ('post-modified-date-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
188            attributesPostModifiedDateQuery[0] = {};
189            attributesPostModifiedDateQuery[0]['value'] = terms;
190            attributesPostModifiedDateQuery[0]['max_value'] = maxValues;
191        } else if ('sort-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
192            attributesSortQuery = terms;
193        }
194
195        gpItemsFilter(
196            $,
197            link,
198            vars.itemsParentContainer,
199            vars.itemsContainer,
200            '',
201            attributesTaxQuery,
202            attributesMetaQuery,
203            attributesPostDateQuery,
204            attributesPostModifiedDateQuery,
205            attributesSortQuery,
206            attributesTitleQuery
207        );
208
209        // Show clear filters button
210        vars.clickedItem.closest('.gp-element-attribute-filters').find('.gp-clear-filters').show();
211
212        // Clear selected heading filter links
213        //REMOVEsetHeadingSortTaxValues( 'attributes', vars.itemElementID );
214    });
215
216    // List - removing term from filter
217    $(document).on('click', '.gp-attribute-term-li.gp-active', function (e) {
218        var vars = selectedAttributeTerm($(this));
219
220        // Remove active class to current term
221        vars.clickedItem.removeClass('gp-active');
222
223        // Remove term from list of all terms currently selected
224        var terms = $(vars.clickedItem.parent().find('li.gp-active'))
225            .map(function () {
226                return $(this).data('term');
227            })
228            .get()
229            .join(',');
230
231        var maxValues = $(vars.clickedItem.parent().find('li.gp-active'))
232            .map(function () {
233                return $(this).data('max-value');
234            })
235            .get()
236            .join(',');
237
238        if ('tax-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type') && '' != terms) {
239            attributesTaxQuery[vars.taxonomy] = {};
240            attributesTaxQuery[vars.taxonomy]['taxonomy'] = vars.taxonomy;
241            attributesTaxQuery[vars.taxonomy]['terms'] = terms;
242        } else if ('meta-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type') && '' != terms) {
243            attributesMetaQuery[vars.metaKey] = {};
244            attributesMetaQuery[vars.metaKey]['key'] = vars.metaKey;
245            attributesMetaQuery[vars.metaKey]['value'] = terms;
246            attributesMetaQuery[vars.metaKey]['max_value'] = maxValues;
247            attributesMetaQuery[vars.metaKey]['compare'] = vars.metaCompare;
248            attributesMetaQuery[vars.metaKey]['type'] = vars.metaType;
249        } else if ('post-date-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type') && '' != terms) {
250            attributesPostDateQuery[0] = {};
251            attributesPostDateQuery[0]['value'] = terms;
252            attributesPostDateQuery[0]['max_value'] = maxValues;
253        } else if (
254            'post-modified-date-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type') &&
255            '' != terms
256        ) {
257            attributesPostModifiedDateQuery[0] = {};
258            attributesPostModifiedDateQuery[0]['value'] = terms;
259            attributesPostModifiedDateQuery[0]['max_value'] = maxValues;
260        } else if ('sort-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type') && '' != terms) {
261            attributesSortQuery = terms;
262        } else {
263            attributesTaxQuery[vars.taxonomy] = {};
264            attributesMetaQuery[vars.metaKey] = {};
265            attributesPostDateQuery[0] = {};
266            attributesPostModifiedDateQuery[0] = {};
267        }
268
269        gpItemsFilter(
270            $,
271            link,
272            vars.itemsParentContainer,
273            vars.itemsContainer,
274            '',
275            attributesTaxQuery,
276            attributesMetaQuery,
277            attributesPostDateQuery,
278            attributesPostModifiedDateQuery,
279            attributesSortQuery,
280            attributesTitleQuery
281        );
282
283        // Clear selected heading filter links
284        //REMOVEsetHeadingSortTaxValues( 'attributes', vars.itemElementID );
285
286        // If there are no active filters
287        if (!vars.clickedItem.closest('.gp-element-attribute-filters').find('li.gp-active').length) {
288            // Remove clear filters button
289            vars.clickedItem.closest('.gp-element-attribute-filters').find('.gp-clear-filters').hide();
290
291            // Unselect preselected attribute header
292            vars.clickedItem
293                .closest('.gp-element-attribute-filters')
294                .find('.gp-clear-terms-attribute-click-filter')
295                .addClass('gp-active');
296        }
297    });
298
299    // Input - typing in field
300    $(document).on('change', '.gp-attribute-terms input', function (e) {
301        var vars = selectedAttributeTerm($(this));
302
303        if ('tax-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
304            attributesTaxQuery[vars.taxonomy] = {};
305            attributesTaxQuery[vars.taxonomy]['taxonomy'] = vars.taxonomy;
306            attributesTaxQuery[vars.taxonomy]['terms'] = vars.clickedItem.val();
307        } else if ('meta-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
308            attributesMetaQuery[vars.metaKey] = {};
309            attributesMetaQuery[vars.metaKey]['key'] = vars.metaKey;
310            attributesMetaQuery[vars.metaKey]['value'] = vars.clickedItem.val();
311            attributesMetaQuery[vars.metaKey]['compare'] = vars.metaCompare;
312            attributesMetaQuery[vars.metaKey]['type'] = vars.metaType;
313        } else if ('title-query' === vars.clickedItem.closest('.gp-attribute-terms').data('type')) {
314            attributesTitleQuery[0] = {};
315            attributesTitleQuery[0]['value'] = vars.clickedItem.val();
316        }
317
318        gpItemsFilter(
319            $,
320            link,
321            vars.itemsParentContainer,
322            vars.itemsContainer,
323            '',
324            attributesTaxQuery,
325            attributesMetaQuery,
326            attributesPostDateQuery,
327            attributesPostModifiedDateQuery,
328            attributesSortQuery,
329            attributesTitleQuery
330        );
331
332        // Show clear filters button
333        vars.clickedItem.closest('.gp-element-attribute-filters').find('.gp-clear-filters').show();
334
335        // Clear selected heading filter links
336        //REMOVEsetHeadingSortTaxValues( 'attributes', vars.itemElementID );
337    });
338
339    // Clear this attribute filter when clicking attribute name
340    $(document).on('click', '.gp-clear-terms-attribute-click-filter', function (e) {
341        var vars = selectedAttributeTerm($(this));
342
343        // Add active class to attribute name
344        vars.clickedItem.addClass('gp-active');
345
346        // Remove active class from all terms
347        vars.clickedItem
348            .closest('.gp-element-attribute-filters')
349            .find('.gp-attribute-term-li')
350            .removeClass('gp-active');
351
352        // Remove all terms from list
353        attributesTaxQuery = {};
354        attributesMetaQuery = {};
355        attributesPostDateQuery = {};
356        attributesPostModifiedDateQuery = {};
357        attributesSortQuery = '';
358        attributesTitleQuery = {};
359
360        gpItemsFilter(
361            $,
362            link,
363            vars.itemsParentContainer,
364            vars.itemsContainer,
365            '',
366            attributesTaxQuery,
367            attributesMetaQuery,
368            attributesPostDateQuery,
369            attributesPostModifiedDateQuery,
370            attributesSortQuery,
371            attributesTitleQuery
372        );
373
374        // Clear selected heading filter links
375        //REMOVEsetHeadingSortTaxValues( 'attributes', vars.itemElementID );
376    });
377
378    // Clear all attribute filters
379    $(document).on('click', '.gp-clear-filters', function (e) {
380        var vars = selectedAttributeTerm($(this));
381
382        // Remove active class from all terms
383        vars.clickedItem
384            .closest('.gp-element-attribute-filters')
385            .find('.gp-attribute-term-li')
386            .removeClass('gp-active');
387
388        // Set select field back to nothing
389        vars.clickedItem.closest('.gp-element-attribute-filters').find('.gp-attribute-terms select').val('');
390
391        // Set sort field back to default sort order
392        vars.clickedItem
393            .closest('.gp-element-attribute-filters')
394            .find('.gp-attribute-terms[data-type="sort-query"] select')
395            .val(vars.itemsContainer.data('current-query-sort'));
396
397        // Clear input field
398        vars.clickedItem.closest('.gp-element-attribute-filters').find('.gp-attribute-terms input').val('');
399
400        // Remove all terms from list
401        attributesTaxQuery = {};
402        attributesMetaQuery = {};
403        attributesPostDateQuery = {};
404        attributesPostModifiedDateQuery = {};
405        attributesSortQuery = '';
406        attributesTitleQuery = {};
407
408        gpItemsFilter(
409            $,
410            link,
411            vars.itemsParentContainer,
412            vars.itemsContainer,
413            '',
414            attributesTaxQuery,
415            attributesMetaQuery,
416            attributesPostDateQuery,
417            attributesPostModifiedDateQuery,
418            attributesSortQuery,
419            attributesTitleQuery
420        );
421
422        // Clear selected heading filter links
423        //REMOVEsetHeadingSortTaxValues( 'attributes', vars.itemElementID );
424
425        // Hide clear filters button
426        $(this).hide();
427    });
428
429    // Clicking heading sort/tax filter links
430    $(document).on('click', '.gp-filter-link', function (e) {
431        e.preventDefault();
432
433        var link = $(this),
434            itemElementID = link.closest('.gp-heading-filters').data('item-element-id'),
435            itemsParentContainer = $('#' + itemElementID).find('.gp-element-items-wrapper'),
436            itemsContainer = $('#' + itemElementID).find('.gp-element-items');
437
438        // Remove selected class from all links in current filter menu
439        link.parent().find('.gp-filter-link').removeClass('gp-selected');
440
441        gpItemsFilter(
442            $,
443            link,
444            itemsParentContainer,
445            itemsContainer,
446            '',
447            attributesTaxQuery,
448            attributesMetaQuery,
449            attributesPostDateQuery,
450            attributesPostModifiedDateQuery,
451            attributesSortQuery,
452            attributesTitleQuery
453        );
454    });
455
456    // Clicking pagination link
457    $(document).on(
458        'click',
459        '.gp-ajax-pagination.gp-pagination-numbers a, .gp-ajax-pagination.gp-pagination-arrows a',
460        function (e) {
461            e.preventDefault();
462
463            var link = $(this),
464                linkContainer = link.closest('.gp-pagination'),
465                itemsParentContainer = linkContainer.closest('.gp-element-items-wrapper'),
466                itemsContainer = itemsParentContainer.find('.gp-element-items');
467
468            gpItemsFilter(
469                $,
470                link,
471                itemsParentContainer,
472                itemsContainer,
473                '',
474                attributesTaxQuery,
475                attributesMetaQuery,
476                attributesPostDateQuery,
477                attributesPostModifiedDateQuery,
478                attributesSortQuery,
479                attributesTitleQuery
480            );
481
482            if (!link.closest('.menu-item').length) {
483                $('html, body').animate(
484                    {
485                        scrollTop: itemsParentContainer.offset().top - 60,
486                    },
487                    1000
488                );
489            }
490        }
491    );
492
493    // Clicking load more button
494    $(document).on('click', '.gp-pagination-load-more-button a', function (e) {
495        e.preventDefault();
496
497        var link = $(this),
498            linkContainer = link.closest('.gp-pagination'),
499            itemsParentContainer = linkContainer.closest('.gp-element-items-wrapper'),
500            itemsContainer = itemsParentContainer.find('.gp-element-items');
501
502        gpItemsFilter(
503            $,
504            link,
505            itemsParentContainer,
506            itemsContainer,
507            'load-more',
508            attributesTaxQuery,
509            attributesMetaQuery,
510            attributesPostDateQuery,
511            attributesPostModifiedDateQuery,
512            attributesSortQuery,
513            attributesTitleQuery
514        );
515    });
516
517    function selectedAttributeTerm(clickedItem) {
518        var itemElementID = clickedItem.closest('.gp-element-attribute-filters').data('item-element-id');
519        var vars = {
520            itemElementID: itemElementID,
521            clickedItem: clickedItem,
522            itemsParentContainer: $('#' + itemElementID).find('.gp-element-items-wrapper'),
523            itemsContainer: $('#' + itemElementID).find('.gp-element-items'),
524            sort: clickedItem.closest('.gp-attribute-terms').data('sort'),
525            taxonomy: clickedItem.closest('.gp-attribute-terms').data('taxonomy'),
526            metaKey: clickedItem.closest('.gp-attribute-terms').data('meta-key'),
527            maxValue: clickedItem.find('option:selected').data('max-value'),
528            //maxValue: clickedItem.data( 'max-value' ),
529            metaCompare: clickedItem.closest('.gp-attribute-terms').data('meta-compare'),
530            metaType: clickedItem.closest('.gp-attribute-terms').data('meta-type'),
531        };
532        return vars;
533    }
534
535    // Get current selected sort and taxonomy values from Heading element
536    /*REMOVE
537	function setHeadingSortTaxValues( type, itemID ) {
538			
539		if ( 'attributes' === type ) {
540
541			// Clear selected sort filter link
542			//$( '.gp-heading-filters[data-item-element-id="' + itemID + '"]' ).find( '.gp-sort-filter .gp-filter-link' ).removeClass( 'gp-selected' );
543		
544			// Clear selected tax filter link
545			//$( '.gp-heading-filters[data-item-element-id="' + itemID + '"]' ).find( '.gp-tax-filter .gp-filter-link' ).removeClass( 'gp-selected' );
546			
547			var filter_sort = $( '.gp-heading-filters[data-item-element-id="' + itemID + '"]' ).find( '.gp-sort-filter .gp-filter-link.gp-selected' ).data( 'sort' );
548			var filter_tax = $( '.gp-heading-filters[data-item-element-id="' + itemID + '"]' ).find( '.gp-tax-filter .gp-filter-link.gp-selected' ).data( 'taxonomy' );
549
550
551		}
552		
553	}
554	//setHeadingSortTaxValues();*/
555});
556
557// Item filtering
558function gpItemsFilter(
559    $,
560    link,
561    itemsParentContainer,
562    itemsContainer,
563    linkType,
564    attributesTaxQuery,
565    attributesMetaQuery,
566    attributesPostDateQuery,
567    attributesPostModifiedDateQuery,
568    attributesSortQuery,
569    attributesTitleQuery
570) {
571    if (link.length) {
572        // Extract page number from URL
573        var currentPage = '';
574        if (link.attr('href').match('paged=')) {
575            currentPage = link.attr('href').match(/paged=(\d+)/)[1];
576        } else if (link.attr('href').match('page')) {
577            currentPage = link.attr('href').match(/page\/(\d+)/)[1];
578        } else if (link.attr('href').match(/#\d+/)) {
579            currentPage = link.attr('href').match(/#(\d+)/)[1];
580        } else if (link.attr('href').match(/\d+/)) {
581            currentPage = link.attr('href').match(/\d+/)[0];
582        }
583
584        // Add selected class to currently clicked filter link
585        link.addClass('gp-selected');
586    }
587
588    // Add loading class to container
589    itemsParentContainer.addClass('gp-loading');
590
591    var gapFiller = itemsParentContainer.find('.gp-items-gap-filler');
592
593    // Set parent container height so jump on page
594    if (!itemsContainer.hasClass('gp-items-masonry')) {
595        // Get items total height
596        var itemsContainerMinHeight = itemsContainer.height();
597
598        // Add items height while old items are removed
599        gapFiller.css('min-height', itemsContainerMinHeight);
600    }
601
602    // Get the current taxonomy term if one is set
603    if (link.length) {
604        var filter_taxonomy = 0,
605            filter_term = 0,
606            itemElementID = link.closest('.elementor-widget-ghostpool_items').attr('id');
607
608        // If clicking taxonomy filter link
609        if (undefined !== link.data('term')) {
610            filter_taxonomy = link.closest('.gp-tax-filter').data('taxonomy');
611            filter_term = link.data('term');
612
613            // Get already selected tax filter if clicking sort filter
614        } else if (undefined !== link.closest('.gp-heading-filters').find('.gp-tax-filter .gp-selected').data('term')) {
615            filter_taxonomy = link.closest('.gp-heading-filters').find('.gp-tax-filter').data('taxonomy');
616            filter_term = link.closest('.gp-heading-filters').find('.gp-tax-filter .gp-selected').data('term');
617
618            // If clicking pagination get tax filter from heading
619        } else if (
620            undefined !==
621            $('.gp-heading-filters[data-item-element-id="' + itemElementID + '"]')
622                .find('.gp-tax-filter .gp-selected')
623                .data('term')
624        ) {
625            filter_taxonomy = $('.gp-heading-filters[data-item-element-id="' + itemElementID + '"]')
626                .find('.gp-tax-filter')
627                .data('taxonomy');
628            filter_term = $('.gp-heading-filters[data-item-element-id="' + itemElementID + '"]')
629                .find('.gp-tax-filter .gp-selected')
630                .data('term');
631        }
632    }
633
634    // Get the current sort order if one is set
635    let filter_sort = '';
636
637    // From Heading element
638    if (link.length) {
639        let itemElementID = link.closest('.elementor-widget-ghostpool_items').attr('id');
640
641        // If clicking sort filter link
642        if (undefined !== link.data('sort')) {
643            filter_sort = link.data('sort');
644
645            // Get already selected sort filter if clicking tax filter
646        } else if (
647            undefined !== link.closest('.gp-heading-filters').find('.gp-sort-filter .gp-selected').data('sort')
648        ) {
649            filter_sort = link.closest('.gp-heading-filters').find('.gp-sort-filter .gp-selected').data('sort');
650
651            // If clicking pagination link get sort filter from heading
652        } else if (
653            undefined !==
654            $('.gp-heading-filters[data-item-element-id="' + itemElementID + '"]')
655                .find('.gp-sort-filter .gp-selected')
656                .data('sort')
657        ) {
658            filter_sort = $('.gp-heading-filters[data-item-element-id="' + itemElementID + '"]')
659                .find('.gp-sort-filter .gp-selected')
660                .data('sort');
661        }
662    } else {
663        let itemElementID = itemsContainer.closest('.elementor-widget-ghostpool_items').attr('id');
664
665        // From Attributes element
666        if (
667            undefined !==
668            $('.gp-element-attribute-filters[data-item-element-id="' + itemElementID + '"]').find(
669                '.gp-attribute-terms[data-type="sort-query"] select'
670            )
671        ) {
672            filter_sort = $('.gp-element-attribute-filters[data-item-element-id="' + itemElementID + '"]')
673                .find('.gp-attribute-terms[data-type="sort-query"] select')
674                .val();
675        }
676    }
677
678    $.ajax({
679        type: 'GET',
680        url: ghostpool_items_params.ajax_url,
681        data: {
682            action: 'load_new_items',
683            post_id: itemsContainer.data('post-id'),
684            term_id: itemsContainer.data('term-id'),
685            post_types: itemsContainer.data('post-types'),
686            post_subtypes: itemsContainer.data('post-subtypes'),
687            posts: itemsContainer.data('posts'),
688            pages: itemsContainer.data('pages'),
689            post_statuses: itemsContainer.data('post-statuses'),
690            authors: itemsContainer.data('authors'),
691            offset: itemsContainer.data('offset'),
692            sort: itemsContainer.data('sort'),
693            current_query_sort: itemsContainer.data('current-query-sort'),
694            limit_sort_values: itemsContainer.data('limit-sort-values'),
695            limit_release_dates: itemsContainer.data('limit-release-dates'),
696            number: itemsContainer.data('number'),
697            tax_query: itemsContainer.data('tax-query'),
698            tax_query_relationship: itemsContainer.data('tax-query-relationship'),
699            meta_query: itemsContainer.data('meta-query'),
700            meta_query_relationship: itemsContainer.data('meta-query-relationship'),
701            current_query_items: itemsContainer.data('current-query-items'),
702            current_query: itemsContainer.data('current-query'),
703            current_user_items: itemsContainer.data('current-user-items'),
704            user_id: itemsContainer.data('user-id'),
705            current_hub_associated_items: itemsContainer.data('current-hub-associated-items'),
706            followed_items: itemsContainer.data('followed-items'),
707            matching_terms_items: itemsContainer.data('matching-terms-items'),
708            matching_terms_taxonomies: itemsContainer.data('matching-terms-taxonomies'),
709            matching_terms_relationship: itemsContainer.data('matching-terms-relationship'),
710            exclude_current_item: itemsContainer.data('exclude-current-item'),
711            format: itemsContainer.data('format'),
712            item_template_primary: itemsContainer.data('item-template-primary'),
713            item_template_secondary: itemsContainer.data('item-template-secondary'),
714            pagination_format: itemsContainer.data('pagination-format'),
715            disable_ajax_pagination: itemsContainer.data('disable-ajax-pagination'),
716            pagination_style: itemsContainer.data('pagination-style'),
717            prev_arrow_icon: itemsContainer.data('prev-arrow-icon'),
718            next_arrow_icon: itemsContainer.data('next-arrow-icon'),
719            no_items_found_message: itemsContainer.data('no-items-found-message'),
720            search: itemsContainer.data('search'),
721            filter_taxonomy: filter_taxonomy,
722            filter_term: filter_term,
723            filter_sort: filter_sort,
724            attributes_tax_query: attributesTaxQuery,
725            attributes_meta_query: attributesMetaQuery,
726            attributes_post_date_query: attributesPostDateQuery,
727            attributes_post_modified_date_query: attributesPostModifiedDateQuery,
728            attributes_sort_query: attributesSortQuery,
729            attributes_title_query: attributesTitleQuery,
730            current_page: currentPage,
731        },
732        dataType: 'html',
733        success: function (data) {
734            if (linkType === 'load-more') {
735                var currentLastItem = itemsContainer.find('.gp-item').last(),
736                    newItems = $(data).find('.gp-item'),
737                    newPagination = $(data).find('.gp-pagination');
738
739                // Continue increment number elements if present
740                if (currentLastItem.find('.gp-element-number').length) {
741                    var lastNumber = parseInt(currentLastItem.find('.gp-element-number').text());
742                    newItems.each(function (index, item) {
743                        lastNumber++;
744                        $(item).find('.gp-element-number').text(lastNumber);
745                    });
746                }
747
748                // Add new items after current last item
749                if (itemsContainer.hasClass('gp-items-masonry')) {
750                    $(data)
751                        .find('.gp-items-masonry')
752                        .imagesLoaded({ background: true }, function () {
753                            masonryIsotope.isotope('insert', newItems);
754                            masonryIsotope.isotope('layout');
755                        });
756                } else {
757                    currentLastItem.after(newItems).hide().fadeIn(400);
758                }
759
760                // Remove previous pagination
761                itemsParentContainer.find('.gp-pagination').remove();
762
763                // Add new pagination
764                if (newPagination.length) {
765                    gapFiller.after(newPagination);
766                }
767
768                // Show new content
769                itemsContainer.hide().fadeIn(400);
770
771                // Remove loading class from container
772                itemsParentContainer.removeClass('gp-loading');
773            } else {
774                // Get new content
775                var newContent = $(data).find('.gp-element-items').contents(),
776                    newPagination = $(data).find('.gp-ajax-pagination.gp-pagination');
777
778                // Show new content - Masonry
779                if (itemsContainer.hasClass('gp-items-masonry')) {
780                    masonryIsotope.isotope('remove', itemsContainer.find('.gp-item'));
781                    $(data)
782                        .find('.gp-items-masonry')
783                        .imagesLoaded({ background: true }, function () {
784                            masonryIsotope.isotope('insert', $(data).find('.gp-item'));
785                            masonryIsotope.isotope('layout');
786                        });
787
788                    // Show new content - Standard
789                } else {
790                    itemsContainer.html(newContent).hide();
791
792                    // Once new posts have loaded remove min-height from gap filler
793                    itemsContainer.find('.gp-item').fadeIn(400, function () {
794                        gapFiller.css('min-height', 0);
795                    });
796                }
797
798                // Remove previous pagination
799                itemsParentContainer.find('.gp-ajax-pagination.gp-pagination').remove();
800
801                // Add new pagination
802                if (newPagination.length) {
803                    gapFiller.after(newPagination);
804                }
805
806                // Show new content
807                itemsContainer.hide().fadeIn(400);
808
809                // Remove loading class from container
810                itemsParentContainer.removeClass('gp-loading');
811            }
812
813            if ($('video, audio').length > 0) {
814                $('video, audio').mediaelementplayer({
815                    alwaysShowControls: true,
816                });
817            }
818
819            if ($.isFunction(window.gpSectionElement)) {
820                gpSectionElement($);
821            }
822
823            if ($.isFunction(window.gpStretchImage)) {
824                gpStretchImage($);
825            }
826
827            if ($.isFunction(window.gpGallerySlider)) {
828                gpGallerySlider($);
829            }
830
831            if ($.isFunction(window.gpHideSliderNav)) {
832                gpHideSliderNav($);
833            }
834
835            if ($.isFunction(window.gpHideAudioPlayer)) {
836                gpHideAudioPlayer($);
837            }
838
839            if ($.isFunction(window.gpFollowItem)) {
840                gpFollowItem($);
841            }
842
843            if ($.isFunction(window.gpPopupElement)) {
844                gpPopupElement($);
845            }
846
847            if ($('input.rating').length) {
848                $('input.rating').rating();
849            }
850
851            GhostPoolScripts.gpResizeEmbeds();
852
853            return false;
854        },
855        error: function (xhr, status, error) {},
856    });
857}

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.