{"version":3,"sources":["webpack:///C:/GitHub/Framework8_Web/Framework8/Framework8/Front/App/Modules/Shared/Filters/import/filters.tools.js","webpack:///C:/GitHub/Framework8_Web/Framework8/Framework8/Front/App/Modules/Finder/import/finder.tools.js","webpack:///C:/GitHub/Framework8_Web/Framework8/Framework8/Front/App/Modules/Finder/import/finder.init.js"],"names":["parseFilter","filter","maxFilter","btnFilters","translate","element","forceShowAll","tplTranslate","children","each","$this","$","this","attr","html","isColor","Name","toLowerCase","includes","color","isReview","Key","isBtn","Type","Values","every","f","parseInt","Value","showAllEnabled","length","showAll","selectedCount","forEach","filterValue","index","show","viewValue","selectedValue","urlValue","camelCase","selected","colorImg","kebabCase","messages","No","Yes","Colon","parseFilters","filters","rangeFilters","setSlider","parseSliderFilter","_min","_max","intValues","_filter$Values$find","_filter$Values$find2","isSlider","step","find","o","Math","floor","ceil","sort","a","b","map","min","max","unit","replace","toString","minSelected","maxSelected","active","startMin","startMax","options","minRange","value","onStart","_","onEnd","key","getFinderDimensions","device","$header","$mainNav","$topPromos","headerMobiOutterHeight","outerHeight","pos","desktop","clientHeight","window","scrollTop","hasClass","height","angular","module","factory","$rootScope","$timeout","WindowEventsService","ProductsGridService","FinderService","FinderApi","init","ctrl","scope","resizeSizes","breakpoint","nb","nbCol","hasNiceScroll","isDefined","getNiceScroll","searchReset","api","items","itemsToLoad","FacetsSelected","search","searchCtrl","searchStr","searching","updateSearch","update","page","nextPage","resizeTimeout","setTimeout","resize","css","top","mobile","resizeGrid","size","clearResults","cancel","total","removeClass","hide","document","body","removeAttr","off","onBodyClick","$$phase","$digest","onContentClick","event","target","closest","toggleFilters","$onDestroy","listen","close","$broadcast","loaded","filtersOpened","on","facetToggleEnd","facetToggle","facet","updateSearchApi","$body","addClass","isTouch","context","setFilter","facetSelected","push","v","setSelectedFilters","removeFilter","removeFilters","$on","pop","nbPerPage","getCtrl","isArray","$filter","AppService","busy","scrollPos","getSearch","prototype","async","maxPage","_this","$grid","facets","FieldName","FieldValue","data","get","query","from","IsTransversal","Array","item","IsGroupingProduct","keys","Id","setCurrentFiltersValues","range","s","isOpen","reduce","result","slice","count","error","_facetSelected$Values","rangeText","params","getParams","maxFilters","priceStep","priceFilter","Currency","Symbol","getTranslate","filterSelected"],"mappings":"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","file":"finder.1b3bd21b1d70b18cc676.js","sourcesContent":["import { camelCase, kebabCase } from 'lodash-es';\r\n\r\nconst parseFilter = ({ filter, maxFilter, btnFilters, translate, element, forceShowAll }) => {\r\n //ATTTENTION Pour les traductions il faut faire le filtre sur Key et non sur Name\r\n\r\n // Translate\r\n const tplTranslate = {};\r\n if (element) {\r\n element\r\n .children('.translate')\r\n .children()\r\n .each(function () {\r\n const $this = $(this);\r\n tplTranslate[$this.attr('key')] = $this.html();\r\n });\r\n }\r\n filter.isColor = filter.Name.toLowerCase().includes(tplTranslate.color);\r\n filter.isReview = filter.Key === 'Note';\r\n filter.isBtn = btnFilters.includes(filter.Key) || (filter.Type === 'Vrai/Faux' && filter.Values.every(f => parseInt(f.Value) === 1));\r\n filter.showAllEnabled = forceShowAll ? false : filter.Values.length > maxFilter && !filter.isColor;\r\n filter.showAll = false;\r\n filter.selectedCount = 0;\r\n filter.Values.forEach((filterValue, index) => {\r\n filterValue.show = maxFilter > index || filter.isColor || forceShowAll;\r\n filterValue.viewValue = filterValue.Name;\r\n filterValue.selectedValue = filterValue.Name;\r\n filterValue.urlValue = camelCase(filterValue.Value);\r\n filterValue.selected = false;\r\n if (filter.isColor) {\r\n filterValue.colorImg = `/img/colors/21x21/${kebabCase(filterValue.Value)}.png`;\r\n }\r\n if (filter.isReview) {\r\n filterValue.selectedValue = filterValue.viewValue = filterValue.Value;\r\n }\r\n if (filter.Type === 'Vrai/Faux') {\r\n if (filter.isBtn) {\r\n filter.Values = filter.Values.filter(f => parseInt(f.Value) === 1);\r\n }\r\n filterValue.viewValue = parseInt(filterValue.Value) === 0 ? translate.messages.No : translate.messages.Yes;\r\n // prettier-ignore\r\n // eslint-disable-next-line\r\n filterValue.selectedValue = filter.Values.every(f => parseInt(f.Value) === 1)\r\n ? filter.Name\r\n : parseInt(filterValue.Value) === 0\r\n ? `${filter.Name}${translate.messages.Colon} ${translate.messages.No}`\r\n : `${filter.Name}${translate.messages.Colon} ${translate.messages.Yes}`;\r\n filterValue.urlValue = camelCase(filterValue.viewValue);\r\n }\r\n });\r\n};\r\n\r\nconst parseSliderFilter = ({ filter, setSlider }) => {\r\n let _min;\r\n let _max;\r\n let intValues;\r\n filter.isSlider = true;\r\n filter.isBtn = false;\r\n filter.step = filter.step || 1;\r\n if (filter.Values.find(o => o.Name === 'min')) {\r\n _min = Math.floor((filter.Values.find(o => o.Name === 'min')?.Value || 0) / filter.step) * filter.step;\r\n _max = _min + Math.ceil(((filter.Values.find(o => o.Name === 'max')?.Value || 0) - _min) / filter.step) * filter.step;\r\n } else {\r\n filter.Values.forEach((filterValue, index) => {\r\n filterValue.selectedValue = parseInt(filterValue.Value);\r\n });\r\n filter.Values.sort((a, b) => a.selectedValue - b.selectedValue);\r\n intValues = filter.Values.map(f => parseInt(f.Value));\r\n _min = Math.min(...intValues);\r\n _max = Math.max(...intValues);\r\n }\r\n filter.unit = filter.unit || filter.Values[0].Value.replace(intValues[0].toString(), '');\r\n filter.min = filter.min || _min;\r\n filter.max = filter.max || _max;\r\n filter.minSelected = filter.minSelected || filter.min;\r\n filter.maxSelected = filter.maxSelected || filter.max;\r\n\r\n filter.active = filter.max - filter.min > 1;\r\n if (!filter.active) return;\r\n\r\n let startMin, startMax;\r\n filter.options = {\r\n floor: filter.min,\r\n ceil: filter.max,\r\n step: filter.step,\r\n minRange: filter.step,\r\n translate(value) {\r\n return `${value}${filter.unit}`;\r\n },\r\n onStart(_, min, max) {\r\n startMin = min;\r\n startMax = max;\r\n },\r\n onEnd(_, min, max) {\r\n if (min !== startMin || max !== startMax) {\r\n setSlider({\r\n key: filter.Key,\r\n min,\r\n max\r\n });\r\n }\r\n startMin = null;\r\n startMax = null;\r\n }\r\n };\r\n};\r\n\r\nconst parseFilters = ({ filters, maxFilter, btnFilters, rangeFilters, setSlider, translate, element, forceShowAll = 0 }) =>\r\n filters.forEach(filter => (rangeFilters.includes(filter.Key) ? parseSliderFilter({ filter, setSlider }) : parseFilter({ filter, maxFilter, btnFilters, translate, element, forceShowAll })));\r\n\r\nexport { parseFilters };\r\n","const getFinderDimensions = device => {\r\n const $header = $('#header');\r\n const $mainNav = $('#main-nav');\r\n const $topPromos = $('.top-promos');\r\n const $headermobi = $('.MtyHeader');\r\n const headerMobiOutterHeight = $headermobi.outerHeight() | 0;\r\n\r\n const pos = device.desktop\r\n ? Math.floor($header.outerHeight() + headerMobiOutterHeight + ($topPromos.children()[0] ? $topPromos.children()[0].clientHeight : 0) - $(window).scrollTop())\r\n : Math.floor($mainNav.hasClass('is-sticky') ? $mainNav.outerHeight() : $header.outerHeight() + headerMobiOutterHeight + ($topPromos.children()[0] ? $topPromos.children()[0].clientHeight : 0) + $mainNav.outerHeight() - $(window).scrollTop());\r\n\r\n return {\r\n pos,\r\n height: `calc(100vh - ${pos}px)`\r\n };\r\n};\r\n\r\nexport { getFinderDimensions };\r\n","import { parseFilters } from 'Modules/Shared/Filters/import/filters.tools.js';\r\nimport { getFinderDimensions } from 'Modules/Finder/import/finder.tools.js';\r\nimport 'Modules/Finder/import/service.js';\r\nimport 'Modules/Finder/import/finder.less';\r\n\r\nexport default angular\r\n .module('finder.init', ['finder.service'])\r\n\r\n /* @ngInject */\r\n .factory('ImportFinder', function ($rootScope, $timeout, WindowEventsService, ProductsGridService, FinderService, FinderApi) {\r\n const service = {\r\n init\r\n };\r\n return service;\r\n\r\n ////////////\r\n\r\n function init(ctrl, scope, element) {\r\n const resizeSizes = [\r\n {\r\n breakpoint: 320,\r\n nb: 2\r\n },\r\n {\r\n breakpoint: 550,\r\n nb: 2\r\n },\r\n {\r\n breakpoint: 580,\r\n nb: 3\r\n },\r\n {\r\n breakpoint: 767,\r\n nb: 3\r\n },\r\n {\r\n breakpoint: 768,\r\n nb: 3\r\n },\r\n {\r\n breakpoint: 1024,\r\n nb: 3\r\n },\r\n {\r\n breakpoint: 1200,\r\n nb: 3\r\n },\r\n {\r\n breakpoint: 1280,\r\n nb: 12 / ctrl.nbCol\r\n /* \"nbCol\" = paramètre issu de l'Admin permettant de choisir le nombre de colonnes à afficher dans le Finder.\r\n Le chiffre récupéré est utilisé pour compléter la classe Bootstrap (ex. : col-md-4) dans la vue .cshtml.\r\n Il est divisé par 12 obtenir la valeur correpondant au nombre de colonne à afficher. */\r\n },\r\n {\r\n breakpoint: 1600,\r\n nb: 12 / ctrl.nbCol\r\n },\r\n {\r\n breakpoint: 1921,\r\n nb: 12 / ctrl.nbCol\r\n }\r\n ];\r\n\r\n ctrl.$onDestroy = () => {\r\n WindowEventsService.listen(false, 'resize', resizeTimeout);\r\n };\r\n\r\n ctrl.close = () => {\r\n clearResults();\r\n $('#searchBlock').removeClass('active');\r\n $rootScope.$broadcast('searchInputClose');\r\n };\r\n\r\n ctrl.loaded = () => {\r\n $timeout(() => {\r\n ProductsGridService.resizeGrid('searchGrid', ctrl.device.size, !ctrl.api.update, resizeSizes);\r\n });\r\n };\r\n\r\n ctrl.toggleFilters = () => {\r\n ctrl.filtersOpened = !ctrl.filtersOpened;\r\n if (ctrl.filtersOpened) {\r\n setTimeout(() => {\r\n $(document.body).on('click', onContentClick);\r\n }, 100);\r\n }\r\n };\r\n\r\n scope.facetToggleEnd = () => {\r\n $rootScope.$broadcast('nicescrollFiltersResize');\r\n $rootScope.$broadcast('rzSliderForceRender');\r\n };\r\n\r\n ctrl.facetToggle = facet => {\r\n facet.showAll = !facet.showAll;\r\n $rootScope.$broadcast('nicescrollFiltersResize');\r\n };\r\n\r\n ctrl.updateSearchApi = () => {\r\n const $body = $(document.body);\r\n $body.addClass('fixed-search');\r\n if (ctrl.device.mobile && ctrl.device.isTouch) {\r\n $body.css('top', `-${$('#header').height() - $('.auto-complete-search').height()}px`);\r\n }\r\n resize();\r\n setTimeout(resize, 800);\r\n };\r\n\r\n ctrl.setSlider = ({ key, min, max }) => {\r\n ctrl.api.setSlider({ context: ctrl.api, key, min, max });\r\n };\r\n\r\n ctrl.setFilter = (filter, filterValue) => {\r\n if (filter.isColor || filter.isBtn) {\r\n filterValue.selected = !filterValue.selected;\r\n }\r\n\r\n const facetSelected = ctrl.api.FacetsSelected.find(o => o.Key === filter.Key);\r\n if (filterValue.selected) {\r\n facetSelected.Values.push(filterValue.Value);\r\n } else {\r\n facetSelected.Values = facetSelected.Values.filter(v => v !== filterValue.Value);\r\n }\r\n ctrl.api.setSelectedFilters();\r\n updateSearch();\r\n };\r\n\r\n ctrl.removeFilter = filter => {\r\n const facetSelected = ctrl.api.FacetsSelected.find(o => o.Key === filter.key);\r\n facetSelected.Values = filter.isSlider ? [] : facetSelected.Values.filter(v => v !== filter.value);\r\n $timeout(() => {\r\n ctrl.api.setSelectedFilters();\r\n updateSearch();\r\n });\r\n };\r\n\r\n ctrl.removeFilters = () => {\r\n ctrl.api.update = true;\r\n $timeout(searchReset);\r\n };\r\n\r\n // Events\r\n scope.$on('searchClose', () => {\r\n ctrl.close();\r\n });\r\n\r\n scope.$on('finderThumbnailLoaded', () => {\r\n ctrl.api.itemsToLoad.pop();\r\n if (ctrl.api.itemsToLoad.length === 0) {\r\n resizeTimeout();\r\n }\r\n });\r\n\r\n scope.$on('searchUpdate', () => {\r\n if (ctrl.api.searchCtrl.searchStr === '') {\r\n clearResults();\r\n return;\r\n }\r\n\r\n if (ctrl.api.searchCtrl && ctrl.api.searchCtrl.searchStr && ctrl.api.searchCtrl.searchStr.length < 3) return;\r\n\r\n searchReset();\r\n resize();\r\n element.addClass('active');\r\n $(document.body).on('click', onBodyClick);\r\n if (hasNiceScroll()) element.find('[ng-nicescroll]').getNiceScroll().resize().show();\r\n });\r\n\r\n scope.$on('topUpdate', resize);\r\n\r\n WindowEventsService.listen(true, 'resize', resizeTimeout, 500);\r\n\r\n // Functions\r\n onInit();\r\n function onInit() {\r\n ctrl.element = element;\r\n ctrl.scope = scope;\r\n ctrl.api = new FinderApi();\r\n ctrl.api.ctrl = ctrl;\r\n ctrl.api.nbPerPage = ctrl.nbPerPage;\r\n ctrl.api.searchCtrl = FinderService.getCtrl();\r\n ctrl.btnFilters = ctrl.btnFilters || [];\r\n ctrl.rangeFilters = angular.isArray(ctrl.rangeFilters) ? ['PrixTTC', ...ctrl.rangeFilters] : ['PrixTTC'];\r\n }\r\n\r\n function hasNiceScroll() {\r\n return element.find('[ng-nicescroll]').length && angular.isDefined(element.find('[ng-nicescroll]').getNiceScroll);\r\n }\r\n\r\n function searchReset() {\r\n ctrl.api.items = [];\r\n ctrl.api.itemsToLoad = [];\r\n ctrl.api.FacetsSelected = [];\r\n ctrl.api.selected = [];\r\n ctrl.api.search = ctrl.api.searchCtrl.searchStr;\r\n ctrl.api.searchCtrl.searching = true;\r\n updateSearch();\r\n }\r\n\r\n function updateSearch() {\r\n ctrl.api.update = true;\r\n ctrl.api.page = 0;\r\n ctrl.api.nextPage();\r\n }\r\n\r\n function resizeTimeout() {\r\n setTimeout(resize, 100);\r\n }\r\n\r\n function resize() {\r\n const { pos, height } = getFinderDimensions(ctrl.device);\r\n element.css({\r\n top: pos,\r\n height\r\n });\r\n if (ctrl.device.mobile) {\r\n $('#searchFilters').css({\r\n top: pos,\r\n height: `calc(100% - ${pos})`\r\n });\r\n }\r\n $timeout(() => {\r\n ProductsGridService.resizeGrid('searchGrid', ctrl.device.size, false, resizeSizes);\r\n });\r\n }\r\n\r\n function clearResults() {\r\n FinderService.cancel();\r\n ctrl.api.search = '';\r\n ctrl.api.total = null;\r\n ctrl.api.searchCtrl.searchStr = '';\r\n ctrl.api.searchCtrl.searching = false;\r\n element.removeClass('active');\r\n if (hasNiceScroll()) element.find('[ng-nicescroll]').getNiceScroll().hide();\r\n $(document.body).removeClass('fixed-search').removeAttr('style').off('click', onBodyClick);\r\n !$rootScope.$$phase && $rootScope.$digest();\r\n }\r\n\r\n function onContentClick(event) {\r\n if ($(event.target).closest('.close').length || !$(event.target).closest('.col-filters').length) {\r\n $(document.body).off('click', onContentClick);\r\n ctrl.toggleFilters();\r\n !$rootScope.$$phase && scope.$digest();\r\n }\r\n }\r\n\r\n function onBodyClick(event) {\r\n if (!$(event.target).hasClass('search-query') && !$(event.target).closest('#finder').length) {\r\n clearResults();\r\n }\r\n }\r\n }\r\n })\r\n\r\n /* @ngInject */\r\n .factory('FinderApi', function ($rootScope, $timeout, $filter, FinderService, AppService) {\r\n const api = function () {\r\n this.ctrl = null;\r\n this.items = [];\r\n this.filters = [];\r\n this.total = null;\r\n this.busy = false;\r\n this.page = 0;\r\n this.scrollPos = 0;\r\n this.search = '';\r\n this.FacetsSelected = [];\r\n this.selected = [];\r\n this.getSearch = function () {\r\n return this.search;\r\n };\r\n };\r\n\r\n // Init filters as it is async\r\n $filter('discount')(1, 'value');\r\n $filter('price')(1, 'value');\r\n\r\n api.prototype.nextPage = async function () {\r\n if ((!this.update && this.busy) || (!this.update && this.page === this.maxPage)) return;\r\n\r\n this.busy = true;\r\n await get(this);\r\n !$rootScope.$$phase && $rootScope.$digest();\r\n };\r\n\r\n api.prototype.setSelectedFilters = function () {\r\n const _this = this;\r\n\r\n _this.selected = [];\r\n\r\n _this.filters.forEach(filter => {\r\n filter.selectedCount = 0;\r\n const facetSelected = _this.FacetsSelected.find(o => o.Key === filter.Key);\r\n if (facetSelected?.Values?.length) {\r\n if (filter.isSlider) {\r\n _this.selected.push({\r\n key: filter.Key,\r\n isSlider: true,\r\n selectedValue: $filter('format')(_this.ctrl.rangeText, filter.unit, filter.minSelected, filter.maxSelected)\r\n });\r\n } else {\r\n filter.Values.forEach(filterValue => {\r\n filterValue.selected = facetSelected.Values.includes(filterValue.Value);\r\n if (filterValue.selected) {\r\n filterValue.show = true;\r\n filter.isOpen = true;\r\n filter.selectedCount++;\r\n\r\n _this.selected.push({\r\n key: filter.Key,\r\n value: filterValue.Value,\r\n selectedValue: filterValue.selectedValue,\r\n isReview: filter.isReview\r\n });\r\n }\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n api.prototype.setCurrentFiltersValues = async function () {\r\n const _this = this;\r\n const params = await AppService.getParams();\r\n const maxFilter = _this.ctrl.maxFilters || 10;\r\n const priceStep = _this.ctrl.priceStep || 10;\r\n const priceFilter = _this.filters.find(f => f.Key === 'PrixTTC');\r\n if (priceFilter) {\r\n priceFilter.step = priceStep;\r\n priceFilter.unit = params.Currency.Symbol;\r\n }\r\n\r\n const translate = await AppService.getTranslate();\r\n await parseFilters({\r\n filters: _this.filters,\r\n maxFilter,\r\n btnFilters: _this.ctrl.btnFilters,\r\n rangeFilters: _this.ctrl.rangeFilters,\r\n setSlider: _this.ctrl.setSlider,\r\n translate,\r\n element: _this.ctrl.element\r\n });\r\n\r\n !$rootScope.$$phase && _this.ctrl.scope.$digest();\r\n $rootScope.$broadcast('nicescrollFiltersResize');\r\n return;\r\n };\r\n\r\n api.prototype.setSlider = function ({ context, key, min, max }) {\r\n const _this = context;\r\n const filter = _this.filters.find(f => f.Key === key);\r\n if (!filter) return;\r\n\r\n filter.minSelected = min;\r\n filter.maxSelected = max;\r\n\r\n const filterSelected = _this.FacetsSelected.find(o => o.Key === filter.Key);\r\n if (filter.Values.find(o => o.Name === 'min')) {\r\n filterSelected.Values = [min, max];\r\n } else {\r\n filterSelected.Values = filter.Values.reduce((result, v) => {\r\n const value = parseInt(v.Value);\r\n value >= min && value <= max && result.push(v.Value);\r\n return result;\r\n }, []);\r\n }\r\n\r\n _this.update = true;\r\n _this.page = 0;\r\n _this.nextPage();\r\n };\r\n\r\n async function get(_this) {\r\n const $grid = $('#searchGrid');\r\n\r\n _this.scrollPos = _this.update ? 0 : Math.floor($grid.children('.row').height() - $grid.height() + 80);\r\n\r\n const facets = _this.FacetsSelected.filter(o => o.Values.length).map(filter => ({\r\n FieldName: filter.Key,\r\n FieldValue: filter.Values\r\n }));\r\n\r\n try {\r\n const data = await FinderService.get({\r\n query: _this.search,\r\n from: ++_this.page - 1,\r\n size: _this.nbPerPage,\r\n facets\r\n });\r\n if (!data.items) return;\r\n\r\n _this.items = _this.update ? [...data.items] : [..._this.items, ...data.items];\r\n _this.filters = data.facets.filter(filter => filter.IsTransversal);\r\n // création d'un array qui servira à compter combien de vignettes non décliné\r\n // quand l'array atteint 0 et que les magasins sont tous chargés, on lance le resize\r\n _this.itemsToLoad = [...Array(_this.items.filter(item => !item.IsGroupingProduct).length).keys()];\r\n\r\n if (!_this.FacetsSelected.length) {\r\n _this.filters.forEach(filter => {\r\n _this.FacetsSelected.push({ Id: filter.Id, Name: filter.Name, Key: filter.Key, Values: [] });\r\n });\r\n }\r\n\r\n await _this.setCurrentFiltersValues();\r\n\r\n /* affectation et ajustements des valeurs sélectionnées */\r\n _this.filters\r\n .filter(filter => filter.isSlider)\r\n .forEach(filter => {\r\n const range = _this.FacetsSelected.find(s => s.Key === filter.Key).Values;\r\n if (range.length) {\r\n const min = parseInt(range[0]);\r\n const max = parseInt(range[1]);\r\n filter.minSelected = filter.minSelected > min ? filter.minSelected : min;\r\n filter.maxSelected = filter.maxSelected < max ? filter.maxSelected : max;\r\n }\r\n });\r\n\r\n _this.setSelectedFilters();\r\n\r\n /* ouverture des filtres sélectionnés */\r\n _this.filters.forEach(filter => {\r\n filter.isOpen = filter.selectedCount > 0 || (filter.isSlider && (filter.min !== filter.minSelected || filter.max !== filter.maxSelected));\r\n });\r\n /* sur desktop et tablet, ouvrir les 3 premiers sauf s'il y a des filtres sélectionnés */\r\n if (!_this.ctrl.device.mobile) {\r\n const totalSelectedCount = _this.filters.reduce((result, filter) => result + filter.selectedCount, 0);\r\n if (totalSelectedCount === 0) {\r\n (_this.filters.length > 5 ? _this.filters.slice(0, 3) : _this.filters).slice(0, 3).forEach(filter => {\r\n filter.isOpen = true;\r\n });\r\n }\r\n }\r\n\r\n _this.total = data.count;\r\n _this.maxPage = Math.ceil(_this.total / _this.nbPerPage) ? Math.ceil(_this.total / _this.nbPerPage) : 1;\r\n $grid.scrollTop(_this.scrollPos);\r\n _this.busy = false;\r\n _this.update = false;\r\n _this.searchCtrl.searching = false;\r\n _this.ctrl.updateSearchApi();\r\n $timeout(() => {\r\n $rootScope.$broadcast('rzSliderForceRender');\r\n $rootScope.$broadcast('nicescrollProductsUpdate');\r\n if (_this.update) {\r\n $rootScope.$broadcast('nicescrollFiltersResize');\r\n }\r\n }, 500);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n return api;\r\n });\r\n"],"sourceRoot":""}