(function($) { 'use strict'; const dcHiddenSelector = '.dc-hidden-column', dcHideWrapperSelector = '.dc-hide-wrapper', dcHideOthersSelector = '.dc-hide-others', dcRowSelector = '.elementor-row,.elementor-container', dcColumnSelector = '> .elementor-column'; function resizeColumns() { const $columns = $(dcHiddenSelector); $columns.each(function(index, column) { const $column = $(column), hiddenSize = parseFloat($column.data('size')), $row = $column.closest(dcRowSelector), $children = $row.find(dcColumnSelector); if ($children.length === 0) { return; } // get percent-width of row const rowSize = $children.toArray().reduce( (acc, child) => acc + calcRowWidth($(child), $row), 0 ); $children.each(function(cIndex, child) { // resize columns const $child = $(child), childSize = calcRowWidth($child, $row), newSize = childSize + (hiddenSize * (childSize / rowSize)); if (childSize < 100) { $child.css({width: newSize + '%'}); } }); }); } function calcRowWidth($child, $row) { return parseFloat($child.width() / $row.width() * 100); } function resetColumns() { const $columns = $(dcHiddenSelector); $columns.each(function(index, column) { const $children = $(column).closest(dcRowSelector).find(dcColumnSelector); // reset width for recalc $children.css({width: ''}); }); } function hideWrappers() { const $elements = $(dcHideWrapperSelector); $elements.each(function(index, element) { const $element = $(element), $wrapper = $element.closest($element.data('selector')); $wrapper.css({display: 'none'}); }); } function hideOthers() { const $elements = $(dcHideOthersSelector); $elements.each(function(index, element) { const $element = $(element), $toHide = $($element.data('selector')); $toHide.css({display: 'none'}); }); } $(window).on('resize', function() { resetColumns(); resizeColumns(); }); $(window).on('elementor/frontend/init', function() { resetColumns(); resizeColumns(); hideWrappers(); hideOthers(); }); })(jQuery); ; /** * Responsive design */ function learndash_course_grid_init_grid_responsive_design() { const wrappers = document.querySelectorAll( '.learndash-course-grid[data-skin="grid"]' ); wrappers.forEach( function( wrapper ) { const items_wrapper = wrapper.querySelector( '.items-wrapper.grid' ); if ( ! items_wrapper ) { return; } const first_item = items_wrapper.firstElementChild; if ( ! first_item ) { return; } // Set columns const min_width = wrapper.dataset.min_column_width; let columns = wrapper.dataset.columns; columns = parseInt( columns ); let new_columns = wrapper.dataset.new_columns || columns; new_columns = parseInt( new_columns ); const wrapper_width = wrapper.offsetWidth; let upper_columns = new_columns + 1; upper_columns = upper_columns > columns ? columns : upper_columns; const min_item_width = wrapper_width / upper_columns; new_columns = Math.floor( wrapper_width / min_width ); let item_width = first_item.offsetWidth; if ( item_width < min_width ) { new_columns = new_columns > columns ? columns : new_columns; new_columns = new_columns < 1 ? 1 : new_columns; wrapper.dataset.new_columns = new_columns; items_wrapper.style.gridTemplateColumns = 'repeat( ' + new_columns + ', minmax( 0, 1fr ) )'; } else if ( min_item_width > min_width ) { new_columns = new_columns > columns ? columns : new_columns; new_columns = new_columns < 1 ? 1 : new_columns; wrapper.dataset.new_columns = new_columns; items_wrapper.style.gridTemplateColumns = 'repeat( ' + new_columns + ', minmax( 0, 1fr ) )'; } const items = items_wrapper.querySelectorAll( '.item' ); items.forEach( function( item ) { // Display item item.style.visibility = 'visible'; } ); } ); } ( function() { window.addEventListener( 'resize', function() { learndash_course_grid_init_grid_responsive_design(); } ); window.addEventListener( 'load', function() { learndash_course_grid_init_grid_responsive_design(); } ); } )(); ; /******/ (() => { // webpackBootstrap /*!*********************************!*\ !*** ./src/assets/js/script.js ***! \*********************************/ (function () { // eslint-disable-next-line camelcase function ajax_apply_filter(course_grid, filter) { const data = { action: 'ld_cg_apply_filter', // eslint-disable-next-line camelcase, no-undef nonce: LearnDash_Course_Grid.nonce.load_posts, filter: prepare_filter(filter), course_grid: { // eslint-disable-next-line camelcase ...course_grid.dataset } }; data.filter = JSON.stringify(data.filter); data.course_grid = JSON.stringify(data.course_grid); // eslint-disable-next-line camelcase, no-undef fetch(LearnDash_Course_Grid.ajaxurl, { method: 'POST', credentials: 'same-origin', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams(data) }).then(response => { return response.json(); }) // eslint-disable-next-line no-shadow .then(data => { if (typeof data !== 'undefined') { // eslint-disable-next-line eqeqeq if (data.status == 'success') { // eslint-disable-next-line camelcase const items_wrapper = // eslint-disable-next-line camelcase course_grid.querySelector('.items-wrapper'); // eslint-disable-next-line camelcase items_wrapper.style.visibility = 'hidden'; // eslint-disable-next-line camelcase items_wrapper.innerHTML = data.html; // eslint-disable-next-line camelcase course_grid.dataset.page = data.page; const pagination = // eslint-disable-next-line camelcase course_grid.querySelector('.pagination'); if (!pagination) { // eslint-disable-next-line camelcase course_grid.insertAdjacentHTML('beforeend', data.html_pagination); } // eslint-disable-next-line eqeqeq if (data.html_pagination == '') { // eslint-disable-next-line no-shadow const pagination = // eslint-disable-next-line camelcase course_grid.querySelector('.pagination'); if (pagination) { pagination.remove(); } } // eslint-disable-next-line camelcase, eqeqeq if (course_grid.dataset.skin == 'grid') { setTimeout(function () { // eslint-disable-next-line no-undef learndash_course_grid_init_grid_responsive_design(); }, 500); // eslint-disable-next-line camelcase, eqeqeq } else if (course_grid.dataset.skin == 'masonry') { setTimeout(function () { // eslint-disable-next-line no-undef learndash_course_grid_init_masonry( // eslint-disable-next-line camelcase course_grid.querySelector('.masonry')); }, 500); } else { setTimeout(function () { // eslint-disable-next-line camelcase items_wrapper.style.visibility = 'visible'; }, 500); } } } }).catch(error => { // eslint-disable-next-line no-console console.log(error); }); } // eslint-disable-next-line camelcase function ajax_init_infinite_scrolling(el) { const wrapper = el.closest('.learndash-course-grid'); if (!wrapper) { // eslint-disable-next-line camelcase infinite_scroll_run = false; return false; } const filter = document.querySelector('.learndash-course-grid-filter[data-course_grid_id="' + wrapper.id + '"]'); const data = { action: 'ld_cg_load_more', // eslint-disable-next-line camelcase, no-undef nonce: LearnDash_Course_Grid.nonce.load_posts, course_grid: JSON.stringify(wrapper.dataset), filter: JSON.stringify(prepare_filter(filter)) }; fetch( // eslint-disable-next-line camelcase, no-undef LearnDash_Course_Grid.ajaxurl + '?' + new URLSearchParams(data), { method: 'GET', headers: { 'Content-Type': 'application/json' } }).then(response => { return response.json(); }) // eslint-disable-next-line no-shadow .then(data => { if (typeof data !== 'undefined') { // eslint-disable-next-line eqeqeq if (data.status == 'success') { wrapper.querySelector('.items-wrapper').insertAdjacentHTML('beforeend', data.html); if (data.page !== 'complete') { wrapper.dataset.page = data.page; } // eslint-disable-next-line eqeqeq if (wrapper.dataset.pagination == 'infinite') { // eslint-disable-next-line camelcase infinite_scroll_run = false; } // eslint-disable-next-line eqeqeq if (data.page == 'complete') { const pagination = wrapper.querySelector('.pagination'); pagination.remove(); } // eslint-disable-next-line eqeqeq if (wrapper.dataset.skin == 'grid') { setTimeout(function () { // eslint-disable-next-line no-undef learndash_course_grid_init_grid_responsive_design(); }, 500); // eslint-disable-next-line eqeqeq } else if (wrapper.dataset.skin == 'masonry') { wrapper.style.visibility = 'hidden'; setTimeout(function () { // eslint-disable-next-line no-undef learndash_course_grid_init_masonry(wrapper.querySelector('.masonry')); wrapper.style.visibility = 'visible'; }, 500); } } } }).catch(error => { // eslint-disable-next-line no-console console.log(error); }); } // eslint-disable-next-line camelcase function in_viewport(element) { const pos = element.getBoundingClientRect(); // eslint-disable-next-line no-undef return !(pos.top > innerHeight || pos.bottom < 0); } // eslint-disable-next-line camelcase function prepare_filter(filter) { const data = {}; if (!filter) { return data; } const search = filter.querySelector('input[name="search"]'); // eslint-disable-next-line camelcase const price_min = filter.querySelector('[name="price_min"]'); // eslint-disable-next-line camelcase const price_max = filter.querySelector('[name="price_max"]'); data.search = search ? search.value : null; let taxonomies = filter.dataset.taxonomies; taxonomies = taxonomies.split(',').map(function (value) { return value.trim(); }); // eslint-disable-next-line camelcase data.price_min = price_min ? price_min.value : null; // eslint-disable-next-line camelcase data.price_max = price_max ? price_max.value : null; taxonomies.forEach(function (taxonomy) { const inputs = filter.querySelectorAll('input[name="' + taxonomy + '[]"]:checked'); const values = []; inputs.forEach(function (input) { values.push(input.value); }); data[taxonomy] = values; }); return data; } // Toggle filter display handler document.addEventListener('click', function (e) { const el = e.target; if (el.matches('.learndash-course-grid .toggle-filter')) { if (el.nextElementSibling.style.display === 'none' || el.nextElementSibling.style.display === '') { el.classList.remove('closed'); el.classList.add('opened'); el.nextElementSibling.style.display = 'block'; } else { el.classList.remove('opened'); el.classList.add('closed'); el.nextElementSibling.style.display = 'none'; } } }); // Apply filter handler // eslint-disable-next-line camelcase const filter_submit = document.querySelectorAll('.learndash-course-grid-filter .button.apply'); // eslint-disable-next-line camelcase if (filter_submit) { // eslint-disable-next-line camelcase filter_submit.forEach(function (el) { el.addEventListener('click', function (e) { e.preventDefault(); const filter = this.closest('.learndash-course-grid-filter'); if (filter) { // eslint-disable-next-line camelcase const course_grid = document.getElementById(filter.dataset.course_grid_id); ajax_apply_filter(course_grid, filter); } if (filter.previousElementSibling && filter.previousElementSibling.classList.contains('toggle-filter')) { filter.previousElementSibling.classList.remove('opened'); filter.previousElementSibling.classList.add('closed'); filter.style.display = 'none'; } }); }); } // Clear filter handler // eslint-disable-next-line camelcase const filter_clear = document.querySelectorAll('.learndash-course-grid-filter .button.clear'); // eslint-disable-next-line camelcase if (filter_clear) { // eslint-disable-next-line camelcase filter_clear.forEach(function (el) { el.addEventListener('click', function (e) { e.preventDefault(); const filter = this.closest('.learndash-course-grid-filter'); if (filter) { const search = filter.querySelector('input[name="search"]'); // eslint-disable-next-line camelcase const price_min = filter.querySelector('input[name="price_min"]'); // eslint-disable-next-line camelcase const price_max = filter.querySelector('input[name="price_max"]'); // eslint-disable-next-line camelcase const price_min_range = filter.querySelector('input[name="price_min_range"]'); // eslint-disable-next-line camelcase const price_max_range = filter.querySelector('input[name="price_max_range"]'); if (search) { filter.querySelector('input[name="search"]').value = ''; } // eslint-disable-next-line camelcase if (price_min) { filter.querySelector('input[name="price_min"]').value = ''; } // eslint-disable-next-line camelcase if (price_max) { filter.querySelector('input[name="price_max"]').value = ''; } // eslint-disable-next-line camelcase if (price_min_range) { filter.querySelector('input[name="price_min_range"]').value = ''; } // eslint-disable-next-line camelcase if (price_max_range) { filter.querySelector('input[name="price_max_range"]').value = ''; } filter.dataset.taxonomies.split(',').forEach(function (taxonomy) { taxonomy = taxonomy.trim(); // eslint-disable-next-line eqeqeq if (taxonomy != '') { filter.querySelectorAll('input[name="' + taxonomy + '[]"]:not([disabled])').forEach(function (input) { input.checked = false; }); } }); // eslint-disable-next-line camelcase const course_grid = document.getElementById(filter.dataset.course_grid_id); ajax_apply_filter(course_grid, filter); if (filter.previousElementSibling && filter.previousElementSibling.classList.contains('toggle-filter')) { filter.previousElementSibling.classList.remove('opened'); filter.previousElementSibling.classList.add('closed'); filter.style.display = 'none'; } } }); }); } // Dynamic input value update for price filter inputs document.addEventListener('input', function (e) { if (e.target.classList.contains('range')) { const name = e.target.name, value = e.target.value, // eslint-disable-next-line camelcase price_wrapper = e.target.closest('.filter'); switch (name) { case 'price_min_range': // eslint-disable-next-line camelcase price_wrapper.querySelector('[name="price_min"]').value = value; break; case 'price_max_range': // eslint-disable-next-line camelcase price_wrapper.querySelector('[name="price_max"]').value = value; break; } } if (e.target.closest('.number-wrapper') !== null && // eslint-disable-next-line eqeqeq e.target.type == 'number') { const name = e.target.name, value = e.target.value, // eslint-disable-next-line camelcase price_wrapper = e.target.closest('.filter'); switch (name) { case 'price_min': // eslint-disable-next-line camelcase price_wrapper.querySelector('[name="price_min_range"]').value = value; break; case 'price_max': // eslint-disable-next-line camelcase price_wrapper.querySelector('[name="price_max_range"]').value = value; break; } } }); /** * Pagination */ // Load more button pagination handler document.addEventListener('click', function (e) { const el = e.target; if (!el.matches('.learndash-course-grid[data-pagination="button"] .pagination .load-more')) { return; } e.preventDefault(); const wrapper = el.closest('.learndash-course-grid'); const filter = document.querySelector('.learndash-course-grid-filter[data-course_grid_id="' + wrapper.id + '"]'); const data = { action: 'ld_cg_load_more', // eslint-disable-next-line camelcase, no-undef nonce: LearnDash_Course_Grid.nonce.load_posts, course_grid: JSON.stringify(wrapper.dataset), filter: JSON.stringify(prepare_filter(filter)) }; // AJAX request fetch( // eslint-disable-next-line camelcase, no-undef LearnDash_Course_Grid.ajaxurl + '?' + new URLSearchParams(data), { method: 'GET', headers: { 'Content-Type': 'application/json' } }).then(response => { return response.json(); }) // eslint-disable-next-line no-shadow .then(data => { if (typeof data !== 'undefined') { // eslint-disable-next-line eqeqeq if (data.status == 'success') { // eslint-disable-next-line camelcase const items_wrapper = wrapper.querySelector('.items-wrapper'); // eslint-disable-next-line camelcase items_wrapper.insertAdjacentHTML('beforeend', data.html); if (data.page !== 'complete') { wrapper.dataset.page = data.page; } // eslint-disable-next-line eqeqeq if (data.page == 'complete') { const pagination = wrapper.querySelector('.pagination'); if (pagination) { pagination.remove(); } } if ( // eslint-disable-next-line eqeqeq wrapper.dataset.skin == 'grid' && // eslint-disable-next-line eqeqeq data.html != '') { setTimeout(function () { // eslint-disable-next-line no-undef learndash_course_grid_init_grid_responsive_design(); }, 500); } else if ( // eslint-disable-next-line eqeqeq wrapper.dataset.skin == 'masonry' && // eslint-disable-next-line eqeqeq data.html != '') { wrapper.style.visibility = 'hidden'; setTimeout(function () { // eslint-disable-next-line no-undef learndash_course_grid_init_masonry(wrapper.querySelector('.masonry')); wrapper.style.visibility = 'visible'; }, 500); } } } }).catch(error => { // eslint-disable-next-line no-console console.log(error); }); }); // Infinite scrolling handler // eslint-disable-next-line camelcase let infinite_scroll_run = false; document.addEventListener('scroll', function () { // eslint-disable-next-line camelcase const infinite_scroll_elements = document.querySelectorAll('.learndash-course-grid[data-pagination="infinite"] .pagination'); // eslint-disable-next-line camelcase if (infinite_scroll_elements) { // eslint-disable-next-line camelcase infinite_scroll_elements.forEach(function (infinite_scroll) { // Make sure the function is called only once // eslint-disable-next-line camelcase if (in_viewport(infinite_scroll) && !infinite_scroll_run) { // eslint-disable-next-line camelcase infinite_scroll_run = true; ajax_init_infinite_scrolling(infinite_scroll); } }); } }); })(); /******/ })() ; //# sourceMappingURL=script.js.map; /******/ (() => { // webpackBootstrap /*!************************************!*\ !*** ./src/assets/js/elementor.js ***! \************************************/ /** * Elementor compatibility script */ (function () { let gridFound, masonryFound; // eslint-disable-next-line no-undef const gridObserver = new MutationObserver(function (mutations) { mutations.forEach(function (mutationRecord) { const grid = mutationRecord.target.querySelector('.learndash-course-grid'), skin = grid.dataset.skin, display = mutationRecord.target.style.display; if ('none' !== display) { if ('grid' === skin) { gridFound = true; } else if ('masonry' === skin) { masonryFound = true; } } }); if (gridFound && 'function' === // eslint-disable-next-line camelcase typeof learndash_course_grid_init_grid_responsive_design) { // eslint-disable-next-line no-undef learndash_course_grid_init_grid_responsive_design(); } if (masonryFound && 'function' === // eslint-disable-next-line camelcase typeof learndash_course_grid_init_masonry_responsive_design) { // eslint-disable-next-line no-undef learndash_course_grid_init_masonry_responsive_design(); } }); const grids = document.querySelectorAll('.learndash-course-grid'); grids.forEach(function (grid) { const target = grid.closest('.elementor-tab-content'); if (target) { gridObserver.observe(target, { attributes: true, attributeFilter: ['style'] }); } }); })(); /******/ })() ; //# sourceMappingURL=elementor.js.map; /*! This file is auto-generated */ (()=>{var t={507:(t,e,r)=>{"use strict";r.d(e,{A:()=>A});var n=function(t){return"string"!=typeof t||""===t?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(t)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var i=function(t){return"string"!=typeof t||""===t?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(t)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(t)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var o=function(t,e){return function(r,o,s,c=10){const l=t[e];if(!i(r))return;if(!n(o))return;if("function"!=typeof s)return void console.error("The hook callback must be a function.");if("number"!=typeof c)return void console.error("If specified, the hook priority must be a number.");const a={callback:s,priority:c,namespace:o};if(l[r]){const t=l[r].handlers;let e;for(e=t.length;e>0&&!(c>=t[e-1].priority);e--);e===t.length?t[e]=a:t.splice(e,0,a),l.__current.forEach((t=>{t.name===r&&t.currentIndex>=e&&t.currentIndex++}))}else l[r]={handlers:[a],runs:0};"hookAdded"!==r&&t.doAction("hookAdded",r,o,s,c)}};var s=function(t,e,r=!1){return function(o,s){const c=t[e];if(!i(o))return;if(!r&&!n(s))return;if(!c[o])return 0;let l=0;if(r)l=c[o].handlers.length,c[o]={runs:c[o].runs,handlers:[]};else{const t=c[o].handlers;for(let e=t.length-1;e>=0;e--)t[e].namespace===s&&(t.splice(e,1),l++,c.__current.forEach((t=>{t.name===o&&t.currentIndex>=e&&t.currentIndex--})))}return"hookRemoved"!==o&&t.doAction("hookRemoved",o,s),l}};var c=function(t,e){return function(r,n){const i=t[e];return void 0!==n?r in i&&i[r].handlers.some((t=>t.namespace===n)):r in i}};var l=function(t,e,r,n){return function(i,...o){const s=t[e];s[i]||(s[i]={handlers:[],runs:0}),s[i].runs++;const c=s[i].handlers;if(!c||!c.length)return r?o[0]:void 0;const l={name:i,currentIndex:0};return(n?async function(){try{s.__current.add(l);let t=r?o[0]:void 0;for(;l.currentIndex0:Array.from(n.__current).some((t=>t.name===r))}};var u=function(t,e){return function(r){const n=t[e];if(i(r))return n[r]&&n[r].runs?n[r].runs:0}};class h{actions;filters;addAction;addFilter;removeAction;removeFilter;hasAction;hasFilter;removeAllActions;removeAllFilters;doAction;doActionAsync;applyFilters;applyFiltersAsync;currentAction;currentFilter;doingAction;doingFilter;didAction;didFilter;constructor(){this.actions=Object.create(null),this.actions.__current=new Set,this.filters=Object.create(null),this.filters.__current=new Set,this.addAction=o(this,"actions"),this.addFilter=o(this,"filters"),this.removeAction=s(this,"actions"),this.removeFilter=s(this,"filters"),this.hasAction=c(this,"actions"),this.hasFilter=c(this,"filters"),this.removeAllActions=s(this,"actions",!0),this.removeAllFilters=s(this,"filters",!0),this.doAction=l(this,"actions",!1,!1),this.doActionAsync=l(this,"actions",!1,!0),this.applyFilters=l(this,"filters",!0,!1),this.applyFiltersAsync=l(this,"filters",!0,!0),this.currentAction=a(this,"actions"),this.currentFilter=a(this,"filters"),this.doingAction=d(this,"actions"),this.doingFilter=d(this,"filters"),this.didAction=u(this,"actions"),this.didFilter=u(this,"filters")}}var A=function(){return new h}},8770:()=>{}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{actions:()=>x,addAction:()=>s,addFilter:()=>c,applyFilters:()=>m,applyFiltersAsync:()=>v,createHooks:()=>t.A,currentAction:()=>y,currentFilter:()=>F,defaultHooks:()=>o,didAction:()=>b,didFilter:()=>k,doAction:()=>f,doActionAsync:()=>p,doingAction:()=>_,doingFilter:()=>g,filters:()=>w,hasAction:()=>d,hasFilter:()=>u,removeAction:()=>l,removeAllActions:()=>h,removeAllFilters:()=>A,removeFilter:()=>a});var t=r(507),e=r(8770),i={};for(const t in e)["default","actions","addAction","addFilter","applyFilters","applyFiltersAsync","createHooks","currentAction","currentFilter","defaultHooks","didAction","didFilter","doAction","doActionAsync","doingAction","doingFilter","filters","hasAction","hasFilter","removeAction","removeAllActions","removeAllFilters","removeFilter"].indexOf(t)<0&&(i[t]=()=>e[t]);r.d(n,i);const o=(0,t.A)(),{addAction:s,addFilter:c,removeAction:l,removeFilter:a,hasAction:d,hasFilter:u,removeAllActions:h,removeAllFilters:A,doAction:f,doActionAsync:p,applyFilters:m,applyFiltersAsync:v,currentAction:y,currentFilter:F,doingAction:_,doingFilter:g,didAction:b,didFilter:k,actions:x,filters:w}=o})(),(window.wp=window.wp||{}).hooks=n})();;