@ozdao/martyrs 0.2.482 → 0.2.483

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 (279) hide show
  1. package/dist/{Media-JBERcJWj.js → Media-C57G7rnE.js} +1 -1
  2. package/dist/{Media-p7Q8ZAQM.cjs → Media-DjnpKS62.cjs} +1 -1
  3. package/dist/_virtual/_commonjsHelpers.cjs +2 -0
  4. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -1
  5. package/dist/_virtual/_commonjsHelpers.js +2 -0
  6. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  7. package/dist/_virtual/index2.cjs +8 -0
  8. package/dist/_virtual/index2.cjs.map +1 -0
  9. package/dist/_virtual/index2.js +8 -0
  10. package/dist/_virtual/index2.js.map +1 -0
  11. package/dist/_virtual/index3.cjs +5 -0
  12. package/dist/_virtual/index3.cjs.map +1 -0
  13. package/dist/_virtual/index3.js +5 -0
  14. package/dist/_virtual/index3.js.map +1 -0
  15. package/dist/{main-AtCVQKF9.js → main-CXQqAVVb.js} +2002 -1937
  16. package/dist/main-De5X_RUk.cjs +11 -0
  17. package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
  18. package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
  19. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
  20. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  21. package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
  22. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
  23. package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
  24. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
  25. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +141 -113
  26. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
  27. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +142 -114
  28. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  29. package/dist/martyrs/src/components/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +2 -2
  30. package/dist/martyrs/src/components/Popup/{Popup.vue2.js.map → Popup.vue.cjs.map} +1 -1
  31. package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +2 -2
  32. package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
  33. package/dist/martyrs/src/components/Status/Status.vue.cjs +11 -5
  34. package/dist/martyrs/src/components/Status/Status.vue.cjs.map +1 -1
  35. package/dist/martyrs/src/components/Status/Status.vue.js +13 -7
  36. package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +6 -4
  38. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +6 -4
  40. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
  46. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  50. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  51. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  52. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  53. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  55. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  56. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  58. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  59. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  61. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +17 -39
  62. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  63. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +18 -40
  64. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  65. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +1 -1
  66. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +1 -1
  67. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +1 -1
  68. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +1 -1
  69. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +1 -1
  70. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +1 -1
  71. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +1 -1
  72. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +1 -1
  73. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +1 -1
  74. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +1 -1
  75. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  77. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +3 -3
  78. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
  79. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
  80. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
  81. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  83. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  85. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  87. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  88. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  89. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
  90. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
  91. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  93. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
  95. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  97. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  98. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  99. package/dist/martyrs/src/modules/globals/globals.client.cjs +11 -0
  100. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/globals/globals.client.js +11 -0
  102. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  103. package/dist/martyrs/src/modules/globals/locales/en.cjs +24 -0
  104. package/dist/martyrs/src/modules/globals/locales/en.cjs.map +1 -0
  105. package/dist/martyrs/src/modules/globals/locales/en.js +24 -0
  106. package/dist/martyrs/src/modules/globals/locales/en.js.map +1 -0
  107. package/dist/martyrs/src/modules/globals/locales/ru.cjs +24 -0
  108. package/dist/martyrs/src/modules/globals/locales/ru.cjs.map +1 -0
  109. package/dist/martyrs/src/modules/globals/locales/ru.js +24 -0
  110. package/dist/martyrs/src/modules/globals/locales/ru.js.map +1 -0
  111. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +71 -0
  112. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs.map +1 -0
  113. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +71 -0
  114. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js.map +1 -0
  115. package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
  117. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  119. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +2 -2
  120. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +2 -2
  121. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +2 -2
  122. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
  123. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +51 -45
  124. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  125. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +51 -45
  126. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  127. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  129. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  131. package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
  132. package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
  133. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +52 -58
  134. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +52 -58
  136. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
  139. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
  140. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  141. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  143. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  144. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  145. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  146. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  147. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  149. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  151. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
  152. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  153. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  155. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  156. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  157. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
  159. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  160. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  161. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  162. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  163. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  164. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  165. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  166. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  167. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  169. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +2 -2
  170. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
  171. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  173. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +1 -1
  174. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +1 -1
  175. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  176. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  177. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  178. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  179. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +2 -2
  180. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +2 -2
  181. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  182. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  183. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +3 -3
  184. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  185. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +3 -3
  186. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  187. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  189. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
  190. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
  191. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
  192. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  193. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
  195. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
  197. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
  198. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  199. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  201. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs +2 -1
  202. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs.map +1 -1
  203. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js +2 -1
  204. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js.map +1 -1
  205. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  206. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  207. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  208. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  209. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  211. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
  212. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  213. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  215. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  216. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  217. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  218. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  219. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
  220. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  221. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
  222. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
  223. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.cjs +1 -1
  224. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.js +1 -1
  225. package/dist/martyrs.cjs.js +1 -1
  226. package/dist/martyrs.css +1 -1
  227. package/dist/martyrs.es.js +1 -1
  228. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
  229. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  230. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
  231. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  232. package/dist/node_modules/lodash.merge/index.cjs +689 -0
  233. package/dist/node_modules/lodash.merge/index.cjs.map +1 -0
  234. package/dist/node_modules/lodash.merge/index.js +689 -0
  235. package/dist/node_modules/lodash.merge/index.js.map +1 -0
  236. package/dist/style.css +53 -75
  237. package/package.json +1 -1
  238. package/src/components/FieldPhone/FieldPhone.vue +337 -238
  239. package/src/components/Status/Status.vue +10 -7
  240. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  241. package/src/modules/auth/views/components/sections/SliderFeatures.vue +13 -79
  242. package/src/modules/auth/views/localization/EnterCode.json +2 -2
  243. package/src/modules/auth/views/localization/EnterPassword.json +2 -2
  244. package/src/modules/auth/views/localization/ResetPassword.json +2 -2
  245. package/src/modules/auth/views/localization/SignIn.json +2 -2
  246. package/src/modules/auth/views/localization/SignUp.json +2 -2
  247. package/src/modules/globals/globals.client.js +15 -1
  248. package/src/modules/globals/locales/en.js +21 -0
  249. package/src/modules/globals/locales/index.js +8 -0
  250. package/src/modules/globals/locales/ru.js +21 -0
  251. package/src/modules/globals/views/classes/globals.i18n.js +84 -0
  252. package/src/modules/globals/views/components/layouts/Client.vue +43 -40
  253. package/src/modules/globals/views/components/partials/Footer.vue +162 -162
  254. package/src/modules/globals/views/store/globals.js +0 -40
  255. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +34 -38
  256. package/src/modules/products/components/pages/Product.vue +1 -1
  257. package/src/modules/products/components/sections/ProductsPopular.vue +3 -2
  258. package/src/modules/wallet/views/localization/wallet.json +2 -2
  259. package/dist/main-B-we7C0w.cjs +0 -11
  260. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
  261. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
  262. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
  263. package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
  264. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs +0 -194
  265. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs.map +0 -1
  266. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js +0 -194
  267. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js.map +0 -1
  268. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs +0 -43
  269. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs.map +0 -1
  270. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js +0 -43
  271. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +0 -1
  272. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs +0 -43
  273. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs.map +0 -1
  274. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js +0 -43
  275. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js.map +0 -1
  276. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs +0 -1630
  277. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs.map +0 -1
  278. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js +0 -1630
  279. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FieldPhone.vue.js","sources":["../../../../../src/components/FieldPhone/FieldPhone.vue"],"sourcesContent":["<template>\n <div \n :class=\"[\n rootClass, \n classes,\n $attrs.class, \n { 'bg-fourth-nano': validation }, \n { disabled: disabled }\n ]\" \n :style=\"[\n rootStyle, \n styles\n ]\" \n ref=\"rootElement\"\n class=\"vue3-reactive-tel-input\"\n >\n <div\n v-click-outside=\"clickedOutside\"\n :class=\"['vti__dropdown', { open: open }]\"\n :style=\"[dropdownStyle]\"\n :tabindex=\"dropdownOptions.tabindex\"\n @keydown=\"keyboardNav\"\n @click=\"toggleDropdown\"\n @keydown.esc=\"reset\"\n class=\"br-solid br-black-transp br-1px radius-thin\"\n >\n <span class=\"flex-nowrap flex flex-v-center p-medium vti__selection\">\n <span v-if=\"dropdownOptions.showFlags\" v-html=\"activeCountryFlag\" class=\"mn-r-nano\" />\n <span v-if=\"dropdownOptions.showDialCodeInSelection\" class=\"vti__country-code\">\n +{{ activeCountry && activeCountry.dialCode }}\n </span>\n <!-- <slot name=\"arrow-icon\" :open=\"open\"> -->\n <!-- <span class=\"vti__dropdown-arrow\">{{ open ? \"▲\" : \"▼\" }}</span> -->\n <!-- </slot> -->\n </span>\n <ul \n ref=\"list\" \n class=\"bs-black radius-small vti__dropdown-list\"\n v-show=\"open\" \n :class=\"dropdownOpenDirection\"\n :style=\"[listStyle]\"\n \n >\n <li\n v-for=\"(pb, index) in sortedCountries\"\n class=\"flex-nowrap flex w-max\"\n :class=\"['vti__dropdown-item', getItemClass(index, pb.iso2)]\"\n :key=\"pb.iso2 + (pb.preferred ? '-preferred' : '')\"\n @click=\"choose(pb)\"\n @mousemove=\"selectedIndex = index\"\n >\n <span v-if=\"dropdownOptions.showFlags\" v-html=\"pb.flag\" class=\"mn-r-thin\"/>\n <strong>{{ pb.name }}</strong>\n <span v-if=\"dropdownOptions.showDialCodeInList\"> +{{ pb.dialCode }} </span>\n </li>\n </ul>\n </div>\n <!-- <div :class=\"[divInputClass]\" > -->\n <input\n v-model=\"phone\"\n inputmode=\"numeric\" \n pattern=\"\\d*\"\n ref=\"input\"\n :type=\"inputOptions.type\"\n :autocomplete=\"inputOptions.autocomplete\"\n :autofocus=\"inputOptions.autofocus\"\n :class=\"['vti__input', inputOptions.styleClasses, inputClass, Iclasses]\"\n :style=\"[inputStyle, Istyles]\"\n :disabled=\"disabled\"\n :id=\"inputId !== ''? inputId : inputOptions.id\"\n :maxlength=\"inputOptions.maxlength\"\n :name=\"inputId !== ''? inputId : inputOptions.name\"\n :placeholder=\"parsedPlaceholder\"\n :readonly=\"inputOptions.readonly\"\n :required=\"inputOptions.required\"\n :tabindex=\"inputOptions.tabindex\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput\"\n @keyup.enter=\"onEnter\"\n @keyup.space=\"onSpace\"\n />\n <slot></slot> <!-- slot outlet -->\n <!-- </div> -->\n\n </div>\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n\n<script setup>\n import { ref, reactive, watch, computed, onMounted, nextTick } from 'vue';\n import { parsePhoneNumberFromString } from 'libphonenumber-js';\n\n import clickOutside from './click-outside.js';\n import allCountries from './all-countries.js';\n\n let vClickOutside = clickOutside\n\n const props = defineProps({\n modelValue: { type: String, default: '',},\n badClass: { type: [String, Array, Object], default: '', },\n goodClass: { type: [String, Array, Object], default: '', },\n badStyle: { type: [String, Array, Object], default: '', },\n goodStyle: { type: [String, Array, Object], default: '', },\n badInputClass: { type: [String, Array, Object], default: '', },\n goodInputClass: { type: [String, Array, Object], default: '', },\n badInputStyle: { type: [String, Array, Object], default: '', },\n goodInputStyle: { type: [String, Array, Object], default: '', },\n allCountries: { type: Array, default: () => allCountries, },\n autoFormat: { type: Boolean, default: () => true, },\n validation: { type: [Boolean, Object], default: false, },\n customValidate: { type: [Boolean, RegExp], default: () => false, },\n defaultCountry: { type: String, default: () => '', },\n disabled: { type: Boolean, default: () => false, },\n autoDefaultCountry: { type: Boolean, default: () => true },\n ignoredCountries: { type: Array, default: () => [], },\n invalidMsg: { type: String, default: () => '', },\n mode: { type: String, default: () => 'auto', },\n onlyCountries: { type: Array, default: () => [], },\n preferredCountries: { type: Array, default: () => [], },\n validCharactersOnly: { type: Boolean, default: () => false, },\n rootClass: { type: [String, Array, Object], default: () => '', },\n inputClass: { type: [String, Array, Object], default: () => {return ''}, },\n divInputClass: { type: [String, Array, Object], default: () => {return ''}, },\n rootStyle: { type: [String, Array, Object], default: () => {return ''}, },\n dropdownStyle: { type: [String, Array, Object], default: () => {return ''}, },\n listStyle: { type: [String, Array, Object], default: () => {return ''}, },\n inputStyle: { type: [String, Array, Object], default: () => {return ''}, },\n inputId: { type: [String, Array, Object], default: () => {return ''}, },\n Placeholder: { type: [String, Object, Function], default: () => {return ''}, },\n dropdownOptions: { \n type: Object, \n default: () => {\n return {\n showDialCodeInList: true,\n showDialCodeInSelection: false,\n showFlags: true,\n tabindex: 0\n }\n } \n },\n inputOptions: { \n type: Object, \n default: () => { \n return {\n autocomplete: 'on',\n autofocus: false,\n id: '',\n maxlength: 25,\n name: 'telephone',\n placeholder: 'Enter a phone number',\n readonly: false,\n required: false,\n tabindex: 0,\n type: 'tel',\n styleClasses: ''\n }\n }\n },\n });\n\n const emits = defineEmits([\n 'update:modelValue', \n 'change',\n 'validate', \n 'country-changed', \n 'open', \n 'close', \n 'blur', \n 'focus', \n 'enter', \n 'space'\n ]);\n\n const counter = ref(5);\n const initCounter = ref(5);\n const message = reactive({\n action: null,\n amount: null,\n });\n const phone = ref(props.modelValue ? props.modelValue : '');\n const activeCountryCode = ref('');\n const open = ref(false);\n const finishMounted = ref(false);\n const selectedIndex = ref(null);\n const typeToFindInput = ref('');\n const typeToFindTimer = ref(null);\n const dropdownOpenDirection = ref('below');\n const parsedPlaceholder = ref(props.Placeholder !== '' ? props.Placeholder : props.inputOptions.placeholder);\n\n const rootElement = ref(null)\n const list = ref(null)\n const input = ref(null)\n\n // Lifecycle hooks\n onMounted(async () => {\n if (props.modelValue) {\n phone.value = props.modelValue;\n }\n\n cleanInvalidCharacters();\n\n initializeCountry()\n .then(() => {\n if (!phone.value\n && props.inputOptions?.showDialCode\n && activeCountryCode.value) {\n phone.value = `+${activeCountryCode.value}`;\n }\n emits('validate', phoneObject.value);\n })\n .catch(console.error)\n .then(() => {\n finishMounted.value = true;\n });\n });\n\n // Computed properties\n const activeCountry = computed(() => {\n return findCountry(activeCountryCode.value);\n });\n\n const activeCountryFlag = computed(() => {\n return activeCountry.value ? activeCountry.value.flag : null;\n });\n\n const parsedMode = computed(() => {\n if (props.mode === 'auto') {\n if (!phone.value || phone.value[0] !== '+') {\n return 'national';\n }\n return 'international';\n }\n if (!['international', 'national'].includes(props.mode)) {\n console.error('Invalid value of prop \"mode\"');\n return 'international';\n }\n return props.mode;\n });\n\n const filteredCountries = computed(() => {\n if (props.onlyCountries && props.onlyCountries.length) {\n return props.allCountries.filter(({ iso2 }) => props.onlyCountries.includes(iso2.toUpperCase()));\n }\n\n if (props.ignoredCountries && props.ignoredCountries.length) {\n return props.allCountries.filter(({ iso2 }) =>\n !props.ignoredCountries.includes(iso2.toUpperCase()) && !props.ignoredCountries.includes(iso2.toLowerCase()),\n );\n }\n\n return props.allCountries;\n });\n const sortedCountries = computed(() => {\n const preferredCountries = getCountries(props.preferredCountries)\n .map(country => ({ ...country, preferred: true }));\n\n return [...preferredCountries, ...filteredCountries.value];\n });\n\n const phoneObject = computed(() => {\n let result = {};\n\n if (phone.value?.[0] === '+') {\n result = parsePhoneNumberFromString(phone.value) || {};\n } else {\n result = parsePhoneNumberFromString(phone.value, activeCountryCode.value) || {};\n }\n\n const { metadata, ...phoneDetails } = result;\n\n let valid = result.isValid?.();\n let formatted = phone.value;\n\n if (valid) {\n formatted = result.format?.(parsedMode.value.toUpperCase(), { nationalPrefix: false });\n }\n\n if (result.country && (props.ignoredCountries.length || props.onlyCountries.length)) {\n if (!findCountry(result.country)) {\n valid = false;\n result = { ...result, country: null };\n }\n }\n\n return {\n ...phoneDetails,\n countryCode: result.country,\n valid,\n country: activeCountry.value,\n formatted,\n };\n });\n\n const classes = computed(() => {\n return phoneObject.value.valid === true ? props.goodClass : \n phoneObject.value.valid === false ? props.badClass : undefined;\n });\n\n const styles = computed(() => {\n return phoneObject.value.valid === true ? props.goodStyle : \n phoneObject.value.valid === false ? props.badStyle : undefined;\n });\n\n const Iclasses = computed(() => {\n return phoneObject.value.valid === true ? props.goodInputClass : \n phoneObject.value.valid === false ? props.badInputClass : undefined;\n });\n\n const Istyles = computed(() => {\n return phoneObject.value.valid === true ? props.goodInputStyle : \n phoneObject.value.valid === false ? props.badInputStyle : undefined;\n });\n // ///////////\n // Watchers\n // ///////////\n watch(activeCountry, (newValue, oldValue) => {\n if (!newValue && oldValue?.iso2) {\n activeCountryCode.value = oldValue.iso2;\n return;\n }\n if (newValue?.iso2) {\n emits('country-changed', newValue);\n resetPlaceholder();\n }\n });\n\n // Следим за изменениями countryCode в phoneObject\n watch(() => phoneObject.value.countryCode, (newValue) => {\n activeCountryCode.value = newValue;\n });\n\n // Следим за изменениями валидности phoneObject\n watch(() => phoneObject.value.valid, () => {\n emits('validate', phoneObject.value);\n });\n\n // Следим за изменениями отформатированного номера в phoneObject\n watch(() => phoneObject.value.formatted, (newValue) => {\n if (!props.autoFormat || props.customValidate) {\n return;\n }\n emitInput(newValue);\n\n nextTick(() => {\n if (newValue && !props.modelValue) {\n phone.value = newValue;\n }\n });\n });\n\n // Следим за изменениями placeholder в inputOptions\n watch(() => props.inputOptions.placeholder, () => {\n resetPlaceholder();\n });\n\n // Следим за внешними изменениями значения (например, через v-model)\n watch(() => props.modelValue, (newValue, oldValue) => {\n if (!testCharacters()) {\n nextTick(() => {\n phone.value = oldValue;\n onInput();\n });\n } else {\n phone.value = newValue;\n }\n });\n\n // Следим за состоянием открытия/закрытия dropdown\n watch(open, (isDropdownOpened) => {\n if (isDropdownOpened) {\n setDropdownPosition();\n emits('open');\n } else {\n emits('close');\n }\n });\n\n // Methods\n function getCountry() {\n return fetch('https://ip2c.org/s')\n .then((response) => response.text())\n .then((response) => {\n const result = (response || '').toString();\n\n if (!result || result[0] !== '1') {\n throw new Error('unable to fetch the country');\n }\n\n return result.substr(2, 2);\n });\n }\n \n function setCaretPosition(ctrl, pos) {\n // Modern browsers\n if (ctrl.setSelectionRange) {\n ctrl.focus();\n ctrl.setSelectionRange(pos, pos);\n\n // IE8 and below\n } else if (ctrl.createTextRange) {\n const range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n }\n\n function resetPlaceholder() {\n parsedPlaceholder.value = props.inputOptions.placeholder;\n }\n function initializeCountry() {\n return new Promise((resolve) => {\n if (phone.value?.[0] === '+') { resolve(); return; }\n if (props.defaultCountry) { choose(props.defaultCountry); resolve(); return; }\n const fallbackCountry = props.preferredCountries[0] || filteredCountries.value[0];\n if (props.autoDefaultCountry) {\n getCountry()\n .then((res) => { choose(res || activeCountryCode.value); })\n .catch((error) => { console.warn(error); choose(fallbackCountry); })\n .finally(() => { resolve(); });\n } else {\n choose(fallbackCountry);\n resolve();\n }\n });\n }\n\n function getCountries(list = []) {\n return list.map((countryCode) => findCountry(countryCode)).filter(Boolean);\n }\n\n function findCountry(iso = '') {\n return filteredCountries.value.find((country) => country.iso2 === iso.toUpperCase());\n }\n\n function getItemClass(index, iso2) {\n const highlighted = selectedIndex.value === index;\n const lastPreferred = index === props.preferredCountries.length - 1;\n const preferred = props.preferredCountries.some((c) => c.toUpperCase() === iso2);\n return { highlighted, 'last-preferred': lastPreferred, preferred };\n }\n\n function choose(country) {\n let parsedCountry = typeof country === 'string' ? findCountry(country) : country;\n if (!parsedCountry) return;\n \n if (phone.value?.[0] === '+' && parsedCountry.iso2 && phoneObject.value.nationalNumber) {\n activeCountryCode.value = parsedCountry.iso2;\n phone.value = parsePhoneNumberFromString(phoneObject.value.nationalNumber, parsedCountry.iso2).formatInternational();\n return;\n }\n\n if (props.inputOptions?.showDialCode && parsedCountry) {\n phone.value = `+${parsedCountry.dialCode}`;\n return;\n }\n\n activeCountryCode.value = parsedCountry.iso2;\n emitInput(phone.value);\n }\n\n function cleanInvalidCharacters() {\n const currentPhone = phone.value;\n\n if (props.validCharactersOnly) {\n const results = phone.value.match(/[()\\-+0-9\\s]*/g);\n phone.value = results.join('');\n }\n\n if (props.customValidate && props.customValidate instanceof RegExp) {\n const results = phone.value.match(props.customValidate);\n phone.value = results ? results.join('') : '';\n }\n\n if (currentPhone !== phone.value) {\n emitInput(phone.value);\n }\n }\n\n function testCharacters() {\n if (props.validCharactersOnly) {\n const result = /^[()\\-+0-9\\s]*$/.test(phone.value);\n if (!result) return false;\n }\n if (props.customValidate) {\n return testCustomValidate();\n }\n return true;\n }\n\n function testCustomValidate() {\n return props.customValidate instanceof RegExp ? props.customValidate.test(phone.value) : false;\n }\n\n function onInput() {\n input.value.setCustomValidity(phoneObject.valid ? '' : props.invalidMsg);\n\n emitInput(phone.value);\n }\n\n function emitInput(value) {\n emits('update:modelValue', value);\n\n\n\n if (phoneObject.value.valid) { \n emits('change', phoneObject.value.number);\n emits('country', phoneObject.value.number);\n } else {\n emits('country', null);\n }\n }\n\n function onBlur() {\n emits('blur');\n }\n\n function onFocus() {\n setCaretPosition(input.value, phone.value.length);\n emits('focus');\n }\n\n function onEnter() {\n emits('enter');\n }\n\n function onSpace() {\n emits('space');\n }\n\n function focus() {\n input.value.focus();\n }\n\n function toggleDropdown() {\n if (props.disabled) return;\n open.value = !open.value;\n }\n\n function clickedOutside() {\n open.value = false;\n }\n\n function keyboardNav(e) {\n if (e.keyCode === 40) { // down arrow\n e.preventDefault();\n open.value = true;\n selectedIndex.value = selectedIndex.value === null ? 0 : Math.min(sortedCountries.value.length - 1, selectedIndex.value + 1);\n nextTick(() => {\n const selEle = list.value.children[selectedIndex.value];\n if (selEle.offsetTop + selEle.clientHeight > list.value.scrollTop + list.value.clientHeight) {\n list.value.scrollTop = selEle.offsetTop - list.value.clientHeight + selEle.clientHeight;\n }\n });\n } else if (e.keyCode === 38) { // up arrow\n e.preventDefault();\n open.value = true;\n selectedIndex.value = selectedIndex.value === null ? sortedCountries.value.length - 1 : Math.max(0, selectedIndex.value - 1);\n nextTick(() => {\n const selEle = list.value.children[selectedIndex.value];\n if (selEle.offsetTop < list.value.scrollTop) {\n list.value.scrollTop = selEle.offsetTop;\n }\n });\n } else if (e.keyCode === 13) { // enter key\n e.preventDefault();\n if (selectedIndex.value !== null) {\n choose(sortedCountries.value[selectedIndex.value]);\n }\n open.value = !open.value;\n } else { // typing a country's name\n typeToFindInput.value += e.key;\n clearTimeout(typeToFindTimer);\n typeToFindTimer = setTimeout(() => {\n typeToFindInput.value = '';\n }, 700);\n nextTick(() => {\n const typedCountryI = sortedCountries.value.slice(props.preferredCountries.length).findIndex((c) => c.name.toLowerCase().startsWith(typeToFindInput.value));\n if (typedCountryI >= 0) {\n selectedIndex.value = props.preferredCountries.length + typedCountryI;\n const selEle = list.value.children[selectedIndex.value];\n const needToScroll = selEle.offsetTop < list.value.scrollTop || selEle.offsetTop + selEle.clientHeight > list.value.scrollTop + list.value.clientHeight;\n if (needToScroll) {\n list.value.scrollTop = selEle.offsetTop - list.value.clientHeight / 2;\n }\n }\n });\n }\n }\n\n function reset() {\n selectedIndex.value = sortedCountries.value.map(c => c.iso2).indexOf(activeCountryCode.value);\n open.value = false;\n }\n\n function setDropdownPosition() {\n const spaceBelow = window.innerHeight - rootElement.value.getBoundingClientRect().bottom;\n const hasEnoughSpaceBelow = spaceBelow > 200;\n dropdownOpenDirection.value = hasEnoughSpaceBelow ? 'below' : 'above';\n }\n</script>\n\n<style lang=\"scss\">\n .vue3-reactive-tel-input{\n display:flex\n }\n .vue3-reactive-tel-input.disabled .dropdown,.vue3-reactive-tel-input.disabled .selection,.vue3-reactive-tel-input.disabled input{\n cursor:no-drop\n }\n .vti__dropdown{\n display:flex;\n flex-direction:column;\n align-content:center;\n justify-content:center;\n position:relative;\n padding:0.5rem;\n cursor:pointer\n }\n .vti__dropdown.show{\n max-height:300px;\n overflow:scroll\n }\n .vti__dropdown-list{\n z-index:1;\n padding:0;\n margin:0;\n text-align:left;\n list-style:none;\n max-height:200px;\n overflow-y:scroll;\n position:absolute;\n left:-1px;\n background-color:#fff;\n width:fit-content\n }\n .vti__dropdown-list.below{\n top:33px\n }\n .vti__dropdown-list.above{\n top:auto;\n bottom:100%\n }\n .vti__dropdown-arrow{\n transform:scaleY(.5);\n display:inline-block;\n color:#666\n }\n .vti__dropdown-item{\n cursor:pointer;\n padding:4px 15px\n }\n .vti__dropdown-item.last-preferred{\n border-bottom:1px solid #cacaca\n }\n .vti__dropdown-item .vti__flag{\n display:inline-block;\n margin-right:5px\n }\n .vti__input{\n color: inherit;\n border:none;\n border-radius:0 2px 2px 0;\n width:100%;\n outline:0;\n padding-left:7px\n }\n</style>"],"names":["parsePhoneNumberFromString","list"],"mappings":"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"}
