@perevorot/shop 2.0.17 → 2.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("vue");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(require("secure-ls")),o=e.defineComponent({name:"notice",props:{hash:String,isLight:Boolean,background:String},setup:function(n){var o=new t.default({isCompression:!1}),r=e.ref(o.get("notice")===n.hash);return{hidden:r,close:function(){o.set("notice",n.hash),r.value=!0}}}}),r=[e.createElementVNode("use",{"xlink:href":"#close"},null,-1)];o.render=function(n,t,o,i,l,s){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["container is-fluid extra-notice",{"is-light-text":n.isLight,"is-visible":!n.hidden}]),style:e.normalizeStyle({"background-color":n.background})},[e.renderSlot(n.$slots,"default"),(e.openBlock(),e.createElementBlock("svg",{class:"icon close",onClick:t[0]||(t[0]=function(){return n.close&&n.close.apply(n,arguments)})},r))],6)},module.exports=o;
2
+ //# sourceMappingURL=Notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Notice.js","sources":["../../../src/components/shop/Notice.vue","../../../src/components/shop/Notice.vue?vue&type=template&id=0a2ac48e&lang.js"],"sourcesContent":["<template>\n <div\n class=\"container is-fluid extra-notice\"\n v-bind:class=\"{ 'is-light-text': isLight, 'is-visible': !hidden }\"\n v-bind:style=\"{ 'background-color': background }\"\n >\n <slot></slot>\n <svg class=\"icon close\" @click=\"close\">\n <use xlink:href=\"#close\" />\n </svg>\n </div>\n</template>\n<script>\nimport { ref, defineComponent } from \"vue\";\nimport SecureLS from 'secure-ls';\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"notice\",\n props: {\n hash: String,\n isLight: Boolean,\n background: String\n },\n setup(props) {\n const ls = new SecureLS({\n isCompression: false\n });\n\n const hidden = ref(ls.get('notice') === props.hash);\n\n const close = () => {\n ls.set('notice', props.hash);\n hidden.value = true;\n };\n\n return {\n hidden,\n close,\n };\n }\n});\n</script>","<template>\n <div\n class=\"container is-fluid extra-notice\"\n v-bind:class=\"{ 'is-light-text': isLight, 'is-visible': !hidden }\"\n v-bind:style=\"{ 'background-color': background }\"\n >\n <slot></slot>\n <svg class=\"icon close\" @click=\"close\">\n <use xlink:href=\"#close\" />\n </svg>\n </div>\n</template>\n<script>\nimport { ref, defineComponent } from \"vue\";\nimport SecureLS from 'secure-ls';\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"notice\",\n props: {\n hash: String,\n isLight: Boolean,\n background: String\n },\n setup(props) {\n const ls = new SecureLS({\n isCompression: false\n });\n\n const hidden = ref(ls.get('notice') === props.hash);\n\n const close = () => {\n ls.set('notice', props.hash);\n hidden.value = true;\n };\n\n return {\n hidden,\n close,\n };\n }\n});\n</script>"],"names":["defineComponent","name","props","hash","String","isLight","Boolean","background","setup","ls","SecureLS","isCompression","hidden","ref","get","close","set","value","_createElementVNode","_createElementBlock","_ctx","style","_renderSlot","onClick"],"mappings":"0IAgB6BA,kBAAgB,CACzCC,KAAM,SACNC,MAAO,CACHC,KAAMC,OACNC,QAASC,QACTC,WAAYH,QAEhBI,eAAMN,OACIO,EAAK,IAAIC,UAAS,CACpBC,eAAe,IAGbC,EAASC,MAAIJ,EAAGK,IAAI,YAAcZ,EAAMC,YAOvC,CACHS,OAAAA,EACAG,MAPU,WACVN,EAAGO,IAAI,SAAUd,EAAMC,MACvBS,EAAOK,OAAQ,UCxBfC,yCAAgB,wEAPxBC,oDACU,mDAC2BC,wBAAwBA,YAClDC,2CAA6BD,iBAEpCE,gDACAH,kCAAW,aAAcI,sCAAOH"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("vue"),t=require("vuex"),n=require("formvuelate"),r=require("@formvuelate/plugin-vee-validate"),o=require("@perevorot/shop/dist/forms/FormTextarea"),a=require("@perevorot/shop/dist/forms/FormText"),i=require("yup");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var c=l(r),u=l(o),d=l(a),m=s(i);function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}e.markRaw(u.default),e.markRaw(d.default);var h=n.SchemaFormFactory([c.default({})]),y=e.defineComponent({name:"review",components:{SchemaForm:h},props:{id:Number},setup:function(r){var o,a=e.ref(!1),i=t.useStore(),l=e.ref(0),s=e.ref({}),c=e.ref(!1),p=e.computed((function(){return i.getters["auth/me"]})),h=e.ref(!1),y=e.ref({review:{component:u.default,label:__("shop.question.review"),model:"review"},name:{component:d.default,label:__("shop.question.name"),model:"name"}}),b=m.object().shape({review:m.string().required(__("auth.validation.required")),name:m.string().required(__("auth.validation.required"))}),E=e.ref({review:"",question:!0,name:p.value.name,id:r.id});n.useSchemaForm(E);var g=function(){c.value=!1,h.value=!1,document.documentElement.classList.remove("is-modal-open")};return window.addEventListener("keyup",(function(e){c.value&&"Escape"===e.key&&g()})),document.addEventListener("DOMContentLoaded",(function(){c.value&&document.documentElement.classList.add("is-modal-open");var e=document.getElementById("questions-show-more");e&&e.addEventListener("click",(function(){document.getElementById("questions-list").querySelectorAll(".review.is-hidden").forEach((function(t){t.classList.remove("is-hidden"),e.remove()}))}))}),!1),v(o={loading:a,modal:c,schema:y,validation:b,add:function(){c.value=!0,document.documentElement.classList.add("is-modal-open")},cancel:g},"schema",y),v(o,"onSubmit",(function(){a.value=!0,$http.post($ziggy("api.review"),E.value).then((function(){h.value=!0,E.value={review:"",question:!0,name:p.value.name,id:r.id}})).catch((function(e){if(s.value={},e.response.data&&e.response.data.errors){for(var t=0,n=Object.entries(e.response.data.errors);t<n.length;t++){var r=f(n[t],2),o=r[0],a=r[1];a[0]&&(s.value[o]=a[0])}l.value++}})).finally((function(){a.value=!1}))})),v(o,"errors",s),v(o,"key",l),v(o,"model",E),v(o,"thanks",h),o}}),b={class:"shop-reviews"},E={class:"modal-content"},g=[e.createElementVNode("svg",{class:"icon close"},[e.createElementVNode("use",{"xlink:href":"#close"})],-1)],w={class:"box"},k={class:"title"},q={class:"shop-reviews-form"},_={class:"field"},S={class:"columns is-vcentered"},N={class:"column"},V={class:"column has-text-right"},C={class:"shop-reviews-thanks"},j=["innerHTML"],O={class:"mt-3"};y.render=function(t,n,r,o,a,i){var l=e.resolveComponent("SchemaForm");return e.openBlock(),e.createElementBlock("div",b,[e.createElementVNode("button",{class:"button review-add",onClick:n[0]||(n[0]=function(){return t.add&&t.add.apply(t,arguments)})},e.toDisplayString(t.__("shop.question.add")),1),e.createElementVNode("div",{class:e.normalizeClass(["modal",{"is-active":t.modal}])},[e.createElementVNode("div",{class:"modal-background",onClick:n[1]||(n[1]=function(){return t.cancel&&t.cancel.apply(t,arguments)})}),e.createElementVNode("div",E,[e.createElementVNode("button",{class:"modal-close is-large",onClick:n[2]||(n[2]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},g),e.createElementVNode("div",w,[e.createElementVNode("div",k,e.toDisplayString(t.__("shop.question.title")),1),e.withDirectives(e.createElementVNode("div",q,[(e.openBlock(),e.createBlock(l,{schemaRowClasses:"field",schema:t.schema,"validation-schema":t.validation,"initial-errors":t.errors,key:t.key,onSubmit:t.onSubmit},{afterForm:e.withCtx((function(){return[e.createElementVNode("div",_,[e.createElementVNode("div",S,[e.createElementVNode("div",N,[e.createElementVNode("button",{class:e.normalizeClass(["button is-link",{"is-loading":t.loading}]),type:"submit"},e.toDisplayString(t.__("shop.question.save")),3)]),e.createElementVNode("div",V,[e.createElementVNode("button",{class:"button",onClick:n[3]||(n[3]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},e.toDisplayString(t.__("shop.question.cancel")),1)])])])]})),_:1},8,["schema","validation-schema","initial-errors","onSubmit"]))],512),[[e.vShow,!t.thanks]]),e.withDirectives(e.createElementVNode("div",C,[e.createElementVNode("div",{class:"message",innerHTML:t.__("shop.question.thanks")},null,8,j),e.createElementVNode("div",O,[e.createElementVNode("button",{class:"button",onClick:n[4]||(n[4]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},e.toDisplayString(t.__("shop.question.continue")),1)])],512),[[e.vShow,t.thanks]])])])],2)])},module.exports=y;
2
+ //# sourceMappingURL=Question.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Question.js","sources":["../../../../src/components/shop/reviews/Question.vue","../../../../src/components/shop/reviews/Question.vue?vue&type=template&id=67534875&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.question.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.question.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.question.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.question.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.question.thanks')\"></div>\n <div class=\"mt-3\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.question.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = ref(false);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n review: {\n component: FormTextarea,\n label: __(\"shop.question.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.question.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n modal.value = true;\n\n document.documentElement.classList.add('is-modal-open');\n };\n\n const cancel = () => {\n modal.value = false;\n thanks.value = false;\n\n document.documentElement.classList.remove('is-modal-open');\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('questions-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('questions-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.question.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.question.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.question.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.question.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.question.thanks')\"></div>\n <div class=\"mt-3\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.question.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = ref(false);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n review: {\n component: FormTextarea,\n label: __(\"shop.question.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.question.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n modal.value = true;\n\n document.documentElement.classList.add('is-modal-open');\n };\n\n const cancel = () => {\n modal.value = false;\n thanks.value = false;\n\n document.documentElement.classList.remove('is-modal-open');\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('questions-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('questions-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>"],"names":["markRaw","FormTextarea","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","defineComponent","name","components","props","id","Number","setup","loading","ref","store","useStore","key","errors","modal","user","computed","getters","thanks","schema","review","component","label","__","model","validation","yup","object","shape","string","required","question","value","useSchemaForm","cancel","document","documentElement","classList","remove","window","addEventListener","e","add","showMore","getElementById","querySelectorAll","forEach","$http","post","$ziggy","then","error","response","data","Object","entries","field","messages","_createElementVNode","_createElementBlock","_hoisted_1","onClick","_ctx","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_7","_createBlock","schemaRowClasses","onSubmit","afterForm","_hoisted_8","_hoisted_9","_hoisted_10","type","_hoisted_11","_hoisted_12","innerHTML","_hoisted_14"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("vue"),t=require("vuex"),r=require("formvuelate"),n=require("@formvuelate/plugin-vee-validate"),a=require("@perevorot/shop/dist/forms/FormTextarea"),o=require("@perevorot/shop/dist/forms/FormText"),i=require("@perevorot/shop/dist/forms/FormRating"),l=require("yup");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=c(n),d=c(a),m=c(o),v=c(i),f=u(l);function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,a,o=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){l=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return y(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}e.markRaw(v.default),e.markRaw(d.default),e.markRaw(m.default);var w=r.SchemaFormFactory([s.default({})]),b=e.defineComponent({name:"review",components:{SchemaForm:w},props:{id:Number},setup:function(n){var a,o=e.ref(!1),i=t.useStore(),l=e.ref(0),c=e.ref({}),u=e.computed((function(){return i.getters["review/modal"]})),s=e.computed((function(){return i.getters["auth/is"]})),y=e.computed((function(){return i.getters["auth/me"]})),w=e.ref(!1),b=e.ref({review:{component:d.default,label:__("shop.review.review"),model:"review"},rating:{component:v.default,model:"rating"},name:{component:m.default,label:__("shop.review.name"),model:"name"}}),g=f.object().shape({review:f.string().required(__("auth.validation.required")),rating:f.number().min(1,__("auth.validation.required")).required(__("auth.validation.required")),name:f.string().required(__("auth.validation.required"))}),E=e.ref({review:"",rating:0,name:y.value.name,id:n.id});r.useSchemaForm(E);var k=function(){i.commit("review/modal",!1),w.value=!1};return window.addEventListener("keyup",(function(e){u.value&&"Escape"===e.key&&k()})),document.addEventListener("DOMContentLoaded",(function(){u.value&&document.documentElement.classList.add("is-modal-open");var e=document.getElementById("reviews-show-more");e&&e.addEventListener("click",(function(){document.getElementById("reviews-list").querySelectorAll(".review.is-hidden").forEach((function(t){t.classList.remove("is-hidden"),e.remove()}))}))}),!1),p(a={loading:o,modal:u,schema:b,validation:g,add:function(){s.value?i.commit("review/modal",!0):i.commit("auth/modal","login")},cancel:k},"schema",b),p(a,"onSubmit",(function(){o.value=!0,$http.post($ziggy("api.review"),E.value).then((function(){w.value=!0,E.value={review:"",rating:0,name:y.value.name,id:n.id}})).catch((function(e){if(c.value={},e.response.data&&e.response.data.errors){for(var t=0,r=Object.entries(e.response.data.errors);t<r.length;t++){var n=h(r[t],2),a=n[0],o=n[1];o[0]&&(c.value[a]=o[0])}l.value++}})).finally((function(){o.value=!1}))})),p(a,"errors",c),p(a,"key",l),p(a,"model",E),p(a,"thanks",w),a}}),g={class:"shop-reviews"},E={class:"modal-content"},k=[e.createElementVNode("svg",{class:"icon close"},[e.createElementVNode("use",{"xlink:href":"#close"})],-1)],_={class:"box"},S={class:"title"},N={class:"shop-reviews-form"},V={class:"field"},q={class:"columns is-vcentered"},C={class:"column"},j={class:"column has-text-right"},O={class:"shop-reviews-thanks"},x=["innerHTML"],D={class:"mt-3"};b.render=function(t,r,n,a,o,i){var l=e.resolveComponent("SchemaForm");return e.openBlock(),e.createElementBlock("div",g,[e.createElementVNode("button",{class:"button review-add",onClick:r[0]||(r[0]=function(){return t.add&&t.add.apply(t,arguments)})},e.toDisplayString(t.__("shop.review.add")),1),e.createElementVNode("div",{class:e.normalizeClass(["modal",{"is-active":t.modal}])},[e.createElementVNode("div",{class:"modal-background",onClick:r[1]||(r[1]=function(){return t.cancel&&t.cancel.apply(t,arguments)})}),e.createElementVNode("div",E,[e.createElementVNode("button",{class:"modal-close is-large",onClick:r[2]||(r[2]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},k),e.createElementVNode("div",_,[e.createElementVNode("div",S,e.toDisplayString(t.__("shop.review.title")),1),e.withDirectives(e.createElementVNode("div",N,[(e.openBlock(),e.createBlock(l,{schemaRowClasses:"field",schema:t.schema,"validation-schema":t.validation,"initial-errors":t.errors,key:t.key,onSubmit:t.onSubmit},{afterForm:e.withCtx((function(){return[e.createElementVNode("div",V,[e.createElementVNode("div",q,[e.createElementVNode("div",C,[e.createElementVNode("button",{class:e.normalizeClass(["button is-link",{"is-loading":t.loading}]),type:"submit"},e.toDisplayString(t.__("shop.review.save")),3)]),e.createElementVNode("div",j,[e.createElementVNode("button",{class:"button",onClick:r[3]||(r[3]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},e.toDisplayString(t.__("shop.review.cancel")),1)])])])]})),_:1},8,["schema","validation-schema","initial-errors","onSubmit"]))],512),[[e.vShow,!t.thanks]]),e.withDirectives(e.createElementVNode("div",O,[e.createElementVNode("div",{class:"message",innerHTML:t.__("shop.review.thanks")},null,8,x),e.createElementVNode("div",D,[e.createElementVNode("button",{class:"button",onClick:r[4]||(r[4]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},e.toDisplayString(t.__("shop.review.continue")),1)])],512),[[e.vShow,t.thanks]])])])],2)])},module.exports=b;
1
+ "use strict";var e=require("vue"),t=require("vuex"),r=require("formvuelate"),n=require("@formvuelate/plugin-vee-validate"),a=require("@perevorot/shop/dist/forms/FormTextarea"),o=require("@perevorot/shop/dist/forms/FormText"),i=require("@perevorot/shop/dist/forms/FormRating"),l=require("yup");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=c(n),d=c(a),m=c(o),v=c(i),f=u(l);function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,a,o=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){l=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return y(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}e.markRaw(v.default),e.markRaw(d.default),e.markRaw(m.default);var w=r.SchemaFormFactory([s.default({})]),b=e.defineComponent({name:"review",components:{SchemaForm:w},props:{id:Number},setup:function(n){var a,o=e.ref(!1),i=t.useStore(),l=e.ref(0),c=e.ref({}),u=e.computed((function(){return i.getters["review/modal"]})),s=e.computed((function(){return i.getters["auth/is"]})),y=e.computed((function(){return i.getters["auth/me"]})),w=e.ref(!1),b=e.ref({rating:{component:v.default,model:"rating"},review:{component:d.default,label:__("shop.review.review"),model:"review"},name:{component:m.default,label:__("shop.review.name"),model:"name"}}),g=f.object().shape({review:f.string().required(__("auth.validation.required")),rating:f.number().min(1,__("auth.validation.required")).required(__("auth.validation.required")),name:f.string().required(__("auth.validation.required"))}),E=e.ref({review:"",rating:0,name:y.value.name,id:n.id});r.useSchemaForm(E);var k=function(){i.commit("review/modal",!1),w.value=!1};return window.addEventListener("keyup",(function(e){u.value&&"Escape"===e.key&&k()})),document.addEventListener("DOMContentLoaded",(function(){u.value&&document.documentElement.classList.add("is-modal-open");var e=document.getElementById("reviews-show-more");e&&e.addEventListener("click",(function(){document.getElementById("reviews-list").querySelectorAll(".review.is-hidden").forEach((function(t){t.classList.remove("is-hidden"),e.remove()}))}))}),!1),p(a={loading:o,modal:u,schema:b,validation:g,add:function(){s.value?i.commit("review/modal",!0):i.commit("auth/modal","login")},cancel:k},"schema",b),p(a,"onSubmit",(function(){o.value=!0,$http.post($ziggy("api.review"),E.value).then((function(){w.value=!0,E.value={review:"",rating:0,name:y.value.name,id:n.id}})).catch((function(e){if(c.value={},e.response.data&&e.response.data.errors){for(var t=0,r=Object.entries(e.response.data.errors);t<r.length;t++){var n=h(r[t],2),a=n[0],o=n[1];o[0]&&(c.value[a]=o[0])}l.value++}})).finally((function(){o.value=!1}))})),p(a,"errors",c),p(a,"key",l),p(a,"model",E),p(a,"thanks",w),a}}),g={class:"shop-reviews"},E={class:"modal-content"},k=[e.createElementVNode("svg",{class:"icon close"},[e.createElementVNode("use",{"xlink:href":"#close"})],-1)],_={class:"box"},S={class:"title"},N={class:"shop-reviews-form"},V={class:"field"},q={class:"columns is-vcentered"},C={class:"column"},j={class:"column has-text-right"},O={class:"shop-reviews-thanks"},x=["innerHTML"],D={class:"mt-3"};b.render=function(t,r,n,a,o,i){var l=e.resolveComponent("SchemaForm");return e.openBlock(),e.createElementBlock("div",g,[e.createElementVNode("button",{class:"button review-add",onClick:r[0]||(r[0]=function(){return t.add&&t.add.apply(t,arguments)})},e.toDisplayString(t.__("shop.review.add")),1),e.createElementVNode("div",{class:e.normalizeClass(["modal",{"is-active":t.modal}])},[e.createElementVNode("div",{class:"modal-background",onClick:r[1]||(r[1]=function(){return t.cancel&&t.cancel.apply(t,arguments)})}),e.createElementVNode("div",E,[e.createElementVNode("button",{class:"modal-close is-large",onClick:r[2]||(r[2]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},k),e.createElementVNode("div",_,[e.createElementVNode("div",S,e.toDisplayString(t.__("shop.review.title")),1),e.withDirectives(e.createElementVNode("div",N,[(e.openBlock(),e.createBlock(l,{schemaRowClasses:"field",schema:t.schema,"validation-schema":t.validation,"initial-errors":t.errors,key:t.key,onSubmit:t.onSubmit},{afterForm:e.withCtx((function(){return[e.createElementVNode("div",V,[e.createElementVNode("div",q,[e.createElementVNode("div",C,[e.createElementVNode("button",{class:e.normalizeClass(["button is-link",{"is-loading":t.loading}]),type:"submit"},e.toDisplayString(t.__("shop.review.save")),3)]),e.createElementVNode("div",j,[e.createElementVNode("button",{class:"button",onClick:r[3]||(r[3]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},e.toDisplayString(t.__("shop.review.cancel")),1)])])])]})),_:1},8,["schema","validation-schema","initial-errors","onSubmit"]))],512),[[e.vShow,!t.thanks]]),e.withDirectives(e.createElementVNode("div",O,[e.createElementVNode("div",{class:"message",innerHTML:t.__("shop.review.thanks")},null,8,x),e.createElementVNode("div",D,[e.createElementVNode("button",{class:"button",onClick:r[4]||(r[4]=function(){return t.cancel&&t.cancel.apply(t,arguments)})},e.toDisplayString(t.__("shop.review.continue")),1)])],512),[[e.vShow,t.thanks]])])])],2)])},module.exports=b;
2
2
  //# sourceMappingURL=Review.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Review.js","sources":["../../../../src/components/shop/reviews/Review.vue","../../../../src/components/shop/reviews/Review.vue?vue&type=template&id=1a2b3478&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.review.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.review.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.review.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.review.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.review.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.review.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport FormRating from \"@perevorot/shop/dist/forms/FormRating\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormRating);\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = computed(() => store.getters[\"review/modal\"]);\n const auth = computed(() => store.getters[\"auth/is\"]);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n review: {\n component: FormTextarea,\n label: __(\"shop.review.review\"),\n model: \"review\",\n },\n rating: {\n component: FormRating,\n model: \"rating\",\n },\n name: {\n component: FormText,\n label: __(\"shop.review.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n rating: yup\n .number()\n .min(1, __(\"auth.validation.required\"))\n .required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n store.commit(\"review/modal\", true);\n }\n };\n\n const cancel = () => {\n store.commit(\"review/modal\", false);\n thanks.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('reviews-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('reviews-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.review.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.review.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.review.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.review.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.review.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.review.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport FormRating from \"@perevorot/shop/dist/forms/FormRating\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormRating);\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = computed(() => store.getters[\"review/modal\"]);\n const auth = computed(() => store.getters[\"auth/is\"]);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n review: {\n component: FormTextarea,\n label: __(\"shop.review.review\"),\n model: \"review\",\n },\n rating: {\n component: FormRating,\n model: \"rating\",\n },\n name: {\n component: FormText,\n label: __(\"shop.review.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n rating: yup\n .number()\n .min(1, __(\"auth.validation.required\"))\n .required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n store.commit(\"review/modal\", true);\n }\n };\n\n const cancel = () => {\n store.commit(\"review/modal\", false);\n thanks.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('reviews-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('reviews-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>"],"names":["markRaw","FormRating","FormTextarea","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","defineComponent","name","components","props","id","Number","setup","loading","ref","store","useStore","key","errors","modal","computed","getters","auth","user","thanks","schema","review","component","label","__","model","rating","validation","yup","object","shape","string","required","number","min","value","useSchemaForm","cancel","commit","window","addEventListener","e","document","documentElement","classList","add","showMore","getElementById","querySelectorAll","forEach","remove","$http","post","$ziggy","then","error","response","data","Object","entries","field","messages","_createElementVNode","_createElementBlock","_hoisted_1","onClick","_ctx","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_7","_createBlock","schemaRowClasses","onSubmit","afterForm","_hoisted_8","_hoisted_9","_hoisted_10","type","_hoisted_11","_hoisted_12","innerHTML","_hoisted_14"],"mappings":"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"}
1
+ {"version":3,"file":"Review.js","sources":["../../../../src/components/shop/reviews/Review.vue","../../../../src/components/shop/reviews/Review.vue?vue&type=template&id=3317de44&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.review.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.review.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.review.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.review.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.review.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.review.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport FormRating from \"@perevorot/shop/dist/forms/FormRating\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormRating);\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = computed(() => store.getters[\"review/modal\"]);\n const auth = computed(() => store.getters[\"auth/is\"]);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n rating: {\n component: FormRating,\n model: \"rating\",\n },\n review: {\n component: FormTextarea,\n label: __(\"shop.review.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.review.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n rating: yup\n .number()\n .min(1, __(\"auth.validation.required\"))\n .required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n store.commit(\"review/modal\", true);\n }\n };\n\n const cancel = () => {\n store.commit(\"review/modal\", false);\n thanks.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('reviews-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('reviews-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.review.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.review.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.review.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.review.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.review.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.review.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport FormRating from \"@perevorot/shop/dist/forms/FormRating\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormRating);\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = computed(() => store.getters[\"review/modal\"]);\n const auth = computed(() => store.getters[\"auth/is\"]);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n rating: {\n component: FormRating,\n model: \"rating\",\n },\n review: {\n component: FormTextarea,\n label: __(\"shop.review.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.review.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n rating: yup\n .number()\n .min(1, __(\"auth.validation.required\"))\n .required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n store.commit(\"review/modal\", true);\n }\n };\n\n const cancel = () => {\n store.commit(\"review/modal\", false);\n thanks.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('reviews-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('reviews-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>"],"names":["markRaw","FormRating","FormTextarea","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","defineComponent","name","components","props","id","Number","setup","loading","ref","store","useStore","key","errors","modal","computed","getters","auth","user","thanks","schema","rating","component","model","review","label","__","validation","yup","object","shape","string","required","number","min","value","useSchemaForm","cancel","commit","window","addEventListener","e","document","documentElement","classList","add","showMore","getElementById","querySelectorAll","forEach","remove","$http","post","$ziggy","then","error","response","data","Object","entries","field","messages","_createElementVNode","_createElementBlock","_hoisted_1","onClick","_ctx","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_7","_createBlock","schemaRowClasses","onSubmit","afterForm","_hoisted_8","_hoisted_9","_hoisted_10","type","_hoisted_11","_hoisted_12","innerHTML","_hoisted_14"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("vue"),r=e.defineComponent({name:"viewer",props:{slug:String,code:String,brand:String,category:String},setup:function(r){var n=e.ref(null);return $http.post($ziggy("api.viewed"),{action:"view",slug:r.slug}),e.onMounted((function(){var e=n.value.closest("[shop-product]");e.querySelector("[shop-product-name]").textContent,e.querySelector("[shop-product-price]").childNodes[0].nodeValue.replace(/ /g,""),r.code,r.brand,r.category,window.dataLayer&&(window.dataLayer.push({ecommerce:null}),window.dataLayer.push())})),{viewer:n}}}),n={class:"is-hidden",ref:"viewer"};r.render=function(r,t,o,a,u,i){return e.openBlock(),e.createElementBlock("span",n,null,512)},module.exports=r;
1
+ "use strict";var e=require("vue"),r=e.defineComponent({name:"viewer",props:{slug:String,code:String,brand:String,category:String},setup:function(r){var t=e.ref(null);return $http.post($ziggy("api.viewed"),{action:"view",slug:r.slug}),e.onMounted((function(){var e=t.value.closest("[shop-product]"),o=e.querySelector("[shop-product-name]").textContent,n=e.querySelector("[shop-product-price]").childNodes[0].nodeValue.replace(/ /g,""),c={ecommerce:{detail:{products:[{name:o,id:r.code,price:n}]}}};r.brand&&(c.ecommerce.detail.products[0].brand=r.brand),r.category&&(c.ecommerce.detail.products[0].category=r.category),window.dataLayer&&(window.dataLayer.push({ecommerce:null}),window.dataLayer.push(c))})),{viewer:t}}}),t={class:"is-hidden",ref:"viewer"};r.render=function(r,o,n,c,a,d){return e.openBlock(),e.createElementBlock("span",t,null,512)},module.exports=r;
2
2
  //# sourceMappingURL=Viewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Viewer.js","sources":["../../../../src/components/shop/viewed/Viewer.vue","../../../../src/components/shop/viewed/Viewer.vue?vue&type=template&id=7b7626a7&lang.js"],"sourcesContent":["<template>\n <span class=\"is-hidden\" ref=\"viewer\"></span>\n</template>\n<script>\nimport { ref, onMounted, defineComponent } from \"vue\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"viewer\",\n props: {\n slug: String,\n code: String,\n brand: String,\n category: String,\n },\n setup(props) {\n const viewer = ref(null);\n\n $http.post($ziggy(\"api.viewed\"), {\n action: \"view\",\n slug: props.slug,\n });\n\n onMounted(() => {\n const product = viewer.value.closest(\"[shop-product]\");\n const name = product.querySelector(\"[shop-product-name]\").textContent;\n const price = product.querySelector(\"[shop-product-price]\").childNodes[0].nodeValue.replace(/ /g, \"\");\n const code = props.code;\n\n let object = {\n \"ecommerce\": {\n \"detail\": {\n \"products\": [{\n \"name\": name,\n \"id\": code,\n \"price\": price,\n }]\n }\n }\n };\n\n if (props.brand) {\n object.ecommerce.detail.products[0].brand = props.brand;\n }\n\n if (props.category) {\n object.ecommerce.detail.products[0].category = props.category;\n };\n\n if (window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push();\n }\n });\n\n return {\n viewer\n }\n },\n});\n</script>","<template>\n <span class=\"is-hidden\" ref=\"viewer\"></span>\n</template>\n<script>\nimport { ref, onMounted, defineComponent } from \"vue\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"viewer\",\n props: {\n slug: String,\n code: String,\n brand: String,\n category: String,\n },\n setup(props) {\n const viewer = ref(null);\n\n $http.post($ziggy(\"api.viewed\"), {\n action: \"view\",\n slug: props.slug,\n });\n\n onMounted(() => {\n const product = viewer.value.closest(\"[shop-product]\");\n const name = product.querySelector(\"[shop-product-name]\").textContent;\n const price = product.querySelector(\"[shop-product-price]\").childNodes[0].nodeValue.replace(/ /g, \"\");\n const code = props.code;\n\n let object = {\n \"ecommerce\": {\n \"detail\": {\n \"products\": [{\n \"name\": name,\n \"id\": code,\n \"price\": price,\n }]\n }\n }\n };\n\n if (props.brand) {\n object.ecommerce.detail.products[0].brand = props.brand;\n }\n\n if (props.category) {\n object.ecommerce.detail.products[0].category = props.category;\n };\n\n if (window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push();\n }\n });\n\n return {\n viewer\n }\n },\n});\n</script>"],"names":["defineComponent","name","props","slug","String","code","brand","category","setup","viewer","ref","$http","post","$ziggy","action","onMounted","product","value","closest","querySelector","textContent","childNodes","nodeValue","replace","window","dataLayer","push","ecommerce","_createElementBlock","_hoisted_1"],"mappings":"oCAM6BA,kBAAgB,CACzCC,KAAM,SACNC,MAAO,CACHC,KAAMC,OACNC,KAAMD,OACNE,MAAOF,OACPG,SAAUH,QAEdI,eAAMN,OACIO,EAASC,MAAI,aAEnBC,MAAMC,KAAKC,OAAO,cAAe,CAC7BC,OAAQ,OACRX,KAAMD,EAAMC,OAGhBY,aAAU,eACAC,EAAUP,EAAOQ,MAAMC,QAAQ,kBACxBF,EAAQG,cAAc,uBAAuBC,YAC5CJ,EAAQG,cAAc,wBAAwBE,WAAW,GAAGC,UAAUC,QAAQ,KAAM,IACrFrB,EAAMG,KAcfH,EAAMI,MAINJ,EAAMK,SAINiB,OAAOC,YACPD,OAAOC,UAAUC,KAAK,CAClBC,UAAW,OAGfH,OAAOC,UAAUC,WAIlB,CACHjB,OAAAA,eCzDI,YAAYC,IAAI,8DAA5BkB,4BAAAC"}
1
+ {"version":3,"file":"Viewer.js","sources":["../../../../src/components/shop/viewed/Viewer.vue","../../../../src/components/shop/viewed/Viewer.vue?vue&type=template&id=3c9ae826&lang.js"],"sourcesContent":["<template>\n <span class=\"is-hidden\" ref=\"viewer\"></span>\n</template>\n<script>\nimport { ref, onMounted, defineComponent } from \"vue\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"viewer\",\n props: {\n slug: String,\n code: String,\n brand: String,\n category: String,\n },\n setup(props) {\n const viewer = ref(null);\n\n $http.post($ziggy(\"api.viewed\"), {\n action: \"view\",\n slug: props.slug,\n });\n\n onMounted(() => {\n const product = viewer.value.closest(\"[shop-product]\");\n const name = product.querySelector(\"[shop-product-name]\").textContent;\n const price = product.querySelector(\"[shop-product-price]\").childNodes[0].nodeValue.replace(/ /g, \"\");\n const code = props.code;\n\n let object = {\n \"ecommerce\": {\n \"detail\": {\n \"products\": [{\n \"name\": name,\n \"id\": code,\n \"price\": price,\n }]\n }\n }\n };\n\n if (props.brand) {\n object.ecommerce.detail.products[0].brand = props.brand;\n }\n\n if (props.category) {\n object.ecommerce.detail.products[0].category = props.category;\n };\n\n if (window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n });\n\n return {\n viewer\n }\n },\n});\n</script>","<template>\n <span class=\"is-hidden\" ref=\"viewer\"></span>\n</template>\n<script>\nimport { ref, onMounted, defineComponent } from \"vue\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"viewer\",\n props: {\n slug: String,\n code: String,\n brand: String,\n category: String,\n },\n setup(props) {\n const viewer = ref(null);\n\n $http.post($ziggy(\"api.viewed\"), {\n action: \"view\",\n slug: props.slug,\n });\n\n onMounted(() => {\n const product = viewer.value.closest(\"[shop-product]\");\n const name = product.querySelector(\"[shop-product-name]\").textContent;\n const price = product.querySelector(\"[shop-product-price]\").childNodes[0].nodeValue.replace(/ /g, \"\");\n const code = props.code;\n\n let object = {\n \"ecommerce\": {\n \"detail\": {\n \"products\": [{\n \"name\": name,\n \"id\": code,\n \"price\": price,\n }]\n }\n }\n };\n\n if (props.brand) {\n object.ecommerce.detail.products[0].brand = props.brand;\n }\n\n if (props.category) {\n object.ecommerce.detail.products[0].category = props.category;\n };\n\n if (window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n });\n\n return {\n viewer\n }\n },\n});\n</script>"],"names":["defineComponent","name","props","slug","String","code","brand","category","setup","viewer","ref","$http","post","$ziggy","action","onMounted","product","value","closest","querySelector","textContent","price","childNodes","nodeValue","replace","object","ecommerce","detail","products","window","dataLayer","push","_createElementBlock","_hoisted_1"],"mappings":"oCAM6BA,kBAAgB,CACzCC,KAAM,SACNC,MAAO,CACHC,KAAMC,OACNC,KAAMD,OACNE,MAAOF,OACPG,SAAUH,QAEdI,eAAMN,OACIO,EAASC,MAAI,aAEnBC,MAAMC,KAAKC,OAAO,cAAe,CAC7BC,OAAQ,OACRX,KAAMD,EAAMC,OAGhBY,aAAU,eACAC,EAAUP,EAAOQ,MAAMC,QAAQ,kBAC/BjB,EAAOe,EAAQG,cAAc,uBAAuBC,YACpDC,EAAQL,EAAQG,cAAc,wBAAwBG,WAAW,GAAGC,UAAUC,QAAQ,KAAM,IAG9FC,EAAS,WACI,QACC,UACM,CAAC,MACDxB,KANXC,EAAMG,WAQMgB,OAMrBnB,EAAMI,QACNmB,EAAOC,UAAUC,OAAOC,SAAS,GAAGtB,MAAQJ,EAAMI,OAGlDJ,EAAMK,WACNkB,EAAOC,UAAUC,OAAOC,SAAS,GAAGrB,SAAWL,EAAMK,UAGrDsB,OAAOC,YACPD,OAAOC,UAAUC,KAAK,CAClBL,UAAW,OAGfG,OAAOC,UAAUC,KAAKN,OAIvB,CACHhB,OAAAA,eCzDI,YAAYC,IAAI,8DAA5BsB,4BAAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perevorot/shop",
3
- "version": "2.0.17",
3
+ "version": "2.0.21",
4
4
  "description": "",
5
5
  "files": [
6
6
  "dist/*"