@ozdao/martyrs 0.2.492 → 0.2.494

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 (341) 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/builder.cjs +53 -90
  6. package/dist/builder.js +54 -91
  7. package/dist/{crud-B-kQw3Z5.cjs → crud-JN_LFj01.cjs} +3 -0
  8. package/dist/{crud-Cwx5VlSm.js → crud-sE7GLPbj.js} +3 -0
  9. package/dist/globals.server.cjs +322 -3
  10. package/dist/globals.server.js +303 -1
  11. package/dist/{globals.verifier-D68mHEBl.cjs → globals.verifier-C0zj_LLo.cjs} +8 -1
  12. package/dist/{globals.verifier-CWFz5Gh2.js → globals.verifier-DFqKQ7hK.js} +8 -1
  13. package/dist/inventory.server.cjs +2 -2
  14. package/dist/inventory.server.js +2 -2
  15. package/dist/{main-SZQ1QjeP.js → main-CJm5myDI.js} +631 -607
  16. package/dist/{main-MzmGbSxs.cjs → main-DTaE01lg.cjs} +6 -6
  17. package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs +1 -1
  18. package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs.map +1 -1
  19. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +1 -1
  20. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  21. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +33 -7
  22. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  23. package/dist/martyrs/src/components/Feed/Feed.vue.js +33 -7
  24. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  25. package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +2 -2
  26. package/dist/martyrs/src/components/Field/{Field.vue2.js.map → Field.vue.cjs.map} +1 -1
  27. package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
  28. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
  29. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  30. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  31. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  32. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  33. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  34. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  35. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  36. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  37. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
  38. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  39. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +4 -4
  40. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  46. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  47. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  50. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  51. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  52. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  53. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  55. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  56. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  58. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
  59. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
  60. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
  61. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
  62. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  63. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  64. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  65. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  66. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  67. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  68. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
  69. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  70. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  71. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  72. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  73. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  74. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
  75. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
  76. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +5 -1
  77. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  78. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +5 -1
  79. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  80. package/dist/martyrs/src/modules/icons/entities/IconTime.vue.cjs +2 -2
  81. package/dist/martyrs/src/modules/icons/entities/IconTime.vue.js +2 -2
  82. package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.cjs +2 -2
  83. package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.js +2 -2
  84. package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.cjs +2 -2
  85. package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.js +2 -2
  86. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +6 -6
  87. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  88. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  89. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  90. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  91. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  92. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
  93. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  95. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +22 -15
  96. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +23 -16
  98. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +2 -2
  100. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +2 -2
  102. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
  103. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +31 -13
  104. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +33 -15
  106. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +39 -22
  108. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +39 -22
  110. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  113. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  115. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +385 -125
  116. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -1
  117. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +391 -131
  118. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
  119. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +24 -7
  120. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +25 -8
  122. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +99 -87
  124. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -1
  125. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +111 -99
  126. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
  127. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs +21 -0
  128. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs.map +1 -0
  129. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +21 -0
  130. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -0
  131. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +442 -210
  132. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
  133. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +445 -213
  134. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +92 -117
  136. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
  137. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +93 -118
  138. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
  139. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +72 -113
  140. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +78 -119
  142. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +15 -12
  144. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
  145. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +15 -12
  146. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +558 -429
  148. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +560 -431
  150. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +146 -284
  152. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +149 -287
  154. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +460 -63
  156. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
  157. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +462 -65
  158. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  159. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +126 -136
  160. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +129 -139
  162. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +18 -15
  164. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +18 -15
  166. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +28 -23
  168. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -1
  169. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +29 -24
  170. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -1
  171. package/dist/martyrs/src/modules/music/music.client.cjs +3 -6
  172. package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -1
  173. package/dist/martyrs/src/modules/music/music.client.js +9 -12
  174. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  175. package/dist/martyrs/src/modules/music/router/music.cjs +27 -1
  176. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  177. package/dist/martyrs/src/modules/music/router/music.js +27 -1
  178. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  179. package/dist/martyrs/src/modules/music/store/artists.cjs +6 -4
  180. package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -1
  181. package/dist/martyrs/src/modules/music/store/artists.js +6 -4
  182. package/dist/martyrs/src/modules/music/store/artists.js.map +1 -1
  183. package/dist/martyrs/src/modules/music/store/player.cjs +5 -0
  184. package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -1
  185. package/dist/martyrs/src/modules/music/store/player.js +5 -0
  186. package/dist/martyrs/src/modules/music/store/player.js.map +1 -1
  187. package/dist/martyrs/src/modules/music/store/tracks.cjs +22 -0
  188. package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -1
  189. package/dist/martyrs/src/modules/music/store/tracks.js +22 -0
  190. package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -1
  191. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
  192. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  193. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  195. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  197. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
  199. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  201. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +2 -2
  202. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  203. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  204. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  205. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  206. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  207. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  208. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  209. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  210. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  211. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  212. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  213. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  214. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  215. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  216. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  217. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  218. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  219. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  220. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  221. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  222. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  223. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  224. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  225. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  226. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  227. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  228. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  229. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  230. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  231. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  232. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  233. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  234. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs +4 -3
  235. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs.map +1 -1
  236. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +4 -3
  237. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
  238. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs +37 -70
  239. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs.map +1 -1
  240. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +38 -71
  241. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
  242. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -1
  243. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs.map +1 -1
  244. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +6 -5
  245. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js.map +1 -1
  246. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +45 -52
  247. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs.map +1 -1
  248. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +46 -53
  249. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
  250. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
  251. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  252. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  253. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  254. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  255. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  256. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  257. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  258. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  259. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  260. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
  261. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
  262. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  263. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  264. package/dist/martyrs.cjs.js +1 -1
  265. package/dist/martyrs.css +1 -1
  266. package/dist/martyrs.es.js +1 -1
  267. package/dist/music.server.cjs +124 -31
  268. package/dist/music.server.js +124 -31
  269. package/dist/organizations.server.cjs +1 -1
  270. package/dist/organizations.server.js +1 -1
  271. package/dist/products.server.cjs +2 -2
  272. package/dist/products.server.js +2 -2
  273. package/dist/rents.server.cjs +3 -3
  274. package/dist/rents.server.js +3 -3
  275. package/dist/style.css +373 -80
  276. package/dist/{web-D7lZjuC0.js → web-Dkk0_7TA.js} +1 -1
  277. package/dist/{web-D-YZ9KHz.cjs → web-stVkXd0l.cjs} +1 -1
  278. package/package.json +1 -1
  279. package/src/builder/modes/ssr.prod.js +21 -5
  280. package/src/builder/rspack/rspack.config.spa.client.js +0 -44
  281. package/src/builder/rspack/rspack.config.ssr.client.js +40 -40
  282. package/src/components/Calendar/Calendar.vue +378 -377
  283. package/src/components/Feed/Feed.vue +28 -2
  284. package/src/modules/globals/controllers/classes/crud/crud.policies.js +5 -0
  285. package/src/modules/globals/controllers/classes/globals.validator.js +8 -1
  286. package/src/modules/globals/views/components/layouts/Client.vue +7 -0
  287. package/src/modules/music/README.md +8 -0
  288. package/src/modules/music/components/SidebarMusic.vue +6 -9
  289. package/src/modules/music/components/cards/AlbumCard.vue +20 -14
  290. package/src/modules/music/components/cards/ArtistCard.vue +1 -1
  291. package/src/modules/music/components/cards/PlaylistCard.vue +31 -11
  292. package/src/modules/music/components/cards/TrackListCard.vue +24 -13
  293. package/src/modules/music/components/forms/PlaylistForm.vue +417 -107
  294. package/src/modules/music/components/forms/SearchForm.vue +31 -8
  295. package/src/modules/music/components/forms/TrackForm.vue +50 -32
  296. package/src/modules/music/components/layouts/MusicBottomPlayer.vue +17 -0
  297. package/src/modules/music/components/pages/Album.vue +373 -186
  298. package/src/modules/music/components/pages/Artist.vue +54 -94
  299. package/src/modules/music/components/pages/MusicHome.vue +59 -56
  300. package/src/modules/music/components/pages/MusicLibrary.vue +13 -11
  301. package/src/modules/music/components/pages/Playlist.vue +495 -379
  302. package/src/modules/music/components/pages/SearchResults.vue +185 -313
  303. package/src/modules/music/components/pages/Track.vue +363 -69
  304. package/src/modules/music/components/player/MusicPlayer.vue +368 -97
  305. package/src/modules/music/components/player/TrackProgress.vue +76 -22
  306. package/src/modules/music/components/player/VolumeControl.vue +61 -28
  307. package/src/modules/music/controllers/search.controller.js +3 -0
  308. package/src/modules/music/controllers/stream.controller.js +11 -3
  309. package/src/modules/music/middlewares/playlists.verifier.js +1 -1
  310. package/src/modules/music/music.client.js +3 -6
  311. package/src/modules/music/music.server.js +8 -4
  312. package/src/modules/music/router/music.js +8 -1
  313. package/src/modules/music/routes/albums.routes.js +37 -5
  314. package/src/modules/music/routes/artists.routes.js +14 -4
  315. package/src/modules/music/routes/genres.routes.js +5 -1
  316. package/src/modules/music/routes/playlists.routes.js +42 -9
  317. package/src/modules/music/routes/tracks.routes.js +27 -2
  318. package/src/modules/music/store/artists.js +6 -2
  319. package/src/modules/music/store/player.js +6 -0
  320. package/src/modules/music/store/tracks.js +31 -0
  321. package/src/modules/music/websocket/streaming.handler.js +7 -1
  322. package/src/modules/rents/controllers/services/rents.services.js +2 -2
  323. package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +4 -3
  324. package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +42 -40
  325. package/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue +3 -1
  326. package/src/modules/rents/views/components/pages/Rents.vue +60 -56
  327. package/dist/globals.websocket-DzvdIBf6.js +0 -306
  328. package/dist/globals.websocket-k6_B1T7k.cjs +0 -322
  329. package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
  330. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  331. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  332. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +0 -69
  333. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +0 -1
  334. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +0 -69
  335. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +0 -1
  336. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +0 -104
  337. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +0 -1
  338. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +0 -104
  339. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +0 -1
  340. package/src/modules/music/components/cards/TrackCard.vue +0 -86
  341. package/src/modules/music/components/layouts/MusicLayout.vue +0 -83
@@ -7,7 +7,7 @@ import Qn from "../../../../../../node_modules/.pnpm/@vuepic_vue-datepicker@11.0
7
7
  /* empty css */
8
8
  import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
9
9
  import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
10
- import Field from "../../../../components/Field/Field.vue2.js";
10
+ import Field from "../../../../components/Field/Field.vue.js";
11
11
  import _sfc_main$6 from "../../../../components/FieldTags/BlockTags.vue.js";
12
12
  import _sfc_main$9 from "../../../../components/Checkbox/Checkbox.vue.js";
13
13
  /* empty css */
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
5
5
  const Block = require("../../../../components/Block/Block.vue.cjs");
6
6
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
7
- const Field = require("../../../../components/Field/Field.vue2.cjs");
7
+ const Field = require("../../../../components/Field/Field.vue.cjs");
8
8
  const Button = require("../../../../components/Button/Button.vue.cjs");
