@ozdao/martyrs 0.2.482 → 0.2.484

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/{Media-JBERcJWj.js → Media-2NvSR0vE.js} +1 -1
  2. package/dist/{Media-p7Q8ZAQM.cjs → Media-EYG9WPI4.cjs} +1 -1
  3. package/dist/_virtual/_commonjsHelpers.cjs +2 -0
  4. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -1
  5. package/dist/_virtual/_commonjsHelpers.js +2 -0
  6. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  7. package/dist/_virtual/index2.cjs +8 -0
  8. package/dist/_virtual/index2.cjs.map +1 -0
  9. package/dist/_virtual/index2.js +8 -0
  10. package/dist/_virtual/index2.js.map +1 -0
  11. package/dist/_virtual/index3.cjs +5 -0
  12. package/dist/_virtual/index3.cjs.map +1 -0
  13. package/dist/_virtual/index3.js +5 -0
  14. package/dist/_virtual/index3.js.map +1 -0
  15. package/dist/{main-AtCVQKF9.js → main-BT1yoKH2.js} +2871 -2502
  16. package/dist/main-rF15sgss.cjs +11 -0
  17. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  18. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  19. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  20. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
  21. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +32 -12
  22. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  23. package/dist/martyrs/src/components/Feed/Feed.vue.js +48 -28
  24. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  25. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +141 -113
  26. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
  27. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +142 -114
  28. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  29. package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
  30. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
  31. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  32. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  33. package/dist/martyrs/src/components/Slider/Slider.vue.cjs +21 -24
  34. package/dist/martyrs/src/components/Slider/Slider.vue.cjs.map +1 -1
  35. package/dist/martyrs/src/components/Slider/Slider.vue.js +21 -24
  36. package/dist/martyrs/src/components/Slider/Slider.vue.js.map +1 -1
  37. package/dist/martyrs/src/components/Status/Status.vue.cjs +11 -5
  38. package/dist/martyrs/src/components/Status/Status.vue.cjs.map +1 -1
  39. package/dist/martyrs/src/components/Status/Status.vue.js +13 -7
  40. package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +5 -3
  42. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +5 -3
  44. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  46. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  47. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +28 -45
  48. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +29 -46
  50. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  51. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +1 -1
  52. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +1 -1
  53. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +1 -1
  54. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +1 -1
  55. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +1 -1
  56. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +1 -1
  57. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +1 -1
  58. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +1 -1
  59. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +1 -1
  60. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +1 -1
  61. package/dist/martyrs/src/modules/globals/globals.client.cjs +11 -0
  62. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  63. package/dist/martyrs/src/modules/globals/globals.client.js +11 -0
  64. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  65. package/dist/martyrs/src/modules/globals/locales/en.cjs +24 -0
  66. package/dist/martyrs/src/modules/globals/locales/en.cjs.map +1 -0
  67. package/dist/martyrs/src/modules/globals/locales/en.js +24 -0
  68. package/dist/martyrs/src/modules/globals/locales/en.js.map +1 -0
  69. package/dist/martyrs/src/modules/globals/locales/ru.cjs +24 -0
  70. package/dist/martyrs/src/modules/globals/locales/ru.cjs.map +1 -0
  71. package/dist/martyrs/src/modules/globals/locales/ru.js +24 -0
  72. package/dist/martyrs/src/modules/globals/locales/ru.js.map +1 -0
  73. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +71 -0
  74. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs.map +1 -0
  75. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +71 -0
  76. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js.map +1 -0
  77. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  79. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +49 -43
  80. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +49 -43
  82. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  85. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +183 -0
  86. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
  87. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +183 -0
  88. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
  89. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs +67 -0
  90. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs.map +1 -0
  91. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js +67 -0
  92. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js.map +1 -0
  93. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs +91 -0
  94. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs.map +1 -0
  95. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js +91 -0
  96. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js.map +1 -0
  97. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs +64 -0
  98. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs.map +1 -0
  99. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js +64 -0
  100. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js.map +1 -0
  101. package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
  102. package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
  103. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +52 -58
  104. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +52 -58
  106. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +4 -1
  108. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +4 -1
  110. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  113. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  115. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  117. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
  119. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  120. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  121. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +4 -1
  122. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -1
  124. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +1 -1
  127. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +2 -2
  128. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  129. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  131. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  132. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs +2 -1
  134. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js +2 -1
  136. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  139. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  141. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.cjs +1 -1
  142. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.js +1 -1
  143. package/dist/martyrs.cjs.js +1 -1
  144. package/dist/martyrs.css +1 -1
  145. package/dist/martyrs.es.js +1 -1
  146. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
  147. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  148. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
  149. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  150. package/dist/node_modules/lodash.merge/index.cjs +689 -0
  151. package/dist/node_modules/lodash.merge/index.cjs.map +1 -0
  152. package/dist/node_modules/lodash.merge/index.js +689 -0
  153. package/dist/node_modules/lodash.merge/index.js.map +1 -0
  154. package/dist/style.css +103 -75
  155. package/package.json +1 -1
  156. package/src/components/Feed/Feed.vue +23 -0
  157. package/src/components/FieldPhone/FieldPhone.vue +337 -238
  158. package/src/components/Slider/Slider.vue +15 -17
  159. package/src/components/Status/Status.vue +10 -7
  160. package/src/modules/auth/views/components/layouts/Auth.vue +2 -2
  161. package/src/modules/auth/views/components/sections/SliderFeatures.vue +19 -73
  162. package/src/modules/auth/views/localization/EnterCode.json +2 -2
  163. package/src/modules/auth/views/localization/EnterPassword.json +2 -2
  164. package/src/modules/auth/views/localization/ResetPassword.json +2 -2
  165. package/src/modules/auth/views/localization/SignIn.json +2 -2
  166. package/src/modules/auth/views/localization/SignUp.json +2 -2
  167. package/src/modules/globals/globals.client.js +15 -1
  168. package/src/modules/globals/locales/en.js +21 -0
  169. package/src/modules/globals/locales/index.js +8 -0
  170. package/src/modules/globals/locales/ru.js +21 -0
  171. package/src/modules/globals/views/classes/globals.i18n.js +84 -0
  172. package/src/modules/globals/views/components/layouts/Client.vue +43 -40
  173. package/src/modules/globals/views/components/partials/Footer.vue +162 -162
  174. package/src/modules/globals/views/components/sections/Filters.vue +198 -0
  175. package/src/modules/globals/views/components/sections/filters/FilterOptions.vue +65 -0
  176. package/src/modules/globals/views/components/sections/filters/FilterPrice.vue +81 -0
  177. package/src/modules/globals/views/components/sections/filters/FilterRange.vue +74 -0
  178. package/src/modules/globals/views/store/globals.js +0 -40
  179. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +34 -38
  180. package/src/modules/products/components/pages/Product.vue +1 -1
  181. package/src/modules/products/components/sections/ProductsPopular.vue +3 -2
  182. package/src/modules/wallet/views/localization/wallet.json +2 -2
  183. package/dist/main-B-we7C0w.cjs +0 -11
  184. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  185. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
  186. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  187. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs +0 -194
  188. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs.map +0 -1
  189. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js +0 -194
  190. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js.map +0 -1
  191. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs +0 -43
  192. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs.map +0 -1
  193. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js +0 -43
  194. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +0 -1
  195. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs +0 -43
  196. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs.map +0 -1
  197. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js +0 -43
  198. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js.map +0 -1
  199. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs +0 -1630
  200. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs.map +0 -1
  201. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js +0 -1630
  202. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +0 -1
@@ -5,16 +5,12 @@ import _sfc_main$1 from "../../../../globals/views/components/blocks/BlockFilter
5
5
  import { state as state$1 } from "../../../../globals/views/store/globals.js";
6
6
  import { actions } from "../../../../products/store/categories.js";
7
7
  import { state } from "../../store/marketplace.js";
8
- const _hoisted_1 = {
9
- style: { "min-height": "100%" },
10
- class: "h-min-100"
11
- };
12
- const _hoisted_2 = { class: "cols-2-1_3 h-100 z-index-3 pos-relative radius-big" };
13
- const _hoisted_3 = { class: "o-y-scroll br-r br-solid br-light z-index-2 desktop-only h-100 pos-relative" };
14
- const _hoisted_4 = { class: "pd-thin" };
15
- const _hoisted_5 = { class: "pd-medium radius-medium bg-light mn-b-thin" };
16
- const _hoisted_6 = { class: "" };
17
- const _hoisted_7 = { class: "rows-1" };
8
+ const _hoisted_1 = { class: "cols-2-1_3 z-index-3 pos-relative radius-big" };
9
+ const _hoisted_2 = { class: "o-y-scroll br-r br-solid br-light z-index-2 desktop-only h-100 pos-relative" };
10
+ const _hoisted_3 = { class: "pd-thin" };
11
+ const _hoisted_4 = { class: "pd-medium radius-medium bg-light mn-b-thin" };
12
+ const _hoisted_5 = { class: "" };
13
+ const _hoisted_6 = { class: "rows-1" };
18
14
  const _sfc_main = {
19
15
  __name: "Marketplace",
20
16
  setup(__props) {
@@ -122,55 +118,53 @@ const _sfc_main = {
122
118
  const _component_router_view = resolveComponent("router-view");
123
119
  return openBlock(), createElementBlock("div", _hoisted_1, [
124
120
  createElementVNode("div", _hoisted_2, [
125
- createElementVNode("div", _hoisted_3, [
126
- createVNode(_sfc_main$1, {
127
- filter: state.filter,
128
- "onUpdate:filter": _cache[0] || (_cache[0] = ($event) => state.filter = $event),
129
- options: state.filter.options,
130
- class: "h-100 w-100 pd-medium"
131
- }, null, 8, ["filter", "options"])
132
- ]),
133
- createElementVNode("div", _hoisted_4, [
134
- createElementVNode("header", _hoisted_5, [
135
- createElementVNode("h2", _hoisted_6, [
136
- _cache[3] || (_cache[3] = createElementVNode("span", { class: "" }, "Weed Deliveries in ", -1)),
137
- localPosition.value.city || localPosition.value.state || localPosition.value.country ? (openBlock(), createElementBlock("span", {
138
- key: 0,
139
- onClick: _cache[1] || (_cache[1] = (a) => {
140
- state$1.isOpenLocationPopup = true;
141
- }),
142
- class: "t-main t-semi cursor-pointer"
143
- }, [
144
- localPosition.value.city ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
145
- createTextVNode(toDisplayString(localPosition.value.city) + ", ", 1)
146
- ], 64)) : createCommentVNode("", true),
147
- localPosition.value.state ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
148
- createTextVNode(toDisplayString(localPosition.value.state) + ", ", 1)
149
- ], 64)) : createCommentVNode("", true),
150
- localPosition.value.country ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
151
- createTextVNode(toDisplayString(localPosition.value.country), 1)
152
- ], 64)) : createCommentVNode("", true)
153
- ])) : (openBlock(), createElementBlock("span", {
154
- key: 1,
155
- onClick: _cache[2] || (_cache[2] = (a) => {
156
- state$1.isOpenLocationPopup = true;
157
- }),
158
- class: "t-main t-semi cursor-pointer"
159
- }, "The World"))
160
- ])
161
- ]),
162
- createElementVNode("div", _hoisted_7, [
163
- createVNode(_component_router_view, null, {
164
- default: withCtx(({ Component, route: route2 }) => [
165
- (openBlock(), createBlock(resolveDynamicComponent(Component), {
166
- ref: "page",
167
- key: route2,
168
- localPosition: localPosition.value
169
- }, null, 8, ["localPosition"]))
170
- ]),
171
- _: 1
172
- })
121
+ createVNode(_sfc_main$1, {
122
+ filter: state.filter,
123
+ "onUpdate:filter": _cache[0] || (_cache[0] = ($event) => state.filter = $event),
124
+ options: state.filter.options,
125
+ class: "h-100 w-100 pd-medium"
126
+ }, null, 8, ["filter", "options"])
127
+ ]),
128
+ createElementVNode("div", _hoisted_3, [
129
+ createElementVNode("header", _hoisted_4, [
130
+ createElementVNode("h2", _hoisted_5, [
131
+ _cache[3] || (_cache[3] = createElementVNode("span", { class: "" }, "Weed Deliveries in ", -1)),
132
+ localPosition.value.city || localPosition.value.state || localPosition.value.country ? (openBlock(), createElementBlock("span", {
133
+ key: 0,
134
+ onClick: _cache[1] || (_cache[1] = (a) => {
135
+ state$1.isOpenLocationPopup = true;
136
+ }),
137
+ class: "t-main t-semi cursor-pointer"
138
+ }, [
139
+ localPosition.value.city ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
140
+ createTextVNode(toDisplayString(localPosition.value.city) + ", ", 1)
141
+ ], 64)) : createCommentVNode("", true),
142
+ localPosition.value.state ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
143
+ createTextVNode(toDisplayString(localPosition.value.state) + ", ", 1)
144
+ ], 64)) : createCommentVNode("", true),
145
+ localPosition.value.country ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
146
+ createTextVNode(toDisplayString(localPosition.value.country), 1)
147
+ ], 64)) : createCommentVNode("", true)
148
+ ])) : (openBlock(), createElementBlock("span", {
149
+ key: 1,
150
+ onClick: _cache[2] || (_cache[2] = (a) => {
151
+ state$1.isOpenLocationPopup = true;
152
+ }),
153
+ class: "t-main t-semi cursor-pointer"
154
+ }, "The World"))
173
155
  ])
