Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/wwwroot/mifepriston.org/mifepriston.org_20230623190107.bak/dist/ |
Upload File : |
{"version":3,"sources":["webpack:///./src/Cart.vue","webpack:///src/Cart.vue","webpack:///./src/Cart.vue?f8ae","webpack:///./src/Cart.vue?530e","webpack:///./src/Cart.vue?243d"],"names":["__webpack_require__","r","__webpack_exports__","_babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Cart_vue__WEBPACK_IMPORTED_MODULE_0__","_babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Cart_vue__WEBPACK_IMPORTED_MODULE_0___default","n","__WEBPACK_IMPORT_KEY__","key","d","_node_modules_vue_loader_lib_template_compiler_index_id_data_v_50e6d3c6_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Cart_vue__WEBPACK_IMPORTED_MODULE_1__","_node_modules_vue_loader_lib_runtime_component_normalizer__WEBPACK_IMPORTED_MODULE_2__","Component","Object","a","context","options","__file","data","productName","price","currency","quantity","translation","visible","name","phone","email","shipment_id","address","comment","shipMethods","orderPlaced","invalid","minQuantity","maxQuantity","methods","t","txt","this","$data","addToCart","count","Number","decCount","incCount","placeOrder","_this","attrs","formValid","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","attr","value","validate","err","return","formData","FormData","set","csrfParam","csrfToken","lang","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_attr","_axios2","default","post","placeOrderUrl","headers","Content-Type","then","response","result","alert","catch","error","resetForm","id","resetAllHelpers","resetHelper","field","trim","valid","substring","match","replace","test","console","mounted","_this2","get","getTranslationUrl","params","category","getShippingUrl","map","row","content","module","i","locals","exports","push","version","sources","names","mappings","file","sourcesContent","sourceRoot","render","staticRenderFns","_vm","_h","$createElement","_c","_self","staticClass","class","is-active","on","click","$event","_v","_s","aria-label","type","domProps","href","xmlns","height","viewBox","directives","rawName","expression","is-danger","input","target","composing","blur","_e","readonly","placeholder","staticStyle","fill","change","$$selectedVal","Array","prototype","filter","call","o","selected","_value","multiple","_l","preventDefault","_withStripped"],"mappings":"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","file":"5-35b582201514644cfeeb.js","sourcesContent":["var disposed = false\nfunction injectStyle (context) {\n if (disposed) return\n require(\"!!vue-style-loader!css-loader?sourceMap!../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./Cart.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./Cart.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./Cart.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-50e6d3c6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./Cart.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src\\\\Cart.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-50e6d3c6\", Component.options)\n } else {\n hotAPI.reload(\"data-v-50e6d3c6\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","<template>\n<div>\n <div class=\"modal\" :class=\"{ 'is-active': visible }\">\n <div class=\"modal-background\" @click=\"visible = false\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">{{ t('Shopping Cart') }}</p>\n <button class=\"delete\" aria-label=\"close\" @click=\"visible = false\"></button>\n </header>\n <section class=\"modal-card-body\">\n <!-- Product name -->\n <div class=\"is-size-5\">\n {{ t(\"You're purchasing\") }} <span class=\"has-text-info\">{{ productName }}</span>\n <input type=\"hidden\" name=\"price\" :value=\"price\">\n </div><br>\n\n <div class=\"columns is-mobile\">\n <div class=\"column\">\n <!-- Quantity -->\n <div class=\"field is-horizontal\">\n <div class=\"field-label\">\n <label class=\"label\">{{ t('Quantity') }}</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field is-expanded\">\n <div class=\"field has-addons\">\n <p class=\"control\">\n <a href=\"#\" class=\"button\" @click=\"decCount()\"><svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"/></svg></a>\n </p>\n <p class=\"control is-expanded\">\n <input class=\"input\" :class=\"{'is-danger': invalid.quantity}\" name=\"quantity\" type=\"number\" v-model=\"quantity\" @input=\"resetHelper('quantity')\" @blur=\"validate('quantity')\">\n </p>\n <p class=\"control\">\n <a href=\"#\" class=\"button\" @click=\"incCount()\"><svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"/></svg></a>\n </p>\n </div>\n <p v-if=\"invalid.quantity\" class=\"help is-danger\">{{ t('Input a number between') }} {{ minQuantity }} {{ t('and') }} {{ maxQuantity }}</p>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column\">\n <!-- Cost -->\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\">{{ t('Cost') }}</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field has-addons\">\n <p class=\"control\">\n <input class=\"input\" name=\"cost\" type=\"text\" readonly :value=\"quantity * price\">\n </p>\n <p class=\"control\">\n <span class=\"button is-static\">{{ currency }}</span>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Name -->\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\">{{ t('Your name') }}</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control\">\n <input class=\"input\" :class=\"{'is-danger': invalid.name}\" type=\"text\" name=\"name\" v-model=\"name\" :placeholder=\"t('Input your name')\" @input=\"resetHelper('name')\" @blur=\"validate('name')\">\n </div>\n <p v-if=\"invalid.name\" class=\"help is-danger\">{{ t('Name is required') }}</p>\n </div>\n </div>\n </div>\n\n <!-- Phone -->\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\">{{ t('Your phone') }}</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control\">\n <input class=\"input\" :class=\"{'is-danger': invalid.phone}\" type=\"tel\" name=\"phone\" :placeholder=\"t('In international format')\" v-model=\"phone\" @input=\"resetHelper('phone')\" @blur=\"validate('phone')\">\n </div>\n <p v-if=\"invalid.phone\" class=\"help is-danger\">{{ t('Phone is required') }}</p>\n </div>\n </div>\n </div>\n\n <!-- Email -->\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\">{{ t('Email') }}</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control has-icons-left\">\n <input class=\"input\" :class=\"{'is-danger': invalid.email}\" type=\"email\" name=\"email\" v-model=\"email\" placeholder=\"you@email.com\" @input=\"resetHelper('email')\" @blur=\"validate('email')\">\n <span class=\"icon is-small is-left\">\n <svg style=\"fill: #DBDBDB\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 0 512 512\"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"/></svg>\n </span>\n </div>\n <p v-if=\"invalid.email\" class=\"help is-danger\">{{ t('This email is invalid') }}</p>\n </div>\n </div>\n </div>\n\n <!-- Shipment -->\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\">{{ t('Ship to') }}</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field is-narrow\">\n <div class=\"control\">\n <div class=\"select is-fullwidth\">\n <select name=\"shipment_id\" v-model=\"shipment_id\">\n <option v-for=\"row of shipMethods\" :key=\"row.id\" :value=\"row.id\">{{ row.name }}</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Address -->\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\">{{ t('Shipping address') }}</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control\">\n <textarea class=\"textarea\" :class=\"{'is-danger': invalid.address}\" name=\"address\" v-model=\"address\" :placeholder=\"t('Please input shipping address carefully')\" @input=\"resetHelper('address')\" @blur=\"validate('address')\"></textarea>\n </div>\n <p v-if=\"invalid.address\" class=\"help is-danger\">{{ t('Address is required') }}</p>\n </div>\n </div>\n </div>\n\n <!-- Comment -->\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\">{{ t('Comment') }}</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control\">\n <textarea class=\"textarea\" name=\"comment\" v-model=\"comment\" :placeholder=\"t('Additional information (optional)')\"></textarea>\n </div>\n </div>\n </div>\n </div>\n\n </section>\n <footer class=\"modal-card-foot\">\n <button class=\"button is-primary\" @click.prevent=\"placeOrder()\">{{ t('Place order') }}</button>\n <button class=\"button\" @click=\"visible = false\">{{ t('Cancel') }}</button>\n <button class=\"button\" @click=\"resetForm()\">{{ t('Reset form') }}</button>\n </footer>\n </div>\n </div>\n\n <div class=\"modal\" :class=\"{ 'is-active': orderPlaced }\">\n <div class=\"modal-background\" @click=\"orderPlaced = false\"></div>\n <div class=\"modal-content\">\n <div class=\"box\" @click=\"orderPlaced = false\">\n {{ t('You have placed the order successfully') }}.<br>\n {{ t('Our employee will contact you as soon as possible') }}.\n </div>\n </div>\n <button class=\"modal-close is-large\" aria-label=\"close\" @click=\"orderPlaced = false\"></button>\n </div>\n</div>\n</template>\n\n<script>\nimport axios from 'axios';\n\nexport default {\n data() {\n return {\n productName: productName,\n price: price,\n currency: currency,\n quantity: 0,\n translation: {},\n visible: false,\n name: '',\n phone: '',\n email: '',\n shipment_id: 0,\n address: '',\n comment: '',\n shipMethods: [],\n orderPlaced: false,\n invalid: {},\n minQuantity: 1,\n maxQuantity: 20,\n }\n },\n\n methods: {\n t(txt) {\n return this.$data.translation[txt] || txt;\n },\n\n addToCart(count) {\n if (Number(count)) this.quantity += Number(count);\n else this.quantity = this.quantity || 1;\n this.orderPlaced = false;\n this.visible = true;\n },\n\n decCount() {\n this.quantity--;\n if (this.quantity < this.minQuantity) this.quantity = this.minQuantity;\n },\n\n incCount() {\n this.quantity++;\n if (this.quantity > this.maxQuantity) this.quantity = this.maxQuantity;\n },\n\n placeOrder() {\n const attrs = ['quantity', 'price', 'name', 'phone', 'email', 'shipment_id', 'address', 'comment'];\n let formValid = true;\n for (let attr of attrs) formValid = this.validate(attr) && formValid;\n if (! formValid) return;\n const formData = new FormData;\n formData.set(csrfParam, csrfToken);\n formData.set('Order[lang]', lang);\n for (let attr of attrs) formData.set('Order[' + attr + ']', this[attr]);\n axios.post(placeOrderUrl, formData, { headers: {'Content-Type': 'multipart/form-data' } })\n .then( response => {\n if (response.data.result === 'OK') {\n this.visible = false;\n this.quantity = 0;\n this.orderPlaced = true;\n } else {\n alert(this.t('An error occured'));\n }\n })\n .catch( error => {\n alert(this.t('An error occured'));\n });\n },\n\n resetForm() {\n this.quantity = 1;\n this.name = '';\n this.phone = '';\n this.email = '';\n this.shipment_id = this.shipMethods[0].id;\n this.address = '';\n this.comment = '';\n this.resetAllHelpers();\n },\n\n resetHelper(field) {\n this.invalid[field] = false;\n },\n\n resetAllHelpers() {\n this.invalid = {\n quantity: false,\n name: false,\n phone: false,\n email: false,\n address: false,\n }\n },\n\n validate(attr) {\n if (typeof this[attr] === 'string') {\n this[attr] = this[attr].trim();\n }\n let valid = true;\n switch (attr) {\n case 'quantity':\n valid = typeof this.quantity === 'number' && this.quantity >= this.minQuantity && this.quantity <= this.maxQuantity;\n break;\n case 'price':\n break;\n case 'name':\n this.name = this.name.substring(0, 50);\n valid = this.name.match(/^\\S+\\s+\\S+/);\n break;\n case 'phone':\n this.phone = this.phone.replace(/\\D/g, '');\n valid = /^(38)?0\\d{9}$/.test(this.phone) || /^7\\d{10}$/.test(this.phone);\n break;\n case 'email':\n this.email = this.email.substring(0, 50);\n valid = this.email === '' || this.email.match(/^\\S+@\\S+$/);\n break;\n case 'shipment_id':\n break;\n case 'address':\n this.address = this.address.substring(0, 200);\n valid = this.address !== '';\n break;\n case 'comment':\n this.comment = this.comment.substring(0, 300);\n break;\n default:\n console.error('Unknown attribute: ' + attr);\n valid = false;\n }\n this.invalid[attr] = ! valid;\n return valid;\n }\n },\n\n mounted() {\n axios.get(getTranslationUrl, { params: {lang: lang, category: 'cart'} })\n .then( response => {\n this.$data.translation = response.data;\n });\n axios.get(getShippingUrl, { params: {lang: lang} })\n .then( response => {\n this.$data.shipMethods = response.data.map(row => { return {id: Number(row.id), name: row.name} });\n this.$data.shipment_id = this.$data.shipMethods[0].id;\n });\n this.resetAllHelpers();\n }\n}\n</script>\n\n<style>\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n /* display: none; <- Crashes Chrome on hover */\n -webkit-appearance: none;\n margin: 0; /* <-- Apparently some margin are still there even though it's hidden */\n}\n\ninput[type=number] {\n -moz-appearance:textfield; /* Firefox */\n}\n</style>\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/index.js?sourceMap!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./Cart.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"871a3bcc\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../node_modules/css-loader/index.js?sourceMap!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./Cart.vue\", function() {\n var newContent = require(\"!!../node_modules/css-loader/index.js?sourceMap!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./Cart.vue\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(true);\n// imports\n\n\n// module\nexports.push([module.id, \"\\ninput::-webkit-outer-spin-button,\\ninput::-webkit-inner-spin-button{\\n -webkit-appearance:none;\\n margin:0;\\n}\\ninput[type=number]{\\n -moz-appearance:textfield;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"C:/OpenServer/domains/mifepriston/src/src/Cart.vue\"],\"names\":[],\"mappings\":\";AA4UA;;IAGA,wBAAA;IACA,SAAA;CACA;AAEA;IACA,0BAAA;CACA\",\"file\":\"Cart.vue\",\"sourcesContent\":[\"<template>\\n<div>\\n <div class=\\\"modal\\\" :class=\\\"{ 'is-active': visible }\\\">\\n <div class=\\\"modal-background\\\" @click=\\\"visible = false\\\"></div>\\n <div class=\\\"modal-card\\\">\\n <header class=\\\"modal-card-head\\\">\\n <p class=\\\"modal-card-title\\\">{{ t('Shopping Cart') }}</p>\\n <button class=\\\"delete\\\" aria-label=\\\"close\\\" @click=\\\"visible = false\\\"></button>\\n </header>\\n <section class=\\\"modal-card-body\\\">\\n <!-- Product name -->\\n <div class=\\\"is-size-5\\\">\\n {{ t(\\\"You're purchasing\\\") }} <span class=\\\"has-text-info\\\">{{ productName }}</span>\\n <input type=\\\"hidden\\\" name=\\\"price\\\" :value=\\\"price\\\">\\n </div><br>\\n\\n <div class=\\\"columns is-mobile\\\">\\n <div class=\\\"column\\\">\\n <!-- Quantity -->\\n <div class=\\\"field is-horizontal\\\">\\n <div class=\\\"field-label\\\">\\n <label class=\\\"label\\\">{{ t('Quantity') }}</label>\\n </div>\\n <div class=\\\"field-body\\\">\\n <div class=\\\"field is-expanded\\\">\\n <div class=\\\"field has-addons\\\">\\n <p class=\\\"control\\\">\\n <a href=\\\"#\\\" class=\\\"button\\\" @click=\\\"decCount()\\\"><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"1em\\\" viewBox=\\\"0 0 448 512\\\"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\\\"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\\\"/></svg></a>\\n </p>\\n <p class=\\\"control is-expanded\\\">\\n <input class=\\\"input\\\" :class=\\\"{'is-danger': invalid.quantity}\\\" name=\\\"quantity\\\" type=\\\"number\\\" v-model=\\\"quantity\\\" @input=\\\"resetHelper('quantity')\\\" @blur=\\\"validate('quantity')\\\">\\n </p>\\n <p class=\\\"control\\\">\\n <a href=\\\"#\\\" class=\\\"button\\\" @click=\\\"incCount()\\\"><svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"1em\\\" viewBox=\\\"0 0 448 512\\\"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\\\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\\\"/></svg></a>\\n </p>\\n </div>\\n <p v-if=\\\"invalid.quantity\\\" class=\\\"help is-danger\\\">{{ t('Input a number between') }} {{ minQuantity }} {{ t('and') }} {{ maxQuantity }}</p>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"column\\\">\\n <!-- Cost -->\\n <div class=\\\"field is-horizontal\\\">\\n <div class=\\\"field-label is-normal\\\">\\n <label class=\\\"label\\\">{{ t('Cost') }}</label>\\n </div>\\n <div class=\\\"field-body\\\">\\n <div class=\\\"field has-addons\\\">\\n <p class=\\\"control\\\">\\n <input class=\\\"input\\\" name=\\\"cost\\\" type=\\\"text\\\" readonly :value=\\\"quantity * price\\\">\\n </p>\\n <p class=\\\"control\\\">\\n <span class=\\\"button is-static\\\">{{ currency }}</span>\\n </p>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Name -->\\n <div class=\\\"field is-horizontal\\\">\\n <div class=\\\"field-label is-normal\\\">\\n <label class=\\\"label\\\">{{ t('Your name') }}</label>\\n </div>\\n <div class=\\\"field-body\\\">\\n <div class=\\\"field\\\">\\n <div class=\\\"control\\\">\\n <input class=\\\"input\\\" :class=\\\"{'is-danger': invalid.name}\\\" type=\\\"text\\\" name=\\\"name\\\" v-model=\\\"name\\\" :placeholder=\\\"t('Input your name')\\\" @input=\\\"resetHelper('name')\\\" @blur=\\\"validate('name')\\\">\\n </div>\\n <p v-if=\\\"invalid.name\\\" class=\\\"help is-danger\\\">{{ t('Name is required') }}</p>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Phone -->\\n <div class=\\\"field is-horizontal\\\">\\n <div class=\\\"field-label is-normal\\\">\\n <label class=\\\"label\\\">{{ t('Your phone') }}</label>\\n </div>\\n <div class=\\\"field-body\\\">\\n <div class=\\\"field\\\">\\n <div class=\\\"control\\\">\\n <input class=\\\"input\\\" :class=\\\"{'is-danger': invalid.phone}\\\" type=\\\"tel\\\" name=\\\"phone\\\" :placeholder=\\\"t('In international format')\\\" v-model=\\\"phone\\\" @input=\\\"resetHelper('phone')\\\" @blur=\\\"validate('phone')\\\">\\n </div>\\n <p v-if=\\\"invalid.phone\\\" class=\\\"help is-danger\\\">{{ t('Phone is required') }}</p>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Email -->\\n <div class=\\\"field is-horizontal\\\">\\n <div class=\\\"field-label is-normal\\\">\\n <label class=\\\"label\\\">{{ t('Email') }}</label>\\n </div>\\n <div class=\\\"field-body\\\">\\n <div class=\\\"field\\\">\\n <div class=\\\"control has-icons-left\\\">\\n <input class=\\\"input\\\" :class=\\\"{'is-danger': invalid.email}\\\" type=\\\"email\\\" name=\\\"email\\\" v-model=\\\"email\\\" placeholder=\\\"you@email.com\\\" @input=\\\"resetHelper('email')\\\" @blur=\\\"validate('email')\\\">\\n <span class=\\\"icon is-small is-left\\\">\\n <svg style=\\\"fill: #DBDBDB\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"1em\\\" viewBox=\\\"0 0 512 512\\\"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\\\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\\\"/></svg>\\n </span>\\n </div>\\n <p v-if=\\\"invalid.email\\\" class=\\\"help is-danger\\\">{{ t('This email is invalid') }}</p>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Shipment -->\\n <div class=\\\"field is-horizontal\\\">\\n <div class=\\\"field-label is-normal\\\">\\n <label class=\\\"label\\\">{{ t('Ship to') }}</label>\\n </div>\\n <div class=\\\"field-body\\\">\\n <div class=\\\"field is-narrow\\\">\\n <div class=\\\"control\\\">\\n <div class=\\\"select is-fullwidth\\\">\\n <select name=\\\"shipment_id\\\" v-model=\\\"shipment_id\\\">\\n <option v-for=\\\"row of shipMethods\\\" :key=\\\"row.id\\\" :value=\\\"row.id\\\">{{ row.name }}</option>\\n </select>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Address -->\\n <div class=\\\"field is-horizontal\\\">\\n <div class=\\\"field-label is-normal\\\">\\n <label class=\\\"label\\\">{{ t('Shipping address') }}</label>\\n </div>\\n <div class=\\\"field-body\\\">\\n <div class=\\\"field\\\">\\n <div class=\\\"control\\\">\\n <textarea class=\\\"textarea\\\" :class=\\\"{'is-danger': invalid.address}\\\" name=\\\"address\\\" v-model=\\\"address\\\" :placeholder=\\\"t('Please input shipping address carefully')\\\" @input=\\\"resetHelper('address')\\\" @blur=\\\"validate('address')\\\"></textarea>\\n </div>\\n <p v-if=\\\"invalid.address\\\" class=\\\"help is-danger\\\">{{ t('Address is required') }}</p>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Comment -->\\n <div class=\\\"field is-horizontal\\\">\\n <div class=\\\"field-label is-normal\\\">\\n <label class=\\\"label\\\">{{ t('Comment') }}</label>\\n </div>\\n <div class=\\\"field-body\\\">\\n <div class=\\\"field\\\">\\n <div class=\\\"control\\\">\\n <textarea class=\\\"textarea\\\" name=\\\"comment\\\" v-model=\\\"comment\\\" :placeholder=\\\"t('Additional information (optional)')\\\"></textarea>\\n </div>\\n </div>\\n </div>\\n </div>\\n\\n </section>\\n <footer class=\\\"modal-card-foot\\\">\\n <button class=\\\"button is-primary\\\" @click.prevent=\\\"placeOrder()\\\">{{ t('Place order') }}</button>\\n <button class=\\\"button\\\" @click=\\\"visible = false\\\">{{ t('Cancel') }}</button>\\n <button class=\\\"button\\\" @click=\\\"resetForm()\\\">{{ t('Reset form') }}</button>\\n </footer>\\n </div>\\n </div>\\n\\n <div class=\\\"modal\\\" :class=\\\"{ 'is-active': orderPlaced }\\\">\\n <div class=\\\"modal-background\\\" @click=\\\"orderPlaced = false\\\"></div>\\n <div class=\\\"modal-content\\\">\\n <div class=\\\"box\\\" @click=\\\"orderPlaced = false\\\">\\n {{ t('You have placed the order successfully') }}.<br>\\n {{ t('Our employee will contact you as soon as possible') }}.\\n </div>\\n </div>\\n <button class=\\\"modal-close is-large\\\" aria-label=\\\"close\\\" @click=\\\"orderPlaced = false\\\"></button>\\n </div>\\n</div>\\n</template>\\n\\n<script>\\nimport axios from 'axios';\\n\\nexport default {\\n data() {\\n return {\\n productName: productName,\\n price: price,\\n currency: currency,\\n quantity: 0,\\n translation: {},\\n visible: false,\\n name: '',\\n phone: '',\\n email: '',\\n shipment_id: 0,\\n address: '',\\n comment: '',\\n shipMethods: [],\\n orderPlaced: false,\\n invalid: {},\\n minQuantity: 1,\\n maxQuantity: 20,\\n }\\n },\\n\\n methods: {\\n t(txt) {\\n return this.$data.translation[txt] || txt;\\n },\\n\\n addToCart(count) {\\n if (Number(count)) this.quantity += Number(count);\\n else this.quantity = this.quantity || 1;\\n this.orderPlaced = false;\\n this.visible = true;\\n },\\n\\n decCount() {\\n this.quantity--;\\n if (this.quantity < this.minQuantity) this.quantity = this.minQuantity;\\n },\\n\\n incCount() {\\n this.quantity++;\\n if (this.quantity > this.maxQuantity) this.quantity = this.maxQuantity;\\n },\\n\\n placeOrder() {\\n const attrs = ['quantity', 'price', 'name', 'phone', 'email', 'shipment_id', 'address', 'comment'];\\n let formValid = true;\\n for (let attr of attrs) formValid = this.validate(attr) && formValid;\\n if (! formValid) return;\\n const formData = new FormData;\\n formData.set(csrfParam, csrfToken);\\n formData.set('Order[lang]', lang);\\n for (let attr of attrs) formData.set('Order[' + attr + ']', this[attr]);\\n axios.post(placeOrderUrl, formData, { headers: {'Content-Type': 'multipart/form-data' } })\\n .then( response => {\\n if (response.data.result === 'OK') {\\n this.visible = false;\\n this.quantity = 0;\\n this.orderPlaced = true;\\n } else {\\n alert(this.t('An error occured'));\\n }\\n })\\n .catch( error => {\\n alert(this.t('An error occured'));\\n });\\n },\\n\\n resetForm() {\\n this.quantity = 1;\\n this.name = '';\\n this.phone = '';\\n this.email = '';\\n this.shipment_id = this.shipMethods[0].id;\\n this.address = '';\\n this.comment = '';\\n this.resetAllHelpers();\\n },\\n\\n resetHelper(field) {\\n this.invalid[field] = false;\\n },\\n\\n resetAllHelpers() {\\n this.invalid = {\\n quantity: false,\\n name: false,\\n phone: false,\\n email: false,\\n address: false,\\n }\\n },\\n\\n validate(attr) {\\n if (typeof this[attr] === 'string') {\\n this[attr] = this[attr].trim();\\n }\\n let valid = true;\\n switch (attr) {\\n case 'quantity':\\n valid = typeof this.quantity === 'number' && this.quantity >= this.minQuantity && this.quantity <= this.maxQuantity;\\n break;\\n case 'price':\\n break;\\n case 'name':\\n this.name = this.name.substring(0, 50);\\n valid = this.name.match(/^\\\\S+\\\\s+\\\\S+/);\\n break;\\n case 'phone':\\n this.phone = this.phone.replace(/\\\\D/g, '');\\n valid = /^(38)?0\\\\d{9}$/.test(this.phone) || /^7\\\\d{10}$/.test(this.phone);\\n break;\\n case 'email':\\n this.email = this.email.substring(0, 50);\\n valid = this.email === '' || this.email.match(/^\\\\S+@\\\\S+$/);\\n break;\\n case 'shipment_id':\\n break;\\n case 'address':\\n this.address = this.address.substring(0, 200);\\n valid = this.address !== '';\\n break;\\n case 'comment':\\n this.comment = this.comment.substring(0, 300);\\n break;\\n default:\\n console.error('Unknown attribute: ' + attr);\\n valid = false;\\n }\\n this.invalid[attr] = ! valid;\\n return valid;\\n }\\n },\\n\\n mounted() {\\n axios.get(getTranslationUrl, { params: {lang: lang, category: 'cart'} })\\n .then( response => {\\n this.$data.translation = response.data;\\n });\\n axios.get(getShippingUrl, { params: {lang: lang} })\\n .then( response => {\\n this.$data.shipMethods = response.data.map(row => { return {id: Number(row.id), name: row.name} });\\n this.$data.shipment_id = this.$data.shipMethods[0].id;\\n });\\n this.resetAllHelpers();\\n }\\n}\\n</script>\\n\\n<style>\\ninput::-webkit-outer-spin-button,\\ninput::-webkit-inner-spin-button {\\n /* display: none; <- Crashes Chrome on hover */\\n -webkit-appearance: none;\\n margin: 0; /* <-- Apparently some margin are still there even though it's hidden */\\n}\\n\\ninput[type=number] {\\n -moz-appearance:textfield; /* Firefox */\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n\n// exports\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"div\", { staticClass: \"modal\", class: { \"is-active\": _vm.visible } }, [\n _c(\"div\", {\n staticClass: \"modal-background\",\n on: {\n click: function($event) {\n _vm.visible = false\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"modal-card\" }, [\n _c(\"header\", { staticClass: \"modal-card-head\" }, [\n _c(\"p\", { staticClass: \"modal-card-title\" }, [\n _vm._v(_vm._s(_vm.t(\"Shopping Cart\")))\n ]),\n _vm._v(\" \"),\n _c(\"button\", {\n staticClass: \"delete\",\n attrs: { \"aria-label\": \"close\" },\n on: {\n click: function($event) {\n _vm.visible = false\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"section\", { staticClass: \"modal-card-body\" }, [\n _c(\"div\", { staticClass: \"is-size-5\" }, [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.t(\"You're purchasing\")) +\n \" \"\n ),\n _c(\"span\", { staticClass: \"has-text-info\" }, [\n _vm._v(_vm._s(_vm.productName))\n ]),\n _vm._v(\" \"),\n _c(\"input\", {\n attrs: { type: \"hidden\", name: \"price\" },\n domProps: { value: _vm.price }\n })\n ]),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"columns is-mobile\" }, [\n _c(\"div\", { staticClass: \"column\" }, [\n _c(\"div\", { staticClass: \"field is-horizontal\" }, [\n _c(\"div\", { staticClass: \"field-label\" }, [\n _c(\"label\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.t(\"Quantity\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-body\" }, [\n _c(\"div\", { staticClass: \"field is-expanded\" }, [\n _c(\"div\", { staticClass: \"field has-addons\" }, [\n _c(\"p\", { staticClass: \"control\" }, [\n _c(\n \"a\",\n {\n staticClass: \"button\",\n attrs: { href: \"#\" },\n on: {\n click: function($event) {\n return _vm.decCount()\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"1em\",\n viewBox: \"0 0 448 512\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"\n }\n })\n ]\n )\n ]\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"control is-expanded\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.quantity,\n expression: \"quantity\"\n }\n ],\n staticClass: \"input\",\n class: { \"is-danger\": _vm.invalid.quantity },\n attrs: { name: \"quantity\", type: \"number\" },\n domProps: { value: _vm.quantity },\n on: {\n input: [\n function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.quantity = $event.target.value\n },\n function($event) {\n return _vm.resetHelper(\"quantity\")\n }\n ],\n blur: function($event) {\n return _vm.validate(\"quantity\")\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"control\" }, [\n _c(\n \"a\",\n {\n staticClass: \"button\",\n attrs: { href: \"#\" },\n on: {\n click: function($event) {\n return _vm.incCount()\n }\n }\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"1em\",\n viewBox: \"0 0 448 512\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"\n }\n })\n ]\n )\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _vm.invalid.quantity\n ? _c(\"p\", { staticClass: \"help is-danger\" }, [\n _vm._v(\n _vm._s(_vm.t(\"Input a number between\")) +\n \" \" +\n _vm._s(_vm.minQuantity) +\n \" \" +\n _vm._s(_vm.t(\"and\")) +\n \" \" +\n _vm._s(_vm.maxQuantity)\n )\n ])\n : _vm._e()\n ])\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"column\" }, [\n _c(\"div\", { staticClass: \"field is-horizontal\" }, [\n _c(\"div\", { staticClass: \"field-label is-normal\" }, [\n _c(\"label\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.t(\"Cost\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-body\" }, [\n _c(\"div\", { staticClass: \"field has-addons\" }, [\n _c(\"p\", { staticClass: \"control\" }, [\n _c(\"input\", {\n staticClass: \"input\",\n attrs: { name: \"cost\", type: \"text\", readonly: \"\" },\n domProps: { value: _vm.quantity * _vm.price }\n })\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"control\" }, [\n _c(\"span\", { staticClass: \"button is-static\" }, [\n _vm._v(_vm._s(_vm.currency))\n ])\n ])\n ])\n ])\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field is-horizontal\" }, [\n _c(\"div\", { staticClass: \"field-label is-normal\" }, [\n _c(\"label\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.t(\"Your name\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-body\" }, [\n _c(\"div\", { staticClass: \"field\" }, [\n _c(\"div\", { staticClass: \"control\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.name,\n expression: \"name\"\n }\n ],\n staticClass: \"input\",\n class: { \"is-danger\": _vm.invalid.name },\n attrs: {\n type: \"text\",\n name: \"name\",\n placeholder: _vm.t(\"Input your name\")\n },\n domProps: { value: _vm.name },\n on: {\n input: [\n function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.name = $event.target.value\n },\n function($event) {\n return _vm.resetHelper(\"name\")\n }\n ],\n blur: function($event) {\n return _vm.validate(\"name\")\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _vm.invalid.name\n ? _c(\"p\", { staticClass: \"help is-danger\" }, [\n _vm._v(_vm._s(_vm.t(\"Name is required\")))\n ])\n : _vm._e()\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field is-horizontal\" }, [\n _c(\"div\", { staticClass: \"field-label is-normal\" }, [\n _c(\"label\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.t(\"Your phone\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-body\" }, [\n _c(\"div\", { staticClass: \"field\" }, [\n _c(\"div\", { staticClass: \"control\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.phone,\n expression: \"phone\"\n }\n ],\n staticClass: \"input\",\n class: { \"is-danger\": _vm.invalid.phone },\n attrs: {\n type: \"tel\",\n name: \"phone\",\n placeholder: _vm.t(\"In international format\")\n },\n domProps: { value: _vm.phone },\n on: {\n input: [\n function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.phone = $event.target.value\n },\n function($event) {\n return _vm.resetHelper(\"phone\")\n }\n ],\n blur: function($event) {\n return _vm.validate(\"phone\")\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _vm.invalid.phone\n ? _c(\"p\", { staticClass: \"help is-danger\" }, [\n _vm._v(_vm._s(_vm.t(\"Phone is required\")))\n ])\n : _vm._e()\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field is-horizontal\" }, [\n _c(\"div\", { staticClass: \"field-label is-normal\" }, [\n _c(\"label\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.t(\"Email\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-body\" }, [\n _c(\"div\", { staticClass: \"field\" }, [\n _c(\"div\", { staticClass: \"control has-icons-left\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.email,\n expression: \"email\"\n }\n ],\n staticClass: \"input\",\n class: { \"is-danger\": _vm.invalid.email },\n attrs: {\n type: \"email\",\n name: \"email\",\n placeholder: \"you@email.com\"\n },\n domProps: { value: _vm.email },\n on: {\n input: [\n function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.email = $event.target.value\n },\n function($event) {\n return _vm.resetHelper(\"email\")\n }\n ],\n blur: function($event) {\n return _vm.validate(\"email\")\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"span\", { staticClass: \"icon is-small is-left\" }, [\n _c(\n \"svg\",\n {\n staticStyle: { fill: \"#DBDBDB\" },\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"1em\",\n viewBox: \"0 0 512 512\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"\n }\n })\n ]\n )\n ])\n ]),\n _vm._v(\" \"),\n _vm.invalid.email\n ? _c(\"p\", { staticClass: \"help is-danger\" }, [\n _vm._v(_vm._s(_vm.t(\"This email is invalid\")))\n ])\n : _vm._e()\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field is-horizontal\" }, [\n _c(\"div\", { staticClass: \"field-label is-normal\" }, [\n _c(\"label\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.t(\"Ship to\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-body\" }, [\n _c(\"div\", { staticClass: \"field is-narrow\" }, [\n _c(\"div\", { staticClass: \"control\" }, [\n _c(\"div\", { staticClass: \"select is-fullwidth\" }, [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.shipment_id,\n expression: \"shipment_id\"\n }\n ],\n attrs: { name: \"shipment_id\" },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call($event.target.options, function(o) {\n return o.selected\n })\n .map(function(o) {\n var val = \"_value\" in o ? o._value : o.value\n return val\n })\n _vm.shipment_id = $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n }\n }\n },\n _vm._l(_vm.shipMethods, function(row) {\n return _c(\n \"option\",\n { key: row.id, domProps: { value: row.id } },\n [_vm._v(_vm._s(row.name))]\n )\n }),\n 0\n )\n ])\n ])\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field is-horizontal\" }, [\n _c(\"div\", { staticClass: \"field-label is-normal\" }, [\n _c(\"label\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.t(\"Shipping address\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-body\" }, [\n _c(\"div\", { staticClass: \"field\" }, [\n _c(\"div\", { staticClass: \"control\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.address,\n expression: \"address\"\n }\n ],\n staticClass: \"textarea\",\n class: { \"is-danger\": _vm.invalid.address },\n attrs: {\n name: \"address\",\n placeholder: _vm.t(\n \"Please input shipping address carefully\"\n )\n },\n domProps: { value: _vm.address },\n on: {\n input: [\n function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.address = $event.target.value\n },\n function($event) {\n return _vm.resetHelper(\"address\")\n }\n ],\n blur: function($event) {\n return _vm.validate(\"address\")\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _vm.invalid.address\n ? _c(\"p\", { staticClass: \"help is-danger\" }, [\n _vm._v(_vm._s(_vm.t(\"Address is required\")))\n ])\n : _vm._e()\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field is-horizontal\" }, [\n _c(\"div\", { staticClass: \"field-label is-normal\" }, [\n _c(\"label\", { staticClass: \"label\" }, [\n _vm._v(_vm._s(_vm.t(\"Comment\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"field-body\" }, [\n _c(\"div\", { staticClass: \"field\" }, [\n _c(\"div\", { staticClass: \"control\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.comment,\n expression: \"comment\"\n }\n ],\n staticClass: \"textarea\",\n attrs: {\n name: \"comment\",\n placeholder: _vm.t(\"Additional information (optional)\")\n },\n domProps: { value: _vm.comment },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.comment = $event.target.value\n }\n }\n })\n ])\n ])\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\"footer\", { staticClass: \"modal-card-foot\" }, [\n _c(\n \"button\",\n {\n staticClass: \"button is-primary\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.placeOrder()\n }\n }\n },\n [_vm._v(_vm._s(_vm.t(\"Place order\")))]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"button\",\n on: {\n click: function($event) {\n _vm.visible = false\n }\n }\n },\n [_vm._v(_vm._s(_vm.t(\"Cancel\")))]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"button\",\n on: {\n click: function($event) {\n return _vm.resetForm()\n }\n }\n },\n [_vm._v(_vm._s(_vm.t(\"Reset form\")))]\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"modal\", class: { \"is-active\": _vm.orderPlaced } },\n [\n _c(\"div\", {\n staticClass: \"modal-background\",\n on: {\n click: function($event) {\n _vm.orderPlaced = false\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"modal-content\" }, [\n _c(\n \"div\",\n {\n staticClass: \"box\",\n on: {\n click: function($event) {\n _vm.orderPlaced = false\n }\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.t(\"You have placed the order successfully\")) +\n \".\"\n ),\n _c(\"br\"),\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm.t(\"Our employee will contact you as soon as possible\")\n ) +\n \".\\n \"\n )\n ]\n )\n ]),\n _vm._v(\" \"),\n _c(\"button\", {\n staticClass: \"modal-close is-large\",\n attrs: { \"aria-label\": \"close\" },\n on: {\n click: function($event) {\n _vm.orderPlaced = false\n }\n }\n })\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-50e6d3c6\", { render: render, staticRenderFns: staticRenderFns })\n }\n}"],"sourceRoot":""}