9
9
  const ButtonCheck = require("../elements/ButtonCheck.vue.cjs");
10
10
  const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
@@ -2,7 +2,7 @@ import { ref, onMounted, createElementBlock, createCommentVNode, unref, openBloc
2
2
  import _sfc_main$7 from "../../../../components/Feed/Feed.vue.js";
3
3
  import _sfc_main$3 from "../../../../components/Block/Block.vue.js";
4
4
  import _sfc_main$2 from "../../../../components/Popup/Popup.vue.js";
5
- import Field from "../../../../components/Field/Field.vue2.js";
5
+ import Field from "../../../../components/Field/Field.vue.js";
6
6
  import _sfc_main$6 from "../../../../components/Button/Button.vue.js";
7
7
  import _sfc_main$1 from "../elements/ButtonCheck.vue.js";
8
8
  import _sfc_main$5 from "../../../icons/navigation/IconDelete.vue.js";
@@ -15,7 +15,7 @@ const SkeletonEvent = require("../../../icons/skeletons/SkeletonEvent.vue.cjs");
15
15
  ;/* empty css */
16
16
  ;/* empty css */
17
17
  ;/* empty css */
18
- ;/* empty css */
18
+ ;/* empty css */
19
19
  ;/* empty css */
20
20
  ;/* empty css */
21
21
  ;/* empty css */
@@ -13,7 +13,7 @@ import SkeletonEvent from "../../../icons/skeletons/SkeletonEvent.vue.js";
13
13
  /* empty css */
14
14
  /* empty css */
15
15
  /* empty css */
16
- /* empty css */
16
+ /* empty css */
17
17
  /* empty css */
18
18
  /* empty css */
19
19
  /* empty css */
@@ -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
- ;/* empty css */
5
+ ;/* empty css */
6
6
  const Button = require("../../../../components/Button/Button.vue.cjs");
7
7
  ;/* empty css */
8
8
  const Chips = require("../../../../components/Chips/Chips.vue.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, createElementBlock, openBlock, createVNode, unref, isRef, withCtx, Fragment, renderList, createElementVNode, toDisplayString, createBlock, createCommentVNode, createTextVNode } from "vue";
2
2
  import { useRoute } from "vue-router";
3
- /* empty css */
3
+ /* empty css */
4
4
  import _sfc_main$8 from "../../../../components/Button/Button.vue.js";
5
5
  /* empty css */
6
6
  import _sfc_main$4 from "../../../../components/Chips/Chips.vue.js";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const index = require("../../../../../../_virtual/index.cjs");
3
+ const index = require("../../../../../../_virtual/index2.cjs");
4
4
  class I18nManager {
5
5
  constructor() {
6
6
  this.moduleLocales = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- import merge from "../../../../../../_virtual/index.js";
1
+ import merge from "../../../../../../_virtual/index2.js";
2
2
  class I18nManager {
3
3
  constructor() {
4
4
  this.moduleLocales = /* @__PURE__ */ new Map();
@@ -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 IconSearch = require("../../../../icons/navigation/IconSearch.vue.cjs");
5
- const Field = require("../../../../../components/Field/Field.vue2.cjs");
5
+ const Field = require("../../../../../components/Field/Field.vue.cjs");
6
6
  const _sfc_main = {
7
7
  __name: "BlockSearch",
8
8
  props: {
@@ -1,6 +1,6 @@
1
1
  import { ref, watch, createBlock, openBlock, withCtx, createVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../icons/navigation/IconSearch.vue.js";
3
- import Field from "../../../../../components/Field/Field.vue2.js";
3
+ import Field from "../../../../../components/Field/Field.vue.js";
4
4
  const _sfc_main = {
5
5
  __name: "BlockSearch",
6
6
  props: {
@@ -275,8 +275,12 @@ const _sfc_main = {
275
275
  _: 1
276
276
  }))
277
277
  ]),
278
- !_ctx.MOBILE_APP && vue.unref(route).meta.footer && !vue.unref(route).meta.hideFooter ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(route).meta.footer), {
278
+ vue.unref(route).meta.player ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(route).meta.player), {
279
279
  key: 2,
280
+ class: "z-index-2"
281
+ })) : vue.createCommentVNode("", true),
282
+ !_ctx.MOBILE_APP && vue.unref(route).meta.footer && !vue.unref(route).meta.hideFooter ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(route).meta.footer), {
283
+ key: 3,
280
284
  ref: "footer",
281
285
  theme: headerTheme.value,
282
286
  logotype: vue.unref(route).meta.logotype,
@@ -1 +1 @@
1
- {"version":3,"file":"Client.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"flex flex-column h-100 w-100 pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-white': headerTheme === 'light',\n\t\t\t'bg-black': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page || isPageLoading\" class=\"pos-fixed\"/>\n\t\t</transition>\n\n\n\t <transition \n\t name=\"moveFromTop\" \n\t mode=\"out-in\"\n\t >\n\t <section \n\t v-if=\"FirstUse && route.meta.walkthrough\"\n\t class=\"w-100 h-100\" \n\t >\n\t <component \n\t :is=\"route.meta.walkthrough\"\n\t name=\"Walkthrough\"\n\t @updateFirstUse=\"updateFirstUse\" \n\t :slides=\"[1,2,3]\" \n\t class=\"tab\"\n\t >\n\t </component>\n\t </section>\n\t </transition>\n\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\" \n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n >\n \t<component\n\t\t v-if=\"route.meta?.header_navigation\"\n\t\t :is=\"route.meta.header_navigation\"\n\t\t :horizontal=\"true\"\n\t\t\t\t:navigationItems=\"route.meta.header_navigation_items\"\n\t\t\t\t:stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n \t</component>\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n />\n\t\t</transition>\n\n\t <Popup \n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t <!-- class=\"flex flex-nowrap transition-ease-in-out o-hidden pos-relative\" -->\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"flex flex-nowrap h-100 pos-relative o-hidden transition-ease-in-out\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n }\"\n\t\t>\n\t\t\t<ShopCart \n\t\t\t\t:class=\"{\n\t\t\t\t\t'mobile:pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t\t}\"\n\t\t\t/>\n\t <component\n\t v-if=\"route.meta?.sidebar && !MOBILE_APP\"\n\t v-slot=\"{ Component }\"\n\t :is=\"route.meta.sidebar\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t :widthHidden='route.meta?.sidebar_width_hidden'\n\t :width=\"route.meta?.sidebar_width\"\n\t :theme=\"headerTheme\"\n\t @closeSidebar=\"() => globals.state.isOpenSidebar = false\"\n\t >\n\t \t<transition name=\"moveFromTop\" mode=\"out-in\">\n\t\t <component\n\t\t v-if=\"route.meta?.sidebar_navigation\"\n\t\t :is=\"route.meta.sidebar_navigation\"\n\t\t :key=\"route.meta.sidebar_navigation\"\n\t\t :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n\t </transition>\n\t </component>\n\t\t <!-- rows-1-min0_max1 z-index-1 pos-relative w-100 h-100 -->\n\t\t <div class=\"rows-1-min0_max1 z-index-1 pos-relative w-100 h-100\">\n\t\t \t<div class=\"o-y-scroll o-x-hidden h-100\">\n\t \t\t\t<Status \n\t \t\t\t\tv-if=\"globals.state.error.show\"\n\t\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\t\t\t\t\t<Snack \n\t \t\t\t\tv-if=\"globals.state.snack.show\"\n\t\t\t\t\t\t:data=\"globals.state.snack\"\n\t\t\t\t\t\t@close=\"globals.state.snack.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"h-min-100 pos-relative w-100\">\n\t\t\t\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t\t\t\t<Breadcrumbs \n\t\t\t\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\t\t\t\tclass=\"bg-light pd-small radius-small\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</section> -->\n\n\t\t\t\t \t\t<Suspense @resolve=\"onSuspenseResolved\">\n\t\t\t\t\t\t\t<router-view \n\t\t\t\t\t\t\t\tid=\"view\"\n\t\t\t\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\tclass=\"h-min-100 pos-relative w-100\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t\t\t\t \t<component \n\t\t\t\t\t \t\tref=\"page\" \n\t\t\t\t\t \t\t:is=\"Component\" \n\t\t\t\t\t \t\t:key=\"route.path\"\n\t\t\t\t\t \t\tclass=\"w-100 h-min-100\"\n\t\t\t\t \t\t \t@page-loading=\"handlePageLoading\"\n\t\t\t @page-loaded=\"handlePageLoaded\"\n\t\t\t\t\t \t/>\n\t\t\t\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t\t\t\t \t<!-- -->\n\t\t\t\t\t </transition>\n\t\t\t\t\t\t </router-view>\n\t\t\t\t\t\t</Suspense>\n\t\t\t\t </div>\n\t\t\t \n\t <component\n\t\t\t\t\t\tv-if=\"!MOBILE_APP && route.meta.footer && !route.meta.hideFooter\"\n\t\t\t ref=\"footer\" \n\t\t\t :is=\"route.meta.footer\"\n\t\t\t :theme=\"headerTheme\"\n\t\t\t :logotype=\"route.meta.logotype\"\n\t\t\t :location=\"route.meta.location\"\n\t\t\t />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n\t\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted, watch } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\t// Partials\n\timport Status from '@martyrs/src/components/Status/Status.vue';\n\timport Snack from '@martyrs/src/components/Status/Snack.vue';\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@martyrs/src/modules/globals/views/components/partials/LocationSelection.vue';\n\n\timport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n\t// PROPS\n\tconst props = defineProps({\n env: {\n type: Object,\n required: true\n },\n app: {\n type: Object,\n required: true\n },\n modules: {\n type: Object,\n required: true\n }\n })\n\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\n const isPageLoading = ref(true);\n \n // Обработчики событий загрузки\n function handlePageLoading() {\n isPageLoading.value = true;\n }\n \n function handlePageLoaded() {\n isPageLoading.value = false;\n }\n \n // Обработка события разрешения Suspense (когда async setup компонента завершается)\n function onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик \n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n isPageLoading.value = false;\n }\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n/////////////////////////////\n // FIRST USE\n /////////////////////////////\n const FirstUse = ref(false);\n\n import { Preferences } from '@capacitor/preferences';\n\n async function getFirstUse() {\n const ret = await Preferences.get({ key: 'first-use' });\n FirstUse.value = ret.value ? JSON.parse(ret.value) : true;\n }\n\n const updateFirstUse = (value) => {\n FirstUse.value = value;\n }\n\n\tonMounted(async () => {\n\t await getFirstUse()\n\n\t\t// Регистрация единого Service Worker (PWA + push notifications)\n\t\tif ('serviceWorker' in navigator && !window.__MOBILE_APP__) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/sw.js').then(registration => {\n\t \tconsole.log('Unified SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else if (route.meta.location) {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t } else {\n\t \tglobals.state.isOpenLocationPopup = false;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.fade-enter-active, .fade-leave-active {\n\t transition: opacity .5s;\n\t}\n\t.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {\n\t opacity: 0;\n\t}\n\n\t\n .fade-move,\n .fade-enter-active,\n .fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n }\n\n /* 2. declare enter from and leave to state */\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n }\n\n /* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n .fade-leave-active {\n position: absolute;\n }\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition: all 0.3s ease, max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh; \n}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["ref","useRoute","globals.state","computed","Preferences","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgOE,QAAI,OAAOA,IAAAA,IAAI,KAAK;AAEpB,UAAM,OAAOA,IAAAA,IAAI,IAAI;AAErB,UAAM,gBAAgBA,IAAAA,IAAI,IAAI;AAG9B,aAAS,oBAAoB;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AAEA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;AAGA,aAAS,qBAAqB;AAI5B,oBAAc,QAAQ;AAAA,IACxB;AAID,UAAM,QAAQC,UAAAA,SAAQ;AAGtB,UAAM,cAAcD,IAAAA,IAAI,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BE,cAAAA,MAAc,sBAAsB;AAAA,IACtC;AACA,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAc;AAAA,IAC9C;AAEA,UAAM,eAAeF,IAAAA,IAAI,CAAC;AAE1B,UAAM,SAASA,IAAAA,IAAI,IAAI;AAEvB,UAAM,cAAcG,IAAAA,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACpC,OAAO;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MACnC;AAAA,IACD,CAAC;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACpC;AAIC,UAAM,WAAWH,IAAAA,IAAI,KAAK;AAI1B,mBAAe,cAAc;AAC3B,YAAM,MAAM,MAAMI,MAAAA,YAAY,IAAI,EAAE,KAAK,aAAa;AACtD,eAAS,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,KAAK,IAAI;AAAA,IACvD;AAEA,UAAM,iBAAiB,CAAC,UAAU;AAChC,eAAS,QAAQ;AAAA,IACnB;AAEDC,QAAAA,UAAU,YAAY;AACpB,YAAM,YAAW;AAGlB,UAAI,mBAAmB,aAAa,CAAC,OAAO,gBAAgB;AACzD,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,QAAQ,EAAE,KAAK,kBAAgB;AAC9D,oBAAQ,IAAI,2BAA2B,YAAY;AAAA,UACrD,CAAC,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAC3D,CAAC;AAAA,QACJ,CAAC;AAAA,MACF;AAED,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBH,gBAAAA,MAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACnD,WAAW,MAAM,KAAK,UAAU;AAC/BA,gBAAAA,MAAc,sBAAsB;AAAA,MACrC,OAAO;AACNA,gBAAAA,MAAc,sBAAsB;AAAA,MACrC;AAED,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACvD;AAEA,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Client.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"flex flex-column h-100 w-100 pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-white': headerTheme === 'light',\n\t\t\t'bg-black': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page || isPageLoading\" class=\"pos-fixed\"/>\n\t\t</transition>\n\n\n\t <transition \n\t name=\"moveFromTop\" \n\t mode=\"out-in\"\n\t >\n\t <section \n\t v-if=\"FirstUse && route.meta.walkthrough\"\n\t class=\"w-100 h-100\" \n\t >\n\t <component \n\t :is=\"route.meta.walkthrough\"\n\t name=\"Walkthrough\"\n\t @updateFirstUse=\"updateFirstUse\" \n\t :slides=\"[1,2,3]\" \n\t class=\"tab\"\n\t >\n\t </component>\n\t </section>\n\t </transition>\n\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\" \n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n >\n \t<component\n\t\t v-if=\"route.meta?.header_navigation\"\n\t\t :is=\"route.meta.header_navigation\"\n\t\t :horizontal=\"true\"\n\t\t\t\t:navigationItems=\"route.meta.header_navigation_items\"\n\t\t\t\t:stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n \t</component>\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n />\n\t\t</transition>\n\n\t <Popup \n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t <!-- class=\"flex flex-nowrap transition-ease-in-out o-hidden pos-relative\" -->\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"flex flex-nowrap h-100 pos-relative o-hidden transition-ease-in-out\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n }\"\n\t\t>\n\t\t\t<ShopCart \n\t\t\t\t:class=\"{\n\t\t\t\t\t'mobile:pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t\t}\"\n\t\t\t/>\n\t <component\n\t v-if=\"route.meta?.sidebar && !MOBILE_APP\"\n\t v-slot=\"{ Component }\"\n\t :is=\"route.meta.sidebar\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t :widthHidden='route.meta?.sidebar_width_hidden'\n\t :width=\"route.meta?.sidebar_width\"\n\t :theme=\"headerTheme\"\n\t @closeSidebar=\"() => globals.state.isOpenSidebar = false\"\n\t >\n\t \t<transition name=\"moveFromTop\" mode=\"out-in\">\n\t\t <component\n\t\t v-if=\"route.meta?.sidebar_navigation\"\n\t\t :is=\"route.meta.sidebar_navigation\"\n\t\t :key=\"route.meta.sidebar_navigation\"\n\t\t :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n\t </transition>\n\t </component>\n\t\t <!-- rows-1-min0_max1 z-index-1 pos-relative w-100 h-100 -->\n\t\t <div class=\"rows-1-min0_max1 z-index-1 pos-relative w-100 h-100\">\n\t\t \t<div class=\"o-y-scroll o-x-hidden h-100\">\n\t \t\t\t<Status \n\t \t\t\t\tv-if=\"globals.state.error.show\"\n\t\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\t\t\t\t\t<Snack \n\t \t\t\t\tv-if=\"globals.state.snack.show\"\n\t\t\t\t\t\t:data=\"globals.state.snack\"\n\t\t\t\t\t\t@close=\"globals.state.snack.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"h-min-100 pos-relative w-100\">\n\t\t\t\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t\t\t\t<Breadcrumbs \n\t\t\t\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\t\t\t\tclass=\"bg-light pd-small radius-small\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</section> -->\n\n\t\t\t\t \t\t<Suspense @resolve=\"onSuspenseResolved\">\n\t\t\t\t\t\t\t<router-view \n\t\t\t\t\t\t\t\tid=\"view\"\n\t\t\t\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\tclass=\"h-min-100 pos-relative w-100\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t\t\t\t \t<component \n\t\t\t\t\t \t\tref=\"page\" \n\t\t\t\t\t \t\t:is=\"Component\" \n\t\t\t\t\t \t\t:key=\"route.path\"\n\t\t\t\t\t \t\tclass=\"w-100 h-min-100\"\n\t\t\t\t \t\t \t@page-loading=\"handlePageLoading\"\n\t\t\t @page-loaded=\"handlePageLoaded\"\n\t\t\t\t\t \t/>\n\t\t\t\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t\t\t\t \t<!-- -->\n\t\t\t\t\t </transition>\n\t\t\t\t\t\t </router-view>\n\t\t\t\t\t\t</Suspense>\n\t\t\t\t </div>\n\n\t\t\t\t \t<component \n\t\t\t v-if=\"route.meta.player\"\n\t\t\t class=\"z-index-2\"\n\t\t\t \t:is=\"route.meta.player\"\n\t\t\t />\n\t\t\t \n\t <component\n\t\t\t\t\t\tv-if=\"!MOBILE_APP && route.meta.footer && !route.meta.hideFooter\"\n\t\t\t ref=\"footer\" \n\t\t\t :is=\"route.meta.footer\"\n\t\t\t :theme=\"headerTheme\"\n\t\t\t :logotype=\"route.meta.logotype\"\n\t\t\t :location=\"route.meta.location\"\n\t\t\t />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n\t\n\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted, watch } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\t// Partials\n\timport Status from '@martyrs/src/components/Status/Status.vue';\n\timport Snack from '@martyrs/src/components/Status/Snack.vue';\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@martyrs/src/modules/globals/views/components/partials/LocationSelection.vue';\n\n\timport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n\t// PROPS\n\tconst props = defineProps({\n env: {\n type: Object,\n required: true\n },\n app: {\n type: Object,\n required: true\n },\n modules: {\n type: Object,\n required: true\n }\n })\n\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\n const isPageLoading = ref(true);\n \n // Обработчики событий загрузки\n function handlePageLoading() {\n isPageLoading.value = true;\n }\n \n function handlePageLoaded() {\n isPageLoading.value = false;\n }\n \n // Обработка события разрешения Suspense (когда async setup компонента завершается)\n function onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик \n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n isPageLoading.value = false;\n }\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n/////////////////////////////\n // FIRST USE\n /////////////////////////////\n const FirstUse = ref(false);\n\n import { Preferences } from '@capacitor/preferences';\n\n async function getFirstUse() {\n const ret = await Preferences.get({ key: 'first-use' });\n FirstUse.value = ret.value ? JSON.parse(ret.value) : true;\n }\n\n const updateFirstUse = (value) => {\n FirstUse.value = value;\n }\n\n\tonMounted(async () => {\n\t await getFirstUse()\n\n\t\t// Регистрация единого Service Worker (PWA + push notifications)\n\t\tif ('serviceWorker' in navigator && !window.__MOBILE_APP__) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/sw.js').then(registration => {\n\t \tconsole.log('Unified SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else if (route.meta.location) {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t } else {\n\t \tglobals.state.isOpenLocationPopup = false;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.fade-enter-active, .fade-leave-active {\n\t transition: opacity .5s;\n\t}\n\t.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {\n\t opacity: 0;\n\t}\n\n\t\n .fade-move,\n .fade-enter-active,\n .fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n }\n\n /* 2. declare enter from and leave to state */\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n }\n\n /* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n .fade-leave-active {\n position: absolute;\n }\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition: all 0.3s ease, max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh; \n}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["ref","useRoute","globals.state","computed","Preferences","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuOE,QAAI,OAAOA,IAAAA,IAAI,KAAK;AAEpB,UAAM,OAAOA,IAAAA,IAAI,IAAI;AAErB,UAAM,gBAAgBA,IAAAA,IAAI,IAAI;AAG9B,aAAS,oBAAoB;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AAEA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;AAGA,aAAS,qBAAqB;AAI5B,oBAAc,QAAQ;AAAA,IACxB;AAID,UAAM,QAAQC,UAAAA,SAAQ;AAGtB,UAAM,cAAcD,IAAAA,IAAI,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BE,cAAAA,MAAc,sBAAsB;AAAA,IACtC;AACA,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAc;AAAA,IAC9C;AAEA,UAAM,eAAeF,IAAAA,IAAI,CAAC;AAE1B,UAAM,SAASA,IAAAA,IAAI,IAAI;AAEvB,UAAM,cAAcG,IAAAA,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACpC,OAAO;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MACnC;AAAA,IACD,CAAC;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACpC;AAIC,UAAM,WAAWH,IAAAA,IAAI,KAAK;AAI1B,mBAAe,cAAc;AAC3B,YAAM,MAAM,MAAMI,MAAAA,YAAY,IAAI,EAAE,KAAK,aAAa;AACtD,eAAS,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,KAAK,IAAI;AAAA,IACvD;AAEA,UAAM,iBAAiB,CAAC,UAAU;AAChC,eAAS,QAAQ;AAAA,IACnB;AAEDC,QAAAA,UAAU,YAAY;AACpB,YAAM,YAAW;AAGlB,UAAI,mBAAmB,aAAa,CAAC,OAAO,gBAAgB;AACzD,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,QAAQ,EAAE,KAAK,kBAAgB;AAC9D,oBAAQ,IAAI,2BAA2B,YAAY;AAAA,UACrD,CAAC,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAC3D,CAAC;AAAA,QACJ,CAAC;AAAA,MACF;AAED,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBH,gBAAAA,MAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACnD,WAAW,MAAM,KAAK,UAAU;AAC/BA,gBAAAA,MAAc,sBAAsB;AAAA,MACrC,OAAO;AACNA,gBAAAA,MAAc,sBAAsB;AAAA,MACrC;AAED,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACvD;AAEA,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -273,8 +273,12 @@ const _sfc_main = {
273
273
  _: 1
274
274
  }))
275
275
  ]),
