@ozdao/martyrs 0.2.483 → 0.2.485

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 (300) hide show
  1. package/dist/{Media-DjnpKS62.cjs → Media-ByPHBvAU.cjs} +1 -1
  2. package/dist/{Media-C57G7rnE.js → Media-DlUBwVWs.js} +1 -1
  3. package/dist/main-137vO86w.cjs +11 -0
  4. package/dist/{main-CXQqAVVb.js → main-CK6rC5Sz.js} +2944 -2599
  5. package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +2 -2
  6. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
  7. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +2 -2
  8. package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
  9. package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
  10. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
  11. package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
  12. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
  13. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +31 -11
  14. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  15. package/dist/martyrs/src/components/Feed/Feed.vue.js +48 -28
  16. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  17. package/dist/martyrs/src/components/Field/Field.vue.cjs +13 -7
  18. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
  19. package/dist/martyrs/src/components/Field/Field.vue.js +14 -8
  20. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  21. package/dist/martyrs/src/components/Popup/{Popup.vue.cjs → Popup.vue2.cjs} +2 -2
  22. package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -0
  23. package/dist/martyrs/src/components/Popup/{Popup.vue.js → Popup.vue2.js} +2 -2
  24. package/dist/martyrs/src/components/Popup/{Popup.vue.cjs.map → Popup.vue2.js.map} +1 -1
  25. package/dist/martyrs/src/components/Slider/Slider.vue.cjs +21 -24
  26. package/dist/martyrs/src/components/Slider/Slider.vue.cjs.map +1 -1
  27. package/dist/martyrs/src/components/Slider/Slider.vue.js +21 -24
  28. package/dist/martyrs/src/components/Slider/Slider.vue.js.map +1 -1
  29. package/dist/martyrs/src/modules/auth/auth.client.cjs +3 -0
  30. package/dist/martyrs/src/modules/auth/auth.client.cjs.map +1 -1
  31. package/dist/martyrs/src/modules/auth/auth.client.js +3 -0
  32. package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
  33. package/dist/martyrs/src/modules/auth/locales/en.cjs +79 -0
  34. package/dist/martyrs/src/modules/auth/locales/en.cjs.map +1 -0
  35. package/dist/martyrs/src/modules/auth/locales/en.js +79 -0
  36. package/dist/martyrs/src/modules/auth/locales/en.js.map +1 -0
  37. package/dist/martyrs/src/modules/auth/locales/index.cjs +10 -0
  38. package/dist/martyrs/src/modules/auth/locales/index.cjs.map +1 -0
  39. package/dist/martyrs/src/modules/auth/locales/index.js +10 -0
  40. package/dist/martyrs/src/modules/auth/locales/index.js.map +1 -0
  41. package/dist/martyrs/src/modules/auth/locales/ru.cjs +79 -0
  42. package/dist/martyrs/src/modules/auth/locales/ru.cjs.map +1 -0
  43. package/dist/martyrs/src/modules/auth/locales/ru.js +79 -0
  44. package/dist/martyrs/src/modules/auth/locales/ru.js.map +1 -0
  45. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -10
  46. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +3 -12
  48. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +4 -6
  50. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
  51. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +4 -6
  52. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
  53. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +7 -9
  54. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs.map +1 -1
  55. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +7 -9
  56. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  58. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  59. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  61. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  62. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  63. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  64. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  65. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  66. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  67. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +11 -13
  68. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +11 -13
  70. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +12 -14
  72. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +12 -14
  74. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +11 -13
  76. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +11 -13
  78. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  81. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +21 -58
  82. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  83. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +21 -58
  84. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  85. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  87. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +3 -3
  88. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
  89. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
  90. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
  91. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  93. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  95. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  97. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  98. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  99. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
  100. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
  101. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  103. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
  105. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  107. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  108. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  109. package/dist/martyrs/src/modules/globals/globals.client.cjs +1 -0
  110. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  111. package/dist/martyrs/src/modules/globals/globals.client.js +1 -0
  112. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  113. package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
  115. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  117. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +2 -2
  118. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +2 -2
  119. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +2 -2
  120. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
  121. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
  122. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
  123. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  125. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  127. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +183 -0
  128. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
  129. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +183 -0
  130. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
  131. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs +67 -0
  132. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs.map +1 -0
  133. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js +67 -0
  134. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js.map +1 -0
  135. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs +91 -0
  136. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs.map +1 -0
  137. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js +91 -0
  138. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js.map +1 -0
  139. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs +64 -0
  140. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs.map +1 -0
  141. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js +64 -0
  142. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js.map +1 -0
  143. package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs +49 -0
  144. package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs.map +1 -0
  145. package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js +49 -0
  146. package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js.map +1 -0
  147. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +34 -0
  148. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +1 -0
  149. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +34 -0
  150. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +1 -0
  151. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +115 -122
  152. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +163 -170
  154. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
  157. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
  158. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  159. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  161. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  162. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  163. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  164. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  165. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -0
  166. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  167. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -0
  168. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  169. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  171. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  173. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
  174. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  175. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  176. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  177. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  178. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  179. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
  180. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
  181. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  182. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  183. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  184. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  185. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  186. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  187. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  189. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  190. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  191. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +2 -2
  192. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
  193. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  195. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +1 -1
  197. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  199. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +4 -1
  200. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  201. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -1
  202. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  203. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +2 -2
  204. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +2 -2
  205. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  206. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  207. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
  208. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
  209. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  211. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
  212. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
  213. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
  214. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  215. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
  216. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
  217. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
  218. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
  219. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
  220. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  221. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  222. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  223. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  224. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  225. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  226. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  227. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
  228. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  229. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
  230. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  231. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  232. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  233. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  235. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  236. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  237. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
  238. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  239. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
  240. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
  241. package/dist/martyrs.cjs.js +1 -1
  242. package/dist/martyrs.css +1 -1
  243. package/dist/martyrs.es.js +1 -1
  244. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
  245. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  246. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
  247. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  248. package/dist/style.css +138 -75
  249. package/package.json +1 -1
  250. package/src/components/Feed/Feed.vue +23 -0
  251. package/src/components/Field/Field.vue +42 -27
  252. package/src/components/Slider/Slider.vue +15 -17
  253. package/src/modules/auth/auth.client.js +7 -0
  254. package/src/modules/auth/locales/en.js +76 -0
  255. package/src/modules/auth/locales/index.js +7 -0
  256. package/src/modules/auth/locales/ru.js +76 -0
  257. package/src/modules/auth/views/components/layouts/Auth.vue +3 -45
  258. package/src/modules/auth/views/components/pages/EnterCode.vue +5 -7
  259. package/src/modules/auth/views/components/pages/EnterPassword.vue +7 -10
  260. package/src/modules/auth/views/components/pages/ResetPassword.vue +9 -12
  261. package/src/modules/auth/views/components/pages/SignIn.vue +12 -15
  262. package/src/modules/auth/views/components/pages/SignUp.vue +9 -12
  263. package/src/modules/auth/views/components/sections/SliderFeatures.vue +28 -53
  264. package/src/modules/globals/globals.client.js +1 -0
  265. package/src/modules/globals/views/components/sections/Filters.vue +198 -0
  266. package/src/modules/globals/views/components/sections/filters/FilterOptions.vue +65 -0
  267. package/src/modules/globals/views/components/sections/filters/FilterPrice.vue +81 -0
  268. package/src/modules/globals/views/components/sections/filters/FilterRange.vue +74 -0
  269. package/src/modules/icons/actions/IconShow.vue +23 -0
  270. package/src/modules/icons/pages/IconsPage.vue +114 -120
  271. package/dist/main-De5X_RUk.cjs +0 -11
  272. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  273. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
  274. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
  275. package/dist/martyrs/src/components/Popup/Popup.vue.js.map +0 -1
  276. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +0 -9
  277. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs.map +0 -1
  278. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +0 -9
  279. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js.map +0 -1
  280. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +0 -9
  281. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs.map +0 -1
  282. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +0 -9
  283. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js.map +0 -1
  284. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +0 -9
  285. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs.map +0 -1
  286. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +0 -9
  287. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js.map +0 -1
  288. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +0 -9
  289. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs.map +0 -1
  290. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +0 -9
  291. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js.map +0 -1
  292. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +0 -9
  293. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs.map +0 -1
  294. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +0 -9
  295. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js.map +0 -1
  296. package/src/modules/auth/views/localization/EnterCode.json +0 -16
  297. package/src/modules/auth/views/localization/EnterPassword.json +0 -22
  298. package/src/modules/auth/views/localization/ResetPassword.json +0 -26
  299. package/src/modules/auth/views/localization/SignIn.json +0 -34
  300. package/src/modules/auth/views/localization/SignUp.json +0 -28
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
+ const IconShow = require("../../modules/icons/actions/IconShow.vue.cjs");
4
5
  const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export-helper.cjs");
5
6
  const _hoisted_1 = {
6
7
  key: 0,
7
8
  class: "t-transp mn-r-small"
8
9
  };
9
10
  const _hoisted_2 = { class: "t-nowrap" };
10
- const _hoisted_3 = { class: "w-100" };
11
+ const _hoisted_3 = { class: "w-100 pos-relative" };
11
12
  const _hoisted_4 = ["type", "value", "placeholder", "tabindex", "disabled", "autofocus"];
12
13
  const _hoisted_5 = ["value", "placeholder", "tabindex", "disabled"];
13
14
  const _hoisted_6 = {
14
- key: 1,
15
+ key: 2,
15
16
  class: "t-transp mn-l-small"
16
17
  };
