{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/modules/FilteredResourceCards.js","webpack://@verndale/toolkit/./src/html/components/cards/resource-card.hbs"],"names":[],"mappings":"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","file":"scripts/448.6a21790f3a2542f748cd.js","sourcesContent":["import { Component } from '@verndale/core';\r\nimport axios from 'axios';\r\nimport qs from 'qs';\r\nimport ResourceCardTemplate from '../../html/components/cards/resource-card.hbs';\r\n\r\nclass FilteredResourceCards extends Component {\r\n setupDefaults() {\r\n this.dom = {\r\n tagsContainer: this.el.querySelector('.filtered-resource-cards__tags'),\r\n listing: this.el.querySelector('.grid'),\r\n viewAll: this.el.querySelector('.resource-card--view-all'),\r\n viewAllLink: this.el.querySelector('.resource-card--view-all a')\r\n };\r\n\r\n this.viewAllBaseUrl = this.dom.viewAllLink.getAttribute('href');\r\n this.overrideId = this.el.dataset.id;\r\n this.getEndpointData();\r\n }\r\n\r\n handleTagSelect() {\r\n const urlParams = new URLSearchParams();\r\n\r\n const tagsChecked = [...this.dom.tags]\r\n .filter(t => t.checked)\r\n .map(c => c.value);\r\n\r\n tagsChecked.forEach(val => urlParams.append('tag', val));\r\n\r\n let filteredResults = [];\r\n if (tagsChecked.length > 0)\r\n filteredResults = this.initialResults.filter(r => {\r\n if (tagsChecked.some(t => r.tags?.includes(t))) return r;\r\n return null;\r\n });\r\n else filteredResults = this.initialResults;\r\n\r\n this.el.classList.add('filtered-resource-cards--loading');\r\n const listing = filteredResults\r\n .map(a => ResourceCardTemplate(a))\r\n .slice(0, 7)\r\n .join('');\r\n\r\n this.dom.listing.innerHTML = `${listing}`;\r\n this.dom.listing.appendChild(this.dom.viewAll);\r\n this.el.classList.remove('filtered-resource-cards--loading');\r\n\r\n if (urlParams.toString().length > 0) {\r\n this.dom.viewAllLink.setAttribute(\r\n 'href',\r\n `${this.viewAllBaseUrl}?${urlParams}`\r\n );\r\n } else this.dom.viewAllLink.setAttribute('href', `${this.viewAllBaseUrl}`);\r\n }\r\n\r\n async getEndpointData() {\r\n const { endpoint } = this.el.dataset;\r\n const id = this.overrideId;\r\n\r\n this.el.classList.add('filtered-resource-cards--loading');\r\n\r\n const { data } = await axios.get(endpoint, {\r\n params: {\r\n id\r\n },\r\n paramsSerializer: params =>\r\n qs.stringify(params, { arrayFormat: 'repeat' })\r\n });\r\n\r\n const listing = data.results\r\n .map(a => ResourceCardTemplate(a))\r\n .slice(0, 7)\r\n .join('');\r\n\r\n this.dom.listing.innerHTML = `${listing}`;\r\n this.dom.listing.appendChild(this.dom.viewAll);\r\n this.el.classList.remove('filtered-resource-cards--loading');\r\n\r\n if (!this.initialized) {\r\n this.el.classList.add('filtered-resource-cards--initialized');\r\n this.initialized = true;\r\n }\r\n this.insertTagsMarkup(data);\r\n this.dom.tags = [\r\n ...this.el.querySelectorAll('.filtered-resource-cards__tag input')\r\n ];\r\n this.dom.tags.forEach(tag =>\r\n tag.addEventListener('change', this.handleTagSelect.bind(this))\r\n );\r\n this.dom.viewAllLink.setAttribute('href', `${this.viewAllBaseUrl}`);\r\n this.initialResults = data.results;\r\n }\r\n\r\n insertTagsMarkup(data) {\r\n let divGroup;\r\n data.tags.forEach((tag, i) => {\r\n const numberOfResultsForTag = data.results.filter(a =>\r\n a.tags.includes(tag)\r\n ).length;\r\n if (numberOfResultsForTag > 0) {\r\n if (i % 5 === 0) divGroup = document.createElement('div');\r\n const tagEl = document.createElement('div');\r\n tagEl.classList.add('filtered-resource-cards__tag');\r\n tagEl.innerHTML = `\r\n \r\n `;\r\n divGroup.appendChild(tagEl);\r\n if (i % 5 === 0) this.dom.tagsContainer.appendChild(divGroup);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default FilteredResourceCards;\r\n","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"