@ozdao/martyrs 0.2.576 → 0.2.578

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 (155) hide show
  1. package/dist/builder.js +33 -33
  2. package/dist/{main-BfEQkhXS.js → main-EZaj64lH.js} +1204 -1208
  3. package/dist/martyrs/dist/{main-BfEQkhXS.js → main-EZaj64lH.js} +78 -78
  4. package/dist/martyrs/dist/main-EZaj64lH.js.map +1 -0
  5. package/dist/martyrs/dist/{web-BqTV9va1.js → web-ClbcbWYJ.js} +2 -2
  6. package/dist/martyrs/dist/{web-BqTV9va1.js.map → web-ClbcbWYJ.js.map} +1 -1
  7. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +1 -1
  8. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
  9. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +3 -3
  10. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
  11. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  12. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  13. package/dist/martyrs/src/components/EditImages/{EditImages.vue2.js → EditImages.vue.js} +2 -2
  14. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -0
  15. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  16. package/dist/martyrs/src/components/Feed/Feed.vue.js +3 -3
  17. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  18. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
  19. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  20. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  21. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  22. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  23. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  24. package/dist/martyrs/src/components/Slider/Slider.vue.js +91 -97
  25. package/dist/martyrs/src/components/Slider/Slider.vue.js.map +1 -1
  26. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
  27. package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.js.map +1 -0
  28. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
  29. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  30. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  31. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  32. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  33. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  34. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  35. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  36. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  38. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  40. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  41. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  42. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +2 -2
  43. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  44. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
  45. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +2 -2
  46. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +1 -1
  47. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +2 -2
  48. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  49. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue2.js → Filters.vue.js} +2 -2
  50. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +1 -0
  51. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  52. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  53. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  54. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
  55. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +3 -3
  56. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  57. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  58. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  59. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  60. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  61. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  62. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  63. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  64. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
  65. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  66. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  67. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  68. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  69. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +2 -2
  70. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  71. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  72. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  73. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  74. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  75. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  76. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  77. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  78. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  79. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +3 -3
  80. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  81. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  82. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +3 -3
  83. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  84. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +3 -3
  85. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  86. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +1 -1
  87. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  88. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  89. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  90. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  91. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  92. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  93. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  94. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  95. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  96. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  97. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  98. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
  99. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
  100. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  101. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  102. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
  103. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  104. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +1 -1
  105. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
  106. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  107. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  108. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  109. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  110. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  111. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  112. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  113. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  114. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  115. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  116. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -4
  117. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  118. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  119. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +2 -2
  120. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  121. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  122. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  123. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  124. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  125. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  126. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  127. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
  128. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  129. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  130. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +2 -2
  131. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  132. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
  133. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  134. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  135. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  136. package/dist/martyrs.css +1 -1
  137. package/dist/martyrs.es.js +1 -1
  138. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  139. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  140. package/dist/style.css +3 -5
  141. package/dist/{web-BqTV9va1.js → web-ClbcbWYJ.js} +1 -1
  142. package/package.json +1 -1
  143. package/src/components/BottomSheet/BottomSheet.vue +1 -1
  144. package/src/components/Slider/Slider.vue +111 -150
  145. package/src/jit/rules.js +42 -41
  146. package/src/styles/layout.scss +0 -3
  147. package/src/styles/reset.scss +5 -2
  148. package/dist/martyrs/dist/main-BfEQkhXS.js.map +0 -1
  149. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  150. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +0 -1
  151. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +0 -1
  152. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
  153. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  154. package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
  155. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { W as Rn } from "./main-BfEQkhXS.js";