276
- !_ctx.MOBILE_APP && unref(route).meta.footer && !unref(route).meta.hideFooter ? (openBlock(), createBlock(resolveDynamicComponent(unref(route).meta.footer), {
276
+ unref(route).meta.player ? (openBlock(), createBlock(resolveDynamicComponent(unref(route).meta.player), {
277
277
  key: 2,
278
+ class: "z-index-2"
279
+ })) : createCommentVNode("", true),
280
+ !_ctx.MOBILE_APP && unref(route).meta.footer && !unref(route).meta.hideFooter ? (openBlock(), createBlock(resolveDynamicComponent(unref(route).meta.footer), {
281
+ key: 3,
278
282
  ref: "footer",
279
283
  theme: headerTheme.value,
280
284
  logotype: unref(route).meta.logotype,
@@ -1 +1 @@
1
- {"version":3,"file":"Client.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"flex flex-column h-100 w-100 pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-white': headerTheme === 'light',\n\t\t\t'bg-black': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page || isPageLoading\" class=\"pos-fixed\"/>\n\t\t</transition>\n\n\n\t <transition \n\t name=\"moveFromTop\" \n\t mode=\"out-in\"\n\t >\n\t <section \n\t v-if=\"FirstUse && route.meta.walkthrough\"\n\t class=\"w-100 h-100\" \n\t >\n\t <component \n\t :is=\"route.meta.walkthrough\"\n\t name=\"Walkthrough\"\n\t @updateFirstUse=\"updateFirstUse\" \n\t :slides=\"[1,2,3]\" \n\t class=\"tab\"\n\t >\n\t </component>\n\t </section>\n\t </transition>\n\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\" \n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n >\n \t<component\n\t\t v-if=\"route.meta?.header_navigation\"\n\t\t :is=\"route.meta.header_navigation\"\n\t\t :horizontal=\"true\"\n\t\t\t\t:navigationItems=\"route.meta.header_navigation_items\"\n\t\t\t\t:stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n \t</component>\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n />\n\t\t</transition>\n\n\t <Popup \n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t <!-- class=\"flex flex-nowrap transition-ease-in-out o-hidden pos-relative\" -->\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"flex flex-nowrap h-100 pos-relative o-hidden transition-ease-in-out\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n }\"\n\t\t>\n\t\t\t<ShopCart \n\t\t\t\t:class=\"{\n\t\t\t\t\t'mobile:pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t\t}\"\n\t\t\t/>\n\t <component\n\t v-if=\"route.meta?.sidebar && !MOBILE_APP\"\n\t v-slot=\"{ Component }\"\n\t :is=\"route.meta.sidebar\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t :widthHidden='route.meta?.sidebar_width_hidden'\n\t :width=\"route.meta?.sidebar_width\"\n\t :theme=\"headerTheme\"\n\t @closeSidebar=\"() => globals.state.isOpenSidebar = false\"\n\t >\n\t \t<transition name=\"moveFromTop\" mode=\"out-in\">\n\t\t <component\n\t\t v-if=\"route.meta?.sidebar_navigation\"\n\t\t :is=\"route.meta.sidebar_navigation\"\n\t\t :key=\"route.meta.sidebar_navigation\"\n\t\t :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n\t </transition>\n\t </component>\n\t\t <!-- rows-1-min0_max1 z-index-1 pos-relative w-100 h-100 -->\n\t\t <div class=\"rows-1-min0_max1 z-index-1 pos-relative w-100 h-100\">\n\t\t \t<div class=\"o-y-scroll o-x-hidden h-100\">\n\t \t\t\t<Status \n\t \t\t\t\tv-if=\"globals.state.error.show\"\n\t\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\t\t\t\t\t<Snack \n\t \t\t\t\tv-if=\"globals.state.snack.show\"\n\t\t\t\t\t\t:data=\"globals.state.snack\"\n\t\t\t\t\t\t@close=\"globals.state.snack.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"h-min-100 pos-relative w-100\">\n\t\t\t\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t\t\t\t<Breadcrumbs \n\t\t\t\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\t\t\t\tclass=\"bg-light pd-small radius-small\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</section> -->\n\n\t\t\t\t \t\t<Suspense @resolve=\"onSuspenseResolved\">\n\t\t\t\t\t\t\t<router-view \n\t\t\t\t\t\t\t\tid=\"view\"\n\t\t\t\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\tclass=\"h-min-100 pos-relative w-100\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t\t\t\t \t<component \n\t\t\t\t\t \t\tref=\"page\" \n\t\t\t\t\t \t\t:is=\"Component\" \n\t\t\t\t\t \t\t:key=\"route.path\"\n\t\t\t\t\t \t\tclass=\"w-100 h-min-100\"\n\t\t\t\t \t\t \t@page-loading=\"handlePageLoading\"\n\t\t\t @page-loaded=\"handlePageLoaded\"\n\t\t\t\t\t \t/>\n\t\t\t\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t\t\t\t \t<!-- -->\n\t\t\t\t\t </transition>\n\t\t\t\t\t\t </router-view>\n\t\t\t\t\t\t</Suspense>\n\t\t\t\t </div>\n\t\t\t \n\t <component\n\t\t\t\t\t\tv-if=\"!MOBILE_APP && route.meta.footer && !route.meta.hideFooter\"\n\t\t\t ref=\"footer\" \n\t\t\t :is=\"route.meta.footer\"\n\t\t\t :theme=\"headerTheme\"\n\t\t\t :logotype=\"route.meta.logotype\"\n\t\t\t :location=\"route.meta.location\"\n\t\t\t />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n\t\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted, watch } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\t// Partials\n\timport Status from '@martyrs/src/components/Status/Status.vue';\n\timport Snack from '@martyrs/src/components/Status/Snack.vue';\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@martyrs/src/modules/globals/views/components/partials/LocationSelection.vue';\n\n\timport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n\t// PROPS\n\tconst props = defineProps({\n env: {\n type: Object,\n required: true\n },\n app: {\n type: Object,\n required: true\n },\n modules: {\n type: Object,\n required: true\n }\n })\n\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\n const isPageLoading = ref(true);\n \n // Обработчики событий загрузки\n function handlePageLoading() {\n isPageLoading.value = true;\n }\n \n function handlePageLoaded() {\n isPageLoading.value = false;\n }\n \n // Обработка события разрешения Suspense (когда async setup компонента завершается)\n function onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик \n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n isPageLoading.value = false;\n }\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n/////////////////////////////\n // FIRST USE\n /////////////////////////////\n const FirstUse = ref(false);\n\n import { Preferences } from '@capacitor/preferences';\n\n async function getFirstUse() {\n const ret = await Preferences.get({ key: 'first-use' });\n FirstUse.value = ret.value ? JSON.parse(ret.value) : true;\n }\n\n const updateFirstUse = (value) => {\n FirstUse.value = value;\n }\n\n\tonMounted(async () => {\n\t await getFirstUse()\n\n\t\t// Регистрация единого Service Worker (PWA + push notifications)\n\t\tif ('serviceWorker' in navigator && !window.__MOBILE_APP__) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/sw.js').then(registration => {\n\t \tconsole.log('Unified SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else if (route.meta.location) {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t } else {\n\t \tglobals.state.isOpenLocationPopup = false;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.fade-enter-active, .fade-leave-active {\n\t transition: opacity .5s;\n\t}\n\t.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {\n\t opacity: 0;\n\t}\n\n\t\n .fade-move,\n .fade-enter-active,\n .fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n }\n\n /* 2. declare enter from and leave to state */\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n }\n\n /* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n .fade-leave-active {\n position: absolute;\n }\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition: all 0.3s ease, max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh; \n}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["globals.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgOE,QAAI,OAAO,IAAI,KAAK;AAEpB,UAAM,OAAO,IAAI,IAAI;AAErB,UAAM,gBAAgB,IAAI,IAAI;AAG9B,aAAS,oBAAoB;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AAEA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;AAGA,aAAS,qBAAqB;AAI5B,oBAAc,QAAQ;AAAA,IACxB;AAID,UAAM,QAAQ,SAAQ;AAGtB,UAAM,cAAc,IAAI,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BA,YAAc,sBAAsB;AAAA,IACtC;AACA,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAc;AAAA,IAC9C;AAEA,UAAM,eAAe,IAAI,CAAC;AAE1B,UAAM,SAAS,IAAI,IAAI;AAEvB,UAAM,cAAc,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACpC,OAAO;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MACnC;AAAA,IACD,CAAC;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACpC;AAIC,UAAM,WAAW,IAAI,KAAK;AAI1B,mBAAe,cAAc;AAC3B,YAAM,MAAM,MAAM,YAAY,IAAI,EAAE,KAAK,aAAa;AACtD,eAAS,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,KAAK,IAAI;AAAA,IACvD;AAEA,UAAM,iBAAiB,CAAC,UAAU;AAChC,eAAS,QAAQ;AAAA,IACnB;AAED,cAAU,YAAY;AACpB,YAAM,YAAW;AAGlB,UAAI,mBAAmB,aAAa,CAAC,OAAO,gBAAgB;AACzD,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,QAAQ,EAAE,KAAK,kBAAgB;AAC9D,oBAAQ,IAAI,2BAA2B,YAAY;AAAA,UACrD,CAAC,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAC3D,CAAC;AAAA,QACJ,CAAC;AAAA,MACF;AAED,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBA,cAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACnD,WAAW,MAAM,KAAK,UAAU;AAC/BA,cAAc,sBAAsB;AAAA,MACrC,OAAO;AACNA,cAAc,sBAAsB;AAAA,MACrC;AAED,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACvD;AAEA,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Client.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"flex flex-column h-100 w-100 pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-white': headerTheme === 'light',\n\t\t\t'bg-black': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page || isPageLoading\" class=\"pos-fixed\"/>\n\t\t</transition>\n\n\n\t <transition \n\t name=\"moveFromTop\" \n\t mode=\"out-in\"\n\t >\n\t <section \n\t v-if=\"FirstUse && route.meta.walkthrough\"\n\t class=\"w-100 h-100\" \n\t >\n\t <component \n\t :is=\"route.meta.walkthrough\"\n\t name=\"Walkthrough\"\n\t @updateFirstUse=\"updateFirstUse\" \n\t :slides=\"[1,2,3]\" \n\t class=\"tab\"\n\t >\n\t </component>\n\t </section>\n\t </transition>\n\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\" \n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n >\n \t<component\n\t\t v-if=\"route.meta?.header_navigation\"\n\t\t :is=\"route.meta.header_navigation\"\n\t\t :horizontal=\"true\"\n\t\t\t\t:navigationItems=\"route.meta.header_navigation_items\"\n\t\t\t\t:stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n \t</component>\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n />\n\t\t</transition>\n\n\t <Popup \n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t <!-- class=\"flex flex-nowrap transition-ease-in-out o-hidden pos-relative\" -->\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"flex flex-nowrap h-100 pos-relative o-hidden transition-ease-in-out\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n }\"\n\t\t>\n\t\t\t<ShopCart \n\t\t\t\t:class=\"{\n\t\t\t\t\t'mobile:pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t\t}\"\n\t\t\t/>\n\t <component\n\t v-if=\"route.meta?.sidebar && !MOBILE_APP\"\n\t v-slot=\"{ Component }\"\n\t :is=\"route.meta.sidebar\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t :widthHidden='route.meta?.sidebar_width_hidden'\n\t :width=\"route.meta?.sidebar_width\"\n\t :theme=\"headerTheme\"\n\t @closeSidebar=\"() => globals.state.isOpenSidebar = false\"\n\t >\n\t \t<transition name=\"moveFromTop\" mode=\"out-in\">\n\t\t <component\n\t\t v-if=\"route.meta?.sidebar_navigation\"\n\t\t :is=\"route.meta.sidebar_navigation\"\n\t\t :key=\"route.meta.sidebar_navigation\"\n\t\t :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n\t </transition>\n\t </component>\n\t\t <!-- rows-1-min0_max1 z-index-1 pos-relative w-100 h-100 -->\n\t\t <div class=\"rows-1-min0_max1 z-index-1 pos-relative w-100 h-100\">\n\t\t \t<div class=\"o-y-scroll o-x-hidden h-100\">\n\t \t\t\t<Status \n\t \t\t\t\tv-if=\"globals.state.error.show\"\n\t\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\t\t\t\t\t<Snack \n\t \t\t\t\tv-if=\"globals.state.snack.show\"\n\t\t\t\t\t\t:data=\"globals.state.snack\"\n\t\t\t\t\t\t@close=\"globals.state.snack.show = false\"\n\t\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"h-min-100 pos-relative w-100\">\n\t\t\t\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t\t\t\t<Breadcrumbs \n\t\t\t\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\t\t\t\tclass=\"bg-light pd-small radius-small\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</section> -->\n\n\t\t\t\t \t\t<Suspense @resolve=\"onSuspenseResolved\">\n\t\t\t\t\t\t\t<router-view \n\t\t\t\t\t\t\t\tid=\"view\"\n\t\t\t\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\tclass=\"h-min-100 pos-relative w-100\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t\t\t\t \t<component \n\t\t\t\t\t \t\tref=\"page\" \n\t\t\t\t\t \t\t:is=\"Component\" \n\t\t\t\t\t \t\t:key=\"route.path\"\n\t\t\t\t\t \t\tclass=\"w-100 h-min-100\"\n\t\t\t\t \t\t \t@page-loading=\"handlePageLoading\"\n\t\t\t @page-loaded=\"handlePageLoaded\"\n\t\t\t\t\t \t/>\n\t\t\t\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t\t\t\t \t<!-- -->\n\t\t\t\t\t </transition>\n\t\t\t\t\t\t </router-view>\n\t\t\t\t\t\t</Suspense>\n\t\t\t\t </div>\n\n\t\t\t\t \t<component \n\t\t\t v-if=\"route.meta.player\"\n\t\t\t class=\"z-index-2\"\n\t\t\t \t:is=\"route.meta.player\"\n\t\t\t />\n\t\t\t \n\t <component\n\t\t\t\t\t\tv-if=\"!MOBILE_APP && route.meta.footer && !route.meta.hideFooter\"\n\t\t\t ref=\"footer\" \n\t\t\t :is=\"route.meta.footer\"\n\t\t\t :theme=\"headerTheme\"\n\t\t\t :logotype=\"route.meta.logotype\"\n\t\t\t :location=\"route.meta.location\"\n\t\t\t />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n\t\n\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted, watch } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\t// Partials\n\timport Status from '@martyrs/src/components/Status/Status.vue';\n\timport Snack from '@martyrs/src/components/Status/Snack.vue';\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@martyrs/src/modules/globals/views/components/partials/LocationSelection.vue';\n\n\timport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n\t// PROPS\n\tconst props = defineProps({\n env: {\n type: Object,\n required: true\n },\n app: {\n type: Object,\n required: true\n },\n modules: {\n type: Object,\n required: true\n }\n })\n\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\n const isPageLoading = ref(true);\n \n // Обработчики событий загрузки\n function handlePageLoading() {\n isPageLoading.value = true;\n }\n \n function handlePageLoaded() {\n isPageLoading.value = false;\n }\n \n // Обработка события разрешения Suspense (когда async setup компонента завершается)\n function onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик \n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n isPageLoading.value = false;\n }\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n/////////////////////////////\n // FIRST USE\n /////////////////////////////\n const FirstUse = ref(false);\n\n import { Preferences } from '@capacitor/preferences';\n\n async function getFirstUse() {\n const ret = await Preferences.get({ key: 'first-use' });\n FirstUse.value = ret.value ? JSON.parse(ret.value) : true;\n }\n\n const updateFirstUse = (value) => {\n FirstUse.value = value;\n }\n\n\tonMounted(async () => {\n\t await getFirstUse()\n\n\t\t// Регистрация единого Service Worker (PWA + push notifications)\n\t\tif ('serviceWorker' in navigator && !window.__MOBILE_APP__) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/sw.js').then(registration => {\n\t \tconsole.log('Unified SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else if (route.meta.location) {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t } else {\n\t \tglobals.state.isOpenLocationPopup = false;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.fade-enter-active, .fade-leave-active {\n\t transition: opacity .5s;\n\t}\n\t.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {\n\t opacity: 0;\n\t}\n\n\t\n .fade-move,\n .fade-enter-active,\n .fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n }\n\n /* 2. declare enter from and leave to state */\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n }\n\n /* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n .fade-leave-active {\n position: absolute;\n }\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition: all 0.3s ease, max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh; \n}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["globals.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuOE,QAAI,OAAO,IAAI,KAAK;AAEpB,UAAM,OAAO,IAAI,IAAI;AAErB,UAAM,gBAAgB,IAAI,IAAI;AAG9B,aAAS,oBAAoB;AAC3B,oBAAc,QAAQ;AAAA,IACxB;AAEA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;AAGA,aAAS,qBAAqB;AAI5B,oBAAc,QAAQ;AAAA,IACxB;AAID,UAAM,QAAQ,SAAQ;AAGtB,UAAM,cAAc,IAAI,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BA,YAAc,sBAAsB;AAAA,IACtC;AACA,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAc;AAAA,IAC9C;AAEA,UAAM,eAAe,IAAI,CAAC;AAE1B,UAAM,SAAS,IAAI,IAAI;AAEvB,UAAM,cAAc,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACpC,OAAO;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MACnC;AAAA,IACD,CAAC;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACpC;AAIC,UAAM,WAAW,IAAI,KAAK;AAI1B,mBAAe,cAAc;AAC3B,YAAM,MAAM,MAAM,YAAY,IAAI,EAAE,KAAK,aAAa;AACtD,eAAS,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,KAAK,IAAI;AAAA,IACvD;AAEA,UAAM,iBAAiB,CAAC,UAAU;AAChC,eAAS,QAAQ;AAAA,IACnB;AAED,cAAU,YAAY;AACpB,YAAM,YAAW;AAGlB,UAAI,mBAAmB,aAAa,CAAC,OAAO,gBAAgB;AACzD,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,QAAQ,EAAE,KAAK,kBAAgB;AAC9D,oBAAQ,IAAI,2BAA2B,YAAY;AAAA,UACrD,CAAC,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAC3D,CAAC;AAAA,QACJ,CAAC;AAAA,MACF;AAED,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBA,cAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACnD,WAAW,MAAM,KAAK,UAAU;AAC/BA,cAAc,sBAAsB;AAAA,MACrC,OAAO;AACNA,cAAc,sBAAsB;AAAA,MACrC;AAED,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACvD;AAEA,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -19,6 +19,6 @@ function _sfc_render(_ctx, _cache) {
19
19
  }, null, 2)
20
20
  ]);
21
21
  }
22
- const IconTime = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
23
- exports.default = IconTime;
22
+ const IconClock = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
23
+ exports.default = IconClock;
24
24
  //# sourceMappingURL=IconTime.vue.cjs.map
@@ -17,8 +17,8 @@ function _sfc_render(_ctx, _cache) {
17
17
  }, null, 2)
