@ozdao/prometheus-framework 0.2.312 → 0.2.314

Sign up to get free protection for your applications and to get access to all the features.
Files changed (246) hide show
  1. package/dist/main.css +1 -1
  2. package/dist/prometheus-framework/src/components/BottomSheet/BottomSheet.vue.cjs +4 -3
  3. package/dist/prometheus-framework/src/components/BottomSheet/BottomSheet.vue.cjs.map +1 -1
  4. package/dist/prometheus-framework/src/components/BottomSheet/BottomSheet.vue.js +5 -4
  5. package/dist/prometheus-framework/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
  6. package/dist/prometheus-framework/src/components/Button/Button.vue2.cjs +1 -1
  7. package/dist/prometheus-framework/src/components/Button/Button.vue2.js +1 -1
  8. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +4 -3
  9. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs.map +1 -1
  10. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +4 -3
  11. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js.map +1 -1
  12. package/dist/prometheus-framework/src/components/Field/Field.vue.cjs +21 -14
  13. package/dist/prometheus-framework/src/components/Field/Field.vue.cjs.map +1 -1
  14. package/dist/prometheus-framework/src/components/Field/Field.vue.js +21 -14
  15. package/dist/prometheus-framework/src/components/Field/Field.vue.js.map +1 -1
  16. package/dist/prometheus-framework/src/components/Field/Field.vue2.cjs +21 -14
  17. package/dist/prometheus-framework/src/components/Field/Field.vue2.cjs.map +1 -1
  18. package/dist/prometheus-framework/src/components/Field/Field.vue2.js +21 -14
  19. package/dist/prometheus-framework/src/components/Field/Field.vue2.js.map +1 -1
  20. package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  21. package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.js +1 -1
  22. package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
  23. package/dist/prometheus-framework/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
  24. package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs +1 -1
  25. package/dist/prometheus-framework/src/components/Slider/Slider.vue.js +1 -1
  26. package/dist/prometheus-framework/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  27. package/dist/prometheus-framework/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  28. package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.cjs +3 -3
  29. package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.js +3 -3
  30. package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
  31. package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  32. package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
  33. package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  34. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  35. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  36. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  37. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  38. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  39. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  40. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +2 -2
  41. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.js +2 -2
  42. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +2 -2
  43. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
  44. package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignIn.vue.cjs +2 -2
  45. package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignIn.vue.js +2 -2
  46. package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignUp.vue.cjs +2 -2
  47. package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
  48. package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  49. package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  50. package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs +1 -1
  51. package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs.map +1 -1
  52. package/dist/prometheus-framework/src/modules/auth/views/router/users.js +1 -1
  53. package/dist/prometheus-framework/src/modules/auth/views/router/users.js.map +1 -1
  54. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  55. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  56. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  57. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  58. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +2 -2
  59. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +2 -2
  60. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +3 -3
  61. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs.map +1 -1
  62. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
  63. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  64. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +2 -2
  65. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +2 -2
  66. package/dist/prometheus-framework/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
  67. package/dist/prometheus-framework/src/modules/constructor/components/elements/Card.vue.js +1 -1
  68. package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  69. package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  70. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  71. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  72. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +3 -3
  73. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  74. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
  75. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
  76. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +2 -2
  77. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +2 -2
  78. package/dist/prometheus-framework/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  79. package/dist/prometheus-framework/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  80. package/dist/prometheus-framework/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  81. package/dist/prometheus-framework/src/modules/events/components/sections/Feed.vue.js +1 -1
  82. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +1 -1
  83. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +1 -1
  84. package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  85. package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  86. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  87. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  88. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +7 -2
  89. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs.map +1 -1
  90. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.js +7 -2
  91. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.js.map +1 -1
  92. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  93. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  94. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +6 -18
  95. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  96. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +10 -22
  97. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  98. package/dist/prometheus-framework/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  99. package/dist/prometheus-framework/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  100. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
  101. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  102. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +3 -3
  103. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +3 -3
  104. package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  105. package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.js +1 -1
  106. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  107. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  108. package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
  109. package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
  110. package/dist/prometheus-framework/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  111. package/dist/prometheus-framework/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  112. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  113. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  114. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +4 -4
  115. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +4 -4
  116. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
  117. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +2 -2
  118. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  119. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  120. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +33 -13
  121. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs.map +1 -1
  122. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +33 -13
  123. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +1 -1
  124. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
  125. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  126. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  127. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  128. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
  129. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
  130. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +3 -3
  131. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +3 -3
  132. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  133. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  134. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  135. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  136. package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +701 -690
  137. package/dist/prometheus-framework/src/modules/pages/pages.client.js +701 -690
  138. package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.cjs +2 -2
  139. package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
  140. package/dist/prometheus-framework/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  141. package/dist/prometheus-framework/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  142. package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  143. package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  144. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.cjs +36 -23
  145. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  146. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.js +37 -24
  147. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  148. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  149. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  150. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +10 -17
  151. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  152. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +11 -18
  153. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  154. package/dist/prometheus-framework/src/modules/products/components/blocks/Images360.vue.cjs +1 -1
  155. package/dist/prometheus-framework/src/modules/products/components/blocks/Images360.vue.js +1 -1
  156. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
  157. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
  158. package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.cjs +1 -1
  159. package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.js +1 -1
  160. package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.cjs +1 -1
  161. package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.js +1 -1
  162. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs +12 -2
  163. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  164. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js +13 -3
  165. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js.map +1 -1
  166. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.cjs +3 -1
  167. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.cjs.map +1 -1
  168. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.js +3 -1
  169. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.js.map +1 -1
  170. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +3 -3
  171. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +3 -3
  172. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +7 -74
  173. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  174. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +7 -74
  175. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  176. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
  177. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
  178. package/dist/prometheus-framework/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  179. package/dist/prometheus-framework/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  180. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs +7 -7
  181. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  182. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js +8 -8
  183. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js.map +1 -1
  184. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +3 -3
  185. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +3 -3
  186. package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  187. package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  188. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +20 -25
  189. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  190. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +20 -25
  191. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js.map +1 -1
  192. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.cjs +8 -8
  193. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.cjs.map +1 -1
  194. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.js +9 -9
  195. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.js.map +1 -1
  196. package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.cjs +1 -1
  197. package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.js +1 -1
  198. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +2 -2
  199. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +2 -2
  200. package/dist/prometheus-framework/src/modules/products/components/sections/MenuSection.vue.cjs +1 -1
  201. package/dist/prometheus-framework/src/modules/products/components/sections/MenuSection.vue.js +1 -1
  202. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs +2 -2
  203. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs.map +1 -1
  204. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js +2 -2
  205. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js.map +1 -1
  206. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +60 -28
  207. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
  208. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +63 -31
  209. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  210. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  211. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  212. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  213. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  214. package/dist/prometheus-framework/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  215. package/dist/prometheus-framework/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  216. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  217. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  218. package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
  219. package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  220. package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
  221. package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
  222. package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  223. package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  224. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
  225. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  226. package/dist/prometheus-framework.cjs.js +15 -15
  227. package/dist/prometheus-framework.es.js +640 -629
  228. package/package.json +1 -1
  229. package/src/components/BottomSheet/BottomSheet.vue +4 -2
  230. package/src/components/Feed/Feed.vue +1 -0
  231. package/src/components/Field/Field.vue +11 -4
  232. package/src/modules/auth/views/router/users.js +1 -1
  233. package/src/modules/community/components/pages/CreateBlogPost.vue +1 -1
  234. package/src/modules/globals/views/components/blocks/BlockSearch.vue +5 -0
  235. package/src/modules/globals/views/components/layouts/Client.vue +2 -2
  236. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +15 -0
  237. package/src/modules/products/components/blocks/CardCategory.vue +56 -25
  238. package/src/modules/products/components/blocks/CardProduct.vue +17 -11
  239. package/src/modules/products/components/elements/Price.vue +8 -0
  240. package/src/modules/products/components/pages/Catalog.vue +3 -1
  241. package/src/modules/products/components/pages/CategoryEdit.vue +2 -32
  242. package/src/modules/products/components/pages/Product.vue +5 -21
  243. package/src/modules/products/components/pages/Products.vue +5 -8
  244. package/src/modules/products/components/sections/CategoriesTree.vue +3 -5
  245. package/src/modules/products/components/sections/PopularProducts.vue +1 -1
  246. package/src/modules/products/components/sections/SectionProduct.vue +48 -26
@@ -58,8 +58,9 @@ const _sfc_main = {
58
58
  vue.createElementVNode("section", {
59
59
  ref_key: "wrapper",
60
60
  ref: wrapper,
61
- class: "w-100 h-100vh",
62
- style: vue.normalizeStyle(_ctx.MOBILE_APP === "ios" ? "padding-top: 6rem;" : "")
61
+ class: vue.normalizeClass(["w-100 h-100vh", {
62
+ "pd-t-extra": _ctx.MOBILE_APP === "ios"
63
+ }])
63
64
  }, [
64
65
  vue.createElementVNode("div", {
65
66
  onClick: _cache[0] || (_cache[0] = ($event) => emits("toggle")),
@@ -77,7 +78,7 @@ const _sfc_main = {
77
78
  ], -1)
78
79
  ]), 32),
79
80
  vue.renderSlot(_ctx.$slots, "default")
80
- ], 4)
81
+ ], 2)
81
82
  ]),
