@ozdao/martyrs 0.2.464 → 0.2.465

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/{Media-ChTgw58S.js → Media-DCGbUujy.js} +1 -1
  2. package/dist/{Media-BKlUty0j.mjs → Media-DwVcRIAX.mjs} +1 -1
  3. package/dist/{main-Q8Dr1-HT.mjs → main-DEHjtgLs.mjs} +558 -557
  4. package/dist/main-UVdexuMN.js +11 -0
  5. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.cjs +11 -5
  6. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.cjs.map +1 -1
  7. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +12 -6
  8. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
  9. package/dist/martyrs/src/components/Button/Button.vue.cjs +3 -3
  10. package/dist/martyrs/src/components/Button/Button.vue.cjs.map +1 -1
  11. package/dist/martyrs/src/components/Button/Button.vue.js +3 -3
  12. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -1
  13. package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
  14. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
  15. package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
  16. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
  17. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  18. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  19. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  20. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  21. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +5 -5
  22. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  23. package/dist/martyrs/src/components/Feed/Feed.vue.js +5 -5
  24. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  25. package/dist/martyrs/src/components/Loader/{Loader.vue.cjs → Loader.vue2.cjs} +2 -2
  26. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -0
  27. package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +2 -2
  28. package/dist/martyrs/src/components/Loader/{Loader.vue.cjs.map → Loader.vue2.js.map} +1 -1
  29. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
  30. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
  31. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  32. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  33. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  34. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  35. package/dist/martyrs/src/components/Popup/{Popup.vue.cjs → Popup.vue2.cjs} +2 -2
  36. package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -0
  37. package/dist/martyrs/src/components/Popup/{Popup.vue.js → Popup.vue2.js} +2 -2
  38. package/dist/martyrs/src/components/Popup/{Popup.vue.cjs.map → Popup.vue2.js.map} +1 -1
  39. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.cjs → SelectMulti.vue.cjs} +2 -2
  40. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js.map → SelectMulti.vue.cjs.map} +1 -1
  41. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js → SelectMulti.vue.js} +2 -2
  42. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +1 -0
  43. package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs +1 -1
  44. package/dist/martyrs/src/components/Slider/Slider.native.vue.js +1 -1
  45. package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
  46. package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
  47. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  48. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  49. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  50. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  51. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +2 -2
  52. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +2 -2
  53. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  55. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  56. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
  58. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  59. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  61. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  62. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  63. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  64. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  65. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  66. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  67. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  69. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
  71. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  73. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +3 -3
  74. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
  75. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  77. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +2 -2
  78. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +2 -2
  79. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  81. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +3 -3
  82. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  83. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  85. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -2
  86. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  87. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
  88. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
  89. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  91. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +2 -2
  92. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -2
  93. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  95. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  97. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  98. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  99. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  100. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  101. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  102. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  103. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +2 -2
  104. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
  105. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +3 -2
  106. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  107. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +3 -2
  108. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  110. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  111. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  113. package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js +1 -1
  115. package/dist/martyrs/src/modules/icons/navigation/IconInfo.vue.cjs +1 -3
  116. package/dist/martyrs/src/modules/icons/navigation/IconInfo.vue.cjs.map +1 -1
  117. package/dist/martyrs/src/modules/icons/navigation/IconInfo.vue.js +1 -3
  118. package/dist/martyrs/src/modules/icons/navigation/IconInfo.vue.js.map +1 -1
  119. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  121. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  123. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +5 -1
  124. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  125. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +5 -1
  126. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  127. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +3 -3
  128. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +3 -3
  129. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  131. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
  132. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  133. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  135. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +3 -3
  136. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +3 -3
  137. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +3 -3
  138. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +3 -3
  139. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
  140. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
  141. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +2 -2
  142. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
  143. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
  144. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  145. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  146. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  147. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
  148. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
  149. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  150. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  151. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -2
  152. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  153. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  155. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  157. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  159. package/dist/martyrs/src/modules/products/components/blocks/Images360.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/products/components/blocks/Images360.vue.js +1 -1
  161. package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
  162. package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
  163. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +2 -2
  164. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
  165. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
  166. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
  167. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
  168. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
  169. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  171. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +71 -63
  172. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  173. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +79 -71
  174. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  175. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  176. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  177. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  178. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  179. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  180. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  181. package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
  182. package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
  183. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
  184. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
  185. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  186. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  187. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
  189. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  190. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  191. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
  192. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
  193. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  195. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  197. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  199. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  200. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  201. package/dist/martyrs.cjs.js +1 -1
  202. package/dist/martyrs.css +1 -1
  203. package/dist/martyrs.es.js +1 -1
  204. package/dist/style.css +3 -0
  205. package/package.json +1 -1
  206. package/src/components/BottomSheet/BottomSheet.vue +12 -6
  207. package/src/components/Button/Button.vue +2 -2
  208. package/src/components/Feed/Feed.vue +3 -3
  209. package/src/components/Popup/Popup.vue +4 -0
  210. package/src/modules/globals/views/components/layouts/Client.vue +1 -0
  211. package/src/modules/icons/navigation/IconInfo.vue +1 -3
  212. package/src/modules/orders/components/pages/OrderCreate.vue +6 -0
  213. package/src/modules/products/components/pages/Product.vue +64 -47
  214. package/dist/main-DIXWgUWx.js +0 -11
  215. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
  216. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
  217. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  218. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
  219. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  220. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  221. package/dist/martyrs/src/components/Popup/Popup.vue.js.map +0 -1
  222. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs.map +0 -1
  223. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
@@ -19,11 +19,19 @@ const _sfc_main = {
19
19
  "toggle"
20
20
  ],