156
+ ]),
157
+ createElementVNode("div", _hoisted_6, [
158
+ createVNode(_component_router_view, null, {
159
+ default: withCtx(({ Component, route: route2 }) => [
160
+ (openBlock(), createBlock(resolveDynamicComponent(Component), {
161
+ ref: "page",
162
+ key: route2,
163
+ localPosition: localPosition.value
164
+ }, null, 8, ["localPosition"]))
165
+ ]),
166
+ _: 1
167
+ })
174
168
  ])
175
169
  ])
176
170
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"Marketplace.vue.js","sources":["../../../../../../../../src/modules/marketplace/views/components/layouts/Marketplace.vue"],"sourcesContent":["<template>\n\t<div style=\"min-height: 100%;\" class=\"h-min-100\">\n\t\t\n\n\t\t <div class=\"cols-2-1_3 h-100 z-index-3 pos-relative radius-big\">\n\n\t\t\t<div class=\"o-y-scroll br-r br-solid br-light z-index-2 desktop-only h-100 pos-relative\">\n\t \t<BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 pd-medium\"\n\t\t />\n\t\t </div>\n\n\t\t\t<!-- Catalog wrapper -->\n\t\t\t<div class=\"pd-thin\">\n\t\t\t\t<header class=\"pd-medium radius-medium bg-light mn-b-thin\">\n\t\t \t<h2 class=\"\">\n\t\t \t\t<span class=\"\">Weed Deliveries in </span>\n\n\t\t \t\t<span \n\t\t \t\t\tv-if=\"localPosition.city || localPosition.state || localPosition.country\"\n\t\t \t\t\t@click=\"a => { globals.state.isOpenLocationPopup = true }\" \n\t\t \t\t\tclass=\"t-main t-semi cursor-pointer \"\n\t\t \t\t>\n\t\t \t\t\t\t<template v-if=\"localPosition.city\">{{localPosition.city}}, </template>\n\t\t \t\t\t\t<template v-if=\"localPosition.state\">{{localPosition.state}}, </template>\n\t\t \t\t\t\t<template v-if=\"localPosition.country\">{{localPosition.country}}</template>\n\t\t \t\t</span>\n\n\t\t \t\t<span v-else @click=\"a => { globals.state.isOpenLocationPopup = true }\" class=\"t-main t-semi cursor-pointer\">The World</span>\n\t\t \t</h2>\n\t\t\t\t</header>\n\n\t\t\t\t<div class=\"rows-1\">\n\t\t\t\t\t<router-view v-slot=\"{ Component, route }\">\n\t\t\t\t\t\t<component ref=\"page\" :key=\"route\" :localPosition=\"localPosition\" :is=\"Component\" />\n\t\t\t\t\t</router-view>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\t// Import libs\n\timport { computed, onMounted, watch, ref } from 'vue'\n\timport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\n\timport BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n\n\timport * as marketplace from '../../store/marketplace';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\tconst localPosition = ref({\n\t\tcity: null,\n\t\tstate: null,\n\t\tcountry: null\n\t});\n\n\tconst desktopFilters = ref(null)\n\n\tfunction denormalizeUrlParam(param) {\n\t return param\n\t .replace(/-/g, ' ') // Замена дефисов на пробелы\n\t .replace(/\\b\\w/g, l => l.toUpperCase()); // Преобразование первой буквы каждого слова в заглавную\n\t}\n\n\tfunction normalizeUrlParam(param) {\n\t return param\n\t .toLowerCase()\n\t .replace(/ /g, '-')\n\t .replace(/[^a-z0-9-]/g, '');\n\t}\n\n\tif (route.params) {\n // Загружаем новые значения из параметров маршрута в состояние\n let newState = {\n country: denormalizeUrlParam(route.params.country),\n state: denormalizeUrlParam(route.params.state),\n city: denormalizeUrlParam(route.params.city),\n };\n\n\t // Обновляем глобальное состояние\n\t localPosition.value = newState;\n\t}\n\n\tif (route.query) {\n\t \tconst query = route.query;\n\n\t\tmarketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n\t\tmarketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n\t\tmarketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n\t}\n\n\tif (route.query.sortParam) marketplace.state.sort.param = route.query.sortParam\n\tif (route.query.sortOrder) marketplace.state.sort.order = route.query.sortOrder\n\n\tonMounted(async () => {\n\t let options = {\n status: 'published',\n rootOnly: true\n }\n\n let categoriesFilter = await categories.actions.read(options);\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n\t})\n\n\twatch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n\t\tlet query = { ...route.query}\n\t\t\n\t\tquery.sortParam = newSortValue.param\n\t\tquery.sortOrder = newSortValue.order\n\t \n\t // replace the current route\n\t router.replace({ query });\n\t}, { deep: true });\n\n\n\twatch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n\t // Переводим фильтр в формат query\n\t const query = { ...route.query };\n\n\t // Удаляем старые значения фильтра из query\n\t Object.keys(oldFilterValue).forEach(key => {\n\t if (query[key]) {\n\t delete query[key];\n\t }\n\t });\n\n\t // Добавляем новые значения фильтра в query\n\t const newQueryValues = Object.fromEntries(\n\t Object.entries(newFilterValue)\n\t .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n\t .map(([key, value]) => [key, value.join(',')])\n\t );\n\n\t delete query.options;\n\t Object.assign(query, newQueryValues);\n\n\t // Обновляем маршрут с новым query\n\t router.replace({ query });\n\t}, { deep: true })\n\n\twatch(() => globals.state.position, (newPosition) => {\n\t // get the current route\n\t const currentRoute = { ...router.currentRoute.value };\n\t \n\t // create new parameters based on globals state position\n\t let newParams = {\n\t country: normalizeUrlParam(newPosition.country),\n\t state: normalizeUrlParam(newPosition.state),\n\t city: normalizeUrlParam(newPosition.city),\n\t };\n\t \n\t // update route params\n\t currentRoute.params = newParams;\n\t \n\t // replace the current route\n\t router.replace(currentRoute);\n\t}, { deep: true });\n\n const text = {\n locale: 'en',\n messages: {\n en: {\n\t \tmeta: {\n title: \"Marketplace – Shop Our Wide Selection of Quality Weed for Delivery\",\n description: \"Browse our marketplace of top-grade weed strains and choose from a variety of delivery options. Order now and have your favorite strains delivered straight to your door. Safe, fast, and reliable.\",\n }\n },\n ru: {\n\t meta: {\n title: \"Маркетплейс – Выбирайте из нашего ассортимента качественной травки для доставки\",\n description: \"Маркетплейс – Изучите наши продукты высокого качества и выбирайте из различных вариантов доставки. Закажите сейчас и получите свои любимые сорта на дом. Безопасно, быстро и надежно.\",\n }\n }\n }\n }\n\n \tconst { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","categories.actions","globals.state"],"mappings":"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"}
1
+ {"version":3,"file":"Marketplace.vue.js","sources":["../../../../../../../../src/modules/marketplace/views/components/layouts/Marketplace.vue"],"sourcesContent":["<template>\n\t <div class=\"cols-2-1_3 z-index-3 pos-relative radius-big\">\n\n\t\t<div class=\"o-y-scroll br-r br-solid br-light z-index-2 desktop-only h-100 pos-relative\">\n \t<BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 pd-medium\"\n\t />\n\t </div>\n\n\t\t<!-- Catalog wrapper -->\n\t\t<div class=\"pd-thin\">\n\t\t\t<header class=\"pd-medium radius-medium bg-light mn-b-thin\">\n\t \t<h2 class=\"\">\n\t \t\t<span class=\"\">Weed Deliveries in </span>\n\n\t \t\t<span \n\t \t\t\tv-if=\"localPosition.city || localPosition.state || localPosition.country\"\n\t \t\t\t@click=\"a => { globals.state.isOpenLocationPopup = true }\" \n\t \t\t\tclass=\"t-main t-semi cursor-pointer \"\n\t \t\t>\n\t \t\t\t\t<template v-if=\"localPosition.city\">{{localPosition.city}}, </template>\n\t \t\t\t\t<template v-if=\"localPosition.state\">{{localPosition.state}}, </template>\n\t \t\t\t\t<template v-if=\"localPosition.country\">{{localPosition.country}}</template>\n\t \t\t</span>\n\n\t \t\t<span v-else @click=\"a => { globals.state.isOpenLocationPopup = true }\" class=\"t-main t-semi cursor-pointer\">The World</span>\n\t \t</h2>\n\t\t\t</header>\n\n\t\t\t<div class=\"rows-1\">\n\t\t\t\t<router-view v-slot=\"{ Component, route }\">\n\t\t\t\t\t<component ref=\"page\" :key=\"route\" :localPosition=\"localPosition\" :is=\"Component\" />\n\t\t\t\t</router-view>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\t// Import libs\n\timport { computed, onMounted, watch, ref } from 'vue'\n\timport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\n\timport BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n\n\timport * as marketplace from '../../store/marketplace';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\tconst localPosition = ref({\n\t\tcity: null,\n\t\tstate: null,\n\t\tcountry: null\n\t});\n\n\tconst desktopFilters = ref(null)\n\n\tfunction denormalizeUrlParam(param) {\n\t return param\n\t .replace(/-/g, ' ') // Замена дефисов на пробелы\n\t .replace(/\\b\\w/g, l => l.toUpperCase()); // Преобразование первой буквы каждого слова в заглавную\n\t}\n\n\tfunction normalizeUrlParam(param) {\n\t return param\n\t .toLowerCase()\n\t .replace(/ /g, '-')\n\t .replace(/[^a-z0-9-]/g, '');\n\t}\n\n\tif (route.params) {\n // Загружаем новые значения из параметров маршрута в состояние\n let newState = {\n country: denormalizeUrlParam(route.params.country),\n state: denormalizeUrlParam(route.params.state),\n city: denormalizeUrlParam(route.params.city),\n };\n\n\t // Обновляем глобальное состояние\n\t localPosition.value = newState;\n\t}\n\n\tif (route.query) {\n\t \tconst query = route.query;\n\n\t\tmarketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n\t\tmarketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n\t\tmarketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n\t}\n\n\tif (route.query.sortParam) marketplace.state.sort.param = route.query.sortParam\n\tif (route.query.sortOrder) marketplace.state.sort.order = route.query.sortOrder\n\n\tonMounted(async () => {\n\t let options = {\n status: 'published',\n rootOnly: true\n }\n\n let categoriesFilter = await categories.actions.read(options);\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n\t})\n\n\twatch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n\t\tlet query = { ...route.query}\n\t\t\n\t\tquery.sortParam = newSortValue.param\n\t\tquery.sortOrder = newSortValue.order\n\t \n\t // replace the current route\n\t router.replace({ query });\n\t}, { deep: true });\n\n\n\twatch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n\t // Переводим фильтр в формат query\n\t const query = { ...route.query };\n\n\t // Удаляем старые значения фильтра из query\n\t Object.keys(oldFilterValue).forEach(key => {\n\t if (query[key]) {\n\t delete query[key];\n\t }\n\t });\n\n\t // Добавляем новые значения фильтра в query\n\t const newQueryValues = Object.fromEntries(\n\t Object.entries(newFilterValue)\n\t .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n\t .map(([key, value]) => [key, value.join(',')])\n\t );\n\n\t delete query.options;\n\t Object.assign(query, newQueryValues);\n\n\t // Обновляем маршрут с новым query\n\t router.replace({ query });\n\t}, { deep: true })\n\n\twatch(() => globals.state.position, (newPosition) => {\n\t // get the current route\n\t const currentRoute = { ...router.currentRoute.value };\n\t \n\t // create new parameters based on globals state position\n\t let newParams = {\n\t country: normalizeUrlParam(newPosition.country),\n\t state: normalizeUrlParam(newPosition.state),\n\t city: normalizeUrlParam(newPosition.city),\n\t };\n\t \n\t // update route params\n\t currentRoute.params = newParams;\n\t \n\t // replace the current route\n\t router.replace(currentRoute);\n\t}, { deep: true });\n\n const text = {\n locale: 'en',\n messages: {\n en: {\n\t \tmeta: {\n title: \"Marketplace – Shop Our Wide Selection of Quality Weed for Delivery\",\n description: \"Browse our marketplace of top-grade weed strains and choose from a variety of delivery options. Order now and have your favorite strains delivered straight to your door. Safe, fast, and reliable.\",\n }\n },\n ru: {\n\t meta: {\n title: \"Маркетплейс – Выбирайте из нашего ассортимента качественной травки для доставки\",\n description: \"Маркетплейс – Изучите наши продукты высокого качества и выбирайте из различных вариантов доставки. Закажите сейчас и получите свои любимые сорта на дом. Безопасно, быстро и надежно.\",\n }\n }\n }\n }\n\n \tconst { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","categories.actions","globals.state"],"mappings":"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"}
@@ -3,10 +3,13 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  ;/* empty css */
6
- ;/* empty css */
6
+ ;/* empty css */
7
7
  const Field = require("../../../../components/Field/Field.vue.cjs");
