get-filters.js 1022 B

12345678910111213141516171819202122232425262728293031323334
  1. export default () => {
  2. const inputs = document.querySelectorAll('#pages-filters input[name]');
  3. const filters = {};
  4. const trackMulti = [];
  5. inputs.forEach((filter) => {
  6. if (filter.type === 'checkbox') {
  7. if (filter.indeterminate || filter.checked) {
  8. if (filter.name.match(/\[]$/)) {
  9. const name = filter.name.replace(/\[]$/, '');
  10. if (!filters[name]) {
  11. filters[name] = [];
  12. }
  13. if (!trackMulti.includes(name)) {
  14. trackMulti.push(name);
  15. }
  16. filters[name].push(filter.value);
  17. } else {
  18. filters[filter.name] = filter.value;
  19. }
  20. }
  21. } else if (filter.value) {
  22. filters[filter.name] = filter.value;
  23. }
  24. });
  25. trackMulti.forEach((multi) => {
  26. filters[multi] = filters[multi].join(',');
  27. });
  28. return filters;
  29. };