@ozdao/martyrs 0.2.541 → 0.2.542

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 (171) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +3 -6
  4. package/dist/_virtual/index2.cjs.map +1 -1
  5. package/dist/_virtual/index2.js +2 -5
  6. package/dist/_virtual/index2.js.map +1 -1
  7. package/dist/{main-BpBtIUcJ.js → main-ByKkD9qa.js} +2724 -3143
  8. package/dist/main-Czyu-VcC.cjs +11 -0
  9. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.cjs +30 -21
  10. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.cjs.map +1 -1
  11. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js +32 -23
  12. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +1 -1
  13. package/dist/martyrs/src/components/FieldTags/FieldTags.vue2.cjs +235 -0
  14. package/dist/martyrs/src/components/FieldTags/FieldTags.vue2.cjs.map +1 -0
  15. package/dist/martyrs/src/components/FieldTags/FieldTags.vue2.js +235 -0
  16. package/dist/martyrs/src/components/FieldTags/FieldTags.vue2.js.map +1 -0
  17. package/dist/martyrs/src/components/Marquee/Marquee.vue.cjs +17 -8
  18. package/dist/martyrs/src/components/Marquee/Marquee.vue.cjs.map +1 -1
  19. package/dist/martyrs/src/components/Marquee/Marquee.vue.js +17 -8
  20. package/dist/martyrs/src/components/Marquee/Marquee.vue.js.map +1 -1
  21. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs → Spoiler.vue2.cjs} +2 -2
  22. package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.cjs.map +1 -0
  23. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
  24. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs.map → Spoiler.vue2.js.map} +1 -1
  25. package/dist/martyrs/src/components/Tab/{Tab.vue.cjs → Tab.vue2.cjs} +2 -2
  26. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -0
  27. package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
  28. package/dist/martyrs/src/components/Tab/{Tab.vue.cjs.map → Tab.vue2.js.map} +1 -1
  29. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.cjs +161 -42
  30. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.cjs.map +1 -1
  31. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +162 -43
  32. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +1 -1
  33. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  34. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  35. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  36. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  38. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +4 -4
  40. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  46. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +0 -3
  47. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs.map +1 -1
  48. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +0 -3
  49. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  50. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +2 -2
  51. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +21 -21
  52. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  53. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  54. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  55. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  56. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  57. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  58. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  59. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  60. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  61. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js +1 -1
  62. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
  63. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  64. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +1 -1
  65. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +1 -1
  66. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +11 -11
  67. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +12 -12
  68. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +16 -16
  69. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +16 -16
  70. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +1 -1
  71. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  72. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  73. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  74. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  75. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  76. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +3 -4
  77. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
  78. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +3 -4
  79. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
  80. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +1 -1
  81. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +20 -20
  82. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +3 -4
  83. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  84. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +3 -4
  85. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  86. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +4 -5
  87. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
  88. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +4 -5
  89. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  90. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +3 -4
  91. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  92. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +3 -4
  93. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  94. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  95. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +7 -7
  96. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  97. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  98. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  99. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  100. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +46 -38
  101. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  102. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +52 -44
  103. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  104. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  105. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  106. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  107. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  108. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +2 -2
  109. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +2 -2
  110. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
  111. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  112. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  113. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  114. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
  115. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  116. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  117. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  118. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  119. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  120. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
  121. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
  122. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  123. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +11 -11
  124. package/dist/martyrs.cjs.js +1 -1
  125. package/dist/martyrs.css +1 -1
  126. package/dist/martyrs.es.js +1 -1
  127. package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.cjs +1 -1
  128. package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js +1 -1
  129. package/dist/style.css +129 -129
  130. package/dist/{web-DsdyXC8n.js → web-BklgIiYr.js} +1 -1
  131. package/dist/{web-C9bVm6Nw.cjs → web-CQBm7C6L.cjs} +1 -1
  132. package/package.json +1 -1
  133. package/src/components/FieldTags/BlockTags.vue +28 -16
  134. package/src/components/FieldTags/FieldTags.vue +327 -508
  135. package/src/components/Marquee/Marquee.vue +25 -14
  136. package/src/components/UploadImage/UploadImage.vue +192 -18
  137. package/src/modules/community/components/pages/CreateBlogPost.vue +0 -1
  138. package/src/modules/products/components/pages/CategoryEdit.vue +53 -39
  139. package/dist/_virtual/index3.cjs +0 -5
  140. package/dist/_virtual/index3.cjs.map +0 -1
  141. package/dist/_virtual/index3.js +0 -5
  142. package/dist/_virtual/index3.js.map +0 -1
  143. package/dist/main-7IA3UHca.cjs +0 -11
  144. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +0 -480
  145. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs.map +0 -1
  146. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +0 -480
  147. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js.map +0 -1
  148. package/dist/martyrs/src/components/FieldTags/create-tags.cjs +0 -52
  149. package/dist/martyrs/src/components/FieldTags/create-tags.cjs.map +0 -1
  150. package/dist/martyrs/src/components/FieldTags/create-tags.js +0 -52
  151. package/dist/martyrs/src/components/FieldTags/create-tags.js.map +0 -1
  152. package/dist/martyrs/src/components/FieldTags/tag-input.vue2.cjs +0 -32
  153. package/dist/martyrs/src/components/FieldTags/tag-input.vue2.cjs.map +0 -1
  154. package/dist/martyrs/src/components/FieldTags/tag-input.vue2.js +0 -32
  155. package/dist/martyrs/src/components/FieldTags/tag-input.vue2.js.map +0 -1
  156. package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.cjs +0 -329
  157. package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.cjs.map +0 -1
  158. package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.js +0 -329
  159. package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.js.map +0 -1
  160. package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
  161. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
  162. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.cjs +0 -39
  163. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.cjs.map +0 -1
  164. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +0 -39
  165. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +0 -1
  166. package/src/components/FieldTags/FieldTagsNew.vue +0 -366
  167. package/src/components/FieldTags/README.md +0 -513
  168. package/src/components/FieldTags/create-tags.js +0 -97
  169. package/src/components/FieldTags/tag-input.vue +0 -55
  170. package/src/components/FieldTags/vue-tags-input.props.js +0 -342
  171. package/src/components/FieldTags/vue-tags-input.scss +0 -149
