{"version":3,"sources":["webpack:///o-search-filters.js","webpack:///./Sig.Web/src/atomic/organism/o-search-filters/o-search-filters.chunk.js"],"names":["webpackJsonp","180","module","exports","__webpack_require__","updateUrlParameter","uri","key","value","i","indexOf","hash","substr","re","RegExp","separator","match","replace","reloadPage","url","window","location","href","getCheckboxName","$","find","first","attr","encodeFilterValue","encodeURIComponent","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","length","err","Array","isArray","Object","TypeError","require","csvSeparator","refreshText","text","each","appendActivefilter","filterValue","append","getUrlWithAllDropdownValues","baseUrl","$dropDown","this","qsValues","$option","is","val","join","parameterKey","data","$keywords","$searchBox","$dropdown","$allDropdowns","$allFilters","$this","activeClass","on","e","stopPropagation","not","slideUp","slideToggle","removeClass","toggleClass","document","target","has","searchParams","URLSearchParams","search","filterKeys","get","map","x","filterAndSearchKeys","some","concat","hasSearchKeys","show","entries","includes","split","checkboxName","checkbox","$button","off","remove","trigger","$checkbox","$dropdownLabel","closest","siblings","children","dropDownCheckedCount","parseInt","removeAttr","css","$applyButton","preventDefault","$eraseButton","filterKeywordValue","which","181"],"mappings":"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","file":"o-search-filters.js","sourcesContent":["webpackJsonp([33],{\n\n/***/ 180:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\n__webpack_require__(181);\nvar $ = __webpack_require__(0);\nvar csvSeparator = \",,\";\n\n//https://gist.github.com/niyazpk/f8ac616f181f6042d1e0\nfunction updateUrlParameter(uri, key, value) {\n // remove the hash part before operating on the uri\n var i = uri.indexOf('#');\n var hash = i === -1 ? '' : uri.substr(i);\n uri = i === -1 ? uri : uri.substr(0, i);\n\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\n var separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\n if (uri.match(re)) {\n uri = uri.replace(re, '$1' + key + \"=\" + value + '$2');\n } else {\n uri = uri + separator + key + \"=\" + value;\n }\n\n uri = uri.replace(/&?[^&?]+=(?=(?:&|$))/g, ''); // On enlève les paramètres vide\n uri = uri.replace(/\\?&/g, '?'); // On remplace le '?$' par '?'\n uri = uri.replace(/\\?$/g, ''); // On enlève le ? qui reste seul \n\n return uri + hash; // finally append the hash as well\n}\n\nfunction reloadPage(url) {\n\n url = updateUrlParameter(url, \"page\", 1);\n\n if (url.indexOf('#') <= 0) {\n url += \"#filtres-recherche\";\n }\n\n window.location.href = url;\n}\n\nfunction getCheckboxName(key) {\n return $(\".m-filter-dropdown[data-parameter-key='\" + key + \"']\").find(\"input[type=checkbox]\").first().attr(\"name\");\n}\n\nfunction encodeFilterValue(value) {\n return encodeURIComponent(value).replace(/%20/g, \"+\");\n}\n\nvar refreshText = $(\"#refresh-label\").text();\n\n$('[data-controller=\"filter\"]').each(function () {\n var $filter = $('[data-filter=\"filter\"]', this);\n\n $filter.each(function () {\n var $dropdown = $(this).next('[data-filter=\"dropdown\"]'),\n $allDropdowns = $('[data-filter=\"dropdown\"]'),\n $allFilters = $('[data-filter=\"filter\"]'),\n $this = $(this),\n activeClass = 'o-search-filters__list-item-btn--active';\n $this.on('click', function (e) {\n e.stopPropagation();\n $allDropdowns.not($dropdown).slideUp();\n $dropdown.slideToggle();\n $allFilters.not($this).removeClass(activeClass);\n $this.toggleClass(activeClass);\n });\n $(document).on('click', function (e) {\n if (!$allDropdowns.is(e.target) && $allDropdowns.has(e.target).length === 0) {\n $allDropdowns.slideUp();\n $allFilters.removeClass(activeClass);\n }\n });\n });\n\n var searchParams = new URLSearchParams(window.location.search);\n\n var filterKeys = $(\".m-filter-dropdown\").get().map(function (x) {\n return $(x).data('parameter-key');\n });\n var hasFilterKeys = filterKeys.some(function (x) {\n return searchParams.has(x);\n });\n var filterAndSearchKeys = filterKeys.concat([\"mots-cles\"]);\n var hasSearchKeys = filterAndSearchKeys.some(function (x) {\n return searchParams.has(x);\n });\n\n if (hasSearchKeys) {\n $(\".o-search-filters__active-filters-container\").show();\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = searchParams.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref = _step.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var key = _ref2[0];\n var value = _ref2[1];\n\n if (!value || !filterAndSearchKeys.includes(key)) continue;\n if (key != \"mots-cles\") {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = value.split(csvSeparator)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var val = _step2.value;\n\n if (!val) continue;\n var checkboxName = getCheckboxName(key);\n var checkbox = $(\"label[for='\" + checkboxName + \"-\" + encodeFilterValue(val) + \"']\");\n appendActivefilter(val, key, checkbox.text());\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n } else {\n appendActivefilter(value, key, value);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n function appendActivefilter(filterValue, key, text) {\n $('.o-search-filters__active-filters').append(\"\");\n }\n\n $('.o-search-filters__active-filters-btn').each(function () {\n var $button = $(this);\n var key = $button.data('filter-key');\n var value = $button.data('filter-value');\n\n if (key == \"mots-cles\") {\n $button.off('click');\n $button.on('click', function (e) {\n var input = $(\".m-filter-keyword__input\");\n input.val('');\n $(\"[data-apply-search-filters]\").text(refreshText);\n $(this).remove();\n });\n\n return;\n }\n\n var checkboxName = getCheckboxName(key);\n\n $button.off('click');\n $button.on('click', function (e) {\n var checkbox = $(\"input[type=checkbox][name='\" + checkboxName + \"'][value='\" + encodeFilterValue(value) + \"']\");\n checkbox.trigger(\"click\");\n $(this).remove();\n });\n });\n\n $('[data-filter-dropdown-option]').each(function () {\n var $checkbox = $(this);\n var $dropdownLabel = $checkbox.closest(\".o-search-filters__list-item-dropdown\").siblings(\".o-search-filters__list-item-btn\").children(\".o-search-filters__list-item-count\");\n\n var dropDownCheckedCount = parseInt($dropdownLabel.text());\n if (!dropDownCheckedCount) {\n dropDownCheckedCount = 0;\n $dropdownLabel.text(dropDownCheckedCount);\n $dropdownLabel.attr(\"disabled\", true);\n }\n\n $checkbox.off('click');\n $checkbox.on('click', function (e) {\n var dropDownCheckedCount = parseInt($dropdownLabel.text());\n if (!dropDownCheckedCount) {\n dropDownCheckedCount = 0;\n }\n\n if ($(this).is(':checked')) {\n $dropdownLabel.text(++dropDownCheckedCount);\n $dropdownLabel.removeAttr(\"disabled\");\n $dropdownLabel.css(\"display\", \"inline-block\");\n } else {\n $dropdownLabel.text(--dropDownCheckedCount);\n if (dropDownCheckedCount == 0) {\n $dropdownLabel.attr(\"disabled\", true);\n }\n }\n\n if (hasSearchKeys) {\n $(\"[data-apply-search-filters]\").text(refreshText);\n }\n });\n\n $dropdownLabel.css(\"display\", \"inline-block\");\n if ($checkbox.is(':checked')) {\n $dropdownLabel.text(++dropDownCheckedCount);\n $dropdownLabel.removeAttr(\"disabled\");\n }\n });\n\n /*\r\n Lancement de la recherche\r\n */\n $('[data-apply-search-filters]').each(function () {\n\n var $applyButton = $(this);\n var url = window.location.href;\n\n $applyButton.off('click.o-search-filters');\n $applyButton.on('click.o-search-filters', function (e) {\n e.preventDefault();\n url = getUrlWithAllDropdownValues(url);\n\n reloadPage(url);\n });\n });\n\n $('.o-search-filters__erase-btn').each(function () {\n var $eraseButton = $(this);\n $eraseButton.off('click.o-erase-btn');\n $eraseButton.on('click.o-erase-btn', function (e) {\n e.preventDefault();\n $('.o-search-filters__active-filters-btn').trigger(\"click\");\n });\n });\n\n function getUrlWithAllDropdownValues(baseUrl) {\n\n var url = baseUrl;\n\n $('[data-filter-dropdown]').each(function () {\n\n var $dropDown = $(this);\n\n var value = getDropDownQueryStringValue();\n var parameterKey = $dropDown.data('parameter-key');\n url = updateUrlParameter(url, parameterKey, value);\n\n function getDropDownQueryStringValue() {\n\n var qsValues = [];\n\n $('[data-filter-dropdown-option]', $dropDown).each(function () {\n var $option = $(this);\n\n if (!$option.is(':checked')) {\n return;\n }\n\n qsValues.push($option.val());\n });\n\n return qsValues.join(csvSeparator);\n }\n });\n\n $('[data-filter-keyword]').each(function () {\n var $keywords = $(this);\n var $searchBox = $('[data-search-box]', $keywords);\n var parameterKey = $keywords.data('parameter-key');\n var value = $searchBox.val();\n url = updateUrlParameter(url, parameterKey, value);\n });\n\n return url;\n }\n\n var filterKeywordValue = \"\";\n /*\r\n Lancement de la recherche : Pour les mot-clés\r\n */\n $('[data-filter-keyword]').each(function () {\n var $keywords = $(this);\n var $searchBox = $('[data-search-box]', $keywords);\n var $applyButton = $('[data-apply]', $keywords);\n var parameterKey = $keywords.data('parameter-key');\n var url = window.location.href;\n\n $applyButton.off('click.o-search-filters');\n $applyButton.on('click.o-search-filters', function (e) {\n e.preventDefault();\n url = getUrlWithAllDropdownValues(url);\n\n reloadPage(url);\n });\n\n $searchBox.off('keydown.o-search-filters');\n $searchBox.on('keydown.o-search-filters', function (e) {\n filterKeywordValue = $(this).val();\n });\n $searchBox.off('keyup.o-search-filters');\n $searchBox.on('keyup.o-search-filters', function (e) {\n var val = $(this).val();\n\n if (filterKeywordValue != val) {\n $(\"[data-apply-search-filters]\").text(refreshText);\n filterKeywordValue = val;\n }\n });\n $searchBox.off('keypress.o-search-filters');\n $searchBox.on('keypress.o-search-filters', function (e) {\n $(\"[data-apply-search-filters]\").text(refreshText);\n\n if (e.which !== 13) {\n return true;\n }\n\n e.preventDefault();\n url = getUrlWithAllDropdownValues(url);\n\n reloadPage(url);\n });\n });\n});\n\n/***/ }),\n\n/***/ 181:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ })\n\n},[180]);\n\n\n// WEBPACK FOOTER //\n// o-search-filters.js","require(\"./o-search-filters.scss\");\r\nlet $ = require(\"jquery\");\r\nvar csvSeparator = \",,\";\r\n\r\n//https://gist.github.com/niyazpk/f8ac616f181f6042d1e0\r\nfunction updateUrlParameter(uri, key, value) {\r\n // remove the hash part before operating on the uri\r\n let i = uri.indexOf('#');\r\n let hash = i === -1 ? '' : uri.substr(i);\r\n uri = i === -1 ? uri : uri.substr(0, i);\r\n\r\n let re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\r\n let separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\r\n if (uri.match(re)) {\r\n uri = uri.replace(re, '$1' + key + \"=\" + value + '$2');\r\n } else {\r\n uri = uri + separator + key + \"=\" + value;\r\n }\r\n\r\n uri = uri.replace(/&?[^&?]+=(?=(?:&|$))/g, ''); // On enlève les paramètres vide\r\n uri = uri.replace(/\\?&/g, '?'); // On remplace le '?$' par '?'\r\n uri = uri.replace(/\\?$/g, ''); // On enlève le ? qui reste seul \r\n\r\n return uri + hash; // finally append the hash as well\r\n}\r\n\r\nfunction reloadPage(url) {\r\n\r\n url = updateUrlParameter(url, \"page\", 1);\r\n\r\n if (url.indexOf('#') <= 0) {\r\n url += \"#filtres-recherche\";\r\n }\r\n\r\n window.location.href = url;\r\n}\r\n\r\nfunction getCheckboxName(key){\r\n return $(`.m-filter-dropdown[data-parameter-key='${key}']`).find(\"input[type=checkbox]\").first().attr(\"name\");\r\n}\r\n\r\nfunction encodeFilterValue(value) {\r\n return encodeURIComponent(value).replace(/%20/g, \"+\");\r\n}\r\n\r\nconst refreshText = $(\"#refresh-label\").text();\r\n\r\n$('[data-controller=\"filter\"]').each(function () {\r\n var $filter = $('[data-filter=\"filter\"]', this);\r\n\r\n $filter.each(function () {\r\n var $dropdown = $(this).next('[data-filter=\"dropdown\"]'),\r\n $allDropdowns = $('[data-filter=\"dropdown\"]'),\r\n $allFilters = $('[data-filter=\"filter\"]'),\r\n $this = $(this),\r\n activeClass = 'o-search-filters__list-item-btn--active';\r\n $this.on('click', function (e) {\r\n e.stopPropagation();\r\n $allDropdowns.not($dropdown).slideUp();\r\n $dropdown.slideToggle();\r\n $allFilters.not($this).removeClass(activeClass);\r\n $this.toggleClass(activeClass);\r\n });\r\n $(document).on('click', function (e) {\r\n if (!$allDropdowns.is(e.target)\r\n && $allDropdowns.has(e.target).length === 0)\r\n {\r\n $allDropdowns.slideUp();\r\n $allFilters.removeClass(activeClass);\r\n }\r\n });\r\n });\r\n\r\n const searchParams = new URLSearchParams(window.location.search);\r\n\r\n const filterKeys = $(\".m-filter-dropdown\").get().map(x => $(x).data('parameter-key'));\r\n const hasFilterKeys = filterKeys.some(x => searchParams.has(x));\r\n const filterAndSearchKeys = filterKeys.concat([\"mots-cles\"]);\r\n const hasSearchKeys = filterAndSearchKeys.some(x => searchParams.has(x));\r\n\r\n if(hasSearchKeys) {\r\n $(\".o-search-filters__active-filters-container\").show();\r\n }\r\n\r\n for (const [key, value] of searchParams.entries()) {\r\n if(!value || !filterAndSearchKeys.includes(key)) continue;\r\n if(key != \"mots-cles\"){\r\n for (const val of value.split(csvSeparator)) {\r\n if(!val) continue;\r\n let checkboxName = getCheckboxName(key);\r\n const checkbox = $(`label[for='${checkboxName}-${encodeFilterValue(val)}']`);\r\n appendActivefilter(val, key, checkbox.text());\r\n } \r\n } else {\r\n appendActivefilter(value, key, value);\r\n }\r\n \r\n }\r\n\r\n function appendActivefilter(filterValue, key, text){\r\n $('.o-search-filters__active-filters').append(``);\r\n }\r\n\r\n $('.o-search-filters__active-filters-btn').each(function() {\r\n const $button = $(this);\r\n const key = $button.data('filter-key');\r\n const value = $button.data('filter-value');\r\n\r\n if(key == \"mots-cles\") {\r\n $button.off('click');\r\n $button.on('click', function(e) {\r\n const input = $(`.m-filter-keyword__input`);\r\n input.val('');\r\n $(\"[data-apply-search-filters]\").text(refreshText);\r\n $(this).remove();\r\n });\r\n\r\n return;\r\n }\r\n\r\n\r\n let checkboxName = getCheckboxName(key);\r\n\r\n $button.off('click');\r\n $button.on('click', function(e) {\r\n const checkbox = $(`input[type=checkbox][name='${checkboxName}'][value='${encodeFilterValue(value)}']`);\r\n checkbox.trigger(\"click\");\r\n $(this).remove();\r\n });\r\n\r\n });\r\n\r\n\r\n $('[data-filter-dropdown-option]').each(function() {\r\n const $checkbox = $(this);\r\n const $dropdownLabel = $checkbox.closest(\".o-search-filters__list-item-dropdown\").siblings(\".o-search-filters__list-item-btn\").children(\".o-search-filters__list-item-count\");\r\n\r\n var dropDownCheckedCount = parseInt($dropdownLabel.text());\r\n if(!dropDownCheckedCount){\r\n dropDownCheckedCount = 0;\r\n $dropdownLabel.text(dropDownCheckedCount);\r\n $dropdownLabel.attr(\"disabled\", true);\r\n }\r\n\r\n $checkbox.off('click');\r\n $checkbox.on('click', function(e) {\r\n var dropDownCheckedCount = parseInt($dropdownLabel.text());\r\n if(!dropDownCheckedCount){\r\n dropDownCheckedCount = 0;\r\n }\r\n\r\n if ($(this).is(':checked')) {\r\n $dropdownLabel.text(++dropDownCheckedCount);\r\n $dropdownLabel.removeAttr(\"disabled\");\r\n $dropdownLabel.css(\"display\", \"inline-block\");\r\n } else {\r\n $dropdownLabel.text(--dropDownCheckedCount);\r\n if(dropDownCheckedCount == 0){\r\n $dropdownLabel.attr(\"disabled\", true);\r\n }\r\n }\r\n\r\n if(hasSearchKeys){\r\n $(\"[data-apply-search-filters]\").text(refreshText);\r\n }\r\n });\r\n\r\n $dropdownLabel.css(\"display\", \"inline-block\");\r\n if ($checkbox.is(':checked')) {\r\n $dropdownLabel.text(++dropDownCheckedCount);\r\n $dropdownLabel.removeAttr(\"disabled\");\r\n } \r\n\r\n });\r\n\r\n /*\r\n Lancement de la recherche\r\n */\r\n $('[data-apply-search-filters]').each(function() {\r\n\r\n const $applyButton = $(this);\r\n let url = window.location.href;\r\n\r\n $applyButton.off('click.o-search-filters');\r\n $applyButton.on('click.o-search-filters', function(e) {\r\n e.preventDefault();\r\n url = getUrlWithAllDropdownValues(url);\r\n\r\n reloadPage(url);\r\n\r\n });\r\n \r\n });\r\n \r\n $('.o-search-filters__erase-btn').each(function() {\r\n const $eraseButton = $(this);\r\n $eraseButton.off('click.o-erase-btn');\r\n $eraseButton.on('click.o-erase-btn', function(e) {\r\n e.preventDefault();\r\n $('.o-search-filters__active-filters-btn').trigger(\"click\");\r\n });\r\n \r\n });\r\n \r\n function getUrlWithAllDropdownValues(baseUrl) {\r\n\r\n let url = baseUrl;\r\n\r\n $('[data-filter-dropdown]').each(function() {\r\n \r\n let $dropDown = $(this);\r\n \r\n let value = getDropDownQueryStringValue();\r\n let parameterKey = $dropDown.data('parameter-key');\r\n url = updateUrlParameter(url, parameterKey, value);\r\n\r\n function getDropDownQueryStringValue() {\r\n\r\n let qsValues = [];\r\n \r\n \r\n $('[data-filter-dropdown-option]', $dropDown).each(function() {\r\n let $option = $(this);\r\n\r\n if (!$option.is(':checked')) {\r\n return;\r\n }\r\n\r\n qsValues.push($option.val());\r\n });\r\n \r\n\r\n return qsValues.join(csvSeparator);\r\n }\r\n });\r\n\r\n $('[data-filter-keyword]').each(function() {\r\n let $keywords = $(this);\r\n let $searchBox = $('[data-search-box]', $keywords);\r\n let parameterKey = $keywords.data('parameter-key');\r\n let value = $searchBox.val();\r\n url = updateUrlParameter(url, parameterKey, value);\r\n });\r\n\r\n return url;\r\n }\r\n\r\n\r\n let filterKeywordValue = \"\";\r\n /*\r\n Lancement de la recherche : Pour les mot-clés\r\n */\r\n $('[data-filter-keyword]').each(function() {\r\n let $keywords = $(this);\r\n let $searchBox = $('[data-search-box]', $keywords);\r\n let $applyButton = $('[data-apply]', $keywords);\r\n let parameterKey = $keywords.data('parameter-key');\r\n let url = window.location.href;\r\n\r\n $applyButton.off('click.o-search-filters');\r\n $applyButton.on('click.o-search-filters', function(e) {\r\n e.preventDefault();\r\n url = getUrlWithAllDropdownValues(url);\r\n\r\n reloadPage(url);\r\n })\r\n\r\n $searchBox.off('keydown.o-search-filters');\r\n $searchBox.on('keydown.o-search-filters', function(e) {\r\n filterKeywordValue = $(this).val();\r\n });\r\n $searchBox.off('keyup.o-search-filters');\r\n $searchBox.on('keyup.o-search-filters', function(e) {\r\n var val = $(this).val();\r\n\r\n if(filterKeywordValue != val ){\r\n $(\"[data-apply-search-filters]\").text(refreshText);\r\n filterKeywordValue = val;\r\n }\r\n });\r\n $searchBox.off('keypress.o-search-filters');\r\n $searchBox.on('keypress.o-search-filters', function(e) {\r\n $(\"[data-apply-search-filters]\").text(refreshText);\r\n\r\n if (e.which !== 13) {\r\n return true;\r\n }\r\n\r\n e.preventDefault();\r\n url = getUrlWithAllDropdownValues(url);\r\n\r\n reloadPage(url);\r\n });\r\n });\r\n\r\n});\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./Sig.Web/src/atomic/organism/o-search-filters/o-search-filters.chunk.js"],"sourceRoot":""}