82
83
  _: 3
83
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.vue.cjs","sources":["../../../../../src/components/BottomSheet/BottomSheet.vue"],"sourcesContent":["<template>\n <transition name=\"slideY\" mode=\"out-in\">\n <section \n ref=\"wrapper\" \n class=\"w-100 h-100vh\"\n :style=\"MOBILE_APP === 'ios' ?'padding-top: 6rem;':''\" \n >\n <!-- Toggle To Close -->\n <div\n @click=\"emits('toggle')\"\n @mousedown=\"startDrag\"\n @touchstart=\"startDrag\"\n @mousemove=\"onDrag\"\n @touchmove=\"onDrag\"\n @mouseup=\"endDrag\"\n @touchend=\"endDrag\"\n @mouseleave=\"endDrag\"\n class=\"bs-black d-block p-medium pos-relative bg-white flex-center flex uppercase z-index-2\"\n >\n <div class=\"radius-extra pd-small t-black p-medium\">\n <div class=\"radius-extra pd-nano w-3r h-1r t-black p-medium bg-black-transp-10\"></div>\n </div>\n </div>\n \n <slot></slot>\n </section>\n </transition>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nconst props = defineProps({\n show: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: {\n position: false\n }\n }\n})\n\nconst emits = defineEmits([\n 'toggle'\n])\n\nconst wrapper = ref(null)\n\nconst startY = ref(0);\nconst currentY = ref(0);\nconst dragging = ref(false);\n\nfunction startDrag(event) {\n dragging.value = true;\n startY.value = event.touches ? event.touches[0].clientY : event.clientY;\n currentY.value = startY.value;\n}\n\nfunction onDrag(event) {\n if (!dragging.value) return;\n event.preventDefault(); // Prevent scrolling while dragging\n currentY.value = event.touches ? event.touches[0].clientY : event.clientY;\n const deltaY = currentY.value - startY.value;\n\n if (deltaY > 0) {\n wrapper.value.style.top = `${deltaY}px`;\n }\n}\nfunction endDrag() {\n if (!dragging.value) return;\n\n dragging.value = false;\n\n const deltaY = currentY.value - startY.value;\n const threshold = window.innerHeight * 0.2;\n\n if (deltaY < threshold) {\n // If less than 40%, snap back to the original position\n wrapper.value.style.top = '';\n } else {\n // If more than 40%, hide the element\n emits('toggle')\n // VisualizerWrapper.value.style.top = '';\n }\n}\n</script>"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AAId,UAAM,UAAUA,IAAG,IAAC,IAAI;AAExB,UAAM,SAASA,IAAAA,IAAI,CAAC;AACpB,UAAM,WAAWA,IAAAA,IAAI,CAAC;AACtB,UAAM,WAAWA,IAAAA,IAAI,KAAK;AAE1B,aAAS,UAAU,OAAO;AACxB,eAAS,QAAQ;AACjB,aAAO,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAChE,eAAS,QAAQ,OAAO;AAAA,IAC1B;AAEA,aAAS,OAAO,OAAO;AACrB,UAAI,CAAC,SAAS,MAAO;AACrB,YAAM,eAAc;AACpB,eAAS,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAClE,YAAM,SAAS,SAAS,QAAQ,OAAO;AAEvC,UAAI,SAAS,GAAG;AACd,gBAAQ,MAAM,MAAM,MAAM,GAAG,MAAM;AAAA,MACpC;AAAA,IACH;AACA,aAAS,UAAU;AACjB,UAAI,CAAC,SAAS,MAAO;AAErB,eAAS,QAAQ;AAEjB,YAAM,SAAS,SAAS,QAAQ,OAAO;AACvC,YAAM,YAAY,OAAO,cAAc;AAEvC,UAAI,SAAS,WAAW;AAEtB,gBAAQ,MAAM,MAAM,MAAM;AAAA,MAC9B,OAAS;AAEL,cAAM,QAAQ;AAAA,MAEf;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BottomSheet.vue.cjs","sources":["../../../../../src/components/BottomSheet/BottomSheet.vue"],"sourcesContent":["<template>\n <transition name=\"slideY\" mode=\"out-in\">\n <section \n ref=\"wrapper\" \n class=\"w-100 h-100vh\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios', \n }\"\n >\n <!-- Toggle To Close -->\n <div\n @click=\"emits('toggle')\"\n @mousedown=\"startDrag\"\n @touchstart=\"startDrag\"\n @mousemove=\"onDrag\"\n @touchmove=\"onDrag\"\n @mouseup=\"endDrag\"\n @touchend=\"endDrag\"\n @mouseleave=\"endDrag\"\n class=\"bs-black d-block p-medium pos-relative bg-white flex-center flex uppercase z-index-2\"\n >\n <div class=\"radius-extra pd-small t-black p-medium\">\n <div class=\"radius-extra pd-nano w-3r h-1r t-black p-medium bg-black-transp-10\"></div>\n </div>\n </div>\n \n <slot></slot>\n </section>\n </transition>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nconst props = defineProps({\n show: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: {\n position: false\n }\n }\n})\n\nconst emits = defineEmits([\n 'toggle'\n])\n\nconst wrapper = ref(null)\n\nconst startY = ref(0);\nconst currentY = ref(0);\nconst dragging = ref(false);\n\nfunction startDrag(event) {\n dragging.value = true;\n startY.value = event.touches ? event.touches[0].clientY : event.clientY;\n currentY.value = startY.value;\n}\n\nfunction onDrag(event) {\n if (!dragging.value) return;\n event.preventDefault(); // Prevent scrolling while dragging\n currentY.value = event.touches ? event.touches[0].clientY : event.clientY;\n const deltaY = currentY.value - startY.value;\n\n if (deltaY > 0) {\n wrapper.value.style.top = `${deltaY}px`;\n }\n}\nfunction endDrag() {\n if (!dragging.value) return;\n\n dragging.value = false;\n\n const deltaY = currentY.value - startY.value;\n const threshold = window.innerHeight * 0.2;\n\n if (deltaY < threshold) {\n // If less than 40%, snap back to the original position\n wrapper.value.style.top = '';\n } else {\n // If more than 40%, hide the element\n emits('toggle')\n // VisualizerWrapper.value.style.top = '';\n }\n}\n</script>"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+CA,UAAM,QAAQ;AAId,UAAM,UAAUA,IAAG,IAAC,IAAI;AAExB,UAAM,SAASA,IAAAA,IAAI,CAAC;AACpB,UAAM,WAAWA,IAAAA,IAAI,CAAC;AACtB,UAAM,WAAWA,IAAAA,IAAI,KAAK;AAE1B,aAAS,UAAU,OAAO;AACxB,eAAS,QAAQ;AACjB,aAAO,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAChE,eAAS,QAAQ,OAAO;AAAA,IAC1B;AAEA,aAAS,OAAO,OAAO;AACrB,UAAI,CAAC,SAAS,MAAO;AACrB,YAAM,eAAc;AACpB,eAAS,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAClE,YAAM,SAAS,SAAS,QAAQ,OAAO;AAEvC,UAAI,SAAS,GAAG;AACd,gBAAQ,MAAM,MAAM,MAAM,GAAG,MAAM;AAAA,MACpC;AAAA,IACH;AACA,aAAS,UAAU;AACjB,UAAI,CAAC,SAAS,MAAO;AAErB,eAAS,QAAQ;AAEjB,YAAM,SAAS,SAAS,QAAQ,OAAO;AACvC,YAAM,YAAY,OAAO,cAAc;AAEvC,UAAI,SAAS,WAAW;AAEtB,gBAAQ,MAAM,MAAM,MAAM;AAAA,MAC9B,OAAS;AAEL,cAAM,QAAQ;AAAA,MAEf;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { ref, openBlock, createBlock, Transition, withCtx, createElementVNode, normalizeStyle, renderSlot } from "vue";
1
+ import { ref, openBlock, createBlock, Transition, withCtx, createElementVNode, normalizeClass, renderSlot } from "vue";
2
2
  const _sfc_main = {
3
3
  __name: "BottomSheet",
4
4
  props: {
@@ -56,8 +56,9 @@ const _sfc_main = {
56
56
  createElementVNode("section", {
57
57
  ref_key: "wrapper",
58
58
  ref: wrapper,
59
- class: "w-100 h-100vh",
60
- style: normalizeStyle(_ctx.MOBILE_APP === "ios" ? "padding-top: 6rem;" : "")
59
+ class: normalizeClass(["w-100 h-100vh", {
60
+ "pd-t-extra": _ctx.MOBILE_APP === "ios"
61
+ }])
61
62
  }, [
62
63
  createElementVNode("div", {
63
64
  onClick: _cache[0] || (_cache[0] = ($event) => emits("toggle")),
@@ -75,7 +76,7 @@ const _sfc_main = {
75
76
  ], -1)
76
77
  ]), 32),
77
78
  renderSlot(_ctx.$slots, "default")
78
- ], 4)
79
+ ], 2)
79
80
  ]),
