@ozdao/prometheus-framework 0.2.312 → 0.2.313

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. package/dist/main.css +1 -1
  2. package/dist/prometheus-framework/src/components/BottomSheet/BottomSheet.vue.cjs +4 -3
  3. package/dist/prometheus-framework/src/components/BottomSheet/BottomSheet.vue.cjs.map +1 -1
  4. package/dist/prometheus-framework/src/components/BottomSheet/BottomSheet.vue.js +5 -4
  5. package/dist/prometheus-framework/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
  6. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +3 -2
  7. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs.map +1 -1
  8. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +3 -2
  9. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js.map +1 -1
  10. package/dist/prometheus-framework/src/components/Field/Field.vue2.cjs +21 -14
  11. package/dist/prometheus-framework/src/components/Field/Field.vue2.cjs.map +1 -1
  12. package/dist/prometheus-framework/src/components/Field/Field.vue2.js +21 -14
  13. package/dist/prometheus-framework/src/components/Field/Field.vue2.js.map +1 -1
  14. package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs +1 -1
  15. package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs.map +1 -1
  16. package/dist/prometheus-framework/src/modules/auth/views/router/users.js +1 -1
  17. package/dist/prometheus-framework/src/modules/auth/views/router/users.js.map +1 -1
  18. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
  19. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
  20. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
  21. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
  22. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  23. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs.map +1 -1
  24. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  25. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  26. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  27. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  28. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  29. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  30. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +6 -1
  31. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs.map +1 -1
  32. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.js +6 -1
  33. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.js.map +1 -1
  34. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +6 -18
  35. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  36. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +10 -22
  37. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  38. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  39. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  40. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +34 -14
  41. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs.map +1 -1
  42. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +34 -14
  43. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +1 -1
  44. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  45. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  46. package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +323 -312
  47. package/dist/prometheus-framework/src/modules/pages/pages.client.js +323 -312
  48. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.cjs +36 -23
  49. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  50. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.js +37 -24
  51. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  52. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  53. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  54. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +10 -17
  55. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  56. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +11 -18
  57. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  58. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs +12 -2
  59. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  60. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js +13 -3
  61. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js.map +1 -1
  62. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.cjs +3 -1
  63. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.cjs.map +1 -1
  64. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.js +3 -1
  65. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.js.map +1 -1
  66. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  67. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +1 -1
  68. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +6 -73
  69. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  70. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +6 -73
  71. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  72. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
  73. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +1 -1
  74. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs +7 -7
  75. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  76. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js +8 -8
  77. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js.map +1 -1
  78. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +19 -24
  79. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  80. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +19 -24
  81. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js.map +1 -1
  82. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.cjs +8 -8
  83. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.cjs.map +1 -1
  84. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.js +9 -9
  85. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.js.map +1 -1
  86. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
  87. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs.map +1 -1
  88. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
  89. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js.map +1 -1
  90. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +60 -28
  91. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
  92. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +63 -31
  93. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  94. package/dist/prometheus-framework/src/modules/products/store/marketplace.cjs +1 -1
  95. package/dist/prometheus-framework/src/modules/products/store/marketplace.cjs.map +1 -1
  96. package/dist/prometheus-framework/src/modules/products/store/marketplace.js +1 -1
  97. package/dist/prometheus-framework/src/modules/products/store/marketplace.js.map +1 -1
  98. package/dist/prometheus-framework.cjs.js +15 -15
  99. package/dist/prometheus-framework.es.js +640 -629
  100. package/package.json +1 -1
  101. package/src/components/BottomSheet/BottomSheet.vue +4 -2
  102. package/src/components/Feed/Feed.vue +1 -0
  103. package/src/components/Field/Field.vue +11 -4
  104. package/src/modules/auth/views/router/users.js +1 -1
  105. package/src/modules/community/components/pages/CreateBlogPost.vue +1 -1
  106. package/src/modules/globals/views/components/blocks/BlockSearch.vue +5 -0
  107. package/src/modules/globals/views/components/layouts/Client.vue +2 -2
  108. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +15 -0
  109. package/src/modules/products/components/blocks/CardCategory.vue +56 -25
  110. package/src/modules/products/components/blocks/CardProduct.vue +17 -11
  111. package/src/modules/products/components/elements/Price.vue +8 -0
  112. package/src/modules/products/components/pages/Catalog.vue +3 -1
  113. package/src/modules/products/components/pages/CategoryEdit.vue +2 -32
  114. package/src/modules/products/components/pages/Product.vue +5 -21
  115. package/src/modules/products/components/pages/Products.vue +5 -8
  116. package/src/modules/products/components/sections/CategoriesTree.vue +3 -5
  117. package/src/modules/products/components/sections/PopularProducts.vue +1 -1
  118. package/src/modules/products/components/sections/SectionProduct.vue +48 -26
  119. package/src/modules/products/store/marketplace.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CreateBlogPost.vue.cjs","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"pd-thin\"\n>\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 bg-light pd-big radius-big\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n </section>\n\n \n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@pf/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@pf/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@pf/src/components/Popup/Popup.vue'\nimport FieldTags from '@pf/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@pf/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@pf/src/components/Checkbox/Checkbox.vue'\nimport Field from '@pf/src/components/Field/Field.vue'\nimport Button from '@pf/src/components/Button/Button.vue'; \nimport Feed from '@pf/src/components/Feed/Feed.vue'\n\nimport Card from '@pf/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@pf/src/modules/community/store/blogposts.js';\nimport * as auth from '@pf/src/modules/auth/views/store/auth'\nimport * as organizations from '@pf/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@pf/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Blogposts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["useGlobalMixins","useRoute","useRouter","ref","onMounted","blog.read","auth.state","blog.clean","blog.state","computed","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
