{"version":3,"sources":["src/app/app.js","../src/app/app.js"],"names":["f","define","amd","OasyUtils","toggleBusy","$el","isBusy","toggleClass","oasyAjax","url","params","jqxhr","$","ajax","type","cache","contentType","data","JSON2","stringify","dataType","fail","xhr","ajaxOptions","thrownError","alert","console","log","always","updateQueryStringParam","key","value","filters","baseUrl","location","protocol","host","pathname","join","urlQueryString","document","search","newParam","updateRegex","RegExp","removeRegex","replace","match","stateObj","app","window","history","pushState","ProdottiListing","this","$listing","_proto","prototype","init","length","addEventListeners","_this","size","addClass","removeClass","on","event","prop","urlFiltro","title","updateListing","onpopstate","results","exec","urlFilters","split","selectedFilters","each","i","el","push","val","listingNeedsUpdate","every","element","index","updateQueryString","filtersUrl","group","undefined","ajaxData","categoryDocId","productsListingConfig","itemsPerPage","done","d","Status","html","HTML","Blog","$blog","_proto2","parent","submit","Newsletter","$newsletter","_proto3","option","slideToggle","Common","scrollTarget","attr","animate","scrollTop","offset","top","hasClass","next","slideDown","slideUp","siblings","hide","Menu","$header","$langMenu","$searchForm","_proto5","preventDefault","target","has","prodottiListing","newsletter","blog","menu","ready","jQuery"],"mappings":"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","file":"js\\app.min.js","sourcesContent":[null,"class OasyUtils {\r\n static toggleBusy($el, isBusy) {\r\n $el.toggleClass('busy', isBusy);\r\n }\r\n\r\n static oasyAjax(url, params) {\r\n var logAjaxCalls = true;\r\n\r\n var jqxhr = $.ajax({\r\n type: \"POST\",\r\n url: url,\r\n cache: false,\r\n contentType: \"application/json; charset=utf-8\",\r\n data: JSON2.stringify(params),\r\n dataType: \"json\",\r\n });\r\n jqxhr.fail(function(xhr, ajaxOptions, thrownError) {\r\n alert(thrownError);\r\n\r\n console.log('ajax error:');\r\n console.log(thrownError);\r\n });\r\n\r\n if (logAjaxCalls) {\r\n jqxhr.always(function(data) {\r\n console.log('=======================');\r\n console.log('ajax call [' + url + ']');\r\n console.log('params:');\r\n console.log(params);\r\n console.log('response data:');\r\n console.log(data);\r\n console.log('=======================');\r\n });\r\n }\r\n\r\n return jqxhr;\r\n }\r\n\r\n static updateQueryStringParam(key, value, filters) {\r\n var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),\r\n urlQueryString = document.location.search,\r\n newParam = key + '=' + value,\r\n params = '?' + newParam;\r\n\r\n // If the \"search\" string exists, then build params from it\r\n if (urlQueryString) {\r\n var updateRegex = new RegExp('([\\?&])' + key + '[^&]*');\r\n var removeRegex = new RegExp('([\\?&])' + key + '=[^&;]+[&;]?');\r\n\r\n if (typeof value == 'undefined' || value == null || value == '') { // Remove param if value is empty\r\n params = urlQueryString.replace(removeRegex, \"$1\");\r\n params = params.replace(/[&;]$/, \"\");\r\n\r\n } else if (urlQueryString.match(updateRegex) !== null) { // If param exists already, update it\r\n params = urlQueryString.replace(updateRegex, \"$1\" + newParam);\r\n\r\n } else { // Otherwise, add it to end of query string\r\n params = urlQueryString + '&' + newParam;\r\n }\r\n }\r\n\r\n // no parameter was set so we don't need the question mark\r\n params = params == '?' ? '' : params;\r\n\r\n var stateObj = {\r\n filters: filters,\r\n app: true\r\n };\r\n\r\n window.history.pushState(stateObj, \"\", baseUrl + params);\r\n }\r\n}\r\n\r\nclass ProdottiListing {\r\n constructor() {\r\n this.$listing = $('[data-prodotti-listing]');\r\n }\r\n\r\n init() {\r\n if (!this.$listing.length) {\r\n return;\r\n }\r\n\r\n this.addEventListeners();\r\n }\r\n\r\n addEventListeners() {\r\n var _this = this;\r\n\r\n var filters = $('.filtro [data-group]:checked');\r\n\r\n // console.log('ProdottiListing.addEventListeners', filters.size());\r\n\r\n filters.size() ? $('.group-azzerafiltri').addClass('active') : $('.group-azzerafiltri').removeClass('active');\r\n\r\n $('.filtro [name=\"gamma\"]', this.$listing).on('click', function(event) {\r\n // radio button like behavior (un solo checkbox attivo)\r\n $('.filtro [name=\"gamma\"]').prop('checked', false);\r\n $(this).prop('checked', true);\r\n\r\n OasyUtils.toggleBusy(_this.$listing, true);\r\n\r\n var urlFiltro = $(this).data('url');\r\n\r\n window.location = urlFiltro;\r\n });\r\n\r\n $('.filtro [data-group]', this.$listing).on('click', function(event) {\r\n var urlFiltro = $(this).data('url');\r\n if (urlFiltro) {\r\n // window.location = urlFiltro;\r\n if ('history' in window) {\r\n window.history.pushState(null, document.title, urlFiltro);\r\n _this.updateListing(true);\r\n } else {\r\n window.location = urlFiltro;\r\n }\r\n } else {\r\n _this.updateListing(true);\r\n }\r\n });\r\n\r\n window.onpopstate = function(event) {\r\n\r\n var results = new RegExp('[\\?&]filters=([^&#]*)').exec(window.location.search);\r\n var urlFilters = (results !== null) ? results[1].split(\",\") : [];\r\n\r\n var selectedFilters = [];\r\n $('.filtro [data-group]:checked').each(function(i, el) {\r\n selectedFilters.push($(el).val());\r\n });\r\n\r\n var listingNeedsUpdate = (selectedFilters.length != urlFilters.length) || !selectedFilters.every(function(element, index) {\r\n return urlFilters[index] != \"\" && element === urlFilters[index];\r\n });\r\n\r\n $('.filtro [data-group]').prop('checked', false);\r\n for (var i in urlFilters) {\r\n $('.filtro [value=\"' + urlFilters[i] + '\"]').prop('checked', true);\r\n }\r\n\r\n if (listingNeedsUpdate) {\r\n _this.updateListing(false);\r\n }\r\n };\r\n }\r\n\r\n updateListing(updateQueryString) {\r\n var _this = this;\r\n\r\n OasyUtils.toggleBusy(this.$listing, true);\r\n\r\n var filters = {};\r\n var filtersUrl = [];\r\n\r\n $('.filtro [data-group]:checked').each(function(i, el) {\r\n var value = $(el).val();\r\n var group = $(el).data('group');\r\n\r\n if (filters[group] === undefined) {\r\n filters[group] = [];\r\n }\r\n\r\n filters[group].push(value);\r\n filtersUrl.push(value);\r\n });\r\n\r\n // console.log('updateListing', filtersUrl.length);\r\n\r\n filtersUrl.length ? $('.group-azzerafiltri').addClass('active') : $('.group-azzerafiltri').removeClass('active');\r\n\r\n if (updateQueryString) {\r\n OasyUtils.updateQueryStringParam(\"filters\", filtersUrl.join(\",\"), filters);\r\n }\r\n\r\n var ajaxData = {\r\n filters: filters,\r\n categoryDocId: window.productsListingConfig.categoryDocId,\r\n itemsPerPage: window.productsListingConfig.itemsPerPage,\r\n };\r\n\r\n OasyUtils.oasyAjax('/WS/wsProducts.asmx/GetProductsList', ajaxData)\r\n .done(function(data) {\r\n if (data.d.Status) {\r\n $('.listing-prodotti').html(data.d.HTML);\r\n }\r\n })\r\n .always(function() { OasyUtils.toggleBusy(_this.$listing, false) });\r\n }\r\n}\r\n\r\nclass Blog {\r\n constructor() {\r\n this.$blog = $('[data-blog]');\r\n }\r\n\r\n init() {\r\n if (!this.$blog.length) {\r\n return;\r\n }\r\n\r\n this.addEventListeners();\r\n }\r\n\r\n addEventListeners() {\r\n $('#search-blog .submit', this.$blog).on('click', function() {\r\n $(this).parent('form').submit();\r\n });\r\n }\r\n}\r\n\r\nclass Newsletter {\r\n constructor() {\r\n this.$newsletter = $('[data-newsletter]');\r\n }\r\n\r\n init() {\r\n if (!this.$newsletter.length) {\r\n return;\r\n }\r\n\r\n this.addEventListeners();\r\n }\r\n\r\n addEventListeners() {\r\n $('.proprietario-di-option', this.$newsletter).each(function(i, option) {\r\n $('input[type=\"checkbox\"]', option).on('change', function() {\r\n $('.anno-input', option).slideToggle(150, function() {\r\n $('input', this).val('');\r\n });\r\n });\r\n });\r\n\r\n $('.is-allevatore input[type=\"checkbox\"]', this.$newsletter).on('change', function() {\r\n $('.lavoro-con', this.$newsletter).slideToggle();\r\n });\r\n }\r\n}\r\n\r\nclass Common {\r\n constructor() {\r\n this.addEventListeners()\r\n }\r\n\r\n addEventListeners() {\r\n $('body').on('click', '[data-scrollto]', function(event) {\r\n var scrollTime = 500;\r\n var scrollOffset = 100;\r\n var scrollTarget = $(this).attr('data-scrollto');\r\n\r\n $('html, body').animate({\r\n scrollTop: $('[data-scroll=\"' + scrollTarget + '\"]').offset().top - scrollOffset\r\n }, scrollTime);\r\n });\r\n\r\n $('[data-accordion-toggle]').on('click', function(event) {\r\n var toggleSpeed = 150;\r\n $(this).toggleClass('is-open');\r\n $(this).hasClass('is-open') ? $(this).next().slideDown(toggleSpeed) : $(this).next().slideUp(toggleSpeed, function() {\r\n $('[data-accordion-toggle]', this).siblings().hide().removeClass('is-open');\r\n });\r\n });\r\n }\r\n}\r\n\r\nclass Menu {\r\n constructor() {\r\n this.$header = $('.fixed-header');\r\n this.$langMenu = $('.menu-lang', this.$header);\r\n this.$searchForm = $('.search-form', this.$header);\r\n }\r\n\r\n init() {\r\n if (!this.$header.length) {\r\n return;\r\n }\r\n\r\n this.addEventListeners();\r\n }\r\n\r\n addEventListeners() {\r\n var _this = this;\r\n\r\n $('.search a', this.$header).on('click', function(event) {\r\n event.preventDefault();\r\n _this.slideToggle(_this.$searchForm);\r\n });\r\n\r\n $('.menu-lang-toggle', this.$header).on('click', function() {\r\n _this.slideToggle(_this.$langMenu);\r\n });\r\n\r\n $('body').on('click', function(event) {\r\n if (_this.$langMenu.hasClass('is-open')) {\r\n _this.slideToggle(_this.$langMenu);\r\n }\r\n if (_this.$searchForm.hasClass('is-open') && $(event.target) && !$('.search').has(event.target).length) {\r\n _this.slideToggle(_this.$searchForm);\r\n }\r\n });\r\n }\r\n\r\n slideToggle($el) {\r\n var animSpeed = 100;\r\n\r\n if ($el.hasClass('is-open')) {\r\n $el.slideUp(animSpeed, function() { $(this).removeClass('is-open') });\r\n }\r\n else {\r\n $el.slideDown(animSpeed, function() { $(this).addClass('is-open') });\r\n }\r\n }\r\n}\r\n\r\n(function($) {\r\n var common = new Common();\r\n var prodottiListing = new ProdottiListing();\r\n var newsletter = new Newsletter();\r\n var blog = new Blog();\r\n var menu = new Menu();\r\n\r\n $(document).ready(function() {\r\n prodottiListing.init();\r\n blog.init();\r\n newsletter.init();\r\n menu.init();\r\n });\r\n}(jQuery));\r\n"]}