17
18
  const _hoisted_7 = {
@@ -41,6 +42,7 @@ const _sfc_main = {
41
42
  }
42
43
  const textarea = vue.ref(null);
43
44
  const input = vue.ref(null);
45
+ const showPassword = vue.ref(false);
44
46
  function resize() {
45
47
  if (!textarea.value) {
46
48
  textarea.value.style.height = "";
@@ -84,9 +86,7 @@ const _sfc_main = {
84
86
  vue.createElementVNode("div", {
85
87
  class: vue.normalizeClass([[
86
88
  _ctx.$attrs.class,
87
- {
88
- "bg-fourth-nano": __props.validation
89
- }
89
+ { "bg-fourth-nano": __props.validation }
90
90
  ], "flex-center flex-nowrap flex"])
91
91
  }, [
92
92
  __props.label ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
@@ -100,7 +100,7 @@ const _sfc_main = {
100
100
  onInput: _cache[0] || (_cache[0] = (event) => text.value = emit("update:field", event.target.value)),
101
101
  onFocus: _cache[1] || (_cache[1] = (event) => emit("focus", event)),
102
102
  onBlur: _cache[2] || (_cache[2] = (event) => emit("blur", event)),
103
- type: __props.type,
103
+ type: __props.type === "password" && !showPassword.value ? "password" : __props.type === "password" ? "text" : __props.type,
104
104
  class: "w-100",
105
105
  value: __props.field,
106
106
  placeholder: __props.placeholder,
@@ -121,6 +121,12 @@ const _sfc_main = {
121
121
  disabled: __props.disabled
122
122
  }, null, 40, _hoisted_5))
123
123
  ]),
124
+ __props.type === "password" ? (vue.openBlock(), vue.createBlock(IconShow.default, {
125
+ key: 1,
126
+ show: !showPassword.value,
127
+ onClick: _cache[6] || (_cache[6] = ($event) => showPassword.value = !showPassword.value),
128
+ class: "i-medium cursor-pointer"
129
+ }, null, 8, ["show"])) : vue.createCommentVNode("", true),
124
130
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true),
125
131
  __props.symbol ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [
126
132
  vue.createElementVNode("span", null, vue.toDisplayString(__props.symbol), 1)
@@ -136,6 +142,6 @@ const _sfc_main = {
136
142
  };
137
143
  }
138
144
  };
139
- const Field = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-cf6a6a58"]]);
145
+ const Field = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-a0727209"]]);
140
146
  exports.default = Field;
141
147
  //# sourceMappingURL=Field.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.vue.cjs","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, nextTick, watch } from 'vue'\nconst emit = defineEmits(['update:field', 'focus', 'blur']);\nconst props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n});\nif (props.value) {\n emit('update:field', props.value)\n}\nconst textarea = ref(null);\nconst input = ref(null);\n\nfunction resize() {\n if (!textarea.value) {\n textarea.value.style.height = '';\n return;\n }\n \n const el = textarea.value;\n \n // Сначала сбрасываем высоту для правильного расчета scrollHeight\n el.style.height = '';\n \n const scrollHeight = el.scrollHeight;\n \n // Теперь устанавливаем высоту на основе scrollHeight\n if (scrollHeight > 33) {\n el.style.height = scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n}\n\n\nfunction focus() {\n if (props.autofocus) {\n if (props.type === 'textarea' && textarea.value) {\n textarea.value.focus();\n } else if (input.value) {\n input.value.focus();\n }\n }\n}\n\n// Следим за изменениями поля\nwatch(() => props.field, () => {\n if (props.type === 'textarea') {\n nextTick(resize);\n }\n});\n\n// Autofocus\nwatch(() => props.autofocus, (newVal) => {\n if (newVal) {\n nextTick(focus);\n }\n});\n\nonMounted(() => {\n nextTick(focus);\n nextTick(resize);\n});\n\nconst text = ref(props.field);\n</script>\n<template>\n <div \n :class=\"[\n $attrs.class, \n { \n 'bg-fourth-nano': validation \n }\n ]\" \n class=\"flex-center flex-nowrap flex\"\n >\n <div \n v-if=\"label\" \n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n <div class=\"w-100\">\n <input \n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n />\n <textarea \n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div> \n <slot></slot>\n <div \n v-if=\"symbol\" \n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n<style scoped>\ninput, textarea, span {\n line-height: 1;\n color: inherit;\n}\ntextarea {\n resize: none;\n overflow: hidden;\n height: 1rem; \n line-height: 1rem;\n}\ninput[type=\"date\"]::-webkit-calendar-picker-indicator,\ninput[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1); /* Это инвертирует иконку, подходит при светлом фоне */\n opacity: 1;\n color: inherit;\n}\n</style>"],"names":["ref","watch","nextTick","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,OAAO;AACb,UAAM,QAAQ;AAYd,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IAClC;AACA,UAAM,WAAWA,IAAG,IAAC,IAAI;AACzB,UAAM,QAAQA,IAAG,IAAC,IAAI;AAEtB,aAAS,SAAS;AAChB,UAAI,CAAC,SAAS,OAAO;AACnB,iBAAS,MAAM,MAAM,SAAS;AAC9B;AAAA,MACJ;AAEE,YAAM,KAAK,SAAS;AAGpB,SAAG,MAAM,SAAS;AAElB,YAAM,eAAe,GAAG;AAGxB,UAAI,eAAe,IAAI;AACrB,WAAG,MAAM,SAAS,eAAe;AAAA,MACrC,OAAS;AACL,WAAG,MAAM,SAAS;AAAA,MACtB;AAAA,IACA;AAGA,aAAS,QAAQ;AACf,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,SAAS,cAAc,SAAS,OAAO;AAC/C,mBAAS,MAAM,MAAO;AAAA,QAC5B,WAAe,MAAM,OAAO;AACtB,gBAAM,MAAM,MAAO;AAAA,QACzB;AAAA,MACA;AAAA,IACA;AAGAC,QAAAA,MAAM,MAAM,MAAM,OAAO,MAAM;AAC7B,UAAI,MAAM,SAAS,YAAY;AAC7BC,YAAAA,SAAS,MAAM;AAAA,MACnB;AAAA,IACA,CAAC;AAGDD,QAAK,MAAC,MAAM,MAAM,WAAW,CAAC,WAAW;AACvC,UAAI,QAAQ;AACVC,YAAAA,SAAS,KAAK;AAAA,MAClB;AAAA,IACA,CAAC;AAEDC,QAAAA,UAAU,MAAM;AACdD,UAAAA,SAAS,KAAK;AACdA,UAAAA,SAAS,MAAM;AAAA,IACjB,CAAC;AAED,UAAM,OAAOF,IAAAA,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Field.vue.cjs","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, nextTick, watch } from 'vue'\nimport IconShow from '@martyrs/src/modules/icons/actions/IconShow.vue';\n\nconst emit = defineEmits(['update:field', 'focus', 'blur']);\n\nconst props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n});\n\nif (props.value) {\n emit('update:field', props.value)\n}\n\nconst textarea = ref(null);\nconst input = ref(null);\nconst showPassword = ref(false);\n\nfunction resize() {\n if (!textarea.value) {\n textarea.value.style.height = '';\n return;\n }\n const el = textarea.value;\n el.style.height = '';\n const scrollHeight = el.scrollHeight;\n if (scrollHeight > 33) {\n el.style.height = scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n}\n\nfunction focus() {\n if (props.autofocus) {\n if (props.type === 'textarea' && textarea.value) {\n textarea.value.focus();\n } else if (input.value) {\n input.value.focus();\n }\n }\n}\n\nwatch(() => props.field, () => {\n if (props.type === 'textarea') {\n nextTick(resize);\n }\n});\n\nwatch(() => props.autofocus, (newVal) => {\n if (newVal) {\n nextTick(focus);\n }\n});\n\nonMounted(() => {\n nextTick(focus);\n nextTick(resize);\n});\n\nconst text = ref(props.field);\n</script>\n\n<template>\n <div\n :class=\"[\n $attrs.class,\n { 'bg-fourth-nano': validation }\n ]\"\n class=\"flex-center flex-nowrap flex\"\n >\n <div\n v-if=\"label\"\n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n <div class=\"w-100 pos-relative\">\n <input\n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type === 'password' && !showPassword ? 'password' : type === 'password' ? 'text' : type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n />\n <textarea\n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div>\n <IconShow\n v-if=\"type === 'password'\"\n :show=\"!showPassword\"\n @click=\"showPassword = !showPassword\"\n class=\"i-medium cursor-pointer\"\n />\n <slot></slot>\n <div\n v-if=\"symbol\"\n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style scoped>\ninput,\ntextarea,\nspan {\n line-height: 1;\n color: inherit;\n}\n\ntextarea {\n resize: none;\n overflow: hidden;\n height: 1rem;\n line-height: 1rem;\n}\n\ninput[type=\"date\"]::-webkit-calendar-picker-indicator,\ninput[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n opacity: 1;\n color: inherit;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.pos-relative {\n position: relative;\n}\n</style>"],"names":["ref","watch","nextTick","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,OAAO;AAEb,UAAM,QAAQ;AAad,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IAClC;AAEA,UAAM,WAAWA,IAAG,IAAC,IAAI;AACzB,UAAM,QAAQA,IAAG,IAAC,IAAI;AACtB,UAAM,eAAeA,IAAG,IAAC,KAAK;AAE9B,aAAS,SAAS;AAChB,UAAI,CAAC,SAAS,OAAO;AACnB,iBAAS,MAAM,MAAM,SAAS;AAC9B;AAAA,MACJ;AACE,YAAM,KAAK,SAAS;AACpB,SAAG,MAAM,SAAS;AAClB,YAAM,eAAe,GAAG;AACxB,UAAI,eAAe,IAAI;AACrB,WAAG,MAAM,SAAS,eAAe;AAAA,MACrC,OAAS;AACL,WAAG,MAAM,SAAS;AAAA,MACtB;AAAA,IACA;AAEA,aAAS,QAAQ;AACf,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,SAAS,cAAc,SAAS,OAAO;AAC/C,mBAAS,MAAM,MAAO;AAAA,QAC5B,WAAe,MAAM,OAAO;AACtB,gBAAM,MAAM,MAAO;AAAA,QACzB;AAAA,MACA;AAAA,IACA;AAEAC,QAAAA,MAAM,MAAM,MAAM,OAAO,MAAM;AAC7B,UAAI,MAAM,SAAS,YAAY;AAC7BC,YAAAA,SAAS,MAAM;AAAA,MACnB;AAAA,IACA,CAAC;AAEDD,QAAK,MAAC,MAAM,MAAM,WAAW,CAAC,WAAW;AACvC,UAAI,QAAQ;AACVC,YAAAA,SAAS,KAAK;AAAA,MAClB;AAAA,IACA,CAAC;AAEDC,QAAAA,UAAU,MAAM;AACdD,UAAAA,SAAS,KAAK;AACdA,UAAAA,SAAS,MAAM;AAAA,IACjB,CAAC;AAED,UAAM,OAAOF,IAAAA,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,15 +1,16 @@
1
- import { ref, watch, nextTick, onMounted, createElementBlock, openBlock, Fragment, createElementVNode, createVNode, normalizeClass, createCommentVNode, renderSlot, toDisplayString, Transition, withCtx } from "vue";
1
+ import { ref, watch, nextTick, onMounted, createElementBlock, openBlock, Fragment, createElementVNode, createVNode, normalizeClass, createCommentVNode, createBlock, renderSlot, toDisplayString, Transition, withCtx } from "vue";
2
+ import _sfc_main$1 from "../../modules/icons/actions/IconShow.vue.js";
2
3
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
3
4
  const _hoisted_1 = {
4
5
  key: 0,
5
6
  class: "t-transp mn-r-small"
6
7
  };
7
8
  const _hoisted_2 = { class: "t-nowrap" };
8
- const _hoisted_3 = { class: "w-100" };
9
+ const _hoisted_3 = { class: "w-100 pos-relative" };
9
10
  const _hoisted_4 = ["type", "value", "placeholder", "tabindex", "disabled", "autofocus"];
10
11
  const _hoisted_5 = ["value", "placeholder", "tabindex", "disabled"];
11
12
  const _hoisted_6 = {
12
- key: 1,
13
+ key: 2,
13
14
  class: "t-transp mn-l-small"
14
15
  };
15
16
  const _hoisted_7 = {
@@ -39,6 +40,7 @@ const _sfc_main = {
39
40
  }
40
41
  const textarea = ref(null);
41
42
  const input = ref(null);
43
+ const showPassword = ref(false);
42
44
  function resize() {
43
45
  if (!textarea.value) {
44
46
  textarea.value.style.height = "";
@@ -82,9 +84,7 @@ const _sfc_main = {
82
84
  createElementVNode("div", {
83
85
  class: normalizeClass([[
84
86
  _ctx.$attrs.class,
85
- {
86
- "bg-fourth-nano": __props.validation
87
- }
87
+ { "bg-fourth-nano": __props.validation }
88
88
  ], "flex-center flex-nowrap flex"])
89
89
  }, [
90
90
  __props.label ? (openBlock(), createElementBlock("div", _hoisted_1, [
@@ -98,7 +98,7 @@ const _sfc_main = {
98
98
  onInput: _cache[0] || (_cache[0] = (event) => text.value = emit("update:field", event.target.value)),
99
99
  onFocus: _cache[1] || (_cache[1] = (event) => emit("focus", event)),
100
100
  onBlur: _cache[2] || (_cache[2] = (event) => emit("blur", event)),
101
- type: __props.type,
101
+ type: __props.type === "password" && !showPassword.value ? "password" : __props.type === "password" ? "text" : __props.type,
102
102
  class: "w-100",
103
103
  value: __props.field,
104
104
  placeholder: __props.placeholder,
@@ -119,6 +119,12 @@ const _sfc_main = {
119
119
  disabled: __props.disabled
120
120
  }, null, 40, _hoisted_5))
121
121
  ]),
122
+ __props.type === "password" ? (openBlock(), createBlock(_sfc_main$1, {
123
+ key: 1,
124
+ show: !showPassword.value,
125
+ onClick: _cache[6] || (_cache[6] = ($event) => showPassword.value = !showPassword.value),
126
+ class: "i-medium cursor-pointer"
127
+ }, null, 8, ["show"])) : createCommentVNode("", true),
122
128
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
123
129
  __props.symbol ? (openBlock(), createElementBlock("div", _hoisted_6, [
124
130
  createElementVNode("span", null, toDisplayString(__props.symbol), 1)
@@ -134,7 +140,7 @@ const _sfc_main = {
134
140
  };
135
141
  }
136
142
  };
137
- const Field = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-cf6a6a58"]]);
143
+ const Field = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a0727209"]]);
138
144
  export {
139
145
  Field as default
140
146
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Field.vue.js","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, nextTick, watch } from 'vue'\nconst emit = defineEmits(['update:field', 'focus', 'blur']);\nconst props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n});\nif (props.value) {\n emit('update:field', props.value)\n}\nconst textarea = ref(null);\nconst input = ref(null);\n\nfunction resize() {\n if (!textarea.value) {\n textarea.value.style.height = '';\n return;\n }\n \n const el = textarea.value;\n \n // Сначала сбрасываем высоту для правильного расчета scrollHeight\n el.style.height = '';\n \n const scrollHeight = el.scrollHeight;\n \n // Теперь устанавливаем высоту на основе scrollHeight\n if (scrollHeight > 33) {\n el.style.height = scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n}\n\n\nfunction focus() {\n if (props.autofocus) {\n if (props.type === 'textarea' && textarea.value) {\n textarea.value.focus();\n } else if (input.value) {\n input.value.focus();\n }\n }\n}\n\n// Следим за изменениями поля\nwatch(() => props.field, () => {\n if (props.type === 'textarea') {\n nextTick(resize);\n }\n});\n\n// Autofocus\nwatch(() => props.autofocus, (newVal) => {\n if (newVal) {\n nextTick(focus);\n }\n});\n\nonMounted(() => {\n nextTick(focus);\n nextTick(resize);\n});\n\nconst text = ref(props.field);\n</script>\n<template>\n <div \n :class=\"[\n $attrs.class, \n { \n 'bg-fourth-nano': validation \n }\n ]\" \n class=\"flex-center flex-nowrap flex\"\n >\n <div \n v-if=\"label\" \n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n <div class=\"w-100\">\n <input \n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n />\n <textarea \n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div> \n <slot></slot>\n <div \n v-if=\"symbol\" \n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n<style scoped>\ninput, textarea, span {\n line-height: 1;\n color: inherit;\n}\ntextarea {\n resize: none;\n overflow: hidden;\n height: 1rem; \n line-height: 1rem;\n}\ninput[type=\"date\"]::-webkit-calendar-picker-indicator,\ninput[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1); /* Это инвертирует иконку, подходит при светлом фоне */\n opacity: 1;\n color: inherit;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,OAAO;AACb,UAAM,QAAQ;AAYd,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IAClC;AACA,UAAM,WAAW,IAAI,IAAI;AACzB,UAAM,QAAQ,IAAI,IAAI;AAEtB,aAAS,SAAS;AAChB,UAAI,CAAC,SAAS,OAAO;AACnB,iBAAS,MAAM,MAAM,SAAS;AAC9B;AAAA,MACJ;AAEE,YAAM,KAAK,SAAS;AAGpB,SAAG,MAAM,SAAS;AAElB,YAAM,eAAe,GAAG;AAGxB,UAAI,eAAe,IAAI;AACrB,WAAG,MAAM,SAAS,eAAe;AAAA,MACrC,OAAS;AACL,WAAG,MAAM,SAAS;AAAA,MACtB;AAAA,IACA;AAGA,aAAS,QAAQ;AACf,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,SAAS,cAAc,SAAS,OAAO;AAC/C,mBAAS,MAAM,MAAO;AAAA,QAC5B,WAAe,MAAM,OAAO;AACtB,gBAAM,MAAM,MAAO;AAAA,QACzB;AAAA,MACA;AAAA,IACA;AAGA,UAAM,MAAM,MAAM,OAAO,MAAM;AAC7B,UAAI,MAAM,SAAS,YAAY;AAC7B,iBAAS,MAAM;AAAA,MACnB;AAAA,IACA,CAAC;AAGD,UAAM,MAAM,MAAM,WAAW,CAAC,WAAW;AACvC,UAAI,QAAQ;AACV,iBAAS,KAAK;AAAA,MAClB;AAAA,IACA,CAAC;AAED,cAAU,MAAM;AACd,eAAS,KAAK;AACd,eAAS,MAAM;AAAA,IACjB,CAAC;AAED,UAAM,OAAO,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Field.vue.js","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, nextTick, watch } from 'vue'\nimport IconShow from '@martyrs/src/modules/icons/actions/IconShow.vue';\n\nconst emit = defineEmits(['update:field', 'focus', 'blur']);\n\nconst props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n});\n\nif (props.value) {\n emit('update:field', props.value)\n}\n\nconst textarea = ref(null);\nconst input = ref(null);\nconst showPassword = ref(false);\n\nfunction resize() {\n if (!textarea.value) {\n textarea.value.style.height = '';\n return;\n }\n const el = textarea.value;\n el.style.height = '';\n const scrollHeight = el.scrollHeight;\n if (scrollHeight > 33) {\n el.style.height = scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n}\n\nfunction focus() {\n if (props.autofocus) {\n if (props.type === 'textarea' && textarea.value) {\n textarea.value.focus();\n } else if (input.value) {\n input.value.focus();\n }\n }\n}\n\nwatch(() => props.field, () => {\n if (props.type === 'textarea') {\n nextTick(resize);\n }\n});\n\nwatch(() => props.autofocus, (newVal) => {\n if (newVal) {\n nextTick(focus);\n }\n});\n\nonMounted(() => {\n nextTick(focus);\n nextTick(resize);\n});\n\nconst text = ref(props.field);\n</script>\n\n<template>\n <div\n :class=\"[\n $attrs.class,\n { 'bg-fourth-nano': validation }\n ]\"\n class=\"flex-center flex-nowrap flex\"\n >\n <div\n v-if=\"label\"\n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n <div class=\"w-100 pos-relative\">\n <input\n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type === 'password' && !showPassword ? 'password' : type === 'password' ? 'text' : type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n />\n <textarea\n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div>\n <IconShow\n v-if=\"type === 'password'\"\n :show=\"!showPassword\"\n @click=\"showPassword = !showPassword\"\n class=\"i-medium cursor-pointer\"\n />\n <slot></slot>\n <div\n v-if=\"symbol\"\n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style scoped>\ninput,\ntextarea,\nspan {\n line-height: 1;\n color: inherit;\n}\n\ntextarea {\n resize: none;\n overflow: hidden;\n height: 1rem;\n line-height: 1rem;\n}\n\ninput[type=\"date\"]::-webkit-calendar-picker-indicator,\ninput[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n opacity: 1;\n color: inherit;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.pos-relative {\n position: relative;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,OAAO;AAEb,UAAM,QAAQ;AAad,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IAClC;AAEA,UAAM,WAAW,IAAI,IAAI;AACzB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,eAAe,IAAI,KAAK;AAE9B,aAAS,SAAS;AAChB,UAAI,CAAC,SAAS,OAAO;AACnB,iBAAS,MAAM,MAAM,SAAS;AAC9B;AAAA,MACJ;AACE,YAAM,KAAK,SAAS;AACpB,SAAG,MAAM,SAAS;AAClB,YAAM,eAAe,GAAG;AACxB,UAAI,eAAe,IAAI;AACrB,WAAG,MAAM,SAAS,eAAe;AAAA,MACrC,OAAS;AACL,WAAG,MAAM,SAAS;AAAA,MACtB;AAAA,IACA;AAEA,aAAS,QAAQ;AACf,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,SAAS,cAAc,SAAS,OAAO;AAC/C,mBAAS,MAAM,MAAO;AAAA,QAC5B,WAAe,MAAM,OAAO;AACtB,gBAAM,MAAM,MAAO;AAAA,QACzB;AAAA,MACA;AAAA,IACA;AAEA,UAAM,MAAM,MAAM,OAAO,MAAM;AAC7B,UAAI,MAAM,SAAS,YAAY;AAC7B,iBAAS,MAAM;AAAA,MACnB;AAAA,IACA,CAAC;AAED,UAAM,MAAM,MAAM,WAAW,CAAC,WAAW;AACvC,UAAI,QAAQ;AACV,iBAAS,KAAK;AAAA,MAClB;AAAA,IACA,CAAC;AAED,cAAU,MAAM;AACd,eAAS,KAAK;AACd,eAAS,MAAM;AAAA,IACjB,CAAC;AAED,UAAM,OAAO,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const IconCross = require("../../modules/icons/navigation/IconCross.vue.cjs");
6
- ;/* empty css */
6
+ ;/* empty css */
7
7
  const _hoisted_1 = {
8
8
  key: 0,
9
9
  class: "mn-b-medium"
@@ -101,4 +101,4 @@ const _sfc_main = {
101
101
  }
102
102
  };
103
103
  exports.default = _sfc_main;
104
- //# sourceMappingURL=Popup.vue.cjs.map
104
+ //# sourceMappingURL=Popup.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup.vue2.cjs","sources":["../../../../../src/components/Popup/Popup.vue"],"sourcesContent":["<template>\n <transition name=\"moveFromTop\">\n <teleport to=\"body\" v-if=\"isPopupOpen\">\n <div v-if=\"isPopupOpen\" key=\"popup-content\" class=\"z-index-6 popup-wrapper\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios',\n [alignClass]: true\n }\"\n >\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <section class=\"h-max-100 o-y-scroll pos-relative z-index-4\" v-bind=\"$attrs\" :class=\"$attrs.class\">\n <h4 v-if=\"title\" class=\"mn-b-medium\">{{title}}</h4>\n <IconCross :fill=\"'rgb(var(--white))'\" @click=\"closePopup()\" class=\"cursor-pointer bg-second pd-micro radius-extra pos-absolute pos-t-0 pos-r-0 mn-t-medium mn-r-medium hover-scale-1 i-medium z-index-5\"/>\n <slot></slot>\n </section> \n </transition>\n\n <div \n @click=\"closePopup()\" \n :class=\"{'active':isPopupOpen === true}\" \n class=\"color-overlay z-index-3\">\n </div>\n </div>\n </teleport>\n </transition>\n</template>\n\n<script setup>\nimport { computed, watch, onMounted, ref, nextTick } from 'vue';\n// Import libs\nimport { useRoute, useRouter } from 'vue-router'\n// import { useI18n } from 'vue-i18n'\n// Icons\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n// Define props\nconst props = defineProps({\n isPopupOpen: {\n type: Boolean,\n default: false\n },\n style: String,\n title: String,\n align: {\n type: String,\n default: 'center center',\n validator: (value) => {\n const validAlignments = [\n 'top left', 'top center', 'top right',\n 'center left', 'center center', 'center right',\n 'bottom left', 'bottom center', 'bottom right'\n ];\n return validAlignments.includes(value);\n }\n }\n});\n\nconst emits = defineEmits(['close-popup'])\n\n// Compute the alignment class from the align prop\nconst alignClass = computed(() => {\n return `align-${props.align.replace(/\\s+/g, '-')}`;\n});\n\nfunction closePopup() {\n emits(\"close-popup\");\n} \n\nwatch(() => props.isPopupOpen, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\n\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\n// Localization\nconst text = {\n messages: {\n en: {},\n ru: {}\n }\n}\n// const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n .no-scroll {\n overflow: hidden;\n\n #view {\n overflow: hidden;\n }\n }\n\n .popup-wrapper {\n display: flex;\n position: fixed;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 40;\n\n /* Default alignment - center center */\n &.align-center-center {\n align-items: center;\n justify-content: center;\n }\n\n /* Top alignments */\n &.align-top-left {\n align-items: flex-start;\n justify-content: flex-start;\n }\n \n &.align-top-center {\n align-items: flex-start;\n justify-content: center;\n }\n \n &.align-top-right {\n align-items: flex-start;\n justify-content: flex-end;\n }\n\n /* Center alignments */\n &.align-center-left {\n align-items: center;\n justify-content: flex-start;\n }\n \n &.align-center-right {\n align-items: center;\n justify-content: flex-end;\n }\n\n /* Bottom alignments */\n &.align-bottom-left {\n align-items: flex-end;\n justify-content: flex-start;\n }\n \n &.align-bottom-center {\n align-items: flex-end;\n justify-content: center;\n }\n \n &.align-bottom-right {\n align-items: flex-end;\n justify-content: flex-end;\n }\n\n .popup {\n position: absolute;\n height: auto;\n padding: 2rem;\n min-width: 24rem;\n border-radius: 2rem;\n overflow: hidden;\n color: white;\n background: black;\n z-index: 40;\n }\n }\n\n .color-overlay {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.0);\n pointer-events: none;\n transform: scale(1.5);\n transition: all 0.5s cubic-bezier(.31,.79,.24,.92);\n \n &.active {\n background: rgba(#000,0.25);\n pointer-events: all;\n }\n }\n</style>"],"names":["computed","watch","useRoute","useRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,QAAQ;AAqBd,UAAM,QAAQ;AAGd,UAAM,aAAaA,IAAQ,SAAC,MAAM;AAChC,aAAO,SAAS,MAAM,MAAM,QAAQ,QAAQ,GAAG,CAAC;AAAA,IAClD,CAAC;AAED,aAAS,aAAa;AACpB,YAAM,aAAa;AAAA,IACrB;AAEAC,QAAK,MAAC,MAAM,MAAM,aAAa,CAAC,WAAW;AACzC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MAC3C,OAAS;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC9C;AAAA,IACA,CAAC;AAGaC,cAAQ,SAAA;AACPC,cAAS,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { computed, watch, createBlock, openBlock, Transition, withCtx, createCommentVNode, Teleport, createElementBlock, normalizeClass, createVNode, createElementVNode, mergeProps, renderSlot, toDisplayString } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$1 from "../../modules/icons/navigation/IconCross.vue.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  const _hoisted_1 = {
6
6
  key: 0,
7
7
  class: "mn-b-medium"
@@ -101,4 +101,4 @@ const _sfc_main = {
101
101
  export {
102
102
  _sfc_main as default
103
103
  };
104
- //# sourceMappingURL=Popup.vue.js.map
104
+ //# sourceMappingURL=Popup.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.vue.cjs","sources":["../../../../../src/components/Popup/Popup.vue"],"sourcesContent":["<template>\n <transition name=\"moveFromTop\">\n <teleport to=\"body\" v-if=\"isPopupOpen\">\n <div v-if=\"isPopupOpen\" key=\"popup-content\" class=\"z-index-6 popup-wrapper\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios',\n [alignClass]: true\n }\"\n >\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <section class=\"h-max-100 o-y-scroll pos-relative z-index-4\" v-bind=\"$attrs\" :class=\"$attrs.class\">\n <h4 v-if=\"title\" class=\"mn-b-medium\">{{title}}</h4>\n <IconCross :fill=\"'rgb(var(--white))'\" @click=\"closePopup()\" class=\"cursor-pointer bg-second pd-micro radius-extra pos-absolute pos-t-0 pos-r-0 mn-t-medium mn-r-medium hover-scale-1 i-medium z-index-5\"/>\n <slot></slot>\n </section> \n </transition>\n\n <div \n @click=\"closePopup()\" \n :class=\"{'active':isPopupOpen === true}\" \n class=\"color-overlay z-index-3\">\n </div>\n </div>\n </teleport>\n </transition>\n</template>\n\n<script setup>\nimport { computed, watch, onMounted, ref, nextTick } from 'vue';\n// Import libs\nimport { useRoute, useRouter } from 'vue-router'\n// import { useI18n } from 'vue-i18n'\n// Icons\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n// Define props\nconst props = defineProps({\n isPopupOpen: {\n type: Boolean,\n default: false\n },\n style: String,\n title: String,\n align: {\n type: String,\n default: 'center center',\n validator: (value) => {\n const validAlignments = [\n 'top left', 'top center', 'top right',\n 'center left', 'center center', 'center right',\n 'bottom left', 'bottom center', 'bottom right'\n ];\n return validAlignments.includes(value);\n }\n }\n});\n\nconst emits = defineEmits(['close-popup'])\n\n// Compute the alignment class from the align prop\nconst alignClass = computed(() => {\n return `align-${props.align.replace(/\\s+/g, '-')}`;\n});\n\nfunction closePopup() {\n emits(\"close-popup\");\n} \n\nwatch(() => props.isPopupOpen, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\n\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\n// Localization\nconst text = {\n messages: {\n en: {},\n ru: {}\n }\n}\n// const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n .no-scroll {\n overflow: hidden;\n\n #view {\n overflow: hidden;\n }\n }\n\n .popup-wrapper {\n display: flex;\n position: fixed;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 40;\n\n /* Default alignment - center center */\n &.align-center-center {\n align-items: center;\n justify-content: center;\n }\n\n /* Top alignments */\n &.align-top-left {\n align-items: flex-start;\n justify-content: flex-start;\n }\n \n &.align-top-center {\n align-items: flex-start;\n justify-content: center;\n }\n \n &.align-top-right {\n align-items: flex-start;\n justify-content: flex-end;\n }\n\n /* Center alignments */\n &.align-center-left {\n align-items: center;\n justify-content: flex-start;\n }\n \n &.align-center-right {\n align-items: center;\n justify-content: flex-end;\n }\n\n /* Bottom alignments */\n &.align-bottom-left {\n align-items: flex-end;\n justify-content: flex-start;\n }\n \n &.align-bottom-center {\n align-items: flex-end;\n justify-content: center;\n }\n \n &.align-bottom-right {\n align-items: flex-end;\n justify-content: flex-end;\n }\n\n .popup {\n position: absolute;\n height: auto;\n padding: 2rem;\n min-width: 24rem;\n border-radius: 2rem;\n overflow: hidden;\n color: white;\n background: black;\n z-index: 40;\n }\n }\n\n .color-overlay {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.0);\n pointer-events: none;\n transform: scale(1.5);\n transition: all 0.5s cubic-bezier(.31,.79,.24,.92);\n \n &.active {\n background: rgba(#000,0.25);\n pointer-events: all;\n }\n }\n</style>"],"names":["computed","watch","useRoute","useRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,QAAQ;AAqBd,UAAM,QAAQ;AAGd,UAAM,aAAaA,IAAQ,SAAC,MAAM;AAChC,aAAO,SAAS,MAAM,MAAM,QAAQ,QAAQ,GAAG,CAAC;AAAA,IAClD,CAAC;AAED,aAAS,aAAa;AACpB,YAAM,aAAa;AAAA,IACrB;AAEAC,QAAK,MAAC,MAAM,MAAM,aAAa,CAAC,WAAW;AACzC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MAC3C,OAAS;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC9C;AAAA,IACA,CAAC;AAGaC,cAAQ,SAAA;AACPC,cAAS,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Popup.vue2.js","sources":["../../../../../src/components/Popup/Popup.vue"],"sourcesContent":["<template>\n <transition name=\"moveFromTop\">\n <teleport to=\"body\" v-if=\"isPopupOpen\">\n <div v-if=\"isPopupOpen\" key=\"popup-content\" class=\"z-index-6 popup-wrapper\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios',\n [alignClass]: true\n }\"\n >\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <section class=\"h-max-100 o-y-scroll pos-relative z-index-4\" v-bind=\"$attrs\" :class=\"$attrs.class\">\n <h4 v-if=\"title\" class=\"mn-b-medium\">{{title}}</h4>\n <IconCross :fill=\"'rgb(var(--white))'\" @click=\"closePopup()\" class=\"cursor-pointer bg-second pd-micro radius-extra pos-absolute pos-t-0 pos-r-0 mn-t-medium mn-r-medium hover-scale-1 i-medium z-index-5\"/>\n <slot></slot>\n </section> \n </transition>\n\n <div \n @click=\"closePopup()\" \n :class=\"{'active':isPopupOpen === true}\" \n class=\"color-overlay z-index-3\">\n </div>\n </div>\n </teleport>\n </transition>\n</template>\n\n<script setup>\nimport { computed, watch, onMounted, ref, nextTick } from 'vue';\n// Import libs\nimport { useRoute, useRouter } from 'vue-router'\n// import { useI18n } from 'vue-i18n'\n// Icons\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n// Define props\nconst props = defineProps({\n isPopupOpen: {\n type: Boolean,\n default: false\n },\n style: String,\n title: String,\n align: {\n type: String,\n default: 'center center',\n validator: (value) => {\n const validAlignments = [\n 'top left', 'top center', 'top right',\n 'center left', 'center center', 'center right',\n 'bottom left', 'bottom center', 'bottom right'\n ];\n return validAlignments.includes(value);\n }\n }\n});\n\nconst emits = defineEmits(['close-popup'])\n\n// Compute the alignment class from the align prop\nconst alignClass = computed(() => {\n return `align-${props.align.replace(/\\s+/g, '-')}`;\n});\n\nfunction closePopup() {\n emits(\"close-popup\");\n} \n\nwatch(() => props.isPopupOpen, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\n\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\n// Localization\nconst text = {\n messages: {\n en: {},\n ru: {}\n }\n}\n// const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n .no-scroll {\n overflow: hidden;\n\n #view {\n overflow: hidden;\n }\n }\n\n .popup-wrapper {\n display: flex;\n position: fixed;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 40;\n\n /* Default alignment - center center */\n &.align-center-center {\n align-items: center;\n justify-content: center;\n }\n\n /* Top alignments */\n &.align-top-left {\n align-items: flex-start;\n justify-content: flex-start;\n }\n \n &.align-top-center {\n align-items: flex-start;\n justify-content: center;\n }\n \n &.align-top-right {\n align-items: flex-start;\n justify-content: flex-end;\n }\n\n /* Center alignments */\n &.align-center-left {\n align-items: center;\n justify-content: flex-start;\n }\n \n &.align-center-right {\n align-items: center;\n justify-content: flex-end;\n }\n\n /* Bottom alignments */\n &.align-bottom-left {\n align-items: flex-end;\n justify-content: flex-start;\n }\n \n &.align-bottom-center {\n align-items: flex-end;\n justify-content: center;\n }\n \n &.align-bottom-right {\n align-items: flex-end;\n justify-content: flex-end;\n }\n\n .popup {\n position: absolute;\n height: auto;\n padding: 2rem;\n min-width: 24rem;\n border-radius: 2rem;\n overflow: hidden;\n color: white;\n background: black;\n z-index: 40;\n }\n }\n\n .color-overlay {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.0);\n pointer-events: none;\n transform: scale(1.5);\n transition: all 0.5s cubic-bezier(.31,.79,.24,.92);\n \n &.active {\n background: rgba(#000,0.25);\n pointer-events: all;\n }\n }\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,QAAQ;AAqBd,UAAM,QAAQ;AAGd,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,SAAS,MAAM,MAAM,QAAQ,QAAQ,GAAG,CAAC;AAAA,IAClD,CAAC;AAED,aAAS,aAAa;AACpB,YAAM,aAAa;AAAA,IACrB;AAEA,UAAM,MAAM,MAAM,aAAa,CAAC,WAAW;AACzC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MAC3C,OAAS;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC9C;AAAA,IACA,CAAC;AAGa,aAAQ;AACP,cAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,12 +2,11 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
- const _hoisted_1 = { class: "pos-relative" };
6
- const _hoisted_2 = {
5
+ const _hoisted_1 = {
7
6
  key: 0,
8
7
  class: "carousel__dots"
9
8
  };
10
- const _hoisted_3 = ["onClick"];
9
+ const _hoisted_2 = ["onClick"];
11
10
  const _sfc_main = {
12
11
  __name: "Slider",
13
12
  props: {
@@ -141,29 +140,27 @@ const _sfc_main = {
141
140
  }
142
141
  });
143
142
  return (_ctx, _cache) => {
144
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
143
+ return vue.openBlock(), vue.createElementBlock("div", {
144
+ class: "carousel",
145
+ ref_key: "carouselRef",
146
+ ref: carouselRef
147
+ }, [
145
148
  vue.createElementVNode("div", {
146
- class: "carousel",
147
- ref_key: "carouselRef",
148
- ref: carouselRef
149
+ class: "carousel__container",
150
+ onScroll: handleScroll
149
151
  }, [
150
- vue.createElementVNode("div", {
151
- class: "carousel__container",
152
- onScroll: handleScroll
153
- }, [
154
- vue.renderSlot(_ctx.$slots, "default")
155
- ], 32),
156
- __props.showDots && __props.slideCount > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
157
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.slideCount, (index) => {
158
- return vue.openBlock(), vue.createElementBlock("button", {
159
- key: index - 1,
160
- class: vue.normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
161
- onClick: ($event) => scrollTo(index - 1)
162
- }, null, 10, _hoisted_3);
163
- }), 128))
164
- ])) : vue.createCommentVNode("", true)
165
- ], 512)
166
- ]);
152
+ vue.renderSlot(_ctx.$slots, "default")
153
+ ], 32),
154
+ __props.showDots && __props.slideCount > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
155
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.slideCount, (index) => {
156
+ return vue.openBlock(), vue.createElementBlock("button", {
157
+ key: index - 1,
158
+ class: vue.normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
159
+ onClick: ($event) => scrollTo(index - 1)
160
+ }, null, 10, _hoisted_2);
161
+ }), 128))
162
+ ])) : vue.createCommentVNode("", true)
163
+ ], 512);
167
164
  };