18
18
  ]);
19
19
  }
20
- const IconTime = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
20
+ const IconClock = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
21
21
  export {
22
- IconTime as default
22
+ IconClock as default
23
23
  };
24
24
  //# sourceMappingURL=IconTime.vue.js.map
@@ -26,6 +26,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
26
26
  }, null, 8, _hoisted_2)
27
27
  ]);
28
28
  }
29
- const IconChevronLeft = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
30
- exports.default = IconChevronLeft;
29
+ const IconPrevious = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
30
+ exports.default = IconPrevious;
31
31
  //# sourceMappingURL=IconChevronLeft.vue.cjs.map
@@ -24,8 +24,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
24
24
  }, null, 8, _hoisted_2)
25
25
  ]);
26
26
  }
27
- const IconChevronLeft = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
27
+ const IconPrevious = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
28
28
  export {
29
- IconChevronLeft as default
29
+ IconPrevious as default
30
30
  };
31
31
  //# sourceMappingURL=IconChevronLeft.vue.js.map
@@ -26,6 +26,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
26
26
  }, null, 8, _hoisted_2)
27
27
  ]);
28
28
  }
29
- const IconChevronRight = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
30
- exports.default = IconChevronRight;
29
+ const IconNext = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
30
+ exports.default = IconNext;
31
31
  //# sourceMappingURL=IconChevronRight.vue.cjs.map