80
81
  _: 3
81
82
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.vue.js","sources":["../../../../../src/components/BottomSheet/BottomSheet.vue"],"sourcesContent":["<template>\n <transition name=\"slideY\" mode=\"out-in\">\n <section \n ref=\"wrapper\" \n class=\"w-100 h-100vh\"\n :style=\"MOBILE_APP === 'ios' ?'padding-top: 6rem;':''\" \n >\n <!-- Toggle To Close -->\n <div\n @click=\"emits('toggle')\"\n @mousedown=\"startDrag\"\n @touchstart=\"startDrag\"\n @mousemove=\"onDrag\"\n @touchmove=\"onDrag\"\n @mouseup=\"endDrag\"\n @touchend=\"endDrag\"\n @mouseleave=\"endDrag\"\n class=\"bs-black d-block p-medium pos-relative bg-white flex-center flex uppercase z-index-2\"\n >\n <div class=\"radius-extra pd-small t-black p-medium\">\n <div class=\"radius-extra pd-nano w-3r h-1r t-black p-medium bg-black-transp-10\"></div>\n </div>\n </div>\n \n <slot></slot>\n </section>\n </transition>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nconst props = defineProps({\n show: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: {\n position: false\n }\n }\n})\n\nconst emits = defineEmits([\n 'toggle'\n])\n\nconst wrapper = ref(null)\n\nconst startY = ref(0);\nconst currentY = ref(0);\nconst dragging = ref(false);\n\nfunction startDrag(event) {\n dragging.value = true;\n startY.value = event.touches ? event.touches[0].clientY : event.clientY;\n currentY.value = startY.value;\n}\n\nfunction onDrag(event) {\n if (!dragging.value) return;\n event.preventDefault(); // Prevent scrolling while dragging\n currentY.value = event.touches ? event.touches[0].clientY : event.clientY;\n const deltaY = currentY.value - startY.value;\n\n if (deltaY > 0) {\n wrapper.value.style.top = `${deltaY}px`;\n }\n}\nfunction endDrag() {\n if (!dragging.value) return;\n\n dragging.value = false;\n\n const deltaY = currentY.value - startY.value;\n const threshold = window.innerHeight * 0.2;\n\n if (deltaY < threshold) {\n // If less than 40%, snap back to the original position\n wrapper.value.style.top = '';\n } else {\n // If more than 40%, hide the element\n emits('toggle')\n // VisualizerWrapper.value.style.top = '';\n }\n}\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AAId,UAAM,UAAU,IAAI,IAAI;AAExB,UAAM,SAAS,IAAI,CAAC;AACpB,UAAM,WAAW,IAAI,CAAC;AACtB,UAAM,WAAW,IAAI,KAAK;AAE1B,aAAS,UAAU,OAAO;AACxB,eAAS,QAAQ;AACjB,aAAO,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAChE,eAAS,QAAQ,OAAO;AAAA,IAC1B;AAEA,aAAS,OAAO,OAAO;AACrB,UAAI,CAAC,SAAS,MAAO;AACrB,YAAM,eAAc;AACpB,eAAS,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAClE,YAAM,SAAS,SAAS,QAAQ,OAAO;AAEvC,UAAI,SAAS,GAAG;AACd,gBAAQ,MAAM,MAAM,MAAM,GAAG,MAAM;AAAA,MACpC;AAAA,IACH;AACA,aAAS,UAAU;AACjB,UAAI,CAAC,SAAS,MAAO;AAErB,eAAS,QAAQ;AAEjB,YAAM,SAAS,SAAS,QAAQ,OAAO;AACvC,YAAM,YAAY,OAAO,cAAc;AAEvC,UAAI,SAAS,WAAW;AAEtB,gBAAQ,MAAM,MAAM,MAAM;AAAA,MAC9B,OAAS;AAEL,cAAM,QAAQ;AAAA,MAEf;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BottomSheet.vue.js","sources":["../../../../../src/components/BottomSheet/BottomSheet.vue"],"sourcesContent":["<template>\n <transition name=\"slideY\" mode=\"out-in\">\n <section \n ref=\"wrapper\" \n class=\"w-100 h-100vh\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios', \n }\"\n >\n <!-- Toggle To Close -->\n <div\n @click=\"emits('toggle')\"\n @mousedown=\"startDrag\"\n @touchstart=\"startDrag\"\n @mousemove=\"onDrag\"\n @touchmove=\"onDrag\"\n @mouseup=\"endDrag\"\n @touchend=\"endDrag\"\n @mouseleave=\"endDrag\"\n class=\"bs-black d-block p-medium pos-relative bg-white flex-center flex uppercase z-index-2\"\n >\n <div class=\"radius-extra pd-small t-black p-medium\">\n <div class=\"radius-extra pd-nano w-3r h-1r t-black p-medium bg-black-transp-10\"></div>\n </div>\n </div>\n \n <slot></slot>\n </section>\n </transition>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nconst props = defineProps({\n show: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: {\n position: false\n }\n }\n})\n\nconst emits = defineEmits([\n 'toggle'\n])\n\nconst wrapper = ref(null)\n\nconst startY = ref(0);\nconst currentY = ref(0);\nconst dragging = ref(false);\n\nfunction startDrag(event) {\n dragging.value = true;\n startY.value = event.touches ? event.touches[0].clientY : event.clientY;\n currentY.value = startY.value;\n}\n\nfunction onDrag(event) {\n if (!dragging.value) return;\n event.preventDefault(); // Prevent scrolling while dragging\n currentY.value = event.touches ? event.touches[0].clientY : event.clientY;\n const deltaY = currentY.value - startY.value;\n\n if (deltaY > 0) {\n wrapper.value.style.top = `${deltaY}px`;\n }\n}\nfunction endDrag() {\n if (!dragging.value) return;\n\n dragging.value = false;\n\n const deltaY = currentY.value - startY.value;\n const threshold = window.innerHeight * 0.2;\n\n if (deltaY < threshold) {\n // If less than 40%, snap back to the original position\n wrapper.value.style.top = '';\n } else {\n // If more than 40%, hide the element\n emits('toggle')\n // VisualizerWrapper.value.style.top = '';\n }\n}\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA+CA,UAAM,QAAQ;AAId,UAAM,UAAU,IAAI,IAAI;AAExB,UAAM,SAAS,IAAI,CAAC;AACpB,UAAM,WAAW,IAAI,CAAC;AACtB,UAAM,WAAW,IAAI,KAAK;AAE1B,aAAS,UAAU,OAAO;AACxB,eAAS,QAAQ;AACjB,aAAO,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAChE,eAAS,QAAQ,OAAO;AAAA,IAC1B;AAEA,aAAS,OAAO,OAAO;AACrB,UAAI,CAAC,SAAS,MAAO;AACrB,YAAM,eAAc;AACpB,eAAS,QAAQ,MAAM,UAAU,MAAM,QAAQ,CAAC,EAAE,UAAU,MAAM;AAClE,YAAM,SAAS,SAAS,QAAQ,OAAO;AAEvC,UAAI,SAAS,GAAG;AACd,gBAAQ,MAAM,MAAM,MAAM,GAAG,MAAM;AAAA,MACpC;AAAA,IACH;AACA,aAAS,UAAU;AACjB,UAAI,CAAC,SAAS,MAAO;AAErB,eAAS,QAAQ;AAEjB,YAAM,SAAS,SAAS,QAAQ,OAAO;AACvC,YAAM,YAAY,OAAO,cAAc;AAEvC,UAAI,SAAS,WAAW;AAEtB,gBAAQ,MAAM,MAAM,MAAM;AAAA,MAC9B,OAAS;AAEL,cAAM,QAAQ;AAAA,MAEf;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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 Loader = require("../Loader/Loader.vue2.cjs");
4
+ const Loader = require("../Loader/Loader.vue.cjs");
5
5
  ;/* empty css */
6
6
  const _hoisted_1 = ["disabled"];
7
7
  const _hoisted_2 = { key: 0 };
@@ -1,5 +1,5 @@
1
1
  import { ref, openBlock, createElementBlock, withModifiers, createVNode, Transition, withCtx, renderSlot, toDisplayString, createCommentVNode } from "vue";
2
- import Loader from "../Loader/Loader.vue2.js";
2
+ import Loader from "../Loader/Loader.vue.js";
3
3
  /* empty css */
4
4
  const _hoisted_1 = ["disabled"];
5
5
  const _hoisted_2 = { key: 0 };
@@ -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 SkeletonEvent = require("../../modules/icons/skeletons/SkeletonEvent.vue.cjs");
5
- const Loader = require("../Loader/Loader.vue2.cjs");
5
+ const Loader = require("../Loader/Loader.vue.cjs");
6
6
  const EmptyState = require("../EmptyState/EmptyState.vue.cjs");
7
7
  const Dropdown = require("../Dropdown/Dropdown.vue.cjs");
8
8
  const Calendar = require("../DatePicker/Calendar.vue2.cjs");
@@ -194,8 +194,9 @@ const _sfc_main = {
194
194
  key: 0,
195
195
  placeholder: search.value.placeholder || "Search...",
196
196
  class: vue.normalizeClass(search.value.class || "bg-light"),
197
- onSearch: updateSearch
198
- }, null, 8, ["placeholder", "class"])) : vue.createCommentVNode("", true),
197
+ onSearch: updateSearch,
198
+ autofocus: search.value.autofocus
199
+ }, null, 8, ["placeholder", "class", "autofocus"])) : vue.createCommentVNode("", true),
199
200
  filter.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