1
+ {"version":3,"file":"FieldPhone.vue.js","sources":["../../../../../src/components/FieldPhone/FieldPhone.vue"],"sourcesContent":["<template>\n <div \n :class=\"[\n rootClass, \n classes,\n $attrs.class, \n { 'bg-fourth-nano': validation }, \n { disabled: disabled }\n ]\" \n :style=\"[rootStyle, styles]\" \n ref=\"rootElement\"\n class=\"vue3-reactive-tel-input\"\n >\n <div\n v-click-outside=\"clickedOutside\"\n :class=\"['vti__dropdown', { open: open }]\"\n :style=\"[dropdownStyle]\"\n :tabindex=\"dropdownOptions.tabindex\"\n @keydown.esc=\"reset\"\n class=\"br-solid br-black-transp br-1px radius-thin\"\n >\n <span class=\"flex-nowrap flex flex-v-center p-medium vti__selection\">\n <span v-if=\"dropdownOptions.showFlags\" v-html=\"activeCountryFlag\" class=\"mn-r-nano\" />\n \n <!-- Новый инпут для ввода кода страны -->\n <input\n v-if=\"dropdownOptions.showDialCodeInSelection\"\n v-model=\"dialCodeInput\"\n @input=\"onDialCodeInput\"\n @focus=\"openDropdown\"\n @blur=\"onDialCodeBlur\"\n @keydown=\"keyboardNav\"\n type=\"text\"\n class=\"vti__country-code-input\"\n :placeholder=\"`+${activeCountry?.dialCode || ''}`\"\n :disabled=\"disabled\"\n :size=\"Math.max((dialCodeInput?.length || 0) + 1, 3)\"\n maxlength=\"5\"\n />\n\n </span>\n \n <ul \n ref=\"list\" \n class=\"bs-black radius-small vti__dropdown-list\"\n v-show=\"open\" \n :class=\"dropdownOpenDirection\"\n :style=\"[listStyle]\"\n >\n <li\n v-for=\"(pb, index) in filteredAndSortedCountries\"\n class=\"flex-nowrap flex w-max\"\n :class=\"['vti__dropdown-item', getItemClass(index, pb.iso2)]\"\n :key=\"pb.iso2 + (pb.preferred ? '-preferred' : '')\"\n @click=\"choose(pb)\"\n @mousemove=\"selectedIndex = index\"\n >\n <span v-if=\"dropdownOptions.showFlags\" v-html=\"pb.flag\" class=\"mn-r-thin\"/>\n <strong>{{ pb.name }}</strong>\n <span v-if=\"dropdownOptions.showDialCodeInList\"> +{{ pb.dialCode }} </span>\n </li>\n </ul>\n </div>\n \n <input\n v-model=\"phone\"\n inputmode=\"numeric\" \n pattern=\"\\d*\"\n ref=\"input\"\n :type=\"inputOptions.type\"\n :autocomplete=\"inputOptions.autocomplete\"\n :autofocus=\"inputOptions.autofocus\"\n :class=\"['vti__input', inputOptions.styleClasses, inputClass, Iclasses]\"\n :style=\"[inputStyle, Istyles]\"\n :disabled=\"disabled\"\n :id=\"inputId !== '' ? inputId : inputOptions.id\"\n :maxlength=\"inputOptions.maxlength\"\n :name=\"inputId !== '' ? inputId : inputOptions.name\"\n :placeholder=\"parsedPlaceholder\"\n :readonly=\"inputOptions.readonly\"\n :required=\"inputOptions.required\"\n :tabindex=\"inputOptions.tabindex\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n @input=\"onInput\"\n @keyup.enter=\"onEnter\"\n @keyup.space=\"onSpace\"\n />\n <slot></slot>\n </div>\n \n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<script setup>\n import { ref, reactive, watch, computed, onMounted, nextTick } from 'vue';\n import { parsePhoneNumberFromString } from 'libphonenumber-js';\n\n import clickOutside from './click-outside.js';\n import allCountries from './all-countries.js';\n\n let vClickOutside = clickOutside\n\n const props = defineProps({\n modelValue: { type: String, default: '' },\n badClass: { type: [String, Array, Object], default: '' },\n goodClass: { type: [String, Array, Object], default: '' },\n badStyle: { type: [String, Array, Object], default: '' },\n goodStyle: { type: [String, Array, Object], default: '' },\n badInputClass: { type: [String, Array, Object], default: '' },\n goodInputClass: { type: [String, Array, Object], default: '' },\n badInputStyle: { type: [String, Array, Object], default: '' },\n goodInputStyle: { type: [String, Array, Object], default: '' },\n allCountries: { type: Array, default: () => allCountries },\n autoFormat: { type: Boolean, default: true },\n validation: { type: [Boolean, Object], default: false },\n customValidate: { type: [Boolean, RegExp], default: false },\n defaultCountry: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n autoDefaultCountry: { type: Boolean, default: true },\n ignoredCountries: { type: Array, default: () => [] },\n invalidMsg: { type: String, default: '' },\n mode: { type: String, default: 'auto' },\n onlyCountries: { type: Array, default: () => [] },\n preferredCountries: { type: Array, default: () => [] },\n validCharactersOnly: { type: Boolean, default: false },\n rootClass: { type: [String, Array, Object], default: '' },\n inputClass: { type: [String, Array, Object], default: '' },\n rootStyle: { type: [String, Array, Object], default: '' },\n dropdownStyle: { type: [String, Array, Object], default: '' },\n listStyle: { type: [String, Array, Object], default: '' },\n inputStyle: { type: [String, Array, Object], default: '' },\n inputId: { type: [String, Array, Object], default: '' },\n Placeholder: { type: [String, Object, Function], default: '' },\n dropdownOptions: { \n type: Object, \n default: () => ({\n showDialCodeInList: true,\n showDialCodeInSelection: false,\n showFlags: true,\n tabindex: 0\n })\n },\n inputOptions: { \n type: Object, \n default: () => ({ \n autocomplete: 'on',\n autofocus: false,\n id: '',\n maxlength: 25,\n name: 'telephone',\n placeholder: 'Enter a phone number',\n readonly: false,\n required: false,\n tabindex: 0,\n type: 'tel',\n styleClasses: ''\n })\n },\n });\n\n const emits = defineEmits([\n 'update:modelValue', \n 'change',\n 'validate', \n 'country-changed', \n 'open', \n 'close', \n 'blur', \n 'focus', \n 'enter', \n 'space'\n ]);\n\n // Reactive data\n const phone = ref(props.modelValue || '');\n const activeCountryCode = ref('');\n const dialCodeInput = ref('');\n const dialCodeFilter = ref('');\n const open = ref(false);\n const finishMounted = ref(false);\n const selectedIndex = ref(null);\n const typeToFindInput = ref('');\n const typeToFindTimer = ref(null);\n const dropdownOpenDirection = ref('below');\n const parsedPlaceholder = ref(props.Placeholder !== '' ? props.Placeholder : props.inputOptions.placeholder);\n\n // Element refs\n const rootElement = ref(null);\n const list = ref(null);\n const input = ref(null);\n\n // Lifecycle hooks\n onMounted(() => {\n if (props.modelValue) {\n phone.value = props.modelValue;\n }\n\n cleanInvalidCharacters();\n\n initializeCountry()\n .then(() => {\n if (!phone.value && props.inputOptions?.showDialCode && activeCountryCode.value) {\n phone.value = `+${activeCountryCode.value}`;\n }\n \n // Инициализируем dialCodeInput\n if (activeCountry.value && props.dropdownOptions.showDialCodeInSelection) {\n dialCodeInput.value = `+${activeCountry.value.dialCode}`;\n }\n \n emits('validate', phoneObject.value);\n })\n .catch(console.error)\n .then(() => {\n finishMounted.value = true;\n });\n });\n\n // Computed properties\n const activeCountry = computed(() => {\n return findCountry(activeCountryCode.value);\n });\n\n const activeCountryFlag = computed(() => {\n return activeCountry.value ? activeCountry.value.flag : null;\n });\n\n const parsedMode = computed(() => {\n if (props.mode === 'auto') {\n if (!phone.value || phone.value[0] !== '+') {\n return 'national';\n }\n return 'international';\n }\n if (!['international', 'national'].includes(props.mode)) {\n console.error('Invalid value of prop \"mode\"');\n return 'international';\n }\n return props.mode;\n });\n\n const filteredCountries = computed(() => {\n let countries = props.allCountries;\n\n // Фильтрация по onlyCountries/ignoredCountries\n if (props.onlyCountries && props.onlyCountries.length) {\n countries = countries.filter(({ iso2 }) => \n props.onlyCountries.includes(iso2.toUpperCase())\n );\n } else if (props.ignoredCountries && props.ignoredCountries.length) {\n countries = countries.filter(({ iso2 }) =>\n !props.ignoredCountries.includes(iso2.toUpperCase()) && \n !props.ignoredCountries.includes(iso2.toLowerCase())\n );\n }\n\n // Фильтрация по введенному коду страны\n if (dialCodeFilter.value) {\n const filterValue = dialCodeFilter.value.replace('+', '');\n countries = countries.filter(country => \n country.dialCode.startsWith(filterValue)\n );\n }\n\n return countries;\n });\n\n const filteredAndSortedCountries = computed(() => {\n const preferredCountries = getCountries(props.preferredCountries)\n .filter(country => {\n if (!dialCodeFilter.value) return true;\n const filterValue = dialCodeFilter.value.replace('+', '');\n return country.dialCode.startsWith(filterValue);\n })\n .map(country => ({ ...country, preferred: true }));\n\n return [...preferredCountries, ...filteredCountries.value];\n });\n\n const phoneObject = computed(() => {\n let result = {};\n\n if (phone.value?.[0] === '+') {\n result = parsePhoneNumberFromString(phone.value) || {};\n } else {\n result = parsePhoneNumberFromString(phone.value, activeCountryCode.value) || {};\n }\n\n const { metadata, ...phoneDetails } = result;\n\n let valid = result.isValid?.();\n let formatted = phone.value;\n\n if (valid) {\n formatted = result.format?.(parsedMode.value.toUpperCase(), { nationalPrefix: false });\n }\n\n if (result.country && (props.ignoredCountries.length || props.onlyCountries.length)) {\n if (!findCountry(result.country)) {\n valid = false;\n result = { ...result, country: null };\n }\n }\n\n return {\n ...phoneDetails,\n countryCode: result.country,\n valid,\n country: activeCountry.value,\n formatted,\n };\n });\n\n const classes = computed(() => {\n return phoneObject.value.valid === true ? props.goodClass : \n phoneObject.value.valid === false ? props.badClass : undefined;\n });\n\n const styles = computed(() => {\n return phoneObject.value.valid === true ? props.goodStyle : \n phoneObject.value.valid === false ? props.badStyle : undefined;\n });\n\n const Iclasses = computed(() => {\n return phoneObject.value.valid === true ? props.goodInputClass : \n phoneObject.value.valid === false ? props.badInputClass : undefined;\n });\n\n const Istyles = computed(() => {\n return phoneObject.value.valid === true ? props.goodInputStyle : \n phoneObject.value.valid === false ? props.badInputStyle : undefined;\n });\n\n // Watchers\n watch(activeCountry, (newValue, oldValue) => {\n if (!newValue && oldValue?.iso2) {\n activeCountryCode.value = oldValue.iso2;\n return;\n }\n if (newValue?.iso2) {\n emits('country-changed', newValue);\n resetPlaceholder();\n // Обновляем dialCodeInput при смене страны\n dialCodeInput.value = `+${newValue.dialCode}`;\n }\n });\n\n watch(() => phoneObject.value.countryCode, (newValue) => {\n activeCountryCode.value = newValue;\n });\n\n watch(() => phoneObject.value.valid, () => {\n emits('validate', phoneObject.value);\n });\n\n watch(() => phoneObject.value.formatted, (newValue) => {\n if (!props.autoFormat || props.customValidate) {\n return;\n }\n emitInput(newValue);\n\n nextTick(() => {\n if (newValue && !props.modelValue) {\n phone.value = newValue;\n }\n });\n });\n\n watch(() => props.inputOptions.placeholder, () => {\n resetPlaceholder();\n });\n\n watch(() => props.modelValue, (newValue, oldValue) => {\n if (!testCharacters()) {\n nextTick(() => {\n phone.value = oldValue;\n onInput();\n });\n } else {\n phone.value = newValue;\n }\n });\n\n watch(open, (isDropdownOpened) => {\n if (isDropdownOpened) {\n setDropdownPosition();\n emits('open');\n } else {\n emits('close');\n }\n });\n\n // Methods\n function onDialCodeInput() {\n // Убеждаемся, что символ + всегда есть в начале\n if (!dialCodeInput.value.startsWith('+')) {\n dialCodeInput.value = '+' + dialCodeInput.value.replace(/^\\+*/, '');\n }\n \n // Разрешаем только + и цифры\n dialCodeInput.value = dialCodeInput.value.replace(/[^\\+\\d]/g, '');\n \n // Убеждаемся что + только в начале\n const plusCount = (dialCodeInput.value.match(/\\+/g) || []).length;\n if (plusCount > 1) {\n dialCodeInput.value = '+' + dialCodeInput.value.replace(/\\+/g, '');\n }\n \n dialCodeFilter.value = dialCodeInput.value;\n open.value = true;\n \n // Автовыбор страны если код точно совпадает\n const exactMatch = filteredCountries.value.find(country => \n `+${country.dialCode}` === dialCodeInput.value\n );\n \n if (exactMatch && filteredAndSortedCountries.value.length === 1) {\n choose(exactMatch);\n }\n }\n\n function onDialCodeBlur() {\n setTimeout(() => {\n if (!dialCodeInput.value && activeCountry.value) {\n dialCodeInput.value = `+${activeCountry.value.dialCode}`;\n }\n }, 200);\n }\n\n function openDropdown() {\n if (!props.disabled) {\n open.value = true;\n }\n }\n\n function setCaretPosition(ctrl, pos) {\n if (ctrl.setSelectionRange) {\n ctrl.focus();\n ctrl.setSelectionRange(pos, pos);\n } else if (ctrl.createTextRange) {\n const range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n }\n\n function resetPlaceholder() {\n parsedPlaceholder.value = props.inputOptions.placeholder;\n }\n\n function initializeCountry() {\n return new Promise((resolve) => {\n if (phone.value?.[0] === '+') { \n resolve(); \n return; \n }\n \n if (props.defaultCountry) { \n choose(props.defaultCountry); \n resolve(); \n return; \n }\n \n const fallbackCountry = props.preferredCountries[0] || filteredCountries.value[0];\n \n if (props.autoDefaultCountry) {\n fetch('https://ip2c.org/s')\n .then((response) => response.text())\n .then((response) => {\n const result = (response || '').toString();\n if (!result || result[0] !== '1') {\n throw new Error('unable to fetch the country');\n }\n return result.substr(2, 2);\n })\n .then((res) => { \n choose(res || activeCountryCode.value); \n })\n .catch((error) => { \n console.warn(error); \n choose(fallbackCountry); \n })\n .finally(() => { \n resolve(); \n });\n } else {\n choose(fallbackCountry);\n resolve();\n }\n });\n }\n\n function getCountries(list = []) {\n return list.map((countryCode) => findCountry(countryCode)).filter(Boolean);\n }\n\n function findCountry(iso = '') {\n return filteredCountries.value.find((country) => country.iso2 === iso.toUpperCase());\n }\n\n function getItemClass(index, iso2) {\n const highlighted = selectedIndex.value === index;\n const lastPreferred = index === props.preferredCountries.length - 1;\n const preferred = props.preferredCountries.some((c) => c.toUpperCase() === iso2);\n return { highlighted, 'last-preferred': lastPreferred, preferred };\n }\n\n function choose(country) {\n let parsedCountry = typeof country === 'string' ? findCountry(country) : country;\n if (!parsedCountry) return;\n \n if (phone.value?.[0] === '+' && parsedCountry.iso2 && phoneObject.value.nationalNumber) {\n activeCountryCode.value = parsedCountry.iso2;\n phone.value = parsePhoneNumberFromString(\n phoneObject.value.nationalNumber, \n parsedCountry.iso2\n ).formatInternational();\n } else {\n activeCountryCode.value = parsedCountry.iso2;\n }\n\n dialCodeInput.value = `+${parsedCountry.dialCode}`;\n dialCodeFilter.value = '';\n \n // Закрываем дропдаун\n open.value = false;\n \n // Переводим фокус на основной инпут\n nextTick(() => {\n if (input.value) {\n input.value.focus();\n }\n });\n \n emitInput(phone.value);\n }\n\n function cleanInvalidCharacters() {\n const currentPhone = phone.value;\n\n if (props.validCharactersOnly) {\n const results = phone.value.match(/[()\\-+0-9\\s]*/g);\n phone.value = results.join('');\n }\n\n if (props.customValidate && props.customValidate instanceof RegExp) {\n const results = phone.value.match(props.customValidate);\n phone.value = results ? results.join('') : '';\n }\n\n if (currentPhone !== phone.value) {\n emitInput(phone.value);\n }\n }\n\n function testCharacters() {\n if (props.validCharactersOnly) {\n const result = /^[()\\-+0-9\\s]*$/.test(phone.value);\n if (!result) return false;\n }\n if (props.customValidate) {\n return testCustomValidate();\n }\n return true;\n }\n\n function testCustomValidate() {\n return props.customValidate instanceof RegExp ? props.customValidate.test(phone.value) : false;\n }\n\n function onInput() {\n input.value.setCustomValidity(phoneObject.valid ? '' : props.invalidMsg);\n emitInput(phone.value);\n }\n\n function emitInput(value) {\n emits('update:modelValue', value);\n\n if (phoneObject.value.valid) { \n emits('change', phoneObject.value.number);\n emits('country', phoneObject.value.number);\n } else {\n emits('country', null);\n }\n }\n\n function onBlur() {\n emits('blur');\n }\n\n function onFocus() {\n setCaretPosition(input.value, phone.value.length);\n emits('focus');\n }\n\n function onEnter() {\n emits('enter');\n }\n\n function onSpace() {\n emits('space');\n }\n\n function focus() {\n input.value.focus();\n }\n\n function toggleDropdown() {\n if (props.disabled) return;\n open.value = !open.value;\n }\n\n function clickedOutside() {\n open.value = false;\n dialCodeFilter.value = '';\n }\n\n function keyboardNav(e) {\n if (e.keyCode === 40) { // down arrow\n e.preventDefault();\n open.value = true;\n selectedIndex.value = selectedIndex.value === null ? 0 : \n Math.min(filteredAndSortedCountries.value.length - 1, selectedIndex.value + 1);\n nextTick(() => {\n const selEle = list.value.children[selectedIndex.value];\n if (selEle.offsetTop + selEle.clientHeight > list.value.scrollTop + list.value.clientHeight) {\n list.value.scrollTop = selEle.offsetTop - list.value.clientHeight + selEle.clientHeight;\n }\n });\n } else if (e.keyCode === 38) { // up arrow\n e.preventDefault();\n open.value = true;\n selectedIndex.value = selectedIndex.value === null ? \n filteredAndSortedCountries.value.length - 1 : Math.max(0, selectedIndex.value - 1);\n nextTick(() => {\n const selEle = list.value.children[selectedIndex.value];\n if (selEle.offsetTop < list.value.scrollTop) {\n list.value.scrollTop = selEle.offsetTop;\n }\n });\n } else if (e.keyCode === 13) { // enter key\n e.preventDefault();\n if (selectedIndex.value !== null) {\n choose(filteredAndSortedCountries.value[selectedIndex.value]);\n }\n } else { \n // Поиск по названию страны\n if (e.target.classList.contains('vti__country-code-input')) return;\n \n typeToFindInput.value += e.key;\n clearTimeout(typeToFindTimer);\n typeToFindTimer = setTimeout(() => {\n typeToFindInput.value = '';\n }, 700);\n \n nextTick(() => {\n const typedCountryI = filteredAndSortedCountries.value\n .slice(props.preferredCountries.length)\n .findIndex((c) => c.name.toLowerCase().startsWith(typeToFindInput.value));\n if (typedCountryI >= 0) {\n selectedIndex.value = props.preferredCountries.length + typedCountryI;\n const selEle = list.value.children[selectedIndex.value];\n const needToScroll = selEle.offsetTop < list.value.scrollTop || \n selEle.offsetTop + selEle.clientHeight > list.value.scrollTop + list.value.clientHeight;\n if (needToScroll) {\n list.value.scrollTop = selEle.offsetTop - list.value.clientHeight / 2;\n }\n }\n });\n }\n }\n\n function reset() {\n selectedIndex.value = filteredAndSortedCountries.value\n .map(c => c.iso2).indexOf(activeCountryCode.value);\n open.value = false;\n }\n\n function setDropdownPosition() {\n const spaceBelow = window.innerHeight - rootElement.value.getBoundingClientRect().bottom;\n const hasEnoughSpaceBelow = spaceBelow > 200;\n dropdownOpenDirection.value = hasEnoughSpaceBelow ? 'below' : 'above';\n }\n</script>\n\n<style lang=\"scss\">\n.vue3-reactive-tel-input {\n display: flex;\n}\n\n.vue3-reactive-tel-input.disabled .dropdown,\n.vue3-reactive-tel-input.disabled .selection,\n.vue3-reactive-tel-input.disabled input {\n cursor: no-drop;\n}\n\n.vti__dropdown {\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: center;\n position: relative;\n padding: 0.5rem;\n cursor: pointer;\n}\n\n.vti__dropdown.show {\n max-height: 300px;\n overflow: scroll;\n}\n\n.vti__dropdown-list {\n z-index: 1;\n padding: 0;\n margin: 0;\n text-align: left;\n list-style: none;\n max-height: 200px;\n overflow-y: scroll;\n position: absolute;\n left: -1px;\n background-color: #fff;\n width: fit-content;\n}\n\n.vti__dropdown-list.below {\n top: 33px;\n}\n\n.vti__dropdown-list.above {\n top: auto;\n bottom: 100%;\n}\n\n.vti__dropdown-item {\n cursor: pointer;\n padding: 4px 15px;\n}\n\n.vti__dropdown-item.highlighted {\n background-color: #f0f0f0;\n}\n\n.vti__dropdown-item.last-preferred {\n border-bottom: 1px solid #cacaca;\n}\n\n.vti__input {\n color: inherit;\n border: none;\n border-radius: 0 2px 2px 0;\n width: 100%;\n outline: 0;\n padding-left: 7px;\n}\n\n.vti__country-code-input {\n max-width: 70px;\n border: none;\n outline: none;\n background: transparent;\n font-size: inherit;\n color: inherit;\n text-align: center;\n}\n</style>"],"names":["parsePhoneNumberFromString","list"],"mappings":"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"}
@@ -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.vue2.cjs.map
104
+ //# sourceMappingURL=Popup.vue.cjs.map
@@ -1 +1 @@
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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,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.vue2.js.map
104
+ //# sourceMappingURL=Popup.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup.vue.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
+ const vueI18n = require("vue-i18n");
5
+ const IconInfo = require("../../modules/icons/navigation/IconInfo.vue.cjs");
4
6
  const IconCross = require("../../modules/icons/navigation/IconCross.vue.cjs");
