From 3e8513f3bec1b3bc5efcc92b3e055c07656e0187 Mon Sep 17 00:00:00 2001 From: A1Gard Date: Thu, 14 Sep 2023 23:44:07 +0330 Subject: [PATCH] fixed shopping card --- .env.example | 2 +- public/js/app.js | 2 +- public/js/theme.js | 2 +- resources/js/customer.js | 34 +++++++++ resources/views/website/card.blade.php | 98 ++++++++++++++++---------- 5 files changed, 99 insertions(+), 39 deletions(-) diff --git a/.env.example b/.env.example index ddba5b7..7e219a0 100755 --- a/.env.example +++ b/.env.example @@ -60,7 +60,7 @@ PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" -ZARINPAL_MERCHANT='12000000-0220-0000-0220-220000000001' +ZARINPAL_MERCHANT='test' PAY_GATWAY=zarinpal THUMBNAIL_SIZE=600x600 diff --git a/public/js/app.js b/public/js/app.js index 362cebc..dec6c14 100755 --- a/public/js/app.js +++ b/public/js/app.js @@ -89,7 +89,7 @@ eval("// by a1gard for commafy input price\nfunction nocomma(num) {\n a = num.r \**********************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { -eval("function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar data = __webpack_require__(/*! ./plugins/data */ \"./resources/js/plugins/data.js\");\n\nvar isSendSms = false;\n\nfunction nocomma(num) {\n a = num.toString().replace(/\\,/g, ''); // 1125, but a string, so convert it to number\n\n return a.toString();\n}\n\nfunction commafy(num) {\n num = nocomma(num);\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nfunction findNextTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index + 1] || list[0];\n}\n\nfunction findPervTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index - 1] || list[0];\n}\n\njQuery(function ($) {\n $('.sms-pass').bind('focus', function () {\n this.setSelectionRange(0, this.value.length);\n });\n $('.sms-pass').bind('keyup', function () {\n if ($(this).val().length == 1) {\n var x = findNextTabStop(this);\n x.focus();\n } else if ($(this).val().length == 0) {\n var _x = findPervTabStop(this);\n\n _x.focus();\n }\n });\n\n if ($(\"#state\").length != 0) {\n var tx = '';\n\n var _iterator = _createForOfIteratorHelper(data().states),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n $(\"#state\").append(tx);\n $(\"#state\").val($(\"#state\").data('val'));\n $(\"#state\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator2 = _createForOfIteratorHelper(data().cities),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var city = _step2.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n $(\"#city\").html(tx);\n });\n $(\"#state\").change();\n $(\"#city\").val($(\"#city\").data('val'));\n }\n\n if ($(\"#state_\").length != 0) {\n var tx = '';\n\n var _iterator3 = _createForOfIteratorHelper(data().states),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _s = _step3.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#state_\").append(tx);\n $(\"#state_\").val($(\"#state_\").data('val'));\n $(\"#state_\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator4 = _createForOfIteratorHelper(data().cities),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var city = _step4.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\"#city_\").html(tx);\n });\n $(\"#state_\").change();\n $(\"#city_\").val($(\"#city_\").data('val'));\n }\n\n $(\"#sms-btn\").bind('click', function () {\n if ($(\"#mobile\").val().length !== 11) {\n window.alertify.error(window.translate.errMobile);\n return;\n }\n\n $(\"#sms-btn\").attr('disabled', true);\n\n if (!isSendSms) {\n axios.post($(this).data('send'), {\n mobile: $(\"#mobile\").val()\n }).then(function (e) {\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n $(\"#sms-code\").slideDown(500);\n $(\"#sms-first\").focus();\n isSendSms = true;\n }\n\n $(\"#sms-btn\").removeAttr('disabled');\n })[\"catch\"](function () {\n window.alertify.error('Server Error');\n $(\"#sms-btn\").removeAttr('disabled');\n });\n } else {\n var pass = '';\n $(\".sms-pass\").each(function () {\n pass += $(this).val();\n });\n var login = $(this).data('customer');\n axios.post($(this).data('check'), {\n mobile: $(\"#mobile\").val(),\n pass: pass\n }).then(function (e) {\n $(\"#sms-btn\").removeAttr('disabled');\n\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n setTimeout(function () {\n window.location.href = login;\n }, 2000);\n } else {\n window.alertify.error(e.data.err);\n }\n })[\"catch\"](function () {\n $(\"#sms-btn\").removeAttr('disabled');\n window.alertify.error('Server Error');\n });\n }\n });\n $(\".count-dec\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) - 1 < 1) {\n $(inp).val(1);\n } else {\n $(inp).val(parseInt($(inp).val()) - 1);\n }\n\n $(inp).change();\n });\n $(\".count-inc\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) + 1 > $(inp).attr('max')) {\n $(inp).val($(inp).attr('max'));\n } else {\n $(inp).val(parseInt($(inp).val()) + 1);\n }\n\n $(inp).change();\n });\n $(\".quantity\").bind('click', function () {\n $(this).closest('td').find('.quantity').removeClass('active');\n $(this).closest('td').find('.quantity input').removeAttr('checked');\n $(this).addClass('active');\n $(this).find('input')[0].checked = true;\n $(this).closest('tr').find('.price-td').attr('data-price', $(this).data('price'));\n $(this).closest('tr').find('.price').text(commafy($(this).data('price')));\n $(this).closest('tr').find('.product-count input').attr('max', $(this).data('count'));\n\n if ($(this).data('count') == 0) {\n $(this).closest('tr').find('.product-count input').attr('max', 0);\n }\n\n updateCard();\n });\n $('.product-count input').bind('change', function () {\n updateCard();\n });\n\n function updateCard() {\n var totalPrice = 0;\n\n var _iterator5 = _createForOfIteratorHelper(document.querySelectorAll('.price-td')),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var td = _step5.value;\n var price = parseInt($(td).attr('data-price'));\n var count = parseInt($(td).closest('tr').find('.product-count input').val());\n $(td).closest('tr').find('.product-count input').attr('max', $(td).closest('tr').find('.active').data('count')); // maybe need comment\n\n if ($(td).closest('tr').find('.product-count input').attr('max') == '0') {\n $(td).closest('tr').find('.product-count input').attr('max', 1);\n }\n\n totalPrice += price * count;\n } // check price\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n try {\n var discount = JSON.parse($(\"#discount\").attr('data-discount'));\n\n if (!isNaN(parseInt(discount.amount))) {\n if (discount.type === 'price') {\n totalPrice -= parseInt(discount.amount);\n } else {\n totalPrice -= (100 - parseInt(discount.amount)) * totalPrice / 100;\n }\n }\n } catch (e) {// console.log(e.message);\n }\n\n var lastprice = totalPrice;\n\n if ($(\".transport:checked\").data('price') !== undefined) {\n lastprice += parseInt($(\".transport:checked\").data('price'));\n } // transport\n\n\n $('#total-card').text(commafy(totalPrice));\n $('#last-price').text(commafy(lastprice));\n }\n\n $(\".reserve\").change(function () {\n if ($(\".reserve:checked\").length > 0) {\n $(\".transport\").removeAttr('checked');\n }\n\n $(\"#resv\").hide();\n $(\"#flexSwitchCheckDefault\").removeAttr('checked');\n updateCard();\n });\n $(\".transport\").change(function () {\n if ($(\".transport:checked\").length > 0) {\n $(\".reserve\").removeAttr('checked');\n }\n\n $(\"#resv\").show();\n updateCard();\n }); // discount\n\n $(\"#discount\").bind('click', function () {\n axios.post($(this).data('url'), {\n code: $(\"#discount-code\").val()\n }).then(function (e) {\n $(\"#discount\").attr('data-discount', JSON.stringify(e.data));\n window.alertify.success(window.translate.discountCodeAccept);\n updateCard();\n })[\"catch\"](function () {\n $(\"#discount\").attr('data-discount', '{}');\n window.alertify.error(window.translate.discountCodeError);\n updateCard();\n });\n });\n $(\"#profile-tab li\").bind('click', function () {\n $(\"#profile-tab li\").removeClass('active');\n $(this).addClass('active');\n $(\".profile-tab.active\").slideUp(300, function () {\n $(this).removeClass('active');\n });\n $($(this).data('id')).slideDown(300, function () {\n $(this).addClass('active');\n });\n });\n updateCard();\n setTimeout(function () {\n if ($(\"#catId\").length > 0) {\n var url = $(\"#catId\").data('url');\n $.get(url, function (e) {\n // console.log(app);\n app.jdata = e[1];\n });\n }\n }, 500);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLENBQUN3RSxHQUFGLENBQU1ELEdBQU4sRUFBVyxVQUFVMUMsQ0FBVixFQUFhO1FBQ3BCO1FBQ0E0QyxHQUFHLENBQUNDLEtBQUosR0FBWTdDLENBQUMsQ0FBQyxDQUFELENBQWI7TUFDSCxDQUhEO0lBSUg7RUFDSixDQVJTLEVBUVAsR0FSTyxDQUFWO0FBU0gsQ0F0T0ssQ0FBTiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jdXN0b21lci5qcz8wNmJiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkYXRhID0gcmVxdWlyZSgnLi9wbHVnaW5zL2RhdGEnKTtcbnZhciBpc1NlbmRTbXMgPSBmYWxzZTtcblxuZnVuY3Rpb24gbm9jb21tYShudW0pIHtcbiAgICBhID0gbnVtLnRvU3RyaW5nKCkucmVwbGFjZSgvXFwsL2csICcnKTsgLy8gMTEyNSwgYnV0IGEgc3RyaW5nLCBzbyBjb252ZXJ0IGl0IHRvIG51bWJlclxuICAgIHJldHVybiBhLnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGNvbW1hZnkobnVtKSB7XG4gICAgbnVtID0gbm9jb21tYShudW0pO1xuICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIGlmIChzdHJbMF0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMF0gPSBzdHJbMF0ucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSskKS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIGlmIChzdHJbMV0gJiYgc3RyWzFdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzFdID0gc3RyWzFdLnJlcGxhY2UoLyhcXGR7M30pL2csICckMSwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5qb2luKCcuJyk7XG59XG5cbmZ1bmN0aW9uIGZpbmROZXh0VGFiU3RvcChlbCkge1xuICAgIHZhciB1bml2ZXJzZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCBidXR0b24sIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0nKTtcbiAgICB2YXIgbGlzdCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh1bml2ZXJzZSwgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGFiSW5kZXggPj0gXCIwXCJcbiAgICB9KTtcbiAgICB2YXIgaW5kZXggPSBsaXN0LmluZGV4T2YoZWwpO1xuICAgIHJldHVybiBsaXN0W2luZGV4ICsgMV0gfHwgbGlzdFswXTtcbn1cblxuZnVuY3Rpb24gZmluZFBlcnZUYWJTdG9wKGVsKSB7XG4gICAgdmFyIHVuaXZlcnNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSwgYVtocmVmXScpO1xuICAgIHZhciBsaXN0ID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHVuaXZlcnNlLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS50YWJJbmRleCA+PSBcIjBcIlxuICAgIH0pO1xuICAgIHZhciBpbmRleCA9IGxpc3QuaW5kZXhPZihlbCk7XG4gICAgcmV0dXJuIGxpc3RbaW5kZXggLSAxXSB8fCBsaXN0WzBdO1xufVxuXG5qUXVlcnkoZnVuY3Rpb24gKCQpIHtcblxuICAgICQoJy5zbXMtcGFzcycpLmJpbmQoJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGlvblJhbmdlKDAsIHRoaXMudmFsdWUubGVuZ3RoKTtcbiAgICB9KTtcbiAgICAkKCcuc21zLXBhc3MnKS5iaW5kKCdrZXl1cCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQodGhpcykudmFsKCkubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgIGxldCB4ID0gZmluZE5leHRUYWJTdG9wKHRoaXMpO1xuICAgICAgICAgICAgeC5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKCQodGhpcykudmFsKCkubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIGxldCB4ID0gZmluZFBlcnZUYWJTdG9wKHRoaXMpO1xuICAgICAgICAgICAgeC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCQoXCIjc3RhdGVcIikubGVuZ3RoICE9IDApIHtcblxuICAgICAgICB2YXIgdHggPSAnPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPic7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBkYXRhKCkuc3RhdGVzKSB7XG4gICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7cy5pZH1cIj4ke3MubmFtZX08L29wdGlvbj5gO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc3RhdGVcIikuYXBwZW5kKHR4KTtcbiAgICAgICAgJChcIiNzdGF0ZVwiKS52YWwoJChcIiNzdGF0ZVwiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICAgICAgJChcIiNzdGF0ZVwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHYgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgdmFyIHR4ID0gJyc7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNpdHkgb2YgZGF0YSgpLmNpdGllcykge1xuICAgICAgICAgICAgICAgIGlmIChjaXR5LnN0YXRlX2lkID09IHYpIHtcbiAgICAgICAgICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke2NpdHkuaWR9XCI+JHtjaXR5Lm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKFwiI2NpdHlcIikuaHRtbCh0eCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKFwiI3N0YXRlXCIpLmNoYW5nZSgpO1xuICAgICAgICAkKFwiI2NpdHlcIikudmFsKCQoXCIjY2l0eVwiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICB9XG5cbiAgICBpZiAoJChcIiNzdGF0ZV9cIikubGVuZ3RoICE9IDApIHtcblxuICAgICAgICB2YXIgdHggPSAnPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPic7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBkYXRhKCkuc3RhdGVzKSB7XG4gICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7cy5pZH1cIj4ke3MubmFtZX08L29wdGlvbj5gO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmFwcGVuZCh0eCk7XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLnZhbCgkKFwiI3N0YXRlX1wiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICAgICAgJChcIiNzdGF0ZV9cIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB2ID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIHZhciB0eCA9ICcnO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaXR5IG9mIGRhdGEoKS5jaXRpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2l0eS5zdGF0ZV9pZCA9PSB2KSB7XG4gICAgICAgICAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtjaXR5LmlkfVwiPiR7Y2l0eS5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNjaXR5X1wiKS5odG1sKHR4KTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmNoYW5nZSgpO1xuICAgICAgICAkKFwiI2NpdHlfXCIpLnZhbCgkKFwiI2NpdHlfXCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgIH1cblxuXG4gICAgJChcIiNzbXMtYnRuXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIiNtb2JpbGVcIikudmFsKCkubGVuZ3RoICE9PSAxMSkge1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKHdpbmRvdy50cmFuc2xhdGUuZXJyTW9iaWxlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3Ntcy1idG5cIikuYXR0cignZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgaWYgKCFpc1NlbmRTbXMpIHtcbiAgICAgICAgICAgIGF4aW9zLnBvc3QoJCh0aGlzKS5kYXRhKCdzZW5kJyksIHttb2JpbGU6ICQoXCIjbW9iaWxlXCIpLnZhbCgpfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlLmRhdGEuT0sgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2VzcyhlLmRhdGEubXNnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzbXMtY29kZVwiKS5zbGlkZURvd24oNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzbXMtZmlyc3RcIikuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaXNTZW5kU21zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKCdTZXJ2ZXIgRXJyb3InKTtcbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHBhc3MgPSAnJztcbiAgICAgICAgICAgICQoXCIuc21zLXBhc3NcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcGFzcyArPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgbG9naW4gPSAkKHRoaXMpLmRhdGEoJ2N1c3RvbWVyJyk7XG4gICAgICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgnY2hlY2snKSwge21vYmlsZTogJChcIiNtb2JpbGVcIikudmFsKCksIHBhc3M6IHBhc3N9KS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgaWYgKGUuZGF0YS5PSyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9naW47XG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcihlLmRhdGEuZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKCdTZXJ2ZXIgRXJyb3InKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKFwiLmNvdW50LWRlY1wiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGlucCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgaWYgKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgLSAxIDwgMSkge1xuICAgICAgICAgICAgJChpbnApLnZhbCgxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwocGFyc2VJbnQoJChpbnApLnZhbCgpKSAtIDEpO1xuICAgICAgICB9XG4gICAgICAgICQoaW5wKS5jaGFuZ2UoKTtcbiAgICB9KTtcbiAgICAkKFwiLmNvdW50LWluY1wiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGlucCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgaWYgKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgKyAxID4gJChpbnApLmF0dHIoJ21heCcpKSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKCQoaW5wKS5hdHRyKCdtYXgnKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgKyAxKTtcbiAgICAgICAgfVxuICAgICAgICAkKGlucCkuY2hhbmdlKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLnF1YW50aXR5XCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RkJykuZmluZCgnLnF1YW50aXR5JykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RkJykuZmluZCgnLnF1YW50aXR5IGlucHV0JykucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dCcpWzBdLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByaWNlLXRkJykuYXR0cignZGF0YS1wcmljZScsICQodGhpcykuZGF0YSgncHJpY2UnKSk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJpY2UnKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdwcmljZScpKSk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsICQodGhpcykuZGF0YSgnY291bnQnKSk7XG4gICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2NvdW50JykgPT0gMCkge1xuICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuXG4gICAgJCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHVwZGF0ZUNhcmQoKVxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlQ2FyZCgpIHtcbiAgICAgICAgbGV0IHRvdGFsUHJpY2UgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHRkIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wcmljZS10ZCcpKSB7XG4gICAgICAgICAgICBsZXQgcHJpY2UgPSBwYXJzZUludCgkKHRkKS5hdHRyKCdkYXRhLXByaWNlJykpO1xuICAgICAgICAgICAgbGV0IGNvdW50ID0gcGFyc2VJbnQoJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLnZhbCgpKTtcbiAgICAgICAgICAgICQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLCAkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5hY3RpdmUnKS5kYXRhKCdjb3VudCcpKTtcblxuICAgICAgICAgICAgLy8gbWF5YmUgbmVlZCBjb21tZW50XG4gICAgICAgICAgICBpZiAoJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcpID09ICcwJyl7XG4gICAgICAgICAgICAgICAgJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsMSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvdGFsUHJpY2UgKz0gcHJpY2UgKiBjb3VudDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gY2hlY2sgcHJpY2VcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBkaXNjb3VudCA9IEpTT04ucGFyc2UoJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JykpO1xuICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChkaXNjb3VudC5hbW91bnQpKSkge1xuICAgICAgICAgICAgICAgIGlmIChkaXNjb3VudC50eXBlID09PSAncHJpY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsUHJpY2UgLT0gcGFyc2VJbnQoZGlzY291bnQuYW1vdW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbFByaWNlIC09ICgoMTAwIC0gcGFyc2VJbnQoZGlzY291bnQuYW1vdW50KSkgKiB0b3RhbFByaWNlKSAvIDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGUubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxhc3RwcmljZSA9IHRvdGFsUHJpY2U7XG4gICAgICAgIGlmICgkKFwiLnRyYW5zcG9ydDpjaGVja2VkXCIpLmRhdGEoJ3ByaWNlJykgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbGFzdHByaWNlICs9IHBhcnNlSW50KCQoXCIudHJhbnNwb3J0OmNoZWNrZWRcIikuZGF0YSgncHJpY2UnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHJhbnNwb3J0XG4gICAgICAgICQoJyN0b3RhbC1jYXJkJykudGV4dChjb21tYWZ5KHRvdGFsUHJpY2UpKTtcbiAgICAgICAgJCgnI2xhc3QtcHJpY2UnKS50ZXh0KGNvbW1hZnkobGFzdHByaWNlKSk7XG5cbiAgICB9XG5cbiAgICAkKFwiLnJlc2VydmVcIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIucmVzZXJ2ZTpjaGVja2VkXCIpLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgJChcIi50cmFuc3BvcnRcIikucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjcmVzdlwiKS5oaWRlKCk7XG4gICAgICAgICQoXCIjZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICB9KTtcbiAgICAkKFwiLnRyYW5zcG9ydFwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIi50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICQoXCIucmVzZXJ2ZVwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNyZXN2XCIpLnNob3coKTtcbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuICAgIC8vIGRpc2NvdW50XG4gICAgJChcIiNkaXNjb3VudFwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXhpb3MucG9zdCgkKHRoaXMpLmRhdGEoJ3VybCcpLCB7Y29kZTogJChcIiNkaXNjb3VudC1jb2RlXCIpLnZhbCgpfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JywgSlNPTi5zdHJpbmdpZnkoZS5kYXRhKSk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2Vzcyh3aW5kb3cudHJhbnNsYXRlLmRpc2NvdW50Q29kZUFjY2VwdCk7XG4gICAgICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoXCIjZGlzY291bnRcIikuYXR0cignZGF0YS1kaXNjb3VudCcsICd7fScpO1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKHdpbmRvdy50cmFuc2xhdGUuZGlzY291bnRDb2RlRXJyb3IpO1xuICAgICAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIjcHJvZmlsZS10YWIgbGlcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIjcHJvZmlsZS10YWIgbGlcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJChcIi5wcm9maWxlLXRhYi5hY3RpdmVcIikuc2xpZGVVcCgzMDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB9KTtcbiAgICAgICAgJCgkKHRoaXMpLmRhdGEoJ2lkJykpLnNsaWRlRG93bigzMDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB9KVxuICAgIH0pO1xuXG4gICAgdXBkYXRlQ2FyZCgpO1xuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiI2NhdElkXCIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCB1cmwgPSAkKFwiI2NhdElkXCIpLmRhdGEoJ3VybCcpO1xuICAgICAgICAgICAgJC5nZXQodXJsLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGFwcCk7XG4gICAgICAgICAgICAgICAgYXBwLmpkYXRhID0gZVsxXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgNTAwKTtcbn0pO1xuXG4iXSwibmFtZXMiOlsiZGF0YSIsInJlcXVpcmUiLCJpc1NlbmRTbXMiLCJub2NvbW1hIiwibnVtIiwiYSIsInRvU3RyaW5nIiwicmVwbGFjZSIsImNvbW1hZnkiLCJzdHIiLCJzcGxpdCIsImxlbmd0aCIsImpvaW4iLCJmaW5kTmV4dFRhYlN0b3AiLCJlbCIsInVuaXZlcnNlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGlzdCIsIkFycmF5IiwicHJvdG90eXBlIiwiZmlsdGVyIiwiY2FsbCIsIml0ZW0iLCJ0YWJJbmRleCIsImluZGV4IiwiaW5kZXhPZiIsImZpbmRQZXJ2VGFiU3RvcCIsImpRdWVyeSIsIiQiLCJiaW5kIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJ2YWx1ZSIsInZhbCIsIngiLCJmb2N1cyIsInR4Iiwic3RhdGVzIiwicyIsImlkIiwibmFtZSIsImFwcGVuZCIsImNoYW5nZSIsInYiLCJjaXRpZXMiLCJjaXR5Iiwic3RhdGVfaWQiLCJodG1sIiwid2luZG93IiwiYWxlcnRpZnkiLCJlcnJvciIsInRyYW5zbGF0ZSIsImVyck1vYmlsZSIsImF0dHIiLCJheGlvcyIsInBvc3QiLCJtb2JpbGUiLCJ0aGVuIiwiZSIsIk9LIiwic3VjY2VzcyIsIm1zZyIsInNsaWRlRG93biIsInJlbW92ZUF0dHIiLCJwYXNzIiwiZWFjaCIsImxvZ2luIiwic2V0VGltZW91dCIsImxvY2F0aW9uIiwiaHJlZiIsImVyciIsImlucCIsInBhcmVudCIsImZpbmQiLCJwYXJzZUludCIsImNsb3Nlc3QiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiY2hlY2tlZCIsInRleHQiLCJ1cGRhdGVDYXJkIiwidG90YWxQcmljZSIsInRkIiwicHJpY2UiLCJjb3VudCIsImRpc2NvdW50IiwiSlNPTiIsInBhcnNlIiwiaXNOYU4iLCJhbW91bnQiLCJ0eXBlIiwibGFzdHByaWNlIiwidW5kZWZpbmVkIiwiaGlkZSIsInNob3ciLCJjb2RlIiwic3RyaW5naWZ5IiwiZGlzY291bnRDb2RlQWNjZXB0IiwiZGlzY291bnRDb2RlRXJyb3IiLCJzbGlkZVVwIiwidXJsIiwiZ2V0IiwiYXBwIiwiamRhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/customer.js\n"); +eval("function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar data = __webpack_require__(/*! ./plugins/data */ \"./resources/js/plugins/data.js\");\n\nvar isSendSms = false;\nvar step = 1;\n\nfunction nocomma(num) {\n a = num.toString().replace(/\\,/g, ''); // 1125, but a string, so convert it to number\n\n return a.toString();\n}\n\nfunction commafy(num) {\n num = nocomma(num);\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nfunction findNextTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index + 1] || list[0];\n}\n\nfunction findPervTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index - 1] || list[0];\n}\n\njQuery(function ($) {\n $('.sms-pass').bind('focus', function () {\n this.setSelectionRange(0, this.value.length);\n });\n $('.sms-pass').bind('keyup', function () {\n if ($(this).val().length == 1) {\n var x = findNextTabStop(this);\n x.focus();\n } else if ($(this).val().length == 0) {\n var _x = findPervTabStop(this);\n\n _x.focus();\n }\n });\n\n if ($(\"#state\").length != 0) {\n var tx = '';\n\n var _iterator = _createForOfIteratorHelper(data().states),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n $(\"#state\").append(tx);\n $(\"#state\").val($(\"#state\").data('val'));\n $(\"#state\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator2 = _createForOfIteratorHelper(data().cities),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var city = _step2.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n $(\"#city\").html(tx);\n });\n $(\"#state\").change();\n $(\"#city\").val($(\"#city\").data('val'));\n }\n\n if ($(\"#state_\").length != 0) {\n var tx = '';\n\n var _iterator3 = _createForOfIteratorHelper(data().states),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _s = _step3.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#state_\").append(tx);\n $(\"#state_\").val($(\"#state_\").data('val'));\n $(\"#state_\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator4 = _createForOfIteratorHelper(data().cities),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var city = _step4.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\"#city_\").html(tx);\n });\n $(\"#state_\").change();\n $(\"#city_\").val($(\"#city_\").data('val'));\n }\n\n $(\"#sms-btn\").bind('click', function () {\n if ($(\"#mobile\").val().length !== 11) {\n window.alertify.error(window.translate.errMobile);\n return;\n }\n\n $(\"#sms-btn\").attr('disabled', true);\n\n if (!isSendSms) {\n axios.post($(this).data('send'), {\n mobile: $(\"#mobile\").val()\n }).then(function (e) {\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n $(\"#sms-code\").slideDown(500);\n $(\"#sms-first\").focus();\n isSendSms = true;\n }\n\n $(\"#sms-btn\").removeAttr('disabled');\n })[\"catch\"](function () {\n window.alertify.error('Server Error');\n $(\"#sms-btn\").removeAttr('disabled');\n });\n } else {\n var pass = '';\n $(\".sms-pass\").each(function () {\n pass += $(this).val();\n });\n var login = $(this).data('customer');\n axios.post($(this).data('check'), {\n mobile: $(\"#mobile\").val(),\n pass: pass\n }).then(function (e) {\n $(\"#sms-btn\").removeAttr('disabled');\n\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n setTimeout(function () {\n window.location.href = login;\n }, 2000);\n } else {\n window.alertify.error(e.data.err);\n }\n })[\"catch\"](function () {\n $(\"#sms-btn\").removeAttr('disabled');\n window.alertify.error('Server Error');\n });\n }\n });\n $(\".count-dec\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) - 1 < 1) {\n $(inp).val(1);\n } else {\n $(inp).val(parseInt($(inp).val()) - 1);\n }\n\n $(inp).change();\n });\n $(\".count-inc\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) + 1 > $(inp).attr('max')) {\n $(inp).val($(inp).attr('max'));\n } else {\n $(inp).val(parseInt($(inp).val()) + 1);\n }\n\n $(inp).change();\n });\n $(\".quantity\").bind('click', function () {\n $(this).closest('td').find('.quantity').removeClass('active');\n $(this).closest('td').find('.quantity input').removeAttr('checked');\n $(this).addClass('active');\n $(this).find('input')[0].checked = true;\n $(this).closest('tr').find('.price-td').attr('data-price', $(this).data('price'));\n $(this).closest('tr').find('.price').text(commafy($(this).data('price')));\n $(this).closest('tr').find('.product-count input').attr('max', $(this).data('count'));\n\n if ($(this).data('count') == 0) {\n $(this).closest('tr').find('.product-count input').attr('max', 0);\n }\n\n updateCard();\n });\n $('.product-count input').bind('change', function () {\n updateCard();\n });\n\n function updateCard() {\n var totalPrice = 0;\n\n var _iterator5 = _createForOfIteratorHelper(document.querySelectorAll('.price-td')),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var td = _step5.value;\n var price = parseInt($(td).attr('data-price'));\n var count = parseInt($(td).closest('tr').find('.product-count input').val());\n $(td).closest('tr').find('.product-count input').attr('max', $(td).closest('tr').find('.active').data('count')); // maybe need comment\n\n if ($(td).closest('tr').find('.product-count input').attr('max') == '0') {\n $(td).closest('tr').find('.product-count input').attr('max', 1);\n }\n\n totalPrice += price * count;\n } // check price\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n try {\n var discount = JSON.parse($(\"#discount\").attr('data-discount'));\n\n if (!isNaN(parseInt(discount.amount))) {\n if (discount.type === 'price') {\n totalPrice -= parseInt(discount.amount);\n } else {\n totalPrice -= (100 - parseInt(discount.amount)) * totalPrice / 100;\n }\n }\n } catch (e) {// console.log(e.message);\n }\n\n var lastprice = totalPrice;\n\n if ($(\".transport:checked\").data('price') !== undefined) {\n lastprice += parseInt($(\".transport:checked\").data('price'));\n } // transport\n\n\n $('#total-card').text(commafy(totalPrice));\n $('#last-price').text(commafy(lastprice));\n }\n\n $(\".reserve\").change(function () {\n if ($(\".reserve:checked\").length > 0) {\n $(\".transport\").removeAttr('checked');\n }\n\n $(\"#resv\").hide();\n $(\"#flexSwitchCheckDefault\").removeAttr('checked');\n updateCard();\n });\n $(\".transport\").change(function () {\n if ($(\".transport:checked\").length > 0) {\n $(\".reserve\").removeAttr('checked');\n }\n\n $(\"#resv\").show();\n updateCard();\n }); // discount\n\n $(\"#discount\").bind('click', function () {\n axios.post($(this).data('url'), {\n code: $(\"#discount-code\").val()\n }).then(function (e) {\n $(\"#discount\").attr('data-discount', JSON.stringify(e.data));\n window.alertify.success(window.translate.discountCodeAccept);\n updateCard();\n })[\"catch\"](function () {\n $(\"#discount\").attr('data-discount', '{}');\n window.alertify.error(window.translate.discountCodeError);\n updateCard();\n });\n });\n $(\"#profile-tab li\").bind('click', function () {\n $(\"#profile-tab li\").removeClass('active');\n $(this).addClass('active');\n $(\".profile-tab.active\").slideUp(300, function () {\n $(this).removeClass('active');\n });\n $($(this).data('id')).slideDown(300, function () {\n $(this).addClass('active');\n });\n });\n updateCard();\n setTimeout(function () {\n if ($(\"#catId\").length > 0) {\n var url = $(\"#catId\").data('url');\n $.get(url, function (e) {\n // console.log(app);\n app.jdata = e[1];\n });\n }\n }, 500);\n $(\".next-step\").bind('click', function () {\n step++;\n $(\".step\" + step).click();\n });\n $(\".progress-step .step\").click(function () {\n $(\".progress-step .step\").removeClass('done');\n $($(this).data('done')).addClass('done');\n $(\"#card-steps .active\").slideUp(300).removeClass('active');\n $('#' + $(this).data('id')).slideDown(500).addClass('active');\n step = parseInt($(this).data('id').substr(4, 1));\n\n if ($(this).data('id') == 'step3') {\n $(\".last-step\").slideDown(300);\n $(\".next-step\").slideUp(300);\n } else {\n $(\".last-step\").slideUp(300);\n $(\".next-step\").slideDown(300);\n }\n });\n\n if ($('.card-submit').length > 0) {\n if ($(\"input.transport:checked\").length == 0) {\n $('.card-submit').removeAttr('disabled');\n } else {\n $(\"input.transport\").bind('change', function () {\n console.log('fire');\n $('.card-submit').removeAttr('disabled');\n });\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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MUIsRUFBbUM7TUFDL0I4QixDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCaUMsU0FBaEIsQ0FBMEIsR0FBMUI7TUFDQWpDLENBQUMsQ0FBQyxZQUFELENBQUQsQ0FBZ0JzRSxPQUFoQixDQUF3QixHQUF4QjtJQUNILENBSEQsTUFHTztNQUNIdEUsQ0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQnNFLE9BQWhCLENBQXdCLEdBQXhCO01BQ0F0RSxDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCaUMsU0FBaEIsQ0FBMEIsR0FBMUI7SUFDSDtFQUNKLENBYkQ7O0VBZUEsSUFBSWpDLENBQUMsQ0FBQyxjQUFELENBQUQsQ0FBa0JsQixNQUFsQixHQUEyQixDQUEvQixFQUFpQztJQUM3QixJQUFJa0IsQ0FBQyxDQUFDLHlCQUFELENBQUQsQ0FBNkJsQixNQUE3QixJQUF1QyxDQUEzQyxFQUE2QztNQUN6Q2tCLENBQUMsQ0FBQyxjQUFELENBQUQsQ0FBa0JrQyxVQUFsQixDQUE2QixVQUE3QjtJQUNILENBRkQsTUFFSztNQUVEbEMsQ0FBQyxDQUFDLGlCQUFELENBQUQsQ0FBcUJDLElBQXJCLENBQTBCLFFBQTFCLEVBQW1DLFlBQVk7UUFDM0M0RSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxNQUFaO1FBQ0E5RSxDQUFDLENBQUMsY0FBRCxDQUFELENBQWtCa0MsVUFBbEIsQ0FBNkIsVUFBN0I7TUFDSCxDQUhEO0lBSUg7RUFDSjtBQUVKLENBdlFLLENBQU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY3VzdG9tZXIuanM/MDZiYiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGF0YSA9IHJlcXVpcmUoJy4vcGx1Z2lucy9kYXRhJyk7XG52YXIgaXNTZW5kU21zID0gZmFsc2U7XG52YXIgc3RlcCA9IDE7XG5cbmZ1bmN0aW9uIG5vY29tbWEobnVtKSB7XG4gICAgYSA9IG51bS50b1N0cmluZygpLnJlcGxhY2UoL1xcLC9nLCAnJyk7IC8vIDExMjUsIGJ1dCBhIHN0cmluZywgc28gY29udmVydCBpdCB0byBudW1iZXJcbiAgICByZXR1cm4gYS50b1N0cmluZygpO1xufVxuXG5mdW5jdGlvbiBjb21tYWZ5KG51bSkge1xuICAgIG51bSA9IG5vY29tbWEobnVtKTtcbiAgICB2YXIgc3RyID0gbnVtLnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgICBpZiAoc3RyWzBdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzBdID0gc3RyWzBdLnJlcGxhY2UoLyhcXGQpKD89KFxcZHszfSkrJCkvZywgJyQxLCcpO1xuICAgIH1cbiAgICBpZiAoc3RyWzFdICYmIHN0clsxXS5sZW5ndGggPj0gNCkge1xuXG4gICAgICAgIHN0clsxXSA9IHN0clsxXS5yZXBsYWNlKC8oXFxkezN9KS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIHJldHVybiBzdHIuam9pbignLicpO1xufVxuXG5mdW5jdGlvbiBmaW5kTmV4dFRhYlN0b3AoZWwpIHtcbiAgICB2YXIgdW5pdmVyc2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgYnV0dG9uLCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdJyk7XG4gICAgdmFyIGxpc3QgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodW5pdmVyc2UsIGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnRhYkluZGV4ID49IFwiMFwiXG4gICAgfSk7XG4gICAgdmFyIGluZGV4ID0gbGlzdC5pbmRleE9mKGVsKTtcbiAgICByZXR1cm4gbGlzdFtpbmRleCArIDFdIHx8IGxpc3RbMF07XG59XG5cbmZ1bmN0aW9uIGZpbmRQZXJ2VGFiU3RvcChlbCkge1xuICAgIHZhciB1bml2ZXJzZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCBidXR0b24sIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0nKTtcbiAgICB2YXIgbGlzdCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh1bml2ZXJzZSwgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGFiSW5kZXggPj0gXCIwXCJcbiAgICB9KTtcbiAgICB2YXIgaW5kZXggPSBsaXN0LmluZGV4T2YoZWwpO1xuICAgIHJldHVybiBsaXN0W2luZGV4IC0gMV0gfHwgbGlzdFswXTtcbn1cblxualF1ZXJ5KGZ1bmN0aW9uICgkKSB7XG5cbiAgICAkKCcuc21zLXBhc3MnKS5iaW5kKCdmb2N1cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3Rpb25SYW5nZSgwLCB0aGlzLnZhbHVlLmxlbmd0aCk7XG4gICAgfSk7XG4gICAgJCgnLnNtcy1wYXNzJykuYmluZCgna2V5dXAnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKHRoaXMpLnZhbCgpLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICBsZXQgeCA9IGZpbmROZXh0VGFiU3RvcCh0aGlzKTtcbiAgICAgICAgICAgIHguZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmICgkKHRoaXMpLnZhbCgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICBsZXQgeCA9IGZpbmRQZXJ2VGFiU3RvcCh0aGlzKTtcbiAgICAgICAgICAgIHguZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGlmICgkKFwiI3N0YXRlXCIpLmxlbmd0aCAhPSAwKSB7XG5cbiAgICAgICAgdmFyIHR4ID0gJzxvcHRpb24gdmFsdWU9XCJcIj48L29wdGlvbj4nO1xuICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZGF0YSgpLnN0YXRlcykge1xuICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke3MuaWR9XCI+JHtzLm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3N0YXRlXCIpLmFwcGVuZCh0eCk7XG4gICAgICAgICQoXCIjc3RhdGVcIikudmFsKCQoXCIjc3RhdGVcIikuZGF0YSgndmFsJykpO1xuXG4gICAgICAgICQoXCIjc3RhdGVcIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB2ID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIHZhciB0eCA9ICcnO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaXR5IG9mIGRhdGEoKS5jaXRpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2l0eS5zdGF0ZV9pZCA9PSB2KSB7XG4gICAgICAgICAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtjaXR5LmlkfVwiPiR7Y2l0eS5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNjaXR5XCIpLmh0bWwodHgpO1xuICAgICAgICB9KTtcbiAgICAgICAgJChcIiNzdGF0ZVwiKS5jaGFuZ2UoKTtcbiAgICAgICAgJChcIiNjaXR5XCIpLnZhbCgkKFwiI2NpdHlcIikuZGF0YSgndmFsJykpO1xuXG4gICAgfVxuXG4gICAgaWYgKCQoXCIjc3RhdGVfXCIpLmxlbmd0aCAhPSAwKSB7XG5cbiAgICAgICAgdmFyIHR4ID0gJzxvcHRpb24gdmFsdWU9XCJcIj48L29wdGlvbj4nO1xuICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZGF0YSgpLnN0YXRlcykge1xuICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke3MuaWR9XCI+JHtzLm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3N0YXRlX1wiKS5hcHBlbmQodHgpO1xuICAgICAgICAkKFwiI3N0YXRlX1wiKS52YWwoJChcIiNzdGF0ZV9cIikuZGF0YSgndmFsJykpO1xuXG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdiA9ICQodGhpcykudmFsKCk7XG4gICAgICAgICAgICB2YXIgdHggPSAnJztcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2l0eSBvZiBkYXRhKCkuY2l0aWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNpdHkuc3RhdGVfaWQgPT0gdikge1xuICAgICAgICAgICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7Y2l0eS5pZH1cIj4ke2NpdHkubmFtZX08L29wdGlvbj5gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjY2l0eV9cIikuaHRtbCh0eCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKFwiI3N0YXRlX1wiKS5jaGFuZ2UoKTtcbiAgICAgICAgJChcIiNjaXR5X1wiKS52YWwoJChcIiNjaXR5X1wiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICB9XG5cblxuICAgICQoXCIjc21zLWJ0blwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIjbW9iaWxlXCIpLnZhbCgpLmxlbmd0aCAhPT0gMTEpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcih3aW5kb3cudHJhbnNsYXRlLmVyck1vYmlsZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNzbXMtYnRuXCIpLmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICAgIGlmICghaXNTZW5kU21zKSB7XG4gICAgICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgnc2VuZCcpLCB7bW9iaWxlOiAkKFwiI21vYmlsZVwiKS52YWwoKX0pLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5kYXRhLk9LID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LnN1Y2Nlc3MoZS5kYXRhLm1zZyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc21zLWNvZGVcIikuc2xpZGVEb3duKDUwMCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc21zLWZpcnN0XCIpLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlzU2VuZFNtcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQoXCIjc21zLWJ0blwiKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcignU2VydmVyIEVycm9yJyk7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBwYXNzID0gJyc7XG4gICAgICAgICAgICAkKFwiLnNtcy1wYXNzXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHBhc3MgKz0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGV0IGxvZ2luID0gJCh0aGlzKS5kYXRhKCdjdXN0b21lcicpO1xuICAgICAgICAgICAgYXhpb3MucG9zdCgkKHRoaXMpLmRhdGEoJ2NoZWNrJyksIHttb2JpbGU6ICQoXCIjbW9iaWxlXCIpLnZhbCgpLCBwYXNzOiBwYXNzfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICQoXCIjc21zLWJ0blwiKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgIGlmIChlLmRhdGEuT0sgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2VzcyhlLmRhdGEubXNnKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxvZ2luO1xuICAgICAgICAgICAgICAgICAgICB9LCAyMDAwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3IoZS5kYXRhLmVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICQoXCIjc21zLWJ0blwiKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcignU2VydmVyIEVycm9yJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChcIi5jb3VudC1kZWNcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBpbnAgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIGlmIChwYXJzZUludCgkKGlucCkudmFsKCkpIC0gMSA8IDEpIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgLSAxKTtcbiAgICAgICAgfVxuICAgICAgICAkKGlucCkuY2hhbmdlKCk7XG4gICAgfSk7XG4gICAgJChcIi5jb3VudC1pbmNcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBpbnAgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIGlmIChwYXJzZUludCgkKGlucCkudmFsKCkpICsgMSA+ICQoaW5wKS5hdHRyKCdtYXgnKSkge1xuICAgICAgICAgICAgJChpbnApLnZhbCgkKGlucCkuYXR0cignbWF4JykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChpbnApLnZhbChwYXJzZUludCgkKGlucCkudmFsKCkpICsgMSk7XG4gICAgICAgIH1cbiAgICAgICAgJChpbnApLmNoYW5nZSgpO1xuICAgIH0pO1xuXG4gICAgJChcIi5xdWFudGl0eVwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0ZCcpLmZpbmQoJy5xdWFudGl0eScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0ZCcpLmZpbmQoJy5xdWFudGl0eSBpbnB1dCcpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTtcbiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICQodGhpcykuZmluZCgnaW5wdXQnKVswXS5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcmljZS10ZCcpLmF0dHIoJ2RhdGEtcHJpY2UnLCAkKHRoaXMpLmRhdGEoJ3ByaWNlJykpO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByaWNlJykudGV4dChjb21tYWZ5KCQodGhpcykuZGF0YSgncHJpY2UnKSkpO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLCAkKHRoaXMpLmRhdGEoJ2NvdW50JykpO1xuICAgICAgICBpZiAoJCh0aGlzKS5kYXRhKCdjb3VudCcpID09IDApIHtcbiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsIDApO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICB9KTtcblxuICAgICQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB1cGRhdGVDYXJkKClcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZUNhcmQoKSB7XG4gICAgICAgIGxldCB0b3RhbFByaWNlID0gMDtcbiAgICAgICAgZm9yIChjb25zdCB0ZCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucHJpY2UtdGQnKSkge1xuICAgICAgICAgICAgbGV0IHByaWNlID0gcGFyc2VJbnQoJCh0ZCkuYXR0cignZGF0YS1wcmljZScpKTtcbiAgICAgICAgICAgIGxldCBjb3VudCA9IHBhcnNlSW50KCQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS52YWwoKSk7XG4gICAgICAgICAgICAkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywgJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcuYWN0aXZlJykuZGF0YSgnY291bnQnKSk7XG5cbiAgICAgICAgICAgIC8vIG1heWJlIG5lZWQgY29tbWVudFxuICAgICAgICAgICAgaWYgKCQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnKSA9PSAnMCcpe1xuICAgICAgICAgICAgICAgICQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b3RhbFByaWNlICs9IHByaWNlICogY291bnQ7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC8vIGNoZWNrIHByaWNlXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgZGlzY291bnQgPSBKU09OLnBhcnNlKCQoXCIjZGlzY291bnRcIikuYXR0cignZGF0YS1kaXNjb3VudCcpKTtcbiAgICAgICAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQoZGlzY291bnQuYW1vdW50KSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzY291bnQudHlwZSA9PT0gJ3ByaWNlJykge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbFByaWNlIC09IHBhcnNlSW50KGRpc2NvdW50LmFtb3VudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdG90YWxQcmljZSAtPSAoKDEwMCAtIHBhcnNlSW50KGRpc2NvdW50LmFtb3VudCkpICogdG90YWxQcmljZSkgLyAxMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsYXN0cHJpY2UgPSB0b3RhbFByaWNlO1xuICAgICAgICBpZiAoJChcIi50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5kYXRhKCdwcmljZScpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxhc3RwcmljZSArPSBwYXJzZUludCgkKFwiLnRyYW5zcG9ydDpjaGVja2VkXCIpLmRhdGEoJ3ByaWNlJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRyYW5zcG9ydFxuICAgICAgICAkKCcjdG90YWwtY2FyZCcpLnRleHQoY29tbWFmeSh0b3RhbFByaWNlKSk7XG4gICAgICAgICQoJyNsYXN0LXByaWNlJykudGV4dChjb21tYWZ5KGxhc3RwcmljZSkpO1xuXG4gICAgfVxuXG4gICAgJChcIi5yZXNlcnZlXCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiLnJlc2VydmU6Y2hlY2tlZFwiKS5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICQoXCIudHJhbnNwb3J0XCIpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3Jlc3ZcIikuaGlkZSgpO1xuICAgICAgICAkKFwiI2ZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIikucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgfSk7XG4gICAgJChcIi50cmFuc3BvcnRcIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIudHJhbnNwb3J0OmNoZWNrZWRcIikubGVuZ3RoID4gMCl7XG4gICAgICAgICAgICAkKFwiLnJlc2VydmVcIikucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjcmVzdlwiKS5zaG93KCk7XG4gICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICB9KTtcbiAgICAvLyBkaXNjb3VudFxuICAgICQoXCIjZGlzY291bnRcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF4aW9zLnBvc3QoJCh0aGlzKS5kYXRhKCd1cmwnKSwge2NvZGU6ICQoXCIjZGlzY291bnQtY29kZVwiKS52YWwoKX0pLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICQoXCIjZGlzY291bnRcIikuYXR0cignZGF0YS1kaXNjb3VudCcsIEpTT04uc3RyaW5naWZ5KGUuZGF0YSkpO1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LnN1Y2Nlc3Mod2luZG93LnRyYW5zbGF0ZS5kaXNjb3VudENvZGVBY2NlcHQpO1xuICAgICAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKFwiI2Rpc2NvdW50XCIpLmF0dHIoJ2RhdGEtZGlzY291bnQnLCAne30nKTtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcih3aW5kb3cudHJhbnNsYXRlLmRpc2NvdW50Q29kZUVycm9yKTtcbiAgICAgICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAkKFwiI3Byb2ZpbGUtdGFiIGxpXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKFwiI3Byb2ZpbGUtdGFiIGxpXCIpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICQoXCIucHJvZmlsZS10YWIuYWN0aXZlXCIpLnNsaWRlVXAoMzAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoJCh0aGlzKS5kYXRhKCdpZCcpKS5zbGlkZURvd24oMzAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgfSlcbiAgICB9KTtcblxuICAgIHVwZGF0ZUNhcmQoKTtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIiNjYXRJZFwiKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgdXJsID0gJChcIiNjYXRJZFwiKS5kYXRhKCd1cmwnKTtcbiAgICAgICAgICAgICQuZ2V0KHVybCwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhcHApO1xuICAgICAgICAgICAgICAgIGFwcC5qZGF0YSA9IGVbMV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIDUwMCk7XG5cbiAgICAkKFwiLm5leHQtc3RlcFwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc3RlcCsrO1xuICAgICAgICAkKFwiLnN0ZXBcIiArIHN0ZXApLmNsaWNrKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLnByb2dyZXNzLXN0ZXAgLnN0ZXBcIikuY2xpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAkKFwiLnByb2dyZXNzLXN0ZXAgLnN0ZXBcIikucmVtb3ZlQ2xhc3MoJ2RvbmUnKTtcbiAgICAgICAgJCgkKHRoaXMpLmRhdGEoJ2RvbmUnKSkuYWRkQ2xhc3MoJ2RvbmUnKTtcbiAgICAgICAgJChcIiNjYXJkLXN0ZXBzIC5hY3RpdmVcIikuc2xpZGVVcCgzMDApLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCgnIycgKyAkKHRoaXMpLmRhdGEoJ2lkJykpLnNsaWRlRG93big1MDApLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgc3RlcCA9IHBhcnNlSW50KCQodGhpcykuZGF0YSgnaWQnKS5zdWJzdHIoNCwgMSkpO1xuICAgICAgICBpZiAoJCh0aGlzKS5kYXRhKCdpZCcpID09ICdzdGVwMycpIHtcbiAgICAgICAgICAgICQoXCIubGFzdC1zdGVwXCIpLnNsaWRlRG93bigzMDApO1xuICAgICAgICAgICAgJChcIi5uZXh0LXN0ZXBcIikuc2xpZGVVcCgzMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChcIi5sYXN0LXN0ZXBcIikuc2xpZGVVcCgzMDApO1xuICAgICAgICAgICAgJChcIi5uZXh0LXN0ZXBcIikuc2xpZGVEb3duKDMwMCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICgkKCcuY2FyZC1zdWJtaXQnKS5sZW5ndGggPiAwKXtcbiAgICAgICAgaWYgKCQoXCJpbnB1dC50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5sZW5ndGggPT0gMCl7XG4gICAgICAgICAgICAkKCcuY2FyZC1zdWJtaXQnKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICB9ZWxzZXtcblxuICAgICAgICAgICAgJChcImlucHV0LnRyYW5zcG9ydFwiKS5iaW5kKCdjaGFuZ2UnLGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmlyZScpO1xuICAgICAgICAgICAgICAgICQoJy5jYXJkLXN1Ym1pdCcpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxufSk7XG5cbiJdLCJuYW1lcyI6WyJkYXRhIiwicmVxdWlyZSIsImlzU2VuZFNtcyIsInN0ZXAiLCJub2NvbW1hIiwibnVtIiwiYSIsInRvU3RyaW5nIiwicmVwbGFjZSIsImNvbW1hZnkiLCJzdHIiLCJzcGxpdCIsImxlbmd0aCIsImpvaW4iLCJmaW5kTmV4dFRhYlN0b3AiLCJlbCIsInVuaXZlcnNlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGlzdCIsIkFycmF5IiwicHJvdG90eXBlIiwiZmlsdGVyIiwiY2FsbCIsIml0ZW0iLCJ0YWJJbmRleCIsImluZGV4IiwiaW5kZXhPZiIsImZpbmRQZXJ2VGFiU3RvcCIsImpRdWVyeSIsIiQiLCJiaW5kIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJ2YWx1ZSIsInZhbCIsIngiLCJmb2N1cyIsInR4Iiwic3RhdGVzIiwicyIsImlkIiwibmFtZSIsImFwcGVuZCIsImNoYW5nZSIsInYiLCJjaXRpZXMiLCJjaXR5Iiwic3RhdGVfaWQiLCJodG1sIiwid2luZG93IiwiYWxlcnRpZnkiLCJlcnJvciIsInRyYW5zbGF0ZSIsImVyck1vYmlsZSIsImF0dHIiLCJheGlvcyIsInBvc3QiLCJtb2JpbGUiLCJ0aGVuIiwiZSIsIk9LIiwic3VjY2VzcyIsIm1zZyIsInNsaWRlRG93biIsInJlbW92ZUF0dHIiLCJwYXNzIiwiZWFjaCIsImxvZ2luIiwic2V0VGltZW91dCIsImxvY2F0aW9uIiwiaHJlZiIsImVyciIsImlucCIsInBhcmVudCIsImZpbmQiLCJwYXJzZUludCIsImNsb3Nlc3QiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiY2hlY2tlZCIsInRleHQiLCJ1cGRhdGVDYXJkIiwidG90YWxQcmljZSIsInRkIiwicHJpY2UiLCJjb3VudCIsImRpc2NvdW50IiwiSlNPTiIsInBhcnNlIiwiaXNOYU4iLCJhbW91bnQiLCJ0eXBlIiwibGFzdHByaWNlIiwidW5kZWZpbmVkIiwiaGlkZSIsInNob3ciLCJjb2RlIiwic3RyaW5naWZ5IiwiZGlzY291bnRDb2RlQWNjZXB0IiwiZGlzY291bnRDb2RlRXJyb3IiLCJzbGlkZVVwIiwidXJsIiwiZ2V0IiwiYXBwIiwiamRhdGEiLCJjbGljayIsInN1YnN0ciIsImNvbnNvbGUiLCJsb2ciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/customer.js\n"); /***/ }), diff --git a/public/js/theme.js b/public/js/theme.js index dacf2b5..7c15d6d 100755 --- a/public/js/theme.js +++ b/public/js/theme.js @@ -407,7 +407,7 @@ eval("// window._ = require('lodash');\n\n/**\n * We'll load jQuery and the Boot \**********************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { -eval("function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar data = __webpack_require__(/*! ./plugins/data */ \"./resources/js/plugins/data.js\");\n\nvar isSendSms = false;\n\nfunction nocomma(num) {\n a = num.toString().replace(/\\,/g, ''); // 1125, but a string, so convert it to number\n\n return a.toString();\n}\n\nfunction commafy(num) {\n num = nocomma(num);\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nfunction findNextTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index + 1] || list[0];\n}\n\nfunction findPervTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index - 1] || list[0];\n}\n\njQuery(function ($) {\n $('.sms-pass').bind('focus', function () {\n this.setSelectionRange(0, this.value.length);\n });\n $('.sms-pass').bind('keyup', function () {\n if ($(this).val().length == 1) {\n var x = findNextTabStop(this);\n x.focus();\n } else if ($(this).val().length == 0) {\n var _x = findPervTabStop(this);\n\n _x.focus();\n }\n });\n\n if ($(\"#state\").length != 0) {\n var tx = '';\n\n var _iterator = _createForOfIteratorHelper(data().states),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n $(\"#state\").append(tx);\n $(\"#state\").val($(\"#state\").data('val'));\n $(\"#state\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator2 = _createForOfIteratorHelper(data().cities),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var city = _step2.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n $(\"#city\").html(tx);\n });\n $(\"#state\").change();\n $(\"#city\").val($(\"#city\").data('val'));\n }\n\n if ($(\"#state_\").length != 0) {\n var tx = '';\n\n var _iterator3 = _createForOfIteratorHelper(data().states),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _s = _step3.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#state_\").append(tx);\n $(\"#state_\").val($(\"#state_\").data('val'));\n $(\"#state_\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator4 = _createForOfIteratorHelper(data().cities),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var city = _step4.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\"#city_\").html(tx);\n });\n $(\"#state_\").change();\n $(\"#city_\").val($(\"#city_\").data('val'));\n }\n\n $(\"#sms-btn\").bind('click', function () {\n if ($(\"#mobile\").val().length !== 11) {\n window.alertify.error(window.translate.errMobile);\n return;\n }\n\n $(\"#sms-btn\").attr('disabled', true);\n\n if (!isSendSms) {\n axios.post($(this).data('send'), {\n mobile: $(\"#mobile\").val()\n }).then(function (e) {\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n $(\"#sms-code\").slideDown(500);\n $(\"#sms-first\").focus();\n isSendSms = true;\n }\n\n $(\"#sms-btn\").removeAttr('disabled');\n })[\"catch\"](function () {\n window.alertify.error('Server Error');\n $(\"#sms-btn\").removeAttr('disabled');\n });\n } else {\n var pass = '';\n $(\".sms-pass\").each(function () {\n pass += $(this).val();\n });\n var login = $(this).data('customer');\n axios.post($(this).data('check'), {\n mobile: $(\"#mobile\").val(),\n pass: pass\n }).then(function (e) {\n $(\"#sms-btn\").removeAttr('disabled');\n\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n setTimeout(function () {\n window.location.href = login;\n }, 2000);\n } else {\n window.alertify.error(e.data.err);\n }\n })[\"catch\"](function () {\n $(\"#sms-btn\").removeAttr('disabled');\n window.alertify.error('Server Error');\n });\n }\n });\n $(\".count-dec\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) - 1 < 1) {\n $(inp).val(1);\n } else {\n $(inp).val(parseInt($(inp).val()) - 1);\n }\n\n $(inp).change();\n });\n $(\".count-inc\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) + 1 > $(inp).attr('max')) {\n $(inp).val($(inp).attr('max'));\n } else {\n $(inp).val(parseInt($(inp).val()) + 1);\n }\n\n $(inp).change();\n });\n $(\".quantity\").bind('click', function () {\n $(this).closest('td').find('.quantity').removeClass('active');\n $(this).closest('td').find('.quantity input').removeAttr('checked');\n $(this).addClass('active');\n $(this).find('input')[0].checked = true;\n $(this).closest('tr').find('.price-td').attr('data-price', $(this).data('price'));\n $(this).closest('tr').find('.price').text(commafy($(this).data('price')));\n $(this).closest('tr').find('.product-count input').attr('max', $(this).data('count'));\n\n if ($(this).data('count') == 0) {\n $(this).closest('tr').find('.product-count input').attr('max', 0);\n }\n\n updateCard();\n });\n $('.product-count input').bind('change', function () {\n updateCard();\n });\n\n function updateCard() {\n var totalPrice = 0;\n\n var _iterator5 = _createForOfIteratorHelper(document.querySelectorAll('.price-td')),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var td = _step5.value;\n var price = parseInt($(td).attr('data-price'));\n var count = parseInt($(td).closest('tr').find('.product-count input').val());\n $(td).closest('tr').find('.product-count input').attr('max', $(td).closest('tr').find('.active').data('count')); // maybe need comment\n\n if ($(td).closest('tr').find('.product-count input').attr('max') == '0') {\n $(td).closest('tr').find('.product-count input').attr('max', 1);\n }\n\n totalPrice += price * count;\n } // check price\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n try {\n var discount = JSON.parse($(\"#discount\").attr('data-discount'));\n\n if (!isNaN(parseInt(discount.amount))) {\n if (discount.type === 'price') {\n totalPrice -= parseInt(discount.amount);\n } else {\n totalPrice -= (100 - parseInt(discount.amount)) * totalPrice / 100;\n }\n }\n } catch (e) {// console.log(e.message);\n }\n\n var lastprice = totalPrice;\n\n if ($(\".transport:checked\").data('price') !== undefined) {\n lastprice += parseInt($(\".transport:checked\").data('price'));\n } // transport\n\n\n $('#total-card').text(commafy(totalPrice));\n $('#last-price').text(commafy(lastprice));\n }\n\n $(\".reserve\").change(function () {\n if ($(\".reserve:checked\").length > 0) {\n $(\".transport\").removeAttr('checked');\n }\n\n $(\"#resv\").hide();\n $(\"#flexSwitchCheckDefault\").removeAttr('checked');\n updateCard();\n });\n $(\".transport\").change(function () {\n if ($(\".transport:checked\").length > 0) {\n $(\".reserve\").removeAttr('checked');\n }\n\n $(\"#resv\").show();\n updateCard();\n }); // discount\n\n $(\"#discount\").bind('click', function () {\n axios.post($(this).data('url'), {\n code: $(\"#discount-code\").val()\n }).then(function (e) {\n $(\"#discount\").attr('data-discount', JSON.stringify(e.data));\n window.alertify.success(window.translate.discountCodeAccept);\n updateCard();\n })[\"catch\"](function () {\n $(\"#discount\").attr('data-discount', '{}');\n window.alertify.error(window.translate.discountCodeError);\n updateCard();\n });\n });\n $(\"#profile-tab li\").bind('click', function () {\n $(\"#profile-tab li\").removeClass('active');\n $(this).addClass('active');\n $(\".profile-tab.active\").slideUp(300, function () {\n $(this).removeClass('active');\n });\n $($(this).data('id')).slideDown(300, function () {\n $(this).addClass('active');\n });\n });\n updateCard();\n setTimeout(function () {\n if ($(\"#catId\").length > 0) {\n var url = $(\"#catId\").data('url');\n $.get(url, function (e) {\n // console.log(app);\n app.jdata = e[1];\n });\n }\n }, 500);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLENBQUN3RSxHQUFGLENBQU1ELEdBQU4sRUFBVyxVQUFVMUMsQ0FBVixFQUFhO1FBQ3BCO1FBQ0E0QyxHQUFHLENBQUNDLEtBQUosR0FBWTdDLENBQUMsQ0FBQyxDQUFELENBQWI7TUFDSCxDQUhEO0lBSUg7RUFDSixDQVJTLEVBUVAsR0FSTyxDQUFWO0FBU0gsQ0F0T0ssQ0FBTiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jdXN0b21lci5qcz8wNmJiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkYXRhID0gcmVxdWlyZSgnLi9wbHVnaW5zL2RhdGEnKTtcbnZhciBpc1NlbmRTbXMgPSBmYWxzZTtcblxuZnVuY3Rpb24gbm9jb21tYShudW0pIHtcbiAgICBhID0gbnVtLnRvU3RyaW5nKCkucmVwbGFjZSgvXFwsL2csICcnKTsgLy8gMTEyNSwgYnV0IGEgc3RyaW5nLCBzbyBjb252ZXJ0IGl0IHRvIG51bWJlclxuICAgIHJldHVybiBhLnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGNvbW1hZnkobnVtKSB7XG4gICAgbnVtID0gbm9jb21tYShudW0pO1xuICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIGlmIChzdHJbMF0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMF0gPSBzdHJbMF0ucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSskKS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIGlmIChzdHJbMV0gJiYgc3RyWzFdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzFdID0gc3RyWzFdLnJlcGxhY2UoLyhcXGR7M30pL2csICckMSwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5qb2luKCcuJyk7XG59XG5cbmZ1bmN0aW9uIGZpbmROZXh0VGFiU3RvcChlbCkge1xuICAgIHZhciB1bml2ZXJzZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCBidXR0b24sIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0nKTtcbiAgICB2YXIgbGlzdCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh1bml2ZXJzZSwgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGFiSW5kZXggPj0gXCIwXCJcbiAgICB9KTtcbiAgICB2YXIgaW5kZXggPSBsaXN0LmluZGV4T2YoZWwpO1xuICAgIHJldHVybiBsaXN0W2luZGV4ICsgMV0gfHwgbGlzdFswXTtcbn1cblxuZnVuY3Rpb24gZmluZFBlcnZUYWJTdG9wKGVsKSB7XG4gICAgdmFyIHVuaXZlcnNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSwgYVtocmVmXScpO1xuICAgIHZhciBsaXN0ID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHVuaXZlcnNlLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS50YWJJbmRleCA+PSBcIjBcIlxuICAgIH0pO1xuICAgIHZhciBpbmRleCA9IGxpc3QuaW5kZXhPZihlbCk7XG4gICAgcmV0dXJuIGxpc3RbaW5kZXggLSAxXSB8fCBsaXN0WzBdO1xufVxuXG5qUXVlcnkoZnVuY3Rpb24gKCQpIHtcblxuICAgICQoJy5zbXMtcGFzcycpLmJpbmQoJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGlvblJhbmdlKDAsIHRoaXMudmFsdWUubGVuZ3RoKTtcbiAgICB9KTtcbiAgICAkKCcuc21zLXBhc3MnKS5iaW5kKCdrZXl1cCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQodGhpcykudmFsKCkubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgIGxldCB4ID0gZmluZE5leHRUYWJTdG9wKHRoaXMpO1xuICAgICAgICAgICAgeC5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKCQodGhpcykudmFsKCkubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIGxldCB4ID0gZmluZFBlcnZUYWJTdG9wKHRoaXMpO1xuICAgICAgICAgICAgeC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCQoXCIjc3RhdGVcIikubGVuZ3RoICE9IDApIHtcblxuICAgICAgICB2YXIgdHggPSAnPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPic7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBkYXRhKCkuc3RhdGVzKSB7XG4gICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7cy5pZH1cIj4ke3MubmFtZX08L29wdGlvbj5gO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc3RhdGVcIikuYXBwZW5kKHR4KTtcbiAgICAgICAgJChcIiNzdGF0ZVwiKS52YWwoJChcIiNzdGF0ZVwiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICAgICAgJChcIiNzdGF0ZVwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHYgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgdmFyIHR4ID0gJyc7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNpdHkgb2YgZGF0YSgpLmNpdGllcykge1xuICAgICAgICAgICAgICAgIGlmIChjaXR5LnN0YXRlX2lkID09IHYpIHtcbiAgICAgICAgICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke2NpdHkuaWR9XCI+JHtjaXR5Lm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKFwiI2NpdHlcIikuaHRtbCh0eCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKFwiI3N0YXRlXCIpLmNoYW5nZSgpO1xuICAgICAgICAkKFwiI2NpdHlcIikudmFsKCQoXCIjY2l0eVwiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICB9XG5cbiAgICBpZiAoJChcIiNzdGF0ZV9cIikubGVuZ3RoICE9IDApIHtcblxuICAgICAgICB2YXIgdHggPSAnPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPic7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBkYXRhKCkuc3RhdGVzKSB7XG4gICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7cy5pZH1cIj4ke3MubmFtZX08L29wdGlvbj5gO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmFwcGVuZCh0eCk7XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLnZhbCgkKFwiI3N0YXRlX1wiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICAgICAgJChcIiNzdGF0ZV9cIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB2ID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIHZhciB0eCA9ICcnO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaXR5IG9mIGRhdGEoKS5jaXRpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2l0eS5zdGF0ZV9pZCA9PSB2KSB7XG4gICAgICAgICAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtjaXR5LmlkfVwiPiR7Y2l0eS5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNjaXR5X1wiKS5odG1sKHR4KTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmNoYW5nZSgpO1xuICAgICAgICAkKFwiI2NpdHlfXCIpLnZhbCgkKFwiI2NpdHlfXCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgIH1cblxuXG4gICAgJChcIiNzbXMtYnRuXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIiNtb2JpbGVcIikudmFsKCkubGVuZ3RoICE9PSAxMSkge1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKHdpbmRvdy50cmFuc2xhdGUuZXJyTW9iaWxlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3Ntcy1idG5cIikuYXR0cignZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgaWYgKCFpc1NlbmRTbXMpIHtcbiAgICAgICAgICAgIGF4aW9zLnBvc3QoJCh0aGlzKS5kYXRhKCdzZW5kJyksIHttb2JpbGU6ICQoXCIjbW9iaWxlXCIpLnZhbCgpfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlLmRhdGEuT0sgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2VzcyhlLmRhdGEubXNnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzbXMtY29kZVwiKS5zbGlkZURvd24oNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzbXMtZmlyc3RcIikuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaXNTZW5kU21zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKCdTZXJ2ZXIgRXJyb3InKTtcbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHBhc3MgPSAnJztcbiAgICAgICAgICAgICQoXCIuc21zLXBhc3NcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcGFzcyArPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgbG9naW4gPSAkKHRoaXMpLmRhdGEoJ2N1c3RvbWVyJyk7XG4gICAgICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgnY2hlY2snKSwge21vYmlsZTogJChcIiNtb2JpbGVcIikudmFsKCksIHBhc3M6IHBhc3N9KS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgaWYgKGUuZGF0YS5PSyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9naW47XG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcihlLmRhdGEuZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKCdTZXJ2ZXIgRXJyb3InKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKFwiLmNvdW50LWRlY1wiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGlucCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgaWYgKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgLSAxIDwgMSkge1xuICAgICAgICAgICAgJChpbnApLnZhbCgxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwocGFyc2VJbnQoJChpbnApLnZhbCgpKSAtIDEpO1xuICAgICAgICB9XG4gICAgICAgICQoaW5wKS5jaGFuZ2UoKTtcbiAgICB9KTtcbiAgICAkKFwiLmNvdW50LWluY1wiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGlucCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgaWYgKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgKyAxID4gJChpbnApLmF0dHIoJ21heCcpKSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKCQoaW5wKS5hdHRyKCdtYXgnKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgKyAxKTtcbiAgICAgICAgfVxuICAgICAgICAkKGlucCkuY2hhbmdlKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLnF1YW50aXR5XCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RkJykuZmluZCgnLnF1YW50aXR5JykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RkJykuZmluZCgnLnF1YW50aXR5IGlucHV0JykucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dCcpWzBdLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByaWNlLXRkJykuYXR0cignZGF0YS1wcmljZScsICQodGhpcykuZGF0YSgncHJpY2UnKSk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJpY2UnKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdwcmljZScpKSk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsICQodGhpcykuZGF0YSgnY291bnQnKSk7XG4gICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2NvdW50JykgPT0gMCkge1xuICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuXG4gICAgJCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHVwZGF0ZUNhcmQoKVxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlQ2FyZCgpIHtcbiAgICAgICAgbGV0IHRvdGFsUHJpY2UgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHRkIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wcmljZS10ZCcpKSB7XG4gICAgICAgICAgICBsZXQgcHJpY2UgPSBwYXJzZUludCgkKHRkKS5hdHRyKCdkYXRhLXByaWNlJykpO1xuICAgICAgICAgICAgbGV0IGNvdW50ID0gcGFyc2VJbnQoJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLnZhbCgpKTtcbiAgICAgICAgICAgICQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLCAkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5hY3RpdmUnKS5kYXRhKCdjb3VudCcpKTtcblxuICAgICAgICAgICAgLy8gbWF5YmUgbmVlZCBjb21tZW50XG4gICAgICAgICAgICBpZiAoJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcpID09ICcwJyl7XG4gICAgICAgICAgICAgICAgJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsMSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvdGFsUHJpY2UgKz0gcHJpY2UgKiBjb3VudDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gY2hlY2sgcHJpY2VcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBkaXNjb3VudCA9IEpTT04ucGFyc2UoJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JykpO1xuICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChkaXNjb3VudC5hbW91bnQpKSkge1xuICAgICAgICAgICAgICAgIGlmIChkaXNjb3VudC50eXBlID09PSAncHJpY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsUHJpY2UgLT0gcGFyc2VJbnQoZGlzY291bnQuYW1vdW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbFByaWNlIC09ICgoMTAwIC0gcGFyc2VJbnQoZGlzY291bnQuYW1vdW50KSkgKiB0b3RhbFByaWNlKSAvIDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGUubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxhc3RwcmljZSA9IHRvdGFsUHJpY2U7XG4gICAgICAgIGlmICgkKFwiLnRyYW5zcG9ydDpjaGVja2VkXCIpLmRhdGEoJ3ByaWNlJykgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbGFzdHByaWNlICs9IHBhcnNlSW50KCQoXCIudHJhbnNwb3J0OmNoZWNrZWRcIikuZGF0YSgncHJpY2UnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHJhbnNwb3J0XG4gICAgICAgICQoJyN0b3RhbC1jYXJkJykudGV4dChjb21tYWZ5KHRvdGFsUHJpY2UpKTtcbiAgICAgICAgJCgnI2xhc3QtcHJpY2UnKS50ZXh0KGNvbW1hZnkobGFzdHByaWNlKSk7XG5cbiAgICB9XG5cbiAgICAkKFwiLnJlc2VydmVcIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIucmVzZXJ2ZTpjaGVja2VkXCIpLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgJChcIi50cmFuc3BvcnRcIikucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjcmVzdlwiKS5oaWRlKCk7XG4gICAgICAgICQoXCIjZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICB9KTtcbiAgICAkKFwiLnRyYW5zcG9ydFwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIi50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICQoXCIucmVzZXJ2ZVwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNyZXN2XCIpLnNob3coKTtcbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuICAgIC8vIGRpc2NvdW50XG4gICAgJChcIiNkaXNjb3VudFwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXhpb3MucG9zdCgkKHRoaXMpLmRhdGEoJ3VybCcpLCB7Y29kZTogJChcIiNkaXNjb3VudC1jb2RlXCIpLnZhbCgpfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JywgSlNPTi5zdHJpbmdpZnkoZS5kYXRhKSk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2Vzcyh3aW5kb3cudHJhbnNsYXRlLmRpc2NvdW50Q29kZUFjY2VwdCk7XG4gICAgICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoXCIjZGlzY291bnRcIikuYXR0cignZGF0YS1kaXNjb3VudCcsICd7fScpO1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKHdpbmRvdy50cmFuc2xhdGUuZGlzY291bnRDb2RlRXJyb3IpO1xuICAgICAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIjcHJvZmlsZS10YWIgbGlcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIjcHJvZmlsZS10YWIgbGlcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJChcIi5wcm9maWxlLXRhYi5hY3RpdmVcIikuc2xpZGVVcCgzMDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB9KTtcbiAgICAgICAgJCgkKHRoaXMpLmRhdGEoJ2lkJykpLnNsaWRlRG93bigzMDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB9KVxuICAgIH0pO1xuXG4gICAgdXBkYXRlQ2FyZCgpO1xuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiI2NhdElkXCIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCB1cmwgPSAkKFwiI2NhdElkXCIpLmRhdGEoJ3VybCcpO1xuICAgICAgICAgICAgJC5nZXQodXJsLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGFwcCk7XG4gICAgICAgICAgICAgICAgYXBwLmpkYXRhID0gZVsxXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgNTAwKTtcbn0pO1xuXG4iXSwibmFtZXMiOlsiZGF0YSIsInJlcXVpcmUiLCJpc1NlbmRTbXMiLCJub2NvbW1hIiwibnVtIiwiYSIsInRvU3RyaW5nIiwicmVwbGFjZSIsImNvbW1hZnkiLCJzdHIiLCJzcGxpdCIsImxlbmd0aCIsImpvaW4iLCJmaW5kTmV4dFRhYlN0b3AiLCJlbCIsInVuaXZlcnNlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGlzdCIsIkFycmF5IiwicHJvdG90eXBlIiwiZmlsdGVyIiwiY2FsbCIsIml0ZW0iLCJ0YWJJbmRleCIsImluZGV4IiwiaW5kZXhPZiIsImZpbmRQZXJ2VGFiU3RvcCIsImpRdWVyeSIsIiQiLCJiaW5kIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJ2YWx1ZSIsInZhbCIsIngiLCJmb2N1cyIsInR4Iiwic3RhdGVzIiwicyIsImlkIiwibmFtZSIsImFwcGVuZCIsImNoYW5nZSIsInYiLCJjaXRpZXMiLCJjaXR5Iiwic3RhdGVfaWQiLCJodG1sIiwid2luZG93IiwiYWxlcnRpZnkiLCJlcnJvciIsInRyYW5zbGF0ZSIsImVyck1vYmlsZSIsImF0dHIiLCJheGlvcyIsInBvc3QiLCJtb2JpbGUiLCJ0aGVuIiwiZSIsIk9LIiwic3VjY2VzcyIsIm1zZyIsInNsaWRlRG93biIsInJlbW92ZUF0dHIiLCJwYXNzIiwiZWFjaCIsImxvZ2luIiwic2V0VGltZW91dCIsImxvY2F0aW9uIiwiaHJlZiIsImVyciIsImlucCIsInBhcmVudCIsImZpbmQiLCJwYXJzZUludCIsImNsb3Nlc3QiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiY2hlY2tlZCIsInRleHQiLCJ1cGRhdGVDYXJkIiwidG90YWxQcmljZSIsInRkIiwicHJpY2UiLCJjb3VudCIsImRpc2NvdW50IiwiSlNPTiIsInBhcnNlIiwiaXNOYU4iLCJhbW91bnQiLCJ0eXBlIiwibGFzdHByaWNlIiwidW5kZWZpbmVkIiwiaGlkZSIsInNob3ciLCJjb2RlIiwic3RyaW5naWZ5IiwiZGlzY291bnRDb2RlQWNjZXB0IiwiZGlzY291bnRDb2RlRXJyb3IiLCJzbGlkZVVwIiwidXJsIiwiZ2V0IiwiYXBwIiwiamRhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/customer.js\n"); +eval("function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar data = __webpack_require__(/*! ./plugins/data */ \"./resources/js/plugins/data.js\");\n\nvar isSendSms = false;\nvar step = 1;\n\nfunction nocomma(num) {\n a = num.toString().replace(/\\,/g, ''); // 1125, but a string, so convert it to number\n\n return a.toString();\n}\n\nfunction commafy(num) {\n num = nocomma(num);\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nfunction findNextTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index + 1] || list[0];\n}\n\nfunction findPervTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index - 1] || list[0];\n}\n\njQuery(function ($) {\n $('.sms-pass').bind('focus', function () {\n this.setSelectionRange(0, this.value.length);\n });\n $('.sms-pass').bind('keyup', function () {\n if ($(this).val().length == 1) {\n var x = findNextTabStop(this);\n x.focus();\n } else if ($(this).val().length == 0) {\n var _x = findPervTabStop(this);\n\n _x.focus();\n }\n });\n\n if ($(\"#state\").length != 0) {\n var tx = '';\n\n var _iterator = _createForOfIteratorHelper(data().states),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n $(\"#state\").append(tx);\n $(\"#state\").val($(\"#state\").data('val'));\n $(\"#state\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator2 = _createForOfIteratorHelper(data().cities),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var city = _step2.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n $(\"#city\").html(tx);\n });\n $(\"#state\").change();\n $(\"#city\").val($(\"#city\").data('val'));\n }\n\n if ($(\"#state_\").length != 0) {\n var tx = '';\n\n var _iterator3 = _createForOfIteratorHelper(data().states),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _s = _step3.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#state_\").append(tx);\n $(\"#state_\").val($(\"#state_\").data('val'));\n $(\"#state_\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator4 = _createForOfIteratorHelper(data().cities),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var city = _step4.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\"#city_\").html(tx);\n });\n $(\"#state_\").change();\n $(\"#city_\").val($(\"#city_\").data('val'));\n }\n\n $(\"#sms-btn\").bind('click', function () {\n if ($(\"#mobile\").val().length !== 11) {\n window.alertify.error(window.translate.errMobile);\n return;\n }\n\n $(\"#sms-btn\").attr('disabled', true);\n\n if (!isSendSms) {\n axios.post($(this).data('send'), {\n mobile: $(\"#mobile\").val()\n }).then(function (e) {\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n $(\"#sms-code\").slideDown(500);\n $(\"#sms-first\").focus();\n isSendSms = true;\n }\n\n $(\"#sms-btn\").removeAttr('disabled');\n })[\"catch\"](function () {\n window.alertify.error('Server Error');\n $(\"#sms-btn\").removeAttr('disabled');\n });\n } else {\n var pass = '';\n $(\".sms-pass\").each(function () {\n pass += $(this).val();\n });\n var login = $(this).data('customer');\n axios.post($(this).data('check'), {\n mobile: $(\"#mobile\").val(),\n pass: pass\n }).then(function (e) {\n $(\"#sms-btn\").removeAttr('disabled');\n\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n setTimeout(function () {\n window.location.href = login;\n }, 2000);\n } else {\n window.alertify.error(e.data.err);\n }\n })[\"catch\"](function () {\n $(\"#sms-btn\").removeAttr('disabled');\n window.alertify.error('Server Error');\n });\n }\n });\n $(\".count-dec\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) - 1 < 1) {\n $(inp).val(1);\n } else {\n $(inp).val(parseInt($(inp).val()) - 1);\n }\n\n $(inp).change();\n });\n $(\".count-inc\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) + 1 > $(inp).attr('max')) {\n $(inp).val($(inp).attr('max'));\n } else {\n $(inp).val(parseInt($(inp).val()) + 1);\n }\n\n $(inp).change();\n });\n $(\".quantity\").bind('click', function () {\n $(this).closest('td').find('.quantity').removeClass('active');\n $(this).closest('td').find('.quantity input').removeAttr('checked');\n $(this).addClass('active');\n $(this).find('input')[0].checked = true;\n $(this).closest('tr').find('.price-td').attr('data-price', $(this).data('price'));\n $(this).closest('tr').find('.price').text(commafy($(this).data('price')));\n $(this).closest('tr').find('.product-count input').attr('max', $(this).data('count'));\n\n if ($(this).data('count') == 0) {\n $(this).closest('tr').find('.product-count input').attr('max', 0);\n }\n\n updateCard();\n });\n $('.product-count input').bind('change', function () {\n updateCard();\n });\n\n function updateCard() {\n var totalPrice = 0;\n\n var _iterator5 = _createForOfIteratorHelper(document.querySelectorAll('.price-td')),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var td = _step5.value;\n var price = parseInt($(td).attr('data-price'));\n var count = parseInt($(td).closest('tr').find('.product-count input').val());\n $(td).closest('tr').find('.product-count input').attr('max', $(td).closest('tr').find('.active').data('count')); // maybe need comment\n\n if ($(td).closest('tr').find('.product-count input').attr('max') == '0') {\n $(td).closest('tr').find('.product-count input').attr('max', 1);\n }\n\n totalPrice += price * count;\n } // check price\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n try {\n var discount = JSON.parse($(\"#discount\").attr('data-discount'));\n\n if (!isNaN(parseInt(discount.amount))) {\n if (discount.type === 'price') {\n totalPrice -= parseInt(discount.amount);\n } else {\n totalPrice -= (100 - parseInt(discount.amount)) * totalPrice / 100;\n }\n }\n } catch (e) {// console.log(e.message);\n }\n\n var lastprice = totalPrice;\n\n if ($(\".transport:checked\").data('price') !== undefined) {\n lastprice += parseInt($(\".transport:checked\").data('price'));\n } // transport\n\n\n $('#total-card').text(commafy(totalPrice));\n $('#last-price').text(commafy(lastprice));\n }\n\n $(\".reserve\").change(function () {\n if ($(\".reserve:checked\").length > 0) {\n $(\".transport\").removeAttr('checked');\n }\n\n $(\"#resv\").hide();\n $(\"#flexSwitchCheckDefault\").removeAttr('checked');\n updateCard();\n });\n $(\".transport\").change(function () {\n if ($(\".transport:checked\").length > 0) {\n $(\".reserve\").removeAttr('checked');\n }\n\n $(\"#resv\").show();\n updateCard();\n }); // discount\n\n $(\"#discount\").bind('click', function () {\n axios.post($(this).data('url'), {\n code: $(\"#discount-code\").val()\n }).then(function (e) {\n $(\"#discount\").attr('data-discount', JSON.stringify(e.data));\n window.alertify.success(window.translate.discountCodeAccept);\n updateCard();\n })[\"catch\"](function () {\n $(\"#discount\").attr('data-discount', '{}');\n window.alertify.error(window.translate.discountCodeError);\n updateCard();\n });\n });\n $(\"#profile-tab li\").bind('click', function () {\n $(\"#profile-tab li\").removeClass('active');\n $(this).addClass('active');\n $(\".profile-tab.active\").slideUp(300, function () {\n $(this).removeClass('active');\n });\n $($(this).data('id')).slideDown(300, function () {\n $(this).addClass('active');\n });\n });\n updateCard();\n setTimeout(function () {\n if ($(\"#catId\").length > 0) {\n var url = $(\"#catId\").data('url');\n $.get(url, function (e) {\n // console.log(app);\n app.jdata = e[1];\n });\n }\n }, 500);\n $(\".next-step\").bind('click', function () {\n step++;\n $(\".step\" + step).click();\n });\n $(\".progress-step .step\").click(function () {\n $(\".progress-step .step\").removeClass('done');\n $($(this).data('done')).addClass('done');\n $(\"#card-steps .active\").slideUp(300).removeClass('active');\n $('#' + $(this).data('id')).slideDown(500).addClass('active');\n step = parseInt($(this).data('id').substr(4, 1));\n\n if ($(this).data('id') == 'step3') {\n $(\".last-step\").slideDown(300);\n $(\".next-step\").slideUp(300);\n } else {\n $(\".last-step\").slideUp(300);\n $(\".next-step\").slideDown(300);\n }\n });\n\n if ($('.card-submit').length > 0) {\n if ($(\"input.transport:checked\").length == 0) {\n $('.card-submit').removeAttr('disabled');\n } else {\n $(\"input.transport\").bind('change', function () {\n console.log('fire');\n $('.card-submit').removeAttr('disabled');\n });\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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MUIsRUFBbUM7TUFDL0I4QixDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCaUMsU0FBaEIsQ0FBMEIsR0FBMUI7TUFDQWpDLENBQUMsQ0FBQyxZQUFELENBQUQsQ0FBZ0JzRSxPQUFoQixDQUF3QixHQUF4QjtJQUNILENBSEQsTUFHTztNQUNIdEUsQ0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQnNFLE9BQWhCLENBQXdCLEdBQXhCO01BQ0F0RSxDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCaUMsU0FBaEIsQ0FBMEIsR0FBMUI7SUFDSDtFQUNKLENBYkQ7O0VBZUEsSUFBSWpDLENBQUMsQ0FBQyxjQUFELENBQUQsQ0FBa0JsQixNQUFsQixHQUEyQixDQUEvQixFQUFpQztJQUM3QixJQUFJa0IsQ0FBQyxDQUFDLHlCQUFELENBQUQsQ0FBNkJsQixNQUE3QixJQUF1QyxDQUEzQyxFQUE2QztNQUN6Q2tCLENBQUMsQ0FBQyxjQUFELENBQUQsQ0FBa0JrQyxVQUFsQixDQUE2QixVQUE3QjtJQUNILENBRkQsTUFFSztNQUVEbEMsQ0FBQyxDQUFDLGlCQUFELENBQUQsQ0FBcUJDLElBQXJCLENBQTBCLFFBQTFCLEVBQW1DLFlBQVk7UUFDM0M0RSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxNQUFaO1FBQ0E5RSxDQUFDLENBQUMsY0FBRCxDQUFELENBQWtCa0MsVUFBbEIsQ0FBNkIsVUFBN0I7TUFDSCxDQUhEO0lBSUg7RUFDSjtBQUVKLENBdlFLLENBQU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvY3VzdG9tZXIuanM/MDZiYiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGF0YSA9IHJlcXVpcmUoJy4vcGx1Z2lucy9kYXRhJyk7XG52YXIgaXNTZW5kU21zID0gZmFsc2U7XG52YXIgc3RlcCA9IDE7XG5cbmZ1bmN0aW9uIG5vY29tbWEobnVtKSB7XG4gICAgYSA9IG51bS50b1N0cmluZygpLnJlcGxhY2UoL1xcLC9nLCAnJyk7IC8vIDExMjUsIGJ1dCBhIHN0cmluZywgc28gY29udmVydCBpdCB0byBudW1iZXJcbiAgICByZXR1cm4gYS50b1N0cmluZygpO1xufVxuXG5mdW5jdGlvbiBjb21tYWZ5KG51bSkge1xuICAgIG51bSA9IG5vY29tbWEobnVtKTtcbiAgICB2YXIgc3RyID0gbnVtLnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgICBpZiAoc3RyWzBdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzBdID0gc3RyWzBdLnJlcGxhY2UoLyhcXGQpKD89KFxcZHszfSkrJCkvZywgJyQxLCcpO1xuICAgIH1cbiAgICBpZiAoc3RyWzFdICYmIHN0clsxXS5sZW5ndGggPj0gNCkge1xuXG4gICAgICAgIHN0clsxXSA9IHN0clsxXS5yZXBsYWNlKC8oXFxkezN9KS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIHJldHVybiBzdHIuam9pbignLicpO1xufVxuXG5mdW5jdGlvbiBmaW5kTmV4dFRhYlN0b3AoZWwpIHtcbiAgICB2YXIgdW5pdmVyc2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgYnV0dG9uLCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdJyk7XG4gICAgdmFyIGxpc3QgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodW5pdmVyc2UsIGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnRhYkluZGV4ID49IFwiMFwiXG4gICAgfSk7XG4gICAgdmFyIGluZGV4ID0gbGlzdC5pbmRleE9mKGVsKTtcbiAgICByZXR1cm4gbGlzdFtpbmRleCArIDFdIHx8IGxpc3RbMF07XG59XG5cbmZ1bmN0aW9uIGZpbmRQZXJ2VGFiU3RvcChlbCkge1xuICAgIHZhciB1bml2ZXJzZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCBidXR0b24sIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0nKTtcbiAgICB2YXIgbGlzdCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh1bml2ZXJzZSwgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGFiSW5kZXggPj0gXCIwXCJcbiAgICB9KTtcbiAgICB2YXIgaW5kZXggPSBsaXN0LmluZGV4T2YoZWwpO1xuICAgIHJldHVybiBsaXN0W2luZGV4IC0gMV0gfHwgbGlzdFswXTtcbn1cblxualF1ZXJ5KGZ1bmN0aW9uICgkKSB7XG5cbiAgICAkKCcuc21zLXBhc3MnKS5iaW5kKCdmb2N1cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3Rpb25SYW5nZSgwLCB0aGlzLnZhbHVlLmxlbmd0aCk7XG4gICAgfSk7XG4gICAgJCgnLnNtcy1wYXNzJykuYmluZCgna2V5dXAnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKHRoaXMpLnZhbCgpLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICBsZXQgeCA9IGZpbmROZXh0VGFiU3RvcCh0aGlzKTtcbiAgICAgICAgICAgIHguZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmICgkKHRoaXMpLnZhbCgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICBsZXQgeCA9IGZpbmRQZXJ2VGFiU3RvcCh0aGlzKTtcbiAgICAgICAgICAgIHguZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGlmICgkKFwiI3N0YXRlXCIpLmxlbmd0aCAhPSAwKSB7XG5cbiAgICAgICAgdmFyIHR4ID0gJzxvcHRpb24gdmFsdWU9XCJcIj48L29wdGlvbj4nO1xuICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZGF0YSgpLnN0YXRlcykge1xuICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke3MuaWR9XCI+JHtzLm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3N0YXRlXCIpLmFwcGVuZCh0eCk7XG4gICAgICAgICQoXCIjc3RhdGVcIikudmFsKCQoXCIjc3RhdGVcIikuZGF0YSgndmFsJykpO1xuXG4gICAgICAgICQoXCIjc3RhdGVcIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB2ID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIHZhciB0eCA9ICcnO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaXR5IG9mIGRhdGEoKS5jaXRpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2l0eS5zdGF0ZV9pZCA9PSB2KSB7XG4gICAgICAgICAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtjaXR5LmlkfVwiPiR7Y2l0eS5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNjaXR5XCIpLmh0bWwodHgpO1xuICAgICAgICB9KTtcbiAgICAgICAgJChcIiNzdGF0ZVwiKS5jaGFuZ2UoKTtcbiAgICAgICAgJChcIiNjaXR5XCIpLnZhbCgkKFwiI2NpdHlcIikuZGF0YSgndmFsJykpO1xuXG4gICAgfVxuXG4gICAgaWYgKCQoXCIjc3RhdGVfXCIpLmxlbmd0aCAhPSAwKSB7XG5cbiAgICAgICAgdmFyIHR4ID0gJzxvcHRpb24gdmFsdWU9XCJcIj48L29wdGlvbj4nO1xuICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZGF0YSgpLnN0YXRlcykge1xuICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke3MuaWR9XCI+JHtzLm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3N0YXRlX1wiKS5hcHBlbmQodHgpO1xuICAgICAgICAkKFwiI3N0YXRlX1wiKS52YWwoJChcIiNzdGF0ZV9cIikuZGF0YSgndmFsJykpO1xuXG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdiA9ICQodGhpcykudmFsKCk7XG4gICAgICAgICAgICB2YXIgdHggPSAnJztcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2l0eSBvZiBkYXRhKCkuY2l0aWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNpdHkuc3RhdGVfaWQgPT0gdikge1xuICAgICAgICAgICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7Y2l0eS5pZH1cIj4ke2NpdHkubmFtZX08L29wdGlvbj5gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjY2l0eV9cIikuaHRtbCh0eCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKFwiI3N0YXRlX1wiKS5jaGFuZ2UoKTtcbiAgICAgICAgJChcIiNjaXR5X1wiKS52YWwoJChcIiNjaXR5X1wiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICB9XG5cblxuICAgICQoXCIjc21zLWJ0blwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIjbW9iaWxlXCIpLnZhbCgpLmxlbmd0aCAhPT0gMTEpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcih3aW5kb3cudHJhbnNsYXRlLmVyck1vYmlsZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNzbXMtYnRuXCIpLmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICAgIGlmICghaXNTZW5kU21zKSB7XG4gICAgICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgnc2VuZCcpLCB7bW9iaWxlOiAkKFwiI21vYmlsZVwiKS52YWwoKX0pLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5kYXRhLk9LID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LnN1Y2Nlc3MoZS5kYXRhLm1zZyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc21zLWNvZGVcIikuc2xpZGVEb3duKDUwMCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc21zLWZpcnN0XCIpLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlzU2VuZFNtcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQoXCIjc21zLWJ0blwiKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcignU2VydmVyIEVycm9yJyk7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBwYXNzID0gJyc7XG4gICAgICAgICAgICAkKFwiLnNtcy1wYXNzXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHBhc3MgKz0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGV0IGxvZ2luID0gJCh0aGlzKS5kYXRhKCdjdXN0b21lcicpO1xuICAgICAgICAgICAgYXhpb3MucG9zdCgkKHRoaXMpLmRhdGEoJ2NoZWNrJyksIHttb2JpbGU6ICQoXCIjbW9iaWxlXCIpLnZhbCgpLCBwYXNzOiBwYXNzfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICQoXCIjc21zLWJ0blwiKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgIGlmIChlLmRhdGEuT0sgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2VzcyhlLmRhdGEubXNnKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxvZ2luO1xuICAgICAgICAgICAgICAgICAgICB9LCAyMDAwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3IoZS5kYXRhLmVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICQoXCIjc21zLWJ0blwiKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcignU2VydmVyIEVycm9yJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChcIi5jb3VudC1kZWNcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBpbnAgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIGlmIChwYXJzZUludCgkKGlucCkudmFsKCkpIC0gMSA8IDEpIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgLSAxKTtcbiAgICAgICAgfVxuICAgICAgICAkKGlucCkuY2hhbmdlKCk7XG4gICAgfSk7XG4gICAgJChcIi5jb3VudC1pbmNcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBpbnAgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIGlmIChwYXJzZUludCgkKGlucCkudmFsKCkpICsgMSA+ICQoaW5wKS5hdHRyKCdtYXgnKSkge1xuICAgICAgICAgICAgJChpbnApLnZhbCgkKGlucCkuYXR0cignbWF4JykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChpbnApLnZhbChwYXJzZUludCgkKGlucCkudmFsKCkpICsgMSk7XG4gICAgICAgIH1cbiAgICAgICAgJChpbnApLmNoYW5nZSgpO1xuICAgIH0pO1xuXG4gICAgJChcIi5xdWFudGl0eVwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0ZCcpLmZpbmQoJy5xdWFudGl0eScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0ZCcpLmZpbmQoJy5xdWFudGl0eSBpbnB1dCcpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTtcbiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICQodGhpcykuZmluZCgnaW5wdXQnKVswXS5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcmljZS10ZCcpLmF0dHIoJ2RhdGEtcHJpY2UnLCAkKHRoaXMpLmRhdGEoJ3ByaWNlJykpO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByaWNlJykudGV4dChjb21tYWZ5KCQodGhpcykuZGF0YSgncHJpY2UnKSkpO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLCAkKHRoaXMpLmRhdGEoJ2NvdW50JykpO1xuICAgICAgICBpZiAoJCh0aGlzKS5kYXRhKCdjb3VudCcpID09IDApIHtcbiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsIDApO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICB9KTtcblxuICAgICQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB1cGRhdGVDYXJkKClcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZUNhcmQoKSB7XG4gICAgICAgIGxldCB0b3RhbFByaWNlID0gMDtcbiAgICAgICAgZm9yIChjb25zdCB0ZCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucHJpY2UtdGQnKSkge1xuICAgICAgICAgICAgbGV0IHByaWNlID0gcGFyc2VJbnQoJCh0ZCkuYXR0cignZGF0YS1wcmljZScpKTtcbiAgICAgICAgICAgIGxldCBjb3VudCA9IHBhcnNlSW50KCQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS52YWwoKSk7XG4gICAgICAgICAgICAkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywgJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcuYWN0aXZlJykuZGF0YSgnY291bnQnKSk7XG5cbiAgICAgICAgICAgIC8vIG1heWJlIG5lZWQgY29tbWVudFxuICAgICAgICAgICAgaWYgKCQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnKSA9PSAnMCcpe1xuICAgICAgICAgICAgICAgICQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b3RhbFByaWNlICs9IHByaWNlICogY291bnQ7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC8vIGNoZWNrIHByaWNlXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgZGlzY291bnQgPSBKU09OLnBhcnNlKCQoXCIjZGlzY291bnRcIikuYXR0cignZGF0YS1kaXNjb3VudCcpKTtcbiAgICAgICAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQoZGlzY291bnQuYW1vdW50KSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzY291bnQudHlwZSA9PT0gJ3ByaWNlJykge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbFByaWNlIC09IHBhcnNlSW50KGRpc2NvdW50LmFtb3VudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdG90YWxQcmljZSAtPSAoKDEwMCAtIHBhcnNlSW50KGRpc2NvdW50LmFtb3VudCkpICogdG90YWxQcmljZSkgLyAxMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsYXN0cHJpY2UgPSB0b3RhbFByaWNlO1xuICAgICAgICBpZiAoJChcIi50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5kYXRhKCdwcmljZScpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxhc3RwcmljZSArPSBwYXJzZUludCgkKFwiLnRyYW5zcG9ydDpjaGVja2VkXCIpLmRhdGEoJ3ByaWNlJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRyYW5zcG9ydFxuICAgICAgICAkKCcjdG90YWwtY2FyZCcpLnRleHQoY29tbWFmeSh0b3RhbFByaWNlKSk7XG4gICAgICAgICQoJyNsYXN0LXByaWNlJykudGV4dChjb21tYWZ5KGxhc3RwcmljZSkpO1xuXG4gICAgfVxuXG4gICAgJChcIi5yZXNlcnZlXCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiLnJlc2VydmU6Y2hlY2tlZFwiKS5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICQoXCIudHJhbnNwb3J0XCIpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3Jlc3ZcIikuaGlkZSgpO1xuICAgICAgICAkKFwiI2ZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIikucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgfSk7XG4gICAgJChcIi50cmFuc3BvcnRcIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIudHJhbnNwb3J0OmNoZWNrZWRcIikubGVuZ3RoID4gMCl7XG4gICAgICAgICAgICAkKFwiLnJlc2VydmVcIikucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjcmVzdlwiKS5zaG93KCk7XG4gICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICB9KTtcbiAgICAvLyBkaXNjb3VudFxuICAgICQoXCIjZGlzY291bnRcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF4aW9zLnBvc3QoJCh0aGlzKS5kYXRhKCd1cmwnKSwge2NvZGU6ICQoXCIjZGlzY291bnQtY29kZVwiKS52YWwoKX0pLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICQoXCIjZGlzY291bnRcIikuYXR0cignZGF0YS1kaXNjb3VudCcsIEpTT04uc3RyaW5naWZ5KGUuZGF0YSkpO1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LnN1Y2Nlc3Mod2luZG93LnRyYW5zbGF0ZS5kaXNjb3VudENvZGVBY2NlcHQpO1xuICAgICAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKFwiI2Rpc2NvdW50XCIpLmF0dHIoJ2RhdGEtZGlzY291bnQnLCAne30nKTtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcih3aW5kb3cudHJhbnNsYXRlLmRpc2NvdW50Q29kZUVycm9yKTtcbiAgICAgICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAkKFwiI3Byb2ZpbGUtdGFiIGxpXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKFwiI3Byb2ZpbGUtdGFiIGxpXCIpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICQoXCIucHJvZmlsZS10YWIuYWN0aXZlXCIpLnNsaWRlVXAoMzAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoJCh0aGlzKS5kYXRhKCdpZCcpKS5zbGlkZURvd24oMzAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgfSlcbiAgICB9KTtcblxuICAgIHVwZGF0ZUNhcmQoKTtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIiNjYXRJZFwiKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgdXJsID0gJChcIiNjYXRJZFwiKS5kYXRhKCd1cmwnKTtcbiAgICAgICAgICAgICQuZ2V0KHVybCwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhcHApO1xuICAgICAgICAgICAgICAgIGFwcC5qZGF0YSA9IGVbMV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIDUwMCk7XG5cbiAgICAkKFwiLm5leHQtc3RlcFwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc3RlcCsrO1xuICAgICAgICAkKFwiLnN0ZXBcIiArIHN0ZXApLmNsaWNrKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLnByb2dyZXNzLXN0ZXAgLnN0ZXBcIikuY2xpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAkKFwiLnByb2dyZXNzLXN0ZXAgLnN0ZXBcIikucmVtb3ZlQ2xhc3MoJ2RvbmUnKTtcbiAgICAgICAgJCgkKHRoaXMpLmRhdGEoJ2RvbmUnKSkuYWRkQ2xhc3MoJ2RvbmUnKTtcbiAgICAgICAgJChcIiNjYXJkLXN0ZXBzIC5hY3RpdmVcIikuc2xpZGVVcCgzMDApLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCgnIycgKyAkKHRoaXMpLmRhdGEoJ2lkJykpLnNsaWRlRG93big1MDApLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgc3RlcCA9IHBhcnNlSW50KCQodGhpcykuZGF0YSgnaWQnKS5zdWJzdHIoNCwgMSkpO1xuICAgICAgICBpZiAoJCh0aGlzKS5kYXRhKCdpZCcpID09ICdzdGVwMycpIHtcbiAgICAgICAgICAgICQoXCIubGFzdC1zdGVwXCIpLnNsaWRlRG93bigzMDApO1xuICAgICAgICAgICAgJChcIi5uZXh0LXN0ZXBcIikuc2xpZGVVcCgzMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChcIi5sYXN0LXN0ZXBcIikuc2xpZGVVcCgzMDApO1xuICAgICAgICAgICAgJChcIi5uZXh0LXN0ZXBcIikuc2xpZGVEb3duKDMwMCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICgkKCcuY2FyZC1zdWJtaXQnKS5sZW5ndGggPiAwKXtcbiAgICAgICAgaWYgKCQoXCJpbnB1dC50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5sZW5ndGggPT0gMCl7XG4gICAgICAgICAgICAkKCcuY2FyZC1zdWJtaXQnKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICB9ZWxzZXtcblxuICAgICAgICAgICAgJChcImlucHV0LnRyYW5zcG9ydFwiKS5iaW5kKCdjaGFuZ2UnLGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZmlyZScpO1xuICAgICAgICAgICAgICAgICQoJy5jYXJkLXN1Ym1pdCcpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxufSk7XG5cbiJdLCJuYW1lcyI6WyJkYXRhIiwicmVxdWlyZSIsImlzU2VuZFNtcyIsInN0ZXAiLCJub2NvbW1hIiwibnVtIiwiYSIsInRvU3RyaW5nIiwicmVwbGFjZSIsImNvbW1hZnkiLCJzdHIiLCJzcGxpdCIsImxlbmd0aCIsImpvaW4iLCJmaW5kTmV4dFRhYlN0b3AiLCJlbCIsInVuaXZlcnNlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGlzdCIsIkFycmF5IiwicHJvdG90eXBlIiwiZmlsdGVyIiwiY2FsbCIsIml0ZW0iLCJ0YWJJbmRleCIsImluZGV4IiwiaW5kZXhPZiIsImZpbmRQZXJ2VGFiU3RvcCIsImpRdWVyeSIsIiQiLCJiaW5kIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJ2YWx1ZSIsInZhbCIsIngiLCJmb2N1cyIsInR4Iiwic3RhdGVzIiwicyIsImlkIiwibmFtZSIsImFwcGVuZCIsImNoYW5nZSIsInYiLCJjaXRpZXMiLCJjaXR5Iiwic3RhdGVfaWQiLCJodG1sIiwid2luZG93IiwiYWxlcnRpZnkiLCJlcnJvciIsInRyYW5zbGF0ZSIsImVyck1vYmlsZSIsImF0dHIiLCJheGlvcyIsInBvc3QiLCJtb2JpbGUiLCJ0aGVuIiwiZSIsIk9LIiwic3VjY2VzcyIsIm1zZyIsInNsaWRlRG93biIsInJlbW92ZUF0dHIiLCJwYXNzIiwiZWFjaCIsImxvZ2luIiwic2V0VGltZW91dCIsImxvY2F0aW9uIiwiaHJlZiIsImVyciIsImlucCIsInBhcmVudCIsImZpbmQiLCJwYXJzZUludCIsImNsb3Nlc3QiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiY2hlY2tlZCIsInRleHQiLCJ1cGRhdGVDYXJkIiwidG90YWxQcmljZSIsInRkIiwicHJpY2UiLCJjb3VudCIsImRpc2NvdW50IiwiSlNPTiIsInBhcnNlIiwiaXNOYU4iLCJhbW91bnQiLCJ0eXBlIiwibGFzdHByaWNlIiwidW5kZWZpbmVkIiwiaGlkZSIsInNob3ciLCJjb2RlIiwic3RyaW5naWZ5IiwiZGlzY291bnRDb2RlQWNjZXB0IiwiZGlzY291bnRDb2RlRXJyb3IiLCJzbGlkZVVwIiwidXJsIiwiZ2V0IiwiYXBwIiwiamRhdGEiLCJjbGljayIsInN1YnN0ciIsImNvbnNvbGUiLCJsb2ciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/customer.js\n"); /***/ }), diff --git a/resources/js/customer.js b/resources/js/customer.js index d88c17e..a0098cb 100755 --- a/resources/js/customer.js +++ b/resources/js/customer.js @@ -1,5 +1,6 @@ var data = require('./plugins/data'); var isSendSms = false; +var step = 1; function nocomma(num) { a = num.toString().replace(/\,/g, ''); // 1125, but a string, so convert it to number @@ -268,5 +269,38 @@ jQuery(function ($) { }); } }, 500); + + $(".next-step").bind('click', function () { + step++; + $(".step" + step).click(); + }); + + $(".progress-step .step").click(function () { + $(".progress-step .step").removeClass('done'); + $($(this).data('done')).addClass('done'); + $("#card-steps .active").slideUp(300).removeClass('active'); + $('#' + $(this).data('id')).slideDown(500).addClass('active'); + step = parseInt($(this).data('id').substr(4, 1)); + if ($(this).data('id') == 'step3') { + $(".last-step").slideDown(300); + $(".next-step").slideUp(300); + } else { + $(".last-step").slideUp(300); + $(".next-step").slideDown(300); + } + }); + + if ($('.card-submit').length > 0){ + if ($("input.transport:checked").length == 0){ + $('.card-submit').removeAttr('disabled'); + }else{ + + $("input.transport").bind('change',function () { + console.log('fire'); + $('.card-submit').removeAttr('disabled'); + }); + } + } + }); diff --git a/resources/views/website/card.blade.php b/resources/views/website/card.blade.php index f747f43..23f126b 100755 --- a/resources/views/website/card.blade.php +++ b/resources/views/website/card.blade.php @@ -13,11 +13,13 @@ سبد خرید -
+
اطلاعات ارسال
-
+
اطلاعات پرداخت
@@ -29,7 +31,7 @@
-
+
@@ -74,7 +76,8 @@ @endif @endforeach @else - + @foreach(\App\Helpers\getPriceableMeta($pro) as $k => $meta)
{{\App\Helpers\getPropLabel($k)}} @@ -89,7 +92,8 @@ @endforeach @endif -
@@ -129,7 +136,8 @@ @@ -183,16 +194,19 @@ @endforeach
+ @if($pro->getPurePrice() == 0) {{__("We call you about price soon.")}} @else @@ -105,8 +109,10 @@
-
- + - + @@ -137,7 +145,8 @@ @php($data = json_decode($qpro->data)) - + {{\App\Helpers\getColorName($data->color)}} @@ -162,7 +171,8 @@
-
- +
-
- شما می‌توانید محصولات را رزرو کنید , برای اینکار به مرحله بعدی بروید و - - گزینه فعال سازی - حالت - رزرو - + @if(\App\Helpers\getSetting('reserve') != null ) - را انتخاب کنید -
+
+ شما می‌توانید محصولات را رزرو کنید , برای اینکار به مرحله بعدی بروید و + + گزینه فعال سازی + حالت + رزرو + + + را انتخاب کنید +
+ @endif
@if(count($transports) > 0) @@ -207,6 +221,7 @@ is_default) checked @endif class="form-check-input transport"> @@ -215,8 +230,13 @@ {{$t->title}} @if(strlen($t->description) > 1) -

{{$t->description}} @if($t->price > 0){{number_format($t->price)}} @else {{__("Free")}} @endif +

{{$t->description}} + @if($t->price > 0) + {{number_format($t->price)}} + @else + {{__("Free")}} + @endif

@endif @@ -249,18 +269,21 @@ @endforeach @endif -
-
- - + @if(\App\Helpers\getSetting('reserve') != null ) +
+
+ + +
-
+ @endif @endif
-
+
@if(auth('customer')->check() && auth('customer')->user()->colleague == 1)
اگر همکاری هستید آدرس مشتری را در این قسمت بنویسید @@ -287,13 +310,14 @@
-
+
-
@@ -360,18 +384,20 @@ تکمیل اطلاعات @else - -

@endif -  @else +   + @else {{-- {{__("Register or login to complete purchase")}}--}}