{"version":3,"sources":["ecom.productlist.js"],"names":["e4","productlist","jProductList","jQuery","init","length","require","js","settings","handlebars","registerHelpers","registerTemplates","event","util","registerEvents","bindEvents","history","filters","modal","on","preventDefault","intPagesize","this","data","setPagesize","setPagenum","setSort","setState","window","debounce","toggleMarkupPlacement","debounceDelay","resize","collapse","range","search","find","post","target","serialize","offset","top","applyFilters","removeFilter","document","resetAll","is","resetGroup","prop","peek","toggle","val","refresh","domElm","jThis","closest","checkedLength","filter","strValue","jFilters","strFiltersHtml","trim","html","jFiltersModalBody","strFiltersModalBodyHtml","each","jPeekable","addClass","setHeight","removeClass","jFilterOptions","intPeekOptionCount","parseInt","intHeightPeek","Math","ceil","first","outerHeight","intHeightInitial","get","scrollHeight","intHeightToggleButton","peekSizeMin","height-peek","height-initial","css","remove","clearInput","hash","set","setTimeout","ecom","delay","intPagenum","arrSelectSortValue","split","setScrollTop","intScrollTop","jWindow","scrollTop","height","scrollToAnchor","nudge","animate","header","hide","params","state","originalEvent","strUrlParam","getParams","stateObj","cleanUrl","replaceState","location","pathname","paramArr","i","indexOf","splice","urlParams","join","strCustomUrl","undefined","ajax","method","dataType","url","cache","beforeSend","done","handler","fail","jqXHR","textStatus","errorThrown","always","loading","resolveWait","selectedOptionsCount","facets","selectedOptions","page","q","minPrice","clean","maxPrice","filtersAppliedCount","hasNoInteraction","isModalFilter","build","trigger","jFiltersModal","jSort","jPaging","tmpl","productlistFilters","productlistSort","productlistPaging","productCount","productlistProducts","builded"],"mappings":"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","file":"ecom.productlist.js","sourcesContent":["e4.productlist = {\r\n jProductList: jQuery( '.js-e-productlist' ),\r\n init: function () {\r\n if ( e4.productlist.jProductList.length === 1 ) {\r\n e4.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerHelpers( 'compare' );\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-productlist-filters #js-e-handlebars-tmpl-productlist-products #js-e-handlebars-tmpl-productlist-sort #js-e-handlebars-tmpl-productlist-paging' );\r\n e4.productlist.event = e4.util.registerEvents( 'build builded', 'productlist' );\r\n e4.productlist.bindEvents();\r\n e4.productlist.history.init();\r\n e4.productlist.filters.init();\r\n e4.productlist.modal.init();\r\n } );\r\n }\r\n },\r\n bindEvents: function () {\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-set-pagesize', function ( event ) {\r\n event.preventDefault();\r\n var intPagesize = jQuery( this ).data( 'page-size' );\r\n e4.productlist.setPagesize( intPagesize );\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-set-pagenum', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.setPagenum( this );\r\n } );\r\n e4.productlist.jProductList.on( 'change', '.js-e-productlist-sort-select', function () {\r\n e4.productlist.setSort( this );\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-item a', function () {\r\n e4.productlist.history.setState();\r\n } );\r\n jQuery( window ).on( 'resize', e4.util.debounce( e4.productlist.filters.toggleMarkupPlacement, e4.settings.debounceDelay.resize ) );\r\n },\r\n filters: {\r\n init: function () {\r\n e4.productlist.filters.bindEvents();\r\n e4.productlist.filters.collapse.init();\r\n e4.productlist.filters.range.init();\r\n e4.productlist.filters.search.init();\r\n },\r\n bindEvents: function () {\r\n e4.productlist.jProductList.find( '.js-e-productlist-form' ).on( 'submit', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.data.post( jQuery( event.target ).serialize(), e4.productlist.jProductList.offset().top );\r\n } );\r\n e4.productlist.jProductList.on( 'change', '.js-e-productlist-filter', function () {\r\n e4.productlist.filters.applyFilters( this );\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-remove', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.filters.removeFilter( this );\r\n } );\r\n jQuery( document ).on( 'click', '.js-e-productlist-filters-clear-all', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.filters.resetAll();\r\n } );\r\n e4.productlist.jProductList.on( 'change', '.js-e-productlist-filters-option-reset-group', function ( event ) {\r\n event.preventDefault();\r\n if ( jQuery( this ).is( ':checked' ) === true ) {\r\n e4.productlist.filters.resetGroup( this );\r\n }\r\n else {\r\n jQuery( this ).prop( 'checked', true );\r\n }\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-options-collapse-peek-toggle', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.filters.collapse.peek.toggle( this );\r\n } );\r\n jQuery( document ).on( 'click', '.js-e-productlist-filters-range-clear', function ( event ) {\r\n event.preventDefault();\r\n jQuery( '.js-e-productlist-filters-range-group' ).find( '.js-e-productlist-filters-range' ).val( '' );\r\n e4.productlist.data.post( e4.productlist.jProductList.find( '.js-e-productlist-form' ).serialize(), e4.productlist.jProductList.offset().top ); //Brug ProductList fra namespace.\r\n } );\r\n },\r\n refresh: function () {\r\n e4.productlist.filters.collapse.init();\r\n },\r\n applyFilters: function ( domElm ) {\r\n var jThis = jQuery( domElm );\r\n jThis.closest( '.js-e-productlist-filters-group' ).find( '.js-e-productlist-filters-option-reset-group' ).prop( 'checked', false );\r\n if ( jThis.is( ':checked' ) === false ) {\r\n var checkedLength = jThis.closest( '.js-e-productlist-filters-group' ).find( '.js-e-productlist-filter' ).filter( ':checked' ).length;\r\n if ( checkedLength === 0 ) {\r\n jThis.closest( '.js-e-productlist-filters-group' ).find( '.js-e-productlist-filters-option-reset-group' ).prop( 'checked', true );\r\n }\r\n }\r\n jQuery( 'input[name=\"PageNum\"]' ).val( 1 );\r\n e4.productlist.data.post();\r\n },\r\n removeFilter: function ( domElm ) {\r\n var strValue = jQuery( domElm ).data( 'value' );\r\n e4.productlist.jProductList.find( '.js-e-productlist-filter[value=\"' + strValue + '\"]' ).prop( 'checked', false );\r\n e4.productlist.data.post();\r\n },\r\n resetGroup: function ( domElm ) {\r\n jQuery( domElm ).closest( '.js-e-productlist-filters-group' ).find( '.js-e-productlist-filter' ).prop( 'checked', false );\r\n e4.productlist.data.post();\r\n },\r\n resetAll: function () {\r\n jQuery( 'input[name=\"PageNum\"]' ).val( 1 );\r\n e4.productlist.jProductList.find( '.js-e-productlist-filter' ).prop( 'checked', false );\r\n e4.productlist.jProductList.find( '.js-e-search-input' ).val( '' );\r\n e4.productlist.jProductList.find( '.js-e-productlist-filters-range' ).val( '' );\r\n e4.productlist.data.post( e4.productlist.jProductList.find( '.js-e-productlist-form' ).serialize(), 0 );\r\n },\r\n toggleMarkupPlacement: function () {\r\n var jFilters = jQuery( '#js-e-productlist-filters' ),\r\n strFiltersHtml = jQuery.trim( jFilters.html() ),\r\n jFiltersModalBody = jQuery( '#js-e-productlist-filters-modal' ).find( '#js-e-productlist-filters-modal-body' ),\r\n strFiltersModalBodyHtml = jQuery.trim( jFiltersModalBody.html() );\r\n if ( jFilters.is( ':visible' ) === true && strFiltersHtml === '' ) {\r\n jFilters.html( strFiltersModalBodyHtml );\r\n jFiltersModalBody.html( '' );\r\n }\r\n else if ( strFiltersModalBodyHtml === '' ) {\r\n jFiltersModalBody.html( strFiltersHtml );\r\n jFilters.html( '' );\r\n }\r\n },\r\n collapse: {\r\n init: function () {\r\n jQuery( '.js-e-productlist-filters-group-options' ).each( function () {\r\n var jThis = jQuery( this ),\r\n jPeekable = jThis.find( '.js-e-productlist-filters-options-collapse-peek' );\r\n if ( jThis.is( '.collapse' ) === true ) {\r\n jThis.addClass( 'show' );\r\n }\r\n if ( jPeekable.length === 1 ) {\r\n e4.productlist.filters.collapse.peek.setHeight( jPeekable );\r\n }\r\n if ( jThis.is( '.is-expanded' ) === false ) {\r\n jThis.removeClass( 'show' );\r\n }\r\n } );\r\n },\r\n peek: {\r\n setHeight: function ( jPeekable ) {\r\n var jFilterOptions = jPeekable.find( '.js-e-productlist-filters-option' ),\r\n intPeekOptionCount = parseInt( jQuery( '.js-e-visible-options-count' ).val() ) + 1.5,\r\n intHeightPeek = Math.ceil( jFilterOptions.first().outerHeight() ) * intPeekOptionCount,\r\n intHeightInitial = jPeekable.get( 0 ).scrollHeight,\r\n intHeightToggleButton = jPeekable.find( '.js-e-productlist-filters-options-collapse-peek-toggle' ).outerHeight();\r\n if ( jFilterOptions.filter( '.is-selected' ).length === 0 && jFilterOptions.length > intPeekOptionCount && intHeightInitial > intHeightPeek * e4.settings.collapse.peekSizeMin ) {\r\n // console.log( domElm, domElm.scrollHeight );\r\n jPeekable.data( {\r\n 'height-peek': intHeightPeek + intHeightToggleButton,\r\n 'height-initial': intHeightInitial + intHeightToggleButton\r\n } );\r\n jPeekable.addClass( 'is-peeking' );\r\n jPeekable.css( 'max-height', jPeekable.data( 'height-peek' ) );\r\n }\r\n else {\r\n jPeekable.removeClass( 'e-productlist-filters-options-collapse-peek is-peeking' );\r\n jPeekable.find( '.js-e-productlist-filters-options-collapse-peek-toggle' ).remove();\r\n }\r\n },\r\n toggle: function ( domElm ) {\r\n var jPeekable = jQuery( domElm ).closest( '.js-e-productlist-filters-options-collapse-peek' );\r\n if ( jPeekable.is( '.is-peeking' ) === true ) {\r\n jPeekable.removeClass( 'is-peeking' );\r\n jPeekable.css( 'max-height', jPeekable.data( 'height-initial' ) );\r\n }\r\n else {\r\n jPeekable.addClass( 'is-peeking' );\r\n jPeekable.css( 'max-height', jPeekable.data( 'height-peek' ) );\r\n }\r\n }\r\n }\r\n },\r\n range: {\r\n init: function () {\r\n e4.productlist.filters.range.bindEvents();\r\n },\r\n bindEvents: function () {\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-apply-range', function () {\r\n jQuery( 'input[name=\"PageNum\"]' ).val( 1 );\r\n e4.productlist.data.post();\r\n } );\r\n }\r\n },\r\n search: {\r\n init: function () {\r\n e4.productlist.filters.search.bindEvents();\r\n },\r\n bindEvents: function () {\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-search-submit', function () {\r\n e4.productlist.data.post();\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-productlist-filters-search-clear', function ( event ) {\r\n event.preventDefault();\r\n e4.productlist.jProductList.find( '.js-e-search-input' ).val( '' );\r\n e4.productlist.data.post();\r\n } );\r\n e4.productlist.jProductList.on( 'click', '.js-e-search-clear', function ( event ) {\r\n e4.search.clearInput( event.target );\r\n } );\r\n }\r\n }\r\n },\r\n modal: {\r\n init: function () {\r\n e4.productlist.modal.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( '.js-e-productlist-filters-modal' ).on( 'show.bs.modal', function () {\r\n e4.util.hash.set( 'isModalFilter', 'true' );\r\n } ).on( 'hide.bs.modal', function () {\r\n jQuery( '.js-e-productlist-loading-overlay' ).addClass( 'is-loading' );\r\n e4.util.hash.remove( 'isModalFilter' );\r\n setTimeout( function () {\r\n jQuery( '.js-e-productlist-loading-overlay' ).removeClass( 'is-loading' );\r\n }, e4.settings.ecom.filters.delay );\r\n } );\r\n }\r\n },\r\n setPagesize: function ( intPagesize ) {\r\n e4.productlist.jProductList.find( 'input[name=\"PageSize\"]' ).val( intPagesize );\r\n e4.productlist.jProductList.find( 'input[name=\"PageNum\"]' ).val( 1 );\r\n e4.productlist.data.post();\r\n },\r\n setPagenum: function ( domElm ) {\r\n var intPagenum = jQuery( domElm ).data( 'page-num' );\r\n e4.productlist.jProductList.find( 'input[name=\"PageNum\"]' ).val( intPagenum );\r\n e4.productlist.data.post();\r\n },\r\n setSort: function ( domElm ) {\r\n var arrSelectSortValue = jQuery( domElm ).val().split( ' ' );\r\n if ( arrSelectSortValue.length === 2 ) {\r\n e4.productlist.jProductList.find( 'input[name=\"Sort\"]' ).val( arrSelectSortValue[ 0 ] + ' ' + arrSelectSortValue[ 1 ] );\r\n e4.productlist.jProductList.find( 'input[name=\"SortBy\"]' ).val( arrSelectSortValue[ 0 ] );\r\n e4.productlist.jProductList.find( 'input[name=\"SortOrder\"]' ).val( arrSelectSortValue[ 1 ] );\r\n }\r\n else {\r\n e4.productlist.jProductList.find( 'input[name=\"SortBy\"], input[name=\"SortOrder\"]' ).val( '' );\r\n }\r\n e4.productlist.data.post();\r\n },\r\n setScrollTop: function ( intScrollTop ) {\r\n var jWindow = jQuery( window );\r\n if ( intScrollTop < jWindow.scrollTop() ) {\r\n intScrollTop -= jWindow.height() / 100 * e4.settings.scrollToAnchor.nudge;\r\n e4.scrollToAnchor.animate( intScrollTop, e4.header.hide );\r\n }\r\n },\r\n history: {\r\n params: null,\r\n init: function () {\r\n if ( history.state !== null && history.state.params !== '' ) {\r\n e4.productlist.data.post( history.state.params, history.state.scrollTop );\r\n }\r\n else {\r\n e4.productlist.data.post( e4.productlist.jProductList.find( '.js-e-productlist-form' ).serialize(), 0 );\r\n }\r\n e4.productlist.history.bindEvents();\r\n },\r\n bindEvents: function () {\r\n jQuery( window ).on( 'popstate', function ( event ) {\r\n if ( event.originalEvent.state !== null ) {\r\n e4.productlist.data.post( event.originalEvent.state.params, event.originalEvent.state.scrollTop );\r\n }\r\n } );\r\n },\r\n setState: function () {\r\n var strUrlParam = e4.productlist.history.getParams(),\r\n stateObj = {\r\n params: e4.productlist.history.params,\r\n scrollTop: jQuery( window ).scrollTop()\r\n };\r\n if ( jQuery( '#js-e-productlist-filters' ).length === 0 ) {\r\n e4.settings.ecom.filters.cleanUrl = true;\r\n }\r\n history.replaceState( stateObj, null, location.pathname + ( e4.settings.ecom.filters.cleanUrl === false ? strUrlParam : '' ) );\r\n },\r\n getParams: function () {\r\n var paramArr = e4.productlist.history.params.split( '&' );\r\n for ( var i = paramArr.length - 1; i >= 0; i-- ) {\r\n if ( paramArr[ i ].indexOf( 'PageUrl' ) > -1 ) {\r\n paramArr.splice( i, 1 );\r\n }\r\n }\r\n var urlParams = paramArr.join( '&' );\r\n if ( urlParams.indexOf( '?' ) === -1 ) {\r\n urlParams = '?' + urlParams;\r\n }\r\n return urlParams;\r\n }\r\n },\r\n data: {\r\n post: function ( strUrlParam, intScrollTop ) {\r\n var strCustomUrl = e4.productlist.jProductList.find( '.js-e-productlist-form' ).data( 'action' );\r\n if ( strUrlParam === undefined ) {\r\n strUrlParam = e4.productlist.jProductList.find( '.js-e-productlist-form' ).serialize();\r\n }\r\n if ( intScrollTop === undefined ) {\r\n intScrollTop = e4.productlist.jProductList.offset().top;\r\n }\r\n jQuery.ajax( {\r\n method: 'GET',\r\n dataType: 'json',\r\n url: strCustomUrl !== '' ? strCustomUrl : e4.settings.ecom.filters.url,\r\n cache: false,\r\n data: strUrlParam,\r\n beforeSend: function () {\r\n jQuery( '.js-e-productlist-loading-overlay' ).addClass( 'is-loading' );\r\n }\r\n } ).done( function ( data ) {\r\n e4.productlist.history.params = strUrlParam;\r\n e4.productlist.data.handler( data );\r\n e4.productlist.setScrollTop( intScrollTop );\r\n } ).fail( function ( jqXHR, textStatus, errorThrown ) {\r\n // console.error( jqXHR );\r\n jQuery( '#js-e-productlist-products' ).html( '