@@ -1 +1 @@
1
- {"version":3,"file":"Organization.vue.js","sources":["../../../../../../../src/modules/organizations/components/pages/Organization.vue"],"sourcesContent":["<template>\n\t<div v-if=\"organizationData\" class=\"pd-thin for-transition w-100\">\n\n\t\t<!-- <Breadcrumbs class=\"mn-b-thin pd-medium bg-light radius-medium\"/> -->\n\t\t<!-- <pre>{{organization.state.current}}</pre> -->\n\n\t\t<section class=\"flex-center flex flex-column t-center pd-medium radius-medium bg-light mn-b-thin\">\n\n\t\t\t<Dropdown \n\t\t\t\tv-if=\"auth.state.user._id !== organization.state.current.owner\"\n\t\t\t\t:label=\"{ component: IconEllipsis, class: 'i-regular t-transp' }\"\n\t\t\t\t:align=\"'right'\"\n\t\t\t\tclass=\"cursor-pointer pos-absolute pos-r-regular pos-t-regular pd-thin radius-extra \"\n\t\t\t>\n\t\t\t\t<section \n\t\t\t\t\tclass=\"bg-black pd-thin radius-small\"\n\t\t\t\t>\n\t\t\t\t\t<FormReport \n\t\t\t\t\t\t:user=\"auth.state.user._id\"\n\t\t\t\t\t\t:type=\"'organization'\" \n\t\t\t\t\t\t:target=\"organization.state.current._id\" \n\t\t\t\t\t\t:text=\"'Report'\" \n\t\t\t\t\t\tclass=\"w-100\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<button \n\t\t\t\t\t\t\tclass=\"w-100 bg-black br-solid br-1px br-white-transp-20 t-white button-small button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tReport\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</FormReport>\n\n\t\t\t\t\t<ButtonToggleMembership\n\t\t\t\t\t\tv-if=\"auth.state.user._id && auth.state.user._id !== organization.state.current.owner\"\n\t\t\t :user=\"auth.state.user._id\"\n\t\t\t :type=\"'organization'\" \n\t \t:role=\"'blocked'\" \n\t\t\t :target=\"organization.state.current._id\" \n\t\t\t :status=\"organization.state.current.isBlocked\" \n\t\t\t :text=\"{create: 'Block', remove: 'Unblock'}\"\n\t\t\t @updateMembership=\"event => handleMembershipUpdate(event, 'isBlocked')\"\n\t\t\t class=\"t-white w-100 mn-t-thin bg-red\" \n\t \t/>\n\t\t\t\t</section>\n\t </Dropdown>\n\n\t <router-link\n\t\t\t\tv-if=\"auth.state.user._id === organization.state.current.owner\"\n\t :to=\"{\n\t\t\t\t\tname: 'Organization Edit', \n\t\t\t\t\tparams: {\n\t\t\t\t\t\t_id: organization.state.current._id\n\t\t\t\t\t}\n\t\t\t\t}\" \n\t class=\"\n\t \tz-index-2\n\t cursor-pointer \n\t pos-absolute pos-t-regular pos-r-regular\n\t radius-extra pd-thin bg-second\n\t \"\n\t >\n\t <IconEdit\n\t class=\"i-regular\"\n\t classes=\"fill-white\"\n\t />\n\t </router-link>\n\n\n\t\t\t<img loading=\"lazy\" \n\t\t\t\tv-if=\"organization.state.current.profile.photo\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + organization.state.current.profile.photo\" \n\t\t\t\tclass=\"radius-medium bg-light flex-center flex mn-b-small w-8r\" \n\t\t\t/>\n\n\t\t\t<PlaceholderOrganizationPic\n\t\t\t\tv-else\n\t\t\t\tclass=\"radius-medium mn-b-small i-extra\"\n\t\t\t/>\n\n\t <h1\n\t \tclass=\"mn-b-thin\"\n\t >\n\t \t\t{{ organization.state.current.profile.name }}\n\t \t</h1>\n\n\t \t<div class=\"flex-center pd-r-thin pd-l-thin flex-nowrap flex mn-t-thin bg-white radius-extra w-max\">\n\t \t\t<IconFollowing class=\"i-medium mn-r-micro t-transp\"/>\n\n\t <p class=\"mn-t-thin p-medium t-medium uppercase mn-b-thin\">{{organization.state.current.numberOfSubscribers}} followers</p>\n\n\t <ButtonToggleMembership\n\t v-if=\"\n\t\t \tauth.state.user._id \n\t\t \t&& route.params._id \n\t\t \t&& route.params._id !== auth.state.user._id\n\t\t \t&& organization.state.current.owner !== auth.state.user._id\n\t\t \"\n\t :user=\"auth.state.user._id\"\n\t :type=\"'organization'\" \n\t :role=\"'subscriber'\" \n\t :target=\"organization.state.current._id\" \n\t :status=\"organization.state.current.isSubscriber\" \n\t :text=\"{create: '+', remove: '-'}\"\n\t @updateMembership=\"event => handleMembershipUpdate(event, 'isSubscriber', 'numberOfSubscribers')\"\n\t class=\" mn-l-thin p-medium t-medium radius-extra i-semi\" \n\t />\n\t </div>\n\n\t <!-- <p class=\"w-max-50r mn-t-regular mn-b-medium p-semi\">\n\t \t\t<Text :text=\"organization.profile.description || ''\" :showToggleText=\"true\" :maxLen=\"320\" />\n\t \t</p> -->\n\n\t \t<Chips \n\t \tv-if=\"organization.state.current.profile?.tags?.length > 0\" \n\t \t:chips=\"organization.state.current.profile.tags\"\n\t \tclass=\"p-medium\"\n\t \t/>\n\n\n\t <h4 \n\t \tv-if=\"Object.values(organization.state.current.socials).some(value => value)\" \n\t \tclass=\"mn-t-small mn-b-thin\"\n\t >\n\t \t\tFind us in socials\n\t \t</h4>\n\t \t\n\t \t<Socials \n\t \t\t:telegram=\"organization.state.current.socials.telegram\"\n\t \t\t:facebook=\"organization.state.current.socials.facebook\"\n\t \t\t:instagram=\"organization.state.current.socials.instagram\"\n\t \t\t:twitter=\"organization.state.current.socials.twitter\"\n\t \t\t:youtube=\"organization.state.current.socials.youtube\"\n\t \t/>\n\t\t</section>\n\t\t\n\t\t<!-- Backoffice -->\n\t\t<div v-if=\"MOBILE_APP\" @click=\"() => globals.state.isOpenSidebar = !globals.state.isOpenSidebar\" class=\"pos-relative\">\n\t\t\t<div class=\"bg-light radius-medium pd-medium\">\n\t\t\t\t<p class=\"t-medium t-black-transp-60\">\n\t\t\t\t\tShow Menu\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- Organization Info Section -->\n\t\t<!-- <div class=\"pos-relative\">\n\t\t\t<div class=\"bg-light radius-medium pd-medium\">\n\t\t\t\t<h3 class=\"mn-b-small\">About {{ organization.state.current?.profile?.name }}</h3>\n\t\t\t\t<p v-if=\"organization.state.current?.profile?.description\" class=\"t-medium\">\n\t\t\t\t\t{{ organization.state.current.profile.description }}\n\t\t\t\t</p>\n\t\t\t\t<p v-else class=\"t-medium t-black-transp-60\">\n\t\t\t\t\tNo description available.\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div> -->\n\n\t\t<Products/>\n\t</div>\n</template>\n\n<script setup>\n\timport { computed, reactive, ref, onMounted, watch } from 'vue'\n\timport { useRoute, useRouter } from 'vue-router'\n\t// Import components\n\timport Breadcrumbs \tfrom '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Block \t\tfrom '@martyrs/src/components/Block/Block.vue'\n\timport Dropdown from \"@martyrs/src/components/Dropdown/Dropdown.vue\";\n\timport Text \t\tfrom '@martyrs/src/components/Text/Text.vue'\n\timport Chips from '@martyrs/src/components/Chips/Chips.vue'\n\t// Mobile Module\n\timport Menu from '@martyrs/src/components/Menu/Menu.vue'\n\timport MenuItem from '@martyrs/src/components/Menu/MenuItem.vue'\n\t// Icons\n\timport IconFollowing from '@martyrs/src/modules/icons/entities/IconFollowing.vue'\n\timport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n\timport IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue'\n\timport PlaceholderOrganizationPic from '@martyrs/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue'\n\t// Organizations\n\timport { \n\t\tDepartmentSub, \n\t\tButtonToggleMembership, \n\t\tContacts, \n\t\tRating, \n\t\tSocials \n\t} from '@martyrs/src/modules/organizations/organizations.client.js'\n\timport User from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue';\n\t// Report Module\n\timport FormReport from '@martyrs/src/modules/reports/components/sections/FormReport.vue'\n\t// Products modu;e\n\timport Products from '@martyrs/src//modules/products/components/pages/Products.vue'\n\t// Import state\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n\n\timport * as organization from '@martyrs/src/modules/organizations/store/organizations.js';\n\timport membershipsStore from '@martyrs/src/modules/organizations/store/memberships.store.js';\n\timport departmentsStore from '@martyrs/src/modules/organizations/store/departments.store.js';\n\t// Init router\n\tconst router \t= useRouter()\n\tconst route \t= useRoute()\n\n\tconst organizationData = ref(null)\n\n\tonMounted(async () => {\n\t\t\n\t\torganizationData.value = await organization.actions.read({\n\t\t\t_id: route.params._id, \n\t\t\tuser: auth.state.user._id,\n\t\t\tlookup: ['memberships']\n\t\t})\n\n \t\tawait membershipsStore.read({target: route.params._id})\n\n \t\tif (typeof gtag === 'function') {\n\t\t\tgtag('event', 'view_organization', {\n\t\t\t\torganization_id: route.params._id,\n\t\t\t\torganization_name: organizationData.value?.profile?.name || 'unknown',\n\t\t\t\tpage_path: window.location.pathname,\n\t\t\t\tuser_id: auth.state.user._id || 'anonymous',\n\t\t\t\ttimestamp: new Date().toISOString()\n\t\t\t});\n\t\t}\n\t})\n\n\t// Methods\n\tconst handleMembershipUpdate = ({ membership, status, target }, statusName, statusNumber) => {\n\t membershipsStore.handleMembershipUpdate(organization.state.current, membership, status, target, statusName, statusNumber)\n\t};\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["organization.actions","auth.state","organization.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsMiB,cAAS;AACzB,UAAM,QAAS,SAAQ;AAEvB,UAAM,mBAAmB,IAAI,IAAI;AAEjC,cAAU,YAAY;AAErB,uBAAiB,QAAQ,MAAMA,QAAqB,KAAK;AAAA,QACxD,KAAK,MAAM,OAAO;AAAA,QAClB,MAAMC,MAAW,KAAK;AAAA,QACtB,QAAQ,CAAC,aAAa;AAAA,MACzB,CAAG;AAEA,YAAM,iBAAiB,KAAK,EAAC,QAAQ,MAAM,OAAO,IAAG,CAAC;AAEtD,UAAI,OAAO,SAAS,YAAY;AAChC,aAAK,SAAS,qBAAqB;AAAA,UAClC,iBAAiB,MAAM,OAAO;AAAA,UAC9B,mBAAmB,iBAAiB,OAAO,SAAS,QAAQ;AAAA,UAC5D,WAAW,OAAO,SAAS;AAAA,UAC3B,SAASA,MAAW,KAAK,OAAO;AAAA,UAChC,YAAW,oBAAI,KAAI,GAAG,YAAW;AAAA,QACrC,CAAI;AAAA,MACF;AAAA,IACD,CAAC;AAGD,UAAM,yBAAyB,CAAC,EAAE,YAAY,QAAQ,OAAM,GAAI,YAAY,iBAAiB;AAC3F,uBAAiB,uBAAuBC,QAAmB,SAAS,YAAY,QAAQ,QAAQ,YAAY,YAAY;AAAA,IAC1H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Organization.vue.js","sources":["../../../../../../../src/modules/organizations/components/pages/Organization.vue"],"sourcesContent":["<template>\n\t<div v-if=\"organizationData\" class=\"pd-thin for-transition w-100\">\n\n\t\t<!-- <Breadcrumbs class=\"mn-b-thin pd-medium bg-light radius-medium\"/> -->\n\t\t<!-- <pre>{{organization.state.current}}</pre> -->\n\n\t\t<section class=\"flex-center flex flex-column t-center pd-medium radius-medium bg-light mn-b-thin\">\n\n\t\t\t<Dropdown \n\t\t\t\tv-if=\"auth.state.user._id !== organization.state.current.owner\"\n\t\t\t\t:label=\"{ component: IconEllipsis, class: 'i-regular t-transp' }\"\n\t\t\t\t:align=\"'right'\"\n\t\t\t\tclass=\"cursor-pointer pos-absolute pos-r-regular pos-t-regular pd-thin radius-extra \"\n\t\t\t>\n\t\t\t\t<section \n\t\t\t\t\tclass=\"bg-black pd-thin radius-small\"\n\t\t\t\t>\n\t\t\t\t\t<FormReport \n\t\t\t\t\t\t:user=\"auth.state.user._id\"\n\t\t\t\t\t\t:type=\"'organization'\" \n\t\t\t\t\t\t:target=\"organization.state.current._id\" \n\t\t\t\t\t\t:text=\"'Report'\" \n\t\t\t\t\t\tclass=\"w-100\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<button \n\t\t\t\t\t\t\tclass=\"w-100 bg-black br-solid br-1px br-white-transp-20 t-white button-small button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tReport\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</FormReport>\n\n\t\t\t\t\t<ButtonToggleMembership\n\t\t\t\t\t\tv-if=\"auth.state.user._id && auth.state.user._id !== organization.state.current.owner\"\n\t\t\t :user=\"auth.state.user._id\"\n\t\t\t :type=\"'organization'\" \n\t \t:role=\"'blocked'\" \n\t\t\t :target=\"organization.state.current._id\" \n\t\t\t :status=\"organization.state.current.isBlocked\" \n\t\t\t :text=\"{create: 'Block', remove: 'Unblock'}\"\n\t\t\t @updateMembership=\"event => handleMembershipUpdate(event, 'isBlocked')\"\n\t\t\t class=\"t-white w-100 mn-t-thin bg-red\" \n\t \t/>\n\t\t\t\t</section>\n\t </Dropdown>\n\n\t <router-link\n\t\t\t\tv-if=\"auth.state.user._id === organization.state.current.owner\"\n\t :to=\"{\n\t\t\t\t\tname: 'Organization Edit', \n\t\t\t\t\tparams: {\n\t\t\t\t\t\t_id: organization.state.current._id\n\t\t\t\t\t}\n\t\t\t\t}\" \n\t class=\"\n\t \tz-index-2\n\t cursor-pointer \n\t pos-absolute pos-t-regular pos-r-regular\n\t radius-extra pd-thin bg-second\n\t \"\n\t >\n\t <IconEdit\n\t class=\"i-regular\"\n\t classes=\"fill-white\"\n\t />\n\t </router-link>\n\n\n\t\t\t<img loading=\"lazy\" \n\t\t\t\tv-if=\"organization.state.current.profile.photo\" \n\t\t\t\t:src=\"(FILE_SERVER_URL || '') + organization.state.current.profile.photo\" \n\t\t\t\tclass=\"radius-medium bg-light flex-center flex mn-b-small w-8r\" \n\t\t\t/>\n\n\t\t\t<PlaceholderOrganizationPic\n\t\t\t\tv-else\n\t\t\t\tclass=\"radius-medium mn-b-small i-extra\"\n\t\t\t/>\n\n\t <h1\n\t \tclass=\"mn-b-thin\"\n\t >\n\t \t\t{{ organization.state.current.profile.name }}\n\t \t</h1>\n\n\t \t<div class=\"flex-center pd-r-thin pd-l-thin flex-nowrap flex mn-t-thin bg-white radius-extra w-max\">\n\t \t\t<IconFollowing class=\"i-medium mn-r-micro t-transp\"/>\n\n\t <p class=\"mn-t-thin p-medium t-medium uppercase mn-b-thin\">{{organization.state.current.numberOfSubscribers}} followers</p>\n\n\t <ButtonToggleMembership\n\t v-if=\"\n\t\t \tauth.state.user._id \n\t\t \t&& route.params._id \n\t\t \t&& route.params._id !== auth.state.user._id\n\t\t \t&& organization.state.current.owner !== auth.state.user._id\n\t\t \"\n\t :user=\"auth.state.user._id\"\n\t :type=\"'organization'\" \n\t :role=\"'subscriber'\" \n\t :target=\"organization.state.current._id\" \n\t :status=\"organization.state.current.isSubscriber\" \n\t :text=\"{create: '+', remove: '-'}\"\n\t @updateMembership=\"event => handleMembershipUpdate(event, 'isSubscriber', 'numberOfSubscribers')\"\n\t class=\" mn-l-thin p-medium t-medium radius-extra i-semi\" \n\t />\n\t </div>\n\n\t <!-- <p class=\"w-max-50r mn-t-regular mn-b-medium p-semi\">\n\t \t\t<Text :text=\"organization.profile.description || ''\" :showToggleText=\"true\" :maxLen=\"320\" />\n\t \t</p> -->\n\n\t \t<Chips \n\t \tv-if=\"organization.state.current.profile?.tags?.length > 0\" \n\t \t:chips=\"organization.state.current.profile.tags\"\n\t \tclass=\"p-medium\"\n\t \t/>\n\n\n\t <h4 \n\t \tv-if=\"Object.values(organization.state.current.socials).some(value => value)\" \n\t \tclass=\"mn-t-small mn-b-thin\"\n\t >\n\t \t\tFind us in socials\n\t \t</h4>\n\t \t\n\t \t<Socials \n\t \t\t:telegram=\"organization.state.current.socials.telegram\"\n\t \t\t:facebook=\"organization.state.current.socials.facebook\"\n\t \t\t:instagram=\"organization.state.current.socials.instagram\"\n\t \t\t:twitter=\"organization.state.current.socials.twitter\"\n\t \t\t:youtube=\"organization.state.current.socials.youtube\"\n\t \t/>\n\t\t</section>\n\t\t\n\t\t<!-- Backoffice -->\n\t\t<div v-if=\"MOBILE_APP\" @click=\"() => globals.state.isOpenSidebar = !globals.state.isOpenSidebar\" class=\"pos-relative\">\n\t\t\t<div class=\"bg-light radius-medium pd-medium\">\n\t\t\t\t<p class=\"t-medium t-black-transp-60\">\n\t\t\t\t\tShow Menu\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- Organization Info Section -->\n\t\t<!-- <div class=\"pos-relative\">\n\t\t\t<div class=\"bg-light radius-medium pd-medium\">\n\t\t\t\t<h3 class=\"mn-b-small\">About {{ organization.state.current?.profile?.name }}</h3>\n\t\t\t\t<p v-if=\"organization.state.current?.profile?.description\" class=\"t-medium\">\n\t\t\t\t\t{{ organization.state.current.profile.description }}\n\t\t\t\t</p>\n\t\t\t\t<p v-else class=\"t-medium t-black-transp-60\">\n\t\t\t\t\tNo description available.\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div> -->\n\n\t\t<Products/>\n\t</div>\n</template>\n\n<script setup>\n\timport { computed, reactive, ref, onMounted, watch } from 'vue'\n\timport { useRoute, useRouter } from 'vue-router'\n\t// Import components\n\timport Breadcrumbs \tfrom '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Block \t\tfrom '@martyrs/src/components/Block/Block.vue'\n\timport Dropdown from \"@martyrs/src/components/Dropdown/Dropdown.vue\";\n\timport Text \t\tfrom '@martyrs/src/components/Text/Text.vue'\n\timport Chips from '@martyrs/src/components/Chips/Chips.vue'\n\t// Mobile Module\n\timport Menu from '@martyrs/src/components/Menu/Menu.vue'\n\timport MenuItem from '@martyrs/src/components/Menu/MenuItem.vue'\n\t// Icons\n\timport IconFollowing from '@martyrs/src/modules/icons/entities/IconFollowing.vue'\n\timport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n\timport IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue'\n\timport PlaceholderOrganizationPic from '@martyrs/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue'\n\t// Organizations\n\timport { \n\t\tDepartmentSub, \n\t\tButtonToggleMembership, \n\t\tContacts, \n\t\tRating, \n\t\tSocials \n\t} from '@martyrs/src/modules/organizations/organizations.client.js'\n\timport User from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue';\n\t// Report Module\n\timport FormReport from '@martyrs/src/modules/reports/components/sections/FormReport.vue'\n\t// Products modu;e\n\timport Products from '@martyrs/src//modules/products/components/pages/Products.vue'\n\t// Import state\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n\n\timport * as organization from '@martyrs/src/modules/organizations/store/organizations.js';\n\timport membershipsStore from '@martyrs/src/modules/organizations/store/memberships.store.js';\n\timport departmentsStore from '@martyrs/src/modules/organizations/store/departments.store.js';\n\t// Init router\n\tconst router \t= useRouter()\n\tconst route \t= useRoute()\n\n\tconst organizationData = ref(null)\n\n\tonMounted(async () => {\n\t\t\n\t\torganizationData.value = await organization.actions.read({\n\t\t\t_id: route.params._id, \n\t\t\tuser: auth.state.user._id,\n\t\t\tlookup: ['memberships']\n\t\t})\n\n \t\tawait membershipsStore.read({target: route.params._id})\n\n \t\tif (typeof gtag === 'function') {\n\t\t\tgtag('event', 'view_organization', {\n\t\t\t\torganization_id: route.params._id,\n\t\t\t\torganization_name: organizationData.value?.profile?.name || 'unknown',\n\t\t\t\tpage_path: window.location.pathname,\n\t\t\t\tuser_id: auth.state.user._id || 'anonymous',\n\t\t\t\ttimestamp: new Date().toISOString()\n\t\t\t});\n\t\t}\n\t})\n\n\t// Methods\n\tconst handleMembershipUpdate = ({ membership, status, target }, statusName, statusNumber) => {\n\t membershipsStore.handleMembershipUpdate(organization.state.current, membership, status, target, statusName, statusNumber)\n\t};\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["organization.actions","auth.state","organization.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsMiB,cAAS;AACzB,UAAM,QAAS,SAAQ;AAEvB,UAAM,mBAAmB,IAAI,IAAI;AAEjC,cAAU,YAAY;AAErB,uBAAiB,QAAQ,MAAMA,QAAqB,KAAK;AAAA,QACxD,KAAK,MAAM,OAAO;AAAA,QAClB,MAAMC,MAAW,KAAK;AAAA,QACtB,QAAQ,CAAC,aAAa;AAAA,MACzB,CAAG;AAEA,YAAM,iBAAiB,KAAK,EAAC,QAAQ,MAAM,OAAO,IAAG,CAAC;AAEtD,UAAI,OAAO,SAAS,YAAY;AAChC,aAAK,SAAS,qBAAqB;AAAA,UAClC,iBAAiB,MAAM,OAAO;AAAA,UAC9B,mBAAmB,iBAAiB,OAAO,SAAS,QAAQ;AAAA,UAC5D,WAAW,OAAO,SAAS;AAAA,UAC3B,SAASA,MAAW,KAAK,OAAO;AAAA,UAChC,YAAW,oBAAI,KAAI,GAAG,YAAW;AAAA,QACrC,CAAI;AAAA,MACF;AAAA,IACD,CAAC;AAGD,UAAM,yBAAyB,CAAC,EAAE,YAAY,QAAQ,OAAM,GAAI,YAAY,iBAAiB;AAC3F,uBAAiB,uBAAuBC,QAAmB,SAAS,YAAY,QAAQ,QAAQ,YAAY,YAAY;AAAA,IAC1H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,7 +5,7 @@ const vueRouter = require("vue-router");
5
5
  require("vue-i18n");
6
6
  ;/* empty css */
7
7
  const BlockTags = require("../../../../components/FieldTags/BlockTags.vue.cjs");
8
- ;/* empty css */
8
+ ;/* empty css */
9
9
  const Field = require("../../../../components/Field/Field.vue.cjs");
10
10
  ;/* empty css */
11
11
  const SelectMulti = require("../../../../components/SelectMulti/SelectMulti.vue2.cjs");
@@ -2,13 +2,13 @@ import { onMounted, computed, createElementBlock, openBlock, createElementVNode,
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import "vue-i18n";
4
4
  /* empty css */
5
- import _sfc_main$3 from "../../../../components/FieldTags/BlockTags.vue.js";
6
- /* empty css */
5
+ import _sfc_main$2 from "../../../../components/FieldTags/BlockTags.vue.js";
6
+ /* empty css */
7
7
  import Field from "../../../../components/Field/Field.vue.js";
8
8
  /* empty css */
9
9
  import _sfc_main$1 from "../../../../components/SelectMulti/SelectMulti.vue2.js";
10
- import _sfc_main$2 from "../../../../components/UploadImage/UploadImage.vue.js";
11
- import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
10
+ import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
11
+ import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
12
12
  /* empty css */
13
13
  import { state as state$1 } from "../../../auth/views/store/auth.js";
14
14
  import { actions, state } from "../../store/organizations.js";
@@ -51,7 +51,7 @@ const _sfc_main = {
51
51
  }, null, 8, ["modelValue"]),
52
52
  _cache[18] || (_cache[18] = createElementVNode("h3", { class: "mn-b-small" }, "Profile", -1)),
53
53
  createElementVNode("div", _hoisted_2, [
54
- createVNode(_sfc_main$2, {
54
+ createVNode(UploadImage, {
55
55
  photo: state.current.profile.photo,
56
56
  "onUpdate:photo": _cache[1] || (_cache[1] = ($event) => state.current.profile.photo = $event),
57
57
  uploadPath: "organizations/" + state.current._id + "/avatars",
@@ -71,7 +71,7 @@ const _sfc_main = {
71
71
  placeholder: "Brief description of your group",
72
72
  class: "mn-b-thin bg-light pd-medium radius-small"
73
73
  }, null, 8, ["field"]),
74
- createVNode(_sfc_main$3, {
74
+ createVNode(_sfc_main$2, {
75
75
  onTagsChanged: _cache[4] || (_cache[4] = (newTags) => state.current.profile.tags = newTags),
76
76
  tags: state.current.profile.tags,
77
77
  class: "mn-b-small"
@@ -142,7 +142,7 @@ const _sfc_main = {
142
142
  placeholder: "",
143
143
  class: "mn-b-thin bg-light pd-medium radius-small"
144
144
  }, null, 8, ["field"]),
145
- createVNode(_sfc_main$4, {
145
+ createVNode(_sfc_main$3, {
146
146
  submit: onSubmit,
147
147
  callback: redirectTo,
148
148
  class: "bg-main w-100 mn-b-thin"
@@ -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 Tab = require("../../../../components/Tab/Tab.vue.cjs");
5
+ const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
6
6
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
7
7
  const auth = require("../../../auth/views/store/auth.cjs");
8
8
  const organizations = require("../../store/organizations.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, watch, createElementBlock, openBlock, createCommentVNode, createVNode, createElementVNode, Transition, withCtx, unref, Fragment, renderList, isMemoSame, createBlock } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$1 from "../../../../components/Tab/Tab.vue.js";
3
+ import _sfc_main$1 from "../../../../components/Tab/Tab.vue2.js";
4
4
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
5
5
  import { state } from "../../../auth/views/store/auth.js";
6
6
  import { actions } from "../../store/organizations.js";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  require("../../../../../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.cjs");
6
- ;/* empty css */
6
+ ;/* empty css */
7
7
  ;/* empty css */
8
8
  ;/* empty css */
9
9
  ;/* empty css */
@@ -1,7 +1,7 @@
1
1
  import { ref, withAsyncContext, watch, createElementBlock, openBlock, createElementVNode, createBlock, Fragment, renderList, normalizeClass } from "vue";
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import "../../../../../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  /* empty css */
@@ -7,7 +7,7 @@ const Button = require("../../../../components/Button/Button.vue.cjs");
7
7
  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
- const FieldTags = require("../../../../components/FieldTags/FieldTags.vue.cjs");
10
+ const FieldTags = require("../../../../components/FieldTags/FieldTags.vue2.cjs");
11
11
  ;/* empty css */
12
12
  ;/* empty css */
13
13
  ;/* empty css */
@@ -27,7 +27,7 @@ const _hoisted_1 = {
27
27
  class: "rows-auto pd-thin bg-white for-transition w-100"
28
28
  };
29
29
  const _hoisted_2 = { class: "mn-r-auto" };
30
- const _hoisted_3 = { class: "cols-auto-1fr mn-b-thin w-100" };
30
+ const _hoisted_3 = { class: "w-100 mn-b-thin bg-white radius-small pd-medium cols-1" };
31
31
  const _hoisted_4 = { class: "mn-b-thin w-100 flex-nowrap gap-thin flex" };
32
32
  const _hoisted_5 = ["onClick"];
33
33
  const _hoisted_6 = ["onClick"];
@@ -138,59 +138,64 @@ const _sfc_main = {
138
138
  class: "mn-b-thin"
139
139
  }, {
140
140
  default: vue.withCtx(() => [
141
+ vue.createVNode(Select.default, {
142
+ select: categories.state.current.status,
143
+ "onUpdate:select": _cache[0] || (_cache[0] = ($event) => categories.state.current.status = $event),
144
+ label: "Status",
145
+ options: [
146
+ "draft",
147
+ "internal",
148
+ "published",
149
+ "removed"
150
+ ],
151
+ placeholder: "Select category",
152
+ class: "pos-relative mn-b-thin w-100 bg-white radius-small pd-medium"
153
+ }, null, 8, ["select"]),
154
+ vue.createVNode(Field.default, {
155
+ field: categories.state.current.name,
156
+ "onUpdate:field": _cache[1] || (_cache[1] = ($event) => categories.state.current.name = $event),
157
+ label: "Name",
158
+ placeholder: "Enter category name",
159
+ class: "w-100 mn-b-thin bg-white radius-small pd-medium"
160
+ }, null, 8, ["field"]),
141
161
  vue.createElementVNode("div", _hoisted_3, [
142
162
  vue.createVNode(UploadImage.default, {
143
163
  photo: categories.state.current.photo,
144
- "onUpdate:photo": _cache[0] || (_cache[0] = ($event) => categories.state.current.photo = $event),
164
+ "onUpdate:photo": _cache[2] || (_cache[2] = ($event) => categories.state.current.photo = $event),
145
165
  uploadPath: "categories",
146
- class: "aspect-1x1 h-100 o-hidden mn-r-small radius-extra"
147
- }, null, 8, ["photo"]),
148
- vue.createVNode(Field.default, {
149
- field: categories.state.current.name,
150
- "onUpdate:field": _cache[1] || (_cache[1] = ($event) => categories.state.current.name = $event),
151
- label: "Name",
152
- placeholder: "Enter category name",
153
- class: "w-100 bg-white radius-small pd-medium"
154
- }, null, 8, ["field"])
166
+ text: {
167
+ title: "Upload category image",
168
+ subtitle: "Supported: JPG, PNG, GIF. Max size: 5MB",
169
+ buttonText: "Select Image"
170
+ },
171
+ class: "pos-relative"
172
+ }, null, 8, ["photo"])
155
173
  ]),
174
+ vue.unref(route).params.category ? (vue.openBlock(), vue.createBlock(Field.default, {
175
+ key: 0,
176
+ field: categories.state.current.url,
177
+ "onUpdate:field": _cache[3] || (_cache[3] = ($event) => categories.state.current.url = $event),
178
+ label: "URL Path",
179
+ disabled: true,
180
+ class: "w-100 bg-white radius-small pd-medium mn-b-thin"
181
+ }, null, 8, ["field"])) : vue.createCommentVNode("", true),
156
182
  vue.createElementVNode("div", _hoisted_4, [
157
183
  vue.createVNode(Field.default, {
158
184
  field: categories.state.current.order,
159
- "onUpdate:field": _cache[2] || (_cache[2] = ($event) => categories.state.current.order = $event),
185
+ "onUpdate:field": _cache[4] || (_cache[4] = ($event) => categories.state.current.order = $event),
160
186
  label: "Order",
161
187
  disabled: true,
162
188
  class: "w-40 bg-white radius-small pd-medium"
163
189
  }, null, 8, ["field"]),
164
190
  vue.createVNode(Field.default, {
165
191
  field: categories.state.current.slug,
166
- "onUpdate:field": _cache[3] || (_cache[3] = ($event) => categories.state.current.slug = $event),
192
+ "onUpdate:field": _cache[5] || (_cache[5] = ($event) => categories.state.current.slug = $event),
167
193
  label: "Slug",
168
194
  placeholder: "Enter category slug",
169
195
  disabled: vue.unref(route).params.category ? true : false,
170
196
  class: "w-100 bg-white radius-small pd-medium"
171
197
  }, null, 8, ["field", "disabled"])
172
198
  ]),
173
- vue.unref(route).params.category ? (vue.openBlock(), vue.createBlock(Field.default, {
174
- key: 0,
175
- field: categories.state.current.url,
176
- "onUpdate:field": _cache[4] || (_cache[4] = ($event) => categories.state.current.url = $event),
177
- label: "URL Path",
178
- disabled: true,
179
- class: "w-100 bg-white radius-small pd-medium mn-b-thin"
180
- }, null, 8, ["field"])) : vue.createCommentVNode("", true),
181
- vue.createVNode(Select.default, {
182
- select: categories.state.current.status,
183
- "onUpdate:select": _cache[5] || (_cache[5] = ($event) => categories.state.current.status = $event),
184
- label: "Status",
185
- options: [
186
- "draft",
187
- "internal",
188
- "published",
189
- "removed"
190
- ],
191
- placeholder: "Select category",
192
- class: "pos-relative w-100 bg-white radius-small pd-medium"
193
- }, null, 8, ["select"]),
194
199
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(categories.state.current.translations, (item, index) => {
195
200
  return vue.openBlock(), vue.createElementBlock("div", {
196
201
  class: "gap-thin mn-b-thin flex-nowrap flex",
@@ -240,11 +245,14 @@ const _sfc_main = {
240
245
  class: "w-100 bg-white radius-small pd-medium"
241
246
  }, null, 8, ["field", "onUpdate:field"]),
242
247
  vue.createVNode(FieldTags.default, {
243
- tags: item.options,
244
- "onUpdate:tags": ($event) => item.options = $event,
248
+ modelValue: item.options,
249
+ "onUpdate:modelValue": ($event) => item.options = $event,
245
250
  placeholder: "Add filter options",
251
+ separators: [",", ";"],
252
+ "add-on-key": [13, ",", ";"],
253
+ "max-tags": 20,
246
254
  class: "w-100 bg-white radius-small pd-medium"
247
- }, null, 8, ["tags", "onUpdate:tags"]),
255
+ }, null, 8, ["modelValue", "onUpdate:modelValue"]),
248
256
  vue.createElementVNode("div", {
249
257
  onClick: () => categories.state.current.filters.splice(index, 1),
250
258
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red"
@@ -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=\"rows-auto 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=\"cols-auto-1fr mn-b-thin w-100 \">\n <UploadImage \n v-model:photo=\"categories.state.current.photo\"\n :uploadPath=\"'categories'\"\n class=\"aspect-1x1 h-100 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 bg-white radius-small pd-medium\"\n /> \n </div>\n\n <div class=\"mn-b-thin w-100 flex-nowrap gap-thin flex\">\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.slug\"\n label=\"Slug\"\n placeholder=\"Enter category slug\"\n :disabled=\"route.params.category ? true : false\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n </div>\n \n <Field\n v-if=\"route.params.category\"\n v-model:field=\"categories.state.current.url\"\n label=\"URL Path\"\n :disabled=\"true\"\n class=\"w-100 bg-white radius-small pd-medium mn-b-thin\"\n />\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=\"Select category\"\n class=\"pos-relative w-100 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: '', options: []})\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 <FieldTags\n v-model:tags=\"item.options\"\n placeholder=\"Add filter options\"\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 FieldTags from \"@martyrs/src/components/FieldTags/FieldTags.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({_id: 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: typeof categories.state.current.creator.target === 'object' \n ? categories.state.current.creator.target._id \n : categories.state.current.creator.target\n }\n\n categories.state.current.owner = {\n type: categories.state.current.owner.type,\n target: typeof categories.state.current.owner.target === 'object' \n ? categories.state.current.owner.target._id \n : categories.state.current.owner.target\n }\n \n // Очищаем filters от tiClasses перед отправкой\n if (categories.state.current.filters) {\n categories.state.current.filters = categories.state.current.filters.map(filter => ({\n ...filter,\n options: filter.options ? filter.options.map(opt => \n typeof opt === 'string' ? opt : opt.text\n ) : []\n }));\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 // Очищаем filters от tiClasses перед отправкой\n if (categories.state.current.filters) {\n categories.state.current.filters = categories.state.current.filters.map(filter => ({\n ...filter,\n options: filter.options ? filter.options.map(opt => \n typeof opt === 'string' ? opt : opt.text\n ) : []\n }));\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.container {\n max-width: 100%;\n margin: auto;\n}\n\n.grid {\n \n}\n\n.square {\n aspect-ratio: 1 / 1;\n height: 100%;\n background: #ccc;\n}\n</style>\n"],"names":["useRoute","useRouter","ref","onMounted","categories.actions","computed","categories.state","globals.state","IconCheckmark","auth.state","onUnmounted"],"mappings":"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"}
1
+ {"version":3,"file":"CategoryEdit.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/CategoryEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading\" class=\"rows-auto 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\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=\"Select category\"\n class=\"pos-relative mn-b-thin w-100 bg-white radius-small pd-medium\"\n />\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-thin bg-white radius-small pd-medium\"\n /> \n\n <div class=\"w-100 mn-b-thin bg-white radius-small pd-medium cols-1\">\n <UploadImage \n v-model:photo=\"categories.state.current.photo\"\n :uploadPath=\"'categories'\"\n :text=\"{\n title: 'Upload category image',\n subtitle: 'Supported: JPG, PNG, GIF. Max size: 5MB',\n buttonText: 'Select Image'\n }\"\n class=\"pos-relative\" \n />\n </div>\n\n\n <Field\n v-if=\"route.params.category\"\n v-model:field=\"categories.state.current.url\"\n label=\"URL Path\"\n :disabled=\"true\"\n class=\"w-100 bg-white radius-small pd-medium mn-b-thin\"\n />\n \n\n <div class=\"mn-b-thin w-100 flex-nowrap gap-thin flex\">\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.slug\"\n label=\"Slug\"\n placeholder=\"Enter category slug\"\n :disabled=\"route.params.category ? true : false\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n </div>\n \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: '', options: []})\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 <FieldTags\n v-model=\"item.options\"\n :placeholder=\"'Add filter options'\"\n :separators=\"[',', ';']\"\n :add-on-key=\"[13, ',', ';']\"\n :max-tags=\"20\"\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 FieldTags from \"@martyrs/src/components/FieldTags/FieldTags.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({_id: 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: typeof categories.state.current.creator.target === 'object' \n ? categories.state.current.creator.target._id \n : categories.state.current.creator.target\n }\n\n categories.state.current.owner = {\n type: categories.state.current.owner.type,\n target: typeof categories.state.current.owner.target === 'object' \n ? categories.state.current.owner.target._id \n : categories.state.current.owner.target\n }\n \n // Очищаем filters от tiClasses перед отправкой\n if (categories.state.current.filters) {\n categories.state.current.filters = categories.state.current.filters.map(filter => ({\n ...filter,\n options: filter.options ? filter.options.map(opt => \n typeof opt === 'string' ? opt : opt.text\n ) : []\n }));\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 // Очищаем filters от tiClasses перед отправкой\n if (categories.state.current.filters) {\n categories.state.current.filters = categories.state.current.filters.map(filter => ({\n ...filter,\n options: filter.options ? filter.options.map(opt => \n typeof opt === 'string' ? opt : opt.text\n ) : []\n }));\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.container {\n max-width: 100%;\n margin: auto;\n}\n\n.grid {\n \n}\n\n.square {\n aspect-ratio: 1 / 1;\n height: 100%;\n background: #ccc;\n}\n</style>\n"],"names":["useRoute","useRouter","ref","onMounted","categories.actions","computed","categories.state","globals.state","IconCheckmark","auth.state","onUnmounted"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { ref, onMounted, computed, onUnmounted, createElementBlock, createCommentVNode, openBlock, createBlock, createVNode, withCtx, createElementVNode, toDisplayString, unref, createTextVNode, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$5 from "../../../icons/navigation/IconDelete.vue.js";
3
+ import _sfc_main$4 from "../../../icons/navigation/IconDelete.vue.js";
4
4
  import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
5
5
  import Select from "../../../../components/Select/Select.vue.js";
6
- import _sfc_main$4 from "../../../../components/UploadImage/UploadImage.vue.js";
6
+ import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
7
7
  import Field from "../../../../components/Field/Field.vue.js";
8
- import _sfc_main$6 from "../../../../components/FieldTags/FieldTags.vue.js";
8
+ import FieldTags from "../../../../components/FieldTags/FieldTags.vue2.js";
9
9
  /* empty css */
10
10
  /* empty css */
11
11
  /* empty css */
@@ -25,7 +25,7 @@ const _hoisted_1 = {
25
25
  class: "rows-auto pd-thin bg-white for-transition w-100"
26
26
  };
27
27
  const _hoisted_2 = { class: "mn-r-auto" };
28
- const _hoisted_3 = { class: "cols-auto-1fr mn-b-thin w-100" };
28
+ const _hoisted_3 = { class: "w-100 mn-b-thin bg-white radius-small pd-medium cols-1" };
29
29
  const _hoisted_4 = { class: "mn-b-thin w-100 flex-nowrap gap-thin flex" };
30
30
  const _hoisted_5 = ["onClick"];
31
31
  const _hoisted_6 = ["onClick"];
@@ -136,59 +136,64 @@ const _sfc_main = {
136
136
  class: "mn-b-thin"
137
137
  }, {
138
138
  default: withCtx(() => [
139
+ createVNode(Select, {
140
+ select: state.current.status,
141
+ "onUpdate:select": _cache[0] || (_cache[0] = ($event) => state.current.status = $event),
142
+ label: "Status",
143
+ options: [
144
+ "draft",
145
+ "internal",
146
+ "published",
147
+ "removed"
148
+ ],
149
+ placeholder: "Select category",
150
+ class: "pos-relative mn-b-thin w-100 bg-white radius-small pd-medium"
151
+ }, null, 8, ["select"]),
152
+ createVNode(Field, {
153
+ field: state.current.name,
154
+ "onUpdate:field": _cache[1] || (_cache[1] = ($event) => state.current.name = $event),
155
+ label: "Name",
156
+ placeholder: "Enter category name",
157
+ class: "w-100 mn-b-thin bg-white radius-small pd-medium"
158
+ }, null, 8, ["field"]),
139
159
  createElementVNode("div", _hoisted_3, [
140
- createVNode(_sfc_main$4, {
160
+ createVNode(UploadImage, {
141
161
  photo: state.current.photo,
142
- "onUpdate:photo": _cache[0] || (_cache[0] = ($event) => state.current.photo = $event),
162
+ "onUpdate:photo": _cache[2] || (_cache[2] = ($event) => state.current.photo = $event),
143
163
  uploadPath: "categories",
144
- class: "aspect-1x1 h-100 o-hidden mn-r-small radius-extra"
145
- }, null, 8, ["photo"]),
146
- createVNode(Field, {
147
- field: state.current.name,
148
- "onUpdate:field": _cache[1] || (_cache[1] = ($event) => state.current.name = $event),
149
- label: "Name",
150
- placeholder: "Enter category name",
151
- class: "w-100 bg-white radius-small pd-medium"
152
- }, null, 8, ["field"])
164
+ text: {
165
+ title: "Upload category image",
166
+ subtitle: "Supported: JPG, PNG, GIF. Max size: 5MB",
167
+ buttonText: "Select Image"
168
+ },
169
+ class: "pos-relative"
170
+ }, null, 8, ["photo"])
153
171
  ]),
172
+ unref(route).params.category ? (openBlock(), createBlock(Field, {
173
+ key: 0,
174
+ field: state.current.url,
175
+ "onUpdate:field": _cache[3] || (_cache[3] = ($event) => state.current.url = $event),
176
+ label: "URL Path",
177
+ disabled: true,
178
+ class: "w-100 bg-white radius-small pd-medium mn-b-thin"
179
+ }, null, 8, ["field"])) : createCommentVNode("", true),
154
180
  createElementVNode("div", _hoisted_4, [
155
181
  createVNode(Field, {
156
182
  field: state.current.order,
157
- "onUpdate:field": _cache[2] || (_cache[2] = ($event) => state.current.order = $event),
183
+ "onUpdate:field": _cache[4] || (_cache[4] = ($event) => state.current.order = $event),
158
184
  label: "Order",
159
185
  disabled: true,
160
186
  class: "w-40 bg-white radius-small pd-medium"
161
187
  }, null, 8, ["field"]),
162
188
  createVNode(Field, {
163
189
  field: state.current.slug,
164
- "onUpdate:field": _cache[3] || (_cache[3] = ($event) => state.current.slug = $event),
190
+ "onUpdate:field": _cache[5] || (_cache[5] = ($event) => state.current.slug = $event),
165
191
  label: "Slug",
166
192
  placeholder: "Enter category slug",
167
193
  disabled: unref(route).params.category ? true : false,
168
194
  class: "w-100 bg-white radius-small pd-medium"
169
195
  }, null, 8, ["field", "disabled"])
170
196
  ]),
171
- unref(route).params.category ? (openBlock(), createBlock(Field, {
172
- key: 0,
173
- field: state.current.url,
174
- "onUpdate:field": _cache[4] || (_cache[4] = ($event) => state.current.url = $event),
175
- label: "URL Path",
176
- disabled: true,
177
- class: "w-100 bg-white radius-small pd-medium mn-b-thin"
178
- }, null, 8, ["field"])) : createCommentVNode("", true),
179
- createVNode(Select, {
180
- select: state.current.status,
181
- "onUpdate:select": _cache[5] || (_cache[5] = ($event) => state.current.status = $event),
182
- label: "Status",
183
- options: [
184
- "draft",
185
- "internal",
186
- "published",
187
- "removed"
188
- ],
189
- placeholder: "Select category",
190
- class: "pos-relative w-100 bg-white radius-small pd-medium"
191
- }, null, 8, ["select"]),
192
197
  (openBlock(true), createElementBlock(Fragment, null, renderList(state.current.translations, (item, index) => {
193
198
  return openBlock(), createElementBlock("div", {
194
199
  class: "gap-thin mn-b-thin flex-nowrap flex",
@@ -210,7 +215,7 @@ const _sfc_main = {
210
215
  onClick: () => state.current.translations.splice(index, 1),
211
216
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red"
212
217
  }, [
213
- createVNode(_sfc_main$5, { class: "i-medium" })
218
+ createVNode(_sfc_main$4, { class: "i-medium" })
214
219
  ], 8, _hoisted_5)
215
220
  ]);
216
221
  }), 128))
@@ -237,17 +242,20 @@ const _sfc_main = {
237
242
  placeholder: "Filter name",
238
243
  class: "w-100 bg-white radius-small pd-medium"
239
244
  }, null, 8, ["field", "onUpdate:field"]),
240
- createVNode(_sfc_main$6, {
241
- tags: item.options,
242
- "onUpdate:tags": ($event) => item.options = $event,
245
+ createVNode(FieldTags, {
246
+ modelValue: item.options,
247
+ "onUpdate:modelValue": ($event) => item.options = $event,
243
248
  placeholder: "Add filter options",
249
+ separators: [",", ";"],
250
+ "add-on-key": [13, ",", ";"],
251
+ "max-tags": 20,
244
252
  class: "w-100 bg-white radius-small pd-medium"
245
- }, null, 8, ["tags", "onUpdate:tags"]),
253
+ }, null, 8, ["modelValue", "onUpdate:modelValue"]),
246
254
  createElementVNode("div", {
247
255
  onClick: () => state.current.filters.splice(index, 1),
248
256
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red"
249
257
  }, [
250
- createVNode(_sfc_main$5, { class: "i-medium" })
258
+ createVNode(_sfc_main$4, { class: "i-medium" })
251
259
  ], 8, _hoisted_6)
252
260
  ]);
253
261
  }), 128))
@@ -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=\"rows-auto 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=\"cols-auto-1fr mn-b-thin w-100 \">\n <UploadImage \n v-model:photo=\"categories.state.current.photo\"\n :uploadPath=\"'categories'\"\n class=\"aspect-1x1 h-100 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 bg-white radius-small pd-medium\"\n /> \n </div>\n\n <div class=\"mn-b-thin w-100 flex-nowrap gap-thin flex\">\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.slug\"\n label=\"Slug\"\n placeholder=\"Enter category slug\"\n :disabled=\"route.params.category ? true : false\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n </div>\n \n <Field\n v-if=\"route.params.category\"\n v-model:field=\"categories.state.current.url\"\n label=\"URL Path\"\n :disabled=\"true\"\n class=\"w-100 bg-white radius-small pd-medium mn-b-thin\"\n />\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=\"Select category\"\n class=\"pos-relative w-100 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: '', options: []})\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 <FieldTags\n v-model:tags=\"item.options\"\n placeholder=\"Add filter options\"\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 FieldTags from \"@martyrs/src/components/FieldTags/FieldTags.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({_id: 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: typeof categories.state.current.creator.target === 'object' \n ? categories.state.current.creator.target._id \n : categories.state.current.creator.target\n }\n\n categories.state.current.owner = {\n type: categories.state.current.owner.type,\n target: typeof categories.state.current.owner.target === 'object' \n ? categories.state.current.owner.target._id \n : categories.state.current.owner.target\n }\n \n // Очищаем filters от tiClasses перед отправкой\n if (categories.state.current.filters) {\n categories.state.current.filters = categories.state.current.filters.map(filter => ({\n ...filter,\n options: filter.options ? filter.options.map(opt => \n typeof opt === 'string' ? opt : opt.text\n ) : []\n }));\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 // Очищаем filters от tiClasses перед отправкой\n if (categories.state.current.filters) {\n categories.state.current.filters = categories.state.current.filters.map(filter => ({\n ...filter,\n options: filter.options ? filter.options.map(opt => \n typeof opt === 'string' ? opt : opt.text\n ) : []\n }));\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.container {\n max-width: 100%;\n margin: auto;\n}\n\n.grid {\n \n}\n\n.square {\n aspect-ratio: 1 / 1;\n height: 100%;\n background: #ccc;\n}\n</style>\n"],"names":["categories.actions","categories.state","globals.state","IconCheckmark","auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"CategoryEdit.vue.js","sources":["../../../../../../../src/modules/products/components/pages/CategoryEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"!isLoading\" class=\"rows-auto 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\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=\"Select category\"\n class=\"pos-relative mn-b-thin w-100 bg-white radius-small pd-medium\"\n />\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-thin bg-white radius-small pd-medium\"\n /> \n\n <div class=\"w-100 mn-b-thin bg-white radius-small pd-medium cols-1\">\n <UploadImage \n v-model:photo=\"categories.state.current.photo\"\n :uploadPath=\"'categories'\"\n :text=\"{\n title: 'Upload category image',\n subtitle: 'Supported: JPG, PNG, GIF. Max size: 5MB',\n buttonText: 'Select Image'\n }\"\n class=\"pos-relative\" \n />\n </div>\n\n\n <Field\n v-if=\"route.params.category\"\n v-model:field=\"categories.state.current.url\"\n label=\"URL Path\"\n :disabled=\"true\"\n class=\"w-100 bg-white radius-small pd-medium mn-b-thin\"\n />\n \n\n <div class=\"mn-b-thin w-100 flex-nowrap gap-thin flex\">\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.slug\"\n label=\"Slug\"\n placeholder=\"Enter category slug\"\n :disabled=\"route.params.category ? true : false\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n </div>\n \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: '', options: []})\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 <FieldTags\n v-model=\"item.options\"\n :placeholder=\"'Add filter options'\"\n :separators=\"[',', ';']\"\n :add-on-key=\"[13, ',', ';']\"\n :max-tags=\"20\"\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 FieldTags from \"@martyrs/src/components/FieldTags/FieldTags.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({_id: 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: typeof categories.state.current.creator.target === 'object' \n ? categories.state.current.creator.target._id \n : categories.state.current.creator.target\n }\n\n categories.state.current.owner = {\n type: categories.state.current.owner.type,\n target: typeof categories.state.current.owner.target === 'object' \n ? categories.state.current.owner.target._id \n : categories.state.current.owner.target\n }\n \n // Очищаем filters от tiClasses перед отправкой\n if (categories.state.current.filters) {\n categories.state.current.filters = categories.state.current.filters.map(filter => ({\n ...filter,\n options: filter.options ? filter.options.map(opt => \n typeof opt === 'string' ? opt : opt.text\n ) : []\n }));\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 // Очищаем filters от tiClasses перед отправкой\n if (categories.state.current.filters) {\n categories.state.current.filters = categories.state.current.filters.map(filter => ({\n ...filter,\n options: filter.options ? filter.options.map(opt => \n typeof opt === 'string' ? opt : opt.text\n ) : []\n }));\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.container {\n max-width: 100%;\n margin: auto;\n}\n\n.grid {\n \n}\n\n.square {\n aspect-ratio: 1 / 1;\n height: 100%;\n background: #ccc;\n}\n</style>\n"],"names":["categories.actions","categories.state","globals.state","IconCheckmark","auth.state"],"mappings":"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"}
@@ -10,7 +10,7 @@ const shopcart = require("../../../orders/store/shopcart.cjs");
10
10
  ;/* empty css */
11
11
  ;/* empty css */
12
12
  ;/* empty css */
13
- ;/* empty css */
13
+ ;/* empty css */
14
14
  ;/* empty css */
15
15
  const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
16
16
  const IconInfo = require("../../../icons/navigation/IconInfo.vue.cjs");
@@ -8,7 +8,7 @@ import { state as state$2, actions as actions$1 } from "../../../orders/store/sh
8
8
  /* empty css */
9
9
  /* empty css */
10
10
  /* empty css */
11
- /* empty css */
11
+ /* empty css */
12
12
  /* empty css */
13
13
  import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
14
14
  import _sfc_main$4 from "../../../icons/navigation/IconInfo.vue.js";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const Block = require("../../../../components/Block/Block.vue.cjs");
6
- const Tab = require("../../../../components/Tab/Tab.vue.cjs");
6
+ const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
7
7
  const Field = require("../../../../components/Field/Field.vue.cjs");
8
8
  const Select = require("../../../../components/Select/Select.vue.cjs");
9
9
  const Button = require("../../../../components/Button/Button.vue.cjs");