@ozdao/martyrs 0.2.453 → 0.2.455
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.
- package/dist/{Media-BsgJlo-X.js → Media-1oukRVfv.js} +1 -1
- package/dist/{Media-CxRfrG2S.mjs → Media-q-XJSM_H.mjs} +3 -3
- package/dist/builder.js +5 -0
- package/dist/builder.mjs +5 -0
- package/dist/{main-Zocv7IVl.js → main-C7jGMDJC.js} +6 -6
- package/dist/{main-7FA_ai95.mjs → main-yXkgrjj8.mjs} +120 -133
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs +2 -2
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +2 -2
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.cjs +1 -1
- package/dist/martyrs/src/components/EmptyState/EmptyState.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.cjs +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.js.map +1 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs +0 -8
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.js +0 -8
- package/dist/martyrs/src/components/Popup/Popup.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs +229 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.js +229 -0
- package/dist/martyrs/src/components/Slider/Slider.native.vue.js.map +1 -0
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +29 -17
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +29 -17
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -22
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +4 -25
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +50 -132
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +66 -148
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +3 -33
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +3 -33
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs +98 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js +98 -0
- package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js.map +1 -0
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +2 -4
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -4
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs +8 -7
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js +8 -7
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs +190 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +190 -0
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/events/router/events.cjs +15 -0
- package/dist/martyrs/src/modules/events/router/events.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/router/events.js +15 -0
- package/dist/martyrs/src/modules/events/router/events.js.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.cjs +2 -0
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +2 -0
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.cjs +4 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js +3 -0
- package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -4
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +0 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs +43 -0
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js +43 -0
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs +53 -0
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js +53 -0
- package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +0 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +0 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +5 -6
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +5 -6
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +61 -69
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +62 -70
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.cjs +0 -1
- package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.js +0 -1
- package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +0 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +0 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/organizations.server.js +0 -1
- package/dist/organizations.server.mjs +0 -1
- package/dist/products.server.js +5 -0
- package/dist/products.server.mjs +5 -0
- package/dist/style.css +93 -6
- package/package.json +1 -1
- package/src/builder/rspack/rspack.config.client.js +5 -0
- package/src/components/DatePicker/DatePicker.vue +1 -1
- package/src/components/EmptyState/EmptyState.vue +1 -1
- package/src/components/Media/Media.vue +1 -1
- package/src/components/Popup/Popup.vue +2 -2
- package/src/components/Slider/Slider.native.vue +313 -0
- package/src/modules/events/components/blocks/CardEvent.vue +21 -7
- package/src/modules/events/components/pages/Event.vue +0 -20
- package/src/modules/events/components/pages/Events.vue +91 -141
- package/src/modules/events/components/pages/EventsBackoffice.vue +5 -3
- package/src/modules/events/components/pages/EventsSearch.vue +122 -0
- package/src/modules/events/components/sections/EventsHot.vue +3 -5
- package/src/modules/events/components/sections/FeaturedEvents.vue +44 -12
- package/src/modules/events/components/sections/List.vue +3 -3
- package/src/modules/events/components/sections/SelectDate.vue +217 -0
- package/src/modules/events/router/events.js +12 -0
- package/src/modules/globals/globals.client.js +5 -2
- package/src/modules/globals/views/components/layouts/App.vue +7 -1
- package/src/modules/globals/views/components/layouts/Client.vue +0 -3
- package/src/modules/globals/views/plugins/AlertDialog.vue +35 -0
- package/src/modules/globals/views/plugins/alert.plugin.js +65 -0
- package/src/modules/organizations/policies/organizations.policies.js +0 -1
- package/src/modules/products/components/elements/Price.vue +3 -4
- package/src/modules/products/components/pages/Product.old.vue +201 -0
- package/src/modules/products/components/pages/Product.vue +57 -38
- package/src/modules/products/controllers/products.controller.js +7 -0
- package/src/modules/products/store/products.js +0 -1
- package/src/styles/base/all.scss +1 -0
- package/src/styles/typography.scss +22 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"h-100 w-100 mobile:pd-thin pd-big bg-white\">\n <div class=\"cols-2-1_2 w-100 gap-medium\">\n\n <ImagesThumbnails\n :images=\"images\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <IconEdit\n v-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n @click=\"$router.push({ name: 'ProductEdit', params: { _id: product.owner.target, product: product._id } })\"\n class=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n />\n <h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n <Price :product=\"product\" size=\"big\" class=\"flex gap-micro flex-center pd-small br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n <
|
|
1
|
+
{"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"h-100 w-100 mobile:pd-thin pd-big bg-white\">\n <div class=\"cols-2-1_2 w-100 gap-medium\">\n\n <ImagesThumbnails\n :images=\"images\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <IconEdit\n v-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n @click=\"$router.push({ name: 'ProductEdit', params: { _id: product.owner.target, product: product._id } })\"\n class=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n />\n\n\n\n <h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n \n <Price :product=\"product\" size=\"big\" class=\"flex gap-micro flex-center pd-small br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n <p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 t-transp mn-b-small\">\n {{ product.description }}\n </p>\n <p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 t-transp mn-b-small\">\n {{ t('description') }}\n </p>\n\n <div class=\"cols-2 mn-b-small w-100 gap-small\">\n <div\n v-if=\"product.information.length > 0\"\n v-for=\"information in product.information\"\n class=\"w-100 pd-small radius-small bg-light product-information\"\n >\n <p class=\"t-demi\">{{ information.name }}</p>\n <p>{{ information.value }}</p>\n </div>\n </div>\n\n <p class=\"t-medium mn-b-small\">Provided by</p>\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n />\n\n\n\n <div class=\"w-max-33r\">\n <div class=\"w-max-33r\">\n\t\t <div v-if=\"product.listing === 'rent'\">\n\t\t <button @click=\"openPopup\" class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\">\n\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t <IconShopcartAdd class=\"i-semi\" />\n\t\t <span>{{ t('addtoorder') }}</span>\n\t\t </div>\n\t\t </button>\n\t\t <PopupDateSelector\n\t\t :product=\"product\"\n\t\t :isOpen=\"isPopupOpen\"\n\t\t :showFees=\"globals.state.options?.orders.showFees\"\n :feesRate=\"globals.state.options?.orders.feesRate || 0.15\"\n :showVat=\"globals.state.options?.orders.showVat\"\n :vatRate=\"globals.state.options?.orders.vatRate || 0\"\n\t\t :onConfirm=\"selectedDates => addToCart(product, selectedDates)\"\n\t\t @close=\"closePopup\"\n\t\t />\n\t\t </div>\n\t <div v-else>\n\t <Button\n\t v-if=\"product.available > 0\"\n\t :submit=\"() => addToCart(product, null)\"\n\t class=\"h-3r w-max mobile:w-100 bg-main button\"\n\t >\n\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t <IconShopcartAdd class=\"i-semi\" />\n\t <span>{{ t('addtoorder') }}</span>\n\t </div>\n\t </Button>\n\t <div\n\t v-else\n\t class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n\t >\n\t Out of Stock\n\t </div>\n\t </div>\n\t </div>\n </div>\n </div>\n </div>\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <PopularProducts class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\n\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals'\nimport * as products from '@martyrs/src/modules/products/store/products'\nimport * as categories from '@martyrs/src/modules/products/store/categories'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport PopupDateSelector from '@martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue'\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\nimport ImagesThumbnails from '@martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue'\nimport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\nimport PopularProducts from '@martyrs/src/modules/products/components/sections/PopularProducts.vue'\n\n import CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\n\nconst product = computed(() => products.state.current)\nconst images = computed(() => products.state.current.images)\n\nconst tabProduct = ref('description')\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst isPopupOpen = ref(false)\n\nfunction openPopup() {\n isPopupOpen.value = true\n}\n\nfunction closePopup() {\n isPopupOpen.value = false\n}\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n \nconst pageProduct = ref(null)\nconst orderOrganization = ref(null)\n\nproducts.state.current = null\nonMounted(async () => {\n\n emits('page-loading');\n await products.actions.read({ _id: route.params.product })\n emits('page-loaded');\n\n // route.meta.title.en = product.value.name\n // route.meta.title.ru = roduct.value.name\n\n})\n\n// onBeforeMounted\n\nfunction validateToCard(product) {\n return !(product.available > 0)\n}\n\nasync function addToCart(product, selectedDates = null) {\n try {\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization && shopcart.state.organization !== product.owner.target) {\n const result = await proxy.$alert({\n title: 'Start a new order?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Start New Order', value: true }\n ]\n })\n\n if (!result) throw error\n\n shopcart.state.organization = product.owner.target\n shopcart.state.positions = []\n }\n\n await shopcart.actions.addProductToCart(product, product.owner.target, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":["products.state","products.actions","product","shopcart.state","shopcart.actions","error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+HA,UAAM,QAAQ,SAAQ;AACP,cAAS;AACxB,UAAM,EAAE,MAAO,IAAG,mBAAkB;AAEpC,UAAM,UAAU,SAAS,MAAMA,MAAe,OAAO;AACrD,UAAM,SAAS,SAAS,MAAMA,MAAe,QAAQ,MAAM;AAExC,QAAI,aAAa;AAEpC,UAAM,OAAO;AAAA,MACX,IAAI,EAAE,YAAY,eAAe,WAAW,aAAc;AAAA,MAC1D,IAAI,EAAE,YAAY,sBAAsB,WAAW,gBAAe;AAAA,IACpE;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,EAAE,UAAU,KAAM,CAAA;AAExC,UAAM,cAAc,IAAI,KAAK;AAE7B,aAAS,YAAY;AACnB,kBAAY,QAAQ;AAAA,IACtB;AAEA,aAAS,aAAa;AACpB,kBAAY,QAAQ;AAAA,IACtB;AAEA,UAAM,QAAQ;AAEM,QAAI,IAAI;AACF,QAAI,IAAI;AAElCA,UAAe,UAAU;AACzB,cAAU,YAAY;AAEpB,YAAM,cAAc;AACpB,YAAMC,QAAiB,KAAK,EAAE,KAAK,MAAM,OAAO,QAAS,CAAA;AACzD,YAAM,aAAa;AAAA,IAKrB,CAAC;AAQD,mBAAe,UAAUC,UAAS,gBAAgB,MAAM;AACtD,UAAI;AAEF,YAAIC,QAAe,gBAAgBA,QAAe,iBAAiBD,SAAQ,MAAM,QAAQ;AACvF,gBAAM,SAAS,MAAM,MAAM,OAAO;AAAA,YAChC,OAAO;AAAA,YACP,SAAS;AAAA,YACT,SAAS;AAAA,cACP,EAAE,OAAO,UAAU,OAAO,MAAO;AAAA,cACjC,EAAE,OAAO,mBAAmB,OAAO,KAAI;AAAA,YACjD;AAAA,UACO,CAAA;AAED,cAAI,CAAC,OAAQ,OAAM;AAEnBC,kBAAe,eAAeD,SAAQ,MAAM;AAC5CC,kBAAe,YAAY,CAAA;AAAA,QACjC;AAEI,cAAMC,UAAiB,iBAAiBF,UAASA,SAAQ,MAAM,QAAQ,aAAa;AACpF,eAAO;AAAA,MACR,SAAQG,QAAO;AACd,gBAAQ,MAAM,uCAAuCA,MAAK;AAC1D,cAAMA;AAAA,MACV;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.cjs","sources":["../../../../../../src/modules/products/store/products.js"],"sourcesContent":["/////////////////////////////\n// DEPENDENCIES\n/////////////////////////////\nimport { reactive, watch, computed } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n/////////////////////////////\n// STATE\n/////////////////////////////\nconst state = reactive({\n all: [],\n current: {\n recommendation: false,\n category: [],\n status: 'unpublished',\n listing: 'sale',\n information: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n modifications: [],\n quantityDiscount: [],\n ingredients: [],\n description: ''\n },\n filter: {\n active: false,\n class: 'mobile-only',\n selected: {},\n options: [{\n title: 'Price',\n value: 'price',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' }\n ]\n }],\n },\n sort: {\n param: 'distance',\n order: 'asc',\n options: [{\n label: 'Distance',\n value: 'distance'\n },{\n label: 'Popularity',\n value: 'views'\n },{\n label: 'Products',\n value: 'numberOfProducts'\n }]\n }\n});\n\n/////////////////////////////\n// ACTIONS\n/////////////////////////////\nconst actions = {\n\n async create(product) {\n return await $axios.post(\"/api/products/create\", product).then(\n (response) => {\n set(response.data, 'current')\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async read(options = {}) {\n // query.params = options.params || {};\n \n let query = {}\n\n // Handle fetching a specific post by _id\n if (options._id) {\n query._id = options._id ;\n }\n\n // Handle fetching posts by category\n if (options.category) {\n query.category = options.category;\n }\n\n if (options.owner) {\n query.owner = options.owner;\n }\n\n if (options.count) {\n query.count = options.count\n }\n\n if (options.categories) {\n query.categories = options.categories;\n }\n\n if (options.prices) {\n query.prices = options.prices;\n }\n\n if (options.delivery) {\n query.delivery = options.delivery;\n }\n\n if (options.status) {\n query.status = options.status;\n }\n\n if (options.search) {\n query.search = options.search;\n }\n\n if (options.filters) {\n query.filters = options.filters;\n }\n\n query.sort = 'createdAt';\n \n query.skip = options.skip;\n query.limit = options.limit;\n\n try {\n const response = await $axios.get('/api/products/read', { params: query });\n \n if (options._id) {\n state.current = {...response.data[0]}; \n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error)\n return Promise.reject(error);\n }\n },\n\n async update(_id, product) {\n return await $axios.post(\"/api/products/\" + _id, product).then(\n (response) => {\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async deleteProduct(_id) {\n return await $axios.delete(\"/api/products/\" + _id).then(\n (response) => {\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async submitMood(presetMood = null) {\n return $axios.post('/api/product/recommended', {mood: presetMood}).then(\n response => {\n state.current = response.data.product\n state.current.recommendation = response.data.recommendationText\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n });\n },\n \n async fetchProducts() {\n return await $axios.get(`/api/products/read`).then(\n products => {\n state.all = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPopular() {\n return await $axios.get(`/api/products/popular`).then(\n (products) => {\n state.popular = products.data;\n return Promise.resolve(products.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPublished() {\n return await $axios.get(`/api/products`).then(\n products => {\n let publishedProduct = products.data.filter(function (product, index) {\n return product.status !== \"unpublished\";\n });\n\n state.all = publishedProduct;\n state.filtered = publishedProduct.slice();\n state.filteredPrice = state.filtered;\n\n state.filteredPrice.sort(function (l, r) {\n return l[state.sort.current] > r[state.sort.current] ? (state.sort.ascending ? 1 : -1) : l[state.sort.current] < r[state.sort.current] ? (state.sort.ascending ? -1 : 1) : 0;\n });\n\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n\n async fetchProductPopular() {\n return await $axios.get(`/api/products`).then(\n (products) => {\n state.all = products.data.slice(1, 5);\n return Promise.resolve(products.data.slice(1, 5));\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n};\n\nconst mutations = {\n resetProduct(product) {\n state.current = {\n recommendation: false,\n category: [],\n status: 'unpublished',\n information: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n modifications: [],\n quantityDiscount: [],\n ingredients: [],\n description: ''\n }\n }\n}\n\nfunction set(product,property) { \n state[property] = product\n}\n\n/////////////////////////////\n// GETTERS\n/////////////////////////////\nconst getters = {\n \n};\n\n/////////////////////////////\n// UTILS\n/////////////////////////////\n\n/////////////////////////////\n// HISTORY\n/////////////////////////////\nconst history = []\nhistory.push(state) \n\n/////////////////////////////\n// WATCH\n/////////////////////////////\nwatch(state, (newState, oldState) => {\n history.push(newState)\n})\n\n/////////////////////////////\n// Module Export\n/////////////////////////////\nexport {\n state,\n actions,\n mutations,\n getters\n}"],"names":["reactive","$axios","setError","watch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"products.cjs","sources":["../../../../../../src/modules/products/store/products.js"],"sourcesContent":["/////////////////////////////\n// DEPENDENCIES\n/////////////////////////////\nimport { reactive, watch, computed } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n/////////////////////////////\n// STATE\n/////////////////////////////\nconst state = reactive({\n all: [],\n current: {\n recommendation: false,\n category: [],\n status: 'unpublished',\n listing: 'sale',\n information: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n localization: [],\n modifications: [],\n quantityDiscount: [],\n ingredients: [],\n description: ''\n },\n filter: {\n active: false,\n class: 'mobile-only',\n selected: {},\n options: [{\n title: 'Price',\n value: 'price',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' }\n ]\n }],\n },\n sort: {\n param: 'distance',\n order: 'asc',\n options: [{\n label: 'Distance',\n value: 'distance'\n },{\n label: 'Popularity',\n value: 'views'\n },{\n label: 'Products',\n value: 'numberOfProducts'\n }]\n }\n});\n\n/////////////////////////////\n// ACTIONS\n/////////////////////////////\nconst actions = {\n\n async create(product) {\n return await $axios.post(\"/api/products/create\", product).then(\n (response) => {\n set(response.data, 'current')\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async read(options = {}) {\n // query.params = options.params || {};\n \n let query = {}\n\n // Handle fetching a specific post by _id\n if (options._id) {\n query._id = options._id ;\n }\n\n // Handle fetching posts by category\n if (options.category) {\n query.category = options.category;\n }\n\n if (options.owner) {\n query.owner = options.owner;\n }\n\n if (options.count) {\n query.count = options.count\n }\n\n if (options.categories) {\n query.categories = options.categories;\n }\n\n if (options.prices) {\n query.prices = options.prices;\n }\n\n if (options.delivery) {\n query.delivery = options.delivery;\n }\n\n if (options.status) {\n query.status = options.status;\n }\n\n if (options.search) {\n query.search = options.search;\n }\n\n if (options.filters) {\n query.filters = options.filters;\n }\n\n query.sort = 'createdAt';\n \n query.skip = options.skip;\n query.limit = options.limit;\n\n try {\n const response = await $axios.get('/api/products/read', { params: query });\n \n if (options._id) {\n state.current = {...response.data[0]}; \n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error)\n return Promise.reject(error);\n }\n },\n\n async update(_id, product) {\n return await $axios.post(\"/api/products/\" + _id, product).then(\n (response) => {\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async deleteProduct(_id) {\n return await $axios.delete(\"/api/products/\" + _id).then(\n (response) => {\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async submitMood(presetMood = null) {\n return $axios.post('/api/product/recommended', {mood: presetMood}).then(\n response => {\n state.current = response.data.product\n state.current.recommendation = response.data.recommendationText\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n });\n },\n \n async fetchProducts() {\n return await $axios.get(`/api/products/read`).then(\n products => {\n state.all = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPopular() {\n return await $axios.get(`/api/products/popular`).then(\n (products) => {\n state.popular = products.data;\n return Promise.resolve(products.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPublished() {\n return await $axios.get(`/api/products`).then(\n products => {\n let publishedProduct = products.data.filter(function (product, index) {\n return product.status !== \"unpublished\";\n });\n\n state.all = publishedProduct;\n state.filtered = publishedProduct.slice();\n state.filteredPrice = state.filtered;\n\n state.filteredPrice.sort(function (l, r) {\n return l[state.sort.current] > r[state.sort.current] ? (state.sort.ascending ? 1 : -1) : l[state.sort.current] < r[state.sort.current] ? (state.sort.ascending ? -1 : 1) : 0;\n });\n\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n\n async fetchProductPopular() {\n return await $axios.get(`/api/products`).then(\n (products) => {\n state.all = products.data.slice(1, 5);\n return Promise.resolve(products.data.slice(1, 5));\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n};\n\nconst mutations = {\n resetProduct(product) {\n state.current = {\n recommendation: false,\n category: [],\n status: 'unpublished',\n information: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n modifications: [],\n quantityDiscount: [],\n ingredients: [],\n description: ''\n }\n }\n}\n\nfunction set(product,property) { \n state[property] = product\n}\n\n/////////////////////////////\n// GETTERS\n/////////////////////////////\nconst getters = {\n \n};\n\n/////////////////////////////\n// UTILS\n/////////////////////////////\n\n/////////////////////////////\n// HISTORY\n/////////////////////////////\nconst history = []\nhistory.push(state) \n\n/////////////////////////////\n// WATCH\n/////////////////////////////\nwatch(state, (newState, oldState) => {\n history.push(newState)\n})\n\n/////////////////////////////\n// Module Export\n/////////////////////////////\nexport {\n state,\n actions,\n mutations,\n getters\n}"],"names":["reactive","$axios","setError","watch"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.js","sources":["../../../../../../src/modules/products/store/products.js"],"sourcesContent":["/////////////////////////////\n// DEPENDENCIES\n/////////////////////////////\nimport { reactive, watch, computed } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n/////////////////////////////\n// STATE\n/////////////////////////////\nconst state = reactive({\n all: [],\n current: {\n recommendation: false,\n category: [],\n status: 'unpublished',\n listing: 'sale',\n information: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n modifications: [],\n quantityDiscount: [],\n ingredients: [],\n description: ''\n },\n filter: {\n active: false,\n class: 'mobile-only',\n selected: {},\n options: [{\n title: 'Price',\n value: 'price',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' }\n ]\n }],\n },\n sort: {\n param: 'distance',\n order: 'asc',\n options: [{\n label: 'Distance',\n value: 'distance'\n },{\n label: 'Popularity',\n value: 'views'\n },{\n label: 'Products',\n value: 'numberOfProducts'\n }]\n }\n});\n\n/////////////////////////////\n// ACTIONS\n/////////////////////////////\nconst actions = {\n\n async create(product) {\n return await $axios.post(\"/api/products/create\", product).then(\n (response) => {\n set(response.data, 'current')\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async read(options = {}) {\n // query.params = options.params || {};\n \n let query = {}\n\n // Handle fetching a specific post by _id\n if (options._id) {\n query._id = options._id ;\n }\n\n // Handle fetching posts by category\n if (options.category) {\n query.category = options.category;\n }\n\n if (options.owner) {\n query.owner = options.owner;\n }\n\n if (options.count) {\n query.count = options.count\n }\n\n if (options.categories) {\n query.categories = options.categories;\n }\n\n if (options.prices) {\n query.prices = options.prices;\n }\n\n if (options.delivery) {\n query.delivery = options.delivery;\n }\n\n if (options.status) {\n query.status = options.status;\n }\n\n if (options.search) {\n query.search = options.search;\n }\n\n if (options.filters) {\n query.filters = options.filters;\n }\n\n query.sort = 'createdAt';\n \n query.skip = options.skip;\n query.limit = options.limit;\n\n try {\n const response = await $axios.get('/api/products/read', { params: query });\n \n if (options._id) {\n state.current = {...response.data[0]}; \n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error)\n return Promise.reject(error);\n }\n },\n\n async update(_id, product) {\n return await $axios.post(\"/api/products/\" + _id, product).then(\n (response) => {\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async deleteProduct(_id) {\n return await $axios.delete(\"/api/products/\" + _id).then(\n (response) => {\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async submitMood(presetMood = null) {\n return $axios.post('/api/product/recommended', {mood: presetMood}).then(\n response => {\n state.current = response.data.product\n state.current.recommendation = response.data.recommendationText\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n });\n },\n \n async fetchProducts() {\n return await $axios.get(`/api/products/read`).then(\n products => {\n state.all = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPopular() {\n return await $axios.get(`/api/products/popular`).then(\n (products) => {\n state.popular = products.data;\n return Promise.resolve(products.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPublished() {\n return await $axios.get(`/api/products`).then(\n products => {\n let publishedProduct = products.data.filter(function (product, index) {\n return product.status !== \"unpublished\";\n });\n\n state.all = publishedProduct;\n state.filtered = publishedProduct.slice();\n state.filteredPrice = state.filtered;\n\n state.filteredPrice.sort(function (l, r) {\n return l[state.sort.current] > r[state.sort.current] ? (state.sort.ascending ? 1 : -1) : l[state.sort.current] < r[state.sort.current] ? (state.sort.ascending ? -1 : 1) : 0;\n });\n\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n\n async fetchProductPopular() {\n return await $axios.get(`/api/products`).then(\n (products) => {\n state.all = products.data.slice(1, 5);\n return Promise.resolve(products.data.slice(1, 5));\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n};\n\nconst mutations = {\n resetProduct(product) {\n state.current = {\n recommendation: false,\n category: [],\n status: 'unpublished',\n information: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n modifications: [],\n quantityDiscount: [],\n ingredients: [],\n description: ''\n }\n }\n}\n\nfunction set(product,property) { \n state[property] = product\n}\n\n/////////////////////////////\n// GETTERS\n/////////////////////////////\nconst getters = {\n \n};\n\n/////////////////////////////\n// UTILS\n/////////////////////////////\n\n/////////////////////////////\n// HISTORY\n/////////////////////////////\nconst history = []\nhistory.push(state) \n\n/////////////////////////////\n// WATCH\n/////////////////////////////\nwatch(state, (newState, oldState) => {\n history.push(newState)\n})\n\n/////////////////////////////\n// Module Export\n/////////////////////////////\nexport {\n state,\n actions,\n mutations,\n getters\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"products.js","sources":["../../../../../../src/modules/products/store/products.js"],"sourcesContent":["/////////////////////////////\n// DEPENDENCIES\n/////////////////////////////\nimport { reactive, watch, computed } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n/////////////////////////////\n// STATE\n/////////////////////////////\nconst state = reactive({\n all: [],\n current: {\n recommendation: false,\n category: [],\n status: 'unpublished',\n listing: 'sale',\n information: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n localization: [],\n modifications: [],\n quantityDiscount: [],\n ingredients: [],\n description: ''\n },\n filter: {\n active: false,\n class: 'mobile-only',\n selected: {},\n options: [{\n title: 'Price',\n value: 'price',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' }\n ]\n }],\n },\n sort: {\n param: 'distance',\n order: 'asc',\n options: [{\n label: 'Distance',\n value: 'distance'\n },{\n label: 'Popularity',\n value: 'views'\n },{\n label: 'Products',\n value: 'numberOfProducts'\n }]\n }\n});\n\n/////////////////////////////\n// ACTIONS\n/////////////////////////////\nconst actions = {\n\n async create(product) {\n return await $axios.post(\"/api/products/create\", product).then(\n (response) => {\n set(response.data, 'current')\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async read(options = {}) {\n // query.params = options.params || {};\n \n let query = {}\n\n // Handle fetching a specific post by _id\n if (options._id) {\n query._id = options._id ;\n }\n\n // Handle fetching posts by category\n if (options.category) {\n query.category = options.category;\n }\n\n if (options.owner) {\n query.owner = options.owner;\n }\n\n if (options.count) {\n query.count = options.count\n }\n\n if (options.categories) {\n query.categories = options.categories;\n }\n\n if (options.prices) {\n query.prices = options.prices;\n }\n\n if (options.delivery) {\n query.delivery = options.delivery;\n }\n\n if (options.status) {\n query.status = options.status;\n }\n\n if (options.search) {\n query.search = options.search;\n }\n\n if (options.filters) {\n query.filters = options.filters;\n }\n\n query.sort = 'createdAt';\n \n query.skip = options.skip;\n query.limit = options.limit;\n\n try {\n const response = await $axios.get('/api/products/read', { params: query });\n \n if (options._id) {\n state.current = {...response.data[0]}; \n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error)\n return Promise.reject(error);\n }\n },\n\n async update(_id, product) {\n return await $axios.post(\"/api/products/\" + _id, product).then(\n (response) => {\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async deleteProduct(_id) {\n return await $axios.delete(\"/api/products/\" + _id).then(\n (response) => {\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async submitMood(presetMood = null) {\n return $axios.post('/api/product/recommended', {mood: presetMood}).then(\n response => {\n state.current = response.data.product\n state.current.recommendation = response.data.recommendationText\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n });\n },\n \n async fetchProducts() {\n return await $axios.get(`/api/products/read`).then(\n products => {\n state.all = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPopular() {\n return await $axios.get(`/api/products/popular`).then(\n (products) => {\n state.popular = products.data;\n return Promise.resolve(products.data);\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPublished() {\n return await $axios.get(`/api/products`).then(\n products => {\n let publishedProduct = products.data.filter(function (product, index) {\n return product.status !== \"unpublished\";\n });\n\n state.all = publishedProduct;\n state.filtered = publishedProduct.slice();\n state.filteredPrice = state.filtered;\n\n state.filteredPrice.sort(function (l, r) {\n return l[state.sort.current] > r[state.sort.current] ? (state.sort.ascending ? 1 : -1) : l[state.sort.current] < r[state.sort.current] ? (state.sort.ascending ? -1 : 1) : 0;\n });\n\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n\n async fetchProductPopular() {\n return await $axios.get(`/api/products`).then(\n (products) => {\n state.all = products.data.slice(1, 5);\n return Promise.resolve(products.data.slice(1, 5));\n },\n (error) => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n};\n\nconst mutations = {\n resetProduct(product) {\n state.current = {\n recommendation: false,\n category: [],\n status: 'unpublished',\n information: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n modifications: [],\n quantityDiscount: [],\n ingredients: [],\n description: ''\n }\n }\n}\n\nfunction set(product,property) { \n state[property] = product\n}\n\n/////////////////////////////\n// GETTERS\n/////////////////////////////\nconst getters = {\n \n};\n\n/////////////////////////////\n// UTILS\n/////////////////////////////\n\n/////////////////////////////\n// HISTORY\n/////////////////////////////\nconst history = []\nhistory.push(state) \n\n/////////////////////////////\n// WATCH\n/////////////////////////////\nwatch(state, (newState, oldState) => {\n history.push(newState)\n})\n\n/////////////////////////////\n// Module Export\n/////////////////////////////\nexport {\n state,\n actions,\n mutations,\n getters\n}"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@ const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
|
|
|
11
11
|
const Address = require("../../../../components/Address/Address.vue2.cjs");
|
|
12
12
|
const LocationMarker = require("../../../../components/LocationMarker/LocationMarker.vue2.cjs");
|
|
13
13
|
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
14
|
-
require("vue-i18n");
|
|
15
14
|
;/* empty css */
|
|
16
15
|
const spots = require("../../store/spots.cjs");
|
|
17
16
|
const _hoisted_1 = { class: "for-transition w-100 cols-1 pd-thin gap-thin" };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpotEdit.vue.cjs","sources":["../../../../../../../src/modules/spots/components/pages/SpotEdit.vue"],"sourcesContent":["<template>\n <div class=\"for-transition w-100 cols-1 pd-thin gap-thin\">\n\n\n <Block class=\"flex-nowrap flex-v-center flex\">\n \n <h1 class=\"mn-r-auto\">\n {{ route.params.spot ? spots.state.spot.profile.name : 'Create Spot' }}\n </h1>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"bg-main\"\n >\n Save Spot\n </Button>\n </Block>\n \n\n <div class=\"cols-2 gap-thin\">\n \n <Block\n title=\"Profile\"\n class=\"mn-b-semi\"\n >\n\n\n\n <div class=\"gap-small mn-b-small cols-2-fit-content\">\n <UploadImage \n v-model:photo=\"spots.state.spot.profile.photo\"\n :uploadPath=\"'organizations/' + spots.state.spot.name + '/avatars'\"\n class=\"aspect-1x1 w-8r o-hidden radius-extra\" \n />\n\n <div class=\"w-100\">\n <Field \n v-model:field=\"spots.state.spot.profile.name\" \n label=\"Name\" \n placeholder=\"Spot Name\" \n class=\"mn-b-small bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n />\n <Field \n v-model:field=\"spots.state.spot.profile.description\" \n label=\"Description\" \n placeholder=\"Spot description (max 120 symbols)\" \n class=\"bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n /> \n </div>\n </div>\n\n <Select \n v-model:select=\"spots.state.spot.status\"\n label=\"Status\"\n :options=\"[\n 'unpublished', \n 'published',\n 'archivied'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 mn-b-small bg-white radius-small pd-medium\"\n />\n \n <p class=\"p-medium mn-b-small\">Please the available delivery options:</p>\n\n <Checkbox \n v-for=\"option in ['pickup','courier','post']\"\n :label=\"option\"\n name=\"Delivery\"\n :value=\"option\"\n class=\"w-100 mn-b-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.delivery\"\n @update:radio=\"event => spots.state.spot.delivery = event\"\n />\n\n <p class=\"p-medium mn-b-small\">Please select the available payment methods:</p>\n \n <Checkbox \n v-for=\"option in ['cash','bank transfer','crypto']\"\n :label=\"option\"\n name=\"Payment\"\n :value=\"option\"\n class=\"w-100 mn-b-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.payment\"\n @update:radio=\"event => spots.state.spot.payment = event\"\n />\n </Block>\n\n <Block\n title=\"Location\"\n class=\"pos-relative\"\n >\n <Address\n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"spots.state.spot.address\" \n :location=\"spots.state.spot.location\" \n :locale=\"$i18n.locale\" \n label=\"Address\" \n placeholder=\"Enter delivery address\" \n class=\"\n bg-white pd-small radius-tl-medium radius-tr-medium \n \"\n @update:location=\"newLocation => {\n spots.state.spot.location = newLocation;\n }\"\n @update:address=\"newAddress => {\n spots.state.spot.address = newAddress;\n }\"\n />\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n\n :address=\"spots.state.spot.address\" \n :location=\"spots.state.spot.location\" \n :locale=\"$i18n.locale\"\n \n class=\"h-20r mn-b-small radius-bl-medium radius-br-medium o-hidden\"\n @update:location=\"newLocation => {\n spots.state.spot.location = newLocation;\n }\"\n @update:address=\"newAddress => {\n spots.state.spot.address = newAddress;\n }\"\n />\n <p class=\"mn-b-small p-medium\">Options:</p>\n <Checkbox \n :label=\"'Hide address'\"\n name=\"address\"\n class=\"w-100 mn-r-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.position?.hide\"\n @update:radio=\"event => spots.state.spot.position.hide = event\"\n\n />\n\n <Field \n v-model:field=\"spots.state.spot.minorder\" \n label=\"Min.order\" \n placeholder=\"Enter minimum order value\" \n class=\"bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n /> \n\n </Block>\n </div>\n\n <Button :submit=\"onDelete\" :callback=\"redirectDash\" class=\"w-100 bg-light\">Delete Spot</Button>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\n\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\n\nimport Tab from \"@martyrs/src/components/Tab/Tab.vue\";\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from \"@martyrs/src/components/Select/Select.vue\";\nimport Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\";\nimport Address from \"@martyrs/src/components/Address/Address.vue\";\nimport LocationMarker from \"@martyrs/src/components/LocationMarker/LocationMarker.vue\";\nimport Button from \"@martyrs/src/components/Button/Button.vue\";\nimport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\nimport * as spots from \"@martyrs/src/modules/spots/store/spots\";\n\nconst router = useRouter();\nconst route = useRoute();\nconst tabOrganization = ref(\"details\");\nconst showAddNew = ref(false);\n\nonMounted(async () => {\n await fetchData();\n})\n\nasync function fetchData() {\n\n if (route.params.spot) await spots.actions.readOne(route.params.spot);\n\n const lng = spots.state.spot.location?.coordinates[0]\n const lat = spots.state.spot.location?.coordinates[1]\n\n spots.state.spot.location = {\n lat: lat || 1,\n lng: lng || 1\n }\n}\n\nasync function onSubmit() {\n\n spots.state.spot.location = {\n type: 'Point',\n coordinates: [spots.state.spot.location.lng, spots.state.spot.location.lat]\n }\n\n\n if (route.params.spot) {\n await spots.actions.update(\n route.params._id,\n spots.state.spot\n );\n }\n if (!route.params.spot) {\n await spots.actions.create(\n route.params._id,\n spots.state.spot\n );\n }\n}\n\nfunction redirectTo() {\n // router.replace({ name: \"Spot\", params: { _id: route.params._id, spot: spots.state.spot._id } });\n router.push({ name: \"Organization\", params: { _id: route.params._id }});\n}\n\nasync function onDelete() {\n await spots.actions.delete(\n route.params._id,\n spots.state.spot\n );\n}\n\nfunction redirectDash() {\n router.push({ name: \"Organization\", params: { _id: route.params._id }});\n}\n</script>\n\n<style scoped>\n</style>"],"names":["useRouter","useRoute","ref","onMounted","spots.actions","spots.state"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SpotEdit.vue.cjs","sources":["../../../../../../../src/modules/spots/components/pages/SpotEdit.vue"],"sourcesContent":["<template>\n <div class=\"for-transition w-100 cols-1 pd-thin gap-thin\">\n\n\n <Block class=\"flex-nowrap flex-v-center flex\">\n \n <h1 class=\"mn-r-auto\">\n {{ route.params.spot ? spots.state.spot.profile.name : 'Create Spot' }}\n </h1>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"bg-main\"\n >\n Save Spot\n </Button>\n </Block>\n \n\n <div class=\"cols-2 gap-thin\">\n \n <Block\n title=\"Profile\"\n class=\"mn-b-semi\"\n >\n\n\n\n <div class=\"gap-small mn-b-small cols-2-fit-content\">\n <UploadImage \n v-model:photo=\"spots.state.spot.profile.photo\"\n :uploadPath=\"'organizations/' + spots.state.spot.name + '/avatars'\"\n class=\"aspect-1x1 w-8r o-hidden radius-extra\" \n />\n\n <div class=\"w-100\">\n <Field \n v-model:field=\"spots.state.spot.profile.name\" \n label=\"Name\" \n placeholder=\"Spot Name\" \n class=\"mn-b-small bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n />\n <Field \n v-model:field=\"spots.state.spot.profile.description\" \n label=\"Description\" \n placeholder=\"Spot description (max 120 symbols)\" \n class=\"bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n /> \n </div>\n </div>\n\n <Select \n v-model:select=\"spots.state.spot.status\"\n label=\"Status\"\n :options=\"[\n 'unpublished', \n 'published',\n 'archivied'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 mn-b-small bg-white radius-small pd-medium\"\n />\n \n <p class=\"p-medium mn-b-small\">Please the available delivery options:</p>\n\n <Checkbox \n v-for=\"option in ['pickup','courier','post']\"\n :label=\"option\"\n name=\"Delivery\"\n :value=\"option\"\n class=\"w-100 mn-b-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.delivery\"\n @update:radio=\"event => spots.state.spot.delivery = event\"\n />\n\n <p class=\"p-medium mn-b-small\">Please select the available payment methods:</p>\n \n <Checkbox \n v-for=\"option in ['cash','bank transfer','crypto']\"\n :label=\"option\"\n name=\"Payment\"\n :value=\"option\"\n class=\"w-100 mn-b-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.payment\"\n @update:radio=\"event => spots.state.spot.payment = event\"\n />\n </Block>\n\n <Block\n title=\"Location\"\n class=\"pos-relative\"\n >\n <Address\n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"spots.state.spot.address\" \n :location=\"spots.state.spot.location\" \n :locale=\"$i18n.locale\" \n label=\"Address\" \n placeholder=\"Enter delivery address\" \n class=\"\n bg-white pd-small radius-tl-medium radius-tr-medium \n \"\n @update:location=\"newLocation => {\n spots.state.spot.location = newLocation;\n }\"\n @update:address=\"newAddress => {\n spots.state.spot.address = newAddress;\n }\"\n />\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n\n :address=\"spots.state.spot.address\" \n :location=\"spots.state.spot.location\" \n :locale=\"$i18n.locale\"\n \n class=\"h-20r mn-b-small radius-bl-medium radius-br-medium o-hidden\"\n @update:location=\"newLocation => {\n spots.state.spot.location = newLocation;\n }\"\n @update:address=\"newAddress => {\n spots.state.spot.address = newAddress;\n }\"\n />\n <p class=\"mn-b-small p-medium\">Options:</p>\n <Checkbox \n :label=\"'Hide address'\"\n name=\"address\"\n class=\"w-100 mn-r-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.position?.hide\"\n @update:radio=\"event => spots.state.spot.position.hide = event\"\n\n />\n\n <Field \n v-model:field=\"spots.state.spot.minorder\" \n label=\"Min.order\" \n placeholder=\"Enter minimum order value\" \n class=\"bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n /> \n\n </Block>\n </div>\n\n <Button :submit=\"onDelete\" :callback=\"redirectDash\" class=\"w-100 bg-light\">Delete Spot</Button>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\n\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\n\nimport Tab from \"@martyrs/src/components/Tab/Tab.vue\";\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from \"@martyrs/src/components/Select/Select.vue\";\nimport Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\";\nimport Address from \"@martyrs/src/components/Address/Address.vue\";\nimport LocationMarker from \"@martyrs/src/components/LocationMarker/LocationMarker.vue\";\nimport Button from \"@martyrs/src/components/Button/Button.vue\";\nimport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\nimport * as spots from \"@martyrs/src/modules/spots/store/spots\";\n\nconst router = useRouter();\nconst route = useRoute();\nconst tabOrganization = ref(\"details\");\nconst showAddNew = ref(false);\n\nonMounted(async () => {\n await fetchData();\n})\n\nasync function fetchData() {\n\n if (route.params.spot) await spots.actions.readOne(route.params.spot);\n\n const lng = spots.state.spot.location?.coordinates[0]\n const lat = spots.state.spot.location?.coordinates[1]\n\n spots.state.spot.location = {\n lat: lat || 1,\n lng: lng || 1\n }\n}\n\nasync function onSubmit() {\n\n spots.state.spot.location = {\n type: 'Point',\n coordinates: [spots.state.spot.location.lng, spots.state.spot.location.lat]\n }\n\n\n if (route.params.spot) {\n await spots.actions.update(\n route.params._id,\n spots.state.spot\n );\n }\n if (!route.params.spot) {\n await spots.actions.create(\n route.params._id,\n spots.state.spot\n );\n }\n}\n\nfunction redirectTo() {\n // router.replace({ name: \"Spot\", params: { _id: route.params._id, spot: spots.state.spot._id } });\n router.push({ name: \"Organization\", params: { _id: route.params._id }});\n}\n\nasync function onDelete() {\n await spots.actions.delete(\n route.params._id,\n spots.state.spot\n );\n}\n\nfunction redirectDash() {\n router.push({ name: \"Organization\", params: { _id: route.params._id }});\n}\n</script>\n\n<style scoped>\n</style>"],"names":["useRouter","useRoute","ref","onMounted","spots.actions","spots.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0KA,UAAM,SAASA,UAAAA,UAAW;AAC1B,UAAM,QAAQC,UAAAA,SAAU;AACAC,QAAAA,IAAI,SAAS;AAClBA,QAAAA,IAAI,KAAK;AAE5BC,QAAAA,UAAU,YAAY;AACpB,YAAM,UAAW;AAAA,IACnB,CAAC;AAED,mBAAe,YAAY;;AAEzB,UAAI,MAAM,OAAO,KAAM,OAAMC,MAAa,QAAC,QAAQ,MAAM,OAAO,IAAI;AAEpE,YAAM,OAAMC,WAAW,MAAC,KAAK,aAAjBA,mBAA2B,YAAY;AACnD,YAAM,OAAMA,WAAW,MAAC,KAAK,aAAjBA,mBAA2B,YAAY;AAEnDA,YAAW,MAAC,KAAK,WAAW;AAAA,QAC1B,KAAK,OAAO;AAAA,QACZ,KAAK,OAAO;AAAA,MAChB;AAAA,IACA;AAEA,mBAAe,WAAW;AAExBA,YAAW,MAAC,KAAK,WAAW;AAAA,QAC1B,MAAM;AAAA,QACN,aAAa,CAACA,MAAW,MAAC,KAAK,SAAS,KAAKA,MAAW,MAAC,KAAK,SAAS,GAAG;AAAA,MAC9E;AAGE,UAAI,MAAM,OAAO,MAAM;AACrB,cAAMD,MAAa,QAAC;AAAA,UAClB,MAAM,OAAO;AAAA,UACbC,YAAY;AAAA,QACb;AAAA,MACL;AACE,UAAI,CAAC,MAAM,OAAO,MAAM;AACtB,cAAMD,MAAa,QAAC;AAAA,UAClB,MAAM,OAAO;AAAA,UACbC,YAAY;AAAA,QACb;AAAA,MACL;AAAA,IACA;AAEA,aAAS,aAAa;AAEnB,aAAO,KAAK,EAAE,MAAM,gBAAgB,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAK,EAAA,CAAC;AAAA,IACzE;AAEA,mBAAe,WAAW;AACxB,YAAMD,MAAa,QAAC;AAAA,QAClB,MAAM,OAAO;AAAA,QACbC,YAAY;AAAA,MACb;AAAA,IACH;AAEA,aAAS,eAAe;AACtB,aAAO,KAAK,EAAE,MAAM,gBAAgB,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAK,EAAA,CAAC;AAAA,IACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -9,7 +9,6 @@ import _sfc_main$4 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
|
9
9
|
import _sfc_main$5 from "../../../../components/Address/Address.vue2.js";
|
|
10
10
|
import _sfc_main$6 from "../../../../components/LocationMarker/LocationMarker.vue2.js";
|
|
11
11
|
import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
|
|
12
|
-
import "vue-i18n";
|
|
13
12
|
/* empty css */
|
|
14
13
|
import { actions, state } from "../../store/spots.js";
|
|
15
14
|
const _hoisted_1 = { class: "for-transition w-100 cols-1 pd-thin gap-thin" };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpotEdit.vue.js","sources":["../../../../../../../src/modules/spots/components/pages/SpotEdit.vue"],"sourcesContent":["<template>\n <div class=\"for-transition w-100 cols-1 pd-thin gap-thin\">\n\n\n <Block class=\"flex-nowrap flex-v-center flex\">\n \n <h1 class=\"mn-r-auto\">\n {{ route.params.spot ? spots.state.spot.profile.name : 'Create Spot' }}\n </h1>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"bg-main\"\n >\n Save Spot\n </Button>\n </Block>\n \n\n <div class=\"cols-2 gap-thin\">\n \n <Block\n title=\"Profile\"\n class=\"mn-b-semi\"\n >\n\n\n\n <div class=\"gap-small mn-b-small cols-2-fit-content\">\n <UploadImage \n v-model:photo=\"spots.state.spot.profile.photo\"\n :uploadPath=\"'organizations/' + spots.state.spot.name + '/avatars'\"\n class=\"aspect-1x1 w-8r o-hidden radius-extra\" \n />\n\n <div class=\"w-100\">\n <Field \n v-model:field=\"spots.state.spot.profile.name\" \n label=\"Name\" \n placeholder=\"Spot Name\" \n class=\"mn-b-small bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n />\n <Field \n v-model:field=\"spots.state.spot.profile.description\" \n label=\"Description\" \n placeholder=\"Spot description (max 120 symbols)\" \n class=\"bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n /> \n </div>\n </div>\n\n <Select \n v-model:select=\"spots.state.spot.status\"\n label=\"Status\"\n :options=\"[\n 'unpublished', \n 'published',\n 'archivied'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 mn-b-small bg-white radius-small pd-medium\"\n />\n \n <p class=\"p-medium mn-b-small\">Please the available delivery options:</p>\n\n <Checkbox \n v-for=\"option in ['pickup','courier','post']\"\n :label=\"option\"\n name=\"Delivery\"\n :value=\"option\"\n class=\"w-100 mn-b-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.delivery\"\n @update:radio=\"event => spots.state.spot.delivery = event\"\n />\n\n <p class=\"p-medium mn-b-small\">Please select the available payment methods:</p>\n \n <Checkbox \n v-for=\"option in ['cash','bank transfer','crypto']\"\n :label=\"option\"\n name=\"Payment\"\n :value=\"option\"\n class=\"w-100 mn-b-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.payment\"\n @update:radio=\"event => spots.state.spot.payment = event\"\n />\n </Block>\n\n <Block\n title=\"Location\"\n class=\"pos-relative\"\n >\n <Address\n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"spots.state.spot.address\" \n :location=\"spots.state.spot.location\" \n :locale=\"$i18n.locale\" \n label=\"Address\" \n placeholder=\"Enter delivery address\" \n class=\"\n bg-white pd-small radius-tl-medium radius-tr-medium \n \"\n @update:location=\"newLocation => {\n spots.state.spot.location = newLocation;\n }\"\n @update:address=\"newAddress => {\n spots.state.spot.address = newAddress;\n }\"\n />\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n\n :address=\"spots.state.spot.address\" \n :location=\"spots.state.spot.location\" \n :locale=\"$i18n.locale\"\n \n class=\"h-20r mn-b-small radius-bl-medium radius-br-medium o-hidden\"\n @update:location=\"newLocation => {\n spots.state.spot.location = newLocation;\n }\"\n @update:address=\"newAddress => {\n spots.state.spot.address = newAddress;\n }\"\n />\n <p class=\"mn-b-small p-medium\">Options:</p>\n <Checkbox \n :label=\"'Hide address'\"\n name=\"address\"\n class=\"w-100 mn-r-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.position?.hide\"\n @update:radio=\"event => spots.state.spot.position.hide = event\"\n\n />\n\n <Field \n v-model:field=\"spots.state.spot.minorder\" \n label=\"Min.order\" \n placeholder=\"Enter minimum order value\" \n class=\"bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n /> \n\n </Block>\n </div>\n\n <Button :submit=\"onDelete\" :callback=\"redirectDash\" class=\"w-100 bg-light\">Delete Spot</Button>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\n\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\n\nimport Tab from \"@martyrs/src/components/Tab/Tab.vue\";\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from \"@martyrs/src/components/Select/Select.vue\";\nimport Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\";\nimport Address from \"@martyrs/src/components/Address/Address.vue\";\nimport LocationMarker from \"@martyrs/src/components/LocationMarker/LocationMarker.vue\";\nimport Button from \"@martyrs/src/components/Button/Button.vue\";\nimport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\nimport * as spots from \"@martyrs/src/modules/spots/store/spots\";\n\nconst router = useRouter();\nconst route = useRoute();\nconst tabOrganization = ref(\"details\");\nconst showAddNew = ref(false);\n\nonMounted(async () => {\n await fetchData();\n})\n\nasync function fetchData() {\n\n if (route.params.spot) await spots.actions.readOne(route.params.spot);\n\n const lng = spots.state.spot.location?.coordinates[0]\n const lat = spots.state.spot.location?.coordinates[1]\n\n spots.state.spot.location = {\n lat: lat || 1,\n lng: lng || 1\n }\n}\n\nasync function onSubmit() {\n\n spots.state.spot.location = {\n type: 'Point',\n coordinates: [spots.state.spot.location.lng, spots.state.spot.location.lat]\n }\n\n\n if (route.params.spot) {\n await spots.actions.update(\n route.params._id,\n spots.state.spot\n );\n }\n if (!route.params.spot) {\n await spots.actions.create(\n route.params._id,\n spots.state.spot\n );\n }\n}\n\nfunction redirectTo() {\n // router.replace({ name: \"Spot\", params: { _id: route.params._id, spot: spots.state.spot._id } });\n router.push({ name: \"Organization\", params: { _id: route.params._id }});\n}\n\nasync function onDelete() {\n await spots.actions.delete(\n route.params._id,\n spots.state.spot\n );\n}\n\nfunction redirectDash() {\n router.push({ name: \"Organization\", params: { _id: route.params._id }});\n}\n</script>\n\n<style scoped>\n</style>"],"names":["spots.actions","spots.state"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SpotEdit.vue.js","sources":["../../../../../../../src/modules/spots/components/pages/SpotEdit.vue"],"sourcesContent":["<template>\n <div class=\"for-transition w-100 cols-1 pd-thin gap-thin\">\n\n\n <Block class=\"flex-nowrap flex-v-center flex\">\n \n <h1 class=\"mn-r-auto\">\n {{ route.params.spot ? spots.state.spot.profile.name : 'Create Spot' }}\n </h1>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"bg-main\"\n >\n Save Spot\n </Button>\n </Block>\n \n\n <div class=\"cols-2 gap-thin\">\n \n <Block\n title=\"Profile\"\n class=\"mn-b-semi\"\n >\n\n\n\n <div class=\"gap-small mn-b-small cols-2-fit-content\">\n <UploadImage \n v-model:photo=\"spots.state.spot.profile.photo\"\n :uploadPath=\"'organizations/' + spots.state.spot.name + '/avatars'\"\n class=\"aspect-1x1 w-8r o-hidden radius-extra\" \n />\n\n <div class=\"w-100\">\n <Field \n v-model:field=\"spots.state.spot.profile.name\" \n label=\"Name\" \n placeholder=\"Spot Name\" \n class=\"mn-b-small bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n />\n <Field \n v-model:field=\"spots.state.spot.profile.description\" \n label=\"Description\" \n placeholder=\"Spot description (max 120 symbols)\" \n class=\"bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n /> \n </div>\n </div>\n\n <Select \n v-model:select=\"spots.state.spot.status\"\n label=\"Status\"\n :options=\"[\n 'unpublished', \n 'published',\n 'archivied'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 mn-b-small bg-white radius-small pd-medium\"\n />\n \n <p class=\"p-medium mn-b-small\">Please the available delivery options:</p>\n\n <Checkbox \n v-for=\"option in ['pickup','courier','post']\"\n :label=\"option\"\n name=\"Delivery\"\n :value=\"option\"\n class=\"w-100 mn-b-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.delivery\"\n @update:radio=\"event => spots.state.spot.delivery = event\"\n />\n\n <p class=\"p-medium mn-b-small\">Please select the available payment methods:</p>\n \n <Checkbox \n v-for=\"option in ['cash','bank transfer','crypto']\"\n :label=\"option\"\n name=\"Payment\"\n :value=\"option\"\n class=\"w-100 mn-b-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.payment\"\n @update:radio=\"event => spots.state.spot.payment = event\"\n />\n </Block>\n\n <Block\n title=\"Location\"\n class=\"pos-relative\"\n >\n <Address\n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"spots.state.spot.address\" \n :location=\"spots.state.spot.location\" \n :locale=\"$i18n.locale\" \n label=\"Address\" \n placeholder=\"Enter delivery address\" \n class=\"\n bg-white pd-small radius-tl-medium radius-tr-medium \n \"\n @update:location=\"newLocation => {\n spots.state.spot.location = newLocation;\n }\"\n @update:address=\"newAddress => {\n spots.state.spot.address = newAddress;\n }\"\n />\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n\n :address=\"spots.state.spot.address\" \n :location=\"spots.state.spot.location\" \n :locale=\"$i18n.locale\"\n \n class=\"h-20r mn-b-small radius-bl-medium radius-br-medium o-hidden\"\n @update:location=\"newLocation => {\n spots.state.spot.location = newLocation;\n }\"\n @update:address=\"newAddress => {\n spots.state.spot.address = newAddress;\n }\"\n />\n <p class=\"mn-b-small p-medium\">Options:</p>\n <Checkbox \n :label=\"'Hide address'\"\n name=\"address\"\n class=\"w-100 mn-r-small bg-white radius-small pd-small\"\n :radio=\"spots.state.spot.position?.hide\"\n @update:radio=\"event => spots.state.spot.position.hide = event\"\n\n />\n\n <Field \n v-model:field=\"spots.state.spot.minorder\" \n label=\"Min.order\" \n placeholder=\"Enter minimum order value\" \n class=\"bg-white radius-small pd-medium\"\n :validation=\"organizationName\" \n /> \n\n </Block>\n </div>\n\n <Button :submit=\"onDelete\" :callback=\"redirectDash\" class=\"w-100 bg-light\">Delete Spot</Button>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\n\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\n\nimport Tab from \"@martyrs/src/components/Tab/Tab.vue\";\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from \"@martyrs/src/components/Select/Select.vue\";\nimport Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\";\nimport Address from \"@martyrs/src/components/Address/Address.vue\";\nimport LocationMarker from \"@martyrs/src/components/LocationMarker/LocationMarker.vue\";\nimport Button from \"@martyrs/src/components/Button/Button.vue\";\nimport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\nimport * as spots from \"@martyrs/src/modules/spots/store/spots\";\n\nconst router = useRouter();\nconst route = useRoute();\nconst tabOrganization = ref(\"details\");\nconst showAddNew = ref(false);\n\nonMounted(async () => {\n await fetchData();\n})\n\nasync function fetchData() {\n\n if (route.params.spot) await spots.actions.readOne(route.params.spot);\n\n const lng = spots.state.spot.location?.coordinates[0]\n const lat = spots.state.spot.location?.coordinates[1]\n\n spots.state.spot.location = {\n lat: lat || 1,\n lng: lng || 1\n }\n}\n\nasync function onSubmit() {\n\n spots.state.spot.location = {\n type: 'Point',\n coordinates: [spots.state.spot.location.lng, spots.state.spot.location.lat]\n }\n\n\n if (route.params.spot) {\n await spots.actions.update(\n route.params._id,\n spots.state.spot\n );\n }\n if (!route.params.spot) {\n await spots.actions.create(\n route.params._id,\n spots.state.spot\n );\n }\n}\n\nfunction redirectTo() {\n // router.replace({ name: \"Spot\", params: { _id: route.params._id, spot: spots.state.spot._id } });\n router.push({ name: \"Organization\", params: { _id: route.params._id }});\n}\n\nasync function onDelete() {\n await spots.actions.delete(\n route.params._id,\n spots.state.spot\n );\n}\n\nfunction redirectDash() {\n router.push({ name: \"Organization\", params: { _id: route.params._id }});\n}\n</script>\n\n<style scoped>\n</style>"],"names":["spots.actions","spots.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0KA,UAAM,SAAS,UAAW;AAC1B,UAAM,QAAQ,SAAU;AACA,QAAI,SAAS;AAClB,QAAI,KAAK;AAE5B,cAAU,YAAY;AACpB,YAAM,UAAW;AAAA,IACnB,CAAC;AAED,mBAAe,YAAY;;AAEzB,UAAI,MAAM,OAAO,KAAM,OAAMA,QAAc,QAAQ,MAAM,OAAO,IAAI;AAEpE,YAAM,OAAMC,WAAY,KAAK,aAAjBA,mBAA2B,YAAY;AACnD,YAAM,OAAMA,WAAY,KAAK,aAAjBA,mBAA2B,YAAY;AAEnDA,YAAY,KAAK,WAAW;AAAA,QAC1B,KAAK,OAAO;AAAA,QACZ,KAAK,OAAO;AAAA,MAChB;AAAA,IACA;AAEA,mBAAe,WAAW;AAExBA,YAAY,KAAK,WAAW;AAAA,QAC1B,MAAM;AAAA,QACN,aAAa,CAACA,MAAY,KAAK,SAAS,KAAKA,MAAY,KAAK,SAAS,GAAG;AAAA,MAC9E;AAGE,UAAI,MAAM,OAAO,MAAM;AACrB,cAAMD,QAAc;AAAA,UAClB,MAAM,OAAO;AAAA,UACbC,MAAY;AAAA,QACb;AAAA,MACL;AACE,UAAI,CAAC,MAAM,OAAO,MAAM;AACtB,cAAMD,QAAc;AAAA,UAClB,MAAM,OAAO;AAAA,UACbC,MAAY;AAAA,QACb;AAAA,MACL;AAAA,IACA;AAEA,aAAS,aAAa;AAEnB,aAAO,KAAK,EAAE,MAAM,gBAAgB,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAK,EAAA,CAAC;AAAA,IACzE;AAEA,mBAAe,WAAW;AACxB,YAAMD,QAAc;AAAA,QAClB,MAAM,OAAO;AAAA,QACbC,MAAY;AAAA,MACb;AAAA,IACH;AAEA,aAAS,eAAe;AACtB,aAAO,KAAK,EAAE,MAAM,gBAAgB,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAK,EAAA,CAAC;AAAA,IACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/martyrs.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./main-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./main-C7jGMDJC.js");require("vue");exports.Address=e._sfc_main;exports.Breadcrumbs=e._sfc_main$17;exports.Button=e._sfc_main$1;exports.Checkbox=e._sfc_main$2;exports.Chips=e._sfc_main$18;exports.Countdown=e._sfc_main$19;exports.DatePicker=e._sfc_main$20;exports.Dropdown=e._sfc_main$3;exports.EmptyState=e._sfc_main$21;exports.Error=e._sfc_main$4;exports.Feed=e._sfc_main$22;exports.Field=e.Field;exports.FieldBig=e._sfc_main$23;exports.FieldPhone=e._sfc_main$5;exports.FieldTags=e.FieldTags;exports.Loader=e.Loader;exports.LocationMarker=e._sfc_main$6;exports.Map=e.Map;exports.Marquee=e._sfc_main$25;exports.Menu=e._sfc_main$11;exports.MenuItem=e._sfc_main$12;exports.Popup=e._sfc_main$7;exports.Radio=e._sfc_main$8;exports.Select=e.Select;exports.SelectMulti=e.SelectMulti;exports.Shader=e.Shader;exports.Slider=e.Slider;exports.Spoiler=e._sfc_main$9;exports.Status=e._sfc_main$24;exports.Tab=e._sfc_main$10;exports.Text=e._sfc_main$14;exports.Tooltip=e._sfc_main$13;exports.Upload=e.Upload;exports.UploadImage=e._sfc_main$15;exports.UploadImageMultiple=e._sfc_main$16;exports.default=e.main;
|