1
+ import { W as Rn } from "./main-EZaj64lH.js";
2
2
  class f extends Rn {
3
3
  constructor() {
4
4
  super(...arguments), this.group = "CapacitorStorage";
@@ -52,4 +52,4 @@ class f extends Rn {
52
52
  export {
53
53
  f as PreferencesWeb
54
54
  };
55
- //# sourceMappingURL=web-BqTV9va1.js.map
55
+ //# sourceMappingURL=web-ClbcbWYJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-BqTV9va1.js","sources":["../../web-BqTV9va1.js"],"sourcesContent":["import { W as p } from \"./main-BfEQkhXS.js\";\nclass f extends p {\n constructor() {\n super(...arguments), this.group = \"CapacitorStorage\";\n }\n async configure({ group: e }) {\n typeof e == \"string\" && (this.group = e);\n }\n async get(e) {\n return { value: this.impl.getItem(this.applyPrefix(e.key)) };\n }\n async set(e) {\n this.impl.setItem(this.applyPrefix(e.key), e.value);\n }\n async remove(e) {\n this.impl.removeItem(this.applyPrefix(e.key));\n }\n async keys() {\n return { keys: this.rawKeys().map((t) => t.substring(this.prefix.length)) };\n }\n async clear() {\n for (const e of this.rawKeys())\n this.impl.removeItem(e);\n }\n async migrate() {\n var e;\n const t = [], s = [], n = \"_cap_\", o = Object.keys(this.impl).filter((i) => i.indexOf(n) === 0);\n for (const i of o) {\n const r = i.substring(n.length), a = (e = this.impl.getItem(i)) !== null && e !== void 0 ? e : \"\", { value: l } = await this.get({ key: r });\n typeof l == \"string\" ? s.push(r) : (await this.set({ key: r, value: a }), t.push(r));\n }\n return { migrated: t, existing: s };\n }\n async removeOld() {\n const e = \"_cap_\", t = Object.keys(this.impl).filter((s) => s.indexOf(e) === 0);\n for (const s of t)\n this.impl.removeItem(s);\n }\n get impl() {\n return window.localStorage;\n }\n get prefix() {\n return this.group === \"NativeStorage\" ? \"\" : `${this.group}.`;\n }\n rawKeys() {\n return Object.keys(this.impl).filter((e) => e.indexOf(this.prefix) === 0);\n }\n applyPrefix(e) {\n return this.prefix + e;\n }\n}\nexport {\n f as PreferencesWeb\n};\n"],"names":["p"],"mappings":";AACA,MAAM,UAAUA,GAAE;AAAA,EAChB,cAAc;AACZ,UAAM,GAAG,SAAS,GAAG,KAAK,QAAQ;AAAA,EACpC;AAAA,EACA,MAAM,UAAU,EAAE,OAAO,KAAK;AAC5B,WAAO,KAAK,aAAa,KAAK,QAAQ;AAAA,EACxC;AAAA,EACA,MAAM,IAAI,GAAG;AACX,WAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,KAAK,YAAY,EAAE,GAAG,CAAC,EAAC;AAAA,EAC5D;AAAA,EACA,MAAM,IAAI,GAAG;AACX,SAAK,KAAK,QAAQ,KAAK,YAAY,EAAE,GAAG,GAAG,EAAE,KAAK;AAAA,EACpD;AAAA,EACA,MAAM,OAAO,GAAG;AACd,SAAK,KAAK,WAAW,KAAK,YAAY,EAAE,GAAG,CAAC;AAAA,EAC9C;AAAA,EACA,MAAM,OAAO;AACX,WAAO,EAAE,MAAM,KAAK,QAAO,EAAG,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,MAAM,CAAC,EAAC;AAAA,EAC3E;AAAA,EACA,MAAM,QAAQ;AACZ,eAAW,KAAK,KAAK,QAAO;AAC1B,WAAK,KAAK,WAAW,CAAC;AAAA,EAC1B;AAAA,EACA,MAAM,UAAU;AACd,QAAI;AACJ,UAAM,IAAI,CAAA,GAAI,IAAI,CAAA,GAAI,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAC9F,eAAW,KAAK,GAAG;AACjB,YAAM,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,OAAO,QAAQ,MAAM,SAAS,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM,KAAK,IAAI,EAAE,KAAK,EAAC,CAAE;AAC3I,aAAO,KAAK,WAAW,EAAE,KAAK,CAAC,KAAK,MAAM,KAAK,IAAI,EAAE,KAAK,GAAG,OAAO,EAAC,CAAE,GAAG,EAAE,KAAK,CAAC;AAAA,IACpF;AACA,WAAO,EAAE,UAAU,GAAG,UAAU,EAAC;AAAA,EACnC;AAAA,EACA,MAAM,YAAY;AAChB,UAAM,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAC9E,eAAW,KAAK;AACd,WAAK,KAAK,WAAW,CAAC;AAAA,EAC1B;AAAA,EACA,IAAI,OAAO;AACT,WAAO,OAAO;AAAA,EAChB;AAAA,EACA,IAAI,SAAS;AACX,WAAO,KAAK,UAAU,kBAAkB,KAAK,GAAG,KAAK,KAAK;AAAA,EAC5D;AAAA,EACA,UAAU;AACR,WAAO,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,MAAM,CAAC;AAAA,EAC1E;AAAA,EACA,YAAY,GAAG;AACb,WAAO,KAAK,SAAS;AAAA,EACvB;AACF;"}
1
+ {"version":3,"file":"web-ClbcbWYJ.js","sources":["../../web-ClbcbWYJ.js"],"sourcesContent":["import { W as p } from \"./main-EZaj64lH.js\";\nclass f extends p {\n constructor() {\n super(...arguments), this.group = \"CapacitorStorage\";\n }\n async configure({ group: e }) {\n typeof e == \"string\" && (this.group = e);\n }\n async get(e) {\n return { value: this.impl.getItem(this.applyPrefix(e.key)) };\n }\n async set(e) {\n this.impl.setItem(this.applyPrefix(e.key), e.value);\n }\n async remove(e) {\n this.impl.removeItem(this.applyPrefix(e.key));\n }\n async keys() {\n return { keys: this.rawKeys().map((t) => t.substring(this.prefix.length)) };\n }\n async clear() {\n for (const e of this.rawKeys())\n this.impl.removeItem(e);\n }\n async migrate() {\n var e;\n const t = [], s = [], n = \"_cap_\", o = Object.keys(this.impl).filter((i) => i.indexOf(n) === 0);\n for (const i of o) {\n const r = i.substring(n.length), a = (e = this.impl.getItem(i)) !== null && e !== void 0 ? e : \"\", { value: l } = await this.get({ key: r });\n typeof l == \"string\" ? s.push(r) : (await this.set({ key: r, value: a }), t.push(r));\n }\n return { migrated: t, existing: s };\n }\n async removeOld() {\n const e = \"_cap_\", t = Object.keys(this.impl).filter((s) => s.indexOf(e) === 0);\n for (const s of t)\n this.impl.removeItem(s);\n }\n get impl() {\n return window.localStorage;\n }\n get prefix() {\n return this.group === \"NativeStorage\" ? \"\" : `${this.group}.`;\n }\n rawKeys() {\n return Object.keys(this.impl).filter((e) => e.indexOf(this.prefix) === 0);\n }\n applyPrefix(e) {\n return this.prefix + e;\n }\n}\nexport {\n f as PreferencesWeb\n};\n"],"names":["p"],"mappings":";AACA,MAAM,UAAUA,GAAE;AAAA,EAChB,cAAc;AACZ,UAAM,GAAG,SAAS,GAAG,KAAK,QAAQ;AAAA,EACpC;AAAA,EACA,MAAM,UAAU,EAAE,OAAO,KAAK;AAC5B,WAAO,KAAK,aAAa,KAAK,QAAQ;AAAA,EACxC;AAAA,EACA,MAAM,IAAI,GAAG;AACX,WAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,KAAK,YAAY,EAAE,GAAG,CAAC,EAAC;AAAA,EAC5D;AAAA,EACA,MAAM,IAAI,GAAG;AACX,SAAK,KAAK,QAAQ,KAAK,YAAY,EAAE,GAAG,GAAG,EAAE,KAAK;AAAA,EACpD;AAAA,EACA,MAAM,OAAO,GAAG;AACd,SAAK,KAAK,WAAW,KAAK,YAAY,EAAE,GAAG,CAAC;AAAA,EAC9C;AAAA,EACA,MAAM,OAAO;AACX,WAAO,EAAE,MAAM,KAAK,QAAO,EAAG,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,MAAM,CAAC,EAAC;AAAA,EAC3E;AAAA,EACA,MAAM,QAAQ;AACZ,eAAW,KAAK,KAAK,QAAO;AAC1B,WAAK,KAAK,WAAW,CAAC;AAAA,EAC1B;AAAA,EACA,MAAM,UAAU;AACd,QAAI;AACJ,UAAM,IAAI,CAAA,GAAI,IAAI,CAAA,GAAI,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAC9F,eAAW,KAAK,GAAG;AACjB,YAAM,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,OAAO,QAAQ,MAAM,SAAS,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM,KAAK,IAAI,EAAE,KAAK,EAAC,CAAE;AAC3I,aAAO,KAAK,WAAW,EAAE,KAAK,CAAC,KAAK,MAAM,KAAK,IAAI,EAAE,KAAK,GAAG,OAAO,EAAC,CAAE,GAAG,EAAE,KAAK,CAAC;AAAA,IACpF;AACA,WAAO,EAAE,UAAU,GAAG,UAAU,EAAC;AAAA,EACnC;AAAA,EACA,MAAM,YAAY;AAChB,UAAM,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAC9E,eAAW,KAAK;AACd,WAAK,KAAK,WAAW,CAAC;AAAA,EAC1B;AAAA,EACA,IAAI,OAAO;AACT,WAAO,OAAO;AAAA,EAChB;AAAA,EACA,IAAI,SAAS;AACX,WAAO,KAAK,UAAU,kBAAkB,KAAK,GAAG,KAAK,KAAK;AAAA,EAC5D;AAAA,EACA,UAAU;AACR,WAAO,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,MAAM,CAAC;AAAA,EAC1E;AAAA,EACA,YAAY,GAAG;AACb,WAAO,KAAK,SAAS;AAAA,EACvB;AACF;"}
@@ -65,7 +65,7 @@ const _sfc_main = {
65
65
  key: 0,
66
66
  ref_key: "wrapper",
67
67
  ref: wrapper,
68
- class: normalizeClass(["w-100 bs-black rows-1 h-100 pos-absolute pos-t-0 pos-l-0 z-index-9999", {
68
+ class: normalizeClass(["w-100 bs-black flex flex-column h-100 pos-absolute pos-t-0 pos-l-0 z-index-9999", {
69
69
  "pd-t-extra": _ctx.MOBILE_APP === "ios"
70
70
  }])
71
71
  }, [
@@ -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-100 pos-absolute pos-t-0 pos-l-0 z-index-9999\"\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-1px 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,MACzC,OAAO;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC5C;AAAA,IACF,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,MACrC;AAAA,IACF;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,MAC5B,OAAO;AAEL,cAAM,QAAQ;AAAA,MAEhB;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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 flex flex-column h-100 pos-absolute pos-t-0 pos-l-0 z-index-9999\"\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-1px 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,MACzC,OAAO;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC5C;AAAA,IACF,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,MACrC;AAAA,IACF;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,MAC5B,OAAO;AAEL,cAAM,QAAQ;AAAA,MAEhB;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { ref, createElementBlock, openBlock, normalizeClass, withModifiers, createElementVNode, createCommentVNode, renderSlot, createVNode, createBlock, Fragment, createTextVNode, toDisplayString } from "vue";
2
- import Loader from "../Loader/Loader.vue2.js";
2
+ import Loader from "../Loader/Loader.vue.js";
3
3
  import _sfc_main$1 from "../../modules/icons/navigation/IconCheckmark.vue.js";
4
4
  import _sfc_main$2 from "../../modules/icons/navigation/IconCross.vue.js";
5
- /* empty css */
5
+ /* empty css */
6
6
  const _hoisted_1 = ["disabled"];
7
7
  const _hoisted_2 = {
8
8
  key: 0,
@@ -146,4 +146,4 @@ const _sfc_main = {
146
146
  export {
147
147
  _sfc_main as default
148
148
  };
149
- //# sourceMappingURL=Button.vue.js.map
149
+ //# sourceMappingURL=Button.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.vue2.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n submit: {\n type: Function,\n default: async () => { console.log('Button click.') }\n },\n text: {\n type: Object,\n default: () => ({\n success: null,\n error: null\n })\n },\n counter: {\n type: Object\n },\n callback: {\n type: Function,\n default: async () => { console.log('Button callback.') }\n },\n callbackDelay: {\n type: Number,\n default: 750\n },\n showSucces: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: true\n },\n validation: {\n type: Boolean,\n default: false\n },\n})\n\nconst emits = defineEmits(['error'])\n\nconst button = ref(null)\nconst error = ref(null)\nconst loading = ref(false)\nconst finished = ref(false)\n\nasync function Submit() {\n console.log('click')\n \n button.value.style['pointer-events'] = 'none'\n error.value = null\n loading.value = true\n\n // Функция для сброса состояния кнопки\n const resetButton = () => {\n if (button.value) {\n button.value.style.pointerEvents = 'auto'\n loading.value = false\n finished.value = false\n error.value = null\n }\n }\n\n try {\n await props.submit()\n\n button.value.classList.replace('bg-main', 'bg-second')\n loading.value = false\n\n // Используем функцию сброса состояния кнопки здесь\n if (props.showSucces) { \n finished.value = true\n setTimeout(() => {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }, 500)\n } else {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }\n\n // Если есть callback, мы также установим таймер для его вызова\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay)\n\n } catch (err) {\n console.error('=== BUTTON ERROR ===', err)\n emits('error', err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке\n button.value.classList.replace('bg-main', 'bg-fourth-nano')\n loading.value = false\n error.value = true\n \n // После задержки снова сбрасываем состояние кнопки\n setTimeout(() => {\n resetButton()\n // Так как класс кнопки был изменен, вернем его в исходное состояние\n button.value.classList.replace('bg-fourth-nano', 'bg-main')\n }, 1330)\n }\n}\n</script>\n\n<template>\n <button \n @click.stop=\"Submit\"\n :disabled=\"validation\"\n ref=\"button\"\n\t\tclass=\"button\"\n :class=\"{ 'button--disabled': loading || validation }\"\n >\n <span class=\"button-content\" :class=\"{ 'hidden': loading || error || finished }\">\n <slot></slot>\n </span>\n\n <span class=\"button-loader\" :class=\"{ 'active': loading && showLoader }\">\n <Loader class=\"\"/>\n </span>\n\n <span class=\"button-success\" :class=\"{ 'active': finished && showSucces }\">\n <template v-if=\"text.success\">{{ text.success }}</template>\n <IconCheckmark v-else class=\"i-regular\" />\n </span>\n\n <span class=\"button-error\" :class=\"{ 'active': error }\">\n <template v-if=\"text.error\">{{ text.error }}</template>\n <IconCross v-else class=\"i-regular\" />\n </span>\n \n <!-- Counter -->\n <div v-if=\"counter\" class=\"button-counter font-second flex flex-center\">\n <span>{{ counter }}</span>\n </div>\n </button>\n</template>\n\n<style lang=\"scss\">\nbutton[disabled] {\n opacity: 0.75 !important;\n pointer-events: none !important;\n cursor: default !important;\n color: rgba(var(--dark), 0.33) !important;\n background: rgba(var(--light), 1) !important;\n}\n\na.button {\n text-box: trim-both cap alphabetic;\n}\n\n.button {\n position: relative;\n display: flex;\n padding: var(--small);\n border-radius: var(--small);\n text-box: trim-both cap alphabetic;\n transform: scale(1);\n opacity: 1;\n align-items: center;\n justify-content: center;\n color: black;\n text-align: center;\n font-size: 1rem;\n letter-spacing: 5%;\n transition: all 0.33s ease;\n\n &:hover {\n cursor: pointer;\n opacity: 0.9;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n &-small {\n padding: 0.75rem;\n border-radius: 0.5rem;\n height: fit-content;\n }\n\n .button-counter {\n position: absolute;\n right: -8px;\n bottom: -8px;\n background: yellow;\n height: 16px;\n border-radius: 16px;\n width: 16px;\n font-weight: 500;\n text-align: center;\n line-height: 16px;\n font-size: 10px;\n }\n}\n\n.button-content {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: opacity 0.3s ease;\n}\n\n\n.button-loader {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n}\n\n.button-success {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n}\n\n.button-error {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n}\n\n.active {\n opacity: 1;\n}\n\n.hidden {\n opacity: 0;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAM,QAAQ;AAqCd,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;AAEnB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACxB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QAChB;AAAA,MACF;AAEA,UAAI;AACF,cAAM,MAAM,OAAM;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AACrD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACpB,mBAAS,QAAQ;AACjB,qBAAW,MAAM;AACf,wBAAW;AACX,mBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,UACvD,GAAG,GAAG;AAAA,QACR,OAAO;AACL,sBAAW;AACX,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,QACvD;AAGA,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAQ,GAAI,MAAM,aAAa;AAAA,MAE5E,SAAS,KAAK;AACZ,gBAAQ,MAAM,wBAAwB,GAAG;AACzC,cAAM,SAAS,GAAG;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,gBAAQ,QAAQ;AAChB,cAAM,QAAQ;AAGd,mBAAW,MAAM;AACf,sBAAW;AAEX,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC5D,GAAG,IAAI;AAAA,MACT;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, withDirectives, createElementBlock, openBlock, withModifiers, renderSlot, createVNode, createBlock, resolveDynamicComponent, mergeProps, toDisplayString, Transition, withCtx, createElementVNode, normalizeStyle, 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"
@@ -71,4 +71,4 @@ const _sfc_main = {
71
71
  export {
72
72
  _sfc_main as default
73
73
  };
74
- //# sourceMappingURL=Dropdown.vue2.js.map
74
+ //# 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\n class=\"dropdown pos-relative\"\n v-click-outside=\"clickedOutside\"\n @click.stop=\"trigger === 'click' ? (isOpen = !isOpen) : null\"\n @mouseenter=\"trigger === 'hover' ? (isOpen = true) : null\"\n @mouseleave=\"trigger === 'hover' ? (isOpen = false) : null\"\n >\n <slot name=\"label\">\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 </slot>\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 \"\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.js';\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 trigger: {\n type: String,\n default: 'click'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nfunction clickedOutside () {\n if (props.trigger === 'click') {\n isOpen.value = false\n }\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":";;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,QAAI,gBAAgB;AAEpB,UAAM,QAAQ;AAed,UAAM,SAAS,IAAI,KAAK;AACxB,UAAM,mBAAmB,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,aAAS,iBAAkB;AACzB,UAAI,MAAM,YAAY,SAAS;AAC7B,eAAO,QAAQ;AAAA,MACjB;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,7 +2,7 @@ import { ref, watchEffect, createElementBlock, openBlock, createBlock, createCom
2
2
  import { VueDraggableNext } from "../../../../node_modules/.pnpm/vue-draggable-next@2.2.1_sortablejs@1.15.6_vue@3.5.13_typescript@5.8.3_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js";
3
3
  import _sfc_main$2 from "../UploadImageMultiple/UploadImageMultiple.vue.js";
4
4
  import _sfc_main$1 from "../../modules/icons/navigation/IconCross.vue.js";
5
- /* empty css */
5
+ /* empty css */
6
6
  const _hoisted_1 = { class: "flex-nowrap flex gap-small" };
7
7
  const _hoisted_2 = { class: "pos-relative" };
8
8
  const _hoisted_3 = ["src"];
@@ -92,4 +92,4 @@ const _sfc_main = {
92
92
  export {
93
93
  _sfc_main as default
94
94
  };
95
- //# sourceMappingURL=EditImages.vue2.js.map
95
+ //# sourceMappingURL=EditImages.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditImages.vue.js","sources":["../../../../../src/components/EditImages/EditImages.vue"],"sourcesContent":["<template>\n\t<div class=\"flex-nowrap flex gap-small\">\n <VueDraggableNext v-if=\"localImages.length > 0\" class=\"gap-small flex dragArea list-group w-full\" v-model=\"localImages\" @change=\"emitChanges\">\n\t\t\t<div v-for=\"(image, index) in localImages\" class=\"pos-relative\">\n\t\t\t\t<img loading=\"lazy\" class=\"i-extra object-fit-contain bg-black-transp-5 pd-nano radius-small o-hidden\" :src=\"(FILE_SERVER_URL || '') + image\" />\n\t\t\t\t\n <IconCross \n @click=\"deleteImage(index)\" \n class=\"cursor-pointer pos-absolute t-center flex-center flex radius-extra i-medium bg-red pos-t-10-negative pos-r-10-negative pd-micro\"\n />\n\t\t\t</div>\n\t\t</VueDraggableNext>\n <div\n v-if=\"localImages.length > 0\" \n class=\"i-extra uppercase flex-center flex radius-small o-hidden br-main br-2px pd-small\"\n >\n <UploadImageMultiple \n @update:images=\"onImagesUpdate\"\n text=\"Add\"\n :options=\"{\n showText: false\n }\"\n :uploadPath=\"'photos'\"\n class=\"radius-big\"\n />\n </div>\n\n\n\t\t<UploadImageMultiple \t\n v-if=\"localImages.length < 1\" \n @update:images=\"onImagesUpdate\"\n :uploadPath=\"props.uploadPath\"\n :text=\"props.text\"\n :options=\"props.options\"\n class=\"w-100 pd-medium\"\n />\n\t</div>\t\n</template>\n\n<script setup>\nimport { ref, defineProps, watchEffect } from 'vue';\nimport { VueDraggableNext } from 'vue-draggable-next'\nimport UploadImageMultiple from \"@martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue\";\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n images: Array,\n text: Object,\n options: Object,\n uploadPath: {\n type: Object,\n default: 'unsorted'\n }\n});\n\nconst emit = defineEmits(['update:images'])\n\nconst localImages = ref([...props.images])\n\nwatchEffect(() => {\n localImages.value = [...props.images]; // Обновление localImages при изменении props.images\n});\n\nconst emitChanges = () => {\n emit('update:images', localImages.value)\n}\n\nconst onImagesUpdate = (newImages) => {\n localImages.value = [...localImages.value, ...newImages]\n emitChanges()\n}\n\nconst deleteImage = (index) => {\n localImages.value.splice(index, 1)\n emitChanges()\n}\n</script>\n\n<style lang=\"scss\">\n// Your styles here\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AAUd,UAAM,OAAO;AAEb,UAAM,cAAc,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC;AAEzC,gBAAY,MAAM;AAChB,kBAAY,QAAQ,CAAC,GAAG,MAAM,MAAM;AAAA,IACtC,CAAC;AAED,UAAM,cAAc,MAAM;AACxB,WAAK,iBAAiB,YAAY,KAAK;AAAA,IACzC;AAEA,UAAM,iBAAiB,CAAC,cAAc;AACpC,kBAAY,QAAQ,CAAC,GAAG,YAAY,OAAO,GAAG,SAAS;AACvD,kBAAW;AAAA,IACb;AAEA,UAAM,cAAc,CAAC,UAAU;AAC7B,kBAAY,MAAM,OAAO,OAAO,CAAC;AACjC,kBAAW;AAAA,IACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createBlock, createVNode, normalizeClass, unref, withCtx, Fragment, renderList, Transition, renderSlot } from "vue";
2
2
  import { useI18n } from "vue-i18n";
3
3
  import { useGlobalMixins } from "../../modules/core/views/mixins/mixins.js";
4
- import Loader from "../Loader/Loader.vue2.js";
4
+ import Loader from "../Loader/Loader.vue.js";
5
5
  import _sfc_main$2 from "../Slider/Slider.vue.js";
6
6
  import _sfc_main$1 from "../EmptyState/EmptyState.vue.js";
7
7
  /* empty css */
@@ -1,13 +1,13 @@
1
1
  import { mergeModels, useModel, ref, computed, watch, onMounted, onUnmounted, createElementBlock, openBlock, Fragment, createCommentVNode, createBlock, normalizeClass, withCtx, createVNode, renderList, resolveDynamicComponent, unref, TransitionGroup, renderSlot } from "vue";
2
2
  import { useGlobalMixins } from "../../modules/core/views/mixins/mixins.js";
3
- import Loader from "../Loader/Loader.vue2.js";
3
+ import Loader from "../Loader/Loader.vue.js";
4
4
  import Skeleton from "../Skeleton/Skeleton.vue2.js";
5
5
  import _sfc_main$6 from "../EmptyState/EmptyState.vue.js";
6
- import _sfc_main$2 from "../Dropdown/Dropdown.vue2.js";
6
+ import _sfc_main$2 from "../Dropdown/Dropdown.vue.js";
7
7
  import Calendar from "../Calendar/Calendar.vue2.js";
8
8
  import _sfc_main$1 from "../../modules/core/views/components/blocks/BlockSearch.vue.js";
9
9
  import _sfc_main$5 from "../../modules/core/views/components/blocks/BlockSorting.vue.js";
10
- import Filters from "../../modules/core/views/components/sections/Filters.vue2.js";
10
+ import Filters from "../../modules/core/views/components/sections/Filters.vue.js";
11
11
  import _sfc_main$4 from "../../modules/core/views/components/elements/ButtonSort.vue.js";
12
12
  import _sfc_main$3 from "../../modules/core/views/components/elements/ButtonDate.vue.js";
13
13
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, watchEffect, createBlock, openBlock, unref, isRef, withCtx, renderSlot, createVNode, createElementBlock, createCommentVNode, toDisplayString } from "vue";
2
2
  import Field from "../Field/Field.vue.js";
3
- import _sfc_main$1 from "../Button/Button.vue.js";
3
+ import _sfc_main$1 from "../Button/Button.vue2.js";
4
4
  import _sfc_main$2 from "../../modules/icons/navigation/IconArrow.vue.js";
5
5
  import { useI18n } from "vue-i18n";
6
6
  const _hoisted_1 = {
@@ -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: {
@@ -57,4 +57,4 @@ const Loader = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]])
57
57
  export {
58
58
  Loader as default
59
59
  };
60
- //# sourceMappingURL=Loader.vue2.js.map
60
+ //# sourceMappingURL=Loader.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loader.vue.js","sources":["../../../../../src/components/Loader/Loader.vue"],"sourcesContent":["<template>\n <div class=\"circular-loader pos-relative z-index-1 w-100 h-100 w-max-2r h-max-2r\" :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 fw-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: false\n },\n },\n};\n</script>\n\n<style>\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;IAEX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;AAGf;;EA3BA,KAAA;AAAA,EAMyB,OAAM;;;EAN/B,KAAA;AAAA,EAOuB,OAAM;;;sBAN3BA,mBAOM,OAAA;AAAA,IAPD,OADPC,eAAA,CACa,wEAAsE,EAAA,4BAAuC,OAAA,UAAQ,CAAA;AAAA;8BAC9HC,mBAGM,OAAA,EAHD,SAAQ,iBAAa;AAAA,MACxBA,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,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,OAAA,yBAAXF,mBAA+D,OAA/D,YAA+DG,gBAAjB,OAAA,QAAQ,GAAA,CAAA,KAN1DC,mBAAA,IAAA,IAAA;AAAA,IAOe,OAAA,uBAAXJ,mBAAmF,OAAnF,YAAmFG,gBAAf,OAAA,MAAM,GAAA,CAAA,KAP9EC,mBAAA,IAAA,IAAA;AAAA;;;"}
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, watchEffect, createElementBlock, openBlock, createElementVNode, createVNode, Transition, withCtx, createBlock } from "vue";
2
2
  import { Loader } from "../../../../node_modules/.pnpm/@googlemaps_js-api-loader@1.16.8/node_modules/@googlemaps/js-api-loader/dist/index.js";
3
- import Loader$1 from "../Loader/Loader.vue2.js";
3
+ import Loader$1 from "../Loader/Loader.vue.js";
4
4
  /* empty css */
5
5
  const _hoisted_1 = { class: "pos-relative" };
6
6
  const _hoisted_2 = {
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, onMounted, onUnmounted, createElementBlock, openBlock, createCommentVNode, mergeProps, createElementVNode, createVNode } from "vue";
2
- import Loader from "../Loader/Loader.vue2.js";
2
+ import Loader from "../Loader/Loader.vue.js";
3
3
  import _sfc_main$1 from "../../modules/icons/entities/IconGallery.vue.js";
4
4
  /* empty css */
5
5
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
@@ -1,5 +1,5 @@
1
1
  import { createElementBlock, openBlock, renderSlot } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  const _hoisted_1 = { class: "mobile-menu-section pd-r-zero pd-t-thin pd-b-thin pd-medium radius-medium" };
4
4
  const _sfc_main = {
5
5
  __name: "Menu",
@@ -14,4 +14,4 @@ const _sfc_main = {
14
14
  export {
15
15
  _sfc_main as default
16
16
  };
17
- //# sourceMappingURL=Menu.vue2.js.map
17
+ //# sourceMappingURL=Menu.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { ref, onMounted, onBeforeUnmount, createElementBlock, openBlock, createElementVNode, createCommentVNode, renderSlot, Fragment, renderList, normalizeClass } from "vue";
1
+ import { ref, watch, onMounted, onBeforeUnmount, createElementBlock, openBlock, createElementVNode, createCommentVNode, renderSlot, Fragment, renderList, normalizeClass } from "vue";
2
2
  /* empty css */
3
3
  const _hoisted_1 = {
4
4
  key: 0,
@@ -12,136 +12,130 @@ const _sfc_main = {
12
12
  slideCount: {
13
13
  type: Number,
14
14
  default: 0
15
+ },
16
+ autoplay: {
17
+ type: Object,
18
+ default: null
15
19
  }
16
20
  },
17
21
  setup(__props) {
18
22
  const props = __props;
19
23
  const carouselRef = ref(null);
20
24
  const selectedIndex = ref(0);
21
- const autoplayInterval = ref(null);
25
+ const intervalId = ref(null);
22
26
  const scrollTimeout = ref(null);
27
+ const resumeTimeout = ref(null);
28
+ const paused = ref(false);
23
29
  const scrollTo = (index) => {
24
30
  if (!carouselRef.value) return;
25
31
  const container = carouselRef.value.querySelector(".carousel__container");
26
32
  const slides = container.querySelectorAll(".carousel__slide");
27
33
  if (slides[index]) {
28
- container.scrollTo({
29
- left: slides[index].offsetLeft,
30
- behavior: "smooth"
31
- });
34
+ container.scrollTo({ left: slides[index].offsetLeft, behavior: "smooth" });
32
35
  selectedIndex.value = index;
33
36
  }
34
37
  };
35
38
  const handleScroll = () => {
36
- if (scrollTimeout.value) {
37
- clearTimeout(scrollTimeout.value);
38
- }
39
- scrollTimeout.value = setTimeout(() => {
40
- updateSelectedIndex();
41
- }, 50);
39
+ if (scrollTimeout.value) clearTimeout(scrollTimeout.value);
40
+ scrollTimeout.value = setTimeout(updateSelectedIndex, 50);
42
41
  };
43
42
  const updateSelectedIndex = () => {
44
43
  if (!carouselRef.value) return;
45
44
  const container = carouselRef.value.querySelector(".carousel__container");
46
45
  const slides = container.querySelectorAll(".carousel__slide");
47
46
  if (!slides.length) return;
48
- const scrollPosition = container.scrollLeft;
49
- const slideWidth = slides[0].offsetWidth;
50
- const index = Math.round(scrollPosition / slideWidth);
51
- const boundedIndex = Math.max(0, Math.min(index, slides.length - 1));
52
- selectedIndex.value = boundedIndex;
47
+ const index = Math.round(container.scrollLeft / slides[0].offsetWidth);
48
+ selectedIndex.value = Math.max(0, Math.min(index, slides.length - 1));
49
+ };
50
+ const clearTimers = () => {
51
+ if (intervalId.value) {
52
+ clearInterval(intervalId.value);
53
+ intervalId.value = null;
54
+ }
55
+ if (resumeTimeout.value) {
56
+ clearTimeout(resumeTimeout.value);
57
+ resumeTimeout.value = null;
58
+ }
59
+ };
60
+ const startAutoplay = () => {
61
+ clearTimers();
62
+ const a = props.autoplay;
63
+ if (!a?.enabled || paused.value) return;
64
+ intervalId.value = setInterval(() => {
65
+ scrollTo((selectedIndex.value + 1) % props.slideCount);
66
+ }, a.interval ?? 2e3);
67
+ };
68
+ const pause = () => {
69
+ paused.value = true;
70
+ clearTimers();
53
71
  };
54
- const setupAutoplay = () => {
55
- if (autoplayInterval.value) {
56
- clearInterval(autoplayInterval.value);
72
+ const resume = () => {
73
+ const a = props.autoplay;
74
+ if (!a?.enabled || a.resume === false) return;
75
+ clearTimers();
76
+ const delay = a.delay ?? 0;
77
+ if (delay > 0) {
78
+ resumeTimeout.value = setTimeout(() => {
79
+ paused.value = false;
80
+ startAutoplay();
81
+ }, delay);
82
+ } else {
83
+ paused.value = false;
84
+ startAutoplay();
57
85
  }
58
- autoplayInterval.value = setInterval(() => {
59
- const nextIndex = (selectedIndex.value + 1) % props.slideCount;
60
- scrollTo(nextIndex);
61
- }, 2e3);
62
86
  };
87
+ const onHoverStart = () => {
88
+ if (props.autoplay?.hover !== false) pause();
89
+ };
90
+ const onHoverEnd = () => {
91
+ if (props.autoplay?.hover !== false) resume();
92
+ };
93
+ const onTouchStart = () => {
94
+ if (props.autoplay?.touch !== false) pause();
95
+ };
96
+ const onTouchEnd = () => {
97
+ if (props.autoplay?.touch !== false) resume();
98
+ };
99
+ watch(() => props.autoplay, () => {
100
+ if (props.autoplay?.enabled) {
101
+ paused.value = false;
102
+ startAutoplay();
103
+ } else {
104
+ pause();
105
+ }
106
+ }, { deep: true });
63
107
  onMounted(() => {
64
- if (carouselRef.value) {
65
- const container = carouselRef.value.querySelector(".carousel__container");
66
- const slides = container.querySelectorAll(".carousel__slide");
67
- const observer = new IntersectionObserver((entries) => {
68
- entries.forEach((entry) => {
69
- if (entry.isIntersecting) {
70
- const slideIndex = Array.from(slides).indexOf(entry.target);
71
- if (slideIndex !== -1) {
72
- selectedIndex.value = slideIndex;
73
- }
74
- }
75
- });
76
- }, {
77
- root: container,
78
- threshold: 0.7
79
- // Consider slide visible when 70% is in view
80
- });
81
- slides.forEach((slide) => {
82
- observer.observe(slide);
83
- });
84
- container.addEventListener("focusin", () => {
85
- if (autoplayInterval.value) {
86
- clearInterval(autoplayInterval.value);
87
- }
88
- });
89
- container.addEventListener("focusout", () => {
90
- setupAutoplay();
91
- });
92
- container.addEventListener("mousedown", () => {
93
- if (autoplayInterval.value) {
94
- clearInterval(autoplayInterval.value);
95
- }
96
- });
97
- container.addEventListener("touchstart", () => {
98
- if (autoplayInterval.value) {
99
- clearInterval(autoplayInterval.value);
108
+ if (!carouselRef.value) return;
109
+ const container = carouselRef.value.querySelector(".carousel__container");
110
+ const slides = container.querySelectorAll(".carousel__slide");
111
+ const observer = new IntersectionObserver((entries) => {
112
+ entries.forEach((entry) => {
113
+ if (entry.isIntersecting) {
114
+ const idx = Array.from(slides).indexOf(entry.target);
115
+ if (idx !== -1) selectedIndex.value = idx;
100
116
  }
101
117
  });
102
- container.addEventListener("mouseup", () => {
103
- setupAutoplay();
104
- });
105
- container.addEventListener("touchend", () => {
106
- setupAutoplay();
107
- });
108
- setupAutoplay();
109
- carouselRef.value._observer = observer;
110
- }
118
+ }, { root: container, threshold: 0.7 });
119
+ slides.forEach((slide) => observer.observe(slide));
120
+ carouselRef.value._observer = observer;
121
+ container.addEventListener("focusin", pause);
122
+ container.addEventListener("focusout", resume);
123
+ if (props.autoplay?.enabled) startAutoplay();
111
124
  });
112
125
  onBeforeUnmount(() => {
113
- if (carouselRef.value) {
114
- if (carouselRef.value._observer) {
115
- carouselRef.value._observer.disconnect();
116
- }
117
- const container = carouselRef.value.querySelector(".carousel__container");
118
- if (container) {
119
- container.removeEventListener("focusin", () => {
120
- });
121
- container.removeEventListener("focusout", () => {
122
- });
123
- container.removeEventListener("mousedown", () => {
124
- });
125
- container.removeEventListener("touchstart", () => {
126
- });
127
- container.removeEventListener("mouseup", () => {
128
- });
129
- container.removeEventListener("touchend", () => {
130
- });
131
- }
132
- }
133
- if (autoplayInterval.value) {
134
- clearInterval(autoplayInterval.value);
135
- }
136
- if (scrollTimeout.value) {
137
- clearTimeout(scrollTimeout.value);
138
- }
126
+ if (carouselRef.value?._observer) carouselRef.value._observer.disconnect();
127
+ clearTimers();
128
+ if (scrollTimeout.value) clearTimeout(scrollTimeout.value);
139
129
  });
140
130
  return (_ctx, _cache) => {
141
131
  return openBlock(), createElementBlock("div", {
142
132
  class: "carousel",
143
133
  ref_key: "carouselRef",
144
- ref: carouselRef
134
+ ref: carouselRef,
135
+ onMouseenter: onHoverStart,
136
+ onMouseleave: onHoverEnd,
137
+ onTouchstart: onTouchStart,
138
+ onTouchend: onTouchEnd
145
139
  }, [
146
140
  createElementVNode("div", {
147
141
  class: "carousel__container",
@@ -158,7 +152,7 @@ const _sfc_main = {
158
152
  }, null, 10, _hoisted_2);
159
153
  }), 128))
160
154
  ])) : createCommentVNode("", true)
161
- ], 512);
155
+ ], 544);
162
156
  };
163
157
  }
164
158
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.vue.js","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAwBA,UAAM,QAAQ;AAQd,UAAM,cAAc,IAAI,IAAI;AAC5B,UAAM,gBAAgB,IAAI,CAAC;AAC3B,UAAM,mBAAmB,IAAI,IAAI;AACjC,UAAM,gBAAgB,IAAI,IAAI;AAG9B,UAAM,WAAW,CAAC,UAAU;AAC1B,UAAI,CAAC,YAAY,MAAO;AAExB,YAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAE5D,UAAI,OAAO,KAAK,GAAG;AACjB,kBAAU,SAAS;AAAA,UACjB,MAAM,OAAO,KAAK,EAAE;AAAA,UACpB,UAAU;AAAA,QAChB,CAAK;AAED,sBAAc,QAAQ;AAAA,MACxB;AAAA,IACF;AAGA,UAAM,eAAe,MAAM;AAEzB,UAAI,cAAc,OAAO;AACvB,qBAAa,cAAc,KAAK;AAAA,MAClC;AAGA,oBAAc,QAAQ,WAAW,MAAM;AACrC,4BAAmB;AAAA,MACrB,GAAG,EAAE;AAAA,IACP;AAGA,UAAM,sBAAsB,MAAM;AAChC,UAAI,CAAC,YAAY,MAAO;AAExB,YAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAE5D,UAAI,CAAC,OAAO,OAAQ;AAEpB,YAAM,iBAAiB,UAAU;AACjC,YAAM,aAAa,OAAO,CAAC,EAAE;AAG7B,YAAM,QAAQ,KAAK,MAAM,iBAAiB,UAAU;AAGpD,YAAM,eAAe,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,OAAO,SAAS,CAAC,CAAC;AAGnE,oBAAc,QAAQ;AAAA,IACxB;AAGA,UAAM,gBAAgB,MAAM;AAC1B,UAAI,iBAAiB,OAAO;AAC1B,sBAAc,iBAAiB,KAAK;AAAA,MACtC;AAEA,uBAAiB,QAAQ,YAAY,MAAM;AACzC,cAAM,aAAa,cAAc,QAAQ,KAAK,MAAM;AACpD,iBAAS,SAAS;AAAA,MACpB,GAAG,GAAI;AAAA,IACT;AAEA,cAAU,MAAM;AAEd,UAAI,YAAY,OAAO;AAErB,cAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,cAAM,SAAS,UAAU,iBAAiB,kBAAkB;AAG5D,cAAM,WAAW,IAAI,qBAAqB,CAAC,YAAY;AACrD,kBAAQ,QAAQ,WAAS;AACvB,gBAAI,MAAM,gBAAgB;AAExB,oBAAM,aAAa,MAAM,KAAK,MAAM,EAAE,QAAQ,MAAM,MAAM;AAC1D,kBAAI,eAAe,IAAI;AACrB,8BAAc,QAAQ;AAAA,cACxB;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH,GAAG;AAAA,UACD,MAAM;AAAA,UACN,WAAW;AAAA;AAAA,QACjB,CAAK;AAGD,eAAO,QAAQ,WAAS;AACtB,mBAAS,QAAQ,KAAK;AAAA,QACxB,CAAC;AAGD,kBAAU,iBAAiB,WAAW,MAAM;AAC1C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UACtC;AAAA,QACF,CAAC;AAED,kBAAU,iBAAiB,YAAY,MAAM;AAC3C,wBAAa;AAAA,QACf,CAAC;AAGD,kBAAU,iBAAiB,aAAa,MAAM;AAC5C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UACtC;AAAA,QACF,CAAC;AAED,kBAAU,iBAAiB,cAAc,MAAM;AAC7C,cAAI,iBAAiB,OAAO;AAC1B,0BAAc,iBAAiB,KAAK;AAAA,UACtC;AAAA,QACF,CAAC;AAGD,kBAAU,iBAAiB,WAAW,MAAM;AAC1C,wBAAa;AAAA,QACf,CAAC;AAED,kBAAU,iBAAiB,YAAY,MAAM;AAC3C,wBAAa;AAAA,QACf,CAAC;AAGD,sBAAa;AAGb,oBAAY,MAAM,YAAY;AAAA,MAChC;AAAA,IACF,CAAC;AAED,oBAAgB,MAAM;AAEpB,UAAI,YAAY,OAAO;AAErB,YAAI,YAAY,MAAM,WAAW;AAC/B,sBAAY,MAAM,UAAU,WAAU;AAAA,QACxC;AAGA,cAAM,YAAY,YAAY,MAAM,cAAc,sBAAsB;AACxE,YAAI,WAAW;AACb,oBAAU,oBAAoB,WAAW,MAAM;AAAA,UAAC,CAAC;AACjD,oBAAU,oBAAoB,YAAY,MAAM;AAAA,UAAC,CAAC;AAClD,oBAAU,oBAAoB,aAAa,MAAM;AAAA,UAAC,CAAC;AACnD,oBAAU,oBAAoB,cAAc,MAAM;AAAA,UAAC,CAAC;AACpD,oBAAU,oBAAoB,WAAW,MAAM;AAAA,UAAC,CAAC;AACjD,oBAAU,oBAAoB,YAAY,MAAM;AAAA,UAAC,CAAC;AAAA,QACpD;AAAA,MACF;AAGA,UAAI,iBAAiB,OAAO;AAC1B,sBAAc,iBAAiB,KAAK;AAAA,MACtC;AAEA,UAAI,cAAc,OAAO;AACvB,qBAAa,cAAc,KAAK;AAAA,MAClC;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Slider.vue.js","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <div\n class=\"carousel\"\n ref=\"carouselRef\"\n @mouseenter=\"onHoverStart\"\n @mouseleave=\"onHoverEnd\"\n @touchstart=\"onTouchStart\"\n @touchend=\"onTouchEnd\"\n >\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button\n v-for=\"index in slideCount\"\n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, watch } from 'vue'\n\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n },\n autoplay: {\n type: Object,\n default: null\n }\n});\n\n// autoplay: { enabled, interval, hover, touch, resume, delay }\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst intervalId = ref(null)\nconst scrollTimeout = ref(null)\nconst resumeTimeout = ref(null)\nconst paused = ref(false)\n\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n if (slides[index]) {\n container.scrollTo({ left: slides[index].offsetLeft, behavior: 'smooth' })\n selectedIndex.value = index\n }\n}\n\nconst handleScroll = () => {\n if (scrollTimeout.value) clearTimeout(scrollTimeout.value)\n scrollTimeout.value = setTimeout(updateSelectedIndex, 50)\n}\n\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n if (!slides.length) return\n const index = Math.round(container.scrollLeft / slides[0].offsetWidth)\n selectedIndex.value = Math.max(0, Math.min(index, slides.length - 1))\n}\n\nconst clearTimers = () => {\n if (intervalId.value) { clearInterval(intervalId.value); intervalId.value = null }\n if (resumeTimeout.value) { clearTimeout(resumeTimeout.value); resumeTimeout.value = null }\n}\n\nconst startAutoplay = () => {\n clearTimers()\n const a = props.autoplay\n if (!a?.enabled || paused.value) return\n intervalId.value = setInterval(() => {\n scrollTo((selectedIndex.value + 1) % props.slideCount)\n }, a.interval ?? 2000)\n}\n\nconst pause = () => {\n paused.value = true\n clearTimers()\n}\n\nconst resume = () => {\n const a = props.autoplay\n if (!a?.enabled || a.resume === false) return\n clearTimers()\n const delay = a.delay ?? 0\n if (delay > 0) {\n resumeTimeout.value = setTimeout(() => {\n paused.value = false\n startAutoplay()\n }, delay)\n } else {\n paused.value = false\n startAutoplay()\n }\n}\n\nconst onHoverStart = () => {\n if (props.autoplay?.hover !== false) pause()\n}\n\nconst onHoverEnd = () => {\n if (props.autoplay?.hover !== false) resume()\n}\n\nconst onTouchStart = () => {\n if (props.autoplay?.touch !== false) pause()\n}\n\nconst onTouchEnd = () => {\n if (props.autoplay?.touch !== false) resume()\n}\n\nwatch(() => props.autoplay, () => {\n if (props.autoplay?.enabled) {\n paused.value = false\n startAutoplay()\n } else {\n pause()\n }\n}, { deep: true })\n\nonMounted(() => {\n if (!carouselRef.value) return\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n const idx = Array.from(slides).indexOf(entry.target)\n if (idx !== -1) selectedIndex.value = idx\n }\n })\n }, { root: container, threshold: 0.7 })\n\n slides.forEach(slide => observer.observe(slide))\n carouselRef.value._observer = observer\n\n container.addEventListener('focusin', pause)\n container.addEventListener('focusout', resume)\n\n if (props.autoplay?.enabled) startAutoplay()\n})\n\nonBeforeUnmount(() => {\n if (carouselRef.value?._observer) carouselRef.value._observer.disconnect()\n clearTimers()\n if (scrollTimeout.value) clearTimeout(scrollTimeout.value)\n})\n</script>\n\n<style>\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none;\n -ms-overflow-style: none;\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none;\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, renderSlot, Transition, withCtx, withDirectives, vShow } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  const _sfc_main = {
4
4
  __name: "Spoiler",
5
5
  props: {
@@ -70,4 +70,4 @@ const _sfc_main = {
70
70
  export {
71
71
  _sfc_main as default
72
72
  };
73
- //# sourceMappingURL=Spoiler.vue.js.map
73
+ //# sourceMappingURL=Spoiler.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spoiler.vue2.js","sources":["../../../../../src/components/Spoiler/Spoiler.vue"],"sourcesContent":["<template>\n <div>\n <div @click=\"toggleSpoiler\" class=\"flex-v-center flex-nowrap flex\">\n <slot name=\"header\" :isOpen=\"showSpoiler\"></slot>\n </div>\n <transition\n name=\"collapse\"\n @enter=\"onEnter\"\n @after-enter=\"onAfterEnter\"\n @leave=\"onLeave\"\n >\n <div v-show=\"showSpoiler\" class=\"spoiler\" ref=\"spoilerContent\">\n <slot name=\"content\"></slot>\n </div>\n </transition>\n </div>\n</template>\n<script setup>\nimport { ref, onMounted } from 'vue';\n\nconst props = defineProps({\n status: {\n type: Boolean,\n default: false\n }\n});\n\nconst showSpoiler = ref(false);\nconst spoilerContent = ref(null);\n\nonMounted(() => {\n if (props.status) {\n showSpoiler.value = props.status;\n }\n});\n\nconst toggleSpoiler = () => {\n showSpoiler.value = !showSpoiler.value;\n};\n\n// Анимация открытия\nconst onEnter = (el) => {\n el.style.height = '0';\n void el.offsetHeight; // force reflow\n el.style.height = el.scrollHeight + 'px';\n};\n\nconst onAfterEnter = (el) => {\n el.style.height = 'auto';\n};\n\n// Анимация закрытия\nconst onLeave = (el) => {\n el.style.height = el.scrollHeight + 'px';\n void el.offsetHeight; // force reflow\n el.style.height = '0';\n};\n\ndefineExpose({\n showSpoiler\n});\n</script>\n<style lang=\"scss\">\n.spoiler {\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,cAAc,IAAI,KAAK;AAC7B,UAAM,iBAAiB,IAAI,IAAI;AAE/B,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,oBAAY,QAAQ,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM;AAC1B,kBAAY,QAAQ,CAAC,YAAY;AAAA,IACnC;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS;AAClB,WAAK,GAAG;AACR,SAAG,MAAM,SAAS,GAAG,eAAe;AAAA,IACtC;AAEA,UAAM,eAAe,CAAC,OAAO;AAC3B,SAAG,MAAM,SAAS;AAAA,IACpB;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS,GAAG,eAAe;AACpC,WAAK,GAAG;AACR,SAAG,MAAM,SAAS;AAAA,IACpB;AAEA,aAAa;AAAA,MACX;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, watch, createElementBlock, openBlock, normalizeClass, createElementVNode, createCommentVNode, withModifiers, createVNode, toDisplayString } from "vue";
2
2
  import axios from "axios";
3
- import Loader from "../Loader/Loader.vue2.js";
3
+ import Loader from "../Loader/Loader.vue.js";
4
4
  import _sfc_main$1 from "../../modules/icons/navigation/IconUpload.vue.js";
5
5
  import _sfc_main$2 from "../../modules/icons/navigation/IconDelete.vue.js";
6
6
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { ref, createElementBlock, openBlock, withModifiers, createVNode, createElementVNode, Transition, withCtx, createBlock, createCommentVNode, toDisplayString } from "vue";
2
2
  import axios from "axios";
3
- import Loader from "../Loader/Loader.vue2.js";
3
+ import Loader from "../Loader/Loader.vue.js";
4
4
  import _sfc_main$1 from "../../modules/icons/navigation/IconUpload.vue.js";
5
5
  import { useStore } from "../../modules/core/views/store/core.store.js";
6
6
  const _hoisted_1 = {
@@ -1,7 +1,7 @@
1
1
  import { ref, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, createTextVNode, withCtx } from "vue";
2
2
  /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
- import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
4
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { useI18n } from "vue-i18n";
7
7
  import { state, actions } from "../../store/auth.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx } from "vue";
2
2
  /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
- import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
4
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { state, actions } from "../../store/auth.js";
7
7
  import invitesStore from "../../../../organizations/store/invites.store.js";