{"version":3,"sources":["pages/journal.js"],"names":["$","window","$results","loadMore","$container","$pageFilter","$links","$selectNavigation","loop","Loop","on","e","preventDefault","update","this","find","text","val","array","i","addEventListener","target","href","$loadMore","attr","ajax","url","data","type","done","payload","listing_items","append","load_more_link","addClass","Astro","fancyGrid","isInViewport","elem","bounding","getBoundingClientRect","top","left","bottom","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","checkScroll","hasAttribute","button","querySelector","click","title","link","html","removeEventListener","history","replaceState","previousLink","parentNode","classList","remove","add","removeClass"],"mappings":"CAEA,SAAAA,EAAAC,GACA,IAAAC,EAAAF,EAAA,gCACAG,EAAAH,EAAA,iBAAA,GACAI,EAAAJ,EAAA,kCACAK,EAAAL,EAAA,gBACAM,EAAAN,EAAA,iBACAO,EAAAP,EAAA,8BAEAQ,EAAA,IAAAC,KAEAF,EAAAG,GAAA,SAAA,SAAAC,GACAA,EAAAC,iBACAC,EAAAb,EAAAc,MAAAC,KAAA,mBAAAC,OAAAhB,EAAAc,MAAAG,MAAA,KACA,GAEAT,EAAAU,MAAAZ,EAAA,SAAAY,EAAAC,GACAD,EAAAC,GAAAC,iBAAA,QAAA,SAAAT,GACAA,EAAAC,iBACAC,EAAAF,EAAAU,OAAAL,KAAAL,EAAAU,OAAAC,KAAAX,EAAAU,OACA,EACA,GAEArB,EAAA,kCAAAU,GAAA,QAAA,gBAAA,SAAAC,GACAA,EAAAC,iBACA,IAAAW,EAAAvB,EAAAc,MAEAS,EAAAC,KAAA,WAAA,GAEAxB,EAAAyB,KAAA,CACAC,IAAAH,EAAAI,KAAA,QACAC,KAAA,QAEAC,KAAA,SAAAF,GACAA,EAAAG,UACAH,EAAAG,QAAAC,eACA7B,EAAA8B,OAAAL,EAAAG,QAAAC,eAGAJ,EAAAG,QAAAG,gBACAV,EAAAC,KAAA,UAAA,MACAD,EAAAC,KAAA,YAAAG,EAAAG,QAAAG,gBACAV,EAAAI,KAAA,OAAAA,EAAAG,QAAAG,iBAEA7B,EAAA8B,SAAA,wBAGAC,MAAAC,WACA,EACA,GAEA,IAAAC,EAAA,SAAAC,GACA,IAAAC,EAAAD,EAAAE,wBACA,OACAD,EAAAE,KAAA,GACAF,EAAAG,MAAA,GACAH,EAAAI,SAAA1C,EAAA2C,aAAAC,SAAAC,gBAAAC,eACAR,EAAAS,QAAA/C,EAAAgD,YAAAJ,SAAAC,gBAAAI,YAEA,EAMA,SAAAC,IACA,GAAAd,EAAAlC,KACAA,EAAAiD,aAAA,WAAA,CACA,IAAAC,EAAAR,SAAAS,cAAA,iBAEAD,GACAA,EAAAE,OAEA,CAEA,CAEA,SAAA1C,EAAA2C,EAAA9B,EAAA+B,GACA,IAAAlC,EAAAvB,EAAAG,GAEAoB,EAAAC,KAAA,WAAA,GACAtB,EAAAsB,KAAA,WAAA,GACAnB,EAAAmB,KAAA,WAAA,GAEAxB,EAAAyB,KAAA,CACAC,IAAAA,EACAE,KAAA,QAEAC,KAAA,SAAAF,GAIA,GAHAzB,EAAAsB,KAAA,UAAA,MACAnB,EAAAmB,KAAA,UAAA,MAEAG,EAAAG,QAAA,CASA,GARAH,EAAAG,QAAAC,eACA7B,EAAAwD,KAAA/B,EAAAG,QAAAC,eAGA9B,EAAA0D,oBAAA,SAAAR,GAAA,GAEAS,QAAAC,aAAA,CAAA,EAAAL,EAAA9B,GAEA+B,EAAA,CACA,IAAAK,EAAAL,EAAAM,WAAAT,cAAA,8BAEAQ,GACAA,EAAAE,UAAAC,OAAA,6BAGAR,EAAAO,UAAAE,IAAA,4BACA,CAEAvC,EAAAG,QAAAG,gBACAV,EAAAC,KAAA,UAAA,MACAD,EAAAC,KAAA,YAAAG,EAAAG,QAAAG,gBACAV,EAAAI,KAAA,OAAAA,EAAAG,QAAAG,gBACA7B,EAAA+D,YAAA,uBACAlE,EAAAmB,iBAAA,SAAA+B,GAAA,IAEA/C,EAAA8B,SAAA,sBAEA,CACAC,MAAAC,WACA,EACA,CA9DAjC,GACAF,EAAAmB,iBAAA,SAAA+B,GAAA,EA+DA,CA5HA,CA4HAnD,EAAAC","file":"../../../javascript/pages/journal.js","sourceRoot":"../../../../../resources/javascript","sourcesContent":["//=require tools/loop.js\n\n;(function($, window, undefined) {\n    var $results = $('.js-journal-listing__results');\n    var loadMore = $('.js-load-more')[0];\n    var $container = $('.js-journal-listing__load-more');\n    var $pageFilter = $('.page-filter');\n    var $links = $('.js-ajax-link');\n    var $selectNavigation = $('.js-ajax-select-navigation');\n\n    var loop = new Loop();\n\n    $selectNavigation.on('change', function(e) {\n        e.preventDefault();\n        update($(this).find('option:selected').text(), $(this).val(), null);\n    })\n\n    loop.array($links, function(array, i) {\n        array[i].addEventListener('click', function(e) {\n            e.preventDefault();\n            update(e.target.text, e.target.href, e.target);\n        });\n    });\n\n    $('.js-journal-listing__load-more').on('click', '.js-load-more', function (e) {\n        e.preventDefault();\n        var $loadMore = $(this);\n\n        $loadMore.attr('loading', true);\n\n        $.ajax({\n            url: $loadMore.data('next'),\n            type: 'get',\n        })\n            .done(function (data) {\n                if (data.payload) {\n                    if (data.payload.listing_items) {\n                        $results.append(data.payload.listing_items);\n                    }\n\n                    if (data.payload.load_more_link) {\n                        $loadMore.attr('loading', null);\n                        $loadMore.attr('data-next', data.payload.load_more_link);\n                        $loadMore.data('next', data.payload.load_more_link);\n                    } else {\n                        $container.addClass('load-more--disabled');\n                    }\n                }\n                Astro.fancyGrid();\n            });\n    });\n\n    var isInViewport = function(elem) {\n        var bounding = elem.getBoundingClientRect();\n        return (\n            bounding.top >= 0 &&\n            bounding.left >= 0 &&\n            bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n            bounding.right <= (window.innerWidth || document.documentElement.clientWidth)\n        );\n    };\n\n    if (loadMore) {\n        window.addEventListener('scroll', checkScroll, false);\n    }\n\n    function checkScroll() {\n        if (isInViewport(loadMore)) {\n            if (!loadMore.hasAttribute('loading')) {\n                var button = document.querySelector('.js-load-more');\n\n                if (button) {\n                    button.click();\n                }\n            }\n        }\n    }\n\n    function update(title, url, link) {\n        var $loadMore = $(loadMore);\n\n        $loadMore.attr('loading', true);\n        $results.attr('loading', true);\n        $pageFilter.attr('loading', true);\n\n        $.ajax({\n            url: url,\n            type: 'get',\n        })\n            .done(function (data) {\n                $results.attr('loading', null);\n                $pageFilter.attr('loading', null);\n\n                if (data.payload) {\n                    if (data.payload.listing_items) {\n                        $results.html(data.payload.listing_items);\n                    }\n\n                    window.removeEventListener('scroll', checkScroll, false);\n\n                    history.replaceState({}, title, url);\n\n                    if (link) {\n                        var previousLink = link.parentNode.querySelector('.page-filter__link--active');\n\n                        if (previousLink) {\n                            previousLink.classList.remove('page-filter__link--active');\n                        }\n\n                        link.classList.add('page-filter__link--active');\n                    }\n\n                    if (data.payload.load_more_link) {\n                        $loadMore.attr('loading', null);\n                        $loadMore.attr('data-next', data.payload.load_more_link);\n                        $loadMore.data('next', data.payload.load_more_link);\n                        $container.removeClass('load-more--disabled');\n                        window.addEventListener('scroll', checkScroll, false);\n                    } else {\n                        $container.addClass('load-more--disabled');\n                    }\n                }\n                Astro.fancyGrid();\n            });\n    }\n\n})($, window);\n"]}