{"version":3,"file":"variants.js","mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,eAAe,oBAAoB,OAAO;AAC1C;AACA,QAAQ;AACR;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","sources":["webpack://build/../laviesports/assets/javascripts/variants.js"],"sourcesContent":["window.$attributes = $(\"[data-box-produto-main] [data-product-attributes]\");\r\n\r\nwindow.variants = {\r\n $wrapperProduct: $('[data-box-produto-main]'),\r\n config: {\r\n // pega o elemento que corresponde ao primeiro atributo\r\n $attr1: \"\",\r\n attr1Name: \"\",\r\n // pega o elemento que corresponde ao segundo atributo\r\n $attr2: \"\",\r\n attr2Name: \"\",\r\n // pega o elemento que corresponde ao terceiro atributo\r\n $attr3: \"\",\r\n attr3Name: \"\",\r\n // quantos atributos o produto tem para seleção\r\n qtdAttributes: 0,\r\n hasAttribute1: false,\r\n hasAttribute2: false,\r\n hasAttribute3: false,\r\n },\r\n setConfigDefault: function () {\r\n var _this = this;\r\n\r\n var $attr1 = $attributes.find('[data-attribute=\"1\"]:not(.hidden)');\r\n var $attr2 = $attributes.find('[data-attribute=\"2\"]:not(.hidden)');\r\n var $attr3 = $attributes.find('[data-attribute=\"3\"]:not(.hidden)');\r\n\r\n var itensAttr1 = \"\";\r\n var itensAttr2 = \"\";\r\n var itensAttr3 = \"\";\r\n\r\n //console.log('$attr2', $attr2)\r\n\r\n if ($attr1.length > 0) {\r\n itensAttr1 = $attr1.data(\"items\");\r\n itensAttr1 = itensAttr1.split(\" // \");\r\n //itensAttr1.pop();\r\n }\r\n\r\n if ($attr2.length > 0) {\r\n itensAttr2 = $attr2.data(\"items\");\r\n //console.log('itensAttr2', itensAttr2)\r\n itensAttr2 = itensAttr2.split(\" // \");\r\n //console.log('itensAttr2', itensAttr2)\r\n //itensAttr2.pop();\r\n }\r\n\r\n if ($attr3.length > 0) {\r\n itensAttr3 = $attr3.data(\"items\");\r\n itensAttr3 = itensAttr3.split(\" // \");\r\n //itensAttr3.pop();\r\n }\r\n\r\n //console.log('itensAttr2', itensAttr2)\r\n\r\n $.extend(true, _this.config, {\r\n // pega o elemento que corresponde ao primeiro atributo\r\n $attr1: $attr1,\r\n attr1Name: $attr1.data(\"attribute-name\"),\r\n itemsAttr1: itensAttr1,\r\n // pega o elemento que corresponde ao segundo atributo\r\n $attr2: $attr2,\r\n attr2Name: $attr2.data(\"attribute-name\"),\r\n itemsAttr2: itensAttr2,\r\n // pega o elemento que corresponde ao terceiro atributo\r\n $attr3: $attr3,\r\n attr3Name: $attr3.data(\"attribute-name\"),\r\n itemsAttr3: itensAttr3,\r\n });\r\n },\r\n setQtdAttributes: function () {\r\n // Seta quantos atributos o produto possuí para seleção\r\n\r\n var qtdAttributes = 0;\r\n\r\n var $input = $attributes.find(\"[data-quantidade-atributos]\");\r\n\r\n var $attr1 = this.config.$attr1;\r\n var $attr2 = this.config.$attr2;\r\n var $attr3 = this.config.$attr3;\r\n\r\n // considerando que o tamanho é o primeiro atributo\r\n if ($attr1.length > 0) {\r\n qtdAttributes++;\r\n this.config.hasAttribute1 = true;\r\n }\r\n\r\n // considerando que a cor é o segundo atributo\r\n if ($attr2.length > 0) {\r\n qtdAttributes++;\r\n this.config.hasAttribute2 = true;\r\n }\r\n\r\n // considerando que o custom é o terceiro atributo\r\n if ($attr3.length > 0) {\r\n qtdAttributes++;\r\n this.config.hasAttribute3 = true;\r\n }\r\n\r\n this.config.qtdAttributes = qtdAttributes;\r\n },\r\n setDisponibility: function () {\r\n var _this = this;\r\n //console.info('setDisponibility');\r\n // console.info(_this.config);\r\n\r\n if (_this.config.qtdAttributes > 1) {\r\n // Para quando há o atributo 1 e o atributo 2\r\n if (_this.config.hasAttribute1 && _this.config.hasAttribute2) {\r\n // Itera todas as cores para verificar a disponibilidade\r\n for (var i = 0; i < _this.config.itemsAttr1.length; i++) {\r\n var cor = _this.config.itemsAttr1[i];\r\n var $cor = _this.config.$attr1.find(\r\n '[data-attribute-value=\"' + cor + '\"]'\r\n );\r\n var objFind = {};\r\n var corAvailable = false;\r\n objFind[_this.config.attr1Name] = cor;\r\n\r\n // Busca todas as variações que contém a cor\r\n var results = vnda.variants.find(objFind);\r\n\r\n // Percorre todas as variantes com a cor\r\n for (var ii = 0; ii < results.length; ii++) {\r\n // Verifica se alguma variação tem a cor\r\n if (results[ii].available) {\r\n corAvailable = true;\r\n }\r\n }\r\n\r\n //console.log('$cor', $cor)\r\n //console.log('corAvailable', corAvailable)\r\n\r\n $cor.data(\"available\", corAvailable);\r\n $cor.attr(\"data-available\", corAvailable);\r\n\r\n if (corAvailable) {\r\n $cor.removeClass(\"unavailable\");\r\n $cor.addClass(\"available\");\r\n } else {\r\n $cor.removeClass(\"available\");\r\n $cor.addClass(\"unavailable\");\r\n }\r\n }\r\n }\r\n }\r\n },\r\n toggleOptionsStyle: function (_$option) {\r\n /*\r\n Define se o estilo do atributo passado por parametro é input ou dropdown\r\n */\r\n var selecao = _$option.data(\"selecao\");\r\n var styleType = _$option.data(\"selecao-style\");\r\n var $optionList = _$option.find(\"[data-attribute-value]\");\r\n var show = true;\r\n var showStatusList = [];\r\n\r\n // console.info('atributo', selecao, styleType);\r\n\r\n $optionList.each(function (index, el) {\r\n var value = $(el).data(\"attribute-value\");\r\n\r\n // console.info(value, value.length);\r\n if (selecao != \"cor\") {\r\n if (value.length > 4) {\r\n showStatusList[index] = true;\r\n } else {\r\n showStatusList[index] = false;\r\n }\r\n } else {\r\n if (value.indexOf(\"#\") < 0) {\r\n showStatusList[index] = true;\r\n } else {\r\n showStatusList[index] = false;\r\n }\r\n }\r\n });\r\n\r\n if (showStatusList.indexOf(true) >= 0) {\r\n if (styleType == \"input\") {\r\n show = false;\r\n } else if (styleType == \"dropdown\") {\r\n show = true;\r\n }\r\n } else {\r\n if (styleType == \"input\") {\r\n show = true;\r\n } else if (styleType == \"dropdown\") {\r\n show = false;\r\n }\r\n }\r\n\r\n if (!show) {\r\n _$option.addClass(\"hidden\");\r\n }\r\n },\r\n setAttributeValue: function (_value, _$attribute) {\r\n // console.info('setAttributeValue', _value, _$attribute);\r\n\r\n var attrName = _$attribute.data(\"attribute-name\");\r\n var $input = _$attribute.find(\r\n 'input[data-attribute-name=\"' + attrName + '\"]'\r\n );\r\n\r\n $input.val(_value);\r\n },\r\n setAttributeValueSelected: function (_value, _$attribute) {\r\n // console.info('setAttributeValueSelected', _value, _$attribute);\r\n\r\n var $selected = _$attribute.find(\"[data-selected]\");\r\n $selected.html(_value);\r\n },\r\n markFirstOption: function (_productBlock) {\r\n\r\n var _this = this;\r\n\r\n var $attr1 = this.config.$attr1;\r\n var $attr2 = this.config.$attr2;\r\n var $attr3 = this.config.$attr3;\r\n\r\n if (_productBlock){\r\n var $productBlock = $(_productBlock);\r\n $attr1 = $productBlock.find('[data-attribute=\"1\"]:not(.hidden)');\r\n $attr2 = $productBlock.find('[data-attribute=\"2\"]:not(.hidden)');\r\n $attr3 = $productBlock.find('[data-attribute=\"3\"]:not(.hidden)');\r\n }\r\n\r\n //console.log($attr1.find('[data-attribute-value][data-available=true]').first());\r\n //console.log($attr2.find('[data-attribute-value][data-available=true]').first());\r\n //console.log($attr3.find('[data-attribute-value][data-available=true]').first());\r\n\r\n // atributo com dropdown\r\n if ($attr1.find('[data-attribute-value][data-available=true]').first().length > 0) {\r\n $attr1.find('[data-attribute-value][data-available=true]').first().trigger('click');\r\n } else {\r\n $attr1.find('[data-attribute-value]').first().trigger('click');\r\n }\r\n\r\n // if ($attr2.find('[data-attribute-value][data-available=true]').first().length > 0) {\r\n // $attr2.find('[data-attribute-value][data-available=true]').first().trigger('click');\r\n // } else {\r\n // $attr2.find('[data-attribute-value]').first().trigger('click');\r\n // }\r\n\r\n /*if ($attr3.find('[data-attribute-value][data-available=true]').first().length > 0) {\r\n $attr3.find('[data-attribute-value][data-available=true]').first().trigger('click');\r\n } else {\r\n $attr3.find('[data-attribute-value]').first().trigger('click');\r\n } */\r\n\r\n },\r\n getSkuAttributes: function () {\r\n var _this = this;\r\n var objFindVariant = {};\r\n var objVariant;\r\n\r\n if (_this.config.hasAttribute1) {\r\n var nameAttr1 = _this.config.attr1Name;\r\n var valueAttr1 = _this.config.$attr1\r\n .find('input[data-attribute-name=\"' + nameAttr1 + '\"]')\r\n .val();\r\n objFindVariant[nameAttr1] = valueAttr1;\r\n }\r\n\r\n if (_this.config.hasAttribute2) {\r\n var nameAttr2 = _this.config.attr2Name;\r\n var valueAttr2 = _this.config.$attr2\r\n .find('input[data-attribute-name=\"' + nameAttr2 + '\"]')\r\n .val();\r\n objFindVariant[nameAttr2] = valueAttr2;\r\n }\r\n\r\n if (_this.config.hasAttribute3) {\r\n var nameAttr3 = _this.config.attr3Name;\r\n var valueAttr3 = _this.config.$attr3\r\n .find('input[data-attribute-name=\"' + nameAttr3 + '\"]')\r\n .val();\r\n objFindVariant[nameAttr3] = valueAttr3;\r\n }\r\n\r\n objVariant = vnda.variants.find(objFindVariant);\r\n\r\n console.info('objFindVariant', objFindVariant);\r\n console.info('objVariant', objVariant);\r\n\r\n return objVariant;\r\n },\r\n updatePrice: function (sale_price, price, installments) {\r\n if (sale_price != price) {\r\n var htmlPrice =\r\n \"\" +\r\n store.formatMoney(price) +\r\n \" \" +\r\n \"\" +\r\n store.formatMoney(sale_price) +\r\n \"\";\r\n } else {\r\n var htmlPrice = store.formatMoney(price);\r\n }\r\n $(\"[data-section-product] [data-update-price-main]\").html(htmlPrice);\r\n $(\"[data-section-product] [data-update-installments]\").html(\r\n `ou em ${installments.length}x de ${store.formatMoney(\r\n installments[installments.length - 1].price\r\n )}`\r\n );\r\n },\r\n // COMPORTAMENTO DE QUANDO O USUÁRIO SELECIONA UM ATRIBUTO\r\n setResultVariants: function () {\r\n console.log('SET RESULT VARIANTS')\r\n var _this = this;\r\n // busca a variante\r\n var objVariant = _this.getSkuAttributes();\r\n\r\n // console.info('objVariant', objVariant);\r\n\r\n if (objVariant.length > 0) {\r\n // seta o sku da variante que o usuário selecionou\r\n _this.$wrapperProduct.find('input[name=\"sku\"]').val(objVariant[0].sku);\r\n\r\n // atualiza o preço do produto conforme a variante selecionada\r\n _this.updatePrice(\r\n objVariant[0].sale_price,\r\n objVariant[0].price,\r\n objVariant[0].installments\r\n );\r\n\r\n if ($(\"[data-form-notify]\").length > 0) {\r\n $('[data-form-notify] input[name=\"sku\"]').val(objVariant[0].sku);\r\n }\r\n // verifica se a variante selecionada está disponível ou não\r\n if (!objVariant[0].available) {\r\n _this.setProdutoIndisponivel(objVariant[0]);\r\n } else {\r\n _this.setProdutoDisponivel(objVariant[0]);\r\n }\r\n } else {\r\n _this.setProdutoIndisponivel(objVariant[0]);\r\n }\r\n\r\n if (objVariant.length > 0) {\r\n $attributes.find(\"[data-variant-selected]\").html(objVariant[0].name);\r\n\r\n if (objVariant[0].properties.property1 && objVariant[0].properties.property1.name) {\r\n $attributes\r\n .find(\"[data-variant-\" + objVariant[0].properties.property1.name + \"]\")\r\n .html(objVariant[0].properties.property1.value.split(\"|\")[0]);\r\n }\r\n \r\n if (objVariant[0].properties.property2 && objVariant[0].properties.property2.name) {\r\n $attributes\r\n .find(\"[data-variant-\" + objVariant[0].properties.property2.name + \"]\")\r\n .html(objVariant[0].properties.property2.value);\r\n }\r\n \r\n // PARA AS IMAGENS\r\n _this.setImagesProduct(objVariant[0].sku);\r\n }\r\n },\r\n setProdutoIndisponivel: function (_variant) {\r\n var _this = this;\r\n var $btnComprar = _this.$wrapperProduct.find(store.config.selectorBtnBuy);\r\n var textUnavailable = $btnComprar.data(\"text-unavailable\");\r\n\r\n $btnComprar.data(\"available\", \"false\");\r\n $btnComprar.removeClass(\"available\");\r\n $btnComprar.addClass(\"unavailable\");\r\n $btnComprar.html(textUnavailable);\r\n\r\n $btnComprar.css('pointer-events', 'none');\r\n\r\n // AVISE-ME QUANDO CHEGAR AQUI\r\n _this.setFormNotify(_variant);\r\n },\r\n setFormNotify: function (_variant) {\r\n var height = $(\"[data-form-notify]\")\r\n .find(\".form-wrapper\")\r\n .outerHeight(true);\r\n\r\n $(\"[data-form-notify]\").addClass(\"active\").css(\"height\", height);\r\n\r\n setTimeout(function () {\r\n $(document.body).trigger(\"sticky_kit:recalc\");\r\n }, 500);\r\n\r\n if ($(\"[data-form-notify]\").length > 0) {\r\n $('[data-form-notify] input[name=\"sku\"]').val(_variant.sku);\r\n }\r\n },\r\n checkCombinations: function (_value, _attributeName) {\r\n var _this = this;\r\n var obj = {};\r\n obj[_attributeName] = String(_value);\r\n var results = vnda.variants.find(obj);\r\n\r\n //console.info('checkCombinations', _attributeName, _value);\r\n //console.info('results combinations', results);\r\n\r\n // Verifica a disponibilidade dos tamanhos quando uma cor é selecionada\r\n if (_this.config.attr1Name == _attributeName) {\r\n var tamanhos = _this.config.itemsAttr2;\r\n var objFind = {};\r\n objFind[_attributeName] = String(_value);\r\n\r\n //console.log('tamanhos', tamanhos)\r\n\r\n for (var i = 0; i < tamanhos.length; i++) {\r\n //console.log('String(tamanhos[i])', String(tamanhos[i]))\r\n\r\n objFind[_this.config.attr2Name] = String(tamanhos[i]);\r\n var corTamanhoResults = vnda.variants.find(objFind);\r\n\r\n var tamanho = tamanhos[i];\r\n var $tamanho = $('[data-attribute-value=\"' + tamanho + '\"]');\r\n\r\n //console.info('corTamanhoResults', corTamanhoResults);\r\n\r\n if (corTamanhoResults.length > 0) {\r\n var variantResult = corTamanhoResults[0];\r\n var stock = variantResult.available_quantity;\r\n\r\n $tamanho.removeClass(\"disable\");\r\n\r\n $tamanho.data(\"stock\", stock);\r\n $tamanho.attr(\"data-stock\", stock);\r\n\r\n if (variantResult.available) {\r\n $tamanho.data(\"available\", true);\r\n $tamanho.attr(\"data-available\", true);\r\n\r\n $tamanho.removeClass(\"unavailable\");\r\n $tamanho.addClass(\"available\");\r\n } else {\r\n $tamanho.data(\"available\", false);\r\n $tamanho.attr(\"data-available\", false);\r\n\r\n $tamanho.removeClass(\"available\");\r\n $tamanho.addClass(\"unavailable\");\r\n }\r\n } else {\r\n $tamanho.addClass(\"disable\");\r\n }\r\n }\r\n }\r\n },\r\n setProdutoDisponivel: function () {\r\n var _this = this;\r\n var $btnComprar = window.variants.$wrapperProduct.find('.add-to-cart-button');\r\n var textAvailable = $btnComprar.data(\"text-available\");\r\n\r\n $btnComprar.data(\"available\", \"true\");\r\n $btnComprar.removeClass(\"unavailable\");\r\n $btnComprar.addClass(\"available\");\r\n $btnComprar.html(textAvailable);\r\n\r\n $btnComprar.css('pointer-events', 'all');\r\n\r\n $(\"[data-form-notify]\").removeClass(\"active\").css(\"height\", 0);\r\n },\r\n /* \r\n Exibe as imagens que contém o sku passado por parâmetro\r\n */\r\n setImagesProduct: function (_sku) {\r\n var $images = template_store.product.$wrapperImages;\r\n var $mainImages = template_store.product.$sliderProduct;\r\n var $thumbsImages = template_store.product.$thumbsProduct;\r\n var slideProduct = template_store.product.sliderProduct[0];\r\n var qtdImagesSku = $mainImages.find(\r\n '[data-skus-image*=\"' + _sku + ',\"]'\r\n ).length;\r\n var $imagesWithoutSkus = $mainImages.find(\".image-without-sku\");\r\n var $thumbsWithoutSkus = $thumbsImages.find(\".image-without-sku\");\r\n\r\n //console.info($mainImages.find('[data-skus-image*=\"' + _sku + ',\"]'));\r\n //console.info('[data-skus-image*=\"' + _sku + '\"]');\r\n\r\n if (qtdImagesSku > 0) {\r\n // Esconde as imagens que não contém o sku\r\n $mainImages\r\n .find(\"[data-image][data-skus-image]\")\r\n .removeClass(\"active\")\r\n .addClass(\"inactive\");\r\n\r\n $thumbsImages\r\n .find(\"[data-image-thumb][data-skus-image]\")\r\n .removeClass(\"active\")\r\n .addClass(\"inactive\");\r\n\r\n // Mostra as imagens que contém o sku\r\n $mainImages\r\n .find('[data-image][data-skus-image*=\"' + _sku + ',\"]')\r\n .addClass(\"active\")\r\n .removeClass(\"inactive\");\r\n\r\n $thumbsImages\r\n .find('[data-image-thumb][data-skus-image*=\"' + _sku + ',\"]')\r\n .addClass(\"active\")\r\n .removeClass(\"inactive\");\r\n\r\n // As imagens sem skus selecionados são exibidas sempre\r\n $imagesWithoutSkus.removeClass(\"inactive\").addClass(\"active\");\r\n\r\n $thumbsWithoutSkus.removeClass(\"inactive\").addClass(\"active\");\r\n\r\n // $(document.body).trigger(\"sticky_kit:recalc\");\r\n //console.log(slideProduct)\r\n slideProduct.update();\r\n slideProduct.slideTo(0);\r\n } else {\r\n $mainImages\r\n .find(\"[data-image][data-skus-image]\")\r\n .removeClass(\"active\")\r\n .addClass(\"inactive\");\r\n\r\n $thumbsImages\r\n .find(\"[data-image-thumb][data-skus-image]\")\r\n .removeClass(\"active\")\r\n .addClass(\"inactive\");\r\n\r\n $imagesWithoutSkus.removeClass(\"inactive\").addClass(\"active\");\r\n\r\n $thumbsWithoutSkus.removeClass(\"inactive\").addClass(\"active\");\r\n }\r\n },\r\n execActionAttr: function (_attrName, _valueSelected) {\r\n var _this = this;\r\n\r\n if (_this.config.attr1Name == _attrName) {\r\n if (typeof attr1Action == \"function\") {\r\n attr1Action(_valueSelected);\r\n }\r\n } else if (_this.config.attr2Name == _attrName) {\r\n if (typeof attr2Action == \"function\") {\r\n attr2Action(_valueSelected);\r\n }\r\n } else if (_this.config.attr3Name == _attrName) {\r\n if (typeof attr3Action == \"function\") {\r\n attr3Action(_valueSelected);\r\n }\r\n }\r\n },\r\n init: function () {\r\n var _this = this;\r\n\r\n _this.setConfigDefault();\r\n _this.setQtdAttributes();\r\n\r\n let firstChanged = true\r\n\r\n console.log('this.config', this.config.qtdAttributes)\r\n\r\n // DEFINE SE O QUE VAI APARECER É A OPÇÃO EM INPUT RADIO OU O DROPDOWN\r\n $attributes.find(\"[data-prod-option]\").each(function (index, el) {\r\n // _this.toggleOptionsStyle($(el));\r\n });\r\n\r\n $attributes.on(\r\n \"click\",\r\n \"[data-prod-option]:not(.hidden) [data-attribute-value]\",\r\n function (event) {\r\n if ($(this).is(\"a\")) {\r\n event.preventDefault();\r\n }\r\n\r\n var $wrapperAttribute = $(this).closest(\"[data-prod-option]\");\r\n\r\n if (_this.config.qtdAttributes == 1){\r\n firstChanged = false\r\n }\r\n\r\n var selecao = $wrapperAttribute.data(\"selecao\");\r\n var selecaoStyle = $wrapperAttribute.data(\"selecao-style\");\r\n var attrName = $wrapperAttribute.data(\"attribute-name\");\r\n var value = $(this).data(\"attribute-value\");\r\n\r\n // console.info('selecao value', selecao, attrName, value);\r\n\r\n _this.setAttributeValue(value, $wrapperAttribute);\r\n _this.setAttributeValueSelected(value, $wrapperAttribute);\r\n\r\n \r\n if (firstChanged == false){\r\n _this.checkCombinations(value, attrName);\r\n _this.execActionAttr(attrName, value);\r\n _this.setResultVariants();\r\n }\r\n \r\n\r\n if ($($wrapperAttribute).data(\"attribute-name\") == 'Cor'){\r\n firstChanged = false\r\n }\r\n }\r\n );\r\n\r\n console.log('_this.qtdAttributes: ', _this.config.qtdAttributes);\r\n\r\n if (_this.config.qtdAttributes == 0) {\r\n var variant = vnda.variants.all()[0];\r\n console.log(variant);\r\n if (!variant.available) {\r\n console.log('if')\r\n _this.setProdutoIndisponivel(variant);\r\n } else {\r\n console.log('else')\r\n _this.setProdutoDisponivel(variant);\r\n }\r\n }\r\n\r\n \r\n _this.setDisponibility();\r\n _this.markFirstOption();\r\n },\r\n};\r\n\r\nfunction attr1Action(_valueSelected) {\r\n var $attr1 = variants.config.$attr1;\r\n var $attr2 = variants.config.$attr2;\r\n var $attr3 = variants.config.$attr3;\r\n\r\n //console.log($attr1.find('[data-attribute-value][data-available=true]').first());\r\n //console.log($attr2.find('[data-attribute-value][data-available=true]').first());\r\n //console.log($attr3.find('[data-attribute-value][data-available=true]').first());\r\n\r\n if (\r\n $attr2\r\n .find(\"[data-attribute-value][data-available=true]:not(.disable)\")\r\n .first().length > 0\r\n ) {\r\n //console.log('THIS', $attr2.find('[data-attribute-value][data-available=true]:not(.disable)').first())\r\n $attr2\r\n .find(\"[data-attribute-value][data-available=true]:not(.disable)\")\r\n .first()\r\n .trigger(\"click\");\r\n } else if (\r\n $attr2.find(\"[data-attribute-value][data-available=true]\").first().length >\r\n 0\r\n ) {\r\n $attr2\r\n .find(\"[data-attribute-value][data-available=true]\")\r\n .first()\r\n .trigger(\"click\");\r\n } else {\r\n $attr2.find(\"[data-attribute-value]\").first().trigger(\"click\");\r\n }\r\n}\r\n\r\nfunction attr2Action(_valueSelected) {\r\n var $attr1 = variants.config.$attr1;\r\n var $attr2 = variants.config.$attr2;\r\n var $attr3 = variants.config.$attr3;\r\n\r\n //console.log($attr1.find('[data-attribute-value][data-available=true]').first());\r\n //console.log($attr2.find('[data-attribute-value][data-available=true]').first());\r\n //console.log($attr3.find('[data-attribute-value][data-available=true]').first());\r\n\r\n if (\r\n $attr3\r\n .find(\"[data-attribute-value][data-available=true]:not(.disable)\")\r\n .first().length > 0\r\n ) {\r\n //console.log('THIS', $attr3.find('[data-attribute-value][data-available=true]:not(.disable)').first())\r\n $attr3\r\n .find(\"[data-attribute-value][data-available=true]:not(.disable)\")\r\n .first()\r\n .trigger(\"click\");\r\n } else if (\r\n $attr3.find(\"[data-attribute-value][data-available=true]\").first().length >\r\n 0\r\n ) {\r\n $attr3\r\n .find(\"[data-attribute-value][data-available=true]\")\r\n .first()\r\n .trigger(\"click\");\r\n } else {\r\n $attr3.find(\"[data-attribute-value]\").first().trigger(\"click\");\r\n }\r\n}\r\n\r\n$(function () {\r\n if (page == \"product\") {\r\n window.variants.init();\r\n }\r\n});\r\n"],"names":[],"sourceRoot":""}