8
8
  const Radio = require("../../../../components/Radio/Radio.vue.cjs");
9
9
  ;/* empty css */
10
+ ;/* empty css */
11
+ ;/* empty css */
12
+ ;/* empty css */
10
13
  ;/* empty css */
11
14
  const CardSpot = require("../../../spots/components/blocks/CardSpot.vue.cjs");
12
15
  require("../../../spots/store/spots.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"FormDelivery.vue.cjs","sources":["../../../../../../../src/modules/orders/components/sections/FormDelivery.vue"],"sourcesContent":["<template>\n <Block title=\"Delivery\">\n <h5 class=\"font-second mn-b-thin\">Select delivery type</h5>\n \n <div class=\"mn-b-small flex-nowrap flex\" v-if=\"availableDeliveryTypes.length\">\n <Radio \n v-for=\"type in availableDeliveryTypes\"\n :key=\"type\"\n v-model:radio=\"order.delivery.type\"\n :label=\"capitalize(type)\"\n :value=\"type\"\n class=\"bg-white pd-medium radius-small w-100 mn-r-small\"\n />\n </div>\n <div v-else>No delivery options available.</div>\n\n <!-- Раздел для Pickup -->\n <template v-if=\"order.delivery.type === 'pickup'\">\n <h5 class=\"font-second mn-b-thin\">Select pickup spot</h5>\n <CardSpot\n v-for=\"(spot, index) in organization?.spots.filter(item => item.delivery?.includes('pickup'))\"\n :key=\"index\"\n :spot=\"spot\"\n :organization=\"order.organization\"\n :editAcess=\"false\"\n :showDeliveryOptions=\"false\"\n :showPaymentOptions=\"false\"\n :selected=\"order.delivery.spot === spot._id\"\n @click=\"() => order.delivery.spot = order.delivery.spot === spot._id ? null : spot._id\"\n class=\"mn-b-thin radius-medium o-hidden bg-white\"\n />\n </template>\n\n <!-- Раздел для Courier -->\n <template v-else-if=\"order.delivery.type === 'courier' || order.delivery.type === 'post'\">\n <h5 class=\"font-second mn-b-thin\">Address</h5>\n <Address\n label=\"Location\" \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\" \n placeholder=\"Enter your address\" \n class=\"bg-white radius-tl-medium radius-tr-medium t-black pd-medium\"\n @update:location=\"newLocation => { order.delivery.location = newLocation; }\"\n @update:address=\"newAddress => { order.delivery.address = newAddress; }\"\n />\n <!-- Карта доставки -->\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\"\n class=\"mn-b-thin radius-bl-medium radius-br-medium h-15r o-hidden\"\n @update:location=\"newLocation => { \n if (order.delivery.type === 'courier') order.delivery.location = newLocation;\n }\"\n @update:address=\"newAddress => { \n if (order.delivery.type === 'courier') order.delivery.address = newAddress;\n }\"\n />\n </template>\n <!-- Комментарии -->\n <Field \n v-model:field=\"order.comment\" \n placeholder=\"Comments regarding the address (apartment unit, floor level, building section)\"\n type=\"textarea\" \n class=\"bg-white pd-medium radius-small\"\n />\n </Block>\n</template>\n\n<script setup>\nimport { watch, computed, onMounted } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport CardSpot from '@martyrs/src/modules/spots/components/blocks/CardSpot.vue'; \nimport * as spotsModule from '@martyrs/src/modules/spots/store/spots.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Address from '@martyrs/src/components/Address/Address.vue';\nimport LocationMarker from '@martyrs/src/components/LocationMarker/LocationMarker.vue';\nimport Radio from '@martyrs/src/components/Radio/Radio.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\n\nconst props = defineProps({\n order: Object,\n organization: Object,\n});\n\nconst route = useRoute();\n\n// Сбрасываем spot при переключении типа доставки\nwatch(() => props.order.delivery.type, (newType) => {\n if (newType !== 'pickup') {\n props.order.delivery.spot = null;\n }\n});\n\n// Устанавливаем начальные данные из globals при монтировании\nonMounted(() => {\n if (globals.state.position) {\n props.order.delivery.address = globals.state.position.address;\n props.order.delivery.location = globals.state.position.location;\n }\n});\n\nconst availableDeliveryTypes = computed(() => {\n const types = new Set()\n props.organization?.spots?.forEach(spot => {\n spot.delivery?.forEach(type => types.add(type))\n })\n return Array.from(types)\n})\n\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\n</script>"],"names":["useRoute","watch","onMounted","globals.state","computed","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,UAAM,QAAQ;AAKAA,cAAQ,SAAA;AAGtBC,QAAAA,MAAM,MAAM,MAAM,MAAM,SAAS,MAAM,CAAC,YAAY;AAClD,UAAI,YAAY,UAAU;AACxB,cAAM,MAAM,SAAS,OAAO;AAAA,MAChC;AAAA,IACA,CAAC;AAGDC,QAAAA,UAAU,MAAM;AACd,UAAIC,QAAAA,MAAc,UAAU;AAC1B,cAAM,MAAM,SAAS,UAAUA,QAAa,MAAC,SAAS;AACtD,cAAM,MAAM,SAAS,WAAWA,QAAa,MAAC,SAAS;AAAA,MAC3D;AAAA,IACA,CAAC;AAED,UAAM,yBAAyBC,IAAQ,SAAC,MAAM;;AAC5C,YAAM,QAAQ,oBAAI,IAAG;AACrB,wBAAM,iBAAN,mBAAoB,UAApB,mBAA2B,QAAQ,UAAQ;;AACzC,SAAAC,MAAA,KAAK,aAAL,gBAAAA,IAAe,QAAQ,UAAQ,MAAM,IAAI,IAAI;AAAA,MAC9C;AACD,aAAO,MAAM,KAAK,KAAK;AAAA,IACzB,CAAC;AAED,aAAS,WAAW,KAAK;AACvB,aAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FormDelivery.vue.cjs","sources":["../../../../../../../src/modules/orders/components/sections/FormDelivery.vue"],"sourcesContent":["<template>\n <Block title=\"Delivery\">\n <h5 class=\"font-second mn-b-thin\">Select delivery type</h5>\n \n <div class=\"mn-b-small flex-nowrap flex\" v-if=\"availableDeliveryTypes.length\">\n <Radio \n v-for=\"type in availableDeliveryTypes\"\n :key=\"type\"\n v-model:radio=\"order.delivery.type\"\n :label=\"capitalize(type)\"\n :value=\"type\"\n class=\"bg-white pd-medium radius-small w-100 mn-r-small\"\n />\n </div>\n <div v-else>No delivery options available.</div>\n\n <!-- Раздел для Pickup -->\n <template v-if=\"order.delivery.type === 'pickup'\">\n <h5 class=\"font-second mn-b-thin\">Select pickup spot</h5>\n <CardSpot\n v-for=\"(spot, index) in organization?.spots.filter(item => item.delivery?.includes('pickup'))\"\n :key=\"index\"\n :spot=\"spot\"\n :organization=\"order.organization\"\n :editAcess=\"false\"\n :showDeliveryOptions=\"false\"\n :showPaymentOptions=\"false\"\n :selected=\"order.delivery.spot === spot._id\"\n @click=\"() => order.delivery.spot = order.delivery.spot === spot._id ? null : spot._id\"\n class=\"mn-b-thin radius-medium o-hidden bg-white\"\n />\n </template>\n\n <!-- Раздел для Courier -->\n <template v-else-if=\"order.delivery.type === 'courier' || order.delivery.type === 'post'\">\n <h5 class=\"font-second mn-b-thin\">Address</h5>\n <Address\n label=\"Location\" \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\" \n placeholder=\"Enter your address\" \n class=\"bg-white radius-tl-medium radius-tr-medium t-black pd-medium\"\n @update:location=\"newLocation => { order.delivery.location = newLocation; }\"\n @update:address=\"newAddress => { order.delivery.address = newAddress; }\"\n />\n <!-- Карта доставки -->\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\"\n class=\"mn-b-thin radius-bl-medium radius-br-medium h-15r o-hidden\"\n @update:location=\"newLocation => { \n if (order.delivery.type === 'courier') order.delivery.location = newLocation;\n }\"\n @update:address=\"newAddress => { \n if (order.delivery.type === 'courier') order.delivery.address = newAddress;\n }\"\n />\n </template>\n <!-- Комментарии -->\n <Field \n v-model:field=\"order.comment\" \n placeholder=\"Comments regarding the address (apartment unit, floor level, building section)\"\n type=\"textarea\" \n class=\"bg-white pd-medium radius-small\"\n />\n </Block>\n</template>\n\n<script setup>\nimport { watch, computed, onMounted } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport CardSpot from '@martyrs/src/modules/spots/components/blocks/CardSpot.vue'; \nimport * as spotsModule from '@martyrs/src/modules/spots/store/spots.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Address from '@martyrs/src/components/Address/Address.vue';\nimport LocationMarker from '@martyrs/src/components/LocationMarker/LocationMarker.vue';\nimport Radio from '@martyrs/src/components/Radio/Radio.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\n\nconst props = defineProps({\n order: Object,\n organization: Object,\n});\n\nconst route = useRoute();\n\n// Сбрасываем spot при переключении типа доставки\nwatch(() => props.order.delivery.type, (newType) => {\n if (newType !== 'pickup') {\n props.order.delivery.spot = null;\n }\n});\n\n// Устанавливаем начальные данные из globals при монтировании\nonMounted(() => {\n if (globals.state.position) {\n props.order.delivery.address = globals.state.position.address;\n props.order.delivery.location = globals.state.position.location;\n }\n});\n\nconst availableDeliveryTypes = computed(() => {\n const types = new Set()\n props.organization?.spots?.forEach(spot => {\n spot.delivery?.forEach(type => types.add(type))\n })\n return Array.from(types)\n})\n\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\n</script>"],"names":["useRoute","watch","onMounted","globals.state","computed","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,UAAM,QAAQ;AAKAA,cAAQ,SAAA;AAGtBC,QAAAA,MAAM,MAAM,MAAM,MAAM,SAAS,MAAM,CAAC,YAAY;AAClD,UAAI,YAAY,UAAU;AACxB,cAAM,MAAM,SAAS,OAAO;AAAA,MAChC;AAAA,IACA,CAAC;AAGDC,QAAAA,UAAU,MAAM;AACd,UAAIC,QAAAA,MAAc,UAAU;AAC1B,cAAM,MAAM,SAAS,UAAUA,QAAa,MAAC,SAAS;AACtD,cAAM,MAAM,SAAS,WAAWA,QAAa,MAAC,SAAS;AAAA,MAC3D;AAAA,IACA,CAAC;AAED,UAAM,yBAAyBC,IAAQ,SAAC,MAAM;;AAC5C,YAAM,QAAQ,oBAAI,IAAG;AACrB,wBAAM,iBAAN,mBAAoB,UAApB,mBAA2B,QAAQ,UAAQ;;AACzC,SAAAC,MAAA,KAAK,aAAL,gBAAAA,IAAe,QAAQ,UAAQ,MAAM,IAAI,IAAI;AAAA,MAC9C;AACD,aAAO,MAAM,KAAK,KAAK;AAAA,IACzB,CAAC;AAED,aAAS,WAAW,KAAK;AACvB,aAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,13 @@
1
1
  import { watch, onMounted, computed, createBlock, openBlock, withCtx, createElementVNode, createElementBlock, createCommentVNode, createVNode, Fragment, renderList } from "vue";
2
2
  import { useRoute } from "vue-router";
3
3
  /* empty css */
4
- /* empty css */
4
+ /* empty css */
5
5
  import Field from "../../../../components/Field/Field.vue.js";
6
6
  import _sfc_main$2 from "../../../../components/Radio/Radio.vue.js";
7
7
  /* empty css */
8
+ /* empty css */
9
+ /* empty css */
10
+ /* empty css */
8
11
  /* empty css */
9
12
  import CardSpot from "../../../spots/components/blocks/CardSpot.vue.js";
10
13
  import "../../../spots/store/spots.js";
@@ -1 +1 @@
1
- {"version":3,"file":"FormDelivery.vue.js","sources":["../../../../../../../src/modules/orders/components/sections/FormDelivery.vue"],"sourcesContent":["<template>\n <Block title=\"Delivery\">\n <h5 class=\"font-second mn-b-thin\">Select delivery type</h5>\n \n <div class=\"mn-b-small flex-nowrap flex\" v-if=\"availableDeliveryTypes.length\">\n <Radio \n v-for=\"type in availableDeliveryTypes\"\n :key=\"type\"\n v-model:radio=\"order.delivery.type\"\n :label=\"capitalize(type)\"\n :value=\"type\"\n class=\"bg-white pd-medium radius-small w-100 mn-r-small\"\n />\n </div>\n <div v-else>No delivery options available.</div>\n\n <!-- Раздел для Pickup -->\n <template v-if=\"order.delivery.type === 'pickup'\">\n <h5 class=\"font-second mn-b-thin\">Select pickup spot</h5>\n <CardSpot\n v-for=\"(spot, index) in organization?.spots.filter(item => item.delivery?.includes('pickup'))\"\n :key=\"index\"\n :spot=\"spot\"\n :organization=\"order.organization\"\n :editAcess=\"false\"\n :showDeliveryOptions=\"false\"\n :showPaymentOptions=\"false\"\n :selected=\"order.delivery.spot === spot._id\"\n @click=\"() => order.delivery.spot = order.delivery.spot === spot._id ? null : spot._id\"\n class=\"mn-b-thin radius-medium o-hidden bg-white\"\n />\n </template>\n\n <!-- Раздел для Courier -->\n <template v-else-if=\"order.delivery.type === 'courier' || order.delivery.type === 'post'\">\n <h5 class=\"font-second mn-b-thin\">Address</h5>\n <Address\n label=\"Location\" \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\" \n placeholder=\"Enter your address\" \n class=\"bg-white radius-tl-medium radius-tr-medium t-black pd-medium\"\n @update:location=\"newLocation => { order.delivery.location = newLocation; }\"\n @update:address=\"newAddress => { order.delivery.address = newAddress; }\"\n />\n <!-- Карта доставки -->\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\"\n class=\"mn-b-thin radius-bl-medium radius-br-medium h-15r o-hidden\"\n @update:location=\"newLocation => { \n if (order.delivery.type === 'courier') order.delivery.location = newLocation;\n }\"\n @update:address=\"newAddress => { \n if (order.delivery.type === 'courier') order.delivery.address = newAddress;\n }\"\n />\n </template>\n <!-- Комментарии -->\n <Field \n v-model:field=\"order.comment\" \n placeholder=\"Comments regarding the address (apartment unit, floor level, building section)\"\n type=\"textarea\" \n class=\"bg-white pd-medium radius-small\"\n />\n </Block>\n</template>\n\n<script setup>\nimport { watch, computed, onMounted } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport CardSpot from '@martyrs/src/modules/spots/components/blocks/CardSpot.vue'; \nimport * as spotsModule from '@martyrs/src/modules/spots/store/spots.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Address from '@martyrs/src/components/Address/Address.vue';\nimport LocationMarker from '@martyrs/src/components/LocationMarker/LocationMarker.vue';\nimport Radio from '@martyrs/src/components/Radio/Radio.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\n\nconst props = defineProps({\n order: Object,\n organization: Object,\n});\n\nconst route = useRoute();\n\n// Сбрасываем spot при переключении типа доставки\nwatch(() => props.order.delivery.type, (newType) => {\n if (newType !== 'pickup') {\n props.order.delivery.spot = null;\n }\n});\n\n// Устанавливаем начальные данные из globals при монтировании\nonMounted(() => {\n if (globals.state.position) {\n props.order.delivery.address = globals.state.position.address;\n props.order.delivery.location = globals.state.position.location;\n }\n});\n\nconst availableDeliveryTypes = computed(() => {\n const types = new Set()\n props.organization?.spots?.forEach(spot => {\n spot.delivery?.forEach(type => types.add(type))\n })\n return Array.from(types)\n})\n\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\n</script>"],"names":["globals.state","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,UAAM,QAAQ;AAKA,aAAQ;AAGtB,UAAM,MAAM,MAAM,MAAM,SAAS,MAAM,CAAC,YAAY;AAClD,UAAI,YAAY,UAAU;AACxB,cAAM,MAAM,SAAS,OAAO;AAAA,MAChC;AAAA,IACA,CAAC;AAGD,cAAU,MAAM;AACd,UAAIA,MAAc,UAAU;AAC1B,cAAM,MAAM,SAAS,UAAUA,MAAc,SAAS;AACtD,cAAM,MAAM,SAAS,WAAWA,MAAc,SAAS;AAAA,MAC3D;AAAA,IACA,CAAC;AAED,UAAM,yBAAyB,SAAS,MAAM;;AAC5C,YAAM,QAAQ,oBAAI,IAAG;AACrB,wBAAM,iBAAN,mBAAoB,UAApB,mBAA2B,QAAQ,UAAQ;;AACzC,SAAAC,MAAA,KAAK,aAAL,gBAAAA,IAAe,QAAQ,UAAQ,MAAM,IAAI,IAAI;AAAA,MAC9C;AACD,aAAO,MAAM,KAAK,KAAK;AAAA,IACzB,CAAC;AAED,aAAS,WAAW,KAAK;AACvB,aAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FormDelivery.vue.js","sources":["../../../../../../../src/modules/orders/components/sections/FormDelivery.vue"],"sourcesContent":["<template>\n <Block title=\"Delivery\">\n <h5 class=\"font-second mn-b-thin\">Select delivery type</h5>\n \n <div class=\"mn-b-small flex-nowrap flex\" v-if=\"availableDeliveryTypes.length\">\n <Radio \n v-for=\"type in availableDeliveryTypes\"\n :key=\"type\"\n v-model:radio=\"order.delivery.type\"\n :label=\"capitalize(type)\"\n :value=\"type\"\n class=\"bg-white pd-medium radius-small w-100 mn-r-small\"\n />\n </div>\n <div v-else>No delivery options available.</div>\n\n <!-- Раздел для Pickup -->\n <template v-if=\"order.delivery.type === 'pickup'\">\n <h5 class=\"font-second mn-b-thin\">Select pickup spot</h5>\n <CardSpot\n v-for=\"(spot, index) in organization?.spots.filter(item => item.delivery?.includes('pickup'))\"\n :key=\"index\"\n :spot=\"spot\"\n :organization=\"order.organization\"\n :editAcess=\"false\"\n :showDeliveryOptions=\"false\"\n :showPaymentOptions=\"false\"\n :selected=\"order.delivery.spot === spot._id\"\n @click=\"() => order.delivery.spot = order.delivery.spot === spot._id ? null : spot._id\"\n class=\"mn-b-thin radius-medium o-hidden bg-white\"\n />\n </template>\n\n <!-- Раздел для Courier -->\n <template v-else-if=\"order.delivery.type === 'courier' || order.delivery.type === 'post'\">\n <h5 class=\"font-second mn-b-thin\">Address</h5>\n <Address\n label=\"Location\" \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\" \n placeholder=\"Enter your address\" \n class=\"bg-white radius-tl-medium radius-tr-medium t-black pd-medium\"\n @update:location=\"newLocation => { order.delivery.location = newLocation; }\"\n @update:address=\"newAddress => { order.delivery.address = newAddress; }\"\n />\n <!-- Карта доставки -->\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\"\n class=\"mn-b-thin radius-bl-medium radius-br-medium h-15r o-hidden\"\n @update:location=\"newLocation => { \n if (order.delivery.type === 'courier') order.delivery.location = newLocation;\n }\"\n @update:address=\"newAddress => { \n if (order.delivery.type === 'courier') order.delivery.address = newAddress;\n }\"\n />\n </template>\n <!-- Комментарии -->\n <Field \n v-model:field=\"order.comment\" \n placeholder=\"Comments regarding the address (apartment unit, floor level, building section)\"\n type=\"textarea\" \n class=\"bg-white pd-medium radius-small\"\n />\n </Block>\n</template>\n\n<script setup>\nimport { watch, computed, onMounted } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport CardSpot from '@martyrs/src/modules/spots/components/blocks/CardSpot.vue'; \nimport * as spotsModule from '@martyrs/src/modules/spots/store/spots.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Address from '@martyrs/src/components/Address/Address.vue';\nimport LocationMarker from '@martyrs/src/components/LocationMarker/LocationMarker.vue';\nimport Radio from '@martyrs/src/components/Radio/Radio.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\n\nconst props = defineProps({\n order: Object,\n organization: Object,\n});\n\nconst route = useRoute();\n\n// Сбрасываем spot при переключении типа доставки\nwatch(() => props.order.delivery.type, (newType) => {\n if (newType !== 'pickup') {\n props.order.delivery.spot = null;\n }\n});\n\n// Устанавливаем начальные данные из globals при монтировании\nonMounted(() => {\n if (globals.state.position) {\n props.order.delivery.address = globals.state.position.address;\n props.order.delivery.location = globals.state.position.location;\n }\n});\n\nconst availableDeliveryTypes = computed(() => {\n const types = new Set()\n props.organization?.spots?.forEach(spot => {\n spot.delivery?.forEach(type => types.add(type))\n })\n return Array.from(types)\n})\n\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\n</script>"],"names":["globals.state","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,UAAM,QAAQ;AAKA,aAAQ;AAGtB,UAAM,MAAM,MAAM,MAAM,SAAS,MAAM,CAAC,YAAY;AAClD,UAAI,YAAY,UAAU;AACxB,cAAM,MAAM,SAAS,OAAO;AAAA,MAChC;AAAA,IACA,CAAC;AAGD,cAAU,MAAM;AACd,UAAIA,MAAc,UAAU;AAC1B,cAAM,MAAM,SAAS,UAAUA,MAAc,SAAS;AACtD,cAAM,MAAM,SAAS,WAAWA,MAAc,SAAS;AAAA,MAC3D;AAAA,IACA,CAAC;AAED,UAAM,yBAAyB,SAAS,MAAM;;AAC5C,YAAM,QAAQ,oBAAI,IAAG;AACrB,wBAAM,iBAAN,mBAAoB,UAApB,mBAA2B,QAAQ,UAAQ;;AACzC,SAAAC,MAAA,KAAK,aAAL,gBAAAA,IAAe,QAAQ,UAAQ,MAAM,IAAI,IAAI;AAAA,MAC9C;AACD,aAAO,MAAM,KAAK,KAAK;AAAA,IACzB,CAAC;AAED,aAAS,WAAW,KAAK;AACvB,aAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -8,7 +8,7 @@ const Feed = require("../../../../components/Feed/Feed.vue.cjs");
8
8
  const Popup = require("../../../../components/Popup/Popup.vue2.cjs");
9
9
  const SectionPageTitle = require("../../../globals/views/components/sections/SectionPageTitle.vue.cjs");
10
10
  const MembersAdd = require("../sections/MembersAdd.vue.cjs");
11
- ;/* empty css */
11
+ ;/* empty css */
12
12
  require("../../../../components/Menu/MenuItem.vue.cjs");
13
13
  const CardUser = require("../../../auth/views/components/blocks/CardUser.vue.cjs");
14
14
  const CardDepartment = require("../blocks/CardDepartment.vue.cjs");
@@ -6,7 +6,7 @@ import _sfc_main$4 from "../../../../components/Feed/Feed.vue.js";
6
6
  import _sfc_main$2 from "../../../../components/Popup/Popup.vue2.js";
7
7
  import _sfc_main$1 from "../../../globals/views/components/sections/SectionPageTitle.vue.js";
8
8
  import _sfc_main$3 from "../sections/MembersAdd.vue.js";
9
- /* empty css */
9
+ /* empty css */
10
10
  import "../../../../components/Menu/MenuItem.vue.js";
11
11
  import _sfc_main$5 from "../../../auth/views/components/blocks/CardUser.vue.js";
12
12
  import CardDepartment from "../blocks/CardDepartment.vue.js";
@@ -8,7 +8,7 @@ const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
8
8
  const Block = require("../../../../components/Block/Block.vue.cjs");
9
9
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
10
10
  const CardBlogpost = require("../../../community/components/blocks/CardBlogpost.vue.cjs");
11
- ;/* empty css */
11
+ ;/* empty css */
12
12
  require("../../../../components/Menu/MenuItem.vue.cjs");
13
13
  const DetailsTabSection = require("../sections/DetailsTabSection.vue.cjs");
14
14
  const Feed$1 = require("../../../events/components/sections/Feed.vue.cjs");
@@ -6,7 +6,7 @@ import _sfc_main$2 from "../../../../components/Tab/Tab.vue2.js";
6
6
  import _sfc_main$7 from "../../../../components/Block/Block.vue.js";
7
7
  import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
8
8
  import _sfc_main$4 from "../../../community/components/blocks/CardBlogpost.vue.js";
9
- /* empty css */
9
+ /* empty css */
10
10
  import "../../../../components/Menu/MenuItem.vue.js";
11
11
  import _sfc_main$1 from "../sections/DetailsTabSection.vue.js";
12
12
  import _sfc_main$5 from "../../../events/components/sections/Feed.vue.js";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Menu = require("../../../../components/Menu/Menu.vue2.cjs");
4
+ const Menu = require("../../../../components/Menu/Menu.vue.cjs");
5
5
  const MenuItem = require("../../../../components/Menu/MenuItem.vue.cjs");
6
6
  ;/* empty css */
7
7
  const IconProducts = require("../../../icons/entities/IconProducts.vue.cjs");
@@ -1,5 +1,5 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createVNode, withCtx, createBlock, createCommentVNode, unref, createElementVNode } from "vue";
2
- import _sfc_main$1 from "../../../../components/Menu/Menu.vue2.js";
2
+ import _sfc_main$1 from "../../../../components/Menu/Menu.vue.js";
3
3
  import _sfc_main$2 from "../../../../components/Menu/MenuItem.vue.js";
4
4
  /* empty css */
5
5
  import _sfc_main$4 from "../../../icons/entities/IconProducts.vue.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
- const Dropdown = require("../../../../components/Dropdown/Dropdown.vue.cjs");
5
+ const Dropdown = require("../../../../components/Dropdown/Dropdown.vue2.cjs");
6
6
  const Text = require("../../../../components/Text/Text.vue.cjs");
7
7
  const Chips = require("../../../../components/Chips/Chips.vue2.cjs");
8
8
  const IconFollowing = require("../../../icons/entities/IconFollowing.vue.cjs");
@@ -1,6 +1,6 @@
1
1
  import { resolveComponent, createElementBlock, openBlock, createBlock, createCommentVNode, createElementVNode, createVNode, renderSlot, withCtx, toDisplayString, unref } from "vue";
2
2
  import { useRoute } from "vue-router";
3
- import _sfc_main$1 from "../../../../components/Dropdown/Dropdown.vue.js";
3
+ import _sfc_main$1 from "../../../../components/Dropdown/Dropdown.vue2.js";
4
4
  import _sfc_main$7 from "../../../../components/Text/Text.vue.js";
5
5
  import _sfc_main$8 from "../../../../components/Chips/Chips.vue2.js";
6
6
  import _sfc_main$6 from "../../../icons/entities/IconFollowing.vue.js";
@@ -12,7 +12,7 @@ const gallery_backoffice_router = require("../../gallery/router/gallery.backoffi
12
12
  const payments_router = require("../../wallet/views/router/payments.router.cjs");
13
13
  const auth_validation = require("../../auth/views/middlewares/auth.validation.cjs");
14
14
  require("vue");
15
- ;/* empty css */
15
+ ;/* empty css */
16
16
  require("../../../components/Menu/MenuItem.vue.cjs");
17
17
  ;/* empty css */
18
18
  require("vue-router");
@@ -10,7 +10,7 @@ import gallery from "../../gallery/router/gallery.backoffice.router.js";
10
10
  import payments from "../../wallet/views/router/payments.router.js";
11
11
  import { requiresAuth } from "../../auth/views/middlewares/auth.validation.js";
12
12
  import "vue";
13
- /* empty css */
13
+ /* empty css */
14
14
  import "../../../components/Menu/MenuItem.vue.js";
15
15
  /* empty css */
16
16
  import "vue-router";
@@ -8,9 +8,12 @@ const Select = require("../../../../components/Select/Select.vue.cjs");
8
8
  const UploadImage = require("../../../../components/UploadImage/UploadImage.vue.cjs");
9
9
  const Field = require("../../../../components/Field/Field.vue.cjs");
10
10
  ;/* empty css */
11
- ;/* empty css */
11
+ ;/* empty css */
12
12
  const IconCheckmark = require("../../../icons/navigation/IconCheckmark.vue.cjs");
13
13
  ;/* empty css */
14
+ ;/* empty css */
15
+ ;/* empty css */
16
+ ;/* empty css */
14
17
  ;/* empty css */
15
18
  const Block = require("../../../../components/Block/Block.vue.cjs");
16
19
  const globals = require("../../../globals/views/store/globals.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryEdit.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/CategoryEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading\" class=\"pd-thin bg-white for-transition w-100\">\n <Block v-if=\"!MOBILE_APP\" class=\"radius-medium mn-b-thin flex-nowrap flex-v-center flex\">\n <h1 class=\"mn-r-auto\">\n {{route.params.category ? 'Edit Category' : 'Add Category'}}\n </h1>\n\n <Button \n :submit=\"onSubmit\"\n class=\"pd-small radius-medium bg-main t-black uppercase t-medium\"\n >\n Save Category \n </Button>\n </Block>\n \n <Block \n title=\"Profile\"\n class=\"mn-b-thin\"\n >\n <div class=\"mn-b-medium w-100 flex-nowrap gap-thin flex\">\n <UploadImage \n v-model:photo=\"categories.state.current.photo\"\n :uploadPath=\"'categories'\"\n class=\"w-8r aspect-1x1 o-hidden mn-r-small radius-extra\" \n />\n <Field\n v-model:field=\"categories.state.current.name\"\n label=\"Name\"\n placeholder=\"Enter category name\"\n class=\"w-100 mn-b-small bg-white radius-small pd-medium\"\n /> \n </div>\n\n <div class=\"mn-b-medium w-100 flex-nowrap gap-thin flex\">\n\n\n <Field\n v-model:field=\"categories.state.current.order\"\n label=\"Order\"\n :disabled=\"true\"\n class=\"w-40 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"categories.state.current.url\"\n label=\"URL\"\n placeholder=\"Enter category URL\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n \n </div>\n\n <Select \n v-model:select=\"categories.state.current.status\"\n label=\"Status\"\n :options=\"[\n 'draft', \n 'internal',\n 'published',\n 'removed'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 mn-b-small bg-white radius-small pd-medium\"\n />\n\n <div class=\"flex-v-center flex-nowrap flex\">\n <h4 class=\"mn-r-thin t-medium\">Localization</h4>\n \n <button \n @click=\"() => categories.state.current.translations.push({locale: '', text: ''})\" \n class=\"i-small pd-thin button-delete button\"\n >\n +\n </button>\n </div>\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in categories.state.current.translations\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.locale\"\n placeholder=\"Locale\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.text\"\n placeholder=\"Text\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div\n @click=\"() => categories.state.current.translations.splice(index, 1)\" \n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div>\n\n \n </Block>\n <!-- Filters -->\n <Block\n title=\"Filters\"\n placeholder=\"No filters added yet\"\n :actions=\"[{\n label: '+',\n function: () => categories.state.current.filters.push({name: '', url: ''})\n }]\"\n >\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in categories.state.current.filters\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Filter name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.options\"\n placeholder=\"Filter options divided by ,\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div\n @click=\"() => categories.state.current.filters.splice(index, 1)\" \n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div> \n </Block>\n </div>\n \n</template>\n\n<script setup>\n // Import libs\n import { computed, onUnmounted, onMounted, ref } from 'vue'\n import { useRoute,useRouter } from 'vue-router'\n \n import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n import Button from \"@martyrs/src/components/Button/Button.vue\";\n import Select from \"@martyrs/src/components/Select/Select.vue\";\n import UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\n import Field from \"@martyrs/src/components/Field/Field.vue\";\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n\n import IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue'\n\n // Import the new store structure\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'; \n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n const route = useRoute()\n const router = useRouter()\n\n const emits = defineEmits(['page-loading', 'page-loaded']);\n\n // Data prefetching\n const isLoading = ref(true)\n onMounted(async () => {\n emits('page-loading');\n if (route.params.category) {\n await categories.actions.read({url: route.params.category})\n } else {\n categories.actions.clean() // Adjusted based on the new store's method to reset the category state\n }\n\n emits('page-loaded');\n isLoading.value = false\n })\n\n // Accessing state\n const category = computed(() => categories.state.current)\n const routePath = computed(() => route.name)\n\n // Navigation Bar\n globals.state.navigation_bar.actions = [{\n component: IconCheckmark,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => onSubmit()\n }],\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n\n\n // Functions\n async function onSubmit() {\n if (route.params.category) {\n\n categories.state.current.creator = {\n type: categories.state.current.creator.type,\n hidden: categories.state.current.creator.hidden,\n target: categories.state.current.creator.target._id\n }\n\n categories.state.current.owner = {\n type: categories.state.current.owner.type,\n target: categories.state.current.owner.target._id\n }\n\n await categories.actions.update(categories.state.current)\n\n redirectTo()\n } else {\n\n categories.state.current.creator = {\n type: 'user',\n hidden: false,\n target: auth.state.user._id\n }\n\n categories.state.current.owner = {\n type: route.params._id ? 'organization' : 'platform',\n hidden: false,\n target: route.params._id ? route.params._id : null\n }\n\n await categories.actions.create(categories.state.current)\n redirectTo()\n }\n }\n\n function redirectTo () {\n router.push({\n name: 'Categories', \n params: { \n _id: route.params._id\n } \n })\n }\n</script>\n\n<style lang=\"scss\">\n /* Your styles here */\n</style>\n"],"names":["useRoute","useRouter","ref","onMounted","categories.actions","computed","categories.state","globals.state","IconCheckmark","auth.state","onUnmounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKE,UAAM,QAAQA,UAAQ,SAAA;AACtB,UAAM,SAASC,UAAS,UAAA;AAExB,UAAM,QAAQ;AAGd,UAAM,YAAYC,IAAAA,IAAI,IAAI;AAC1BC,QAAAA,UAAU,YAAY;AACpB,YAAM,cAAc;AACpB,UAAI,MAAM,OAAO,UAAU;AACzB,cAAMC,WAAAA,QAAmB,KAAK,EAAC,KAAK,MAAM,OAAO,SAAQ,CAAC;AAAA,MAChE,OAAW;AACLA,mBAAAA,QAAmB,MAAO;AAAA,MAChC;AAEI,YAAM,aAAa;AACnB,gBAAU,QAAQ;AAAA,IACnB,CAAA;AAGgBC,QAAQ,SAAC,MAAMC,WAAAA,MAAiB,OAAO;AACtCD,QAAQ,SAAC,MAAM,MAAM,IAAI;AAG3CE,kBAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC,cAAa;AAAA,MACxB,OAAO;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACD,WAAW,MAAMC,KAAU,MAAC,QAAQA,KAAU,MAAC,KAAK;AAAA,MACpD,QAAQ,MAAM,SAAQ;AAAA,IAC1B,CAAG,GAEFC,IAAAA,YAAY,MAAM;AACfH,oBAAc,eAAe,UAAU,CAAE;AAAA,IAC7C,CAAG;AAKD,mBAAe,WAAW;AACxB,UAAI,MAAM,OAAO,UAAU;AAEzBD,mBAAgB,MAAC,QAAQ,UAAU;AAAA,UACjC,MAAMA,WAAgB,MAAC,QAAQ,QAAQ;AAAA,UACvC,QAAQA,WAAgB,MAAC,QAAQ,QAAQ;AAAA,UACzC,QAAQA,WAAgB,MAAC,QAAQ,QAAQ,OAAO;AAAA,QACxD;AAEMA,mBAAgB,MAAC,QAAQ,QAAQ;AAAA,UAC/B,MAAMA,WAAgB,MAAC,QAAQ,MAAM;AAAA,UACrC,QAAQA,WAAgB,MAAC,QAAQ,MAAM,OAAO;AAAA,QACtD;AAEM,cAAMF,WAAkB,QAAC,OAAOE,WAAAA,MAAiB,OAAO;AAExD,mBAAU;AAAA,MAChB,OAAW;AAELA,mBAAgB,MAAC,QAAQ,UAAU;AAAA,UACjC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,QAAQG,KAAU,MAAC,KAAK;AAAA,QAChC;AAEMH,mBAAgB,MAAC,QAAQ,QAAQ;AAAA,UAC/B,MAAM,MAAM,OAAO,MAAM,iBAAiB;AAAA,UAC1C,QAAQ;AAAA,UACR,QAAQ,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM;AAAA,QACtD;AAEM,cAAMF,WAAkB,QAAC,OAAOE,WAAAA,MAAiB,OAAO;AACxD,mBAAU;AAAA,MAChB;AAAA,IACA;AAEE,aAAS,aAAc;AACrB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,KAAK,MAAM,OAAO;AAAA,QACnB;AAAA,MACF,CAAA;AAAA,IACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CategoryEdit.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/CategoryEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading\" class=\"pd-thin bg-white for-transition w-100\">\n <Block v-if=\"!MOBILE_APP\" class=\"radius-medium mn-b-thin flex-nowrap flex-v-center flex\">\n <h1 class=\"mn-r-auto\">\n {{route.params.category ? 'Edit Category' : 'Add Category'}}\n </h1>\n\n <Button \n :submit=\"onSubmit\"\n class=\"pd-small radius-medium bg-main t-black uppercase t-medium\"\n >\n Save Category \n </Button>\n </Block>\n \n <Block \n title=\"Profile\"\n class=\"mn-b-thin\"\n >\n <div class=\"mn-b-medium w-100 flex-nowrap gap-thin flex\">\n <UploadImage \n v-model:photo=\"categories.state.current.photo\"\n :uploadPath=\"'categories'\"\n class=\"w-8r aspect-1x1 o-hidden mn-r-small radius-extra\" \n />\n <Field\n v-model:field=\"categories.state.current.name\"\n label=\"Name\"\n placeholder=\"Enter category name\"\n class=\"w-100 mn-b-small bg-white radius-small pd-medium\"\n /> \n </div>\n\n <div class=\"mn-b-medium w-100 flex-nowrap gap-thin flex\">\n\n\n <Field\n v-model:field=\"categories.state.current.order\"\n label=\"Order\"\n :disabled=\"true\"\n class=\"w-40 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"categories.state.current.url\"\n label=\"URL\"\n placeholder=\"Enter category URL\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n \n </div>\n\n <Select \n v-model:select=\"categories.state.current.status\"\n label=\"Status\"\n :options=\"[\n 'draft', \n 'internal',\n 'published',\n 'removed'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 mn-b-small bg-white radius-small pd-medium\"\n />\n\n <div class=\"flex-v-center flex-nowrap flex\">\n <h4 class=\"mn-r-thin t-medium\">Localization</h4>\n \n <button \n @click=\"() => categories.state.current.translations.push({locale: '', text: ''})\" \n class=\"i-small pd-thin button-delete button\"\n >\n +\n </button>\n </div>\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in categories.state.current.translations\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.locale\"\n placeholder=\"Locale\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.text\"\n placeholder=\"Text\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div\n @click=\"() => categories.state.current.translations.splice(index, 1)\" \n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div>\n\n \n </Block>\n <!-- Filters -->\n <Block\n title=\"Filters\"\n placeholder=\"No filters added yet\"\n :actions=\"[{\n label: '+',\n function: () => categories.state.current.filters.push({name: '', url: ''})\n }]\"\n >\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in categories.state.current.filters\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Filter name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.options\"\n placeholder=\"Filter options divided by ,\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div\n @click=\"() => categories.state.current.filters.splice(index, 1)\" \n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div> \n </Block>\n </div>\n \n</template>\n\n<script setup>\n // Import libs\n import { computed, onUnmounted, onMounted, ref } from 'vue'\n import { useRoute,useRouter } from 'vue-router'\n \n import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n import Button from \"@martyrs/src/components/Button/Button.vue\";\n import Select from \"@martyrs/src/components/Select/Select.vue\";\n import UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\n import Field from \"@martyrs/src/components/Field/Field.vue\";\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n\n import IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue'\n\n // Import the new store structure\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'; \n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n const route = useRoute()\n const router = useRouter()\n\n const emits = defineEmits(['page-loading', 'page-loaded']);\n\n // Data prefetching\n const isLoading = ref(true)\n onMounted(async () => {\n emits('page-loading');\n if (route.params.category) {\n await categories.actions.read({url: route.params.category})\n } else {\n categories.actions.clean() // Adjusted based on the new store's method to reset the category state\n }\n\n emits('page-loaded');\n isLoading.value = false\n })\n\n // Accessing state\n const category = computed(() => categories.state.current)\n const routePath = computed(() => route.name)\n\n // Navigation Bar\n globals.state.navigation_bar.actions = [{\n component: IconCheckmark,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => onSubmit()\n }],\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n\n\n // Functions\n async function onSubmit() {\n if (route.params.category) {\n\n categories.state.current.creator = {\n type: categories.state.current.creator.type,\n hidden: categories.state.current.creator.hidden,\n target: categories.state.current.creator.target._id\n }\n\n categories.state.current.owner = {\n type: categories.state.current.owner.type,\n target: categories.state.current.owner.target._id\n }\n\n await categories.actions.update(categories.state.current)\n\n redirectTo()\n } else {\n\n categories.state.current.creator = {\n type: 'user',\n hidden: false,\n target: auth.state.user._id\n }\n\n categories.state.current.owner = {\n type: route.params._id ? 'organization' : 'platform',\n hidden: false,\n target: route.params._id ? route.params._id : null\n }\n\n await categories.actions.create(categories.state.current)\n redirectTo()\n }\n }\n\n function redirectTo () {\n router.push({\n name: 'Categories', \n params: { \n _id: route.params._id\n } \n })\n }\n</script>\n\n<style lang=\"scss\">\n /* Your styles here */\n</style>\n"],"names":["useRoute","useRouter","ref","onMounted","categories.actions","computed","categories.state","globals.state","IconCheckmark","auth.state","onUnmounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKE,UAAM,QAAQA,UAAQ,SAAA;AACtB,UAAM,SAASC,UAAS,UAAA;AAExB,UAAM,QAAQ;AAGd,UAAM,YAAYC,IAAAA,IAAI,IAAI;AAC1BC,QAAAA,UAAU,YAAY;AACpB,YAAM,cAAc;AACpB,UAAI,MAAM,OAAO,UAAU;AACzB,cAAMC,WAAAA,QAAmB,KAAK,EAAC,KAAK,MAAM,OAAO,SAAQ,CAAC;AAAA,MAChE,OAAW;AACLA,mBAAAA,QAAmB,MAAO;AAAA,MAChC;AAEI,YAAM,aAAa;AACnB,gBAAU,QAAQ;AAAA,IACnB,CAAA;AAGgBC,QAAQ,SAAC,MAAMC,WAAAA,MAAiB,OAAO;AACtCD,QAAQ,SAAC,MAAM,MAAM,IAAI;AAG3CE,kBAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC,cAAa;AAAA,MACxB,OAAO;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACD,WAAW,MAAMC,KAAU,MAAC,QAAQA,KAAU,MAAC,KAAK;AAAA,MACpD,QAAQ,MAAM,SAAQ;AAAA,IAC1B,CAAG,GAEFC,IAAAA,YAAY,MAAM;AACfH,oBAAc,eAAe,UAAU,CAAE;AAAA,IAC7C,CAAG;AAKD,mBAAe,WAAW;AACxB,UAAI,MAAM,OAAO,UAAU;AAEzBD,mBAAgB,MAAC,QAAQ,UAAU;AAAA,UACjC,MAAMA,WAAgB,MAAC,QAAQ,QAAQ;AAAA,UACvC,QAAQA,WAAgB,MAAC,QAAQ,QAAQ;AAAA,UACzC,QAAQA,WAAgB,MAAC,QAAQ,QAAQ,OAAO;AAAA,QACxD;AAEMA,mBAAgB,MAAC,QAAQ,QAAQ;AAAA,UAC/B,MAAMA,WAAgB,MAAC,QAAQ,MAAM;AAAA,UACrC,QAAQA,WAAgB,MAAC,QAAQ,MAAM,OAAO;AAAA,QACtD;AAEM,cAAMF,WAAkB,QAAC,OAAOE,WAAAA,MAAiB,OAAO;AAExD,mBAAU;AAAA,MAChB,OAAW;AAELA,mBAAgB,MAAC,QAAQ,UAAU;AAAA,UACjC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,QAAQG,KAAU,MAAC,KAAK;AAAA,QAChC;AAEMH,mBAAgB,MAAC,QAAQ,QAAQ;AAAA,UAC/B,MAAM,MAAM,OAAO,MAAM,iBAAiB;AAAA,UAC1C,QAAQ;AAAA,UACR,QAAQ,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM;AAAA,QACtD;AAEM,cAAMF,WAAkB,QAAC,OAAOE,WAAAA,MAAiB,OAAO;AACxD,mBAAU;AAAA,MAChB;AAAA,IACA;AAEE,aAAS,aAAc;AACrB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,KAAK,MAAM,OAAO;AAAA,QACnB;AAAA,MACF,CAAA;AAAA,IACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,9 +6,12 @@ import Select from "../../../../components/Select/Select.vue.js";
6
6
  import _sfc_main$4 from "../../../../components/UploadImage/UploadImage.vue.js";
7
7
  import Field from "../../../../components/Field/Field.vue.js";
8
8
  /* empty css */
9
- /* empty css */
9
+ /* empty css */
10
10
  import _sfc_main$1 from "../../../icons/navigation/IconCheckmark.vue.js";
11
11
  /* empty css */
12
+ /* empty css */
13
+ /* empty css */
14
+ /* empty css */
12
15
  /* empty css */
13
16
  import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
14
17
  import { state as state$2 } from "../../../globals/views/store/globals.js";
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryEdit.vue.js","sources":["../../../../../../../src/modules/products/components/pages/CategoryEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading\" class=\"pd-thin bg-white for-transition w-100\">\n <Block v-if=\"!MOBILE_APP\" class=\"radius-medium mn-b-thin flex-nowrap flex-v-center flex\">\n <h1 class=\"mn-r-auto\">\n {{route.params.category ? 'Edit Category' : 'Add Category'}}\n </h1>\n\n <Button \n :submit=\"onSubmit\"\n class=\"pd-small radius-medium bg-main t-black uppercase t-medium\"\n >\n Save Category \n </Button>\n </Block>\n \n <Block \n title=\"Profile\"\n class=\"mn-b-thin\"\n >\n <div class=\"mn-b-medium w-100 flex-nowrap gap-thin flex\">\n <UploadImage \n v-model:photo=\"categories.state.current.photo\"\n :uploadPath=\"'categories'\"\n class=\"w-8r aspect-1x1 o-hidden mn-r-small radius-extra\" \n />\n <Field\n v-model:field=\"categories.state.current.name\"\n label=\"Name\"\n placeholder=\"Enter category name\"\n class=\"w-100 mn-b-small bg-white radius-small pd-medium\"\n /> \n </div>\n\n <div class=\"mn-b-medium w-100 flex-nowrap gap-thin flex\">\n\n\n <Field\n v-model:field=\"categories.state.current.order\"\n label=\"Order\"\n :disabled=\"true\"\n class=\"w-40 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"categories.state.current.url\"\n label=\"URL\"\n placeholder=\"Enter category URL\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n \n </div>\n\n <Select \n v-model:select=\"categories.state.current.status\"\n label=\"Status\"\n :options=\"[\n 'draft', \n 'internal',\n 'published',\n 'removed'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 mn-b-small bg-white radius-small pd-medium\"\n />\n\n <div class=\"flex-v-center flex-nowrap flex\">\n <h4 class=\"mn-r-thin t-medium\">Localization</h4>\n \n <button \n @click=\"() => categories.state.current.translations.push({locale: '', text: ''})\" \n class=\"i-small pd-thin button-delete button\"\n >\n +\n </button>\n </div>\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in categories.state.current.translations\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.locale\"\n placeholder=\"Locale\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.text\"\n placeholder=\"Text\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div\n @click=\"() => categories.state.current.translations.splice(index, 1)\" \n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div>\n\n \n </Block>\n <!-- Filters -->\n <Block\n title=\"Filters\"\n placeholder=\"No filters added yet\"\n :actions=\"[{\n label: '+',\n function: () => categories.state.current.filters.push({name: '', url: ''})\n }]\"\n >\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in categories.state.current.filters\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Filter name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.options\"\n placeholder=\"Filter options divided by ,\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div\n @click=\"() => categories.state.current.filters.splice(index, 1)\" \n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div> \n </Block>\n </div>\n \n</template>\n\n<script setup>\n // Import libs\n import { computed, onUnmounted, onMounted, ref } from 'vue'\n import { useRoute,useRouter } from 'vue-router'\n \n import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n import Button from \"@martyrs/src/components/Button/Button.vue\";\n import Select from \"@martyrs/src/components/Select/Select.vue\";\n import UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\n import Field from \"@martyrs/src/components/Field/Field.vue\";\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n\n import IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue'\n\n // Import the new store structure\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'; \n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n const route = useRoute()\n const router = useRouter()\n\n const emits = defineEmits(['page-loading', 'page-loaded']);\n\n // Data prefetching\n const isLoading = ref(true)\n onMounted(async () => {\n emits('page-loading');\n if (route.params.category) {\n await categories.actions.read({url: route.params.category})\n } else {\n categories.actions.clean() // Adjusted based on the new store's method to reset the category state\n }\n\n emits('page-loaded');\n isLoading.value = false\n })\n\n // Accessing state\n const category = computed(() => categories.state.current)\n const routePath = computed(() => route.name)\n\n // Navigation Bar\n globals.state.navigation_bar.actions = [{\n component: IconCheckmark,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => onSubmit()\n }],\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n\n\n // Functions\n async function onSubmit() {\n if (route.params.category) {\n\n categories.state.current.creator = {\n type: categories.state.current.creator.type,\n hidden: categories.state.current.creator.hidden,\n target: categories.state.current.creator.target._id\n }\n\n categories.state.current.owner = {\n type: categories.state.current.owner.type,\n target: categories.state.current.owner.target._id\n }\n\n await categories.actions.update(categories.state.current)\n\n redirectTo()\n } else {\n\n categories.state.current.creator = {\n type: 'user',\n hidden: false,\n target: auth.state.user._id\n }\n\n categories.state.current.owner = {\n type: route.params._id ? 'organization' : 'platform',\n hidden: false,\n target: route.params._id ? route.params._id : null\n }\n\n await categories.actions.create(categories.state.current)\n redirectTo()\n }\n }\n\n function redirectTo () {\n router.push({\n name: 'Categories', \n params: { \n _id: route.params._id\n } \n })\n }\n</script>\n\n<style lang=\"scss\">\n /* Your styles here */\n</style>\n"],"names":["categories.actions","categories.state","globals.state","IconCheckmark","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKE,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAExB,UAAM,QAAQ;AAGd,UAAM,YAAY,IAAI,IAAI;AAC1B,cAAU,YAAY;AACpB,YAAM,cAAc;AACpB,UAAI,MAAM,OAAO,UAAU;AACzB,cAAMA,QAAmB,KAAK,EAAC,KAAK,MAAM,OAAO,SAAQ,CAAC;AAAA,MAChE,OAAW;AACLA,gBAAmB,MAAO;AAAA,MAChC;AAEI,YAAM,aAAa;AACnB,gBAAU,QAAQ;AAAA,IACnB,CAAA;AAGgB,aAAS,MAAMC,MAAiB,OAAO;AACtC,aAAS,MAAM,MAAM,IAAI;AAG3CC,YAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC;AAAAA,MACX,OAAO;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACD,WAAW,MAAMC,QAAW,QAAQA,QAAW,KAAK;AAAA,MACpD,QAAQ,MAAM,SAAQ;AAAA,IAC1B,CAAG,GAEF,YAAY,MAAM;AACfF,cAAc,eAAe,UAAU,CAAE;AAAA,IAC7C,CAAG;AAKD,mBAAe,WAAW;AACxB,UAAI,MAAM,OAAO,UAAU;AAEzBD,cAAiB,QAAQ,UAAU;AAAA,UACjC,MAAMA,MAAiB,QAAQ,QAAQ;AAAA,UACvC,QAAQA,MAAiB,QAAQ,QAAQ;AAAA,UACzC,QAAQA,MAAiB,QAAQ,QAAQ,OAAO;AAAA,QACxD;AAEMA,cAAiB,QAAQ,QAAQ;AAAA,UAC/B,MAAMA,MAAiB,QAAQ,MAAM;AAAA,UACrC,QAAQA,MAAiB,QAAQ,MAAM,OAAO;AAAA,QACtD;AAEM,cAAMD,QAAmB,OAAOC,MAAiB,OAAO;AAExD,mBAAU;AAAA,MAChB,OAAW;AAELA,cAAiB,QAAQ,UAAU;AAAA,UACjC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,QAAQG,QAAW,KAAK;AAAA,QAChC;AAEMH,cAAiB,QAAQ,QAAQ;AAAA,UAC/B,MAAM,MAAM,OAAO,MAAM,iBAAiB;AAAA,UAC1C,QAAQ;AAAA,UACR,QAAQ,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM;AAAA,QACtD;AAEM,cAAMD,QAAmB,OAAOC,MAAiB,OAAO;AACxD,mBAAU;AAAA,MAChB;AAAA,IACA;AAEE,aAAS,aAAc;AACrB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,KAAK,MAAM,OAAO;AAAA,QACnB;AAAA,MACF,CAAA;AAAA,IACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CategoryEdit.vue.js","sources":["../../../../../../../src/modules/products/components/pages/CategoryEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading\" class=\"pd-thin bg-white for-transition w-100\">\n <Block v-if=\"!MOBILE_APP\" class=\"radius-medium mn-b-thin flex-nowrap flex-v-center flex\">\n <h1 class=\"mn-r-auto\">\n {{route.params.category ? 'Edit Category' : 'Add Category'}}\n </h1>\n\n <Button \n :submit=\"onSubmit\"\n class=\"pd-small radius-medium bg-main t-black uppercase t-medium\"\n >\n Save Category \n </Button>\n </Block>\n \n <Block \n title=\"Profile\"\n class=\"mn-b-thin\"\n >\n <div class=\"mn-b-medium w-100 flex-nowrap gap-thin flex\">\n <UploadImage \n v-model:photo=\"categories.state.current.photo\"\n :uploadPath=\"'categories'\"\n class=\"w-8r aspect-1x1 o-hidden mn-r-small radius-extra\" \n />\n <Field\n v-model:field=\"categories.state.current.name\"\n label=\"Name\"\n placeholder=\"Enter category name\"\n class=\"w-100 mn-b-small bg-white radius-small pd-medium\"\n /> \n </div>\n\n <div class=\"mn-b-medium w-100 flex-nowrap gap-thin flex\">\n\n\n <Field\n v-model:field=\"categories.state.current.order\"\n label=\"Order\"\n :disabled=\"true\"\n class=\"w-40 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"categories.state.current.url\"\n label=\"URL\"\n placeholder=\"Enter category URL\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n \n </div>\n\n <Select \n v-model:select=\"categories.state.current.status\"\n label=\"Status\"\n :options=\"[\n 'draft', \n 'internal',\n 'published',\n 'removed'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 mn-b-small bg-white radius-small pd-medium\"\n />\n\n <div class=\"flex-v-center flex-nowrap flex\">\n <h4 class=\"mn-r-thin t-medium\">Localization</h4>\n \n <button \n @click=\"() => categories.state.current.translations.push({locale: '', text: ''})\" \n class=\"i-small pd-thin button-delete button\"\n >\n +\n </button>\n </div>\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in categories.state.current.translations\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.locale\"\n placeholder=\"Locale\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.text\"\n placeholder=\"Text\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div\n @click=\"() => categories.state.current.translations.splice(index, 1)\" \n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div>\n\n \n </Block>\n <!-- Filters -->\n <Block\n title=\"Filters\"\n placeholder=\"No filters added yet\"\n :actions=\"[{\n label: '+',\n function: () => categories.state.current.filters.push({name: '', url: ''})\n }]\"\n >\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in categories.state.current.filters\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Filter name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.options\"\n placeholder=\"Filter options divided by ,\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div\n @click=\"() => categories.state.current.filters.splice(index, 1)\" \n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div> \n </Block>\n </div>\n \n</template>\n\n<script setup>\n // Import libs\n import { computed, onUnmounted, onMounted, ref } from 'vue'\n import { useRoute,useRouter } from 'vue-router'\n \n import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n import Button from \"@martyrs/src/components/Button/Button.vue\";\n import Select from \"@martyrs/src/components/Select/Select.vue\";\n import UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\n import Field from \"@martyrs/src/components/Field/Field.vue\";\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n\n import IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue'\n\n // Import the new store structure\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'; \n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n const route = useRoute()\n const router = useRouter()\n\n const emits = defineEmits(['page-loading', 'page-loaded']);\n\n // Data prefetching\n const isLoading = ref(true)\n onMounted(async () => {\n emits('page-loading');\n if (route.params.category) {\n await categories.actions.read({url: route.params.category})\n } else {\n categories.actions.clean() // Adjusted based on the new store's method to reset the category state\n }\n\n emits('page-loaded');\n isLoading.value = false\n })\n\n // Accessing state\n const category = computed(() => categories.state.current)\n const routePath = computed(() => route.name)\n\n // Navigation Bar\n globals.state.navigation_bar.actions = [{\n component: IconCheckmark,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => onSubmit()\n }],\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n\n\n // Functions\n async function onSubmit() {\n if (route.params.category) {\n\n categories.state.current.creator = {\n type: categories.state.current.creator.type,\n hidden: categories.state.current.creator.hidden,\n target: categories.state.current.creator.target._id\n }\n\n categories.state.current.owner = {\n type: categories.state.current.owner.type,\n target: categories.state.current.owner.target._id\n }\n\n await categories.actions.update(categories.state.current)\n\n redirectTo()\n } else {\n\n categories.state.current.creator = {\n type: 'user',\n hidden: false,\n target: auth.state.user._id\n }\n\n categories.state.current.owner = {\n type: route.params._id ? 'organization' : 'platform',\n hidden: false,\n target: route.params._id ? route.params._id : null\n }\n\n await categories.actions.create(categories.state.current)\n redirectTo()\n }\n }\n\n function redirectTo () {\n router.push({\n name: 'Categories', \n params: { \n _id: route.params._id\n } \n })\n }\n</script>\n\n<style lang=\"scss\">\n /* Your styles here */\n</style>\n"],"names":["categories.actions","categories.state","globals.state","IconCheckmark","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKE,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAExB,UAAM,QAAQ;AAGd,UAAM,YAAY,IAAI,IAAI;AAC1B,cAAU,YAAY;AACpB,YAAM,cAAc;AACpB,UAAI,MAAM,OAAO,UAAU;AACzB,cAAMA,QAAmB,KAAK,EAAC,KAAK,MAAM,OAAO,SAAQ,CAAC;AAAA,MAChE,OAAW;AACLA,gBAAmB,MAAO;AAAA,MAChC;AAEI,YAAM,aAAa;AACnB,gBAAU,QAAQ;AAAA,IACnB,CAAA;AAGgB,aAAS,MAAMC,MAAiB,OAAO;AACtC,aAAS,MAAM,MAAM,IAAI;AAG3CC,YAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC;AAAAA,MACX,OAAO;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACD,WAAW,MAAMC,QAAW,QAAQA,QAAW,KAAK;AAAA,MACpD,QAAQ,MAAM,SAAQ;AAAA,IAC1B,CAAG,GAEF,YAAY,MAAM;AACfF,cAAc,eAAe,UAAU,CAAE;AAAA,IAC7C,CAAG;AAKD,mBAAe,WAAW;AACxB,UAAI,MAAM,OAAO,UAAU;AAEzBD,cAAiB,QAAQ,UAAU;AAAA,UACjC,MAAMA,MAAiB,QAAQ,QAAQ;AAAA,UACvC,QAAQA,MAAiB,QAAQ,QAAQ;AAAA,UACzC,QAAQA,MAAiB,QAAQ,QAAQ,OAAO;AAAA,QACxD;AAEMA,cAAiB,QAAQ,QAAQ;AAAA,UAC/B,MAAMA,MAAiB,QAAQ,MAAM;AAAA,UACrC,QAAQA,MAAiB,QAAQ,MAAM,OAAO;AAAA,QACtD;AAEM,cAAMD,QAAmB,OAAOC,MAAiB,OAAO;AAExD,mBAAU;AAAA,MAChB,OAAW;AAELA,cAAiB,QAAQ,UAAU;AAAA,UACjC,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,QAAQG,QAAW,KAAK;AAAA,QAChC;AAEMH,cAAiB,QAAQ,QAAQ;AAAA,UAC/B,MAAM,MAAM,OAAO,MAAM,iBAAiB;AAAA,UAC1C,QAAQ;AAAA,UACR,QAAQ,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM;AAAA,QACtD;AAEM,cAAMD,QAAmB,OAAOC,MAAiB,OAAO;AACxD,mBAAU;AAAA,MAChB;AAAA,IACA;AAEE,aAAS,aAAc;AACrB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,KAAK,MAAM,OAAO;AAAA,QACnB;AAAA,MACF,CAAA;AAAA,IACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,7 +5,7 @@ const Block = require("../../../../components/Block/Block.vue.cjs");
5
5
  const Button = require("../../../../components/Button/Button.vue2.cjs");
6
6
  const Field = require("../../../../components/Field/Field.vue.cjs");
7
7
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
8
- ;/* empty css */
8
+ ;/* empty css */
9
9
  const Popup = require("../../../../components/Popup/Popup.vue2.cjs");
10
10
  const CardOrderItem = require("../../../orders/components/blocks/CardOrderItem.vue.cjs");
11
11
  const CardSpot = require("../../../spots/components/blocks/CardSpot.vue.cjs");
@@ -3,7 +3,7 @@ import _sfc_main$4 from "../../../../components/Block/Block.vue.js";
3
3
  import _sfc_main$7 from "../../../../components/Button/Button.vue2.js";
4
4
  import Field from "../../../../components/Field/Field.vue.js";
5
5
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
6
- /* empty css */
6
+ /* empty css */
7
7
  import _sfc_main$1 from "../../../../components/Popup/Popup.vue2.js";
8
8
  import _sfc_main$3 from "../../../orders/components/blocks/CardOrderItem.vue.js";
9
9
  import CardSpot from "../../../spots/components/blocks/CardSpot.vue.js";
@@ -5,14 +5,14 @@ const vueRouter = require("vue-router");
5
5
  const Table = require("../../../../components/Table/Table.vue.cjs");
6
6
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
7
7
  const PlaceholderImage = require("../../../icons/placeholders/PlaceholderImage.vue.cjs");
8
- const Dropdown = require("../../../../components/Dropdown/Dropdown.vue.cjs");
8
+ const Dropdown = require("../../../../components/Dropdown/Dropdown.vue2.cjs");
9
9
  const Popup = require("../../../../components/Popup/Popup.vue2.cjs");
10
10
  const IconSettings = require("../../../icons/entities/IconSettings.vue.cjs");
11
11
  const IconEllipsis = require("../../../icons/navigation/IconEllipsis.vue.cjs");
12
12
  const StockAuditForm = require("../forms/StockAuditForm.vue.cjs");
13
13
  const ReorderSettingsForm = require("../forms/ReorderSettingsForm.vue.cjs");
14
14
  const StockHistoryView = require("../forms/StockHistoryView.vue.cjs");
15
- const ColumnSettingsMenu = ;/* empty css */
15
+ const ColumnSettingsMenu = require("../forms/ColumnSettingsMenu.vue.cjs");
16
16
  const products = require("../../store/products.cjs");
17
17
  const leftovers = require("../../store/leftovers.cjs");
18
18
  ;/* empty css */
@@ -3,7 +3,7 @@ import { useRoute, useRouter } from "vue-router";
3
3
  import Table from "../../../../components/Table/Table.vue.js";
4
4
  import _sfc_main$1 from "../../../../components/Feed/Feed.vue.js";
5
5
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
6
- import _sfc_main$3 from "../../../../components/Dropdown/Dropdown.vue.js";
6
+ import _sfc_main$3 from "../../../../components/Dropdown/Dropdown.vue2.js";
7
7
  import _sfc_main$5 from "../../../../components/Popup/Popup.vue2.js";
8
8
  import _sfc_main$2 from "../../../icons/entities/IconSettings.vue.js";
9
9
  import _sfc_main$4 from "../../../icons/navigation/IconEllipsis.vue.js";
@@ -24,7 +24,7 @@ const ProductsPopular = require("../sections/ProductsPopular.vue.cjs");
24
24
  const CardOrganization = require("../../../organizations/components/blocks/CardOrganization.vue.cjs");
25
25
  const _hoisted_1 = {
26
26
  key: 0,
27
- class: "h-100 w-100 mobile:pd-thin pd-small bg-white"
27
+ class: "w-100 mobile:pd-thin pd-small bg-white"
28
28
  };
29
29
  const _hoisted_2 = { class: "cols-2 mobile:cols-1 w-100 gap-medium" };
30
30
  const _hoisted_3 = { class: "pos-relative w-100 h-100 flex-column flex-h-center flex" };