168
165
  }
169
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.vue.cjs","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":["ref","onMounted","onBeforeUnmount"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.vue.cjs","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":["ref","onMounted","onBeforeUnmount"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,UAAM,QAAQ;AAQd,UAAM,cAAcA,IAAG,IAAC,IAAI;AAC5B,UAAM,gBAAgBA,IAAG,IAAC,CAAC;AAC3B,UAAM,mBAAmBA,IAAG,IAAC,IAAI;AACjC,UAAM,gBAAgBA,IAAG,IAAC,IAAI;AAG9B,UAAM,WAAW,CAAC,UAAU;AAC1B,UAAI,CAAC,YAAY,MAAO;AAExB,YAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAE5D,UAAI,OAAO,KAAK,GAAG;AACjB,kBAAU,SAAS;AAAA,UACjB,MAAM,OAAO,KAAK,EAAE;AAAA,UACpB,UAAU;AAAA,QACX,CAAA;AAED,sBAAc,QAAQ;AAAA,MAC1B;AAAA,IACA;AAGA,UAAM,eAAe,MAAM;AAEzB,UAAI,cAAc,OAAO;AACvB,qBAAa,cAAc,KAAK;AAAA,MACpC;AAGE,oBAAc,QAAQ,WAAW,MAAM;AACrC,4BAAmB;AAAA,MACpB,GAAE,EAAE;AAAA,IACP;AAGA,UAAM,sBAAsB,MAAM;AAChC,UAAI,CAAC,YAAY,MAAO;AAExB,YAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAE5D,UAAI,CAAC,OAAO,OAAQ;AAEpB,YAAM,iBAAiB,UAAU;AACjC,YAAM,aAAa,OAAO,CAAC,EAAE;AAG7B,YAAM,QAAQ,KAAK,MAAM,iBAAiB,UAAU;AAGpD,YAAM,eAAe,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,OAAO,SAAS,CAAC,CAAC;AAGnE,oBAAc,QAAQ;AAAA,IACxB;AAGA,UAAM,gBAAgB,MAAM;AAC1B,UAAI,iBAAiB,OAAO;AAC1B,sBAAc,iBAAiB,KAAK;AAAA,MACxC;AAEE,uBAAiB,QAAQ,YAAY,MAAM;AACzC,cAAM,aAAa,cAAc,QAAQ,KAAK,MAAM;AACpD,iBAAS,SAAS;AAAA,MACnB,GAAE,GAAI;AAAA,IACT;AAEAC,QAAAA,UAAU,MAAM;AAEd,UAAI,YAAY,OAAO;AAErB,cAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,cAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAG5D,cAAM,WAAW,IAAI,qBAAqB,CAAC,YAAY;AACrD,kBAAQ,QAAQ,WAAS;AACvB,gBAAI,MAAM,gBAAgB;AAExB,oBAAM,aAAa,MAAM,KAAK,MAAM,EAAE,QAAQ,MAAM,MAAM;AAC1D,kBAAI,eAAe,IAAI;AACrB,8BAAc,QAAQ;AAAA,cAClC;AAAA,YACA;AAAA,UACO,CAAA;AAAA,QACP,GAAO;AAAA,UACD,MAAM;AAAA,UACN,WAAW;AAAA;AAAA,QACZ,CAAA;AAGD,eAAO,QAAQ,WAAS;AACtB,mBAAS,QAAQ,KAAK;AAAA,QACvB,CAAA;AAGD,kBAAU,iBAAiB,WAAW,MAAM;AAC1C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UAC5C;AAAA,QACK,CAAA;AAED,kBAAU,iBAAiB,YAAY,MAAM;AAC3C,wBAAa;AAAA,QACd,CAAA;AAGD,kBAAU,iBAAiB,aAAa,MAAM;AAC5C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UAC5C;AAAA,QACK,CAAA;AAED,kBAAU,iBAAiB,cAAc,MAAM;AAC7C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UAC5C;AAAA,QACK,CAAA;AAGD,kBAAU,iBAAiB,WAAW,MAAM;AAC1C,wBAAa;AAAA,QACd,CAAA;AAED,kBAAU,iBAAiB,YAAY,MAAM;AAC3C,wBAAa;AAAA,QACd,CAAA;AAGD,sBAAa;AAGb,oBAAY,MAAM,YAAY;AAAA,MAClC;AAAA,IACA,CAAC;AAEDC,QAAAA,gBAAgB,MAAM;AAEpB,UAAI,YAAY,OAAO;AAErB,YAAI,YAAY,MAAM,WAAW;AAC/B,sBAAY,MAAM,UAAU,WAAU;AAAA,QAC5C;AAGI,cAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAI,WAAW;AACb,oBAAU,oBAAoB,WAAW,MAAM;AAAA,UAAE,CAAA;AACjD,oBAAU,oBAAoB,YAAY,MAAM;AAAA,UAAE,CAAA;AAClD,oBAAU,oBAAoB,aAAa,MAAM;AAAA,UAAE,CAAA;AACnD,oBAAU,oBAAoB,cAAc,MAAM;AAAA,UAAE,CAAA;AACpD,oBAAU,oBAAoB,WAAW,MAAM;AAAA,UAAE,CAAA;AACjD,oBAAU,oBAAoB,YAAY,MAAM;AAAA,UAAE,CAAA;AAAA,QACxD;AAAA,MACA;AAGE,UAAI,iBAAiB,OAAO;AAC1B,sBAAc,iBAAiB,KAAK;AAAA,MACxC;AAEE,UAAI,cAAc,OAAO;AACvB,qBAAa,cAAc,KAAK;AAAA,MACpC;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,11 +1,10 @@
1
1
  import { ref, onMounted, onBeforeUnmount, createElementBlock, openBlock, createElementVNode, createCommentVNode, renderSlot, Fragment, renderList, normalizeClass } from "vue";
2
2
  /* empty css */
3
- const _hoisted_1 = { class: "pos-relative" };
4
- const _hoisted_2 = {
3
+ const _hoisted_1 = {
5
4
  key: 0,
6
5
  class: "carousel__dots"
7
6
  };
8
- const _hoisted_3 = ["onClick"];
7
+ const _hoisted_2 = ["onClick"];
9
8
  const _sfc_main = {
10
9
  __name: "Slider",
11
10
  props: {
@@ -139,29 +138,27 @@ const _sfc_main = {
139
138
  }
140
139
  });
141
140
  return (_ctx, _cache) => {
142
- return openBlock(), createElementBlock("div", _hoisted_1, [
141
+ return openBlock(), createElementBlock("div", {
142
+ class: "carousel",
143
+ ref_key: "carouselRef",
144
+ ref: carouselRef
145
+ }, [
143
146
  createElementVNode("div", {
144
- class: "carousel",
145
- ref_key: "carouselRef",
146
- ref: carouselRef
147
+ class: "carousel__container",
148
+ onScroll: handleScroll
147
149
  }, [
148
- createElementVNode("div", {
149
- class: "carousel__container",
150
- onScroll: handleScroll
151
- }, [
152
- renderSlot(_ctx.$slots, "default")
153
- ], 32),
154
- __props.showDots && __props.slideCount > 1 ? (openBlock(), createElementBlock("div", _hoisted_2, [
155
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.slideCount, (index) => {
156
- return openBlock(), createElementBlock("button", {
157
- key: index - 1,
158
- class: normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
159
- onClick: ($event) => scrollTo(index - 1)
160
- }, null, 10, _hoisted_3);
161
- }), 128))
162
- ])) : createCommentVNode("", true)
163
- ], 512)
164
- ]);
150
+ renderSlot(_ctx.$slots, "default")
151
+ ], 32),
152
+ __props.showDots && __props.slideCount > 1 ? (openBlock(), createElementBlock("div", _hoisted_1, [
153
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.slideCount, (index) => {
154
+ return openBlock(), createElementBlock("button", {
155
+ key: index - 1,
156
+ class: normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
157
+ onClick: ($event) => scrollTo(index - 1)
158
+ }, null, 10, _hoisted_2);
159
+ }), 128))
160
+ ])) : createCommentVNode("", true)
161
+ ], 512);
165
162
  };