1
+ {"version":3,"file":"CreateBlogPost.vue.cjs","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"pd-thin\"\n>\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 bg-light pd-big radius-big\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n </section>\n\n \n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@pf/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@pf/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@pf/src/components/Popup/Popup.vue'\nimport FieldTags from '@pf/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@pf/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@pf/src/components/Checkbox/Checkbox.vue'\nimport Field from '@pf/src/components/Field/Field.vue'\nimport Button from '@pf/src/components/Button/Button.vue'; \nimport Feed from '@pf/src/components/Feed/Feed.vue'\n\nimport Card from '@pf/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@pf/src/modules/community/store/blogposts.js';\nimport * as auth from '@pf/src/modules/auth/views/store/auth'\nimport * as organizations from '@pf/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@pf/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Posts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["useGlobalMixins","useRoute","useRouter","ref","onMounted","blog.read","auth.state","blog.clean","blog.state","computed","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
@@ -153,7 +153,7 @@ const _sfc_main = {
153
153
  function onDelete() {
154
154
  if (confirm("Are you sure you want to delete this post?")) {
155
155
  remove(post.value._id).then((response) => {
156
- router.push({ name: "User Blogposts", params: { _id: post.value.creator.target._id } });
156
+ router.push({ name: "User Posts", params: { _id: post.value.creator.target._id } });
157
157
  }).catch((error) => {
158
158
  console.log(error);
159
159
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CreateBlogPost.vue.js","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"pd-thin\"\n>\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 bg-light pd-big radius-big\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n </section>\n\n \n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@pf/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@pf/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@pf/src/components/Popup/Popup.vue'\nimport FieldTags from '@pf/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@pf/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@pf/src/components/Checkbox/Checkbox.vue'\nimport Field from '@pf/src/components/Field/Field.vue'\nimport Button from '@pf/src/components/Button/Button.vue'; \nimport Feed from '@pf/src/components/Feed/Feed.vue'\n\nimport Card from '@pf/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@pf/src/modules/community/store/blogposts.js';\nimport * as auth from '@pf/src/modules/auth/views/store/auth'\nimport * as organizations from '@pf/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@pf/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Blogposts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.read","auth.state","blog.clean","blog.state","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
1
+ {"version":3,"file":"CreateBlogPost.vue.js","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"pd-thin\"\n>\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 bg-light pd-big radius-big\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n </section>\n\n \n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@pf/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@pf/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@pf/src/components/Popup/Popup.vue'\nimport FieldTags from '@pf/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@pf/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@pf/src/components/Checkbox/Checkbox.vue'\nimport Field from '@pf/src/components/Field/Field.vue'\nimport Button from '@pf/src/components/Button/Button.vue'; \nimport Feed from '@pf/src/components/Feed/Feed.vue'\n\nimport Card from '@pf/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@pf/src/modules/community/store/blogposts.js';\nimport * as auth from '@pf/src/modules/auth/views/store/auth'\nimport * as organizations from '@pf/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@pf/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Posts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.read","auth.state","blog.clean","blog.state","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
@@ -12,7 +12,7 @@ const Popup = require("../../../../components/Popup/Popup.vue.cjs");
12
12
  const Field = require("../../../../components/Field/Field.vue2.cjs");
13
13
  const BlockTags = require("../../../../components/FieldTags/BlockTags.vue.cjs");
14
14
  const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
15
- ;/* empty css */
15
+ ;/* empty css */
16
16
  require("axios");
17
17
  ;/* empty css */
18
18
  const UploadImage = require("../../../../components/UploadImage/UploadImage.vue.cjs");
@@ -10,7 +10,7 @@ import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
10
10
  import Field from "../../../../components/Field/Field.vue2.js";
11
11
  import _sfc_main$6 from "../../../../components/FieldTags/BlockTags.vue.js";
12
12
  import _sfc_main$9 from "../../../../components/Checkbox/Checkbox.vue.js";
13
- /* empty css */
13
+ /* empty css */
14
14
  import "axios";
15
15
  /* empty css */
16
16
  import _sfc_main$1 from "../../../../components/UploadImage/UploadImage.vue.js";
@@ -6,7 +6,7 @@ const vueRouter = require("vue-router");
6
6
  const Button = require("../../../../components/Button/Button.vue2.cjs");
7
7
  ;/* empty css */
8
8
  const Chips = require("../../../../components/Chips/Chips.vue2.cjs");
9
- ;/* empty css */
9
+ ;/* empty css */
10
10
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
11
11
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
12
12
  const PhotoViewer = require("../../../../components/PhotoViewer/PhotoViewer.vue.cjs");
@@ -4,7 +4,7 @@ import { useRoute } from "vue-router";
4
4
  import _sfc_main$9 from "../../../../components/Button/Button.vue2.js";
5
5
  /* empty css */
6
6
  import _sfc_main$4 from "../../../../components/Chips/Chips.vue2.js";
7
- /* empty css */
7
+ /* empty css */
8
8
  import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
9
9
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
10
10
  import _sfc_main$6 from "../../../../components/PhotoViewer/PhotoViewer.vue.js";
@@ -11,6 +11,10 @@ const _sfc_main = {
11
11
  type: String,
12
12
  default: "Enter shop or product name"
13
13
  },
14
+ autofocus: {
15
+ type: Boolean,
16
+ default: false
17
+ },
14
18
  button: {
15
19
  type: String,
16
20
  default: "Search"
@@ -29,8 +33,9 @@ const _sfc_main = {
29
33
  vue.createVNode(Field.default, {
30
34
  placeholder: __props.placeholder,
31
35
  "onUpdate:field": _cache[0] || (_cache[0] = (search) => updateSearch(search)),
36
+ autofocus: __props.autofocus,
32
37
  class: "w-100"
33
- }, null, 8, ["placeholder"])
38
+ }, null, 8, ["placeholder", "autofocus"])
34
39
  ]);
35
40
  };
36
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BlockSearch.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/blocks/BlockSearch.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue';\n\nimport IconSearch from '@pf/src/modules/icons/navigation/IconSearch.vue';\nimport Field from '@pf/src/components/Field/Field.vue';\n\nconst emits = defineEmits(['search']);\nconst props = defineProps({\n placeholder: {\n type: String,\n default: 'Enter shop or product name'\n },\n button: {\n type: String,\n default: 'Search'\n },\n});\n\nconst stateSearch = ref(null)\n\nconst updateSearch = (search) => {\n emits('search', search);\n};\n</script>\n\n<template>\n <div class=\"flex-v-center flex-nowrap flex pd-small bg-light w-100 radius-big\">\n <IconSearch class=\"i-medium t-transp mn-r-thin\" />\n\n <Field\n :placeholder=\"placeholder\"\n @update:field=\"search => updateSearch(search)\"\n class=\"w-100\"\n />\n\n <!-- <button \n class=\"pd-r-small pd-l-small pd-t-thin pd-b-thin p-medium uppercase p-small t-medium cursor-pointer radius-extra bg-main\" \n @click=\"updateSearch(stateSearch)\"\n >\n {{ button }}\n </button> -->\n </div>\n</template>\n"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAYMA,QAAG,IAAC,IAAI;AAE5B,UAAM,eAAe,CAAC,WAAW;AAC/B,YAAM,UAAU,MAAM;AAAA,IACxB;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BlockSearch.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/blocks/BlockSearch.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue';\n\nimport IconSearch from '@pf/src/modules/icons/navigation/IconSearch.vue';\nimport Field from '@pf/src/components/Field/Field.vue';\n\nconst emits = defineEmits(['search']);\nconst props = defineProps({\n placeholder: {\n type: String,\n default: 'Enter shop or product name'\n },\n autofocus:{ \n type: Boolean,\n default: false\n },\n button: {\n type: String,\n default: 'Search'\n },\n});\n\nconst stateSearch = ref(null)\n\nconst updateSearch = (search) => {\n emits('search', search);\n};\n</script>\n\n<template>\n <div class=\"flex-v-center flex-nowrap flex pd-small bg-light w-100 radius-big\">\n <IconSearch class=\"i-medium t-transp mn-r-thin\" />\n\n <Field\n :placeholder=\"placeholder\"\n @update:field=\"search => updateSearch(search)\"\n :autofocus=\"autofocus\"\n class=\"w-100\"\n />\n\n <!-- <button \n class=\"pd-r-small pd-l-small pd-t-thin pd-b-thin p-medium uppercase p-small t-medium cursor-pointer radius-extra bg-main\" \n @click=\"updateSearch(stateSearch)\"\n >\n {{ button }}\n </button> -->\n </div>\n</template>\n"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAgBMA,QAAG,IAAC,IAAI;AAE5B,UAAM,eAAe,CAAC,WAAW;AAC/B,YAAM,UAAU,MAAM;AAAA,IACxB;;;;;;;;;;;;;;;"}
@@ -9,6 +9,10 @@ const _sfc_main = {
9
9
  type: String,
10
10
  default: "Enter shop or product name"
11
11
  },
12
+ autofocus: {
13
+ type: Boolean,
14
+ default: false
15
+ },
12
16
  button: {
13
17
  type: String,
14
18
  default: "Search"
@@ -27,8 +31,9 @@ const _sfc_main = {
27
31
  createVNode(Field, {
28
32
  placeholder: __props.placeholder,
29
33
  "onUpdate:field": _cache[0] || (_cache[0] = (search) => updateSearch(search)),
34
+ autofocus: __props.autofocus,
30
35
  class: "w-100"
31
- }, null, 8, ["placeholder"])
36
+ }, null, 8, ["placeholder", "autofocus"])
32
37
  ]);
33
38
  };
34
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BlockSearch.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/blocks/BlockSearch.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue';\n\nimport IconSearch from '@pf/src/modules/icons/navigation/IconSearch.vue';\nimport Field from '@pf/src/components/Field/Field.vue';\n\nconst emits = defineEmits(['search']);\nconst props = defineProps({\n placeholder: {\n type: String,\n default: 'Enter shop or product name'\n },\n button: {\n type: String,\n default: 'Search'\n },\n});\n\nconst stateSearch = ref(null)\n\nconst updateSearch = (search) => {\n emits('search', search);\n};\n</script>\n\n<template>\n <div class=\"flex-v-center flex-nowrap flex pd-small bg-light w-100 radius-big\">\n <IconSearch class=\"i-medium t-transp mn-r-thin\" />\n\n <Field\n :placeholder=\"placeholder\"\n @update:field=\"search => updateSearch(search)\"\n class=\"w-100\"\n />\n\n <!-- <button \n class=\"pd-r-small pd-l-small pd-t-thin pd-b-thin p-medium uppercase p-small t-medium cursor-pointer radius-extra bg-main\" \n @click=\"updateSearch(stateSearch)\"\n >\n {{ button }}\n </button> -->\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAYM,QAAI,IAAI;AAE5B,UAAM,eAAe,CAAC,WAAW;AAC/B,YAAM,UAAU,MAAM;AAAA,IACxB;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BlockSearch.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/blocks/BlockSearch.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue';\n\nimport IconSearch from '@pf/src/modules/icons/navigation/IconSearch.vue';\nimport Field from '@pf/src/components/Field/Field.vue';\n\nconst emits = defineEmits(['search']);\nconst props = defineProps({\n placeholder: {\n type: String,\n default: 'Enter shop or product name'\n },\n autofocus:{ \n type: Boolean,\n default: false\n },\n button: {\n type: String,\n default: 'Search'\n },\n});\n\nconst stateSearch = ref(null)\n\nconst updateSearch = (search) => {\n emits('search', search);\n};\n</script>\n\n<template>\n <div class=\"flex-v-center flex-nowrap flex pd-small bg-light w-100 radius-big\">\n <IconSearch class=\"i-medium t-transp mn-r-thin\" />\n\n <Field\n :placeholder=\"placeholder\"\n @update:field=\"search => updateSearch(search)\"\n :autofocus=\"autofocus\"\n class=\"w-100\"\n />\n\n <!-- <button \n class=\"pd-r-small pd-l-small pd-t-thin pd-b-thin p-medium uppercase p-small t-medium cursor-pointer radius-extra bg-main\" \n @click=\"updateSearch(stateSearch)\"\n >\n {{ button }}\n </button> -->\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAgBM,QAAI,IAAI;AAE5B,UAAM,eAAe,CAAC,WAAW;AAC/B,YAAM,UAAU,MAAM;AAAA,IACxB;;;;;;;;;;;;;;"}
@@ -4,14 +4,16 @@ const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const globals = require("../../store/globals.cjs");
6
6
  const Status = require("../../../../../components/Status/Status.vue.cjs");
