{"version":3,"file":"archive-recipe.19ef32.js","mappings":"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","sources":["webpack://soyvay-com/./js/src/pages/archive-recipe.js"],"sourcesContent":["/**\n * archive recipe js\n * js functions for the recipe finder and results page\n *\n */\n(function ($) {\n SoyVay.archiveRecipes = (function () {\n function privateInit() {\n const $filters = $('.js-recipe-filters');\n const $results = $('.js-recipe-results');\n const $toggles = $('.js-recipe-toggles').find('[data-toggle]');\n const favoritesCookie = SoyVay.readCookie('favoriteRecipes');\n const favoritesArray = favoritesCookie ? JSON.parse(favoritesCookie) : [];\n\n if (favoritesArray.length > 0) {\n $('#my-favorites-filter').show();\n }\n\n const updateResults = function () {\n const uriRequest = window.location.href;\n // if js-load is not a param, add it to avoid page caching issues\n const jsRequest = uriRequest.indexOf('&js-load=1') > -1 ? uriRequest : `${uriRequest}&js-load=1`;\n $.get(jsRequest, (results) => {\n $results.html(results);\n updateFilters();\n // $('.js-count').text(SoyVay.resultsCount);\n SoyVay.handleFavorite.init();\n }).fail(() => {\n console.log('could not get data');\n });\n };\n\n const updateLabels = function () {\n $filters.find('input[type=radio]').each(function (i) {\n $(this).parent().removeClass('checked');\n if ($(this).prop('checked')) {\n $(this).parent().addClass('checked');\n }\n });\n };\n\n // reset state of visible filter groups\n const hideFilters = function () {\n $filters.find('.recipe-filters__fieldset').removeClass('visible');\n };\n\n const updateToggles = function () {\n $toggles.removeClass('checked');\n const checkedFilters = $filters.find('.checked');\n checkedFilters.each(function (i) {\n const winner = $(this).parents('.recipe-filters__fieldset').attr('id');\n $(`[data-toggle=${winner}]`).addClass('checked');\n });\n };\n\n const clearFilters = function () {\n $filters.find('input[type=radio]').each(function (i) {\n $(this).removeAttr('checked');\n });\n\n $filters.find('label').each(function (i) {\n $(this).removeClass('selected');\n });\n\n if (typeof window.history.replaceState !== 'undefined') {\n window.history.replaceState(null, 'Updated filters', '?');\n }\n\n updateLabels();\n updateToggles();\n hideFilters();\n updateResults();\n };\n\n const clearToggleSelection = function () {\n $toggles.each(function (i) {\n $(this).removeClass('selected');\n $(this).removeClass('checked');\n });\n };\n\n const updateFilters = function () {\n $('.js-recipe-filters').on('change', () => {\n if (typeof window.history.replaceState !== 'undefined') {\n let serialize = $('.js-recipe-filters').serialize();\n // if request includes My Favorites include the cookie value to bypass caching\n if (favoritesArray.length > 0 && serialize.indexOf('category=my-favorites') > -1) {\n serialize += serialize.indexOf('&favorite=') > -1 ? '' : `&favorite=${favoritesCookie}`;\n }\n window.history.replaceState(null, 'Updated filters', `?${serialize}`);\n }\n updateLabels();\n updateToggles();\n updateResults();\n });\n };\n\n $toggles.on('click', function () {\n clearToggleSelection();\n hideFilters();\n $(this).addClass('selected');\n\n if ($(this).not('checked')) {\n const winner = $(this).data('toggle');\n $(`#${winner}`).addClass('visible');\n $(`#${winner}`).find('.recipe-filters__filter').first().focus();\n }\n });\n\n $filters.find('.recipe-filters__filter').on('keydown', function (event) {\n if (event.which === 13) {\n // enter\n // simulate click to employ the filter\n $(this).click();\n } else if (event.which === 27) {\n // escape\n // refocus to the toggle button that controls this set\n const control = $(this).parents('.recipe-filters__fieldset').attr('id');\n $(`[data-toggle=${control}]`).focus();\n }\n });\n\n $($toggles, $filters).on('keydown', (event) => {\n if (event.which === 8) {\n // backspace\n // clear all filters\n clearFilters();\n clearToggleSelection();\n }\n });\n\n $('[data-clear]').on('click', () => {\n clearFilters();\n clearToggleSelection();\n });\n\n updateLabels();\n updateToggles();\n updateFilters();\n }\n return {\n init() {\n privateInit();\n },\n };\n })();\n\n // document ready\n $(document).ready(() => {\n SoyVay.archiveRecipes.init();\n });\n})(jQuery);\n"],"names":["$","jQuery","SoyVay","archiveRecipes","init","$filters","$results","$toggles","find","favoritesCookie","readCookie","favoritesArray","JSON","parse","length","show","updateResults","uriRequest","window","location","href","jsRequest","indexOf","concat","get","results","html","updateFilters","handleFavorite","fail","console","log","updateLabels","each","i","this","parent","removeClass","prop","addClass","hideFilters","updateToggles","winner","parents","attr","clearFilters","removeAttr","history","replaceState","clearToggleSelection","on","serialize","not","data","first","focus","event","which","click","control","privateInit","document","ready"],"sourceRoot":""}