166
163
  }
167
164
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.vue.js","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,UAAM,QAAQ;AAQd,UAAM,cAAc,IAAI,IAAI;AAC5B,UAAM,gBAAgB,IAAI,CAAC;AAC3B,UAAM,mBAAmB,IAAI,IAAI;AACjC,UAAM,gBAAgB,IAAI,IAAI;AAG9B,UAAM,WAAW,CAAC,UAAU;AAC1B,UAAI,CAAC,YAAY,MAAO;AAExB,YAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAE5D,UAAI,OAAO,KAAK,GAAG;AACjB,kBAAU,SAAS;AAAA,UACjB,MAAM,OAAO,KAAK,EAAE;AAAA,UACpB,UAAU;AAAA,QACX,CAAA;AAED,sBAAc,QAAQ;AAAA,MAC1B;AAAA,IACA;AAGA,UAAM,eAAe,MAAM;AAEzB,UAAI,cAAc,OAAO;AACvB,qBAAa,cAAc,KAAK;AAAA,MACpC;AAGE,oBAAc,QAAQ,WAAW,MAAM;AACrC,4BAAmB;AAAA,MACpB,GAAE,EAAE;AAAA,IACP;AAGA,UAAM,sBAAsB,MAAM;AAChC,UAAI,CAAC,YAAY,MAAO;AAExB,YAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAE5D,UAAI,CAAC,OAAO,OAAQ;AAEpB,YAAM,iBAAiB,UAAU;AACjC,YAAM,aAAa,OAAO,CAAC,EAAE;AAG7B,YAAM,QAAQ,KAAK,MAAM,iBAAiB,UAAU;AAGpD,YAAM,eAAe,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,OAAO,SAAS,CAAC,CAAC;AAGnE,oBAAc,QAAQ;AAAA,IACxB;AAGA,UAAM,gBAAgB,MAAM;AAC1B,UAAI,iBAAiB,OAAO;AAC1B,sBAAc,iBAAiB,KAAK;AAAA,MACxC;AAEE,uBAAiB,QAAQ,YAAY,MAAM;AACzC,cAAM,aAAa,cAAc,QAAQ,KAAK,MAAM;AACpD,iBAAS,SAAS;AAAA,MACnB,GAAE,GAAI;AAAA,IACT;AAEA,cAAU,MAAM;AAEd,UAAI,YAAY,OAAO;AAErB,cAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,cAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAG5D,cAAM,WAAW,IAAI,qBAAqB,CAAC,YAAY;AACrD,kBAAQ,QAAQ,WAAS;AACvB,gBAAI,MAAM,gBAAgB;AAExB,oBAAM,aAAa,MAAM,KAAK,MAAM,EAAE,QAAQ,MAAM,MAAM;AAC1D,kBAAI,eAAe,IAAI;AACrB,8BAAc,QAAQ;AAAA,cAClC;AAAA,YACA;AAAA,UACO,CAAA;AAAA,QACP,GAAO;AAAA,UACD,MAAM;AAAA,UACN,WAAW;AAAA;AAAA,QACZ,CAAA;AAGD,eAAO,QAAQ,WAAS;AACtB,mBAAS,QAAQ,KAAK;AAAA,QACvB,CAAA;AAGD,kBAAU,iBAAiB,WAAW,MAAM;AAC1C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UAC5C;AAAA,QACK,CAAA;AAED,kBAAU,iBAAiB,YAAY,MAAM;AAC3C,wBAAa;AAAA,QACd,CAAA;AAGD,kBAAU,iBAAiB,aAAa,MAAM;AAC5C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UAC5C;AAAA,QACK,CAAA;AAED,kBAAU,iBAAiB,cAAc,MAAM;AAC7C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UAC5C;AAAA,QACK,CAAA;AAGD,kBAAU,iBAAiB,WAAW,MAAM;AAC1C,wBAAa;AAAA,QACd,CAAA;AAED,kBAAU,iBAAiB,YAAY,MAAM;AAC3C,wBAAa;AAAA,QACd,CAAA;AAGD,sBAAa;AAGb,oBAAY,MAAM,YAAY;AAAA,MAClC;AAAA,IACA,CAAC;AAED,oBAAgB,MAAM;AAEpB,UAAI,YAAY,OAAO;AAErB,YAAI,YAAY,MAAM,WAAW;AAC/B,sBAAY,MAAM,UAAU,WAAU;AAAA,QAC5C;AAGI,cAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAI,WAAW;AACb,oBAAU,oBAAoB,WAAW,MAAM;AAAA,UAAE,CAAA;AACjD,oBAAU,oBAAoB,YAAY,MAAM;AAAA,UAAE,CAAA;AAClD,oBAAU,oBAAoB,aAAa,MAAM;AAAA,UAAE,CAAA;AACnD,oBAAU,oBAAoB,cAAc,MAAM;AAAA,UAAE,CAAA;AACpD,oBAAU,oBAAoB,WAAW,MAAM;AAAA,UAAE,CAAA;AACjD,oBAAU,oBAAoB,YAAY,MAAM;AAAA,UAAE,CAAA;AAAA,QACxD;AAAA,MACA;AAGE,UAAI,iBAAiB,OAAO;AAC1B,sBAAc,iBAAiB,KAAK;AAAA,MACxC;AAEE,UAAI,cAAc,OAAO;AACvB,qBAAa,cAAc,KAAK;AAAA,MACpC;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Slider.vue.js","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":[],"mappings":"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"}
@@ -17,8 +17,11 @@ const SignIn = require("./views/components/pages/SignIn.vue.cjs");
17
17
  const SignUp = require("./views/components/pages/SignUp.vue.cjs");
