diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/_app.js b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/_app.js index 7f6a5d2f..f6ae4cf0 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/_app.js +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/_app.js @@ -21,6 +21,7 @@ import watchlistButton from './components/watchlist-button' import collapse from './components/collapse' import fbpixel from './components/fbpixel' import ajaxContent from './components/ajax-content' +import faq from './components/faq' // Executed on document ready document.addEventListener('DOMContentLoaded', () => { @@ -41,6 +42,7 @@ document.addEventListener('DOMContentLoaded', () => { Alpine.data('collapse', collapse) Alpine.data('fbpixel', fbpixel) Alpine.data('ajaxContent', ajaxContent) + Alpine.data('faq', faq) Alpine.start() Glightbox({ diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/components/faq.js b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/components/faq.js new file mode 100644 index 00000000..b0dc0102 --- /dev/null +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/components/faq.js @@ -0,0 +1,24 @@ +import { debounce } from './throttle-debounce' + +export default () => ({ + query: '', + init() { + this.entries = this.$el.querySelectorAll('[x-data="collapse"]') + this.$watch('query', debounce(value => { + if (value.length < 3) { + this.entries.forEach(entry => { + entry.classList.remove('hidden') + }) + return + } + const pattern = new RegExp(value, 'i') + this.entries.forEach(entry => { + const question = entry.childNodes[0].textContent + const answer = entry.childNodes[1].textContent + if (!question.match(pattern) && !answer.match(pattern)) { + entry.classList.add('hidden') + } + }) + }, 200)) + }, +}) diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/faq_controller.js b/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/faq_controller.js deleted file mode 100644 index 32846298..00000000 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Assets/js/controllers/faq_controller.js +++ /dev/null @@ -1,37 +0,0 @@ -import { Controller } from 'stimulus' - -export default class extends Controller { - - static targets = [ 'entry' ] - - toggle(e) { - e.preventDefault() - const selectedEntry = e.target.parentNode - selectedEntry.dataset.expanded = "1" - selectedEntry.children[1].classList.remove('hidden') - this.entryTargets.forEach(entry => { - if (entry !== selectedEntry) { - entry.dataset.expanded = "0" - entry.children[1].classList.toggle('hidden', true) - } - }) - } - - filter(e) { - const query = e.target.value - if (query.length < 3) { - this.entryTargets.forEach(entry => { - entry.classList.remove('hidden') - }) - return - } - const pattern = new RegExp(query, 'i') - this.entryTargets.forEach(entry => { - const question = entry.childNodes[0].textContent - const answer = entry.childNodes[1].textContent - if (!question.match(pattern) && !answer.match(pattern)) { - entry.classList.add('hidden') - } - }); - } -} diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Faq.html b/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Faq.html index 2704f52f..2ed36fd0 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Faq.html +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Partials/Faq.html @@ -3,20 +3,20 @@