7
- const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
8
- const Loader = require("../../../../../components/Loader/Loader.vue2.cjs");
9
7
  require("vue-i18n");
8
+ ;/* empty css */
9
+ const Loader = require("../../../../../components/Loader/Loader.vue2.cjs");
10
10
  ;/* empty css */
11
11
  require("../../../../orders/store/shopcart.cjs");
12
12
  require("../../../../auth/views/store/auth.cjs");
13
13
  ;/* empty css */
14
- const LocationSelection = require("../partials/LocationSelection.vue.cjs");
14
+ require("../../../../../../../node_modules/@googlemaps/js-api-loader/dist/index.cjs");
15
+ ;/* empty css */
16
+ ;/* empty css */
15
17
  const ShopCart = require("../../../../orders/components/partials/ShopCart.vue.cjs");
16
18
  ;/* empty css */
17
19
  const _sfc_main = {
@@ -21,9 +23,6 @@ const _sfc_main = {
21
23
  const page = vue.ref(null);
22
24
  const route = vueRouter.useRoute();
23
25
  const referalCode = vue.ref(route.query.referalCode);
24
- function closeLocationPopup() {
25
- globals.state.isOpenLocationPopup = false;
26
- }
27
26
  function scrollTop() {
28
27
  document.getElementById("app").scrollIntoView();
29
28
  }
@@ -103,17 +102,6 @@ const _sfc_main = {
103
102
  ]),
104
103
  _: 1
105
104
  }),
