{"version":3,"sources":["webpack:///./assets/js/product-combination.js"],"names":["$","on","self","this","combinationId","attr","productName","find","html","swal","setDefaults","input","type","progressSteps","steps","title","trans","text","replace","toLower","queue","then","result","minQuantity","maxQuantity","ajax","url","method","data","resetDefaults","configSelect","combinationQuantityInput","length","selectedProducts","each","is","selectedIndex","val","push","currentSelect","parent","hide","configurations","key","configuration","productsInConfiguration","i","indexOf","parseInt","show","removeAttr","product","displayPrice","metadataInput","metadata","totalPrice","productId","closest","quantity","price","parseFloat","toFixed","JSON","stringify","trigger"],"mappings":"mGAAAA,eAAE,WACEA,EAAE,qBAAqBC,GAAG,SAAS,WAC/B,IAAIC,EAAOF,EAAEG,MACTC,EAAgBJ,EAAEG,MAAME,KAAK,uBAC7BC,EAAcN,EAAEG,MAAMI,KAAK,6BAA6BC,OAE5DC,KAAKC,YAAY,CACbC,MAAO,OACPC,KAAM,WACNC,cAAe,CAAC,IAAK,OAGzB,IAAIC,EAAQ,CACR,CACIC,MAAOC,MAAM,2BACbC,KAAMD,MAAM,gCAAgCE,QAAQ,SAAUF,MAAM,2BAA2BG,WAAWD,QAAQ,YAAaZ,IAEnI,CACIS,MAAOC,MAAM,2BACbC,KAAMD,MAAM,gCAAgCE,QAAQ,SAAUF,MAAM,2BAA2BG,WAAWD,QAAQ,YAAaZ,KAIvIG,KAAKW,MAAMN,GAAOO,MAAK,SAACC,GACpB,IAAIC,EAAcD,EAAO,GACrBE,EAAcF,EAAO,GAEzBtB,EAAEyB,KAAK,CACHC,IAAK1B,EAAE,+BAA+BK,KAAK,iCAC3CsB,OAAQ,OACRC,KAAM,CACF,YAAexB,EACf,YAAemB,EACf,YAAeC,KAEpBH,MAAK,WACJZ,KAAKoB,gBACLpB,KAAKO,MAAM,iBAAkBA,MAAM,2BAA4B,WAC/Dd,EAAKG,KAAK,oBAAqBkB,GAC/BrB,EAAKG,KAAK,oBAAqBmB,YAK3C,IAAIM,EAAe9B,EAAE,yBAEjB+B,EAA2B/B,EAAE,yBAE9B8B,EAAaE,QACZhC,EAAE,gBAAgBK,KAAK,WAAY,YAGvCyB,EAAa7B,GAAG,UAAU,WAEtB,IAAIgC,EAAmB,GACnB/B,EAAOF,EAAEG,MACb2B,EAAaI,MAAK,WACVhC,EAAKG,KAAK,eAAiBH,EAAKiC,GAAGnC,EAAEG,SACrCH,EAAEG,MAAM,GAAGiC,cAAgB,GAG3BpC,EAAEG,MAAMkC,OACRJ,EAAiBK,KAAKtC,EAAEG,MAAMkC,UAItC,IAAIE,EAAgBvC,EAAEG,MAEtBH,EAAE,6BAA6BkC,MAAK,WAC3BlC,EAAEG,MAAMqC,SAASL,GAAGI,IAAmBvC,EAAEG,MAAMqC,SAASnC,KAAK,cAC9DL,EAAEG,MAAMsC,UAIhBzC,EAAEkC,KAAKQ,gBAAgB,SAAUC,EAAKC,GAClC,IAAIC,GAA0B,EAM9B,GALA7C,EAAEkC,KAAKD,GAAkB,SAAUa,GAC/BD,EAA0BD,EAAcG,QAAQC,SAASf,EAAiBa,KAAO,KAIjFD,IACA7C,EAAEkC,KAAKU,GAAe,SAAUE,GAC5B9C,EAAE,6BAA+B4C,EAAcE,GAAK,MAAMG,UAG1DjD,EAAE,4CAA4CgC,SAAWhC,EAAE,yBAAyBgC,QAgBpF,OAfAhC,EAAE,mBAAmBqC,IAAIM,GACzB3C,EAAE,gBAAgBkD,WAAW,YACLN,EAGxB5C,EAAEyB,KAAK,CACHC,IAAK1B,EAAE,oBAAoBK,KAAK,gCAChCsB,OAAQ,MACRC,KAAM,CACFuB,QAASR,KAEdtB,MAAK,SAACO,GACL5B,EAAE,kBAAkBQ,KAAKoB,EAAKuB,QAAQC,kBAGnC,QAMvBrB,EAAyB9B,GAAG,UAAU,WAClC,IAAIoD,EAAgBrD,EAAE,kBAClBsD,EAAW,GACXC,EAAa,EAEjBvD,EAAE,yBAAyBkC,MAAK,WAC5B,IAAIsB,EAAYxD,EAAEG,MAAMsD,QAAQ,gBAAgBpD,KAAK,mBACjDqD,EAAW1D,EAAEG,MAAMkC,MACnBsB,EAAQ3D,EAAEG,MAAMsD,QAAQ,gBAAgBpD,KAAK,cAEjDiD,EAAShB,KAAK,CACVkB,UAAWA,EACXE,SAAUA,EACVC,MAAOA,IAGXJ,GAAeK,WAAWD,EAAMzC,QAAQ,IAAK,MAAQ8B,SAASU,MAIlE1D,EAAE,kBAAkBQ,KAAKoD,WAAWL,GAAYM,QAAQ,GAAG3C,QAAQ,IAAK,MACxEmC,EAAchB,IAAIyB,KAAKC,UAAUT,OAGrCvB,EAAyBiC,QAAQ,UACjClC,EAAakC,QAAQ,e","file":"product-combination.1a2ed4fa.js","sourcesContent":["$(function () {\n $('.col-product-item').on('click', function () {\n var self = $(this);\n var combinationId = $(this).attr('data-combination-id');\n var productName = $(this).find('.product-item-description').html();\n\n swal.setDefaults({\n input: 'text',\n type: 'question',\n progressSteps: ['1', '2']\n });\n\n var steps = [\n {\n title: trans('cart.order.minimum_unit'),\n text: trans('cart.order.question_for_unit').replace('%unit%', trans('cart.order.minimum_unit').toLower()).replace('%product%', productName)\n },\n {\n title: trans('cart.order.maximum_unit'),\n text: trans('cart.order.question_for_unit').replace('%unit%', trans('cart.order.maximum_unit').toLower()).replace('%product%', productName)\n }\n ];\n\n swal.queue(steps).then((result) => {\n var minQuantity = result[0];\n var maxQuantity = result[1];\n\n $.ajax({\n url: $('.combination-product-holder').attr('data-combination-quantity-url'),\n method: 'POST',\n data: {\n 'combination': combinationId,\n 'minQuantity': minQuantity,\n 'maxQuantity': maxQuantity\n }\n }).then(() => {\n swal.resetDefaults();\n swal(trans('modal.success'), trans('cart.order.unit_changed'), 'success');\n self.attr('data-min-quantity', minQuantity);\n self.attr('data-max-quantity', maxQuantity)\n });\n });\n });\n\n var configSelect = $('.configuration-select');\n var selectedConfiguration = null;\n var combinationQuantityInput = $('.combination-quantity');\n\n if(configSelect.length) {\n $('#form_submit').attr('disabled', 'disabled');\n }\n\n configSelect.on('change', function () {\n //filter select fields on previous selected values\n var selectedProducts = [];\n var self = $(this);\n configSelect.each(function () {\n if (self.attr('data-main') && !self.is($(this))) {\n $(this)[0].selectedIndex = 0;\n }\n\n if ($(this).val()) {\n selectedProducts.push($(this).val());\n }\n });\n\n var currentSelect = $(this);\n //hide all options except main options and current select options\n $('[data-combination-option]').each(function () {\n if (!$(this).parent().is(currentSelect) && !$(this).parent().attr('data-main')) {\n $(this).hide();\n }\n });\n\n $.each(configurations, function (key, configuration) {\n var productsInConfiguration = true;\n $.each(selectedProducts, function (i) {\n productsInConfiguration = configuration.indexOf(parseInt(selectedProducts[i])) < 0;\n });\n\n //show available configuration options\n if (productsInConfiguration) {\n $.each(configuration, function (i) {\n $('[data-combination-option=\"' + configuration[i] + '\"]').show();\n });\n\n if ($('option[data-combination-option]:selected').length === $('.configuration-select').length) {\n $('#form_variation').val(key);\n $('#form_submit').removeAttr('disabled');\n selectedConfiguration = configuration;\n\n //retrieve product information from matched configuration\n $.ajax({\n url: $('#content-product').attr('data-product-information-url'),\n method: 'GET',\n data: {\n product: key\n }\n }).then((data) => {\n $('#product_price').html(data.product.displayPrice);\n });\n\n return false;\n }\n }\n });\n });\n\n combinationQuantityInput.on('change', function () {\n var metadataInput = $('#form_metadata');\n var metadata = [];\n var totalPrice = 0;\n\n $('.combination-quantity').each(function () {\n var productId = $(this).closest('.line-double').attr('data-product-id');\n var quantity = $(this).val();\n var price = $(this).closest('.line-double').attr('data-price');\n\n metadata.push({\n productId: productId,\n quantity: quantity,\n price: price\n });\n\n totalPrice += (parseFloat(price.replace(',', '.')) * parseInt(quantity));\n\n });\n\n $('#product_price').html(parseFloat(totalPrice).toFixed(2).replace('.', ','));\n metadataInput.val(JSON.stringify(metadata));\n });\n\n combinationQuantityInput.trigger('change');\n configSelect.trigger('change');\n});"],"sourceRoot":""}