@ozdao/martyrs 0.2.508 → 0.2.509

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 (230) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/{main-AWSb_d2P.cjs → main-D89N_jml.cjs} +1 -1
  6. package/dist/{main-Dq-UfO4G.js → main-DSiCr7yl.js} +7 -8
  7. package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
  8. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
  9. package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
  10. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
  11. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  12. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  13. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  14. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  15. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +4 -3
  16. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs.map +1 -1
  17. package/dist/martyrs/src/components/Feed/Carousel.vue.js +5 -4
  18. package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -1
  19. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
  20. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  21. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +2 -2
  22. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
  23. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
  24. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  25. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  26. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  27. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  28. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  29. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  30. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  31. package/dist/martyrs/src/components/Select/{Select.vue.cjs → Select.vue2.cjs} +2 -2
  32. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +1 -0
  33. package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
  34. package/dist/martyrs/src/components/Select/{Select.vue.cjs.map → Select.vue2.js.map} +1 -1
  35. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  36. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  37. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +17 -11
  38. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +18 -12
  40. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  41. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  42. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  43. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
  44. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  45. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  46. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  47. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  48. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  49. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  50. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  51. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -2
  52. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  53. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
  54. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  55. package/dist/martyrs/src/modules/globals/globals.client.js +15 -15
  56. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  57. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  58. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  59. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  61. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs +121 -107
  62. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs.map +1 -1
  63. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js +131 -117
  64. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js.map +1 -1
  65. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
  66. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  67. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
  68. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  69. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  71. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.cjs +3 -3
  72. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.js +3 -3
  73. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  75. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  77. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +138 -136
  78. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
  79. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +137 -135
  80. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  81. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +2 -2
  82. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  83. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  85. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  87. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  88. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  89. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  91. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
  93. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  95. package/dist/martyrs/src/modules/music/router/music.cjs +1 -1
  96. package/dist/martyrs/src/modules/music/router/music.js +1 -1
  97. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  98. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  99. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +61 -9
  100. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +61 -9
  102. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  103. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  105. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  107. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  108. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  109. package/dist/martyrs/src/modules/orders/orders.client.cjs +36 -38
  110. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  111. package/dist/martyrs/src/modules/orders/orders.client.js +36 -38
  112. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  113. package/dist/martyrs/src/modules/orders/store/models/customer.cjs +7 -0
  114. package/dist/martyrs/src/modules/orders/store/models/customer.cjs.map +1 -1
  115. package/dist/martyrs/src/modules/orders/store/models/customer.js +7 -0
  116. package/dist/martyrs/src/modules/orders/store/models/customer.js.map +1 -1
  117. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  119. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  121. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  123. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +3 -3
  124. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +3 -3
  125. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  127. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  129. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  131. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  133. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +17 -28
  134. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +17 -28
  136. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  137. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  138. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  139. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  141. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs +9 -1
  142. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs.map +1 -1
  143. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +9 -1
  144. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
  145. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
  146. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
  147. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  150. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  153. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  154. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  157. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  159. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs +10 -5
  160. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js +10 -5
  162. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +5 -2
  164. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +5 -2
  166. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  169. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  171. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  173. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  174. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  175. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  176. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  177. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  178. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  179. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  180. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  181. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  182. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  183. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
  184. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
  185. package/dist/martyrs.cjs.js +1 -1
  186. package/dist/martyrs.css +1 -1
  187. package/dist/martyrs.es.js +1 -1
  188. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
  189. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  190. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
  191. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  192. package/dist/orders.server.cjs +58 -0
  193. package/dist/orders.server.js +58 -0
  194. package/dist/products.server.cjs +11 -1
  195. package/dist/products.server.js +11 -1
  196. package/dist/style.css +30 -41
  197. package/dist/{web-DaBwwCQ5.cjs → web-XyQNm3cW.cjs} +1 -1
  198. package/dist/{web-BXajFCU2.js → web-gtBkwjra.js} +1 -1
  199. package/package.json +1 -1
  200. package/src/components/Feed/Carousel.vue +3 -1
  201. package/src/components/FieldBig/FieldBig.vue +2 -2
  202. package/src/modules/auth/views/components/pages/ProfileEdit.vue +17 -10
  203. package/src/modules/globals/views/components/partials/Footer.centered.vue +338 -0
  204. package/src/modules/globals/views/components/partials/Footer.vue +104 -99
  205. package/src/modules/globals/views/components/partials/Header.vue +1 -1
  206. package/src/modules/icons/logos/Logotype.vue +1 -1
  207. package/src/modules/inventory/components/pages/Inventory.vue +126 -119
  208. package/src/modules/orders/components/forms/FormCustomerDetails.vue +51 -0
  209. package/src/modules/orders/middlewares/customers.verifier.js +60 -0
  210. package/src/modules/orders/models/customer.model.js +18 -0
  211. package/src/modules/orders/orders.client.js +36 -38
  212. package/src/modules/orders/store/models/customer.js +7 -0
  213. package/src/modules/organizations/configs/navigation.organization.config.js +17 -26
  214. package/src/modules/products/TASKS.MD +1 -157
  215. package/src/modules/products/components/elements/QuantitySelector.vue +17 -9
  216. package/src/modules/products/components/pages/Product.vue +1 -1
  217. package/src/modules/products/components/pages/Products.vue +0 -1
  218. package/src/modules/products/components/sections/ProductsPopular.vue +9 -5
  219. package/src/modules/products/components/sections/ProductsRecommended.vue +4 -1
  220. package/src/modules/products/controllers/configs/products.lookup.config.js +11 -1
  221. package/src/styles/base/all.scss +9 -4
  222. package/src/styles/config.scss +10 -0
  223. package/src/styles/responsive.scss +2 -1
  224. package/src/styles/typography.scss +0 -5
  225. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
  226. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
  227. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  228. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  229. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  230. package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