18
18
  const FeaturedUsers = require("./views/components/sections/FeaturedUsers.vue.cjs");
19
19
  const SliderFeatures = require("./views/components/sections/SliderFeatures.vue.cjs");
20
+ const globals_i18n = require("../globals/views/classes/globals.i18n.cjs");
21
+ const index = require("./locales/index.cjs");
20
22
  function initializeAuth(app, store, router, options = {}) {
21
23
  const route = options.route || "Home";
24
+ globals_i18n.i18nManager.register("auth", index.default);
22
25
  router.addRoute(route, auth.default);
23
26
  router.addRoute(route, users.default);
24
27
  store.addStore("auth", auth$1);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.client.cjs","sources":["../../../../../src/modules/auth/auth.client.js"],"sourcesContent":["// Store\nimport * as storeAuth from './views/store/auth.js';\nimport * as storeTwofa from './views/store/twofa.js';\nimport * as storeUsers from './views/store/users.js';\n\n// Router\nimport routerAuth from './views/router/auth.js';\nimport routerUsers from './views/router/users.js';\n\n// Middlewares\nimport * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\n// Views\nimport Auth from './views/components/layouts/Auth.vue';\nimport EnterCode from './views/components/pages/EnterCode.vue';\nimport EnterPassword from './views/components/pages/EnterPassword.vue';\nimport Invite from './views/components/pages/Invite.vue';\nimport Profile from './views/components/pages/Profile.vue';\nimport ProfileEdit from './views/components/pages/ProfileEdit.vue';\nimport ResetPassword from './views/components/pages/ResetPassword.vue';\nimport SignIn from './views/components/pages/SignIn.vue';\nimport SignUp from './views/components/pages/SignUp.vue';\n\n// Importing sections components\nimport FeaturedUsers from './views/components/sections/FeaturedUsers.vue';\nimport SliderFeatures from './views/components/sections/SliderFeatures.vue';\n\n// Пример функции инициализации для модуля аутентификации\nfunction initializeAuth(app, store, router, options = {}) {\n const route = options.route || 'Home';\n\n router.addRoute(route, routerAuth);\n router.addRoute(route, routerUsers);\n\n store.addStore('auth', storeAuth);\n store.addStore('twofa', storeTwofa);\n store.addStore('users', storeUsers);\n\n app.provide('store', store);\n}\n\nconst ModuleAuth = {\n initialize: initializeAuth,\n views: {\n store: {\n storeAuth,\n storeTwofa,\n storeUsers,\n },\n router: {\n routerAuth,\n routerUsers,\n },\n middlewares: {\n validationAuth,\n },\n components: {\n // Layout\n Auth,\n // Pages\n EnterCode,\n Invite,\n EnterPassword,\n ResetPassword,\n SignUp,\n SignIn,\n Profile,\n ProfileEdit,\n // Sections\n SliderFeatures,\n FeaturedUsers,\n },\n },\n};\n\nexport default ModuleAuth;\n"],"names":["routerAuth","routerUsers","storeAuth","storeTwofa","storeUsers","validationAuth","Auth","EnterCode","Invite","EnterPassword","ResetPassword","SignUp","SignIn","Profile","ProfileEdit","SliderFeatures","FeaturedUsers"],"mappings":";;;;;;;;;;;;;;;;;;;AA4BA,SAAS,eAAe,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AACxD,QAAM,QAAQ,QAAQ,SAAS;AAE/B,SAAO,SAAS,OAAOA,YAAU;AACjC,SAAO,SAAS,OAAOC,aAAW;AAElC,QAAM,SAAS,QAAQC,MAAS;AAChC,QAAM,SAAS,SAASC,KAAU;AAClC,QAAM,SAAS,SAASC,OAAU;AAElC,MAAI,QAAQ,SAAS,KAAK;AAC5B;AAEK,MAAC,aAAa;AAAA,EACjB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,WAAMF;AAAAA,MACN,YAAMC;AAAAA,MACN,YAAMC;AAAAA,IACD;AAAA,IACD,QAAQ;AAAA,MACZ,YAAMJ,KAAU;AAAA,MAChB,aAAMC,MAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACjB,gBAAMI;AAAAA,IACD;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,MAAMC,KAAI;AAAA;AAAA,MAEV,WAAMC,UAAS;AAAA,MACf,QAAMC,OAAM;AAAA,MACZ,eAAMC,cAAa;AAAA,MACnB,eAAMC,cAAa;AAAA,MACnB,QAAMC,OAAM;AAAA,MACZ,QAAMC,OAAM;AAAA,MACZ,SAAMC,QAAO;AAAA,MACb,aAAMC,YAAW;AAAA;AAAA,MAEjB,gBAAMC,eAAc;AAAA,MACpB,eAAMC,cAAa;AAAA,IACd;AAAA,EACF;AACH;;"}
1
+ {"version":3,"file":"auth.client.cjs","sources":["../../../../../src/modules/auth/auth.client.js"],"sourcesContent":["// Store\nimport * as storeAuth from './views/store/auth.js';\nimport * as storeTwofa from './views/store/twofa.js';\nimport * as storeUsers from './views/store/users.js';\n\n// Router\nimport routerAuth from './views/router/auth.js';\nimport routerUsers from './views/router/users.js';\n\n// Middlewares\nimport * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\n// Views\nimport Auth from './views/components/layouts/Auth.vue';\nimport EnterCode from './views/components/pages/EnterCode.vue';\nimport EnterPassword from './views/components/pages/EnterPassword.vue';\nimport Invite from './views/components/pages/Invite.vue';\nimport Profile from './views/components/pages/Profile.vue';\nimport ProfileEdit from './views/components/pages/ProfileEdit.vue';\nimport ResetPassword from './views/components/pages/ResetPassword.vue';\nimport SignIn from './views/components/pages/SignIn.vue';\nimport SignUp from './views/components/pages/SignUp.vue';\n\n\n// Importing sections components\nimport FeaturedUsers from './views/components/sections/FeaturedUsers.vue';\nimport SliderFeatures from './views/components/sections/SliderFeatures.vue';\n\nimport { i18nManager } from '@martyrs/src/modules/globals/views/classes/globals.i18n.js';\n\nimport locales from './locales/index.js';\n\n// Пример функции инициализации для модуля аутентификации\nfunction initializeAuth(app, store, router, options = {}) {\n const route = options.route || 'Home';\n\n i18nManager.register('auth', locales);\n\n router.addRoute(route, routerAuth);\n router.addRoute(route, routerUsers);\n\n store.addStore('auth', storeAuth);\n store.addStore('twofa', storeTwofa);\n store.addStore('users', storeUsers);\n\n app.provide('store', store);\n}\n\nconst ModuleAuth = {\n initialize: initializeAuth,\n views: {\n store: {\n storeAuth,\n storeTwofa,\n storeUsers,\n },\n router: {\n routerAuth,\n routerUsers,\n },\n middlewares: {\n validationAuth,\n },\n components: {\n // Layout\n Auth,\n // Pages\n EnterCode,\n Invite,\n EnterPassword,\n ResetPassword,\n SignUp,\n SignIn,\n Profile,\n ProfileEdit,\n // Sections\n SliderFeatures,\n FeaturedUsers,\n },\n },\n};\n\nexport default ModuleAuth;\n"],"names":["i18nManager","locales","routerAuth","routerUsers","storeAuth","storeTwofa","storeUsers","validationAuth","Auth","EnterCode","Invite","EnterPassword","ResetPassword","SignUp","SignIn","Profile","ProfileEdit","SliderFeatures","FeaturedUsers"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiCA,SAAS,eAAe,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AACxD,QAAM,QAAQ,QAAQ,SAAS;AAE/BA,2BAAY,SAAS,QAAQC,aAAO;AAEpC,SAAO,SAAS,OAAOC,YAAU;AACjC,SAAO,SAAS,OAAOC,aAAW;AAElC,QAAM,SAAS,QAAQC,MAAS;AAChC,QAAM,SAAS,SAASC,KAAU;AAClC,QAAM,SAAS,SAASC,OAAU;AAElC,MAAI,QAAQ,SAAS,KAAK;AAC5B;AAEK,MAAC,aAAa;AAAA,EACjB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,WAAMF;AAAAA,MACN,YAAMC;AAAAA,MACN,YAAMC;AAAAA,IACD;AAAA,IACD,QAAQ;AAAA,MACZ,YAAMJ,KAAU;AAAA,MAChB,aAAMC,MAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACjB,gBAAMI;AAAAA,IACD;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,MAAMC,KAAI;AAAA;AAAA,MAEV,WAAMC,UAAS;AAAA,MACf,QAAMC,OAAM;AAAA,MACZ,eAAMC,cAAa;AAAA,MACnB,eAAMC,cAAa;AAAA,MACnB,QAAMC,OAAM;AAAA,MACZ,QAAMC,OAAM;AAAA,MACZ,SAAMC,QAAO;AAAA,MACb,aAAMC,YAAW;AAAA;AAAA,MAEjB,gBAAMC,eAAc;AAAA,MACpB,eAAMC,cAAa;AAAA,IACd;AAAA,EACF;AACH;;"}
@@ -15,8 +15,11 @@ import _sfc_main$4 from "./views/components/pages/SignIn.vue.js";
15
15
  import _sfc_main$5 from "./views/components/pages/SignUp.vue.js";
16
16
  import _sfc_main from "./views/components/sections/FeaturedUsers.vue.js";
17
17
  import _sfc_main$1 from "./views/components/sections/SliderFeatures.vue.js";
18
+ import { i18nManager } from "../globals/views/classes/globals.i18n.js";
19
+ import locales from "./locales/index.js";
18
20
  function initializeAuth(app, store, router, options = {}) {
19
21
  const route = options.route || "Home";
22
+ i18nManager.register("auth", locales);
20
23
  router.addRoute(route, auth$1);
21
24
  router.addRoute(route, users$1);
22
25
  store.addStore("auth", auth);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.client.js","sources":["../../../../../src/modules/auth/auth.client.js"],"sourcesContent":["// Store\nimport * as storeAuth from './views/store/auth.js';\nimport * as storeTwofa from './views/store/twofa.js';\nimport * as storeUsers from './views/store/users.js';\n\n// Router\nimport routerAuth from './views/router/auth.js';\nimport routerUsers from './views/router/users.js';\n\n// Middlewares\nimport * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\n// Views\nimport Auth from './views/components/layouts/Auth.vue';\nimport EnterCode from './views/components/pages/EnterCode.vue';\nimport EnterPassword from './views/components/pages/EnterPassword.vue';\nimport Invite from './views/components/pages/Invite.vue';\nimport Profile from './views/components/pages/Profile.vue';\nimport ProfileEdit from './views/components/pages/ProfileEdit.vue';\nimport ResetPassword from './views/components/pages/ResetPassword.vue';\nimport SignIn from './views/components/pages/SignIn.vue';\nimport SignUp from './views/components/pages/SignUp.vue';\n\n// Importing sections components\nimport FeaturedUsers from './views/components/sections/FeaturedUsers.vue';\nimport SliderFeatures from './views/components/sections/SliderFeatures.vue';\n\n// Пример функции инициализации для модуля аутентификации\nfunction initializeAuth(app, store, router, options = {}) {\n const route = options.route || 'Home';\n\n router.addRoute(route, routerAuth);\n router.addRoute(route, routerUsers);\n\n store.addStore('auth', storeAuth);\n store.addStore('twofa', storeTwofa);\n store.addStore('users', storeUsers);\n\n app.provide('store', store);\n}\n\nconst ModuleAuth = {\n initialize: initializeAuth,\n views: {\n store: {\n storeAuth,\n storeTwofa,\n storeUsers,\n },\n router: {\n routerAuth,\n routerUsers,\n },\n middlewares: {\n validationAuth,\n },\n components: {\n // Layout\n Auth,\n // Pages\n EnterCode,\n Invite,\n EnterPassword,\n ResetPassword,\n SignUp,\n SignIn,\n Profile,\n ProfileEdit,\n // Sections\n SliderFeatures,\n FeaturedUsers,\n },\n },\n};\n\nexport default ModuleAuth;\n"],"names":["routerAuth","routerUsers","storeAuth","storeTwofa","storeUsers","validationAuth","Auth","EnterCode","Invite","EnterPassword","ResetPassword","SignUp","SignIn","Profile","ProfileEdit","SliderFeatures","FeaturedUsers"],"mappings":";;;;;;;;;;;;;;;;;AA4BA,SAAS,eAAe,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AACxD,QAAM,QAAQ,QAAQ,SAAS;AAE/B,SAAO,SAAS,OAAOA,MAAU;AACjC,SAAO,SAAS,OAAOC,OAAW;AAElC,QAAM,SAAS,QAAQC,IAAS;AAChC,QAAM,SAAS,SAASC,KAAU;AAClC,QAAM,SAAS,SAASC,KAAU;AAElC,MAAI,QAAQ,SAAS,KAAK;AAC5B;AAEK,MAAC,aAAa;AAAA,EACjB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,WAAMF;AAAAA,MACN,YAAMC;AAAAA,MACN,YAAMC;AAAAA,IACD;AAAA,IACD,QAAQ;AAAA,MACZ,YAAMJ;AAAAA,MACN,aAAMC;AAAAA,IACD;AAAA,IACD,aAAa;AAAA,MACjB,gBAAMI;AAAAA,IACD;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,MAAMC;AAAAA;AAAAA,MAEN,WAAMC;AAAAA,MACN,QAAMC;AAAAA,MACN,eAAMC;AAAAA,MACN,eAAMC;AAAAA,MACN,QAAMC;AAAAA,MACN,QAAMC;AAAAA,MACN,SAAMC;AAAAA,MACN,aAAMC;AAAAA;AAAAA,MAEN,gBAAMC;AAAAA,MACN,eAAMC;AAAAA,IACD;AAAA,EACF;AACH;"}
1
+ {"version":3,"file":"auth.client.js","sources":["../../../../../src/modules/auth/auth.client.js"],"sourcesContent":["// Store\nimport * as storeAuth from './views/store/auth.js';\nimport * as storeTwofa from './views/store/twofa.js';\nimport * as storeUsers from './views/store/users.js';\n\n// Router\nimport routerAuth from './views/router/auth.js';\nimport routerUsers from './views/router/users.js';\n\n// Middlewares\nimport * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\n// Views\nimport Auth from './views/components/layouts/Auth.vue';\nimport EnterCode from './views/components/pages/EnterCode.vue';\nimport EnterPassword from './views/components/pages/EnterPassword.vue';\nimport Invite from './views/components/pages/Invite.vue';\nimport Profile from './views/components/pages/Profile.vue';\nimport ProfileEdit from './views/components/pages/ProfileEdit.vue';\nimport ResetPassword from './views/components/pages/ResetPassword.vue';\nimport SignIn from './views/components/pages/SignIn.vue';\nimport SignUp from './views/components/pages/SignUp.vue';\n\n\n// Importing sections components\nimport FeaturedUsers from './views/components/sections/FeaturedUsers.vue';\nimport SliderFeatures from './views/components/sections/SliderFeatures.vue';\n\nimport { i18nManager } from '@martyrs/src/modules/globals/views/classes/globals.i18n.js';\n\nimport locales from './locales/index.js';\n\n// Пример функции инициализации для модуля аутентификации\nfunction initializeAuth(app, store, router, options = {}) {\n const route = options.route || 'Home';\n\n i18nManager.register('auth', locales);\n\n router.addRoute(route, routerAuth);\n router.addRoute(route, routerUsers);\n\n store.addStore('auth', storeAuth);\n store.addStore('twofa', storeTwofa);\n store.addStore('users', storeUsers);\n\n app.provide('store', store);\n}\n\nconst ModuleAuth = {\n initialize: initializeAuth,\n views: {\n store: {\n storeAuth,\n storeTwofa,\n storeUsers,\n },\n router: {\n routerAuth,\n routerUsers,\n },\n middlewares: {\n validationAuth,\n },\n components: {\n // Layout\n Auth,\n // Pages\n EnterCode,\n Invite,\n EnterPassword,\n ResetPassword,\n SignUp,\n SignIn,\n Profile,\n ProfileEdit,\n // Sections\n SliderFeatures,\n FeaturedUsers,\n },\n },\n};\n\nexport default ModuleAuth;\n"],"names":["routerAuth","routerUsers","storeAuth","storeTwofa","storeUsers","validationAuth","Auth","EnterCode","Invite","EnterPassword","ResetPassword","SignUp","SignIn","Profile","ProfileEdit","SliderFeatures","FeaturedUsers"],"mappings":";;;;;;;;;;;;;;;;;;;AAiCA,SAAS,eAAe,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AACxD,QAAM,QAAQ,QAAQ,SAAS;AAE/B,cAAY,SAAS,QAAQ,OAAO;AAEpC,SAAO,SAAS,OAAOA,MAAU;AACjC,SAAO,SAAS,OAAOC,OAAW;AAElC,QAAM,SAAS,QAAQC,IAAS;AAChC,QAAM,SAAS,SAASC,KAAU;AAClC,QAAM,SAAS,SAASC,KAAU;AAElC,MAAI,QAAQ,SAAS,KAAK;AAC5B;AAEK,MAAC,aAAa;AAAA,EACjB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,WAAMF;AAAAA,MACN,YAAMC;AAAAA,MACN,YAAMC;AAAAA,IACD;AAAA,IACD,QAAQ;AAAA,MACZ,YAAMJ;AAAAA,MACN,aAAMC;AAAAA,IACD;AAAA,IACD,aAAa;AAAA,MACjB,gBAAMI;AAAAA,IACD;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,MAAMC;AAAAA;AAAAA,MAEN,WAAMC;AAAAA,MACN,QAAMC;AAAAA,MACN,eAAMC;AAAAA,MACN,eAAMC;AAAAA,MACN,QAAMC;AAAAA,MACN,QAAMC;AAAAA,MACN,SAAMC;AAAAA,MACN,aAAMC;AAAAA;AAAAA,MAEN,gBAAMC;AAAAA,MACN,eAAMC;AAAAA,IACD;AAAA,EACF;AACH;"}