106
- vue.unref(route).meta.header.location ? (vue.openBlock(), vue.createBlock(Popup.default, {
107
- key: 1,
108
- onClosePopup: closeLocationPopup,
109
- isPopupOpen: globals.state.isOpenLocationPopup,
110
- class: "bg-white pd-semi w-m-33r radius-big"
111
- }, {
112
- default: vue.withCtx(() => [
113
- vue.createVNode(LocationSelection.default)
114
- ]),
115
- _: 1
116
- }, 8, ["isPopupOpen"])) : vue.createCommentVNode("", true),
117
105
  vue.createElementVNode("section", {
118
106
  id: "screen",
119
107
  ref: "screen",
@@ -167,7 +155,7 @@ const _sfc_main = {
167
155
  _: 1
168
156
  }),
169
157
  _ctx.MOBILE_APP && vue.unref(route).meta.title_hide ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(route).meta.bottombar), {
170
- key: 2,
158
+ key: 1,
171
159
  class: "z-index-2"
172
160
  })) : vue.createCommentVNode("", true)
173
161
  ], 2);
@@ -1 +1 @@
1
- {"version":3,"file":"Client.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-light': headerTheme === 'light',\n\t\t\t'bg-dark': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page\" class=\"pos-fixed\"/>\n\t\t</transition>\n\n\t\t\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header.component\"\n ref=\"header\" \n :is=\"route.meta.header.component\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.header.logotype\"\n :location=\"route.meta.header.location\"\n />\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.header.logotype\"\n />\n\t\t</transition>\n\n\t <Popup \n\t \tv-if=\"route.meta.header.location\"\n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"transition-ease-in-out o-hidden w-100 pos-relative\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n\t\t\t}\"\n\t\t>\n\t\t\t<ShopCart />\n\n\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-big\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n\t\t\t<Suspense>\n\t\t\t\t<router-view \n\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"o-y-scroll o-x-hidden flex flex-column h-100\"\n\t\t\t\t>\n\t\t\t\t\t<Status \n\t\t\t\t\t\tv-if=\"globals.state.error.show\" \n\t\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\n\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t \t<component \n\t\t \t\tref=\"page\" \n\t\t \t\t:is=\"Component\" \n\t\t \t\t:key=\"route.path\"\n\t\t \t\tclass=\"h-min-100\"\n\t\t \t/>\n\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t \t<!-- -->\n\t\t </transition>\n\n\t\t <!-- <Footer /> -->\n\t\t\t\t</router-view>\n\t\t\t</Suspense>\n \n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@pf/src/modules/globals/views/store/globals';\n\t// Partials\n\timport Status from '@pf/src/components/Status/Status.vue';\n\timport Popup from '@pf/src/components/Popup/Popup.vue';\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@pf/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@pf/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@pf/src/modules/globals/views/components/partials/LocationSelection.vue';\n\t// import Footer from '@pf/src/modules/globals/views/components/partials/Footer.vue'\n\n\timport ShopCart from '@pf/src/modules/orders/components/partials/ShopCart.vue';\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n\n\tonMounted(async () => {\n\t\t \n\t\tif ('serviceWorker' in navigator) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/service-worker.js').then(registration => {\n\t \tconsole.log('SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">;\t\n\t.moveFromTop-enter-active,\n\t.moveFromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTop-enter-from,\n\t.moveFromTop-leave-to {\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["ref","useRoute","globals.state","computed","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;AAmIE,QAAI,OAAOA,IAAG,IAAC,KAAK;AAEpB,UAAM,OAAOA,IAAG,IAAC,IAAI;AAItB,UAAM,QAAQC,UAAAA,SAAU;AAGxB,UAAM,cAAcD,IAAG,IAAC,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BE,cAAa,MAAC,sBAAsB;AAAA,IACrC;AACD,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAc;AAAA,IAC7C;AAED,UAAM,eAAeF,IAAG,IAAC,CAAC;AAE1B,UAAM,SAASA,IAAG,IAAC,IAAI;AAEvB,UAAM,cAAcG,IAAAA,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACtC,OAAS;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MAClC;AAAA,IACH,CAAE;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACrC;AAECC,QAAAA,UAAU,YAAY;AAErB,UAAI,mBAAmB,WAAW;AAC/B,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,oBAAoB,EAAE,KAAK,kBAAgB;AAC1E,oBAAQ,IAAI,mBAAmB,YAAY;AAAA,UACpD,CAAQ,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAClE,CAAQ;AAAA,QACR,CAAK;AAAA,MACD;AAEF,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBF,gBAAAA,MAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACtD,OAAU;AACNA,gBAAa,MAAC,sBAAsB;AAAA,MACpC;AAEF,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACtD;AAED,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC/B,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Client.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-light': headerTheme === 'light',\n\t\t\t'bg-dark': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page\" class=\"pos-fixed\"/>\n\t\t</transition>\n\n\t\t\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header.component\"\n ref=\"header\" \n :is=\"route.meta.header.component\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.header.logotype\"\n :location=\"route.meta.header.location\"\n />\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.header.logotype\"\n />\n\t\t</transition>\n\n\t <!-- <Popup \n\t \tv-if=\"route.meta.header.location\"\n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup> -->\n\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"transition-ease-in-out o-hidden w-100 pos-relative\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n\t\t\t}\"\n\t\t>\n\t\t\t<ShopCart />\n\n\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-big\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n\t\t\t<Suspense>\n\t\t\t\t<router-view \n\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"o-y-scroll o-x-hidden flex flex-column h-100\"\n\t\t\t\t>\n\t\t\t\t\t<Status \n\t\t\t\t\t\tv-if=\"globals.state.error.show\" \n\t\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\n\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t \t<component \n\t\t \t\tref=\"page\" \n\t\t \t\t:is=\"Component\" \n\t\t \t\t:key=\"route.path\"\n\t\t \t\tclass=\"h-min-100\"\n\t\t \t/>\n\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t \t<!-- -->\n\t\t </transition>\n\n\t\t <!-- <Footer /> -->\n\t\t\t\t</router-view>\n\t\t\t</Suspense>\n \n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@pf/src/modules/globals/views/store/globals';\n\t// Partials\n\timport Status from '@pf/src/components/Status/Status.vue';\n\timport Popup from '@pf/src/components/Popup/Popup.vue';\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@pf/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@pf/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@pf/src/modules/globals/views/components/partials/LocationSelection.vue';\n\t// import Footer from '@pf/src/modules/globals/views/components/partials/Footer.vue'\n\n\timport ShopCart from '@pf/src/modules/orders/components/partials/ShopCart.vue';\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n\n\tonMounted(async () => {\n\t\t \n\t\tif ('serviceWorker' in navigator) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/service-worker.js').then(registration => {\n\t \tconsole.log('SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">;\t\n\t.moveFromTop-enter-active,\n\t.moveFromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTop-enter-from,\n\t.moveFromTop-leave-to {\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["ref","useRoute","computed","onMounted","globals.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmIE,QAAI,OAAOA,IAAG,IAAC,KAAK;AAEpB,UAAM,OAAOA,IAAG,IAAC,IAAI;AAItB,UAAM,QAAQC,UAAAA,SAAU;AAGxB,UAAM,cAAcD,IAAG,IAAC,MAAM,MAAM,WAAW;AAO/C,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAc;AAAA,IAC7C;AAED,UAAM,eAAeA,IAAG,IAAC,CAAC;AAE1B,UAAM,SAASA,IAAG,IAAC,IAAI;AAEvB,UAAM,cAAcE,IAAAA,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACtC,OAAS;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MAClC;AAAA,IACH,CAAE;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACrC;AAECC,QAAAA,UAAU,YAAY;AAErB,UAAI,mBAAmB,WAAW;AAC/B,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,oBAAoB,EAAE,KAAK,kBAAgB;AAC1E,oBAAQ,IAAI,mBAAmB,YAAY;AAAA,UACpD,CAAQ,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAClE,CAAQ;AAAA,QACR,CAAK;AAAA,MACD;AAEF,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBC,gBAAAA,MAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACtD,OAAU;AACNA,gBAAa,MAAC,sBAAsB;AAAA,MACpC;AAEF,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACtD;AAED,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC/B,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,16 +1,18 @@
1
1
  import { ref, computed, onMounted, resolveComponent, openBlock, createElementBlock, normalizeClass, createVNode, Transition, withCtx, createBlock, createCommentVNode, unref, resolveDynamicComponent, createElementVNode, Suspense } from "vue";
2
2
  import { useRoute } from "vue-router";
3
3
  import { state } from "../../store/globals.js";
4
- import _sfc_main$4 from "../../../../../components/Status/Status.vue.js";
5
- import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
6
- import Loader from "../../../../../components/Loader/Loader.vue2.js";
4
+ import _sfc_main$2 from "../../../../../components/Status/Status.vue.js";
7
5
  import "vue-i18n";
6
+ /* empty css */
7
+ import Loader from "../../../../../components/Loader/Loader.vue2.js";
8
8
  /* empty css */
9
9
  import "../../../../orders/store/shopcart.js";
10
10
  import "../../../../auth/views/store/auth.js";
11
11
  /* empty css */
12
- import _sfc_main$2 from "../partials/LocationSelection.vue.js";
13
- import _sfc_main$3 from "../../../../orders/components/partials/ShopCart.vue.js";
12
+ import "../../../../../../../node_modules/@googlemaps/js-api-loader/dist/index.js";
13
+ /* empty css */
14
+ /* empty css */
15
+ import _sfc_main$1 from "../../../../orders/components/partials/ShopCart.vue.js";
14
16
  /* empty css */
15
17
  const _sfc_main = {
16
18
  __name: "Client",
@@ -19,9 +21,6 @@ const _sfc_main = {
19
21
  const page = ref(null);
20
22
  const route = useRoute();
21
23
  const referalCode = ref(route.query.referalCode);
22
- function closeLocationPopup() {
23
- state.isOpenLocationPopup = false;
24
- }
25
24
  function scrollTop() {
26
25
  document.getElementById("app").scrollIntoView();
27
26
  }
@@ -101,17 +100,6 @@ const _sfc_main = {
101
100
  ]),
102
101
  _: 1
103
102
  }),
104
- unref(route).meta.header.location ? (openBlock(), createBlock(_sfc_main$1, {
105
- key: 1,
106
- onClosePopup: closeLocationPopup,
107
- isPopupOpen: state.isOpenLocationPopup,
108
- class: "bg-white pd-semi w-m-33r radius-big"
109
- }, {
110
- default: withCtx(() => [
111
- createVNode(_sfc_main$2)
112
- ]),
113
- _: 1
114
- }, 8, ["isPopupOpen"])) : createCommentVNode("", true),
115
103
  createElementVNode("section", {
116
104
  id: "screen",
117
105
  ref: "screen",
@@ -120,7 +108,7 @@ const _sfc_main = {
120
108
  "": _ctx.MOBILE_APP === "ios"
121
109
  }])
122
110
  }, [
123
- createVNode(_sfc_main$3),
111
+ createVNode(_sfc_main$1),
124
112
  (openBlock(), createBlock(Suspense, null, {
125
113
  default: withCtx(() => [
126
114
  createVNode(_component_router_view, {
@@ -129,7 +117,7 @@ const _sfc_main = {
129
117
  }, "o-y-scroll o-x-hidden flex flex-column h-100"])
130
118
  }, {
131
119
  default: withCtx(({ Component, route: route2 }) => [
132
- state.error.show ? (openBlock(), createBlock(_sfc_main$4, {
120
+ state.error.show ? (openBlock(), createBlock(_sfc_main$2, {
133
121
  key: 0,
134
122
  data: state.error,
135
123
  onClose: _cache[0] || (_cache[0] = ($event) => state.error.show = false),
@@ -165,7 +153,7 @@ const _sfc_main = {
165
153
  _: 1
166
154
  }),
167
155
  _ctx.MOBILE_APP && unref(route).meta.title_hide ? (openBlock(), createBlock(resolveDynamicComponent(unref(route).meta.bottombar), {
168
- key: 2,
156
+ key: 1,
169
157
  class: "z-index-2"
170
158
  })) : createCommentVNode("", true)
171
159
  ], 2);
@@ -1 +1 @@
1
- {"version":3,"file":"Client.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-light': headerTheme === 'light',\n\t\t\t'bg-dark': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page\" class=\"pos-fixed\"/>\n\t\t</transition>\n\n\t\t\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header.component\"\n ref=\"header\" \n :is=\"route.meta.header.component\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.header.logotype\"\n :location=\"route.meta.header.location\"\n />\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.header.logotype\"\n />\n\t\t</transition>\n\n\t <Popup \n\t \tv-if=\"route.meta.header.location\"\n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"transition-ease-in-out o-hidden w-100 pos-relative\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n\t\t\t}\"\n\t\t>\n\t\t\t<ShopCart />\n\n\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-big\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n\t\t\t<Suspense>\n\t\t\t\t<router-view \n\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"o-y-scroll o-x-hidden flex flex-column h-100\"\n\t\t\t\t>\n\t\t\t\t\t<Status \n\t\t\t\t\t\tv-if=\"globals.state.error.show\" \n\t\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\n\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t \t<component \n\t\t \t\tref=\"page\" \n\t\t \t\t:is=\"Component\" \n\t\t \t\t:key=\"route.path\"\n\t\t \t\tclass=\"h-min-100\"\n\t\t \t/>\n\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t \t<!-- -->\n\t\t </transition>\n\n\t\t <!-- <Footer /> -->\n\t\t\t\t</router-view>\n\t\t\t</Suspense>\n \n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@pf/src/modules/globals/views/store/globals';\n\t// Partials\n\timport Status from '@pf/src/components/Status/Status.vue';\n\timport Popup from '@pf/src/components/Popup/Popup.vue';\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@pf/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@pf/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@pf/src/modules/globals/views/components/partials/LocationSelection.vue';\n\t// import Footer from '@pf/src/modules/globals/views/components/partials/Footer.vue'\n\n\timport ShopCart from '@pf/src/modules/orders/components/partials/ShopCart.vue';\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n\n\tonMounted(async () => {\n\t\t \n\t\tif ('serviceWorker' in navigator) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/service-worker.js').then(registration => {\n\t \tconsole.log('SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">;\t\n\t.moveFromTop-enter-active,\n\t.moveFromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTop-enter-from,\n\t.moveFromTop-leave-to {\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["globals.state"],"mappings":";;;;;;;;;;;;;;;;;AAmIE,QAAI,OAAO,IAAI,KAAK;AAEpB,UAAM,OAAO,IAAI,IAAI;AAItB,UAAM,QAAQ,SAAU;AAGxB,UAAM,cAAc,IAAI,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BA,YAAc,sBAAsB;AAAA,IACrC;AACD,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAc;AAAA,IAC7C;AAED,UAAM,eAAe,IAAI,CAAC;AAE1B,UAAM,SAAS,IAAI,IAAI;AAEvB,UAAM,cAAc,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACtC,OAAS;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MAClC;AAAA,IACH,CAAE;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACrC;AAEC,cAAU,YAAY;AAErB,UAAI,mBAAmB,WAAW;AAC/B,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,oBAAoB,EAAE,KAAK,kBAAgB;AAC1E,oBAAQ,IAAI,mBAAmB,YAAY;AAAA,UACpD,CAAQ,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAClE,CAAQ;AAAA,QACR,CAAK;AAAA,MACD;AAEF,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBA,cAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACtD,OAAU;AACNA,cAAc,sBAAsB;AAAA,MACpC;AAEF,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACtD;AAED,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC/B,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Client.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-light': headerTheme === 'light',\n\t\t\t'bg-dark': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page\" class=\"pos-fixed\"/>\n\t\t</transition>\n\n\t\t\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header.component\"\n ref=\"header\" \n :is=\"route.meta.header.component\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.header.logotype\"\n :location=\"route.meta.header.location\"\n />\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.header.logotype\"\n />\n\t\t</transition>\n\n\t <!-- <Popup \n\t \tv-if=\"route.meta.header.location\"\n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup> -->\n\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"transition-ease-in-out o-hidden w-100 pos-relative\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n\t\t\t}\"\n\t\t>\n\t\t\t<ShopCart />\n\n\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-big\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n\t\t\t<Suspense>\n\t\t\t\t<router-view \n\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"o-y-scroll o-x-hidden flex flex-column h-100\"\n\t\t\t\t>\n\t\t\t\t\t<Status \n\t\t\t\t\t\tv-if=\"globals.state.error.show\" \n\t\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\n\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t \t<component \n\t\t \t\tref=\"page\" \n\t\t \t\t:is=\"Component\" \n\t\t \t\t:key=\"route.path\"\n\t\t \t\tclass=\"h-min-100\"\n\t\t \t/>\n\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t \t<!-- -->\n\t\t </transition>\n\n\t\t <!-- <Footer /> -->\n\t\t\t\t</router-view>\n\t\t\t</Suspense>\n \n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@pf/src/modules/globals/views/store/globals';\n\t// Partials\n\timport Status from '@pf/src/components/Status/Status.vue';\n\timport Popup from '@pf/src/components/Popup/Popup.vue';\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@pf/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@pf/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@pf/src/modules/globals/views/components/partials/LocationSelection.vue';\n\t// import Footer from '@pf/src/modules/globals/views/components/partials/Footer.vue'\n\n\timport ShopCart from '@pf/src/modules/orders/components/partials/ShopCart.vue';\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n\n\tonMounted(async () => {\n\t\t \n\t\tif ('serviceWorker' in navigator) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/service-worker.js').then(registration => {\n\t \tconsole.log('SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">;\t\n\t.moveFromTop-enter-active,\n\t.moveFromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTop-enter-from,\n\t.moveFromTop-leave-to {\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["globals.state"],"mappings":";;;;;;;;;;;;;;;;;;;AAmIE,QAAI,OAAO,IAAI,KAAK;AAEpB,UAAM,OAAO,IAAI,IAAI;AAItB,UAAM,QAAQ,SAAU;AAGxB,UAAM,cAAc,IAAI,MAAM,MAAM,WAAW;AAO/C,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAc;AAAA,IAC7C;AAED,UAAM,eAAe,IAAI,CAAC;AAE1B,UAAM,SAAS,IAAI,IAAI;AAEvB,UAAM,cAAc,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACtC,OAAS;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MAClC;AAAA,IACH,CAAE;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACrC;AAEC,cAAU,YAAY;AAErB,UAAI,mBAAmB,WAAW;AAC/B,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,oBAAoB,EAAE,KAAK,kBAAgB;AAC1E,oBAAQ,IAAI,mBAAmB,YAAY;AAAA,UACpD,CAAQ,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAClE,CAAQ;AAAA,QACR,CAAK;AAAA,MACD;AAEF,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBA,cAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACtD,OAAU;AACNA,cAAc,sBAAsB;AAAA,MACpC;AAEF,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACtD;AAED,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC/B,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -10,7 +10,7 @@ const Block = require("../../../../components/Block/Block.vue.cjs");
10
10
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
11
11
  const CardOrderItem = require("../blocks/CardOrderItem.vue.cjs");
12
12
  ;/* empty css */
13
- ;/* empty css */
13
+ ;/* empty css */
14
14
  const CardUser = require("../../../auth/views/components/blocks/CardUser.vue.cjs");
15
15
  const FormAddCustomer = require("../sections/FormAddCustomer.vue.cjs");
16
16
  const FormDelivery = require("../sections/FormDelivery.vue.cjs");
@@ -8,7 +8,7 @@ import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
8
8
  import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
9
9
  import _sfc_main$6 from "../blocks/CardOrderItem.vue.js";
10
10
  /* empty css */
11
- /* empty css */
11
+ /* empty css */
12
12
  import _sfc_main$7 from "../../../auth/views/components/blocks/CardUser.vue.js";
13
13
  import _sfc_main$a from "../sections/FormAddCustomer.vue.js";
14
14
  import _sfc_main$8 from "../sections/FormDelivery.vue.js";