200
201
  vue.createElementVNode("div", {
201
202
  class: vue.normalizeClass([filter.value.class || "bg-light", "flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100"])
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.vue.cjs","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n\n <div v-if=\"search || date || (sort && !sort.hideButton)\" class=\"flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n />\n\n <template\n v-if=\"filter\"\n >\n <div \n :class=\"filter.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100\"\n >\n <IconFilter @click=\"() => filter.active = !filter.active\" class=\"w-1r h-auto\"/>\n </div>\n\n \n <BottomSheet\n v-if=\"filter.active\"\n :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-t-0 pos-r-0\"\n :class=\"{\n 'pos-t-0': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </BottomSheet> \n </template>\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-big\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-extra aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-semi t-white bg-black\"\n />\n </Dropdown> \n </div>\n\n <TransitionGroup \n\n v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n >\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in currentLimit\" \n :key=\"'skeleton-' + i\"\n class=\"mn-b-small radius-medium o-hidden d-block\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-if=\"!isLoading && itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n v-if=\"!isLoading && itemsList.length > 0\"\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 t-black bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, shallowRef, watch } from 'vue';\n\nimport SkeletonEvent from '@pf/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@pf/src/components/Loader/Loader.vue';\nimport EmptyState from '@pf/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@pf/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@pf/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@pf/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@pf/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@pf/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: String,\n description: String,\n },\n }),\n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 20, \n skip: 0 ,\n owner: null,\n creator: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n});\n \nconst itemsList = shallowRef(items.value || []);\nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\n// let sortParam = ref(sort.value?.param || 'createdAt');\n// let sortOrder = ref(sort.value?.order || 'asc');\n\nlet currentSearch = ref('');\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((value) => {\n currentSearch.value = value;\n currentSkip.value = 0;\n currentLimit.value = 10;\n fetchItems();\n}, 300);\n\nfunction updateSearch(search) {\n debouncedSearch(search);\n}\n\nconst loadMoreItems = async () => {\n isLoadingExtra.value = true\n\n if (hasMoreItems.value) {\n currentSkip.value += currentLimit.value;\n \n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = [...itemsList.value, ...data];\n \n if (items.value) items.value = itemsList.value;\n }\n\n isLoadingExtra.value = false\n};\n\nconst fetchItems = async () => {\n isLoading.value = true;\n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n search: currentSearch.value,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = data;\n if (items.value) items.value = itemsList.value;\n isLoading.value = false;\n};\n\nwatch(\n () => [props.external, date.value, sort.value, props.options],\n ([newExternal, newDate, newSort, newOptions], [oldExternal, oldDate, oldSort, oldOptions]) => {\n if (\n newExternal !== oldExternal ||\n newDate !== oldDate ||\n newSort?.order !== oldSort?.order ||\n newSort?.param !== oldSort?.param ||\n JSON.stringify(newOptions) !== JSON.stringify(oldOptions)\n ) {\n currentSkip.value = 0;\n fetchItems();\n }\n },\n { deep: true }\n);\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n\n<style>\n.feed-move, /* apply transition to moving elements */\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n/* ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","shallowRef","ref","search","watch","onMounted","onUnmounted"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.vue.cjs","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n\n <div v-if=\"search || date || (sort && !sort.hideButton)\" class=\"flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n :autofocus=\"search.autofocus\"\n />\n\n <template\n v-if=\"filter\"\n >\n <div \n :class=\"filter.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100\"\n >\n <IconFilter @click=\"() => filter.active = !filter.active\" class=\"w-1r h-auto\"/>\n </div>\n\n \n <BottomSheet\n v-if=\"filter.active\"\n :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-t-0 pos-r-0\"\n :class=\"{\n 'pos-t-0': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </BottomSheet> \n </template>\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-big\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-extra aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-semi t-white bg-black\"\n />\n </Dropdown> \n </div>\n\n <TransitionGroup \n\n v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n >\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in currentLimit\" \n :key=\"'skeleton-' + i\"\n class=\"mn-b-small radius-medium o-hidden d-block\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-if=\"!isLoading && itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n v-if=\"!isLoading && itemsList.length > 0\"\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 t-black bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, shallowRef, watch } from 'vue';\n\nimport SkeletonEvent from '@pf/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@pf/src/components/Loader/Loader.vue';\nimport EmptyState from '@pf/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@pf/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@pf/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@pf/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@pf/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@pf/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: String,\n description: String,\n },\n }),\n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 20, \n skip: 0 ,\n owner: null,\n creator: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n});\n \nconst itemsList = shallowRef(items.value || []);\nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\n// let sortParam = ref(sort.value?.param || 'createdAt');\n// let sortOrder = ref(sort.value?.order || 'asc');\n\nlet currentSearch = ref('');\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((value) => {\n currentSearch.value = value;\n currentSkip.value = 0;\n currentLimit.value = 10;\n fetchItems();\n}, 300);\n\nfunction updateSearch(search) {\n debouncedSearch(search);\n}\n\nconst loadMoreItems = async () => {\n isLoadingExtra.value = true\n\n if (hasMoreItems.value) {\n currentSkip.value += currentLimit.value;\n \n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = [...itemsList.value, ...data];\n \n if (items.value) items.value = itemsList.value;\n }\n\n isLoadingExtra.value = false\n};\n\nconst fetchItems = async () => {\n isLoading.value = true;\n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n search: currentSearch.value,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = data;\n if (items.value) items.value = itemsList.value;\n isLoading.value = false;\n};\n\nwatch(\n () => [props.external, date.value, sort.value, props.options],\n ([newExternal, newDate, newSort, newOptions], [oldExternal, oldDate, oldSort, oldOptions]) => {\n if (\n newExternal !== oldExternal ||\n newDate !== oldDate ||\n newSort?.order !== oldSort?.order ||\n newSort?.param !== oldSort?.param ||\n JSON.stringify(newOptions) !== JSON.stringify(oldOptions)\n ) {\n currentSkip.value = 0;\n fetchItems();\n }\n },\n { deep: true }\n);\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n\n<style>\n.feed-move, /* apply transition to moving elements */\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n/* ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","shallowRef","ref","search","watch","onMounted","onUnmounted"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { mergeModels, useModel, shallowRef, ref, watch, onMounted, onUnmounted, openBlock, createElementBlock, Fragment, createBlock, normalizeClass, createCommentVNode, createElementVNode, createVNode, withCtx, unref, TransitionGroup, renderList, renderSlot } from "vue";
2
2
  import SkeletonEvent from "../../modules/icons/skeletons/SkeletonEvent.vue.js";
3
- import Loader from "../Loader/Loader.vue2.js";
3
+ import Loader from "../Loader/Loader.vue.js";
4
4
  import _sfc_main$a from "../EmptyState/EmptyState.vue.js";
5
5
  import _sfc_main$5 from "../Dropdown/Dropdown.vue.js";
6
6
  import _sfc_main$7 from "../DatePicker/Calendar.vue2.js";
@@ -192,8 +192,9 @@ const _sfc_main = {
192
192
  key: 0,
193
193
  placeholder: search.value.placeholder || "Search...",
194
194
  class: normalizeClass(search.value.class || "bg-light"),
195
- onSearch: updateSearch
196
- }, null, 8, ["placeholder", "class"])) : createCommentVNode("", true),
195
+ onSearch: updateSearch,
196
+ autofocus: search.value.autofocus
197
+ }, null, 8, ["placeholder", "class", "autofocus"])) : createCommentVNode("", true),
197
198
  filter.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
