{"version":3,"sources":["featuresFilter.js"],"names":["$","Drupal","filterDateRangeCheckboxes","value","minTarget","maxTarget","min","split","max","console","log","val","behaviors","boatshowCustomFilters","attach","context","settings","once","each","$filtersParent","$form","closest","find","change","hasClass","viewPluginId","attr","viewId","replace","viewDisplayId","$view","openFiltersByDefault","length","css","removeClass","addClass","click","toggleClass","removeAttr","boatshowFeaturesFilter","on","class_name","grep","className","v","i","indexOf","join","$this","isSelected","selectedFilters","isFirstSelection","allCards","show","filter","hide","jQuery"],"mappings":"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","file":"featuresFilter.js","sourcesContent":["(function($, Drupal) {\n 'use strict';\n\n // Convert a single date to min (00:00:00) and max(23:59:59) for a given day\n // and set values to date-between form fields\n function filterDateRangeCheckboxes(value, minTarget, maxTarget) {\n if (value){\n let min = value.split('|')[0];\n let max = value.split('|')[1];\n console.log(min, max);\n $(minTarget).val(min);\n $(maxTarget).val(max);\n }\n }\n\n // Example of Drupal behavior loaded.\n Drupal.behaviors.boatshowCustomFilters = {\n attach: function attach(context, settings) {\n\n $('.brick--type--exposed-filters').once('boatshowCustomFilters').each(function () {\n var $filtersParent = $(this);\n const $form = $(this).closest('.brick--type--exposed-filters.collapsible');\n\n $filtersParent.find('input[type=\"radio\"][name=\"field_date_radios\"]').change(function() {\n const value = $(this).val();\n const minTarget=\"#edit-field-smnr-seminar-date-value-min\";\n const maxTarget=\"#edit-field-smnr-seminar-date-value-max\";\n filterDateRangeCheckboxes(value, minTarget, maxTarget);\n });\n\n $filtersParent.find('input[type=\"radio\"][name=\"field_speaker_radios\"]').change(function() {\n const value = $(this).val();\n $('#edit-field-smnr-speaker-target-id').val(value);\n });\n\n if ($filtersParent.hasClass('collapsible')) {\n\n // Select the view which corresponds to the exposed filters\n var viewPluginId = $filtersParent.find('.block-views').attr('data-block-plugin-id'); //e.g.\n var viewId = viewPluginId.replace('views_exposed_filter_block:','').split('-')[0];\n var viewDisplayId = viewPluginId.replace('views_exposed_filter_block:','').split('-')[1];\n var $view = $('.view-id-'+viewId+'.view-display-id-'+viewDisplayId);\n\n // Determine whether to open the filters by default\n var openFiltersByDefault = (\n ($view.find('.views-col').length >= 6) // Open by default if there are more than 6 results\n || ($filtersParent.find('[data-drupal-selector=\"edit-reset\"]').length >= 1) // Open by default if filters are set (tested using presence of reset button)\n );\n\n $filtersParent.find('.form--inline >.form-item').each(function(){\n if (\n ($(this).css('display') != 'none')\n && openFiltersByDefault\n ){\n $(this).attr('open', '');\n }\n });\n\n if (openFiltersByDefault) {\n $form.removeClass('collapse');\n }\n else {\n $form.addClass('collapse');\n }\n\n $filtersParent.find('.toggle-filters').click(function(){\n $form.toggleClass('collapse');\n $form.find('.form--inline >.form-item').each(function(){\n if (!$form.hasClass('collapse') && $(this).css('display') != 'none'){\n $(this).attr('open', '');\n } else {\n $(this).removeAttr('open');\n }\n })\n });\n\n $filtersParent.find('.close-filters').click(function(){\n const $form = $(this).closest('.brick--type--exposed-filters.collapsible');\n $form.addClass('collapse');\n $form.find('.form--inline >.form-item').each(function(){\n $(this).removeAttr('open');\n })\n });\n }\n });\n }\n };\n\n Drupal.behaviors.boatshowFeaturesFilter = {\n attach: function attach(context, settings) {\n\n // Features filter.\n $('.features-filter .filter').once('boatshowFeaturesFilter').on('click', function() {\n var class_name = $.grep(this.className.split(\" \"), function(v, i){\n return v.indexOf('filter-') === 0;\n }).join();\n\n var $this = $(this);\n var isSelected = $this.hasClass('filter-selected');\n var selectedFilters = $('.features-filter .filter-selected');\n var isFirstSelection = !selectedFilters.length;\n var allCards = $('.features-grid .filter');\n\n if (isSelected) {\n $this.removeClass('filter-selected');\n selectedFilters = $('.features-filter .filter-selected');\n // If all filters are now unchecked, show all results.\n if (!selectedFilters.length) {\n allCards.closest('.column-item').show();\n } else {\n allCards.filter('.' + class_name).closest('.column-item').hide();\n }\n } else {\n $this.addClass('filter-selected');\n if (isFirstSelection) {\n allCards.closest('.column-item').hide();\n allCards.filter('.' + class_name).closest('.column-item').show();\n } else {\n allCards.filter('.' + class_name).closest('.column-item').show();\n }\n }\n });\n }\n };\n})(jQuery, Drupal);\n"]}