{"version":3,"sources":["ecom.cart.js"],"names":["e4","cart","storageKeyInternalBackLink","init","jQuery","length","require","js","settings","handlebars","registerHelpers","registerTemplates","event","util","registerEvents","saveInternalBackLink","bindEvents","orderline","load","updateQuantityInfo","document","referrer","indexOf","location","protocol","host","sessionStorage","setItem","goToInternalBackLink","strInternalBackLink","getItem","preventDefault","href","on","find","ajax","objAjaxSettings","fnCallback","jCart","jqXHR","extend","url","ecom","method","dataType","cache","beforeSend","addClass","done","data","removeClass","trigger","jsonData","updateContent","loading","resolveWait","loaded","addProduct","objProductFormData","jDocument","objProductData","CartCmd","ProductID","VariantID","Quantity","Redirect","isPlainObject","type","productadd","isArray","lastAdded","objProductLastAdded","strOrderlineId","getIdByProduct","setFocus","productQuantity","productadded","removeProduct","update","html","tmpl","cartOrderlines","orderSummery","updated","intQuantity","jCartQuantity","isNumeric","empty","toggleFocus","debounce","target","debounceDelay","domNode","jOrderline","closest","intOrderlineQuantity","parseInt","val","jForm","intOrderlineQuantityOriginal","orderlineincrease","orderlinedecrease","valid","serialize","attr","delete","objOrderlineData","orderlinedelete","key","orderlinedeleted","currencyCode","name","productName","number","productNumber","price","productPrice","quantity","strId","filter","focus","objProduct","strReturnValue","id","variantId","select","msg","timeout","jBody","is","hide","clearTimeout","setTimeout","show","jCartMsg","cartMsgLastadded","setPosition","modal","objPosition","jCartMsgDialog","jHeader","jNavItemCart","first","objCartMsgPosition","objCartMsgReferencePosition","isEmptyObject","get","getBoundingClientRect","top","hasClass","Math","floor","bottom","right","window","width","left","maxWidth","css","msgHideDelay"],"mappings":"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","file":"ecom.cart.js","sourcesContent":["e4.cart = {\r\n storageKeyInternalBackLink: 'e4.cart.internalBackLink',\r\n init: function () {\r\n if ( jQuery( '.js-e-cart-form' ).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-cart-orderlines #js-e-handlebars-tmpl-order-summery' );\r\n // ATTENTION: Please note that all product-add/remove events are trigger on jQuery( document ) and not\r\n // the cart element.\r\n e4.cart.event = e4.util.registerEvents( 'load loaded update updated productadd productadded productremove productremoved orderlinedelete orderlinedeleted orderlineincrease orderlinedecrease', 'cart' );\r\n e4.cart.saveInternalBackLink();\r\n e4.cart.bindEvents();\r\n e4.cart.orderline.bindEvents();\r\n e4.cart.load();\r\n } );\r\n }\r\n else if ( jQuery( '.js-e-cart-quantity' ).length > 0 ) {\r\n e4.cart.event = e4.util.registerEvents( 'productadd productadded productremove productremoved', 'cart' );\r\n e4.cart.updateQuantityInfo();\r\n //e4.cart.msg.init();\r\n }\r\n },\r\n saveInternalBackLink: function () {\r\n if ( document.referrer.indexOf( location.protocol + '//' + location.host ) === 0 && document.referrer.indexOf( '/shop/cart/checkout' ) === -1 ) {\r\n sessionStorage.setItem( e4.cart.storageKeyInternalBackLink, document.referrer );\r\n }\r\n },\r\n goToInternalBackLink: function ( event ) {\r\n var strInternalBackLink = sessionStorage.getItem( e4.cart.storageKeyInternalBackLink );\r\n if ( strInternalBackLink !== null && strInternalBackLink.indexOf( location.protocol + '//' + location.host ) === 0 ) {\r\n event.preventDefault();\r\n location.href = strInternalBackLink;\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( document ).on( 'click', '.js-e-cart-back-link', e4.cart.goToInternalBackLink ).find( '.js-e-cart-form' ).on( 'submit', function ( event ) {\r\n event.preventDefault();\r\n } );\r\n },\r\n ajax: function ( objAjaxSettings, fnCallback ) {\r\n var jCart = jQuery( '.js-e-cart' ),\r\n jqXHR = jQuery.ajax( jQuery.extend( {\r\n url: e4.settings.ecom.cart.url,\r\n method: 'POST',\r\n dataType: 'json',\r\n cache: false,\r\n beforeSend: function () {\r\n if ( jCart.length === 1 ) {\r\n jQuery( '.js-e-cart-main, .js-e-cart-aside' ).find('.js-e-loading-overlay').addClass( 'is-loading' );\r\n }\r\n }\r\n }, objAjaxSettings ) );\r\n jqXHR.done( function ( data ) {\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( data );\r\n }\r\n if ( jCart.length === 1 ) {\r\n jQuery( '.js-e-cart-main, .js-e-cart-aside' ).find('.js-e-loading-overlay').removeClass( 'is-loading' );\r\n }\r\n } );\r\n },\r\n load: function () {\r\n var jCart = jQuery( '.js-e-cart' );\r\n jCart.trigger( e4.cart.event.load );\r\n e4.cart.ajax( {\r\n method: 'GET'\r\n }, function ( jsonData ) {\r\n e4.cart.updateContent( jsonData );\r\n e4.loading.resolveWait( '.js-e-cart-main' );\r\n e4.loading.resolveWait( '.js-e-cart-aside' );\r\n jCart.trigger( e4.cart.event.loaded );\r\n } );\r\n },\r\n addProduct: function ( objProductFormData, fnCallback ) {\r\n var jDocument = jQuery( document ),\r\n jCart = jDocument.find( '.js-e-cart' );\r\n var objProductData = {\r\n CartCmd: 'add',\r\n ProductID: '',\r\n VariantID: '',\r\n Quantity: 1,\r\n Redirect: false\r\n };\r\n if ( jQuery.isPlainObject( objProductFormData ) ) {\r\n jQuery.extend( objProductData, objProductFormData );\r\n }\r\n else if ( jQuery.type( objProductFormData ) === 'string' ) {\r\n objProductData.ProductID = objProductFormData;\r\n }\r\n jDocument.trigger( e4.cart.event.productadd, objProductData );\r\n e4.cart.ajax( {\r\n data: objProductData\r\n }, function ( jsonData ) {\r\n if ( jCart.length === 1 ) {\r\n e4.cart.updateContent( jsonData );\r\n if ( jQuery.isArray( jsonData.cart.lastAdded ) === true ) {\r\n var objProductLastAdded = jsonData.cart.lastAdded[ jsonData.cart.lastAdded.length - 1 ],\r\n strOrderlineId = e4.cart.orderline.getIdByProduct( objProductLastAdded );\r\n e4.cart.orderline.setFocus( strOrderlineId );\r\n }\r\n }\r\n e4.cart.updateQuantityInfo( jsonData.cart.productQuantity );\r\n if ( typeof fnCallback === 'function' ) {\r\n fnCallback( jsonData );\r\n }\r\n jDocument.trigger( e4.cart.event.productadded, jsonData );\r\n } );\r\n },\r\n removeProduct: function () {\r\n },\r\n updateContent: function ( jsonData ) {\r\n var jCart = jQuery( '.js-e-cart' );\r\n jCart.trigger( e4.cart.event.update );\r\n jCart.find( '.js-e-cart-orderlines' ).html( e4.handlebars.tmpl.cartOrderlines( jsonData ) );\r\n jCart.find( '.js-e-order-summery' ).html( e4.handlebars.tmpl.orderSummery( jsonData ) );\r\n e4.cart.updateQuantityInfo( jsonData.cart.productQuantity );\r\n jCart.trigger( e4.cart.event.updated );\r\n },\r\n updateQuantityInfo: function ( intQuantity ) {\r\n var jCartQuantity = jQuery( '.js-e-cart-quantity' );\r\n if ( jCartQuantity.length > 0 ) {\r\n if ( jQuery.isNumeric( intQuantity ) === false ) {\r\n e4.cart.ajax( {\r\n method: 'GET'\r\n }, function ( jsonData ) {\r\n if ( jQuery.isNumeric( jsonData.cart.productQuantity ) === true ) {\r\n e4.cart.updateQuantityInfo( jsonData.cart.productQuantity );\r\n }\r\n } );\r\n }\r\n else if ( intQuantity === 0 ) {\r\n jCartQuantity.empty();\r\n }\r\n else {\r\n jCartQuantity.html( intQuantity );\r\n }\r\n }\r\n },\r\n orderline: {\r\n bindEvents: function () {\r\n jQuery( '.js-e-cart-form' )\r\n .on( 'focus blur', '.js-e-orderline-quantity-input', e4.cart.orderline.toggleFocus )\r\n .on( 'input', '.js-e-orderline-quantity-input', e4.util.debounce( function ( event ) {\r\n e4.cart.orderline.update( event.target );\r\n }, e4.settings.ecom.cart.debounceDelay ) )\r\n .on( 'click', '.js-e-orderline-update-btn', function ( event ) {\r\n event.preventDefault();\r\n e4.cart.orderline.update( event.target );\r\n } )\r\n .on( 'click', '.js-e-orderline-delete-btn', function ( event ) {\r\n event.preventDefault();\r\n e4.cart.orderline.delete( event.target );\r\n } );\r\n },\r\n update: function ( domNode ) {\r\n var jOrderline = jQuery( domNode ).closest( '.js-e-orderline' ),\r\n intOrderlineQuantity = parseInt( jOrderline.find( '.js-e-orderline-quantity-input' ).val() );\r\n if ( intOrderlineQuantity !== 0 ) {\r\n var jForm = jOrderline.closest( '.js-e-cart-form' ),\r\n jCart = jForm.closest( '.js-e-cart' ),\r\n intOrderlineQuantityOriginal = parseInt( jOrderline.data( 'product-quantity' ) );\r\n if ( intOrderlineQuantity > intOrderlineQuantityOriginal ) {\r\n jCart.trigger( e4.cart.event.orderlineincrease );\r\n }\r\n else if ( intOrderlineQuantity < intOrderlineQuantityOriginal ) {\r\n jCart.trigger( e4.cart.event.orderlinedecrease );\r\n }\r\n jForm.find( '.js-e-cart-form-cartcmd' ).val( 'updateorderlines' );\r\n if( jForm.valid() ) {\r\n e4.cart.ajax( {\r\n data: jForm.serialize()\r\n }, function ( jsonData ) {\r\n e4.cart.updateContent( jsonData );\r\n e4.cart.orderline.setFocus( jOrderline.attr( 'id' ) );\r\n } );\r\n }\r\n }\r\n },\r\n delete: function ( domNode ) {\r\n var jCart = jQuery( '.js-e-cart' ),\r\n jOrderline = jQuery( domNode ).closest( '.js-e-orderline' ),\r\n objOrderlineData = jOrderline.data();\r\n jCart.trigger( e4.cart.event.orderlinedelete );\r\n e4.cart.ajax( {\r\n data: {\r\n key: jOrderline.attr( 'id' ),\r\n CartCmd: 'delorderline',\r\n Redirect: false\r\n }\r\n }, function ( jsonData ) {\r\n e4.cart.updateContent( jsonData );\r\n jCart.trigger( e4.cart.event.orderlinedeleted, {\r\n currencyCode: jsonData.cart.currencyCode,\r\n name: objOrderlineData.productName,\r\n number: objOrderlineData.productNumber,\r\n price: objOrderlineData.productPrice,\r\n quantity: objOrderlineData.productQuantity\r\n } );\r\n } );\r\n },\r\n setFocus: function ( strId ) {\r\n if ( strId !== '' ) {\r\n var jOrderline = jQuery( '.js-e-orderline' ).filter( '#' + strId );\r\n if ( jOrderline.length === 1 ) {\r\n jOrderline.find( '.js-e-orderline-quantity-input' ).focus();\r\n }\r\n }\r\n },\r\n getIdByProduct: function ( objProduct ) {\r\n var strReturnValue = '',\r\n jOrderline = jQuery( '.js-e-orderline' ).filter( '[data-product-id=\"' + objProduct.id + '\"][data-product-variant-id=\"' + objProduct.variantId + '\"]' );\r\n if ( jOrderline.length === 1 ) {\r\n strReturnValue = jOrderline.attr( 'id' );\r\n }\r\n return strReturnValue;\r\n },\r\n toggleFocus: function ( event ) {\r\n var jOrderline = jQuery( event.target ).closest( '.js-e-orderline' );\r\n if ( event.type === 'focusin' ) {\r\n jQuery( event.target ).select();\r\n jOrderline.addClass( 'has-focus' );\r\n }\r\n else {\r\n jOrderline.removeClass( 'has-focus' );\r\n }\r\n }\r\n },\r\n msg: {\r\n timeout: null,\r\n init: function () {\r\n if ( jQuery( '#js-e-cart-msg' ).length === 1 ) {\r\n e4.require.js( e4.settings.require.handlebars, function () {\r\n e4.handlebars.registerTemplates( '#js-e-handlebars-tmpl-cart-msg-lastadded' );\r\n } );\r\n e4.cart.msg.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n var jBody = jQuery( 'body' );\r\n jQuery( '#js-e-cart-msg' ).on( 'show.bs.modal', function () {\r\n jBody.addClass( 'modal-open-no-adjustment' );\r\n } ).on( 'hidden.bs.modal', function () {\r\n jBody.removeClass( 'modal-open-no-adjustment' );\r\n } ).on( 'click', function ( event ) {\r\n if ( jQuery( event.target ).is( '#js-e-cart-msg' ) === true ) {\r\n e4.cart.msg.hide();\r\n }\r\n } ).find( '.modal-dialog' ).on( 'mouseenter', e4.cart.msg.clearTimeout ).on( 'mouseleave', e4.cart.msg.setTimeout );\r\n jQuery( document ).on( e4.cart.event.productadded, function ( event, jsonData ) {\r\n e4.cart.msg.show( jsonData );\r\n } );\r\n },\r\n show: function ( jsonData ) {\r\n var jCartMsg = jQuery( '#js-e-cart-msg' );\r\n jCartMsg.find( '.js-e-cart-msg-content' ).html( e4.handlebars.tmpl.cartMsgLastadded( jsonData ) );\r\n e4.cart.msg.clearTimeout();\r\n e4.cart.msg.setPosition();\r\n jCartMsg.modal( 'show' );\r\n e4.cart.msg.setTimeout();\r\n },\r\n hide: function () {\r\n e4.cart.msg.clearTimeout();\r\n jQuery( '#js-e-cart-msg' ).modal( 'hide' );\r\n },\r\n setPosition: function ( objPosition ) {\r\n var jCartMsgDialog = jQuery( '#js-e-cart-msg' ).find( '.modal-dialog' ),\r\n jHeader = jQuery( '.js-e-header' ),\r\n jNavItemCart = jHeader.find( '.js-e-nav' ).find( '.js-e-nav-item-cart' ).filter( ':visible' ).first(),\r\n objCartMsgPosition = objPosition || {},\r\n objCartMsgReferencePosition = {};\r\n if ( jCartMsgDialog.length === 1 ) {\r\n if ( jQuery.isEmptyObject( objCartMsgPosition ) === true ) {\r\n if ( jNavItemCart.length === 1 ) {\r\n objCartMsgReferencePosition = jNavItemCart.get( 0 ).getBoundingClientRect();\r\n objCartMsgPosition = {\r\n top: jHeader.hasClass( 'is-hidden' ) === true ? '' : Math.floor( objCartMsgReferencePosition.bottom ),\r\n right: Math.floor( jQuery( window ).width() - objCartMsgReferencePosition.right ),\r\n left: '',\r\n maxWidth: ''\r\n };\r\n }\r\n else {\r\n objCartMsgPosition = {\r\n top: 0,\r\n right: 0,\r\n left: 0,\r\n maxWidth: '100%'\r\n };\r\n }\r\n }\r\n }\r\n jCartMsgDialog.css( objCartMsgPosition );\r\n },\r\n setTimeout: function () {\r\n e4.cart.msg.clearTimeout();\r\n e4.cart.msg.timeout = setTimeout( e4.cart.msg.hide, e4.settings.ecom.cart.msgHideDelay );\r\n },\r\n clearTimeout: function () {\r\n if ( e4.cart.msg.timeout ) {\r\n e4.cart.msg.timeout = clearTimeout( e4.cart.msg.timeout );\r\n }\r\n }\r\n }\r\n};\r\n\r\n"],"sourceRoot":"/source/"}