5
7
  ;/* empty css */
6
8
  const _hoisted_1 = { class: "pd-small error-wrapper" };
7
- const _hoisted_2 = { class: "flex-nowrap flex radius-small pd-small t-white bg-fourth" };
9
+ const _hoisted_2 = { class: "flex-nowrap flex-v-center flex radius-small pd-small t-white bg-fourth" };
8
10
  const _hoisted_3 = { class: "w-100" };
9
11
  const _sfc_main = {
10
12
  __name: "Status",
@@ -16,6 +18,9 @@ const _sfc_main = {
16
18
  },
17
19
  emits: "close",
18
20
  setup(__props, { emit: __emit }) {
21
+ const { t, te } = vueI18n.useI18n({
22
+ useScope: "global"
23
+ });
19
24
  const emits = __emit;
20
25
  function closeError() {
21
26
  emits("close");
@@ -23,10 +28,11 @@ const _sfc_main = {
23
28
  return (_ctx, _cache) => {
24
29
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
25
30
  vue.createElementVNode("div", _hoisted_2, [
26
- vue.createElementVNode("p", _hoisted_3, [
27
- vue.createTextVNode(vue.toDisplayString(__props.data.message) + " ", 1),
28
- _cache[1] || (_cache[1] = vue.createElementVNode("br", null, null, -1))
29
- ]),
31
+ vue.createVNode(IconInfo.default, {
32
+ fill: "rgb(var(--white))",
33
+ class: "t-transp i-medium mn-r-thin z-index-5"
34
+ }),
35
+ vue.createElementVNode("p", _hoisted_3, vue.toDisplayString(vue.unref(te)(`globals.errors.${__props.data.message}`) ? vue.unref(t)(`globals.errors.${__props.data.message}`) : __props.data.message), 1),
30
36
  vue.createVNode(IconCross.default, {
31
37
  onClick: _cache[0] || (_cache[0] = ($event) => closeError()),
32
38
  class: "cursor-pointer hover-scale-1 i-regular z-index-5"
@@ -1 +1 @@
1
- {"version":3,"file":"Status.vue.cjs","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{data.message}}\n\t\t\t\t<!-- <span class=\"t-semi\">Ошибка: {{status}} </span> -->\n\t\t\t\t<br>\n\t\t\t\t<!-- <span>Сообщение: {{message}}</span> -->\n\t\t\t</p>\n\t\t\t\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst emits = defineEmits('close')\n\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA0BC,UAAM,QAAQ;AASd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Status.vue.cjs","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex-v-center flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<IconInfo fill=\"rgb(var(--white))\" class=\"t-transp i-medium mn-r-thin z-index-5\"/>\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{te(`globals.errors.${data.message}`) ? t(`globals.errors.${data.message}`) : data.message}}\n\t\t\t</p>\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport { useI18n } from 'vue-i18n'\n\n\timport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue';\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst { t, te } = useI18n({\n\t\tuseScope: 'global',\n\t})\n\n\tconst emits = defineEmits('close')\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":["useI18n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA0BC,UAAM,EAAE,GAAG,GAAI,IAAGA,gBAAQ;AAAA,MACzB,UAAU;AAAA,IACV,CAAA;AAED,UAAM,QAAQ;AAQd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,10 @@
1
- import { createElementBlock, openBlock, createElementVNode, createVNode, createTextVNode, toDisplayString } from "vue";
2
- import _sfc_main$1 from "../../modules/icons/navigation/IconCross.vue.js";
1
+ import { createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref } from "vue";
2
+ import { useI18n } from "vue-i18n";
3
+ import _sfc_main$1 from "../../modules/icons/navigation/IconInfo.vue.js";
4
+ import _sfc_main$2 from "../../modules/icons/navigation/IconCross.vue.js";
3
5
  /* empty css */
4
6
  const _hoisted_1 = { class: "pd-small error-wrapper" };
5
- const _hoisted_2 = { class: "flex-nowrap flex radius-small pd-small t-white bg-fourth" };
7
+ const _hoisted_2 = { class: "flex-nowrap flex-v-center flex radius-small pd-small t-white bg-fourth" };
6
8
  const _hoisted_3 = { class: "w-100" };
7
9
  const _sfc_main = {
8
10
  __name: "Status",
@@ -14,6 +16,9 @@ const _sfc_main = {
14
16
  },
15
17
  emits: "close",
16
18
  setup(__props, { emit: __emit }) {
19
+ const { t, te } = useI18n({
20
+ useScope: "global"
21
+ });
17
22
  const emits = __emit;
18
23
  function closeError() {
19
24
  emits("close");
@@ -21,11 +26,12 @@ const _sfc_main = {
21
26
  return (_ctx, _cache) => {
22
27
  return openBlock(), createElementBlock("div", _hoisted_1, [
23
28
  createElementVNode("div", _hoisted_2, [
24
- createElementVNode("p", _hoisted_3, [
25
- createTextVNode(toDisplayString(__props.data.message) + " ", 1),
26
- _cache[1] || (_cache[1] = createElementVNode("br", null, null, -1))
27
- ]),
28
29
  createVNode(_sfc_main$1, {
30
+ fill: "rgb(var(--white))",
31
+ class: "t-transp i-medium mn-r-thin z-index-5"
32
+ }),
33
+ createElementVNode("p", _hoisted_3, toDisplayString(unref(te)(`globals.errors.${__props.data.message}`) ? unref(t)(`globals.errors.${__props.data.message}`) : __props.data.message), 1),
34
+ createVNode(_sfc_main$2, {
29
35
  onClick: _cache[0] || (_cache[0] = ($event) => closeError()),
30
36
  class: "cursor-pointer hover-scale-1 i-regular z-index-5"
31
37
  })
@@ -1 +1 @@
1
- {"version":3,"file":"Status.vue.js","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{data.message}}\n\t\t\t\t<!-- <span class=\"t-semi\">Ошибка: {{status}} </span> -->\n\t\t\t\t<br>\n\t\t\t\t<!-- <span>Сообщение: {{message}}</span> -->\n\t\t\t</p>\n\t\t\t\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst emits = defineEmits('close')\n\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA0BC,UAAM,QAAQ;AASd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Status.vue.js","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex-v-center flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<IconInfo fill=\"rgb(var(--white))\" class=\"t-transp i-medium mn-r-thin z-index-5\"/>\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{te(`globals.errors.${data.message}`) ? t(`globals.errors.${data.message}`) : data.message}}\n\t\t\t</p>\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport { useI18n } from 'vue-i18n'\n\n\timport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue';\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst { t, te } = useI18n({\n\t\tuseScope: 'global',\n\t})\n\n\tconst emits = defineEmits('close')\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA0BC,UAAM,EAAE,GAAG,GAAI,IAAG,QAAQ;AAAA,MACzB,UAAU;AAAA,IACV,CAAA;AAED,UAAM,QAAQ;AAQd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;;"}
@@ -3,12 +3,12 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
5
  ;/* empty css */
6
- ;/* empty css */
7
- require("vue-i18n");
8
- ;/* empty css */
6
+ ;/* empty css */
7
+ const SliderFeatures = require("../sections/SliderFeatures.vue.cjs");
9
8
  const vueRouter = require("vue-router");
10
9
  require("../../store/auth.cjs");
11
10
  const _hoisted_1 = { class: "cols-2-1_2 gap-small pd-small" };
11
+ const _hoisted_2 = { class: "w-100 desktop-only o-hidden radius-big bg-grad-main" };
12
12
  const _sfc_main = {
13
13
  __name: "Auth",
14
14
  setup(__props) {
@@ -39,7 +39,9 @@ const _sfc_main = {
39
39
  ]),
40
40
  _: 1
41
41
  }),
42
- _cache[0] || (_cache[0] = vue.createElementVNode("section", { class: "w-100 desktop-only o-hidden radius-big bg-grad-main" }, null, -1))
42
+ vue.createElementVNode("section", _hoisted_2, [
43
+ vue.createVNode(SliderFeatures.default)
44
+ ])
43
45
  ]);
44
46
  };
45
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.vue.cjs","sources":["../../../../../../../../src/modules/auth/views/components/layouts/Auth.vue"],"sourcesContent":["<template>\n <div \n \tclass=\"cols-2-1_2 gap-small pd-small\"\n >\n\n <router-view\n \tclass=\"pd-big mobile:pd-medium w-m-66r t-center\" \n \tv-slot=\"{ Component, route }\"\n >\n <transition \n \tname=\"scaleIn\" mode=\"out-in\"\n >\n <component \n \tref=\"page\" \n \t:key=\"route.path\" \n \t:localPosition=\"localPosition\" \n \t:is=\"Component\" \n />\n </transition>\n </router-view>\n\n <section class=\"w-100 desktop-only o-hidden radius-big bg-grad-main\">\n <!-- <SliderFeatures/> --> \n </section>\n </div>\n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import blocks\nimport SliderFeatures from '@martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue'\n// Import libs\nimport { computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n// Import state\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Accessing state\nconst tabAuth = ref('email')\n// Methods\nasync function onSubmit() {\n try {\n await inputsValidation.validateInputs(\n emailValidation,\n inputsValidation.validateEmail,\n auth.state.user.email,\n 'Некорректный email'\n )\n await inputsValidation.validateInputs(\n passswordValidation,\n inputsValidation.validatePassword,\n auth.state.user.password,\n 'Некорректный пароль'\n )\n } catch (error) {\n throw new Error\n }\n await auth.actions.login(auth.state.user, tabAuth.value)\n}\n\nfunction redirectTo() {\n router.push({ name: 'Account' })\n}\n</script>"],"names":["ref","useRoute","useRouter"],"mappings":";;;;;;;;;;;;;;AA0CwBA,QAAAA,IAAI,IAAI;AACJA,QAAAA,IAAI,IAAI;AACZA,QAAAA,IAAI,IAAI;AAElBC,cAAQ,SAAA;AACPC,cAAS,UAAA;AAERF,QAAAA,IAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Auth.vue.cjs","sources":["../../../../../../../../src/modules/auth/views/components/layouts/Auth.vue"],"sourcesContent":["<template>\n <div \n \tclass=\"cols-2-1_2 gap-small pd-small\"\n >\n\n <router-view\n \tclass=\"pd-big mobile:pd-medium w-m-66r t-center\" \n \tv-slot=\"{ Component, route }\"\n >\n <transition \n \tname=\"scaleIn\" mode=\"out-in\"\n >\n <component \n \tref=\"page\" \n \t:key=\"route.path\" \n \t:localPosition=\"localPosition\" \n \t:is=\"Component\" \n />\n </transition>\n </router-view>\n\n <section class=\"w-100 desktop-only o-hidden radius-big bg-grad-main\">\n <SliderFeatures/> \n </section>\n </div>\n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import blocks\nimport SliderFeatures from '@martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue'\n// Import libs\nimport { computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n// Import state\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Accessing state\nconst tabAuth = ref('email')\n// Methods\nasync function onSubmit() {\n try {\n await inputsValidation.validateInputs(\n emailValidation,\n inputsValidation.validateEmail,\n auth.state.user.email,\n 'Некорректный email'\n )\n await inputsValidation.validateInputs(\n passswordValidation,\n inputsValidation.validatePassword,\n auth.state.user.password,\n 'Некорректный пароль'\n )\n } catch (error) {\n throw new Error\n }\n await auth.actions.login(auth.state.user, tabAuth.value)\n}\n\nfunction redirectTo() {\n router.push({ name: 'Account' })\n}\n</script>"],"names":["ref","useRoute","useRouter"],"mappings":";;;;;;;;;;;;;;AA0CwBA,QAAAA,IAAI,IAAI;AACJA,QAAAA,IAAI,IAAI;AACZA,QAAAA,IAAI,IAAI;AAElBC,cAAQ,SAAA;AACPC,cAAS,UAAA;AAERF,QAAAA,IAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,12 +1,12 @@
1
1
  import { ref, resolveComponent, createElementBlock, openBlock, createVNode, createElementVNode, withCtx, Transition, createBlock, resolveDynamicComponent } from "vue";
2
2
  /* empty css */
3
3
  /* empty css */
4
- /* empty css */
5
- import "vue-i18n";
6
- /* empty css */
4
+ /* empty css */
5
+ import _sfc_main$1 from "../sections/SliderFeatures.vue.js";
7
6
  import { useRoute, useRouter } from "vue-router";
8
7
  import "../../store/auth.js";
9
8
  const _hoisted_1 = { class: "cols-2-1_2 gap-small pd-small" };
9
+ const _hoisted_2 = { class: "w-100 desktop-only o-hidden radius-big bg-grad-main" };
10
10
  const _sfc_main = {
11
11
  __name: "Auth",
12
12
  setup(__props) {
@@ -37,7 +37,9 @@ const _sfc_main = {
37
37
  ]),
38
38
  _: 1
39
39
  }),
40
- _cache[0] || (_cache[0] = createElementVNode("section", { class: "w-100 desktop-only o-hidden radius-big bg-grad-main" }, null, -1))
40
+ createElementVNode("section", _hoisted_2, [
41
+ createVNode(_sfc_main$1)
42
+ ])
41
43
  ]);
42
44
  };
43
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/layouts/Auth.vue"],"sourcesContent":["<template>\n <div \n \tclass=\"cols-2-1_2 gap-small pd-small\"\n >\n\n <router-view\n \tclass=\"pd-big mobile:pd-medium w-m-66r t-center\" \n \tv-slot=\"{ Component, route }\"\n >\n <transition \n \tname=\"scaleIn\" mode=\"out-in\"\n >\n <component \n \tref=\"page\" \n \t:key=\"route.path\" \n \t:localPosition=\"localPosition\" \n \t:is=\"Component\" \n />\n </transition>\n </router-view>\n\n <section class=\"w-100 desktop-only o-hidden radius-big bg-grad-main\">\n <!-- <SliderFeatures/> --> \n </section>\n </div>\n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import blocks\nimport SliderFeatures from '@martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue'\n// Import libs\nimport { computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n// Import state\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Accessing state\nconst tabAuth = ref('email')\n// Methods\nasync function onSubmit() {\n try {\n await inputsValidation.validateInputs(\n emailValidation,\n inputsValidation.validateEmail,\n auth.state.user.email,\n 'Некорректный email'\n )\n await inputsValidation.validateInputs(\n passswordValidation,\n inputsValidation.validatePassword,\n auth.state.user.password,\n 'Некорректный пароль'\n )\n } catch (error) {\n throw new Error\n }\n await auth.actions.login(auth.state.user, tabAuth.value)\n}\n\nfunction redirectTo() {\n router.push({ name: 'Account' })\n}\n</script>"],"names":[],"mappings":";;;;;;;;;;;;AA0CwB,QAAI,IAAI;AACJ,QAAI,IAAI;AACZ,QAAI,IAAI;AAElB,aAAQ;AACP,cAAS;AAER,QAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Auth.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/layouts/Auth.vue"],"sourcesContent":["<template>\n <div \n \tclass=\"cols-2-1_2 gap-small pd-small\"\n >\n\n <router-view\n \tclass=\"pd-big mobile:pd-medium w-m-66r t-center\" \n \tv-slot=\"{ Component, route }\"\n >\n <transition \n \tname=\"scaleIn\" mode=\"out-in\"\n >\n <component \n \tref=\"page\" \n \t:key=\"route.path\" \n \t:localPosition=\"localPosition\" \n \t:is=\"Component\" \n />\n </transition>\n </router-view>\n\n <section class=\"w-100 desktop-only o-hidden radius-big bg-grad-main\">\n <SliderFeatures/> \n </section>\n </div>\n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import blocks\nimport SliderFeatures from '@martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue'\n// Import libs\nimport { computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n// Import state\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Accessing state\nconst tabAuth = ref('email')\n// Methods\nasync function onSubmit() {\n try {\n await inputsValidation.validateInputs(\n emailValidation,\n inputsValidation.validateEmail,\n auth.state.user.email,\n 'Некорректный email'\n )\n await inputsValidation.validateInputs(\n passswordValidation,\n inputsValidation.validatePassword,\n auth.state.user.password,\n 'Некорректный пароль'\n )\n } catch (error) {\n throw new Error\n }\n await auth.actions.login(auth.state.user, tabAuth.value)\n}\n\nfunction redirectTo() {\n router.push({ name: 'Account' })\n}\n</script>"],"names":[],"mappings":";;;;;;;;;;;;AA0CwB,QAAI,IAAI;AACJ,QAAI,IAAI;AACZ,QAAI,IAAI;AAElB,aAAQ;AACP,cAAS;AAER,QAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
5
  const Field = require("../../../../../components/Field/Field.vue.cjs");
6
- const Button = require("../../../../../components/Button/Button.vue2.cjs");
6
+ const Button = require("../../../../../components/Button/Button.vue.cjs");
7
7
  const vueRouter = require("vue-router");
8
8
  const vueI18n = require("vue-i18n");
9
9
  const auth = require("../../store/auth.cjs");
@@ -1,7 +1,7 @@
1
1
  import { ref, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, createTextVNode, withCtx } from "vue";
2
2
  /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
- import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { useI18n } from "vue-i18n";
7
7
  import { state, actions } from "../../store/auth.js";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
5
  const Field = require("../../../../../components/Field/Field.vue.cjs");
6
- const Button = require("../../../../../components/Button/Button.vue2.cjs");
6
+ const Button = require("../../../../../components/Button/Button.vue.cjs");
7
7
  const vueRouter = require("vue-router");
8
8
  const auth = require("../../store/auth.cjs");
9
9
  const invites = require("../../../../organizations/store/invites.cjs");
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx } from "vue";
2
2
  /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
- import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { state, actions as actions$1 } from "../../store/auth.js";
7
7
  import { actions } from "../../../../organizations/store/invites.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
- ;/* empty css */
5
+ ;/* empty css */
6
6
  const Dropdown = require("../../../../../components/Dropdown/Dropdown.vue.cjs");
7
7
  const Menu = require("../../../../../components/Menu/Menu.vue2.cjs");
8
8
  const MenuItem = require("../../../../../components/Menu/MenuItem.vue.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, inject, computed, onMounted, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, createBlock, unref, withCtx, toDisplayString, Fragment, renderList, normalizeClass, resolveDynamicComponent } from "vue";
2
2
  /* empty css */
3
- /* empty css */
3
+ /* empty css */
4
4
  import _sfc_main$5 from "../../../../../components/Dropdown/Dropdown.vue.js";
5
5
  import _sfc_main$a from "../../../../../components/Menu/Menu.vue2.js";
6
6
  import _sfc_main$b from "../../../../../components/Menu/MenuItem.vue.js";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Popup = require("../../../../../components/Popup/Popup.vue2.cjs");
4
+ const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
5
5
  const ProfileEditSidebar = require("./ProfileEditSidebar.vue.cjs");
6
6
  const vueRouter = require("vue-router");
7
7
  const _hoisted_1 = { class: "flex gap-medium" };
@@ -1,5 +1,5 @@
1
1
  import { resolveComponent, createBlock, openBlock, unref, withCtx, createElementVNode, createVNode } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Popup/Popup.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
3
3
  import _sfc_main$2 from "./ProfileEditSidebar.vue.js";
4
4
  import { useRouter } from "vue-router";
5
5
  const _hoisted_1 = { class: "flex gap-medium" };
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Checkbox = require("../../../../../components/Checkbox/Checkbox.vue.cjs");
5
- const Button = require("../../../../../components/Button/Button.vue2.cjs");
5
+ const Button = require("../../../../../components/Button/Button.vue.cjs");
6
6
  const ProfileEditCredentials = require("../sections/ProfileEditCredentials.vue.cjs");
7
7
  const vueRouter = require("vue-router");
8
8
  const auth = require("../../store/auth.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode, withCtx, createTextVNode, unref } from "vue";
2
2
  import _sfc_main$2 from "../../../../../components/Checkbox/Checkbox.vue.js";
3
- import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
4
4
  import _sfc_main$1 from "../sections/ProfileEditCredentials.vue.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { state, actions as actions$2 } from "../../store/auth.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Field = require("../../../../../components/Field/Field.vue.cjs");
5
- const Button = require("../../../../../components/Button/Button.vue2.cjs");
5
+ const Button = require("../../../../../components/Button/Button.vue.cjs");
6
6
  const UploadImage = require("../../../../../components/UploadImage/UploadImage.vue.cjs");
7
7
  const vueRouter = require("vue-router");
8
8
  const auth = require("../../store/auth.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, toDisplayString, withCtx, createTextVNode } from "vue";
2
2
  import Field from "../../../../../components/Field/Field.vue.js";
3
- import _sfc_main$2 from "../../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$2 from "../../../../../components/Button/Button.vue.js";
4
4
  import _sfc_main$1 from "../../../../../components/UploadImage/UploadImage.vue.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { state } from "../../store/auth.js";
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
5
5
  const Field = require("../../../../../components/Field/Field.vue.cjs");
6
6
  const FieldPhone = require("../../../../../components/FieldPhone/FieldPhone.vue.cjs");
7
- const Button = require("../../../../../components/Button/Button.vue2.cjs");
7
+ const Button = require("../../../../../components/Button/Button.vue.cjs");
8
8
  const vueRouter = require("vue-router");
9
9
  const vueI18n = require("vue-i18n");
10
10
  const ResetPassword = require("../../localization/ResetPassword.json.cjs");
@@ -2,7 +2,7 @@ import { ref, computed, createElementBlock, openBlock, createElementVNode, creat
2
2
  import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
- import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
5
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
6
6
  import { useRoute, useRouter } from "vue-router";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import text from "../../localization/ResetPassword.json.js";
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
5
5
  const Field = require("../../../../../components/Field/Field.vue.cjs");
6
6
  const FieldPhone = require("../../../../../components/FieldPhone/FieldPhone.vue.cjs");
7
- const Button = require("../../../../../components/Button/Button.vue2.cjs");
7
+ const Button = require("../../../../../components/Button/Button.vue.cjs");
8
8
  const vueRouter = require("vue-router");
9
9
  const vueI18n = require("vue-i18n");
10
10
  const SignIn = require("../../localization/SignIn.json.cjs");