198
199
  createElementVNode("div", {
199
200
  class: normalizeClass([filter.value.class || "bg-light", "flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100"])
@@ -1 +1 @@
1
- {"version":3,"file":"Feed.vue.js","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n\n <div v-if=\"search || date || (sort && !sort.hideButton)\" class=\"flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n />\n\n <template\n v-if=\"filter\"\n >\n <div \n :class=\"filter.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100\"\n >\n <IconFilter @click=\"() => filter.active = !filter.active\" class=\"w-1r h-auto\"/>\n </div>\n\n \n <BottomSheet\n v-if=\"filter.active\"\n :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-t-0 pos-r-0\"\n :class=\"{\n 'pos-t-0': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </BottomSheet> \n </template>\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-big\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-extra aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-semi t-white bg-black\"\n />\n </Dropdown> \n </div>\n\n <TransitionGroup \n\n v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n >\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in currentLimit\" \n :key=\"'skeleton-' + i\"\n class=\"mn-b-small radius-medium o-hidden d-block\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-if=\"!isLoading && itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n v-if=\"!isLoading && itemsList.length > 0\"\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 t-black bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, shallowRef, watch } from 'vue';\n\nimport SkeletonEvent from '@pf/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@pf/src/components/Loader/Loader.vue';\nimport EmptyState from '@pf/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@pf/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@pf/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@pf/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@pf/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@pf/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: String,\n description: String,\n },\n }),\n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 20, \n skip: 0 ,\n owner: null,\n creator: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n});\n \nconst itemsList = shallowRef(items.value || []);\nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\n// let sortParam = ref(sort.value?.param || 'createdAt');\n// let sortOrder = ref(sort.value?.order || 'asc');\n\nlet currentSearch = ref('');\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((value) => {\n currentSearch.value = value;\n currentSkip.value = 0;\n currentLimit.value = 10;\n fetchItems();\n}, 300);\n\nfunction updateSearch(search) {\n debouncedSearch(search);\n}\n\nconst loadMoreItems = async () => {\n isLoadingExtra.value = true\n\n if (hasMoreItems.value) {\n currentSkip.value += currentLimit.value;\n \n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = [...itemsList.value, ...data];\n \n if (items.value) items.value = itemsList.value;\n }\n\n isLoadingExtra.value = false\n};\n\nconst fetchItems = async () => {\n isLoading.value = true;\n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n search: currentSearch.value,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = data;\n if (items.value) items.value = itemsList.value;\n isLoading.value = false;\n};\n\nwatch(\n () => [props.external, date.value, sort.value, props.options],\n ([newExternal, newDate, newSort, newOptions], [oldExternal, oldDate, oldSort, oldOptions]) => {\n if (\n newExternal !== oldExternal ||\n newDate !== oldDate ||\n newSort?.order !== oldSort?.order ||\n newSort?.param !== oldSort?.param ||\n JSON.stringify(newOptions) !== JSON.stringify(oldOptions)\n ) {\n currentSkip.value = 0;\n fetchItems();\n }\n },\n { deep: true }\n);\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n\n<style>\n.feed-move, /* apply transition to moving elements */\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n/* ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","search"],"mappings":"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"}
1
+ {"version":3,"file":"Feed.vue.js","sources":["../../../../../src/components/Feed/Feed.vue"],"sourcesContent":["<template>\n\n <div v-if=\"search || date || (sort && !sort.hideButton)\" class=\"flex-nowrap flex gap-thin\">\n\n <BlockSearch \n v-if=\"search\"\n :placeholder=\"search.placeholder || 'Search...'\"\n :class=\"search.class || 'bg-light'\"\n @search=\"updateSearch\"\n :autofocus=\"search.autofocus\"\n />\n\n <template\n v-if=\"filter\"\n >\n <div \n :class=\"filter.class || 'bg-light'\"\n class=\"flex-center flex pd-thin bg-light radius-extra aspect-1x1 h-100\"\n >\n <IconFilter @click=\"() => filter.active = !filter.active\" class=\"w-1r h-auto\"/>\n </div>\n\n \n <BottomSheet\n v-if=\"filter.active\"\n :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-t-0 pos-r-0\"\n :class=\"{\n 'pos-t-0': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n class=\"h-100 w-100 pd-small bg-light\"\n />\n </BottomSheet> \n </template>\n\n <Dropdown \n v-if=\"date\"\n :label=\"{\n component: ButtonDate,\n props: { date: date }\n }\" \n :class=\"date.class || 'bg-light'\"\n class=\"flex-child flex-child-shrink-0 pd-r-small pd-l-small pd-thin bg-light radius-big\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"true\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n />\n </Dropdown> \n\n <Dropdown \n v-if=\"sort && !sort.hideButton\"\n :label=\"{\n component: ButtonSort,\n props: { order: sort.order },\n class: 'w-1r'\n }\" \n :class=\"sort.class || 'bg-light'\"\n class=\"radius-extra aspect-1x1 h-100\"\n :align=\"search ? 'right' : 'left'\"\n >\n\n <BlockSorting\n v-model:param=\"sort.param\"\n v-model:order=\"sort.order\"\n :options=\"sort.options\"\n class=\"h-100 pd-small radius-semi t-white bg-black\"\n />\n </Dropdown> \n </div>\n\n <TransitionGroup \n\n v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n >\n <SkeletonEvent\n v-if=\"isLoading\"\n v-for=\"i in currentLimit\" \n :key=\"'skeleton-' + i\"\n class=\"mn-b-small radius-medium o-hidden d-block\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n v-if=\"!isLoading && itemsList.length < 1\"\n name=\"feed\"\n >\n <EmptyState\n v-if=\"!isLoading && itemsList.length < 1\"\n :title=\"states.empty.title\"\n :description=\"states.empty.description\"\n :action=\"states.empty.action\"\n :callback=\"states.empty.callback\"\n class=\"pd-medium mn-b-thin bg-light radius-big\"\n />\n </TransitionGroup>\n\n <TransitionGroup \n tag=\"ul\" \n name=\"feed\"\n :class=\"$attrs.class\"\n >\n <slot\n v-if=\"!isLoading && itemsList.length > 0\"\n :items=\"itemsList\"\n >\n </slot>\n </TransitionGroup>\n\n <button\n v-if=\"showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra\"\n @click=\"loadMoreItems\"\n class=\"col-w-100 mn-t-thin w-100 t-black bg-main button\"\n >\n Load More\n </button>\n\n <div v-else key=\"sentinel\" ref=\"sentinel\" class=\"sentinel\"></div> \n\n <div\n\n v-if=\"isLoadingExtra\"\n class=\"col-w-100 w-100 pos-relative\"\n >\n <Loader/>\n </div>\n \n\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted, shallowRef, watch } from 'vue';\n\nimport SkeletonEvent from '@pf/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@pf/src/components/Loader/Loader.vue';\nimport EmptyState from '@pf/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@pf/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@pf/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@pf/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@pf/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@pf/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@pf/src/modules/icons/entities/IconEvents.vue'\n\nconst search = defineModel('search')\nconst sort = defineModel('sort')\nconst filter = defineModel('filter')\nconst date = defineModel('date')\nconst items = defineModel('items')\n\n// Пропсы\nconst props = defineProps({\n showLoadMore: {\n type: Boolean,\n default: true\n },\n search: {\n type: [Boolean, Object],\n default: false\n },\n states: {\n type: Object,\n default: () => ({\n empty: {\n title: String,\n description: String,\n },\n }),\n },\n store: {\n type: Object,\n default: () => ({\n read: Function,\n state: Object,\n }),\n },\n external: {\n type: Boolean,\n default: false\n },\n options: {\n type: Object,\n default: () => ({\n category: null,\n limit: 20, \n skip: 0 ,\n owner: null,\n creator: null,\n user: null,\n status: null,\n period: null,\n contain: null,\n }),\n },\n});\n \nconst itemsList = shallowRef(items.value || []);\nconst hasMoreItems = ref(false);\n\nlet isLoading = ref(true);\nlet isLoadingExtra = ref(false);\nlet sentinel = ref(null)\n\nlet currentSkip = ref(props.options.skip ? props.options.skip : 0);\nlet currentLimit = ref(props.options.limit ? props.options.limit : 10);\n\n// let sortParam = ref(sort.value?.param || 'createdAt');\n// let sortOrder = ref(sort.value?.order || 'asc');\n\nlet currentSearch = ref('');\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((value) => {\n currentSearch.value = value;\n currentSkip.value = 0;\n currentLimit.value = 10;\n fetchItems();\n}, 300);\n\nfunction updateSearch(search) {\n debouncedSearch(search);\n}\n\nconst loadMoreItems = async () => {\n isLoadingExtra.value = true\n\n if (hasMoreItems.value) {\n currentSkip.value += currentLimit.value;\n \n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n search: currentSearch.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = [...itemsList.value, ...data];\n \n if (items.value) items.value = itemsList.value;\n }\n\n isLoadingExtra.value = false\n};\n\nconst fetchItems = async () => {\n isLoading.value = true;\n const data = await props.store.read({\n skip: currentSkip.value,\n limit: currentLimit.value,\n dateStart: date.value ? date.value.start : null,\n dateEnd: date.value ? date.value.end : null,\n sortParam: sort.value ? sort.value.param : null,\n sortOrder: sort.value ? sort.value.order : null,\n search: currentSearch.value,\n ...props.options\n });\n\n if (data.length === 0) {\n hasMoreItems.value = false;\n } else if (data.length < currentLimit.value) {\n hasMoreItems.value = false;\n } else {\n hasMoreItems.value = true;\n }\n\n itemsList.value = data;\n if (items.value) items.value = itemsList.value;\n isLoading.value = false;\n};\n\nwatch(\n () => [props.external, date.value, sort.value, props.options],\n ([newExternal, newDate, newSort, newOptions], [oldExternal, oldDate, oldSort, oldOptions]) => {\n if (\n newExternal !== oldExternal ||\n newDate !== oldDate ||\n newSort?.order !== oldSort?.order ||\n newSort?.param !== oldSort?.param ||\n JSON.stringify(newOptions) !== JSON.stringify(oldOptions)\n ) {\n currentSkip.value = 0;\n fetchItems();\n }\n },\n { deep: true }\n);\n\nlet observer = null\n\nonMounted(async () => {\n await fetchItems()\n\n if (typeof window !== 'undefined' && !props.showLoadMore) {\n observer = new IntersectionObserver(entries => {\n if (entries.some(entry => entry.isIntersecting)) {\n loadMoreItems()\n }\n })\n\n if (sentinel.value) observer.observe(sentinel.value)\n }\n});\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect();\n }\n});\n</script>\n\n\n<style>\n.feed-move, /* apply transition to moving elements */\n.feed-enter-active,\n.feed-leave-active {\n transition: all 0.5s ease;\n}\n\n.feed-enter-from,\n.feed-leave-to {\n opacity: 0;\n transform: translateY(30px);\n}\n\n/* ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n.feed-leave-active {\n position: absolute;\n}\n</style>"],"names":["_useModel","search"],"mappings":"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"}
@@ -9,7 +9,7 @@ const _hoisted_1 = {
9
9
  };
10
10
  const _hoisted_2 = { class: "t-nowrap" };
11
11
  const _hoisted_3 = { class: "w-100" };
12
- const _hoisted_4 = ["type", "value", "placeholder", "tabindex", "disabled"];
12
+ const _hoisted_4 = ["type", "value", "placeholder", "tabindex", "disabled", "autofocus"];
13
13
  const _hoisted_5 = ["value", "placeholder", "tabindex", "disabled"];
14
14
  const _hoisted_6 = {
15
15
  key: 1,
@@ -30,7 +30,8 @@ const _sfc_main = {
30
30
  value: null,
31
31
  validation: false,
32
32
  disabled: null,
33
- tabindex: -1
33
+ tabindex: -1,
34
+ autofocus: false
34
35
  },
35
36
  emits: ["update:field", "focus", "blur"],
36
37
  setup(__props, { emit: __emit }) {
@@ -40,25 +41,28 @@ const _sfc_main = {
40
41
  emit("update:field", props.value);
41
42
  }
42
43
  const textarea = vue.ref(null);
44
+ const input = vue.ref(null);
43
45
  function resize() {
44
46
  var _a;
45
47
  if (textarea.value) textarea.value.style.height = "1rem";
46
48
  if (textarea.value) textarea.value.style.height = ((_a = textarea.value) == null ? void 0 : _a.scrollHeight) + "px";
47
49
  }
48
50
  vue.onUpdated(() => {
49
- if (props.type === "textarea") vue.nextTick(() => {
50
- {
51
- focus();
52
- }
53
- });
51
+ if (props.type === "textarea")
52
+ vue.nextTick(() => {
53
+ {
54
+ focus();
55
+ }
56
+ });
54
57
  resize();
55
58
  });
56
59
  vue.onMounted(() => {
57
- if (props.type === "textarea") vue.nextTick(() => {
58
- {
59
- focus();
60
- }
61
- });
60
+ if (props.type === "textarea")
61
+ vue.nextTick(() => {
62
+ {
63
+ focus();
64
+ }
65
+ });
62
66
  resize();
63
67
  });
64
68
  const text = vue.ref(props.field);
@@ -78,6 +82,8 @@ const _sfc_main = {
78
82
  vue.createElementVNode("div", _hoisted_3, [
79
83
  __props.type !== "textarea" ? (vue.openBlock(), vue.createElementBlock("input", {
80
84
  key: 0,
85
+ ref_key: "input",
86
+ ref: input,
81
87
  onInput: _cache[0] || (_cache[0] = (event) => text.value = emit("update:field", event.target.value)),
82
88
  onFocus: _cache[1] || (_cache[1] = (event) => emit("focus", event)),
83
89
  onBlur: _cache[2] || (_cache[2] = (event) => emit("blur", event)),
@@ -86,7 +92,8 @@ const _sfc_main = {
86
92
  value: __props.field,
87
93
  placeholder: __props.placeholder,
88
94
  tabindex: __props.tabindex,
89
- disabled: __props.disabled
95
+ disabled: __props.disabled,
96
+ autofocus: __props.autofocus
90
97
  }, null, 40, _hoisted_4)) : (vue.openBlock(), vue.createElementBlock("textarea", {
91
98
  key: 1,
92
99
  ref_key: "textarea",
@@ -117,6 +124,6 @@ const _sfc_main = {
117
124
  };
118
125
  }
119
126
  };
120
- const Field = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-dd79a28b"]]);
127
+ const Field = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-5621c50c"]]);
121
128
  exports.default = Field;
122
129
  //# sourceMappingURL=Field.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.vue.cjs","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\n import { ref, computed, onUpdated, onMounted, nextTick } from 'vue'\n\n const emit = defineEmits(['update:field', 'focus', 'blur']);\n\n const props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1\n });\n\n if (props.value) {\n emit('update:field', props.value)\n }\n\n const textarea = ref(null);\n\n function resize() {\n if (textarea.value) textarea.value.style.height = \"1rem\";\n if (textarea.value) textarea.value.style.height = textarea.value?.scrollHeight + \"px\";\n }\n\n\n onUpdated(() => {\n if (props.type === 'textarea') nextTick(() => { { focus()} })\n resize()\n });\n\n onMounted(() => {\n if (props.type === 'textarea') nextTick(() => { { focus()} })\n resize()\n });\n\n const text = ref(props.field);\n</script>\n\n<template>\n <div \n :class=\"[\n $attrs.class, \n { \n 'bg-fourth-nano': validation \n }\n ]\" \n class=\"flex-center flex-nowrap flex\"\n >\n <div \n v-if=\"label\" \n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n\n <div class=\"w-100\">\n <input \n v-if=\"type !== 'textarea'\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n <textarea \n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n style=\"resize: vertical;\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div> \n\n <slot></slot>\n\n <div \n v-if=\"symbol\" \n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style lang=\"scss\" scoped>\n input, textarea, span {\n line-height: 1;\n color: inherit;\n }\n</style>"],"names":["ref","onUpdated","nextTick","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGE,UAAM,OAAO;AAEb,UAAM,QAAQ;AAYd,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IACjC;AAED,UAAM,WAAWA,QAAI,IAAI;AAEzB,aAAS,SAAS;;AAChB,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,SAAS;AAClD,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,WAAS,cAAS,UAAT,mBAAgB,gBAAe;AAAA,IAClF;AAGDC,QAAAA,UAAU,MAAM;AACf,UAAI,MAAM,SAAS,WAAYC,KAAAA,SAAS,MAAM;AAAG;AAAE,gBAAO;AAAA,QAAA;AAAA,OAAG;AAC5D,aAAQ;AAAA,IACZ,CAAG;AAEDC,QAAAA,UAAU,MAAM;AACd,UAAI,MAAM,SAAS,WAAYD,KAAAA,SAAS,MAAM;AAAG;AAAE,gBAAO;AAAA,QAAA;AAAA,OAAG;AAC7D,aAAQ;AAAA,IACZ,CAAG;AAED,UAAM,OAAOF,IAAAA,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Field.vue.cjs","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\n import { ref, computed, onUpdated, onMounted, nextTick } from 'vue'\n\n const emit = defineEmits(['update:field', 'focus', 'blur']);\n\n const props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n });\n\n if (props.value) {\n emit('update:field', props.value)\n }\n\n const textarea = ref(null);\n const input = ref(null);\n\n\n function resize() {\n if (textarea.value) textarea.value.style.height = \"1rem\";\n if (textarea.value) textarea.value.style.height = textarea.value?.scrollHeight + \"px\";\n }\n\n onUpdated(() => {\n if (props.type === 'textarea') \n nextTick(() => { { focus()} })\n resize()\n });\n\n onMounted(() => {\n if (props.type === 'textarea') \n nextTick(() => { { focus()} })\n resize()\n });\n\n const text = ref(props.field);\n</script>\n\n<template>\n <div \n :class=\"[\n $attrs.class, \n { \n 'bg-fourth-nano': validation \n }\n ]\" \n class=\"flex-center flex-nowrap flex\"\n >\n <div \n v-if=\"label\" \n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n\n <div class=\"w-100\">\n <input \n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n\n />\n <textarea \n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n style=\"resize: vertical;\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div> \n\n <slot></slot>\n\n <div \n v-if=\"symbol\" \n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style lang=\"scss\" scoped>\n input, textarea, span {\n line-height: 1;\n color: inherit;\n }\n</style>"],"names":["ref","onUpdated","nextTick","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGE,UAAM,OAAO;AAEb,UAAM,QAAQ;AAad,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IACjC;AAED,UAAM,WAAWA,QAAI,IAAI;AACzB,UAAM,QAAQA,QAAI,IAAI;AAGtB,aAAS,SAAS;;AAChB,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,SAAS;AAClD,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,WAAS,cAAS,UAAT,mBAAgB,gBAAe;AAAA,IAClF;AAEDC,QAAAA,UAAU,MAAM;AACf,UAAI,MAAM,SAAS;AAClBC,YAAAA,SAAS,MAAM;AAAG;AAAE,kBAAK;AAAA,UAAE;AAAA,QAAC,CAAE;AAC9B,aAAQ;AAAA,IACZ,CAAG;AAEDC,QAAAA,UAAU,MAAM;AACd,UAAI,MAAM,SAAS;AACjBD,YAAAA,SAAS,MAAM;AAAG;AAAE,kBAAK;AAAA,UAAE;AAAA,QAAC,CAAE;AAChC,aAAQ;AAAA,IACZ,CAAG;AAED,UAAM,OAAOF,IAAAA,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,7 +7,7 @@ const _hoisted_1 = {
7
7
  };
8
8
  const _hoisted_2 = { class: "t-nowrap" };
9
9
  const _hoisted_3 = { class: "w-100" };
10
- const _hoisted_4 = ["type", "value", "placeholder", "tabindex", "disabled"];
10
+ const _hoisted_4 = ["type", "value", "placeholder", "tabindex", "disabled", "autofocus"];
11
11
  const _hoisted_5 = ["value", "placeholder", "tabindex", "disabled"];
12
12
  const _hoisted_6 = {
13
13
  key: 1,
@@ -28,7 +28,8 @@ const _sfc_main = {
28
28
  value: null,
29
29
  validation: false,
30
30
  disabled: null,
31
- tabindex: -1
31
+ tabindex: -1,
32
+ autofocus: false
32
33
  },
33
34
  emits: ["update:field", "focus", "blur"],
34
35
  setup(__props, { emit: __emit }) {
@@ -38,25 +39,28 @@ const _sfc_main = {
38
39
  emit("update:field", props.value);
39
40
  }
40
41
  const textarea = ref(null);
42
+ const input = ref(null);
41
43
  function resize() {
42
44
  var _a;
43
45
  if (textarea.value) textarea.value.style.height = "1rem";
44
46
  if (textarea.value) textarea.value.style.height = ((_a = textarea.value) == null ? void 0 : _a.scrollHeight) + "px";
45
47
  }
46
48
  onUpdated(() => {
47
- if (props.type === "textarea") nextTick(() => {
48
- {
49
- focus();
50
- }
51
- });
49
+ if (props.type === "textarea")
50
+ nextTick(() => {
51
+ {
52
+ focus();
53
+ }
54
+ });
52
55
  resize();
53
56
  });
54
57
  onMounted(() => {
55
- if (props.type === "textarea") nextTick(() => {
56
- {
57
- focus();
58
- }
59
- });
58
+ if (props.type === "textarea")
59
+ nextTick(() => {
60
+ {
61
+ focus();
62
+ }
63
+ });
60
64
  resize();
61
65
  });
62
66
  const text = ref(props.field);
@@ -76,6 +80,8 @@ const _sfc_main = {
76
80
  createElementVNode("div", _hoisted_3, [
77
81
  __props.type !== "textarea" ? (openBlock(), createElementBlock("input", {
78
82
  key: 0,
83
+ ref_key: "input",
84
+ ref: input,
79
85
  onInput: _cache[0] || (_cache[0] = (event) => text.value = emit("update:field", event.target.value)),
80
86
  onFocus: _cache[1] || (_cache[1] = (event) => emit("focus", event)),
81
87
  onBlur: _cache[2] || (_cache[2] = (event) => emit("blur", event)),
@@ -84,7 +90,8 @@ const _sfc_main = {
84
90
  value: __props.field,
85
91
  placeholder: __props.placeholder,
86
92
  tabindex: __props.tabindex,
87
- disabled: __props.disabled
93
+ disabled: __props.disabled,
94
+ autofocus: __props.autofocus
88
95
  }, null, 40, _hoisted_4)) : (openBlock(), createElementBlock("textarea", {
89
96
  key: 1,
90
97
  ref_key: "textarea",
@@ -115,7 +122,7 @@ const _sfc_main = {
115
122
  };
116
123
  }
117
124
  };
118
- const Field = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-dd79a28b"]]);
125
+ const Field = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5621c50c"]]);
119
126
  export {
120
127
  Field as default
121
128
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Field.vue.js","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\n import { ref, computed, onUpdated, onMounted, nextTick } from 'vue'\n\n const emit = defineEmits(['update:field', 'focus', 'blur']);\n\n const props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1\n });\n\n if (props.value) {\n emit('update:field', props.value)\n }\n\n const textarea = ref(null);\n\n function resize() {\n if (textarea.value) textarea.value.style.height = \"1rem\";\n if (textarea.value) textarea.value.style.height = textarea.value?.scrollHeight + \"px\";\n }\n\n\n onUpdated(() => {\n if (props.type === 'textarea') nextTick(() => { { focus()} })\n resize()\n });\n\n onMounted(() => {\n if (props.type === 'textarea') nextTick(() => { { focus()} })\n resize()\n });\n\n const text = ref(props.field);\n</script>\n\n<template>\n <div \n :class=\"[\n $attrs.class, \n { \n 'bg-fourth-nano': validation \n }\n ]\" \n class=\"flex-center flex-nowrap flex\"\n >\n <div \n v-if=\"label\" \n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n\n <div class=\"w-100\">\n <input \n v-if=\"type !== 'textarea'\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n <textarea \n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n style=\"resize: vertical;\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div> \n\n <slot></slot>\n\n <div \n v-if=\"symbol\" \n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style lang=\"scss\" scoped>\n input, textarea, span {\n line-height: 1;\n color: inherit;\n }\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGE,UAAM,OAAO;AAEb,UAAM,QAAQ;AAYd,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IACjC;AAED,UAAM,WAAW,IAAI,IAAI;AAEzB,aAAS,SAAS;;AAChB,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,SAAS;AAClD,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,WAAS,cAAS,UAAT,mBAAgB,gBAAe;AAAA,IAClF;AAGD,cAAU,MAAM;AACf,UAAI,MAAM,SAAS,WAAY,UAAS,MAAM;AAAG;AAAE,gBAAO;AAAA,QAAA;AAAA,OAAG;AAC5D,aAAQ;AAAA,IACZ,CAAG;AAED,cAAU,MAAM;AACd,UAAI,MAAM,SAAS,WAAY,UAAS,MAAM;AAAG;AAAE,gBAAO;AAAA,QAAA;AAAA,OAAG;AAC7D,aAAQ;AAAA,IACZ,CAAG;AAED,UAAM,OAAO,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Field.vue.js","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\n import { ref, computed, onUpdated, onMounted, nextTick } from 'vue'\n\n const emit = defineEmits(['update:field', 'focus', 'blur']);\n\n const props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n });\n\n if (props.value) {\n emit('update:field', props.value)\n }\n\n const textarea = ref(null);\n const input = ref(null);\n\n\n function resize() {\n if (textarea.value) textarea.value.style.height = \"1rem\";\n if (textarea.value) textarea.value.style.height = textarea.value?.scrollHeight + \"px\";\n }\n\n onUpdated(() => {\n if (props.type === 'textarea') \n nextTick(() => { { focus()} })\n resize()\n });\n\n onMounted(() => {\n if (props.type === 'textarea') \n nextTick(() => { { focus()} })\n resize()\n });\n\n const text = ref(props.field);\n</script>\n\n<template>\n <div \n :class=\"[\n $attrs.class, \n { \n 'bg-fourth-nano': validation \n }\n ]\" \n class=\"flex-center flex-nowrap flex\"\n >\n <div \n v-if=\"label\" \n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n\n <div class=\"w-100\">\n <input \n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n\n />\n <textarea \n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n style=\"resize: vertical;\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div> \n\n <slot></slot>\n\n <div \n v-if=\"symbol\" \n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style lang=\"scss\" scoped>\n input, textarea, span {\n line-height: 1;\n color: inherit;\n }\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGE,UAAM,OAAO;AAEb,UAAM,QAAQ;AAad,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IACjC;AAED,UAAM,WAAW,IAAI,IAAI;AACzB,UAAM,QAAQ,IAAI,IAAI;AAGtB,aAAS,SAAS;;AAChB,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,SAAS;AAClD,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,WAAS,cAAS,UAAT,mBAAgB,gBAAe;AAAA,IAClF;AAED,cAAU,MAAM;AACf,UAAI,MAAM,SAAS;AAClB,iBAAS,MAAM;AAAG;AAAE,kBAAK;AAAA,UAAE;AAAA,QAAC,CAAE;AAC9B,aAAQ;AAAA,IACZ,CAAG;AAED,cAAU,MAAM;AACd,UAAI,MAAM,SAAS;AACjB,iBAAS,MAAM;AAAG;AAAE,kBAAK;AAAA,UAAE;AAAA,QAAC,CAAE;AAChC,aAAQ;AAAA,IACZ,CAAG;AAED,UAAM,OAAO,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,7 +9,7 @@ const _hoisted_1 = {
9
9
  };
10
10
  const _hoisted_2 = { class: "t-nowrap" };
11
11
  const _hoisted_3 = { class: "w-100" };
12
- const _hoisted_4 = ["type", "value", "placeholder", "tabindex", "disabled"];
12
+ const _hoisted_4 = ["type", "value", "placeholder", "tabindex", "disabled", "autofocus"];
13
13
  const _hoisted_5 = ["value", "placeholder", "tabindex", "disabled"];
14
14
  const _hoisted_6 = {
15
15
  key: 1,
@@ -30,7 +30,8 @@ const _sfc_main = {
30
30
  value: null,
31
31
  validation: false,
32
32
  disabled: null,
33
- tabindex: -1
33
+ tabindex: -1,
34
+ autofocus: false
34
35
  },
35
36
  emits: ["update:field", "focus", "blur"],
36
37
  setup(__props, { emit: __emit }) {
@@ -40,25 +41,28 @@ const _sfc_main = {
40
41
  emit("update:field", props.value);
41
42
  }
42
43
  const textarea = vue.ref(null);
44
+ const input = vue.ref(null);
43
45
  function resize() {
44
46
  var _a;
45
47
  if (textarea.value) textarea.value.style.height = "1rem";
46
48
  if (textarea.value) textarea.value.style.height = ((_a = textarea.value) == null ? void 0 : _a.scrollHeight) + "px";
47
49
  }
48
50
  vue.onUpdated(() => {
49
- if (props.type === "textarea") vue.nextTick(() => {
50
- {
51
- focus();
52
- }
53
- });
51
+ if (props.type === "textarea")
52
+ vue.nextTick(() => {
53
+ {
54
+ focus();
55
+ }
56
+ });
54
57
  resize();
55
58
  });
56
59
  vue.onMounted(() => {
57
- if (props.type === "textarea") vue.nextTick(() => {
58
- {
59
- focus();
60
- }
61
- });
60
+ if (props.type === "textarea")
61
+ vue.nextTick(() => {
62
+ {
63
+ focus();
64
+ }
65
+ });
62
66
  resize();
63
67
  });
64
68
  const text = vue.ref(props.field);
@@ -78,6 +82,8 @@ const _sfc_main = {
78
82
  vue.createElementVNode("div", _hoisted_3, [
79
83
  __props.type !== "textarea" ? (vue.openBlock(), vue.createElementBlock("input", {
80
84
  key: 0,
85
+ ref_key: "input",
86
+ ref: input,
81
87
  onInput: _cache[0] || (_cache[0] = (event) => text.value = emit("update:field", event.target.value)),
82
88
  onFocus: _cache[1] || (_cache[1] = (event) => emit("focus", event)),
83
89
  onBlur: _cache[2] || (_cache[2] = (event) => emit("blur", event)),
@@ -86,7 +92,8 @@ const _sfc_main = {
86
92
  value: __props.field,
87
93
  placeholder: __props.placeholder,
88
94
  tabindex: __props.tabindex,
89
- disabled: __props.disabled
95
+ disabled: __props.disabled,
96
+ autofocus: __props.autofocus
90
97
  }, null, 40, _hoisted_4)) : (vue.openBlock(), vue.createElementBlock("textarea", {
91
98
  key: 1,
92
99
  ref_key: "textarea",
@@ -117,6 +124,6 @@ const _sfc_main = {
117
124
  };
118
125
  }
119
126
  };
120
- const Field = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-dd79a28b"]]);
127
+ const Field = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-5621c50c"]]);
121
128
  exports.default = Field;
122
129
  //# sourceMappingURL=Field.vue2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.vue2.cjs","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\n import { ref, computed, onUpdated, onMounted, nextTick } from 'vue'\n\n const emit = defineEmits(['update:field', 'focus', 'blur']);\n\n const props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1\n });\n\n if (props.value) {\n emit('update:field', props.value)\n }\n\n const textarea = ref(null);\n\n function resize() {\n if (textarea.value) textarea.value.style.height = \"1rem\";\n if (textarea.value) textarea.value.style.height = textarea.value?.scrollHeight + \"px\";\n }\n\n\n onUpdated(() => {\n if (props.type === 'textarea') nextTick(() => { { focus()} })\n resize()\n });\n\n onMounted(() => {\n if (props.type === 'textarea') nextTick(() => { { focus()} })\n resize()\n });\n\n const text = ref(props.field);\n</script>\n\n<template>\n <div \n :class=\"[\n $attrs.class, \n { \n 'bg-fourth-nano': validation \n }\n ]\" \n class=\"flex-center flex-nowrap flex\"\n >\n <div \n v-if=\"label\" \n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n\n <div class=\"w-100\">\n <input \n v-if=\"type !== 'textarea'\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n <textarea \n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n style=\"resize: vertical;\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div> \n\n <slot></slot>\n\n <div \n v-if=\"symbol\" \n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style lang=\"scss\" scoped>\n input, textarea, span {\n line-height: 1;\n color: inherit;\n }\n</style>"],"names":["ref","onUpdated","nextTick","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGE,UAAM,OAAO;AAEb,UAAM,QAAQ;AAYd,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IACjC;AAED,UAAM,WAAWA,QAAI,IAAI;AAEzB,aAAS,SAAS;;AAChB,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,SAAS;AAClD,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,WAAS,cAAS,UAAT,mBAAgB,gBAAe;AAAA,IAClF;AAGDC,QAAAA,UAAU,MAAM;AACf,UAAI,MAAM,SAAS,WAAYC,KAAAA,SAAS,MAAM;AAAG;AAAE,gBAAO;AAAA,QAAA;AAAA,OAAG;AAC5D,aAAQ;AAAA,IACZ,CAAG;AAEDC,QAAAA,UAAU,MAAM;AACd,UAAI,MAAM,SAAS,WAAYD,KAAAA,SAAS,MAAM;AAAG;AAAE,gBAAO;AAAA,QAAA;AAAA,OAAG;AAC7D,aAAQ;AAAA,IACZ,CAAG;AAED,UAAM,OAAOF,IAAAA,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Field.vue2.cjs","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\n import { ref, computed, onUpdated, onMounted, nextTick } from 'vue'\n\n const emit = defineEmits(['update:field', 'focus', 'blur']);\n\n const props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n });\n\n if (props.value) {\n emit('update:field', props.value)\n }\n\n const textarea = ref(null);\n const input = ref(null);\n\n\n function resize() {\n if (textarea.value) textarea.value.style.height = \"1rem\";\n if (textarea.value) textarea.value.style.height = textarea.value?.scrollHeight + \"px\";\n }\n\n onUpdated(() => {\n if (props.type === 'textarea') \n nextTick(() => { { focus()} })\n resize()\n });\n\n onMounted(() => {\n if (props.type === 'textarea') \n nextTick(() => { { focus()} })\n resize()\n });\n\n const text = ref(props.field);\n</script>\n\n<template>\n <div \n :class=\"[\n $attrs.class, \n { \n 'bg-fourth-nano': validation \n }\n ]\" \n class=\"flex-center flex-nowrap flex\"\n >\n <div \n v-if=\"label\" \n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n\n <div class=\"w-100\">\n <input \n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n\n />\n <textarea \n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n style=\"resize: vertical;\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div> \n\n <slot></slot>\n\n <div \n v-if=\"symbol\" \n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style lang=\"scss\" scoped>\n input, textarea, span {\n line-height: 1;\n color: inherit;\n }\n</style>"],"names":["ref","onUpdated","nextTick","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGE,UAAM,OAAO;AAEb,UAAM,QAAQ;AAad,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IACjC;AAED,UAAM,WAAWA,QAAI,IAAI;AACzB,UAAM,QAAQA,QAAI,IAAI;AAGtB,aAAS,SAAS;;AAChB,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,SAAS;AAClD,UAAI,SAAS,MAAO,UAAS,MAAM,MAAM,WAAS,cAAS,UAAT,mBAAgB,gBAAe;AAAA,IAClF;AAEDC,QAAAA,UAAU,MAAM;AACf,UAAI,MAAM,SAAS;AAClBC,YAAAA,SAAS,MAAM;AAAG;AAAE,kBAAK;AAAA,UAAE;AAAA,QAAC,CAAE;AAC9B,aAAQ;AAAA,IACZ,CAAG;AAEDC,QAAAA,UAAU,MAAM;AACd,UAAI,MAAM,SAAS;AACjBD,YAAAA,SAAS,MAAM;AAAG;AAAE,kBAAK;AAAA,UAAE;AAAA,QAAC,CAAE;AAChC,aAAQ;AAAA,IACZ,CAAG;AAED,UAAM,OAAOF,IAAAA,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}