21
21
  setup(__props, { emit: __emit }) {
22
+ const props = __props;
22
23
  const emits = __emit;
23
24
  const wrapper = vue.ref(null);
24
25
  const startY = vue.ref(0);
25
26
  const currentY = vue.ref(0);
26
27
  const dragging = vue.ref(false);
28
+ vue.watch(() => props.show, (newVal) => {
29
+ if (newVal) {
30
+ document.body.classList.add("no-scroll");
31
+ } else {
32
+ document.body.classList.remove("no-scroll");
33
+ }
34
+ });
27
35
  function startDrag(event) {
28
36
  dragging.value = true;
29
37
  startY.value = event.touches ? event.touches[0].clientY : event.clientY;
@@ -59,7 +67,7 @@ const _sfc_main = {
59
67
  key: 0,
60
68
  ref_key: "wrapper",
61
69
  ref: wrapper,
62
- class: vue.normalizeClass(["w-100 bs-black rows-1 h-100vh", {
70
+ class: vue.normalizeClass(["w-100 bs-black rows-1 h-100", {
63
71
  "pd-t-extra": _ctx.MOBILE_APP === "ios"
64
72
  }])
65
73
  }, [
@@ -72,11 +80,9 @@ const _sfc_main = {
72
80
  onMouseup: endDrag,
73
81
  onTouchend: endDrag,
74
82
  onMouseleave: endDrag,
75
- class: "bs-black d-block p-medium pos-relative bg-white flex-center flex uppercase z-index-2"
83
+ class: "bs-black pd-small br-b br-solid br-light pos-relative bg-white flex-center flex z-index-2"
76
84
  }, _cache[1] || (_cache[1] = [
77
- vue.createElementVNode("div", { class: "radius-extra flex flex-center pd-small t-black p-medium" }, [
78
- vue.createElementVNode("div", { class: "radius-extra pd-nano w-3r h-1r t-black p-medium bg-black-transp-10" })
79
- ], -1)
85
+ vue.createElementVNode("div", { class: "radius-extra pd-nano w-3r h-1r bg-light" }, null, -1)
80
86
  ]), 32),
81
87
  vue.renderSlot(_ctx.$slots, "default")
82
88
  ], 2)) : vue.createCommentVNode("", true)
@@ -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 v-if=\"show\"\n ref=\"wrapper\" \n class=\"w-100 bs-black rows-1 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 flex flex-center 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":";;;;;;;;;;;;;;;;;;;;;AAgDA,UAAM,QAAQ;AAId,UAAM,UAAUA,IAAG,IAAC,IAAI;AAExB,UAAM,SAASA,IAAG,IAAC,CAAC;AACpB,UAAM,WAAWA,IAAG,IAAC,CAAC;AACtB,UAAM,WAAWA,IAAG,IAAC,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,MACvC;AAAA,IACA;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,MAElB;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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 v-if=\"show\"\n ref=\"wrapper\" \n class=\"w-100 bs-black rows-1 h-100\"\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 pd-small br-b br-solid br-light pos-relative bg-white flex-center flex z-index-2\"\n >\n <div class=\"radius-extra pd-nano w-3r h-1r bg-light\"></div>\n </div>\n \n <slot></slot>\n </section>\n </transition>\n</template>\n\n<script setup>\nimport { ref, watch } 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\nwatch(() => props.show, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\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","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiCA,UAAM,QAAQ;AAad,UAAM,QAAQ;AAId,UAAM,UAAUA,IAAG,IAAC,IAAI;AAExB,UAAM,SAASA,IAAG,IAAC,CAAC;AACpB,UAAM,WAAWA,IAAG,IAAC,CAAC;AACtB,UAAM,WAAWA,IAAG,IAAC,KAAK;AAE1BC,QAAK,MAAC,MAAM,MAAM,MAAM,CAAC,WAAW;AAClC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MAC3C,OAAS;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC9C;AAAA,IACA,CAAC;AAED,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,MACvC;AAAA,IACA;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,MAElB;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { ref, createBlock, openBlock, Transition, withCtx, createElementBlock, createCommentVNode, normalizeClass, createElementVNode, renderSlot } from "vue";
1
+ import { ref, watch, createBlock, openBlock, Transition, withCtx, createElementBlock, createCommentVNode, normalizeClass, createElementVNode, renderSlot } from "vue";
2
2
  const _sfc_main = {
3
3
  __name: "BottomSheet",
4
4
  props: {
@@ -17,11 +17,19 @@ const _sfc_main = {
17
17
  "toggle"
18
18
  ],
19
19
  setup(__props, { emit: __emit }) {
20
+ const props = __props;
20
21
  const emits = __emit;
21
22
  const wrapper = ref(null);
22
23
  const startY = ref(0);
23
24
  const currentY = ref(0);
24
25
  const dragging = ref(false);
26
+ watch(() => props.show, (newVal) => {
27
+ if (newVal) {
28
+ document.body.classList.add("no-scroll");
29
+ } else {
30
+ document.body.classList.remove("no-scroll");
31
+ }
32
+ });
25
33
  function startDrag(event) {
26
34
  dragging.value = true;
27
35
  startY.value = event.touches ? event.touches[0].clientY : event.clientY;
@@ -57,7 +65,7 @@ const _sfc_main = {
57
65
  key: 0,
58
66
  ref_key: "wrapper",
59
67
  ref: wrapper,
60
- class: normalizeClass(["w-100 bs-black rows-1 h-100vh", {
68
+ class: normalizeClass(["w-100 bs-black rows-1 h-100", {
61
69
  "pd-t-extra": _ctx.MOBILE_APP === "ios"
62
70
  }])
63
71
  }, [
@@ -70,11 +78,9 @@ const _sfc_main = {
70
78
  onMouseup: endDrag,
71
79
  onTouchend: endDrag,
72
80
  onMouseleave: endDrag,
73
- class: "bs-black d-block p-medium pos-relative bg-white flex-center flex uppercase z-index-2"
81
+ class: "bs-black pd-small br-b br-solid br-light pos-relative bg-white flex-center flex z-index-2"
74
82
  }, _cache[1] || (_cache[1] = [
75
- createElementVNode("div", { class: "radius-extra flex flex-center pd-small t-black p-medium" }, [
76
- createElementVNode("div", { class: "radius-extra pd-nano w-3r h-1r t-black p-medium bg-black-transp-10" })
77
- ], -1)
83
+ createElementVNode("div", { class: "radius-extra pd-nano w-3r h-1r bg-light" }, null, -1)
78
84
  ]), 32),
79
85
  renderSlot(_ctx.$slots, "default")
80
86
  ], 2)) : createCommentVNode("", true)
@@ -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 v-if=\"show\"\n ref=\"wrapper\" \n class=\"w-100 bs-black rows-1 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 flex flex-center 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":";;;;;;;;;;;;;;;;;;;AAgDA,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,MACvC;AAAA,IACA;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,MAElB;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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 v-if=\"show\"\n ref=\"wrapper\" \n class=\"w-100 bs-black rows-1 h-100\"\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 pd-small br-b br-solid br-light pos-relative bg-white flex-center flex z-index-2\"\n >\n <div class=\"radius-extra pd-nano w-3r h-1r bg-light\"></div>\n </div>\n \n <slot></slot>\n </section>\n </transition>\n</template>\n\n<script setup>\nimport { ref, watch } 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\nwatch(() => props.show, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\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":";;;;;;;;;;;;;;;;;;;AAiCA,UAAM,QAAQ;AAad,UAAM,QAAQ;AAId,UAAM,UAAU,IAAI,IAAI;AAExB,UAAM,SAAS,IAAI,CAAC;AACpB,UAAM,WAAW,IAAI,CAAC;AACtB,UAAM,WAAW,IAAI,KAAK;AAE1B,UAAM,MAAM,MAAM,MAAM,CAAC,WAAW;AAClC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MAC3C,OAAS;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC9C;AAAA,IACA,CAAC;AAED,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,MACvC;AAAA,IACA;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,MAElB;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,16 +1,16 @@
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.vue.cjs");
4
+ const Loader = require("../Loader/Loader.vue2.cjs");
5
5
  ;/* empty css */
6
6
  const _hoisted_1 = ["disabled"];
7
7
  const _hoisted_2 = {
8
8
  key: 2,
9
- class: "t-semi loading t-black"
9
+ class: "t-semi t-center w-100 loading t-black"
10
10
  };
11
11
  const _hoisted_3 = {
12
12
  key: 3,
13
- class: "error"
13
+ class: "t-center w-100 error"
14
14
  };
15
15
  const _hoisted_4 = {
16
16
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.vue.cjs","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t\t\tconsole.log('click')\n\t\t\t\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n if (button.value) {\n button.value.classList.replace('bg-second', 'bg-main');\n button.value.style.pointerEvents = 'auto';\n loading.value = false;\n finished.value = false;\n error.value = null;\n }\n\t };\n\n\t try {\n await props.submit();\n\n button.value.classList.replace('bg-main', 'bg-second');\n\n loading.value = false;\n\n // Используем функцию сброса состояния кнопки здесь.\n if (props.showSucces) { \n\t\t\t\t\tfinished.value = true;\n setTimeout(resetButton, 500);\n } else {\n resetButton();\n }\n\n // Если есть callback, мы также установим таймер для его вызова.\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay);\n\n\t } catch (err) {\n \t\temits('error',err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке.\n button.value.classList.replace('bg-main', 'bg-fourth-nano');\n error.value = props.error;\n \n // После задержки снова сбрасываем состояние кнопки.\n setTimeout(() => {\n resetButton();\n // Так как класс кнопки был изменен, вернем его в исходное состояние.\n button.value.classList.replace('bg-fourth-nano', 'bg-main');\n }, 1330);\n\t }\n\t}\n\n</script>\n\n<template>\n\t<button @click.stop=\"Submit\" :disabled=\"validation\" ref=\"button\" class=\"button\">\n\t\t<transition name=\"FromTop\" >\n\t\t\t<!-- Slot -->\n\t\t\t<template v-if=\"!loading && !error && !finished || !showLoader\"><slot></slot></template>\n\t\t\t<!-- Loading Circle Animation -->\n\t\t\t<template v-else-if=\"loading && !error && showLoader\"><Loader class=\"pos-relative pos-t-0 pos-l-0 loading\"/></template>\n\t\t\t<!-- <Loader v-else-if=\"loading && !error && showLoader\"/> -->\n\t\t\t<!-- Success -->\n\t\t\t<span v-else-if=\"finished && showSucces\" class=\"t-semi loading t-black\">{{text.success}}</span>\n\t\t\t<!-- Error if not finished -->\n\t\t\t<span v-else-if=\"error\" class=\"error\">{{ error }}</span>\n\t\t</transition>\n\t\t<!-- Counter -->\n\t\t<p v-if=\"counter\" class=\"button-counter\">{{counter}}</p> \n\n\t</button> \n</template>\n\n\n<style lang=\"scss\">\n\t.FromTop-enter-active,\n\t.FromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.FromTop-enter-from,\n\t.FromTop-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\tbutton[disabled] {\n\t\topacity: 0.75 !important;\n\t \tpointer-events: none !important;\n\t \tcursor: default !important;\n\t \tcolor: rgba(var(--black), 0.5) !important;\n\t\tbackground: rgba(var(--grey), 1) !important; \n\t}\n\n\t.button {\n\t\tdisplay: flex;\n\n\t\tpadding: 0.75rem 1.5rem;\n\t\tborder-radius: 3rem;\n\n\t\ttransform: scale(1);\n\t\topacity: 1;\n\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\t\n\t\tcolor: black;\n\t\ttext-align: center;\n\t\ttext-transform: uppercase;\n\t\tfont-size: 1rem;\n\t\tletter-spacing: 5%;\n\n\t\ttransition: all 0.33s ease;\n\t \n\t\t&:hover {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.9;\n\t\t}\n\n\t\t&:active {\n\t\t\ttransform: scale(0.95);\n\t\t}\n\n\t\t&-small {\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tborder-radius: 0.5rem;\n\t\t\theight: fit-content;\n\t\t}\n\n\t\t.button-counter {\n\t\t\tposition: absolute;\n\t\t\tright: -8px;\n\t bottom: -8px;\n\t background: yellow;\n\t height: 16px;\n\t border-radius: 16px;\n\t width: 16px;\n\t font-weight: 500;\n\t text-align: center;\n\t line-height: 16px;\n\t font-size: 10px;\n\t\t}\n\t}\n</style>"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKC,UAAM,QAAQ;AAwCd,UAAM,QAAQ;AAEd,UAAM,SAASA,IAAG,IAAC,IAAI;AACvB,UAAM,QAAQA,IAAG,IAAC,IAAI;AACtB,UAAM,UAAUA,IAAG,IAAC,KAAK;AACzB,UAAM,WAAWA,IAAG,IAAC,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEjB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACvB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AACrD,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QACxB;AAAA,MACM;AAED,UAAI;AACD,cAAM,MAAM,OAAQ;AAEpB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AAErD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACzB,mBAAS,QAAQ;AACZ,qBAAW,aAAa,GAAG;AAAA,QACrC,OAAe;AACL,sBAAa;AAAA,QACvB;AAGQ,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAU,GAAE,MAAM,aAAa;AAAA,MAE5E,SAAQ,KAAK;AACb,cAAM,SAAQ,GAAG;AAEf,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,cAAM,QAAQ,MAAM;AAGpB,mBAAW,MAAM;AACf,sBAAa;AAEb,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC3D,GAAE,IAAI;AAAA,MACf;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Button.vue.cjs","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t\t\tconsole.log('click')\n\t\t\t\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n if (button.value) {\n button.value.classList.replace('bg-second', 'bg-main');\n button.value.style.pointerEvents = 'auto';\n loading.value = false;\n finished.value = false;\n error.value = null;\n }\n\t };\n\n\t try {\n await props.submit();\n\n button.value.classList.replace('bg-main', 'bg-second');\n\n loading.value = false;\n\n // Используем функцию сброса состояния кнопки здесь.\n if (props.showSucces) { \n\t\t\t\t\tfinished.value = true;\n setTimeout(resetButton, 500);\n } else {\n resetButton();\n }\n\n // Если есть callback, мы также установим таймер для его вызова.\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay);\n\n\t } catch (err) {\n \t\temits('error',err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке.\n button.value.classList.replace('bg-main', 'bg-fourth-nano');\n error.value = props.error;\n \n // После задержки снова сбрасываем состояние кнопки.\n setTimeout(() => {\n resetButton();\n // Так как класс кнопки был изменен, вернем его в исходное состояние.\n button.value.classList.replace('bg-fourth-nano', 'bg-main');\n }, 1330);\n\t }\n\t}\n\n</script>\n\n<template>\n\t<button @click.stop=\"Submit\" :disabled=\"validation\" ref=\"button\" class=\"button\">\n\t\t<transition name=\"FromTop\" >\n\t\t\t<!-- Slot -->\n\t\t\t<template v-if=\"!loading && !error && !finished || !showLoader\"><slot></slot></template>\n\t\t\t<!-- Loading Circle Animation -->\n\t\t\t<template v-else-if=\"loading && !error && showLoader\"><Loader class=\"pos-relative pos-t-0 pos-l-0 loading\"/></template>\n\t\t\t<!-- <Loader v-else-if=\"loading && !error && showLoader\"/> -->\n\t\t\t<!-- Success -->\n\t\t\t<span v-else-if=\"finished && showSucces\" class=\"t-semi t-center w-100 loading t-black\">{{text.success}}</span>\n\t\t\t<!-- Error if not finished -->\n\t\t\t<span v-else-if=\"error\" class=\"t-center w-100 error\">{{ error }}</span>\n\t\t</transition>\n\t\t<!-- Counter -->\n\t\t<p v-if=\"counter\" class=\"button-counter\">{{counter}}</p> \n\n\t</button> \n</template>\n\n\n<style lang=\"scss\">\n\t.FromTop-enter-active,\n\t.FromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.FromTop-enter-from,\n\t.FromTop-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\tbutton[disabled] {\n\t\topacity: 0.75 !important;\n\t \tpointer-events: none !important;\n\t \tcursor: default !important;\n\t \tcolor: rgba(var(--black), 0.5) !important;\n\t\tbackground: rgba(var(--grey), 1) !important; \n\t}\n\n\t.button {\n\t\tdisplay: flex;\n\n\t\tpadding: 0.75rem 1.5rem;\n\t\tborder-radius: 3rem;\n\n\t\ttransform: scale(1);\n\t\topacity: 1;\n\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\t\n\t\tcolor: black;\n\t\ttext-align: center;\n\t\ttext-transform: uppercase;\n\t\tfont-size: 1rem;\n\t\tletter-spacing: 5%;\n\n\t\ttransition: all 0.33s ease;\n\t \n\t\t&:hover {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.9;\n\t\t}\n\n\t\t&:active {\n\t\t\ttransform: scale(0.95);\n\t\t}\n\n\t\t&-small {\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tborder-radius: 0.5rem;\n\t\t\theight: fit-content;\n\t\t}\n\n\t\t.button-counter {\n\t\t\tposition: absolute;\n\t\t\tright: -8px;\n\t bottom: -8px;\n\t background: yellow;\n\t height: 16px;\n\t border-radius: 16px;\n\t width: 16px;\n\t font-weight: 500;\n\t text-align: center;\n\t line-height: 16px;\n\t font-size: 10px;\n\t\t}\n\t}\n</style>"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKC,UAAM,QAAQ;AAwCd,UAAM,QAAQ;AAEd,UAAM,SAASA,IAAG,IAAC,IAAI;AACvB,UAAM,QAAQA,IAAG,IAAC,IAAI;AACtB,UAAM,UAAUA,IAAG,IAAC,KAAK;AACzB,UAAM,WAAWA,IAAG,IAAC,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEjB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACvB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AACrD,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QACxB;AAAA,MACM;AAED,UAAI;AACD,cAAM,MAAM,OAAQ;AAEpB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AAErD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACzB,mBAAS,QAAQ;AACZ,qBAAW,aAAa,GAAG;AAAA,QACrC,OAAe;AACL,sBAAa;AAAA,QACvB;AAGQ,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAU,GAAE,MAAM,aAAa;AAAA,MAE5E,SAAQ,KAAK;AACb,cAAM,SAAQ,GAAG;AAEf,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,cAAM,QAAQ,MAAM;AAGpB,mBAAW,MAAM;AACf,sBAAa;AAEb,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC3D,GAAE,IAAI;AAAA,MACf;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,14 +1,14 @@
1
1
  import { ref, createElementBlock, openBlock, withModifiers, createVNode, createCommentVNode, Transition, withCtx, renderSlot, createBlock, toDisplayString } from "vue";
2
- import Loader from "../Loader/Loader.vue.js";
2
+ import Loader from "../Loader/Loader.vue2.js";
3
3
  /* empty css */
4
4
  const _hoisted_1 = ["disabled"];
5
5
  const _hoisted_2 = {
6
6
  key: 2,
7
- class: "t-semi loading t-black"
7
+ class: "t-semi t-center w-100 loading t-black"
8
8
  };
9
9
  const _hoisted_3 = {
10
10
  key: 3,
11
- class: "error"
11
+ class: "t-center w-100 error"
12
12
  };
13
13
  const _hoisted_4 = {
14
14
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.vue.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t\t\tconsole.log('click')\n\t\t\t\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n if (button.value) {\n button.value.classList.replace('bg-second', 'bg-main');\n button.value.style.pointerEvents = 'auto';\n loading.value = false;\n finished.value = false;\n error.value = null;\n }\n\t };\n\n\t try {\n await props.submit();\n\n button.value.classList.replace('bg-main', 'bg-second');\n\n loading.value = false;\n\n // Используем функцию сброса состояния кнопки здесь.\n if (props.showSucces) { \n\t\t\t\t\tfinished.value = true;\n setTimeout(resetButton, 500);\n } else {\n resetButton();\n }\n\n // Если есть callback, мы также установим таймер для его вызова.\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay);\n\n\t } catch (err) {\n \t\temits('error',err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке.\n button.value.classList.replace('bg-main', 'bg-fourth-nano');\n error.value = props.error;\n \n // После задержки снова сбрасываем состояние кнопки.\n setTimeout(() => {\n resetButton();\n // Так как класс кнопки был изменен, вернем его в исходное состояние.\n button.value.classList.replace('bg-fourth-nano', 'bg-main');\n }, 1330);\n\t }\n\t}\n\n</script>\n\n<template>\n\t<button @click.stop=\"Submit\" :disabled=\"validation\" ref=\"button\" class=\"button\">\n\t\t<transition name=\"FromTop\" >\n\t\t\t<!-- Slot -->\n\t\t\t<template v-if=\"!loading && !error && !finished || !showLoader\"><slot></slot></template>\n\t\t\t<!-- Loading Circle Animation -->\n\t\t\t<template v-else-if=\"loading && !error && showLoader\"><Loader class=\"pos-relative pos-t-0 pos-l-0 loading\"/></template>\n\t\t\t<!-- <Loader v-else-if=\"loading && !error && showLoader\"/> -->\n\t\t\t<!-- Success -->\n\t\t\t<span v-else-if=\"finished && showSucces\" class=\"t-semi loading t-black\">{{text.success}}</span>\n\t\t\t<!-- Error if not finished -->\n\t\t\t<span v-else-if=\"error\" class=\"error\">{{ error }}</span>\n\t\t</transition>\n\t\t<!-- Counter -->\n\t\t<p v-if=\"counter\" class=\"button-counter\">{{counter}}</p> \n\n\t</button> \n</template>\n\n\n<style lang=\"scss\">\n\t.FromTop-enter-active,\n\t.FromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.FromTop-enter-from,\n\t.FromTop-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\tbutton[disabled] {\n\t\topacity: 0.75 !important;\n\t \tpointer-events: none !important;\n\t \tcursor: default !important;\n\t \tcolor: rgba(var(--black), 0.5) !important;\n\t\tbackground: rgba(var(--grey), 1) !important; \n\t}\n\n\t.button {\n\t\tdisplay: flex;\n\n\t\tpadding: 0.75rem 1.5rem;\n\t\tborder-radius: 3rem;\n\n\t\ttransform: scale(1);\n\t\topacity: 1;\n\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\t\n\t\tcolor: black;\n\t\ttext-align: center;\n\t\ttext-transform: uppercase;\n\t\tfont-size: 1rem;\n\t\tletter-spacing: 5%;\n\n\t\ttransition: all 0.33s ease;\n\t \n\t\t&:hover {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.9;\n\t\t}\n\n\t\t&:active {\n\t\t\ttransform: scale(0.95);\n\t\t}\n\n\t\t&-small {\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tborder-radius: 0.5rem;\n\t\t\theight: fit-content;\n\t\t}\n\n\t\t.button-counter {\n\t\t\tposition: absolute;\n\t\t\tright: -8px;\n\t bottom: -8px;\n\t background: yellow;\n\t height: 16px;\n\t border-radius: 16px;\n\t width: 16px;\n\t font-weight: 500;\n\t text-align: center;\n\t line-height: 16px;\n\t font-size: 10px;\n\t\t}\n\t}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKC,UAAM,QAAQ;AAwCd,UAAM,QAAQ;AAEd,UAAM,SAAS,IAAI,IAAI;AACvB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,WAAW,IAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEjB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACvB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AACrD,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QACxB;AAAA,MACM;AAED,UAAI;AACD,cAAM,MAAM,OAAQ;AAEpB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AAErD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACzB,mBAAS,QAAQ;AACZ,qBAAW,aAAa,GAAG;AAAA,QACrC,OAAe;AACL,sBAAa;AAAA,QACvB;AAGQ,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAU,GAAE,MAAM,aAAa;AAAA,MAE5E,SAAQ,KAAK;AACb,cAAM,SAAQ,GAAG;AAEf,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,cAAM,QAAQ,MAAM;AAGpB,mBAAW,MAAM;AACf,sBAAa;AAEb,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC3D,GAAE,IAAI;AAAA,MACf;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Button.vue.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t\t\tconsole.log('click')\n\t\t\t\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n if (button.value) {\n button.value.classList.replace('bg-second', 'bg-main');\n button.value.style.pointerEvents = 'auto';\n loading.value = false;\n finished.value = false;\n error.value = null;\n }\n\t };\n\n\t try {\n await props.submit();\n\n button.value.classList.replace('bg-main', 'bg-second');\n\n loading.value = false;\n\n // Используем функцию сброса состояния кнопки здесь.\n if (props.showSucces) { \n\t\t\t\t\tfinished.value = true;\n setTimeout(resetButton, 500);\n } else {\n resetButton();\n }\n\n // Если есть callback, мы также установим таймер для его вызова.\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay);\n\n\t } catch (err) {\n \t\temits('error',err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке.\n button.value.classList.replace('bg-main', 'bg-fourth-nano');\n error.value = props.error;\n \n // После задержки снова сбрасываем состояние кнопки.\n setTimeout(() => {\n resetButton();\n // Так как класс кнопки был изменен, вернем его в исходное состояние.\n button.value.classList.replace('bg-fourth-nano', 'bg-main');\n }, 1330);\n\t }\n\t}\n\n</script>\n\n<template>\n\t<button @click.stop=\"Submit\" :disabled=\"validation\" ref=\"button\" class=\"button\">\n\t\t<transition name=\"FromTop\" >\n\t\t\t<!-- Slot -->\n\t\t\t<template v-if=\"!loading && !error && !finished || !showLoader\"><slot></slot></template>\n\t\t\t<!-- Loading Circle Animation -->\n\t\t\t<template v-else-if=\"loading && !error && showLoader\"><Loader class=\"pos-relative pos-t-0 pos-l-0 loading\"/></template>\n\t\t\t<!-- <Loader v-else-if=\"loading && !error && showLoader\"/> -->\n\t\t\t<!-- Success -->\n\t\t\t<span v-else-if=\"finished && showSucces\" class=\"t-semi t-center w-100 loading t-black\">{{text.success}}</span>\n\t\t\t<!-- Error if not finished -->\n\t\t\t<span v-else-if=\"error\" class=\"t-center w-100 error\">{{ error }}</span>\n\t\t</transition>\n\t\t<!-- Counter -->\n\t\t<p v-if=\"counter\" class=\"button-counter\">{{counter}}</p> \n\n\t</button> \n</template>\n\n\n<style lang=\"scss\">\n\t.FromTop-enter-active,\n\t.FromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.FromTop-enter-from,\n\t.FromTop-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\tbutton[disabled] {\n\t\topacity: 0.75 !important;\n\t \tpointer-events: none !important;\n\t \tcursor: default !important;\n\t \tcolor: rgba(var(--black), 0.5) !important;\n\t\tbackground: rgba(var(--grey), 1) !important; \n\t}\n\n\t.button {\n\t\tdisplay: flex;\n\n\t\tpadding: 0.75rem 1.5rem;\n\t\tborder-radius: 3rem;\n\n\t\ttransform: scale(1);\n\t\topacity: 1;\n\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\t\n\t\tcolor: black;\n\t\ttext-align: center;\n\t\ttext-transform: uppercase;\n\t\tfont-size: 1rem;\n\t\tletter-spacing: 5%;\n\n\t\ttransition: all 0.33s ease;\n\t \n\t\t&:hover {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.9;\n\t\t}\n\n\t\t&:active {\n\t\t\ttransform: scale(0.95);\n\t\t}\n\n\t\t&-small {\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tborder-radius: 0.5rem;\n\t\t\theight: fit-content;\n\t\t}\n\n\t\t.button-counter {\n\t\t\tposition: absolute;\n\t\t\tright: -8px;\n\t bottom: -8px;\n\t background: yellow;\n\t height: 16px;\n\t border-radius: 16px;\n\t width: 16px;\n\t font-weight: 500;\n\t text-align: center;\n\t line-height: 16px;\n\t font-size: 10px;\n\t\t}\n\t}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKC,UAAM,QAAQ;AAwCd,UAAM,QAAQ;AAEd,UAAM,SAAS,IAAI,IAAI;AACvB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,WAAW,IAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEjB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACvB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AACrD,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QACxB;AAAA,MACM;AAED,UAAI;AACD,cAAM,MAAM,OAAQ;AAEpB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AAErD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACzB,mBAAS,QAAQ;AACZ,qBAAW,aAAa,GAAG;AAAA,QACrC,OAAe;AACL,sBAAa;AAAA,QACvB;AAGQ,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAU,GAAE,MAAM,aAAa;AAAA,MAE5E,SAAQ,KAAK;AACb,cAAM,SAAQ,GAAG;AAEf,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,cAAM,QAAQ,MAAM;AAGpB,mBAAW,MAAM;AACf,sBAAa;AAEb,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC3D,GAAE,IAAI;AAAA,MACf;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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
- ;/* empty css */
4
+ ;/* empty css */
5
5
  const _hoisted_1 = { class: "font-main" };
6
6
  const _hoisted_2 = { class: "t-truncate" };
7
7
  const _hoisted_3 = {
@@ -30,4 +30,4 @@ const _sfc_main = {
30
30
  }
31
31
  };
32
32
  exports.default = _sfc_main;
33
- //# sourceMappingURL=Chips.vue2.cjs.map
33
+ //# sourceMappingURL=Chips.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chips.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { createElementBlock, openBlock, renderSlot, Fragment, renderList, normalizeClass, createElementVNode, toDisplayString } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  const _hoisted_1 = { class: "font-main" };
4
4
  const _hoisted_2 = { class: "t-truncate" };
5
5
  const _hoisted_3 = {
@@ -30,4 +30,4 @@ const _sfc_main = {
30
30
  export {
31
31
  _sfc_main as default
32
32
  };
33
- //# sourceMappingURL=Chips.vue2.js.map
33
+ //# sourceMappingURL=Chips.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chips.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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 clickOutside = require("../FieldPhone/click-outside.cjs");
5
- ;/* empty css */
5
+ ;/* empty css */
6
6
  const _hoisted_1 = {
7
7
  key: 0,
8
8
  class: "w-100 h-100 flex-center flex"
@@ -61,4 +61,4 @@ const _sfc_main = {
61
61
  }
62
62
  };
63
63
  exports.default = _sfc_main;
64
- //# sourceMappingURL=Dropdown.vue2.cjs.map
64
+ //# sourceMappingURL=Dropdown.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.vue2.js","sources":["../../../../../src/components/Dropdown/Dropdown.vue"],"sourcesContent":["<template>\n <div class=\"dropdown pos-relative\" v-click-outside=\"clickedOutside\" @click.stop=\"isOpen = !isOpen\">\n <div v-if=\"isComponentLabel\" class=\"w-100 h-100 flex-center flex\">\n <component :is=\"label.component\" v-bind=\"label.props\" :class=\"label.class\"></component>\n </div>\n <div v-else>\n {{ label }}\n </div>\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <div \n v-show=\"isOpen\" \n :style=\"{ left: align === 'left' ? '0' : 'auto', right: align === 'right' ? '0' : 'auto' }\" \n class=\"dropdown-content radius-big\" \n >\n <slot></slot>\n </div>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport clickOutside from '../FieldPhone/click-outside';\n\nlet vClickOutside = clickOutside\n\nconst props = defineProps({\n label: {\n type: [String, Object],\n default: 'Open'\n },\n align: {\n type: String,\n default: 'left'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nfunction clickedOutside () {\n isOpen.value = false\n}\n</script>\n\n<style >\n.dropdown-content {\n display: block;\n position: absolute;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n}\n\n/*.dropdown:hover .dropdown-content {\n display: block;\n}*/\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,QAAI,gBAAgB;AAEpB,UAAM,QAAQ;AAWd,UAAM,SAAS,IAAI,KAAK;AACxB,UAAM,mBAAmB,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,aAAS,iBAAkB;AACzB,aAAO,QAAQ;AAAA,IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Dropdown.vue.cjs","sources":["../../../../../src/components/Dropdown/Dropdown.vue"],"sourcesContent":["<template>\n <div class=\"dropdown pos-relative\" v-click-outside=\"clickedOutside\" @click.stop=\"isOpen = !isOpen\">\n <div v-if=\"isComponentLabel\" class=\"w-100 h-100 flex-center flex\">\n <component :is=\"label.component\" v-bind=\"label.props\" :class=\"label.class\"></component>\n </div>\n <div v-else>\n {{ label }}\n </div>\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <div \n v-show=\"isOpen\" \n :style=\"{ left: align === 'left' ? '0' : 'auto', right: align === 'right' ? '0' : 'auto' }\" \n class=\"dropdown-content radius-big\" \n >\n <slot></slot>\n </div>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport clickOutside from '../FieldPhone/click-outside';\n\nlet vClickOutside = clickOutside\n\nconst props = defineProps({\n label: {\n type: [String, Object],\n default: 'Open'\n },\n align: {\n type: String,\n default: 'left'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nfunction clickedOutside () {\n isOpen.value = false\n}\n</script>\n\n<style >\n.dropdown-content {\n display: block;\n position: absolute;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n}\n\n/*.dropdown:hover .dropdown-content {\n display: block;\n}*/\n</style>\n"],"names":["clickOutside","ref","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwBA,QAAI,gBAAgBA,aAAAA;AAEpB,UAAM,QAAQ;AAWd,UAAM,SAASC,IAAG,IAAC,KAAK;AACxB,UAAM,mBAAmBC,IAAAA,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,aAAS,iBAAkB;AACzB,aAAO,QAAQ;AAAA,IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, withDirectives, createElementBlock, openBlock, withModifiers, createVNode, createBlock, resolveDynamicComponent, mergeProps, toDisplayString, Transition, withCtx, createElementVNode, normalizeStyle, renderSlot, vShow, unref } from "vue";
2
2
  import clickOutside from "../FieldPhone/click-outside.js";
3
- /* empty css */
3
+ /* empty css */
4
4
  const _hoisted_1 = {
5
5
  key: 0,
6
6
  class: "w-100 h-100 flex-center flex"
@@ -61,4 +61,4 @@ const _sfc_main = {
61
61
  export {
62
62
  _sfc_main as default
63
63
  };
64
- //# sourceMappingURL=Dropdown.vue2.js.map
64
+ //# sourceMappingURL=Dropdown.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropdown.vue.js","sources":["../../../../../src/components/Dropdown/Dropdown.vue"],"sourcesContent":["<template>\n <div class=\"dropdown pos-relative\" v-click-outside=\"clickedOutside\" @click.stop=\"isOpen = !isOpen\">\n <div v-if=\"isComponentLabel\" class=\"w-100 h-100 flex-center flex\">\n <component :is=\"label.component\" v-bind=\"label.props\" :class=\"label.class\"></component>\n </div>\n <div v-else>\n {{ label }}\n </div>\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <div \n v-show=\"isOpen\" \n :style=\"{ left: align === 'left' ? '0' : 'auto', right: align === 'right' ? '0' : 'auto' }\" \n class=\"dropdown-content radius-big\" \n >\n <slot></slot>\n </div>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport clickOutside from '../FieldPhone/click-outside';\n\nlet vClickOutside = clickOutside\n\nconst props = defineProps({\n label: {\n type: [String, Object],\n default: 'Open'\n },\n align: {\n type: String,\n default: 'left'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nfunction clickedOutside () {\n isOpen.value = false\n}\n</script>\n\n<style >\n.dropdown-content {\n display: block;\n position: absolute;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n}\n\n/*.dropdown:hover .dropdown-content {\n display: block;\n}*/\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,QAAI,gBAAgB;AAEpB,UAAM,QAAQ;AAWd,UAAM,SAAS,IAAI,KAAK;AACxB,UAAM,mBAAmB,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,aAAS,iBAAkB;AACzB,aAAO,QAAQ;AAAA,IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,10 @@
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.vue.cjs");
4
+ const Loader = require("../Loader/Loader.vue2.cjs");
5
5
  const Skeleton = require("../Skeleton/Skeleton.vue.cjs");
6
6
  const EmptyState = require("../EmptyState/EmptyState.vue.cjs");
7
- const Dropdown = require("../Dropdown/Dropdown.vue2.cjs");
7
+ const Dropdown = require("../Dropdown/Dropdown.vue.cjs");
8
8
  const Calendar = require("../DatePicker/Calendar.vue.cjs");
9
9
  const BottomSheet = require("../BottomSheet/BottomSheet.vue.cjs");
10
10
  const BlockSearch = require("../../modules/globals/views/components/blocks/BlockSearch.vue.cjs");
@@ -226,8 +226,8 @@ const _sfc_main = {
226
226
  vue.createVNode(BottomSheet.default, {
227
227
  show: filter.value.active,
228
228
  onToggle: _cache[3] || (_cache[3] = () => filter.value.active = false),
229
- class: vue.normalizeClass(["z-index-10 pos-absolute pos-t-0 pos-r-0", {
230
- "pos-t-0": filter.value.active,
229
+ class: vue.normalizeClass(["z-index-10 pos-fixed pos-r-0", {
230
+ "pos-t-4r": filter.value.active,
231
231
  "pos-t-100": !filter.value.active
232
232
  }])
233
233
  }, {
@@ -239,7 +239,7 @@ const _sfc_main = {
239
239
  onClick_filter: _cache[2] || (_cache[2] = () => {
240
240
  filter.value.active = false;
241
241
  }),
242
- class: "h-100 w-100 pd-small bg-light"
242
+ class: "h-100 w-100 pd-small pd-b-5r bg-light"
243
243
  }, null, 8, ["filter", "options"])
244
244
  ]),
245
245
  _: 1
@@ -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=\"mn-b-thin 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 :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-absolute 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 @click_filter=\"() => { filter.active = false } \"\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 v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n :class=\"$attrs.class\"\n >\n <Skeleton\n v-if=\"isLoading && !skeleton?.hide\"\n v-for=\"i in currentLimit\" \n :structure=\"skeleton.structure\"\n :horizontal=\"skeleton.horizontal\"\n :loading=\"isLoading\"\n :key=\"'skeleton-' + i\"\n class=\"radius-medium o-hidden d-block\"\n />\n <Loader v-if=\"isLoading && skeleton?.hide\"/>\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-medium\"\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 '@martyrs/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Skeleton from '@martyrs/src/components/Skeleton/Skeleton.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@martyrs/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@martyrs/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@martyrs/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@martyrs/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@martyrs/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@martyrs/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 LoadMore: {\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: 'Nothing found',\n description: 'Sorry, nothing found',\n },\n }),\n },\n skeleton: {\n type: Object,\n default: () => ({\n hide: false,\n horizontal: false,\n structure: [\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'large' },\n { block: 'button', size: 'small' }\n ]\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: 10, \n skip: 0 ,\n owner: null,\n creator: null,\n customer: 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}, 500);\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 && props.LoadMore) {\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=\"mn-b-thin 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 :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-r-0\"\n :class=\"{\n 'pos-t-4r': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n @click_filter=\"() => { filter.active = false } \"\n class=\"h-100 w-100 pd-small pd-b-5r 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 v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n :class=\"$attrs.class\"\n >\n <Skeleton\n v-if=\"isLoading && !skeleton?.hide\"\n v-for=\"i in currentLimit\" \n :structure=\"skeleton.structure\"\n :horizontal=\"skeleton.horizontal\"\n :loading=\"isLoading\"\n :key=\"'skeleton-' + i\"\n class=\"radius-medium o-hidden d-block\"\n />\n <Loader v-if=\"isLoading && skeleton?.hide\"/>\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-medium\"\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 '@martyrs/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Skeleton from '@martyrs/src/components/Skeleton/Skeleton.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@martyrs/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@martyrs/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@martyrs/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@martyrs/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@martyrs/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@martyrs/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 LoadMore: {\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: 'Nothing found',\n description: 'Sorry, nothing found',\n },\n }),\n },\n skeleton: {\n type: Object,\n default: () => ({\n hide: false,\n horizontal: false,\n structure: [\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'large' },\n { block: 'button', size: 'small' }\n ]\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: 10, \n skip: 0 ,\n owner: null,\n creator: null,\n customer: 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}, 500);\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 && props.LoadMore) {\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,8 +1,8 @@
1
1
  import { mergeModels, useModel, shallowRef, ref, watch, onMounted, onUnmounted, createElementBlock, openBlock, Fragment, createCommentVNode, createBlock, createVNode, normalizeClass, createElementVNode, withCtx, unref, TransitionGroup, renderList, renderSlot } from "vue";
2
- import Loader from "../Loader/Loader.vue.js";
2
+ import Loader from "../Loader/Loader.vue2.js";
3
3
  import Skeleton from "../Skeleton/Skeleton.vue.js";
4
4
  import _sfc_main$9 from "../EmptyState/EmptyState.vue.js";
5
- import _sfc_main$5 from "../Dropdown/Dropdown.vue2.js";
5
+ import _sfc_main$5 from "../Dropdown/Dropdown.vue.js";
6
6
  import Calendar from "../DatePicker/Calendar.vue.js";
7
7
  import _sfc_main$3 from "../BottomSheet/BottomSheet.vue.js";
8
8
  import _sfc_main$1 from "../../modules/globals/views/components/blocks/BlockSearch.vue.js";
@@ -224,8 +224,8 @@ const _sfc_main = {
224
224
  createVNode(_sfc_main$3, {
225
225
  show: filter.value.active,
226
226
  onToggle: _cache[3] || (_cache[3] = () => filter.value.active = false),
227
- class: normalizeClass(["z-index-10 pos-absolute pos-t-0 pos-r-0", {
228
- "pos-t-0": filter.value.active,
227
+ class: normalizeClass(["z-index-10 pos-fixed pos-r-0", {
228
+ "pos-t-4r": filter.value.active,
229
229
  "pos-t-100": !filter.value.active
230
230
  }])
231
231
  }, {
@@ -237,7 +237,7 @@ const _sfc_main = {
237
237
  onClick_filter: _cache[2] || (_cache[2] = () => {
238
238
  filter.value.active = false;
239
239
  }),
240
- class: "h-100 w-100 pd-small bg-light"
240
+ class: "h-100 w-100 pd-small pd-b-5r bg-light"
241
241
  }, null, 8, ["filter", "options"])
242
242
  ]),
243
243
  _: 1
@@ -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=\"mn-b-thin 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 :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-absolute 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 @click_filter=\"() => { filter.active = false } \"\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 v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n :class=\"$attrs.class\"\n >\n <Skeleton\n v-if=\"isLoading && !skeleton?.hide\"\n v-for=\"i in currentLimit\" \n :structure=\"skeleton.structure\"\n :horizontal=\"skeleton.horizontal\"\n :loading=\"isLoading\"\n :key=\"'skeleton-' + i\"\n class=\"radius-medium o-hidden d-block\"\n />\n <Loader v-if=\"isLoading && skeleton?.hide\"/>\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-medium\"\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 '@martyrs/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Skeleton from '@martyrs/src/components/Skeleton/Skeleton.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@martyrs/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@martyrs/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@martyrs/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@martyrs/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@martyrs/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@martyrs/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 LoadMore: {\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: 'Nothing found',\n description: 'Sorry, nothing found',\n },\n }),\n },\n skeleton: {\n type: Object,\n default: () => ({\n hide: false,\n horizontal: false,\n structure: [\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'large' },\n { block: 'button', size: 'small' }\n ]\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: 10, \n skip: 0 ,\n owner: null,\n creator: null,\n customer: 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}, 500);\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 && props.LoadMore) {\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=\"mn-b-thin 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 :show=\"filter.active\"\n @toggle=\"() => filter.active = false\"\n class=\"z-index-10 pos-fixed pos-r-0\"\n :class=\"{\n 'pos-t-4r': filter.active,\n 'pos-t-100': !filter.active\n }\"\n >\n <BlockFilter\n v-model:filter=\"filter\"\n :options=\"filter.options\"\n @click_filter=\"() => { filter.active = false } \"\n class=\"h-100 w-100 pd-small pd-b-5r 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 v-if=\"isLoading\"\n tag=\"ul\" \n name=\"scaleTransition\" \n :class=\"$attrs.class\"\n >\n <Skeleton\n v-if=\"isLoading && !skeleton?.hide\"\n v-for=\"i in currentLimit\" \n :structure=\"skeleton.structure\"\n :horizontal=\"skeleton.horizontal\"\n :loading=\"isLoading\"\n :key=\"'skeleton-' + i\"\n class=\"radius-medium o-hidden d-block\"\n />\n <Loader v-if=\"isLoading && skeleton?.hide\"/>\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-medium\"\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 '@martyrs/src/modules/icons/skeletons/SkeletonEvent.vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\nimport Skeleton from '@martyrs/src/components/Skeleton/Skeleton.vue';\nimport EmptyState from '@martyrs/src/components/EmptyState/EmptyState.vue';\nimport Dropdown from \"@martyrs/src/components/Dropdown/Dropdown.vue\";\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport BottomSheet from '@martyrs/src/components/BottomSheet/BottomSheet.vue';\n\nimport BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\nimport BlockSorting from '@martyrs/src/modules/globals/views/components/blocks/BlockSorting.vue'\nimport BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\nimport ButtonSort from '@martyrs/src/modules/globals/views/components/elements/ButtonSort.vue'\nimport ButtonDate from '@martyrs/src/modules/globals/views/components/elements/ButtonDate.vue'\n\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconEvents from '@martyrs/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 LoadMore: {\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: 'Nothing found',\n description: 'Sorry, nothing found',\n },\n }),\n },\n skeleton: {\n type: Object,\n default: () => ({\n hide: false,\n horizontal: false,\n structure: [\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'large' },\n { block: 'button', size: 'small' }\n ]\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: 10, \n skip: 0 ,\n owner: null,\n creator: null,\n customer: 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}, 500);\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 && props.LoadMore) {\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,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
- ;/* empty css */
4
+ ;/* empty css */
5
5
  const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export-helper.cjs");
6
6
  const _sfc_main = {
7
7
  props: {
@@ -58,4 +58,4 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
58
58
  }
59
59
  const Loader = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
60
60
  exports.default = Loader;
61
- //# sourceMappingURL=Loader.vue.cjs.map
61
+ //# sourceMappingURL=Loader.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loader.vue2.cjs","sources":["../../../../../src/components/Loader/Loader.vue"],"sourcesContent":["<template>\n <div class=\"circular-loader\" :class=\"{ 'circular-loader-centered': centered }\">\n <svg viewBox=\"25 25 50 50\">\n <circle class=\"circular-loader-fill\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"4\" stroke-miterlimit=\"10\" />\n <circle class=\"circular-loader-circle\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"4\" stroke-miterlimit=\"10\" />\n </svg>\n <div v-if=\"progress\" class=\"progress-text\">{{ progress }}</div>\n <div v-if=\"status\" class=\"uppercase t-semi w-m-10r status-text\">{{ status }}</div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n progress: {\n type: Number,\n default: null,\n },\n status: {\n type: String,\n default: null,\n },\n centered: {\n type: Boolean,\n default: true, // По умолчанию лоадер центрирован (для обратной совместимости)\n },\n },\n};\n</script>\n\n<style>\n.circular-loader {\n position: relative;\n z-index: 50;\n height: 2rem;\n width: 2rem;\n}\n\n.circular-loader-centered {\n top: calc(50% - 1rem);\n left: calc(50% - 1rem);\n}\n\n.circular-loader svg {\n animation: rotate 2s linear infinite;\n}\n\n.circular-loader-circle {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n stroke: rgb(var(--main));\n animation: dash 1.5s ease-in-out infinite;\n}\n\n.circular-loader-fill {\n stroke-linecap: round;\n stroke: rgba(var(--black),0.2);\n}\n\n.progress-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 0.8rem;\n color: rgb(var(--main));;\n}\n\n.status-text {\n position: absolute;\n top: 120%;\n left: calc(50% - 5rem);\n font-size: 0.8rem;\n width: 10rem !important;\n text-align: center;\n}\n\n@keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: -124;\n }\n}\n</style>"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_createCommentVNode"],"mappings":";;;;;AAYA,MAAK,YAAU;AAAA,EACb,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IACV;AAAA,EACF;AACH;;EA3BA,KAAA;AAAA,EAMyB,OAAM;;;EAN/B,KAAA;AAAA,EAOuB,OAAM;;;0BAN3BA,IAOM,mBAAA,OAAA;AAAA,IAPD,OADPC,IAAA,eAAA,CACa,mBAAiB,EAAA,4BAAuC,OAAQ,UAAA,CAAA;AAAA;8BACzEC,IAGM,mBAAA,OAAA,EAHD,SAAQ,iBAAa;AAAA,MACxBA,IAAAA,mBAAkH,UAAA;AAAA,QAA1G,OAAM;AAAA,QAAuB,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAK,MAAK;AAAA,QAAO,gBAAa;AAAA,QAAI,qBAAkB;AAAA;MAC3GA,IAAAA,mBAAoH,UAAA;AAAA,QAA5G,OAAM;AAAA,QAAyB,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAK,MAAK;AAAA,QAAO,gBAAa;AAAA,QAAI,qBAAkB;AAAA;;IAEpG,OAAQ,6BAAnBF,IAA+D,mBAAA,OAA/D,YAA+DG,IAAAA,gBAAjB,OAAQ,QAAA,GAAA,CAAA,KAN1DC,IAAA,mBAAA,IAAA,IAAA;AAAA,IAOe,OAAM,2BAAjBJ,IAAkF,mBAAA,OAAlF,YAAkFG,IAAAA,gBAAf,OAAM,MAAA,GAAA,CAAA,KAP7EC,IAAA,mBAAA,IAAA,IAAA;AAAA;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { createElementBlock, openBlock, normalizeClass, createElementVNode, createCommentVNode, toDisplayString } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
4
4
  const _sfc_main = {
5
5
  props: {
@@ -58,4 +58,4 @@ const Loader = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]])
58
58
  export {
59
59
  Loader as default
60
60
  };
61
- //# sourceMappingURL=Loader.vue.js.map
61
+ //# sourceMappingURL=Loader.vue2.js.map