{"version":3,"sources":["ecom.cart.js"],"names":["e4","cart","init","jQuery","length","event","util","registerEvents","saveInternalBackLink","bindEvents","orderline","updateQuantityInfo","msg","document","on","goToInternalBackLink","find","preventDefault","setNoPartialDeliveryValue","target","trigger","ajax","objAjaxSettings","fnCallback","jCart","jqXHR","extend","url","settings","ecom","method","dataType","cache","beforeSend","addClass","done","data","removeClass","domNode","jInputCheckbox","val","prop","serialize","referrer","indexOf","location","protocol","host","sessionStorage","setItem","storageKeyInternalBackLink","strInternalBackLink","getItem","href","addProduct","objProductFormData","jDocument","objProductData","CartCmd","ProductID","VariantID","Quantity","Redirect","isPlainObject","type","productadd","jsonData","strOrderlineId","updateContent","isArray","lastAdded","objProductLastAdded","getIdByProduct","setFocus","updateProjectInfo","productQuantity","productadded","console","log","removeProduct","update","html","orderlines","orderSummery","projectSelect","deliveryDate","savedCarts","updated","intQuantity","jCartQuantity","isNumeric","empty","jsonCart","jProjectList","currentProject","text","Name","toggleFocus","debounce","debounceDelay","input","saveComment","hideCommentHelpText","delete","jForm","jOrderline","closest","intOrderlineQuantity","parseInt","intOrderlineQuantityOriginal","orderlineincrease","orderlinedecrease","attr","objOrderlineData","orderlinedelete","objUpdate","key","quoteContextId","OrderContext","orderlinedeleted","currencyCode","name","productName","number","productNumber","price","productPrice","quantity","domInput","value","join","noop","showCommentHelpText","strId","filter","objProduct","strReturnValue","id","variantId","select","timeout","build","show","is","hide","clearTimeout","setTimeout","setPosition","modal","objPosition","jCartMsgDialog","jHeader","jNavItemCart","first","objCartMsgPosition","isEmptyObject","objCartMsgReferencePosition","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 init: function () {\r\n if ( jQuery( '.js-e-cart-form' ).length === 1 ) {\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 }\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 }\r\n e4.cart.updateQuantityInfo();\r\n e4.cart.msg.init();\r\n },\r\n bindEvents: function () {\r\n\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 jQuery( '.js-e-cart' ).on( 'change', '.js-alcadon-cart-no-partial-delivery-requested-checkbox', function ( event ) {\r\n e4.cart.setNoPartialDeliveryValue( event.target );\r\n } ).find( '.js-alcadon-cart-no-partial-delivery-requested-checkbox' ).trigger( 'change' );\r\n },\r\n ajax: function ( objAjaxSettings, fnCallback ) {\r\n // TODO: Refactor to use e4.util.ajax\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 return jqXHR;\r\n },\r\n\r\n setNoPartialDeliveryValue: function ( domNode ) {\r\n var jInputCheckbox = jQuery( domNode ),\r\n jInputHidden = jQuery( '.js-alcadon-cart-no-partial-delivery-requested-input' );\r\n jInputHidden.val( jInputCheckbox.prop( 'checked' ) );\r\n e4.cart.ajax( {\r\n beforeSend: null,\r\n data: jQuery( '.js-alcadon-cart-top-actions-form' ).serialize()\r\n } );\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.settings.ecom.cart.storageKeyInternalBackLink, document.referrer );\r\n }\r\n },\r\n goToInternalBackLink: function ( event ) {\r\n var strInternalBackLink = sessionStorage.getItem( e4.settings.ecom.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 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\r\n if ( jQuery.isPlainObject( objProductFormData ) === true ) {\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 //console.log('Product ADD', alcadon.cart.currentProject)\r\n return 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\r\n e4.cart.updateProjectInfo( jsonData.cart );\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 console.log( 'trigger', e4.cart.event.productadded );\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 if ( jCart.length === 1 ) {\r\n jCart.trigger( e4.cart.event.update );\r\n jCart.find( '.js-e-cart-block-container[data-key=\"orderlines\"]' ).html( jsonData.cart.orderlines );\r\n jCart.find( '.js-e-cart-block-container[data-key=\"orderSummery\"]' ).html( jsonData.cart.orderSummery );\r\n jCart.find( '.js-e-cart-block-container[data-key=\"projectSelect\"]' ).html( jsonData.cart.projectSelect );\r\n jCart.find( '.js-e-cart-block-container[data-key=\"deliveryDate\"]' ).html( jsonData.cart.deliveryDate );\r\n jCart.find( '.js-e-cart-block-container[data-key=\"savedCarts\"]' ).html( jsonData.cart.savedCarts );\r\n e4.cart.updateQuantityInfo( jsonData.cart.productQuantity );\r\n jCart.trigger( e4.cart.event.updated );\r\n }\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 updateProjectInfo: function ( jsonCart ) {\r\n console.log( 'updateProjectInfo', jsonCart );\r\n if ( jsonCart.currentProject !== null ) {\r\n var jProjectList = jQuery( '.js-alcadon-project-list' );\r\n jQuery( '.js-alcadon-nav-project-name' ).text( jsonCart.currentProject.Name );\r\n if ( jProjectList.length > 0 ) {\r\n jProjectList.data( 'currentProject', jsonCart.currentProject.Name );\r\n }\r\n }\r\n else {\r\n jQuery( '.js-alcadon-nav-project-name' ).text( '' );\r\n }\r\n },\r\n orderline: {\r\n bindEvents: function () {\r\n jQuery( '.js-e-cart-form' ).on( 'focus blur', '.js-e-orderline-quantity-input', e4.cart.orderline.toggleFocus ).on( 'input', '.js-e-orderline-quantity-input', e4.util.debounce( function ( event ) {\r\n e4.cart.orderline.update( event.target );\r\n }, e4.settings.debounceDelay.input * 2 ) ).on( 'input', '.js-e-orderline-comment-input', e4.util.debounce( function ( event ) {\r\n e4.cart.orderline.saveComment( event.target );\r\n }, e4.settings.debounceDelay.input * 10 ) ).on( 'input', '.js-e-orderline-comment-input', function ( event ) {\r\n e4.cart.orderline.hideCommentHelpText( event.target );\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 } ).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 e4.cart.ajax( {\r\n data: jForm.serialize()\r\n }, function ( jsonData ) {\r\n e4.cart.updateContent( jsonData );\r\n e4.cart.updateProjectInfo( jsonData.cart );\r\n e4.cart.orderline.setFocus( jOrderline.attr( 'id' ) );\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 var objUpdate = {\r\n key: jOrderline.attr( 'id' ),\r\n CartCmd: 'delorderline',\r\n Redirect: false\r\n };\r\n if ( objOrderlineData.quoteContextId !== '' ) {\r\n objUpdate.OrderContext = objOrderlineData.quoteContextId;\r\n }\r\n e4.cart.ajax( {\r\n data: objUpdate\r\n }, function ( jsonData ) {\r\n e4.cart.updateContent( jsonData );\r\n e4.cart.updateProjectInfo( jsonData.cart );\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 saveComment: function ( domInput ) {\r\n e4.cart.ajax( {\r\n data: [\r\n domInput.name,\r\n domInput.value\r\n ].join( '=' ),\r\n beforeSend: jQuery.noop\r\n }, function () {\r\n e4.cart.orderline.showCommentHelpText( domInput );\r\n } );\r\n },\r\n showCommentHelpText: function ( domInput ) {\r\n jQuery( domInput ).closest( '.form-group' ).find( '.js-e-orderline-comment-help-text' ).prop( 'hidden', false );\r\n },\r\n hideCommentHelpText: function ( domInput ) {\r\n jQuery( domInput ).closest( '.form-group' ).find( '.js-e-orderline-comment-help-text' ).prop( 'hidden', true );\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' ).trigger( '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.cart.msg.bindEvents();\r\n }\r\n },\r\n bindEvents: function () {\r\n jQuery( document ).on( e4.cart.event.productadded, function ( event, jsonData ) {\r\n console.log( e4.cart.event.productadded );\r\n e4.cart.msg.build( jsonData );\r\n e4.cart.msg.show();\r\n } );\r\n jQuery( '#js-e-cart-msg' ).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 },\r\n build: function ( jsonData ) {\r\n jQuery( '#js-e-cart-msg' ).find( '.js-e-cart-msg-content' ).html( jsonData.cart.lastAdded );\r\n },\r\n show: function () {\r\n e4.cart.msg.clearTimeout();\r\n e4.cart.msg.setPosition();\r\n jQuery( '#js-e-cart-msg' ).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 !== null ) {\r\n clearTimeout( e4.cart.msg.timeout );\r\n e4.cart.msg.timeout = null;\r\n }\r\n }\r\n }\r\n};\r\n"]}