@@ -18,133 +18,138 @@
18
18
  </header>
19
19
 
20
20
  <!-- Products Feed -->
21
- <Feed
22
- :search="true"
23
- v-model:filter="filter"
24
- v-model:sort="sort"
25
- :store="{
26
- read: (options) => products.actions.read(options),
27
- state: products.state
28
- }"
29
- :actions="[{
30
- key: 'settings',
31
- component: IconSettings,
32
- props: {
33
- class: 'h-3r pd-r-small pd-l-small flex-center flex bg-light t-black radius-small hover-scale-1 cursor-pointer'
34
- },
35
- handler: openViewSettings
36
- }]"
37
- :options="{
38
- limit: 15,
39
- lookup: ['inventory','categories'],
40
- owner: route.params._id,
41
- sortParam: sort.param,
42
- sortOrder: sort.order
43
- }"
44
- v-slot="{ items }"
45
- >
46
- <Table
47
- :columns="columns.filter(col => col.visible)"
48
- :items="items"
49
- class="bg-white z-index-1 br-solid br-1px br-light radius-medium"
21
+ <div class="rows-1">
22
+ <Feed
23
+ :search="true"
24
+ v-model:filter="filter"
25
+ v-model:sort="sort"
26
+ :store="{
27
+ read: (options) => products.actions.read(options),
28
+ state: products.state
29
+ }"
30
+ :actions="[{
31
+ key: 'settings',
32
+ component: IconSettings,
33
+ props: {
34
+ class: 'h-3r pd-r-small pd-l-small flex-center flex bg-light t-black radius-small hover-scale-1 cursor-pointer'
35
+ },
36
+ handler: openViewSettings
37
+ }]"
38
+ :options="{
39
+ limit: 15,
40
+ lookup: ['inventory','categories'],
41
+ owner: route.params._id,
42
+ sortParam: sort.param,
43
+ sortOrder: sort.order
44
+ }"
45
+ v-slot="{ items }"
50
46
  >
51
- <!-- Name column (was "product") -->
52
- <template #cell-name="{ row }">
53
- <div class="flex gap-small flex-nowrap flex-v-center">
54
- <img
55
- v-if="row.images?.length"
56
- :src="(FILE_SERVER_URL || '') + row.images[0]"
57
- alt="Product"
58
- class="w-3r h-3r radius-small bg-light object-fit-cover"
59
- />
60
- <PlaceholderImage v-else class="w-3r h-3r radius-small" />
61
- <span class="t-nowrap">{{ row.name || 'Unknown Product' }}</span>
62
- </div>
63
- </template>
64
-
65
- <!-- Categories -->
66
- <template #cell-category="{ row }">
67
- <span
68
- v-if="row.category?.length"
69
- v-for="cat in row.category"
70
- :key="cat._id"
71
- class="pd-nano mn-r-micro pd-r-small pd-l-small radius-small bg-light t-small"
72
- >
73
- {{ cat.name }}
74
- </span>
75
- <span v-else>-</span>
76
- </template>
47
+ <Table
48
+ :columns="columns.filter(col => col.visible)"
49
+ :items="items"
50
+ class="bg-white z-index-1 br-solid br-1px br-light radius-medium"
51
+ >
52
+ <!-- Name column (was "product") -->
53
+ <template #cell-name="{ row }">
54
+ <div class="w-max-20r t-trim flex gap-small flex-nowrap flex-v-center">
55
+ <img
56
+ v-if="row.images?.length"
57
+ :src="(FILE_SERVER_URL || '') + row.images[0]"
58
+ alt="Product"
59
+ class="w-3r h-3r radius-small bg-light object-fit-cover"
60
+ />
61
+ <PlaceholderImage v-else class="w-3r h-3r radius-small" />
62
+ <p class="t-trim t-nowrap">{{ row.name || 'Unknown Product' }}</p>
63
+ </div>
64
+ </template>
77
65
 
