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.