@@ -24,8 +24,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
24
24
  }, null, 8, _hoisted_2)
25
25
  ]);
26
26
  }
27
- const IconChevronRight = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
27
+ const IconNext = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
28
28
  export {
29
- IconChevronRight as default
29
+ IconNext as default
30
30
  };
31
31
  //# sourceMappingURL=IconChevronRight.vue.js.map
@@ -13,7 +13,7 @@ import _sfc_main$Z from "../navigation/IconUnMute.vue.js";
13
13
  import _sfc_main$Y from "../navigation/IconCross.vue.js";
14
14
  import _sfc_main$X from "../navigation/IconDoubleCheck.vue.js";
15
15
  import _sfc_main$W from "../navigation/IconSearch.vue.js";
16
- import IconChevronRight from "../navigation/IconChevronRight.vue.js";
16
+ import IconNext from "../navigation/IconChevronRight.vue.js";
17
17
  import _sfc_main$V from "../navigation/IconLike.vue.js";
18
18
  import _sfc_main$U from "../navigation/IconDelete.vue.js";
19
19
  import _sfc_main$T from "../navigation/IconCheck.vue.js";
@@ -23,7 +23,7 @@ import _sfc_main$Q from "../navigation/IconRefresh.vue.js";
23
23
  import _sfc_main$P from "../navigation/IconUpload.vue.js";
24
24
  import _sfc_main$O from "../navigation/IconSort.vue.js";