78
- <!-- Storages -->
79
- <template #cell-storages="{ row }">
80
- <div v-if="row.availabilityDetails?.length" class="flex flex-column gap-micro">
81
- <div
82
- v-for="avail in row.availabilityDetails"
83
- :key="avail._id"
84
- class="flex gap-small flex-v-center"
85
- >
86
- <span class="t-small">{{ avail.storageName || avail.storage }}:</span>
87
- <span class="t-medium">{{ avail.available || 0 }}</span>
66
+ <!-- Categories -->
67
+ <template #cell-category="{ row }">
68
+ <div class="w-max-10r flex-nowrap flex t-trim">
69
+ <p
70
+ v-if="row.category?.length"
71
+ v-for="cat in row.category"
72
+ :key="cat._id"
73
+ class="w-max t-trim pd-small mn-r-micro radius-small bg-light t-small"
74
+ >
75
+ {{ cat.name }}
76
+ </p>
77
+ <p v-else>-</p>
88
78
  </div>
89
- </div>
90
- <span v-else class="t-transp">No stock</span>
91
- </template>
79
+ </template>
92
80
 
93
- <!-- Available (replaces stock) -->
94
- <template #cell-available="{ row }">
95
- <div class="flex-column flex">
96
- <span class="d-block mn-b-thin">
97
- {{ row.available }} ·
98
- {{ row.available <= 5 ? 'Low' : row.available <= 10 ? 'Medium' : 'High' }}
99
- </span>
100
- <div class="w-100 h-micro radius-thin bg-light">
101
- <div
102
- class="h-100 radius-thin"
103
- :class="
104
- row.available <= 1
105
- ? 'bg-red t-white'
106
- : row.available <= 2
107
- ? 'bg-orange t-white'
108
- : 'bg-green t-white'
109
- "
110
- :style="`width: ${
111
- Math.min(
112
- (row.available / (row.alert !== undefined ? row.alert : 50)) * 100,
113
- 100
114
- )
115
- }%`"
116
- />
81
+ <!-- Storages -->
82
+ <template #cell-storages="{ row }">
83
+ <div class="w-max-10r flex-nowrap flex t-trim">
84
+ <p
85
+ v-if="row.availabilityDetails?.length"
86
+ v-for="avail in row.availabilityDetails"
87
+ :key="avail._id"
88
+ class="w-max t-trim pd-small mn-r-micro radius-small bg-light t-small"
89
+ >
90
+
91
+ <span class="t-medium">{{ avail.available || 0 }}</span> ·
92
+ <span class="t-small">{{ avail.storageName || avail.storage }}:</span>
93
+ </p>
94
+ <p v-else>No stock</p>
117
95
  </div>
118
- </div>
119
- </template>
120
- <!-- Price -->
121
- <template #cell-price="{ row }">
122
- {{ formatPrice(row.price || 0) }}
123
- </template>
96
+ </template>
124
97
 
125
- <!-- Actions -->
126
- <template #cell-actions="{ row }">
127
- <Dropdown
128
- :label="{ component: IconEllipsis, class: 't-transp i-medium' }"
129
- class="cursor-pointer aspect-1x1 pd-nano radius-small hover-bg-light"
130
- align="right"
131
- >
132
- <div class="bg-white radius-small">
133
- <button @click="openStockAudit(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
134
- Audit Stock
135
- </button>
136
- <button @click="openStockHistory(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
137
- Stock History
138
- </button>
139
- <button @click="openReorderSettings(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
140
- Set Alerts
141
- </button>
98
+ <!-- Available (replaces stock) -->
99
+ <template #cell-available="{ row }">
100
+ <div class="flex-column flex">
101
+ <span class="d-block mn-b-thin">
102
+ {{ row.available }} ·
103
+ {{ row.available <= 5 ? 'Low' : row.available <= 10 ? 'Medium' : 'High' }}
104
+ </span>
105
+ <div class="w-100 h-micro radius-thin bg-light">
106
+ <div
107
+ class="h-100 radius-thin"
108
+ :class="
109
+ row.available <= 1
110
+ ? 'bg-red t-white'
111
+ : row.available <= 2
112
+ ? 'bg-orange t-white'
113
+ : 'bg-green t-white'
114
+ "
115
+ :style="`width: ${
116
+ Math.min(
117
+ (row.available / (row.alert !== undefined ? row.alert : 50)) * 100,
118
+ 100
119
+ )
120
+ }%`"
121
+ />
122
+ </div>
142
123
  </div>
143
- </Dropdown>
144
- </template>
145
- </Table>
146
- </Feed>
124
+ </template>
125
+ <!-- Price -->
126
+ <template #cell-price="{ row }">
127
+ {{ formatPrice(row.price || 0) }}
128
+ </template>
147
129
 
130
+ <!-- Actions -->
131
+ <template #cell-actions="{ row }">
132
+ <Dropdown
133
+ :label="{ component: IconEllipsis, class: 't-transp i-medium' }"
134
+ class="cursor-pointer aspect-1x1 pd-nano radius-small hover-bg-light"
135
+ align="right"
136
+ >
137
+ <div class="bg-white radius-small">
138
+ <button @click="openStockAudit(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
139
+ Audit Stock
140
+ </button>
141
+ <button @click="openStockHistory(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
142
+ Stock History
143
+ </button>
144
+ <button @click="openReorderSettings(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
145
+ Set Alerts
146
+ </button>
147
+ </div>
148
+ </Dropdown>
149
+ </template>
150
+ </Table>
151
+ </Feed>
152
+ </div>
148
153
  <!-- Modals -->
149
154
  <Popup
150
155
  :isPopupOpen="showAuditModal"
@@ -210,6 +215,8 @@ import Feed from '@martyrs/src/components/Feed/Feed.vue'
210
215
  import PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'
211
216
  import Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'
212
217
  import Popup from '@martyrs/src/components/Popup/Popup.vue'
218
+ import Chips from '@martyrs/src/components/Chips/Chips.vue'
219
+
213
220
 
214
221
  // Icons
215
222
  import IconSettings from '@martyrs/src/modules/icons/entities/IconSettings.vue'
@@ -63,6 +63,48 @@
63
63
  class="bg-white pd-small radius-small mn-b-thin"
64
64
  />
65
65
 
66
+ <!-- Address Fields -->
67
+ <div class="mn-t-small">
68
+ <h3 class="t-medium mn-b-thin">Address Information</h3>
69
+
70
+ <Field
71
+ v-model:field="customer.address.country"
72
+ label="Country"
73
+ placeholder="Enter country"
74
+ class="bg-white pd-small radius-small mn-b-thin"
75
+ />
76
+
77
+ <Field
78
+ v-model:field="customer.address.addressLine1"
79
+ label="Address Line 1"
80
+ placeholder="Enter address line 1"
81
+ class="bg-white pd-small radius-small mn-b-thin"
82
+ required
83
+ />
84
+
85
+ <Field
86
+ v-model:field="customer.address.addressLine2"
87
+ label="Address Line 2"
88
+ placeholder="Enter address line 2"
89
+ class="bg-white pd-small radius-small mn-b-thin"
90
+ />
91
+
92
+ <div class="gap-thin flex-justify-between flex-nowrap flex">
93
+ <Field
94
+ v-model:field="customer.address.city"
95
+ label="City"
96
+ placeholder="Enter city"
97
+ class="bg-white pd-small radius-small w-100"
98
+ />
99
+ <Field
100
+ v-model:field="customer.address.postalCode"
101
+ label="Postal Code"
102
+ placeholder="Enter postal code"
103
+ class="bg-white pd-small radius-small w-100"
104
+ />
105
+ </div>
106
+ </div>
107
+
66
108
  <Select
67
109
  :select="statusSelected"
68
110
  :options="[
@@ -152,6 +194,15 @@ watch(customer, (newCustomer) => {
152
194
  if (!newCustomer.socials) {
153
195
  newCustomer.socials = { instagram: null, telegram: null, whatsapp: null };
154
196
  }
197
+ if (!newCustomer.address) {
198
+ newCustomer.address = {
199
+ country: null,
200
+ addressLine1: null,
201
+ addressLine2: null,
202
+ city: null,
203
+ postalCode: null
204
+ };
205
+ }
155
206
  }
156
207
  }, { immediate: true, deep: true });
157
208
 
@@ -94,6 +94,36 @@ export default (function (db) {
94
94
  type: Validator.schema().string().oneOf(['user', 'organization', 'User', 'Organization']),
95
95
  target: Validator.schema().string().pattern(/^[0-9a-fA-F]{24}$/)
96
96
  })
97
+ },
98
+ 'address.country': {
99
+ rule: 'optional',
100
+ validator: Validator.schema()
101
+ .string()
102
+ .max(100, 'Country must not exceed 100 characters')
103
+ },
104
+ 'address.addressLine1': {
105
+ rule: 'optional',
106
+ validator: Validator.schema()
107
+ .string()
108
+ .max(255, 'Address line 1 must not exceed 255 characters')
109
+ },
110
+ 'address.addressLine2': {
111
+ rule: 'optional',
112
+ validator: Validator.schema()
113
+ .string()
114
+ .max(255, 'Address line 2 must not exceed 255 characters')
115
+ },
116
+ 'address.city': {
117
+ rule: 'optional',
118
+ validator: Validator.schema()
119
+ .string()
120
+ .max(100, 'City must not exceed 100 characters')
121
+ },
122
+ 'address.postalCode': {
123
+ rule: 'optional',
124
+ validator: Validator.schema()
125
+ .string()
126
+ .max(20, 'Postal code must not exceed 20 characters')
97
127
  }
98
128
  });
99
129
 
@@ -174,6 +204,36 @@ export default (function (db) {
174
204
  validator: Validator.schema()
175
205
  .string()
176
206
  .oneOf(['active', 'inactive', 'blocked'])
207
+ },
208
+ 'address.country': {
209
+ rule: 'optional',
210
+ validator: Validator.schema()
211
+ .string()
212
+ .max(100, 'Country must not exceed 100 characters')
213
+ },
214
+ 'address.addressLine1': {
215
+ rule: 'optional',
216
+ validator: Validator.schema()
217
+ .string()
218
+ .max(255, 'Address line 1 must not exceed 255 characters')
219
+ },
220
+ 'address.addressLine2': {
221
+ rule: 'optional',
222
+ validator: Validator.schema()
223
+ .string()
224
+ .max(255, 'Address line 2 must not exceed 255 characters')
225
+ },
226
+ 'address.city': {
227
+ rule: 'optional',
228
+ validator: Validator.schema()
229
+ .string()
230
+ .max(100, 'City must not exceed 100 characters')
231
+ },
232
+ 'address.postalCode': {
233
+ rule: 'optional',
234
+ validator: Validator.schema()
235
+ .string()
236
+ .max(20, 'Postal code must not exceed 20 characters')
177
237
  }
178
238
  });
179
239
 
@@ -45,6 +45,24 @@ export default db => {
45
45
  enum: ['active', 'inactive', 'blocked'],
46
46
  default: 'active',
47
47
  },
48
+ address: {
49
+ country: {
50
+ type: String,
51
+ },
52
+ addressLine1: {
53
+ type: String,
54
+ required: true,
55
+ },
56
+ addressLine2: {
57
+ type: String,
58
+ },
59
+ city: {
60
+ type: String,
61
+ },
62
+ postalCode: {
63
+ type: String,
64
+ },
65
+ },
48
66
  },
49
67
  {
50
68
  timestamps: {
@@ -184,44 +184,42 @@ function initializeOrders(app, store, router, options = {}) {
184
184
 
185
185
  const ModuleOrder = {
186
186
  initialize: initializeOrders,
187
- views: {
188
- store: {
189
- storeOrders,
190
- storeShopcart,
191
- storeTestimonials,
192
- storeCustomers,
193
- storeApplications,
194
- },
195
- router: {
196
- routerOrders,
197
- routerCustomers,
198
- routerApplications,
199
- },
200
- components: {
201
- // Pages
202
- Orders,
203
- Customers,
204
- Applications,
205
- // Order,
206
- OrderCreate,
207
- OrderCreateBackoffice,
208
- // Favorites,
209
- // Blocks
210
- CardOrderItem,
211
- CardOrder,
212
- CardOrderUser,
213
- CardCustomer,
214
- StatusHistory,
215
- // Sections
216
- FormCustomerDetails,
217
- AskToLogin,
218
- FormDelivery,
219
- EmptyState,
220
- Succes,
221
- FormPayment,
222
- // Partials
223
- ShopCart,
224
- },
187
+ store: {
188
+ storeOrders,
189
+ storeShopcart,
190
+ storeTestimonials,
191
+ storeCustomers,
192
+ storeApplications,
193
+ },
194
+ router: {
195
+ routerOrders,
196
+ routerCustomers,
197
+ routerApplications,
198
+ },
199
+ components: {
200
+ // Pages
201
+ Orders,
202
+ Customers,
203
+ Applications,
204
+ // Order,
205
+ OrderCreate,
206
+ OrderCreateBackoffice,
207
+ // Favorites,
208
+ // Blocks
209
+ CardOrderItem,
210
+ CardOrder,
211
+ CardOrderUser,
212
+ CardCustomer,
213
+ StatusHistory,
214
+ // Sections
215
+ FormCustomerDetails,
216
+ AskToLogin,
217
+ FormDelivery,
218
+ EmptyState,
219
+ Succes,
220
+ FormPayment,
221
+ // Partials
222
+ ShopCart,
225
223
  },
226
224
  };
227
225
 
@@ -36,6 +36,13 @@ const customerInitState = {
36
36
  telegram: null,
37
37
  whatsapp: null,
38
38
  },
39
+ address: {
40
+ country: null,
41
+ addressLine1: null,
42
+ addressLine2: null,
43
+ city: null,
44
+ postalCode: null,
45
+ },
39
46
  };
40
47
 
41
48
  export default customerInitState;
@@ -110,7 +110,13 @@ export const navigationItems = [
110
110
  },
111
111
  {
112
112
  category: 'Management',
113
- visible: (auth, route) => auth.state && auth.state.user && auth.state.user._id, // Only for authenticated users
113
+ visible: (auth, route) => hasAccess(
114
+ route.params._id,
115
+ 'products',
116
+ 'read',
117
+ auth.accesses,
118
+ auth.access.roles
119
+ ),
114
120
  items: [
115
121
  {
116
122
  title: 'Categories',
@@ -161,7 +167,13 @@ export const navigationItems = [
161
167
  },
162
168
  {
163
169
  category: 'Orders & Sales',
164
- visible: (auth, route) => auth.state && auth.state.user && auth.state.user._id, // Only for authenticated users
170
+ visible: (auth, route) => hasAccess(
171
+ route.params._id,
172
+ 'orders',
173
+ 'read',
174
+ auth.accesses,
175
+ auth.access.roles
176
+ ),
165
177
  items: [
166
178
  {
167
179
  title: 'Orders',
@@ -169,14 +181,7 @@ export const navigationItems = [
169
181
  route: (auth, route) => ({
170
182
  name: 'OrganizationOrdersList',
171
183
  params: { _id: route.params._id }
172
- }),
173
- visible: (auth, route) => hasAccess(
174
- route.params._id,
175
- 'orders',
176
- 'read',
177
- auth.accesses,
178
- auth.access.roles
179
- )
184
+ })
180
185
  },
181
186
  {
182
187
  title: 'Customers',
@@ -184,14 +189,7 @@ export const navigationItems = [
184
189
  route: (auth, route) => ({
185
190
  name: 'OrganizationCustomers',
186
191
  params: { _id: route.params._id }
187
- }),
188
- visible: (auth, route) => hasAccess(
189
- route.params._id,
190
- 'orders',
191
- 'read',
192
- auth.accesses,
193
- auth.access.roles
194
- )
192
+ })
195
193
  },
196
194
  {
197
195
  title: 'Applications',
@@ -199,14 +197,7 @@ export const navigationItems = [
199
197
  route: (auth, route) => ({
200
198
  name: 'OrganizationApplications',
201
199
  params: { _id: route.params._id }
202
- }),
203
- visible: (auth, route) => hasAccess(
204
- route.params._id,
205
- 'orders',
206
- 'read',
207
- auth.accesses,
208
- auth.access.roles
209
- )
200
+ })
210
201
  },
211
202
  ]
212
203
  },