{"version":3,"sources":["webpack:///./app/components/m/productfilter/filter.js","webpack:///./app/components/m/productfilter/index.js","webpack:///./node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js","webpack:///./node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js","webpack:///./node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js","webpack:///./node_modules/@babel/runtime/helpers/classPrivateFieldGet.js","webpack:///./node_modules/@babel/runtime/helpers/classPrivateFieldSet.js"],"names":["sortNumber","a","b","updateFilterCounter","$elems","$","each","$cur","$counter","parent","find","text","prop","key","toLowerCase","value","count","tilesWithKey","$tile","tileValue","data","inArray","updateFormInputs","visibleTiles","visibleAttributes","productTileAttributes","type","Object","keys","val","values","toUpperCase","filter","includes","disabled","filterChangeHandler","form","updateHash","arguments","length","undefined","productTiles","addClass","$curFilters","filterName","name","filterMin","filterMax","dataset","split","map","str","Number","tileVal","productValue","parseFloat","productMin","productMax","isNaN","filterValue","isArray","removeClass","setTimeout","$tileView","hide","show","formData","serializeArray","location","hash","param","filterResetHandler","ev","$form","currentTarget","posY","window","scrollTop","bootstrapSlider","restoreFilters","getInputElem","Array","inputElements","checked","$productTiles","states","tileData","substring","indexOf","hasOwnProperty","toString","x","parseInt","union","initFilters","filterForm","document","querySelector","$sliders","format","tooltip","tooltip_split","tooltip_position","formatter","on","slider","target","trackSlider","hashPrefix","hashPrefixPos","queryFilter","substr","querystring","parse","filterBar","FilterBar","init"],"mappings":"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","file":"productfilter.chunk.js","sourcesContent":["import 'bootstrap-slider';\r\nimport querystring from 'querystring';\r\nimport union from 'lodash/union';\r\nimport { trackSlider } from '../../../core/js/libs/slider-tracking';\r\n\r\n/**\r\n * Sort a array with numbers\r\n * @param {number} a - left value\r\n * @param {number} b - right vale\r\n * @returns {number}\r\n */\r\nfunction sortNumber(a, b) {\r\n  return a - b;\r\n}\r\n\r\n/**\r\n * Update counter for each radio & checkbox filter\r\n */\r\nfunction updateFilterCounter() {\r\n  const $elems = $('.card--filter input[type=\"radio\"], .card--filter input[type=\"checkbox\"]');\r\n\r\n  $elems.each(function () {\r\n    const $cur = $(this);\r\n    const $counter = $cur.parent().find('.filter__counter');\r\n    $counter.text(0);\r\n    if (!$cur.prop('disabled')) {\r\n      const key = $cur.prop('name').toLowerCase();\r\n      const value = $cur.prop('value');\r\n\r\n      let count = 0;\r\n      const tilesWithKey = $(`.product-tile__col:not(.product-tile__col--hidden)[data-${key}]`);\r\n      tilesWithKey.each(function () {\r\n        const $tile = $(this);\r\n        const tileValue = $tile.data(key);\r\n        if ($.inArray(value, tileValue) !== -1) {\r\n          count++;\r\n          // console.log(`found \"${value}\" in \"${tileValue}\"`);\r\n        } else {\r\n          // console.log(`NOT found \"${value}\" in \"${tileValue}\"`);\r\n        }\r\n      });\r\n\r\n      // let count = $(`.product-tile__col:not(.product-tile__col--hidden)[data-${key}=\"${value}\"]`).length;\r\n      $counter.text(count);\r\n      if (count === 0) {\r\n        $cur.prop('disabled', true);\r\n      } else {\r\n        $cur.prop('disabled', false);\r\n      }\r\n    }\r\n  });\r\n}\r\n\r\n/**\r\n * Disable unused filters\r\n */\r\nfunction updateFormInputs() {\r\n  const visibleTiles = $('.product-tile__col:not(.product-tile__col--hidden)');\r\n  const visibleAttributes = productTileAttributes(visibleTiles);\r\n  // console.log(visibleAttributes);\r\n\r\n  for (const type of Object.keys(visibleAttributes)) {\r\n    for (const key of Object.keys(visibleAttributes[type])) {\r\n      const val = visibleAttributes[type][key].values;\r\n      let $elems = null;\r\n\r\n      // TYPE: checkbox or radio\r\n      if (type === 'checkbox' || type === 'radio') {\r\n        $elems = $(`.card--filter input[type='${type}'][name='${key.toUpperCase()}']`);\r\n        $elems.prop('disabled', false);\r\n        $elems.filter(function () {\r\n          return !val.includes(this.value);\r\n        });\r\n\r\n        // Update values of radio and checkbox\r\n        $elems.each(function () {\r\n          if (!val.includes(this.value)) {\r\n            // console.log(this.value, val);\r\n            this.disabled = true;\r\n          }\r\n        });\r\n      }\r\n      // TYPE: slider\r\n      // else if (type === 'slider') {\r\n      // $elems = $(`.card--filter input.${type}[name='${key.toUpperCase()}']`);\r\n      // val = val.map(num => parseFloat(num)).sort(sortNumber);\r\n      // let ticks = JSON.stringify(val);\r\n      // Update slider\r\n      // console.log(key, val, ticks, $elems);\r\n      // $elems.bootstrapSlider('destroy');\r\n      // $elems.trigger('slideStop');\r\n      // $elems.attr('data-slider-ticks', ticks);\r\n      // $elems.attr('data-slider-ticks-labels', ticks);\r\n      // $elems.bootstrapSlider(sliderSettings);\r\n      // $elems.bootstrapSlider('setValue', val).data('persistent', false);\r\n      // $elems.slider('setAttribute', 'ticks', ticks);\r\n      // $elems.slider('setAttribute', 'ticks-labels', ticks);\r\n      // $elems.slider('refresh');\r\n      // $(`.card--filter input.slider[name='${key}']`).each(function() {\r\n      //   let val = data[key].split(',').map(str => Number(str));\r\n      //   $(this).slider('setValue', val, true);\r\n      // });\r\n      // }\r\n    }\r\n  }\r\n}\r\n\r\n/**\r\n * Change Form Handler\r\n * @param {HTMLElement} form - DOM Element of filter form\r\n * @param {boolean} [updateHash=true] - Add hash to url\r\n */\r\nfunction filterChangeHandler(form, updateHash = true) {\r\n  // console.log('CHANGE!');\r\n  let productTiles = $('.product-tile__col');\r\n  productTiles.addClass('product-tile__col--hidden');\r\n\r\n  // Filter by min/max values (range slider)\r\n  $('.card--filter input.slider').each(function () {\r\n    const $curFilters = $(this);\r\n    $curFilters.each(function () {\r\n      const filterName = this.name.toLowerCase();\r\n      const [filterMin, filterMax] = this.dataset.value.split(',').map((str) => Number(str));\r\n\r\n      productTiles = productTiles.filter(function () {\r\n        const tileVal = $(this).data(filterName);\r\n        const productValue = parseFloat($(this).data(filterName));\r\n\r\n        // Filter min/max range\r\n        if (typeof tileVal === 'string' && tileVal.includes('|')) {\r\n          const [productMin, productMax] = tileVal.split('|').map((str) => Number(str));\r\n\r\n          return productMin >= filterMin && productMax <= filterMax;\r\n        }\r\n\r\n        // parseFloat of undefined return NaN\r\n        // ...returns tile ALWAYS if key isn't defined!\r\n        if (isNaN(productValue)) {\r\n          return true;\r\n        }\r\n\r\n        // Filter single value\r\n        return productValue >= filterMin && productValue <= filterMax;\r\n      });\r\n    });\r\n  });\r\n\r\n  // Filter by multiple string values\r\n  $('.card--filter input:checked').each(function () {\r\n    const $curFilters = $(this);\r\n    $curFilters.each(function () {\r\n      const filterName = this.name.toLowerCase();\r\n      const filterValue = this.value;\r\n\r\n      productTiles = productTiles.filter(function () {\r\n        let tileVal = $(this).data(filterName);\r\n\r\n        // Allways return tile if filter doesn't exist\r\n        if (typeof tileVal === 'undefined') {\r\n          return true;\r\n        }\r\n        // Exclude if value not a string\r\n        if (typeof tileVal === 'string') {\r\n          // Convert to array\r\n          tileVal = tileVal.split('|');\r\n        }\r\n        // Convert to array and filter by value\r\n        return $.isArray(tileVal) ? tileVal.includes(filterValue) : false;\r\n      });\r\n    });\r\n  });\r\n\r\n  // Show filtered results\r\n  productTiles.removeClass('product-tile__col--hidden');\r\n  $('.productfilter__action .filter__counter').text(productTiles.length);\r\n  // if (productTiles.length === 0) {\r\n  //   $('.productfilter__noresults').removeClass('d-none');\r\n  // }\r\n  // else {\r\n  //   $('.productfilter__noresults').addClass('d-none');\r\n  // }\r\n\r\n  // Update count per filter\r\n  setTimeout(function () {\r\n    updateFilterCounter();\r\n  }, 500);\r\n\r\n  // Handle empty section categories\r\n  $('.products-tile-view').each(function () {\r\n    const $tileView = $(this);\r\n    if ($tileView.find('.product-tile__col:not(.product-tile__col--hidden').length === 0) {\r\n      $tileView.hide();\r\n    } else {\r\n      $tileView.show();\r\n    }\r\n  });\r\n\r\n  // Disabled Form Elements not used in visible products\r\n  setTimeout(() => {\r\n    updateFormInputs();\r\n  }, 1);\r\n\r\n  // Append filter data to hash\r\n  if (updateHash) {\r\n    const formData = $(form).serializeArray();\r\n    location.hash = 'filters:' + $.param(formData);\r\n  }\r\n}\r\n\r\n/**\r\n * Reset Form Handler\r\n * @param {HTMLElement} form - DOM Element of filter form\r\n */\r\nfunction filterResetHandler(ev) {\r\n  const $form = $(ev.currentTarget);\r\n  const posY = $(window).scrollTop();\r\n\r\n  // don't jump on hash change!\r\n  location.hash = '';\r\n  $(window).scrollTop(posY);\r\n  setTimeout(() => {\r\n    // executes after the form has been reset\r\n    // Remove disabled fields\r\n    $form.find('.card--filter input[type=\"radio\"], .card--filter input[type=\"checkbox\"]').prop('disabled', false);\r\n    // Refresh sliders with initial defaults\r\n    $form.find('input.slider').bootstrapSlider('refresh');\r\n    filterChangeHandler($form[0], false);\r\n  }, 1);\r\n}\r\n\r\n/**\r\n * Restore form filter settings from querystring\r\n * @param {object} data - JSON Data, array with key/value\r\n */\r\nfunction restoreFilters(data) {\r\n  const getInputElem = (key, val) =>\r\n    $(`.card--filter input[type='radio'][name='${key}'], .card--filter input[type='checkbox'][name='${key}']`).filter(\r\n      function () {\r\n        return Array.isArray(val) ? val.includes(this.value) : val === this.value;\r\n      }\r\n    );\r\n\r\n  // Reset allready checked inputs\r\n  $('.card--filter input:checked').prop('checked', false);\r\n\r\n  for (const key of Object.keys(data)) {\r\n    const val = data[key];\r\n    const inputElements = getInputElem(key, val);\r\n    // Update values of radio and checkbox\r\n    inputElements.each(function () {\r\n      this.checked = true;\r\n    });\r\n\r\n    // Update slider\r\n    $(`.card--filter input.slider[name='${key}']`).each(function () {\r\n      const val = data[key].split(',').map((str) => Number(str));\r\n      $(this).bootstrapSlider('setValue', val, true);\r\n    });\r\n  }\r\n}\r\n\r\n/**\r\n * Return used attributes from visible tiles\r\n * @param {JQuery<HTMLElement>} $productTiles - JQuery Elements\r\n * @returns {Object} - JSON Object\r\n */\r\nfunction productTileAttributes($productTiles) {\r\n  const states = {};\r\n\r\n  $productTiles.each(function () {\r\n    const $tile = $(this);\r\n    const tileData = $tile.data();\r\n\r\n    for (const key of Object.keys(tileData)) {\r\n      const type = key.substring(0, key.indexOf('_'));\r\n      if (!states.hasOwnProperty(type)) {\r\n        states[type] = [];\r\n      }\r\n\r\n      if (!states[type].hasOwnProperty(key)) {\r\n        states[type][key] = {\r\n          count: 0,\r\n          values: [],\r\n        };\r\n      }\r\n\r\n      if (typeof tileData[key] === 'number') {\r\n        tileData[key] = tileData[key].toString();\r\n      }\r\n      if (typeof tileData[key] === 'string') {\r\n        tileData[key] = tileData[key].split('|');\r\n      }\r\n      if (type === 'slider') {\r\n        tileData[key].map((x) => parseInt(x, 10));\r\n      }\r\n      states[type][key].values = union(states[type][key].values, tileData[key]);\r\n    }\r\n  });\r\n\r\n  return states;\r\n}\r\n\r\n/**\r\n * Initialize Product filter\r\n */\r\nfunction initFilters() {\r\n  const filterForm = document.querySelector('.productfilter__form');\r\n  const $sliders = $('.productfilter .slider');\r\n  $sliders.each(function () {\r\n    const format = $(this).data('formatter');\r\n    $(this).bootstrapSlider({\r\n      tooltip: 'always',\r\n      tooltip_split: true,\r\n      tooltip_position: 'bottom',\r\n      formatter: function (value) {\r\n        return format[value] || value;\r\n      },\r\n    });\r\n  });\r\n  $('.productfilter').on('slideStop', '.slider', function (ev) {\r\n    //\r\n    const slider = ev.target;\r\n    trackSlider('productDetailPageFilterClick', slider);\r\n\r\n    filterChangeHandler(filterForm);\r\n  });\r\n\r\n  // Form events - radio, checkbox\r\n  $('.productfilter__form input[type=checkbox], .productfilter__form input[type=radio]').on('change', (ev) =>\r\n    filterChangeHandler(filterForm)\r\n  );\r\n\r\n  // Form event - reset\r\n  $('.productfilter__form').on('reset', filterResetHandler);\r\n\r\n  // jQuery DOM .ready()\r\n  $(function () {\r\n    // Parse hashtag with filters\r\n    const hashPrefix = '#filters:';\r\n    const hashPrefixPos = location.hash.indexOf(hashPrefix);\r\n    // Init filters on page load´\r\n    setTimeout(() => {\r\n      filterChangeHandler(filterForm, false);\r\n    }, 200);\r\n    if (hashPrefixPos === 0) {\r\n      const queryFilter = location.hash.substr(hashPrefixPos + hashPrefix.length);\r\n      const data = querystring.parse(queryFilter);\r\n      restoreFilters(data);\r\n    }\r\n  });\r\n}\r\n\r\nexport { initFilters };\r\n","import FilterBar from '../../../core/js/libs/FilterBar';\r\nimport { initFilters } from './filter';\r\n\r\n//\r\nconst filterBar = new FilterBar(\r\n  '#productfilter',\r\n  '.productfilter__bar:not(.productfilter__bar--sticky)',\r\n  '.js-open-filter',\r\n  '.productfilter__button',\r\n  '.productfilter__text',\r\n  '.productfilter__textMobile'\r\n);\r\nfilterBar.init();\r\n\r\n//\r\ninitFilters();\r\n","function _classApplyDescriptorGet(receiver, descriptor) {\n  if (descriptor.get) {\n    return descriptor.get.call(receiver);\n  }\n  return descriptor.value;\n}\nmodule.exports = _classApplyDescriptorGet, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classApplyDescriptorSet(receiver, descriptor, value) {\n  if (descriptor.set) {\n    descriptor.set.call(receiver, value);\n  } else {\n    if (!descriptor.writable) {\n      throw new TypeError(\"attempted to set read only private field\");\n    }\n    descriptor.value = value;\n  }\n}\nmodule.exports = _classApplyDescriptorSet, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classExtractFieldDescriptor(receiver, privateMap, action) {\n  if (!privateMap.has(receiver)) {\n    throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n  }\n  return privateMap.get(receiver);\n}\nmodule.exports = _classExtractFieldDescriptor, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var classApplyDescriptorGet = require(\"./classApplyDescriptorGet.js\");\nvar classExtractFieldDescriptor = require(\"./classExtractFieldDescriptor.js\");\nfunction _classPrivateFieldGet(receiver, privateMap) {\n  var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n  return classApplyDescriptorGet(receiver, descriptor);\n}\nmodule.exports = _classPrivateFieldGet, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var classApplyDescriptorSet = require(\"./classApplyDescriptorSet.js\");\nvar classExtractFieldDescriptor = require(\"./classExtractFieldDescriptor.js\");\nfunction _classPrivateFieldSet(receiver, privateMap, value) {\n  var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n  classApplyDescriptorSet(receiver, descriptor, value);\n  return value;\n}\nmodule.exports = _classPrivateFieldSet, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"sourceRoot":""}