25
25
  import IconChevronBottom from "../navigation/IconChevronBottom.vue.js";
26
- import IconChevronLeft from "../navigation/IconChevronLeft.vue.js";
26
+ import IconPrevious from "../navigation/IconChevronLeft.vue.js";
27
27
  import _sfc_main$N from "../navigation/IconEdit.vue.js";
28
28
  import _sfc_main$M from "../navigation/IconMute.vue.js";
29
29
  import IconSend from "../navigation/IconSend.vue.js";
@@ -35,7 +35,7 @@ import _sfc_main$H from "../entities/IconPrice.vue.js";
35
35
  import _sfc_main$G from "../entities/IconCalendar.vue.js";
36
36
  import _sfc_main$F from "../entities/IconPayments.vue.js";
37
37
  import _sfc_main$E from "../entities/IconBell.vue.js";
38
- import IconTime from "../entities/IconTime.vue.js";
38
+ import IconClock from "../entities/IconTime.vue.js";
39
39
  import _sfc_main$D from "../entities/IconCommunity.vue.js";
40
40
  import _sfc_main$C from "../entities/IconGallery.vue.js";
41
41
  import _sfc_main$B from "../entities/IconFile.vue.js";
@@ -121,7 +121,7 @@ const _sfc_main = {
121
121
  IconCross: _sfc_main$Y,
122
122
  IconDoubleCheck: _sfc_main$X,
123
123
  IconSearch: _sfc_main$W,
124
- IconChevronRight,
124
+ IconChevronRight: IconNext,
125
125
  IconLike: _sfc_main$V,
126
126
  IconDelete: _sfc_main$U,
127
127
  IconCheck: _sfc_main$T,
@@ -131,7 +131,7 @@ const _sfc_main = {
131
131
  IconUpload: _sfc_main$P,
132
132
  IconSort: _sfc_main$O,
133
133
  IconChevronBottom,
134
- IconChevronLeft,
134
+ IconChevronLeft: IconPrevious,
135
135
  IconEdit: _sfc_main$N,
136
136
  IconMute: _sfc_main$M,
137
137
  IconSend,
@@ -145,7 +145,7 @@ const _sfc_main = {
145
145
  IconCalendar: _sfc_main$G,
146
146
  IconPayments: _sfc_main$F,
147
147
  IconBell: _sfc_main$E,
148
- IconTime,
148
+ IconTime: IconClock,
149
149
  IconCommunity: _sfc_main$D,
150
150
  IconGallery: _sfc_main$C,
151
151
  IconFile: _sfc_main$B,
@@ -1 +1 @@
1
- {"version":3,"file":"IconsPage.vue.js","sources":["../../../../../../src/modules/icons/pages/IconsPage.vue"],"sourcesContent":["<template>\n <div class=\"pd-medium\">\n <div class=\"flex-between mn-b-medium\">\n <h2>Martyrs Icons Gallery</h2>\n <button @click=\"openAddIconPopup\" class=\"pd-small pd-h-medium bg-primary t-white radius-medium hover-scale-1 cursor-pointer border-none\">\n Add New Icon\n </button>\n </div>\n \n <div v-for=\"(category, index) in categories\" :key=\"index\" class=\"mn-b-large\">\n <h3 class=\"mn-b-medium t-medium\">{{ formatCategoryName(category.name) }} ({{ category.icons.length }})</h3>\n <div class=\"cols-6 gap-thin\">\n <div \n v-for=\"(icon, iconIndex) in category.icons\" \n :key=\"iconIndex\" \n class=\"icon-card aspect-1x1 bg-light radius-medium flex-center flex-v-center flex-column flex hover-scale-1 cursor-pointer pos-relative\"\n @click=\"copyIconName(icon.name, category.name)\"\n >\n <div class=\"flex-center flex h-60\">\n <component :is=\"icon.component\" class=\"w-2r h-2r\" />\n </div>\n <div class=\"pd-t-thin pd-b-thin t-center t-small t-truncate\">\n {{ icon.name }}\n </div>\n <div v-if=\"copiedIcon === icon.name\" class=\"pd-thin bg-black radius-small t-small t-white pos-absolute pos-t-0 pos-r-0 mn-t-thin mn-r-thin\">\n Copied!\n </div>\n <button \n @click.stop=\"openReplaceIconPopup(icon, category.name)\"\n class=\"replace-btn pos-absolute pos-t-0 pos-r-0 mn-t-thin mn-r-thin pd-micro bg-second radius-small hover-scale-1 cursor-pointer border-none\"\n title=\"Replace icon\"\n >\n <IconRefresh class=\"w-1r h-1r\" :fill=\"'rgb(var(--white))'\" />\n </button>\n </div>\n </div>\n </div>\n\n <div v-if=\"displayNotification\" class=\"notification bg-third pd-small radius-medium pos-fixed pos-b-0 pos-r-0 mn-b-large mn-r-large\">\n {{ notificationMessage }}\n </div>\n\n <IconSearchPopup \n :isOpen=\"showSearchPopup\" \n :mode=\"popupMode\"\n :currentIcon=\"currentIconForReplace\"\n @close=\"showSearchPopup = false\"\n @icon-selected=\"handleIconSelected\"\n />\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted } from 'vue';\nimport IconSearchPopup from '../components/IconSearchPopup.vue';\n\n// Import navigation icons\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue';\nimport IconMinus from '@martyrs/src/modules/icons/navigation/IconMinus.vue';\nimport IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue';\nimport IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue';\nimport IconHeart from '@martyrs/src/modules/icons/navigation/IconHeart.vue';\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\nimport IconPause from '@martyrs/src/modules/icons/navigation/IconPause.vue';\nimport IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue';\nimport IconVolume from '@martyrs/src/modules/icons/navigation/IconVolume.vue';\nimport IconUnMute from '@martyrs/src/modules/icons/navigation/IconUnMute.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\nimport IconDoubleCheck from '@martyrs/src/modules/icons/navigation/IconDoubleCheck.vue';\nimport IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';\nimport IconChevronRight from '@martyrs/src/modules/icons/navigation/IconChevronRight.vue';\nimport IconLike from '@martyrs/src/modules/icons/navigation/IconLike.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\nimport IconCheck from '@martyrs/src/modules/icons/navigation/IconCheck.vue';\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue';\nimport IconAttach from '@martyrs/src/modules/icons/navigation/IconAttach.vue';\nimport IconRefresh from '@martyrs/src/modules/icons/navigation/IconRefresh.vue';\nimport IconUpload from '@martyrs/src/modules/icons/navigation/IconUpload.vue';\nimport IconSort from '@martyrs/src/modules/icons/navigation/IconSort.vue';\nimport IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue';\nimport IconChevronLeft from '@martyrs/src/modules/icons/navigation/IconChevronLeft.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconMute from '@martyrs/src/modules/icons/navigation/IconMute.vue';\nimport IconSend from '@martyrs/src/modules/icons/navigation/IconSend.vue';\nimport IconArrow from '@martyrs/src/modules/icons/navigation/IconArrow.vue';\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\nimport IconShuffle from '@martyrs/src/modules/icons/navigation/IconShuffle.vue';\n\n// Import entities icons\nimport IconInfoEntities from '@martyrs/src/modules/icons/entities/IconInfo.vue';\nimport IconPrice from '@martyrs/src/modules/icons/entities/IconPrice.vue';\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue';\nimport IconPayments from '@martyrs/src/modules/icons/entities/IconPayments.vue';\nimport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\nimport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue';\nimport IconCommunity from '@martyrs/src/modules/icons/entities/IconCommunity.vue';\nimport IconGallery from '@martyrs/src/modules/icons/entities/IconGallery.vue';\nimport IconFile from '@martyrs/src/modules/icons/entities/IconFile.vue';\nimport IconFollowing from '@martyrs/src/modules/icons/entities/IconFollowing.vue';\nimport IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue';\nimport IconHome from '@martyrs/src/modules/icons/entities/IconHome.vue';\nimport IconProducts from '@martyrs/src/modules/icons/entities/IconProducts.vue';\nimport IconCatalog from '@martyrs/src/modules/icons/entities/IconCatalog.vue';\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconRecent from '@martyrs/src/modules/icons/entities/IconRecent.vue';\nimport IconList from '@martyrs/src/modules/icons/entities/IconList.vue';\nimport IconSettings from '@martyrs/src/modules/icons/entities/IconSettings.vue';\nimport IconEarn from '@martyrs/src/modules/icons/entities/IconEarn.vue';\nimport IconPopular from '@martyrs/src/modules/icons/entities/IconPopular.vue';\nimport IconDiscount from '@martyrs/src/modules/icons/entities/IconDiscount.vue';\nimport IconDate from '@martyrs/src/modules/icons/entities/IconDate.vue';\nimport IconFeatured from '@martyrs/src/modules/icons/entities/IconFeatured.vue';\nimport IconLeftovers from '@martyrs/src/modules/icons/entities/IconLeftovers.vue';\nimport IconOrders from '@martyrs/src/modules/icons/entities/IconOrders.vue';\nimport IconMusic from '@martyrs/src/modules/icons/entities/IconMusic.vue';\nimport IconPhone from '@martyrs/src/modules/icons/entities/IconPhone.vue';\nimport IconEmail from '@martyrs/src/modules/icons/entities/IconEmail.vue';\nimport IconAddress from '@martyrs/src/modules/icons/entities/IconAddress.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue';\n\n// Import placeholders icons\nimport PlaceholderOrganizationPic from '@martyrs/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue';\nimport PlaceholderChat from '@martyrs/src/modules/icons/placeholders/PlaceholderChat.vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport PlaceholderUserpic from '@martyrs/src/modules/icons/placeholders/PlaceholderUserpic.vue';\n\n// Import socials icons\nimport Vk from '@martyrs/src/modules/icons/socials/vk.vue';\nimport Instagram from '@martyrs/src/modules/icons/socials/instagram.vue';\nimport Telegram from '@martyrs/src/modules/icons/socials/telegram.vue';\nimport Twitter from '@martyrs/src/modules/icons/socials/twitter.vue';\nimport Linkedin from '@martyrs/src/modules/icons/socials/linkedin.vue';\nimport Reddit from '@martyrs/src/modules/icons/socials/reddit.vue';\nimport Dribbble from '@martyrs/src/modules/icons/socials/dribbble.vue';\nimport Facebook from '@martyrs/src/modules/icons/socials/facebook.vue';\nimport Youtube from '@martyrs/src/modules/icons/socials/youtube.vue';\nimport Line from '@martyrs/src/modules/icons/socials/line.vue';\n\n// Import actions icons\nimport IconDuplicate from '@martyrs/src/modules/icons/actions/IconDuplicate.vue';\nimport IconOpenLink from '@martyrs/src/modules/icons/actions/IconOpenLink.vue';\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue';\nimport IconShow from '@martyrs/src/modules/icons/actions/IconShow.vue';\n\n// Import labels icons\nimport LabelGooglePlay from '@martyrs/src/modules/icons/labels/LabelGooglePlay.vue';\nimport LabelAppStore from '@martyrs/src/modules/icons/labels/LabelAppStore.vue';\n\n// Import logos icons\nimport Logotype from '@martyrs/src/modules/icons/logos/Logotype.vue';\n\n// Import skeletons icons\nimport SkeletonEventShort from '@martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue';\nimport SkeletonBlogpost from '@martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue';\nimport SkeletonOrganization from '@martyrs/src/modules/icons/skeletons/SkeletonOrganization.vue';\nimport SkeletonEvent from '@martyrs/src/modules/icons/skeletons/SkeletonEvent.vue';\n\n// Icons map to avoid duplication\nconst iconsMap = {\n navigation: {\n IconInfo,\n IconMinus,\n IconEllipsis,\n IconPlus,\n IconHeart,\n IconCheckmark,\n IconPause,\n IconAdd,\n IconVolume,\n IconUnMute,\n IconCross,\n IconDoubleCheck,\n IconSearch,\n IconChevronRight,\n IconLike,\n IconDelete,\n IconCheck,\n IconFilter,\n IconAttach,\n IconRefresh,\n IconUpload,\n IconSort,\n IconChevronBottom,\n IconChevronLeft,\n IconEdit,\n IconMute,\n IconSend,\n IconArrow,\n IconPlay,\n IconShuffle\n },\n entities: {\n IconInfo: IconInfoEntities,\n IconPrice,\n IconCalendar,\n IconPayments,\n IconBell,\n IconTime,\n IconCommunity,\n IconGallery,\n IconFile,\n IconFollowing,\n IconEvents,\n IconHome,\n IconProducts,\n IconCatalog,\n IconShopcart,\n IconRecent,\n IconList,\n IconSettings,\n IconPhone,\n IconEmail,\n IconAddress,\n IconEarn,\n IconPopular,\n IconDiscount,\n IconDate,\n IconFeatured,\n IconLeftovers,\n IconOrders,\n IconMusic,\n IconProfile,\n IconGroups\n },\n placeholders: {\n PlaceholderOrganizationPic,\n PlaceholderChat,\n PlaceholderImage,\n PlaceholderUserpic\n },\n socials: {\n vk: Vk,\n instagram: Instagram,\n telegram: Telegram,\n twitter: Twitter,\n linkedin: Linkedin,\n reddit: Reddit,\n dribbble: Dribbble,\n facebook: Facebook,\n youtube: Youtube,\n line: Line\n },\n actions: {\n IconDuplicate,\n IconOpenLink,\n IconShopcartAdd,\n IconShow\n },\n labels: {\n LabelGooglePlay,\n LabelAppStore\n },\n logos: {\n Logotype\n },\n skeletons: {\n SkeletonEventShort,\n SkeletonBlogpost,\n SkeletonOrganization,\n SkeletonEvent\n }\n};\n\nconst categories = ref([]);\nconst copiedIcon = ref('');\nconst displayNotification = ref(false);\nconst notificationMessage = ref('');\nconst showSearchPopup = ref(false);\nconst popupMode = ref('add');\nconst currentIconForReplace = ref(null);\n\nonMounted(() => {\n loadIcons();\n});\n\nfunction loadIcons() {\n categories.value = Object.entries(iconsMap).map(([categoryName, icons]) => ({\n name: categoryName,\n icons: Object.entries(icons).map(([name, component]) => ({\n name,\n component\n }))\n }));\n}\n\nfunction formatCategoryName(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}\n\nfunction copyIconName(iconName, categoryName) {\n const importStatement = `import ${iconName} from '@martyrs/src/modules/icons/${categoryName}/${iconName}.vue';`;\n navigator.clipboard.writeText(importStatement);\n \n copiedIcon.value = iconName;\n notificationMessage.value = `Copied: ${importStatement}`;\n displayNotification.value = true;\n \n setTimeout(() => {\n copiedIcon.value = '';\n setTimeout(() => {\n displayNotification.value = false;\n }, 2000);\n }, 1000);\n}\n\nfunction openAddIconPopup() {\n popupMode.value = 'add';\n currentIconForReplace.value = null;\n showSearchPopup.value = true;\n}\n\nfunction openReplaceIconPopup(icon, categoryName) {\n popupMode.value = 'replace';\n currentIconForReplace.value = {\n name: icon.name,\n category: categoryName,\n component: icon.component\n };\n showSearchPopup.value = true;\n}\n\nfunction handleIconSelected(data) {\n // Reload icons after successful save\n loadIcons();\n \n // Show success notification\n notificationMessage.value = data.mode === 'add' \n ? `Added new icon: ${data.icon.name}` \n : `Replaced icon: ${data.icon.name}`;\n displayNotification.value = true;\n \n setTimeout(() => {\n displayNotification.value = false;\n }, 3000);\n}\n</script>\n\n<style scoped>\n.h-60 {\n height: 60%;\n}\n\n.notification {\n z-index: 100;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.3s ease;\n animation: fadeIn 0.3s;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(20px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.icon-card .replace-btn {\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.icon-card:hover .replace-btn {\n opacity: 1;\n}\n\n.flex-between {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n</style>"],"names":["IconInfo","IconMinus","IconEllipsis","IconPlus","IconHeart","IconCheckmark","IconPause","IconAdd","IconVolume","IconUnMute","IconCross","IconDoubleCheck","IconSearch","IconLike","IconDelete","IconCheck","IconFilter","IconAttach","IconRefresh","IconUpload","IconSort","IconEdit","IconMute","IconArrow","IconPlay","IconShuffle","IconInfoEntities","IconPrice","IconCalendar","IconPayments","IconBell","IconCommunity","IconGallery","IconFile","IconFollowing","IconEvents","IconHome","IconProducts","IconCatalog","IconShopcart","IconRecent","IconList","IconSettings","IconPhone","IconEmail","IconAddress","IconEarn","IconPopular","IconDiscount","IconDate","IconFeatured","IconLeftovers","IconOrders","IconMusic","IconProfile","IconGroups","Vk","Instagram","Telegram","Twitter","Linkedin","Reddit","Dribbble","Facebook","Youtube","Line","IconDuplicate","IconOpenLink","IconShopcartAdd","IconShow"],"mappings":"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"}
1
+ {"version":3,"file":"IconsPage.vue.js","sources":["../../../../../../src/modules/icons/pages/IconsPage.vue"],"sourcesContent":["<template>\n <div class=\"pd-medium\">\n <div class=\"flex-between mn-b-medium\">\n <h2>Martyrs Icons Gallery</h2>\n <button @click=\"openAddIconPopup\" class=\"pd-small pd-h-medium bg-primary t-white radius-medium hover-scale-1 cursor-pointer border-none\">\n Add New Icon\n </button>\n </div>\n \n <div v-for=\"(category, index) in categories\" :key=\"index\" class=\"mn-b-large\">\n <h3 class=\"mn-b-medium t-medium\">{{ formatCategoryName(category.name) }} ({{ category.icons.length }})</h3>\n <div class=\"cols-6 gap-thin\">\n <div \n v-for=\"(icon, iconIndex) in category.icons\" \n :key=\"iconIndex\" \n class=\"icon-card aspect-1x1 bg-light radius-medium flex-center flex-v-center flex-column flex hover-scale-1 cursor-pointer pos-relative\"\n @click=\"copyIconName(icon.name, category.name)\"\n >\n <div class=\"flex-center flex h-60\">\n <component :is=\"icon.component\" class=\"w-2r h-2r\" />\n </div>\n <div class=\"pd-t-thin pd-b-thin t-center t-small t-truncate\">\n {{ icon.name }}\n </div>\n <div v-if=\"copiedIcon === icon.name\" class=\"pd-thin bg-black radius-small t-small t-white pos-absolute pos-t-0 pos-r-0 mn-t-thin mn-r-thin\">\n Copied!\n </div>\n <button \n @click.stop=\"openReplaceIconPopup(icon, category.name)\"\n class=\"replace-btn pos-absolute pos-t-0 pos-r-0 mn-t-thin mn-r-thin pd-micro bg-second radius-small hover-scale-1 cursor-pointer border-none\"\n title=\"Replace icon\"\n >\n <IconRefresh class=\"w-1r h-1r\" :fill=\"'rgb(var(--white))'\" />\n </button>\n </div>\n </div>\n </div>\n\n <div v-if=\"displayNotification\" class=\"notification bg-third pd-small radius-medium pos-fixed pos-b-0 pos-r-0 mn-b-large mn-r-large\">\n {{ notificationMessage }}\n </div>\n\n <IconSearchPopup \n :isOpen=\"showSearchPopup\" \n :mode=\"popupMode\"\n :currentIcon=\"currentIconForReplace\"\n @close=\"showSearchPopup = false\"\n @icon-selected=\"handleIconSelected\"\n />\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted } from 'vue';\nimport IconSearchPopup from '../components/IconSearchPopup.vue';\n\n// Import navigation icons\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue';\nimport IconMinus from '@martyrs/src/modules/icons/navigation/IconMinus.vue';\nimport IconEllipsis from '@martyrs/src/modules/icons/navigation/IconEllipsis.vue';\nimport IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue';\nimport IconHeart from '@martyrs/src/modules/icons/navigation/IconHeart.vue';\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\nimport IconPause from '@martyrs/src/modules/icons/navigation/IconPause.vue';\nimport IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue';\nimport IconVolume from '@martyrs/src/modules/icons/navigation/IconVolume.vue';\nimport IconUnMute from '@martyrs/src/modules/icons/navigation/IconUnMute.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\nimport IconDoubleCheck from '@martyrs/src/modules/icons/navigation/IconDoubleCheck.vue';\nimport IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';\nimport IconChevronRight from '@martyrs/src/modules/icons/navigation/IconChevronRight.vue';\nimport IconLike from '@martyrs/src/modules/icons/navigation/IconLike.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\nimport IconCheck from '@martyrs/src/modules/icons/navigation/IconCheck.vue';\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue';\nimport IconAttach from '@martyrs/src/modules/icons/navigation/IconAttach.vue';\nimport IconRefresh from '@martyrs/src/modules/icons/navigation/IconRefresh.vue';\nimport IconUpload from '@martyrs/src/modules/icons/navigation/IconUpload.vue';\nimport IconSort from '@martyrs/src/modules/icons/navigation/IconSort.vue';\nimport IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue';\nimport IconChevronLeft from '@martyrs/src/modules/icons/navigation/IconChevronLeft.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconMute from '@martyrs/src/modules/icons/navigation/IconMute.vue';\nimport IconSend from '@martyrs/src/modules/icons/navigation/IconSend.vue';\nimport IconArrow from '@martyrs/src/modules/icons/navigation/IconArrow.vue';\nimport IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';\nimport IconShuffle from '@martyrs/src/modules/icons/navigation/IconShuffle.vue';\n\n// Import entities icons\nimport IconInfoEntities from '@martyrs/src/modules/icons/entities/IconInfo.vue';\nimport IconPrice from '@martyrs/src/modules/icons/entities/IconPrice.vue';\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue';\nimport IconPayments from '@martyrs/src/modules/icons/entities/IconPayments.vue';\nimport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\nimport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue';\nimport IconCommunity from '@martyrs/src/modules/icons/entities/IconCommunity.vue';\nimport IconGallery from '@martyrs/src/modules/icons/entities/IconGallery.vue';\nimport IconFile from '@martyrs/src/modules/icons/entities/IconFile.vue';\nimport IconFollowing from '@martyrs/src/modules/icons/entities/IconFollowing.vue';\nimport IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue';\nimport IconHome from '@martyrs/src/modules/icons/entities/IconHome.vue';\nimport IconProducts from '@martyrs/src/modules/icons/entities/IconProducts.vue';\nimport IconCatalog from '@martyrs/src/modules/icons/entities/IconCatalog.vue';\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconRecent from '@martyrs/src/modules/icons/entities/IconRecent.vue';\nimport IconList from '@martyrs/src/modules/icons/entities/IconList.vue';\nimport IconSettings from '@martyrs/src/modules/icons/entities/IconSettings.vue';\nimport IconEarn from '@martyrs/src/modules/icons/entities/IconEarn.vue';\nimport IconPopular from '@martyrs/src/modules/icons/entities/IconPopular.vue';\nimport IconDiscount from '@martyrs/src/modules/icons/entities/IconDiscount.vue';\nimport IconDate from '@martyrs/src/modules/icons/entities/IconDate.vue';\nimport IconFeatured from '@martyrs/src/modules/icons/entities/IconFeatured.vue';\nimport IconLeftovers from '@martyrs/src/modules/icons/entities/IconLeftovers.vue';\nimport IconOrders from '@martyrs/src/modules/icons/entities/IconOrders.vue';\nimport IconMusic from '@martyrs/src/modules/icons/entities/IconMusic.vue';\nimport IconPhone from '@martyrs/src/modules/icons/entities/IconPhone.vue';\nimport IconEmail from '@martyrs/src/modules/icons/entities/IconEmail.vue';\nimport IconAddress from '@martyrs/src/modules/icons/entities/IconAddress.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue';\n\n// Import placeholders icons\nimport PlaceholderOrganizationPic from '@martyrs/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue';\nimport PlaceholderChat from '@martyrs/src/modules/icons/placeholders/PlaceholderChat.vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport PlaceholderUserpic from '@martyrs/src/modules/icons/placeholders/PlaceholderUserpic.vue';\n\n// Import socials icons\nimport Vk from '@martyrs/src/modules/icons/socials/vk.vue';\nimport Instagram from '@martyrs/src/modules/icons/socials/instagram.vue';\nimport Telegram from '@martyrs/src/modules/icons/socials/telegram.vue';\nimport Twitter from '@martyrs/src/modules/icons/socials/twitter.vue';\nimport Linkedin from '@martyrs/src/modules/icons/socials/linkedin.vue';\nimport Reddit from '@martyrs/src/modules/icons/socials/reddit.vue';\nimport Dribbble from '@martyrs/src/modules/icons/socials/dribbble.vue';\nimport Facebook from '@martyrs/src/modules/icons/socials/facebook.vue';\nimport Youtube from '@martyrs/src/modules/icons/socials/youtube.vue';\nimport Line from '@martyrs/src/modules/icons/socials/line.vue';\n\n// Import actions icons\nimport IconDuplicate from '@martyrs/src/modules/icons/actions/IconDuplicate.vue';\nimport IconOpenLink from '@martyrs/src/modules/icons/actions/IconOpenLink.vue';\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue';\nimport IconShow from '@martyrs/src/modules/icons/actions/IconShow.vue';\n\n// Import labels icons\nimport LabelGooglePlay from '@martyrs/src/modules/icons/labels/LabelGooglePlay.vue';\nimport LabelAppStore from '@martyrs/src/modules/icons/labels/LabelAppStore.vue';\n\n// Import logos icons\nimport Logotype from '@martyrs/src/modules/icons/logos/Logotype.vue';\n\n// Import skeletons icons\nimport SkeletonEventShort from '@martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue';\nimport SkeletonBlogpost from '@martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue';\nimport SkeletonOrganization from '@martyrs/src/modules/icons/skeletons/SkeletonOrganization.vue';\nimport SkeletonEvent from '@martyrs/src/modules/icons/skeletons/SkeletonEvent.vue';\n\n// Icons map to avoid duplication\nconst iconsMap = {\n navigation: {\n IconInfo,\n IconMinus,\n IconEllipsis,\n IconPlus,\n IconHeart,\n IconCheckmark,\n IconPause,\n IconAdd,\n IconVolume,\n IconUnMute,\n IconCross,\n IconDoubleCheck,\n IconSearch,\n IconChevronRight,\n IconLike,\n IconDelete,\n IconCheck,\n IconFilter,\n IconAttach,\n IconRefresh,\n IconUpload,\n IconSort,\n IconChevronBottom,\n IconChevronLeft,\n IconEdit,\n IconMute,\n IconSend,\n IconArrow,\n IconPlay,\n IconShuffle\n },\n entities: {\n IconInfo: IconInfoEntities,\n IconPrice,\n IconCalendar,\n IconPayments,\n IconBell,\n IconTime,\n IconCommunity,\n IconGallery,\n IconFile,\n IconFollowing,\n IconEvents,\n IconHome,\n IconProducts,\n IconCatalog,\n IconShopcart,\n IconRecent,\n IconList,\n IconSettings,\n IconPhone,\n IconEmail,\n IconAddress,\n IconEarn,\n IconPopular,\n IconDiscount,\n IconDate,\n IconFeatured,\n IconLeftovers,\n IconOrders,\n IconMusic,\n IconProfile,\n IconGroups\n },\n placeholders: {\n PlaceholderOrganizationPic,\n PlaceholderChat,\n PlaceholderImage,\n PlaceholderUserpic\n },\n socials: {\n vk: Vk,\n instagram: Instagram,\n telegram: Telegram,\n twitter: Twitter,\n linkedin: Linkedin,\n reddit: Reddit,\n dribbble: Dribbble,\n facebook: Facebook,\n youtube: Youtube,\n line: Line\n },\n actions: {\n IconDuplicate,\n IconOpenLink,\n IconShopcartAdd,\n IconShow\n },\n labels: {\n LabelGooglePlay,\n LabelAppStore\n },\n logos: {\n Logotype\n },\n skeletons: {\n SkeletonEventShort,\n SkeletonBlogpost,\n SkeletonOrganization,\n SkeletonEvent\n }\n};\n\nconst categories = ref([]);\nconst copiedIcon = ref('');\nconst displayNotification = ref(false);\nconst notificationMessage = ref('');\nconst showSearchPopup = ref(false);\nconst popupMode = ref('add');\nconst currentIconForReplace = ref(null);\n\nonMounted(() => {\n loadIcons();\n});\n\nfunction loadIcons() {\n categories.value = Object.entries(iconsMap).map(([categoryName, icons]) => ({\n name: categoryName,\n icons: Object.entries(icons).map(([name, component]) => ({\n name,\n component\n }))\n }));\n}\n\nfunction formatCategoryName(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}\n\nfunction copyIconName(iconName, categoryName) {\n const importStatement = `import ${iconName} from '@martyrs/src/modules/icons/${categoryName}/${iconName}.vue';`;\n navigator.clipboard.writeText(importStatement);\n \n copiedIcon.value = iconName;\n notificationMessage.value = `Copied: ${importStatement}`;\n displayNotification.value = true;\n \n setTimeout(() => {\n copiedIcon.value = '';\n setTimeout(() => {\n displayNotification.value = false;\n }, 2000);\n }, 1000);\n}\n\nfunction openAddIconPopup() {\n popupMode.value = 'add';\n currentIconForReplace.value = null;\n showSearchPopup.value = true;\n}\n\nfunction openReplaceIconPopup(icon, categoryName) {\n popupMode.value = 'replace';\n currentIconForReplace.value = {\n name: icon.name,\n category: categoryName,\n component: icon.component\n };\n showSearchPopup.value = true;\n}\n\nfunction handleIconSelected(data) {\n // Reload icons after successful save\n loadIcons();\n \n // Show success notification\n notificationMessage.value = data.mode === 'add' \n ? `Added new icon: ${data.icon.name}` \n : `Replaced icon: ${data.icon.name}`;\n displayNotification.value = true;\n \n setTimeout(() => {\n displayNotification.value = false;\n }, 3000);\n}\n</script>\n\n<style scoped>\n.h-60 {\n height: 60%;\n}\n\n.notification {\n z-index: 100;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.3s ease;\n animation: fadeIn 0.3s;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(20px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n.icon-card .replace-btn {\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.icon-card:hover .replace-btn {\n opacity: 1;\n}\n\n.flex-between {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n</style>"],"names":["IconInfo","IconMinus","IconEllipsis","IconPlus","IconHeart","IconCheckmark","IconPause","IconAdd","IconVolume","IconUnMute","IconCross","IconDoubleCheck","IconSearch","IconChevronRight","IconLike","IconDelete","IconCheck","IconFilter","IconAttach","IconRefresh","IconUpload","IconSort","IconChevronLeft","IconEdit","IconMute","IconArrow","IconPlay","IconShuffle","IconInfoEntities","IconPrice","IconCalendar","IconPayments","IconBell","IconTime","IconCommunity","IconGallery","IconFile","IconFollowing","IconEvents","IconHome","IconProducts","IconCatalog","IconShopcart","IconRecent","IconList","IconSettings","IconPhone","IconEmail","IconAddress","IconEarn","IconPopular","IconDiscount","IconDate","IconFeatured","IconLeftovers","IconOrders","IconMusic","IconProfile","IconGroups","Vk","Instagram","Telegram","Twitter","Linkedin","Reddit","Dribbble","Facebook","Youtube","Line","IconDuplicate","IconOpenLink","IconShopcartAdd","IconShow"],"mappings":"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"}
@@ -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 Field = require("../../../../components/Field/Field.vue2.cjs");
5
+ const Field = require("../../../../components/Field/Field.vue.cjs");
6
6
  const Select = require("../../../../components/Select/Select.vue2.cjs");
7
7
  const auth = require("../../../auth/views/store/auth.cjs");
8
8
  const spots = require("../../../spots/store/spots.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, createBlock, Fragment, renderList, normalizeClass, resolveDynamicComponent, toDisplayString } from "vue";
2
2
  import { useRoute } from "vue-router";
3
- import Field from "../../../../components/Field/Field.vue2.js";
3
+ import Field from "../../../../components/Field/Field.vue.js";
4
4
  import Select from "../../../../components/Select/Select.vue2.js";
5
5
  import { state } from "../../../auth/views/store/auth.js";
6
6
  import { actions } from "../../../spots/store/spots.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
- const Field = require("../../../../components/Field/Field.vue2.cjs");
5
+ const Field = require("../../../../components/Field/Field.vue.cjs");
6
6
  const Select = require("../../../../components/Select/Select.vue2.cjs");
7
7
  const auth = require("../../../auth/views/store/auth.cjs");
8
8
  const spots = require("../../../spots/store/spots.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString } from "vue";
2
2
  import { useRoute } from "vue-router";
3
- import Field from "../../../../components/Field/Field.vue2.js";
3
+ import Field from "../../../../components/Field/Field.vue.js";
4
4
  import Select from "../../../../components/Select/Select.vue2.js";
5
5
  import { state } from "../../../auth/views/store/auth.js";
6
6
  import { actions } from "../../../spots/store/spots.js";