adata-ui 2.1.41-beta.1 → 2.1.41-beta.3

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 (569) hide show
  1. package/-error.vue +170 -170
  2. package/.claude/settings.local.json +19 -0
  3. package/.editorconfig +12 -12
  4. package/.gitlab-ci.yml +16 -16
  5. package/.nuxtrc +1 -1
  6. package/.nvmrc +1 -1
  7. package/.playground/app.config.ts +5 -5
  8. package/.playground/app.vue +102 -102
  9. package/.playground/nuxt.config.ts +4 -4
  10. package/CLAUDE.md +63 -63
  11. package/README.md +75 -75
  12. package/app.config.ts +28 -28
  13. package/app.vue +8 -8
  14. package/assets/styles/main.css +12 -12
  15. package/assets/styles/theme.css +583 -583
  16. package/assets/styles/ui.css +247 -247
  17. package/components/elements/README.md +1 -1
  18. package/components/elements/a-select-row/ASelectRowV2.vue +210 -210
  19. package/components/elements/a-select-row/index.vue +139 -139
  20. package/components/elements/accordion/AAccordion.vue +199 -199
  21. package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +145 -145
  22. package/components/elements/accordion/AAccordionGroup/types.ts +20 -20
  23. package/components/elements/accordion/AAccordionGroup/ui.config.ts +22 -22
  24. package/components/elements/accordion/types.ts +14 -14
  25. package/components/elements/accordion/ui.config.ts +22 -22
  26. package/components/elements/alert/AAlert.vue +52 -52
  27. package/components/elements/banner/ABanner.vue +49 -49
  28. package/components/elements/bg-block/ABgBlock.vue +11 -11
  29. package/components/elements/button/AButton.vue +191 -191
  30. package/components/elements/button/AButtonV2.vue +179 -177
  31. package/components/elements/button/types.ts +24 -24
  32. package/components/elements/button-login/index.vue +19 -19
  33. package/components/elements/calendar/ACalendar.vue +83 -83
  34. package/components/elements/carousel/ACarousel.vue +159 -159
  35. package/components/elements/carousel/config.ui.ts +15 -15
  36. package/components/elements/carousel/types.ts +18 -18
  37. package/components/elements/chip-wrapper/AChipWrapper.vue +81 -81
  38. package/components/elements/chip-wrapper/types.ts +12 -12
  39. package/components/elements/chips/AChips.vue +33 -33
  40. package/components/elements/companies/AOurClients.vue +47 -47
  41. package/components/elements/count-up/ACountUp.vue +54 -54
  42. package/components/elements/curve-block/ACurveBlock.vue +259 -259
  43. package/components/elements/curve-block-v2/ACurveBlockV2.vue +122 -120
  44. package/components/elements/digit-badge/ADigitBadge.vue +86 -86
  45. package/components/elements/empty-box/empty-box-V2.vue +92 -92
  46. package/components/elements/error-template/index.vue +116 -116
  47. package/components/elements/feature-description/AFeatureDescription.vue +112 -112
  48. package/components/elements/illustrations/noAccess.vue +71 -71
  49. package/components/elements/infinite-carousel/AInfiniteCarousel.vue +85 -85
  50. package/components/elements/infinite-scroll/AInfiniteScroll.vue +33 -33
  51. package/components/elements/leave-note/ALeaveNote.vue +102 -102
  52. package/components/elements/pagination/APagination.vue +110 -110
  53. package/components/elements/photos-animation/APhotosAnimation.vue +85 -85
  54. package/components/elements/section-heading/ASectionHeading.vue +35 -35
  55. package/components/elements/segmented/ASegmentedV2.vue +154 -154
  56. package/components/elements/select/ASelect.vue +448 -448
  57. package/components/elements/select/ASelectMobile.vue +186 -186
  58. package/components/elements/select/ASelectV2.vue +580 -580
  59. package/components/elements/select/ui/select-button.vue +112 -112
  60. package/components/elements/select/ui/select-list.vue +99 -99
  61. package/components/elements/show-more/AShowMore.vue +35 -35
  62. package/components/elements/show-more/AShowMoreV2.vue +26 -26
  63. package/components/elements/skeleton/ASkeleton.vue +44 -44
  64. package/components/elements/slider/ASlider.vue +175 -175
  65. package/components/elements/slider/ASliderItem.vue +31 -31
  66. package/components/elements/slider/ASliderV2.vue +182 -182
  67. package/components/elements/slider/types.ts +21 -21
  68. package/components/elements/star-rating/AStarRating.vue +189 -189
  69. package/components/elements/star-rating/types.ts +7 -7
  70. package/components/elements/star-rating/ui/Star.vue +74 -74
  71. package/components/elements/status-badge/AStatusBadge.vue +125 -125
  72. package/components/elements/step-slider/AStepSliderColCard.vue +270 -270
  73. package/components/elements/step-slider/AStepSliderColNumber.vue +199 -199
  74. package/components/elements/table/ATable.vue +93 -93
  75. package/components/elements/table/table.config.ts +32 -32
  76. package/components/elements/tree-select/ATreeSelect.vue +157 -157
  77. package/components/elements/tree-select/TreeService.ts +184 -184
  78. package/components/elements/tree-select/components/ATreeSelectNode.vue +104 -104
  79. package/components/elements/tree-select/types.ts +63 -63
  80. package/components/elements/tree-select/utils.ts +30 -30
  81. package/components/elements/tree-select-mobile/ATreeSelectMobile.vue +79 -79
  82. package/components/elements/tree-select-mobile/components/ATreeSelectNodesMobile.vue +175 -175
  83. package/components/elements/tree-select-modal/ATreeSelectModal.vue +217 -217
  84. package/components/features/color-mode/AColorMode.client.vue +74 -74
  85. package/components/features/dropdown/ADropdown.vue +127 -127
  86. package/components/features/dropdown/ADropdownV2.vue +140 -140
  87. package/components/features/go-top/GoTop.vue +63 -63
  88. package/components/features/lang-switcher/lang-switcher.vue +158 -158
  89. package/components/features/payment/banner/BasicPlusLimitBanner.vue +84 -84
  90. package/components/features/payment/banner/PaymentBanner.vue +88 -88
  91. package/components/features/payment/banner/UpSellBanner.vue +105 -105
  92. package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +180 -180
  93. package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +123 -123
  94. package/components/features/payment/process/PaymentMethodSidePanel.vue +138 -138
  95. package/components/features/payment/process/PaymentProcess.vue +158 -158
  96. package/components/features/payment/process/PaymentTopUpSidePanel.vue +119 -119
  97. package/components/features/pk-mobile-services/APkMobileServices.vue +107 -107
  98. package/components/features//321/201hange-version/AChangeVersion.vue +20 -20
  99. package/components/forms/README.md +1 -1
  100. package/components/forms/checkbox/ACheckbox.vue +149 -149
  101. package/components/forms/checkbox/ACheckboxV2.vue +229 -229
  102. package/components/forms/feedback-form/FeedbackForm.vue +177 -177
  103. package/components/forms/feedback-form/FeedbackFormV2.vue +186 -183
  104. package/components/forms/input/AInputV2.vue +560 -556
  105. package/components/forms/input/button/AInputButton.vue +53 -53
  106. package/components/forms/input/date/AInputDate.vue +217 -217
  107. package/components/forms/input/password/AInputPassword.vue +59 -59
  108. package/components/forms/input/standard/AInputStandard.vue +424 -424
  109. package/components/forms/input/textarea/ATextarea.vue +207 -207
  110. package/components/forms/input/textarea/ATextareaV2.vue +253 -253
  111. package/components/forms/radio-button/ARadioButton.vue +95 -95
  112. package/components/forms/request-demo/ARequestDemo.vue +108 -108
  113. package/components/forms/toggle/AToggle.vue +157 -157
  114. package/components/forms/toggle/AToggleV2.vue +72 -72
  115. package/components/forms/toggle/types.ts +16 -16
  116. package/components/modals/AConfirmationEmail.vue +40 -40
  117. package/components/modals/AboutTariffModal.vue +115 -115
  118. package/components/modals/AnotherDeviceModal.vue +65 -65
  119. package/components/modals/ApplicationAcceptedModal.vue +45 -45
  120. package/components/modals/ConnectingTariffModal.vue +60 -60
  121. package/components/modals/ContactsMobileModel.vue +182 -182
  122. package/components/modals/ContentNavigationModal.vue +100 -100
  123. package/components/modals/Insufficient-funds-modal.vue +62 -62
  124. package/components/modals/LimitReachedModal.vue +44 -44
  125. package/components/modals/NoAccessModal.vue +39 -39
  126. package/components/modals/PaymentMethodModal.vue +101 -101
  127. package/components/modals/RedirectsBanksModal.vue +69 -69
  128. package/components/modals/ReplenishModal.vue +132 -132
  129. package/components/modals/ReportBugConfirmModal.vue +32 -32
  130. package/components/modals/ReportBugModal.vue +172 -172
  131. package/components/modals/Resend.vue +81 -81
  132. package/components/modals/SubmitApplicationModal.vue +126 -126
  133. package/components/modals/id/AuthModal.vue +72 -72
  134. package/components/modals/id/IdAutoLogoutModal.vue +44 -44
  135. package/components/modals/id/IdBanner.vue +41 -41
  136. package/components/modals/id/IdConfirmAccountOtpModal.vue +182 -182
  137. package/components/modals/id/IdConfirmSuccessfulModal.vue +41 -41
  138. package/components/modals/id/IdLoginModal.vue +336 -336
  139. package/components/modals/id/IdModals.vue +125 -125
  140. package/components/modals/id/IdNewPasswordModal.vue +129 -129
  141. package/components/modals/id/IdOtpInput.vue +156 -156
  142. package/components/modals/id/IdPasswordSuccessfulModal.vue +25 -25
  143. package/components/modals/id/IdRecoveryModal.vue +117 -117
  144. package/components/modals/id/IdRegistrationModal.vue +215 -215
  145. package/components/modals/id/IdResetPasswordOtpModal.vue +159 -159
  146. package/components/modals/id/IdTwoFactorModal.vue +126 -126
  147. package/components/navigation/README.md +1 -1
  148. package/components/navigation/bottom-navigation/ABottomNavigation.vue +106 -106
  149. package/components/navigation/breadcrumbs/ABreadcrumbs.vue +128 -128
  150. package/components/navigation/breadcrumbs/types.ts +8 -8
  151. package/components/navigation/footer/AFooter.vue +283 -283
  152. package/components/navigation/footer/ui/a-footer-accordion.vue +118 -118
  153. package/components/navigation/header/AHeader.vue +237 -237
  154. package/components/navigation/header/AlmatyContacts.vue +145 -145
  155. package/components/navigation/header/AstanaContacts.vue +67 -67
  156. package/components/navigation/header/CardGallery.vue +252 -252
  157. package/components/navigation/header/ContactMenu.vue +48 -48
  158. package/components/navigation/header/HeaderLink.vue +250 -250
  159. package/components/navigation/header/HeaderUsage.vue +139 -139
  160. package/components/navigation/header/ListItem.vue +32 -32
  161. package/components/navigation/header/NavCard.vue +42 -42
  162. package/components/navigation/header/NavList.vue +73 -73
  163. package/components/navigation/header/NotificationsMenu.vue +50 -50
  164. package/components/navigation/header/ProductMenu.vue +101 -101
  165. package/components/navigation/header/ProfileMenu.vue +168 -168
  166. package/components/navigation/header/SystemNotification.vue +108 -108
  167. package/components/navigation/header/types.ts +28 -28
  168. package/components/navigation/line-tabs/ALineTabs.vue +112 -112
  169. package/components/navigation/line-tabs/types.ts +21 -21
  170. package/components/navigation/mobile-navigation/AMobileNavigation.vue +112 -112
  171. package/components/navigation/pill-tabs/APillTabs.vue +179 -179
  172. package/components/navigation/pill-tabs/APillTabsV2.vue +241 -241
  173. package/components/navigation/pill-tabs/types.ts +24 -24
  174. package/components/navigation/side-navigation/ASideNavigation.vue +406 -406
  175. package/components/overlays/README.md +1 -1
  176. package/components/overlays/drawer/ADrawerV2.vue +335 -335
  177. package/components/overlays/modal/AModal.vue +335 -335
  178. package/components/overlays/modal/AModalV2.vue +400 -400
  179. package/components/overlays/side-panel/ASidePanel.vue +445 -445
  180. package/components/overlays/sideover/ASlideover.vue +351 -351
  181. package/components/overlays/tooltip/ATooltip.vue +238 -238
  182. package/components/overlays/tooltip/ATooltipV2.vue +226 -226
  183. package/components/overlays/tooltip/types.ts +26 -26
  184. package/components/overlays/tooltip/useTooltipTrigger.ts +101 -101
  185. package/components/transitions/ATransitionHeight.vue +67 -67
  186. package/components/utils/index.ts +19 -19
  187. package/components/utils/removeTrailingSlash.ts +7 -7
  188. package/composables/highlight.ts +19 -19
  189. package/composables/modalsState.ts +8 -8
  190. package/composables/projectState.ts +2 -2
  191. package/composables/useAccessTokenCookie.ts +25 -25
  192. package/composables/useActiveNavigation.ts +84 -84
  193. package/composables/useAdaptive.ts +46 -46
  194. package/composables/useBuyTariffs.ts +91 -91
  195. package/composables/useCarouselScroll.ts +49 -49
  196. package/composables/useChipOverflow.ts +92 -92
  197. package/composables/useHeaderNavigationLinks.ts +519 -519
  198. package/composables/useIdModals.ts +36 -36
  199. package/composables/usePayment.ts +78 -78
  200. package/composables/useUIValidation.ts +16 -16
  201. package/composables/useUrls.ts +23 -23
  202. package/eslint.config.mjs +58 -58
  203. package/i18n/i18n.config.ts +21 -21
  204. package/i18n.config.ts +21 -21
  205. package/icons/adata-logo.vue +17 -17
  206. package/icons/ai-assistant.vue +13 -13
  207. package/icons/akimat.vue +20 -20
  208. package/icons/archive.vue +16 -16
  209. package/icons/arrow/arrow-bottom-left-on-square.vue +5 -5
  210. package/icons/arrow/arrow-circle-down.vue +16 -16
  211. package/icons/arrow/arrow-circle-reset.vue +16 -16
  212. package/icons/arrow/arrow-corner.vue +9 -9
  213. package/icons/arrow/arrow-graph-down.vue +13 -13
  214. package/icons/arrow/arrow-graph-up.vue +14 -14
  215. package/icons/arrow/arrow-left-right.vue +8 -8
  216. package/icons/arrow/arrow-left.vue +14 -14
  217. package/icons/arrow/arrow-right.vue +14 -14
  218. package/icons/arrow/arrow-square-down.vue +15 -15
  219. package/icons/arrow/arrow-top-right-on-square.vue +6 -6
  220. package/icons/arrow/arrows-in.vue +11 -11
  221. package/icons/arrow/arrows-out.vue +11 -11
  222. package/icons/arrow/arrows-resize-in.vue +38 -38
  223. package/icons/arrow/arrows-resize-out.vue +17 -17
  224. package/icons/arrow-currency-gray.vue +5 -5
  225. package/icons/arrow-currency-green.vue +5 -5
  226. package/icons/arrow-currency-red.vue +5 -5
  227. package/icons/arrow-side-up.vue +6 -6
  228. package/icons/avatar.vue +12 -12
  229. package/icons/bank.vue +5 -5
  230. package/icons/bar-chart-3.vue +3 -3
  231. package/icons/bill.vue +3 -3
  232. package/icons/block.vue +16 -16
  233. package/icons/book-open.vue +3 -3
  234. package/icons/bookmark/bookmark-filled.vue +19 -19
  235. package/icons/bookmark/bookmark.vue +5 -5
  236. package/icons/bot.vue +52 -52
  237. package/icons/braces.vue +3 -3
  238. package/icons/briefcase.vue +14 -14
  239. package/icons/browsers/browser-duck.vue +65 -65
  240. package/icons/browsers/browser-google.vue +30 -30
  241. package/icons/browsers/browser-yandex.vue +13 -13
  242. package/icons/building-vector.vue +7 -7
  243. package/icons/building.vue +9 -9
  244. package/icons/calculator.vue +7 -7
  245. package/icons/calendar.vue +24 -24
  246. package/icons/car-side.vue +16 -16
  247. package/icons/car.vue +7 -7
  248. package/icons/cart.vue +15 -15
  249. package/icons/chart-bar.vue +5 -5
  250. package/icons/chart-no-axes-column.vue +3 -3
  251. package/icons/chart-pie.vue +16 -16
  252. package/icons/check/check-circle.vue +6 -6
  253. package/icons/check/check-outline.vue +3 -3
  254. package/icons/check/check-shield.vue +14 -14
  255. package/icons/check/check.vue +17 -17
  256. package/icons/check/checkmark-circle.vue +6 -6
  257. package/icons/check-sb.vue +7 -7
  258. package/icons/checkbox/checkbox-active.vue +17 -17
  259. package/icons/checkbox/checkbox-empty.vue +10 -10
  260. package/icons/checkbox/checkbox-intermediate.vue +7 -7
  261. package/icons/chevron/chevron-down-outline.vue +3 -3
  262. package/icons/chevron/chevron-down.vue +5 -5
  263. package/icons/chevron/chevron-left.vue +5 -5
  264. package/icons/chevron/chevron-right.vue +5 -5
  265. package/icons/chevron/chevron-up.vue +5 -5
  266. package/icons/chevron/double-chevron-right.vue +12 -12
  267. package/icons/clipboard-list.vue +3 -3
  268. package/icons/clipboard-text.vue +7 -7
  269. package/icons/clock-outline.vue +3 -3
  270. package/icons/clock-time.vue +24 -24
  271. package/icons/clock.vue +25 -25
  272. package/icons/close.vue +16 -16
  273. package/icons/cloud/cloud-upload.vue +3 -3
  274. package/icons/code.vue +9 -9
  275. package/icons/company/company-bazis.vue +21 -21
  276. package/icons/company/company-bereke.vue +25 -25
  277. package/icons/company/company-bigroup.vue +16 -16
  278. package/icons/company/company-erg.vue +17 -17
  279. package/icons/company/company-forte.vue +21 -21
  280. package/icons/company/company-halyk.vue +15 -15
  281. package/icons/company/company-jusan.vue +31 -31
  282. package/icons/company/company-kaspi.vue +14 -14
  283. package/icons/company/company-kazzinc.vue +22 -22
  284. package/icons/company/company-mycar.vue +13 -13
  285. package/icons/company/company-samruk.vue +21 -21
  286. package/icons/company-egov-small.vue +15 -15
  287. package/icons/company.vue +8 -8
  288. package/icons/compare-outlined.vue +8 -8
  289. package/icons/copy.vue +7 -7
  290. package/icons/currency/currency-dollar.vue +16 -16
  291. package/icons/currency/currency-down.vue +22 -22
  292. package/icons/currency/currency-eur.vue +57 -57
  293. package/icons/currency/currency-rub.vue +7 -7
  294. package/icons/currency/currency-tenge.vue +9 -9
  295. package/icons/currency/currency-usd.vue +221 -221
  296. package/icons/currency/currency-yuan.vue +25 -25
  297. package/icons/database.vue +3 -3
  298. package/icons/default-avatar.vue +20 -20
  299. package/icons/delete.vue +7 -7
  300. package/icons/document.vue +5 -5
  301. package/icons/dots-horizontal.vue +31 -31
  302. package/icons/download-line.vue +13 -13
  303. package/icons/download-outline.vue +3 -3
  304. package/icons/download-rounded.vue +15 -15
  305. package/icons/download.vue +11 -11
  306. package/icons/edit.vue +7 -7
  307. package/icons/education.vue +16 -16
  308. package/icons/egov-small.vue +7 -7
  309. package/icons/egov.vue +41 -41
  310. package/icons/elicense.vue +38 -38
  311. package/icons/excel-icon.vue +14 -14
  312. package/icons/expand-window.vue +7 -7
  313. package/icons/eye-closed.vue +26 -26
  314. package/icons/eye-open.vue +7 -7
  315. package/icons/eye-opened.vue +23 -23
  316. package/icons/favourite-bookmark-outline.vue +17 -17
  317. package/icons/file/file-check-corner.vue +3 -3
  318. package/icons/file/file-spreadsheet.vue +3 -3
  319. package/icons/file/file.vue +16 -16
  320. package/icons/file/files.vue +16 -16
  321. package/icons/file-json.vue +3 -3
  322. package/icons/file-pen.vue +31 -31
  323. package/icons/file-search.vue +3 -3
  324. package/icons/file-stack.vue +31 -31
  325. package/icons/file-text.vue +3 -3
  326. package/icons/file-types/excel.vue +131 -131
  327. package/icons/file-types/html.vue +13 -13
  328. package/icons/file-types/jpeg.vue +16 -16
  329. package/icons/file-types/pdf.vue +11 -11
  330. package/icons/file-types/png.vue +11 -11
  331. package/icons/file-types/rar.vue +11 -11
  332. package/icons/file-types/word.vue +50 -50
  333. package/icons/file-types/zip.vue +11 -11
  334. package/icons/filter.vue +5 -5
  335. package/icons/flag.vue +7 -7
  336. package/icons/flask-conical.vue +3 -3
  337. package/icons/folder-open.vue +3 -3
  338. package/icons/gauge.vue +17 -17
  339. package/icons/gift-outline.vue +3 -3
  340. package/icons/gift.vue +8 -8
  341. package/icons/git-compare.vue +38 -38
  342. package/icons/git-fork.vue +3 -3
  343. package/icons/globe-2.vue +3 -3
  344. package/icons/globe.vue +16 -16
  345. package/icons/google.vue +41 -41
  346. package/icons/gradiend-icons/files-gradient.vue +22 -22
  347. package/icons/gradiend-icons/hammer-gradient.vue +62 -62
  348. package/icons/graduation-cap.vue +31 -31
  349. package/icons/graph-loading.vue +34 -34
  350. package/icons/graph-pie.vue +14 -14
  351. package/icons/hand/hand-thumb-up-filled.vue +5 -5
  352. package/icons/hand/hand-thumb-up.vue +5 -5
  353. package/icons/hand-with-phone/hand-with-phone-dark.vue +52 -52
  354. package/icons/hand-with-phone/hand-with-phone-light.vue +52 -52
  355. package/icons/handshake.vue +5 -5
  356. package/icons/hcheck.vue +14 -14
  357. package/icons/hdocument.vue +7 -7
  358. package/icons/headset.vue +6 -6
  359. package/icons/help-question-circle.vue +26 -26
  360. package/icons/history.vue +5 -5
  361. package/icons/home.vue +14 -14
  362. package/icons/horizontal-more.vue +13 -13
  363. package/icons/hot-line.vue +6 -6
  364. package/icons/hummer.vue +16 -16
  365. package/icons/id.vue +7 -7
  366. package/icons/in-row-type.vue +46 -46
  367. package/icons/in-table-type.vue +29 -29
  368. package/icons/info/info-circle.vue +29 -29
  369. package/icons/invoice.vue +8 -8
  370. package/icons/judge.vue +14 -14
  371. package/icons/kaspi-qr.vue +13 -13
  372. package/icons/key-round.vue +3 -3
  373. package/icons/landmark.vue +3 -3
  374. package/icons/layers.vue +3 -3
  375. package/icons/letter/letter-a.vue +8 -8
  376. package/icons/letter/letter-b.vue +6 -6
  377. package/icons/letter/letter-c.vue +6 -6
  378. package/icons/letter/letter-d.vue +6 -6
  379. package/icons/letter/letter-e.vue +6 -6
  380. package/icons/link-chain.vue +28 -28
  381. package/icons/link-url.vue +3 -3
  382. package/icons/link.vue +7 -7
  383. package/icons/linkedin.vue +24 -24
  384. package/icons/list-tree.vue +3 -3
  385. package/icons/loader-circle.vue +27 -27
  386. package/icons/location.vue +8 -8
  387. package/icons/lock.vue +5 -5
  388. package/icons/logo.vue +15 -15
  389. package/icons/logout.vue +16 -16
  390. package/icons/magnify/magnifying-glass-minus.vue +8 -8
  391. package/icons/magnify/magnifying-glass-plus.vue +9 -9
  392. package/icons/magnify/magnifying-glass.vue +9 -9
  393. package/icons/mail-question-mark.vue +8 -8
  394. package/icons/mail.vue +7 -7
  395. package/icons/mailru.vue +34 -34
  396. package/icons/main-filter.vue +5 -5
  397. package/icons/map/map-pin-filled.vue +7 -7
  398. package/icons/map/map-pin-rect.vue +15 -15
  399. package/icons/map/map-pin.vue +7 -7
  400. package/icons/map-marker-start.vue +7 -7
  401. package/icons/map-paper.vue +5 -5
  402. package/icons/medal.vue +7 -7
  403. package/icons/menu-filled.vue +20 -20
  404. package/icons/menu.vue +8 -8
  405. package/icons/message/message-square.vue +3 -3
  406. package/icons/message/message.vue +12 -12
  407. package/icons/message-dotted.vue +30 -30
  408. package/icons/messages-square.vue +3 -3
  409. package/icons/minus/minus-circle.vue +10 -10
  410. package/icons/money.vue +5 -5
  411. package/icons/monitoring.vue +10 -10
  412. package/icons/moon.vue +8 -8
  413. package/icons/more.vue +29 -29
  414. package/icons/network.vue +3 -3
  415. package/icons/newspaper.vue +3 -3
  416. package/icons/note-pencil.vue +14 -14
  417. package/icons/note.vue +14 -14
  418. package/icons/notification-error.vue +17 -17
  419. package/icons/notification.vue +16 -16
  420. package/icons/paperclip.vue +7 -7
  421. package/icons/payment/payment-card.vue +6 -6
  422. package/icons/payment/payment-kaspi.vue +11 -11
  423. package/icons/person-vector.vue +7 -7
  424. package/icons/person-with-briefcase.vue +10 -10
  425. package/icons/person.vue +22 -22
  426. package/icons/phone-call.vue +6 -6
  427. package/icons/phone-filled.vue +5 -5
  428. package/icons/phone-reversed.vue +3 -3
  429. package/icons/phone.vue +7 -7
  430. package/icons/plus/plus-circle.vue +8 -8
  431. package/icons/plus/plus.vue +13 -13
  432. package/icons/profile.vue +5 -5
  433. package/icons/radio/radio-check.vue +8 -8
  434. package/icons/radio/radio-empty.vue +10 -10
  435. package/icons/receipt.vue +8 -8
  436. package/icons/robot-outline.vue +3 -3
  437. package/icons/robot.vue +14 -14
  438. package/icons/route.vue +7 -7
  439. package/icons/sanctions.vue +8 -8
  440. package/icons/scales/scale-outline.vue +3 -3
  441. package/icons/scales/scale.vue +16 -16
  442. package/icons/scales/scales.vue +5 -5
  443. package/icons/scales/standing-scales.vue +15 -15
  444. package/icons/scan-search.vue +3 -3
  445. package/icons/search-outline.vue +3 -3
  446. package/icons/search.vue +27 -27
  447. package/icons/send.vue +3 -3
  448. package/icons/settings.vue +26 -26
  449. package/icons/share/share-alt.vue +5 -5
  450. package/icons/share/share.vue +14 -14
  451. package/icons/shield-alert.vue +31 -31
  452. package/icons/shield-verified.vue +14 -14
  453. package/icons/ship.vue +8 -8
  454. package/icons/socials/face-book.vue +15 -15
  455. package/icons/socials/facebook-color.vue +16 -16
  456. package/icons/socials/globe-color.vue +16 -16
  457. package/icons/socials/instagram-color.vue +46 -46
  458. package/icons/socials/instagram.vue +19 -19
  459. package/icons/socials/linkedin-color.vue +14 -14
  460. package/icons/socials/telegram-color.vue +16 -16
  461. package/icons/socials/telegram.vue +15 -15
  462. package/icons/socials/tik-tok.vue +15 -15
  463. package/icons/socials/tiktok-color.vue +14 -14
  464. package/icons/socials/vk-color.vue +16 -16
  465. package/icons/socials/youtube-color.vue +16 -16
  466. package/icons/socials/youtube.vue +16 -16
  467. package/icons/sort/sort-asc.vue +15 -15
  468. package/icons/sort/sort-desc.vue +15 -15
  469. package/icons/sparkles.vue +3 -3
  470. package/icons/splitting-arrows.vue +8 -8
  471. package/icons/star/star-filled.vue +41 -41
  472. package/icons/star/star-half-filled.vue +21 -21
  473. package/icons/star/star.vue +25 -25
  474. package/icons/sun.vue +25 -25
  475. package/icons/sviazi.vue +5 -5
  476. package/icons/tag.vue +30 -30
  477. package/icons/tasks.vue +10 -10
  478. package/icons/tender-search.vue +11 -11
  479. package/icons/terminal.vue +3 -3
  480. package/icons/toasts/check-circle-toast.vue +6 -6
  481. package/icons/toasts/warning-triangle-toast.vue +8 -8
  482. package/icons/trash.vue +13 -13
  483. package/icons/triangle-alert.vue +3 -3
  484. package/icons/triangle.vue +10 -10
  485. package/icons/truck.vue +7 -7
  486. package/icons/user-square.vue +14 -14
  487. package/icons/user.vue +22 -22
  488. package/icons/users-focus.vue +8 -8
  489. package/icons/users-outline.vue +3 -3
  490. package/icons/users-round.vue +3 -3
  491. package/icons/users-three.vue +7 -7
  492. package/icons/users.vue +8 -8
  493. package/icons/view-eye-open.vue +13 -13
  494. package/icons/warning/warning-circle.vue +29 -29
  495. package/icons/warning/warning-triangle-filled.vue +12 -12
  496. package/icons/warning/warning-triangle.vue +28 -28
  497. package/icons/webhook.vue +3 -3
  498. package/icons/whatsapp.vue +8 -8
  499. package/icons/work-bag.vue +11 -11
  500. package/icons/work-case.vue +9 -9
  501. package/icons/work-search.vue +10 -10
  502. package/icons/work.vue +5 -5
  503. package/icons/workflow.vue +3 -3
  504. package/icons/x-mark.vue +15 -15
  505. package/icons/x-outline.vue +3 -3
  506. package/icons/yandex.vue +29 -29
  507. package/icons/zap.vue +3 -3
  508. package/illustrations/address-location.vue +38 -38
  509. package/illustrations/award-badge.vue +105 -105
  510. package/illustrations/ball-with-chain.vue +120 -120
  511. package/illustrations/bill.vue +133 -133
  512. package/illustrations/buildings.vue +82 -82
  513. package/illustrations/calendar.vue +156 -156
  514. package/illustrations/chains.vue +152 -152
  515. package/illustrations/coin-percent.vue +126 -126
  516. package/illustrations/coins-stack.vue +202 -202
  517. package/illustrations/delete-dark.vue +32 -32
  518. package/illustrations/delete.vue +33 -33
  519. package/illustrations/doc-with-stamp.vue +126 -126
  520. package/illustrations/document.vue +64 -64
  521. package/illustrations/door.vue +85 -85
  522. package/illustrations/empty-badge-check.vue +20 -20
  523. package/illustrations/empty-ban.vue +18 -18
  524. package/illustrations/empty-box.vue +77 -77
  525. package/illustrations/empty-filter.vue +20 -20
  526. package/illustrations/empty-inbox.vue +19 -19
  527. package/illustrations/empty-scale.vue +22 -22
  528. package/illustrations/empty-search-x.vue +21 -21
  529. package/illustrations/empty-shopping-cart.vue +21 -21
  530. package/illustrations/empty-users-round.vue +20 -20
  531. package/illustrations/empty-wallet.vue +127 -127
  532. package/illustrations/graph-in-coin.vue +119 -119
  533. package/illustrations/hammer.vue +156 -156
  534. package/illustrations/hand-cash.vue +108 -108
  535. package/illustrations/info.vue +52 -52
  536. package/illustrations/mail-active.vue +86 -86
  537. package/illustrations/mail.vue +68 -68
  538. package/illustrations/no-access.vue +92 -92
  539. package/illustrations/ok.vue +90 -90
  540. package/illustrations/people-group.vue +237 -237
  541. package/illustrations/person-with-phone.vue +187 -187
  542. package/illustrations/person.vue +159 -159
  543. package/illustrations/phone-check.vue +110 -110
  544. package/illustrations/phone-payment-method.vue +223 -223
  545. package/illustrations/search.vue +14 -14
  546. package/illustrations/shield-user.vue +94 -94
  547. package/illustrations/stop-hand.vue +84 -84
  548. package/illustrations/stop-sign.vue +34 -34
  549. package/illustrations/suit.vue +97 -97
  550. package/illustrations/suitcase.vue +105 -105
  551. package/illustrations/terminal.vue +100 -100
  552. package/illustrations/trash-can.vue +66 -66
  553. package/illustrations/turn-on-tariff.vue +38 -38
  554. package/illustrations/two-persons.vue +169 -169
  555. package/lang/en.ts +877 -877
  556. package/lang/kk.ts +879 -879
  557. package/lang/ru.ts +879 -879
  558. package/layouts/default.vue +13 -13
  559. package/nuxt.config.ts +95 -95
  560. package/package.json +64 -64
  561. package/plugins/maska.ts +4 -4
  562. package/plugins/toast.client.ts +41 -41
  563. package/public/kaspi/logo.svg +4 -4
  564. package/shared/constans/pages.ts +96 -96
  565. package/tsconfig.json +6 -6
  566. package/utils/getMaxZindex.ts +25 -25
  567. package/utils/localizedNavigation.ts +36 -36
  568. package/utils/twMerge.ts +34 -34
  569. package/vitest.config.ts +14 -14
@@ -1,84 +1,84 @@
1
- // Active-state detection for the products mega-menu.
2
- //
3
- // Two levels of "active":
4
- // 1. activeModule — the current host matches one of the module's hosts
5
- // (host ≠ module key: e.g. the `fines` module lives on avto.*.kz,
6
- // and `tenders` spans both zakupki.*.kz and tender.*.kz).
7
- // 2. activeService — within the active module, the current page matches a
8
- // concrete item link (`/`, `/unload`, `/foreign`, …).
9
-
10
- const LOCALE_SEGMENTS = new Set(['kk', 'en'])
11
-
12
- interface NavTarget { to: string }
13
- interface NavModule { link: string, items: NavTarget[] }
14
- interface NormalizedUrl { host: string, key: string }
15
-
16
- function safeUrl(href: string): URL | null {
17
- try {
18
- return new URL(href)
19
- }
20
- catch {
21
- return null
22
- }
23
- }
24
-
25
- // Reduce a URL to a comparable identity: host + locale-stripped path + query.
26
- // The query is kept because it can be significant (fines main is `/?check_fines=true`).
27
- function normalize(href: string): NormalizedUrl | null {
28
- const url = safeUrl(href)
29
- if (!url) return null
30
-
31
- const segments = url.pathname
32
- .split('/')
33
- .filter(segment => segment && !LOCALE_SEGMENTS.has(segment))
34
-
35
- const path = `/${segments.join('/')}`
36
- return { host: url.host, key: path + url.search }
37
- }
38
-
39
- // A "root" target has no path segments (e.g. `/` or `/?check_fines=true`).
40
- // Roots must match exactly, otherwise their prefix would light up every sub-page.
41
- function isRoot(key: string): boolean {
42
- return key === '/' || key.startsWith('/?')
43
- }
44
-
45
- export function useActiveNavigation() {
46
- const route = useRoute()
47
-
48
- // Recompute on every SPA navigation. Host stays constant within an app, so we
49
- // read it from the request URL (SSR-safe); the path/query come from the route.
50
- const current = computed<NormalizedUrl | null>(() => {
51
- const host = useRequestURL().host
52
- return normalize(`https://${host}${route.fullPath}`)
53
- })
54
-
55
- function isActiveModule(module: NavModule): boolean {
56
- if (!current.value) return false
57
-
58
- const hosts = new Set<string>()
59
- const link = normalize(module.link)
60
- if (link) hosts.add(link.host)
61
- for (const item of module.items) {
62
- const item_url = normalize(item.to)
63
- if (item_url) hosts.add(item_url.host)
64
- }
65
-
66
- return hosts.has(current.value.host)
67
- }
68
-
69
- function isActiveService(itemTo: string): boolean {
70
- const cur = current.value
71
- const item = normalize(itemTo)
72
- if (!cur || !item || cur.host !== item.host) return false
73
-
74
- // The car-check page redirects to a `car-result` URL; keep its item lit.
75
- if (item.key.includes('check-car') && cur.key.includes('car-result')) return true
76
-
77
- if (cur.key === item.key) return true
78
- if (isRoot(item.key)) return false
79
-
80
- return cur.key.startsWith(item.key)
81
- }
82
-
83
- return { isActiveModule, isActiveService }
84
- }
1
+ // Active-state detection for the products mega-menu.
2
+ //
3
+ // Two levels of "active":
4
+ // 1. activeModule — the current host matches one of the module's hosts
5
+ // (host ≠ module key: e.g. the `fines` module lives on avto.*.kz,
6
+ // and `tenders` spans both zakupki.*.kz and tender.*.kz).
7
+ // 2. activeService — within the active module, the current page matches a
8
+ // concrete item link (`/`, `/unload`, `/foreign`, …).
9
+
10
+ const LOCALE_SEGMENTS = new Set(['kk', 'en'])
11
+
12
+ interface NavTarget { to: string }
13
+ interface NavModule { link: string, items: NavTarget[] }
14
+ interface NormalizedUrl { host: string, key: string }
15
+
16
+ function safeUrl(href: string): URL | null {
17
+ try {
18
+ return new URL(href)
19
+ }
20
+ catch {
21
+ return null
22
+ }
23
+ }
24
+
25
+ // Reduce a URL to a comparable identity: host + locale-stripped path + query.
26
+ // The query is kept because it can be significant (fines main is `/?check_fines=true`).
27
+ function normalize(href: string): NormalizedUrl | null {
28
+ const url = safeUrl(href)
29
+ if (!url) return null
30
+
31
+ const segments = url.pathname
32
+ .split('/')
33
+ .filter(segment => segment && !LOCALE_SEGMENTS.has(segment))
34
+
35
+ const path = `/${segments.join('/')}`
36
+ return { host: url.host, key: path + url.search }
37
+ }
38
+
39
+ // A "root" target has no path segments (e.g. `/` or `/?check_fines=true`).
40
+ // Roots must match exactly, otherwise their prefix would light up every sub-page.
41
+ function isRoot(key: string): boolean {
42
+ return key === '/' || key.startsWith('/?')
43
+ }
44
+
45
+ export function useActiveNavigation() {
46
+ const route = useRoute()
47
+
48
+ // Recompute on every SPA navigation. Host stays constant within an app, so we
49
+ // read it from the request URL (SSR-safe); the path/query come from the route.
50
+ const current = computed<NormalizedUrl | null>(() => {
51
+ const host = useRequestURL().host
52
+ return normalize(`https://${host}${route.fullPath}`)
53
+ })
54
+
55
+ function isActiveModule(module: NavModule): boolean {
56
+ if (!current.value) return false
57
+
58
+ const hosts = new Set<string>()
59
+ const link = normalize(module.link)
60
+ if (link) hosts.add(link.host)
61
+ for (const item of module.items) {
62
+ const item_url = normalize(item.to)
63
+ if (item_url) hosts.add(item_url.host)
64
+ }
65
+
66
+ return hosts.has(current.value.host)
67
+ }
68
+
69
+ function isActiveService(itemTo: string): boolean {
70
+ const cur = current.value
71
+ const item = normalize(itemTo)
72
+ if (!cur || !item || cur.host !== item.host) return false
73
+
74
+ // The car-check page redirects to a `car-result` URL; keep its item lit.
75
+ if (item.key.includes('check-car') && cur.key.includes('car-result')) return true
76
+
77
+ if (cur.key === item.key) return true
78
+ if (isRoot(item.key)) return false
79
+
80
+ return cur.key.startsWith(item.key)
81
+ }
82
+
83
+ return { isActiveModule, isActiveService }
84
+ }
@@ -1,46 +1,46 @@
1
- import {ref, useSSRContext} from "vue";
2
- import type {Ref, UnwrapRef} from "vue"
3
-
4
- export type AdaptiveContext = {
5
- isMobile: boolean
6
- isTablet: boolean
7
- isSmallTablet: boolean
8
- isDesktop: boolean
9
- }
10
-
11
- const isBrowser = typeof window !== undefined && process.client
12
- const computeIsMobile = (): boolean =>
13
- isBrowser ? window.matchMedia('(max-width: 560px)').matches : false
14
-
15
- const computeIsSmallTablet = (): boolean =>
16
- isBrowser ? window.matchMedia('(max-width: 767px)').matches : false
17
- const computeIsTablet = (): boolean =>
18
- isBrowser ? window.innerWidth >= 768 && window.innerWidth < 1024 : false
19
- const computeIsDesktop = (): boolean =>
20
- isBrowser ? window.innerWidth >= 1024 : false
21
-
22
- export const useAdaptive = (): Ref<AdaptiveContext> => {
23
- const ctx = ref<UnwrapRef<AdaptiveContext>>({
24
- isDesktop: computeIsDesktop(),
25
- isMobile: computeIsMobile(),
26
- isTablet: computeIsTablet(),
27
- isSmallTablet: computeIsSmallTablet()
28
- })
29
-
30
- const setValues = () =>
31
- (ctx.value = {
32
- isDesktop: computeIsDesktop(),
33
- isMobile: computeIsMobile(),
34
- isTablet: computeIsTablet(),
35
- isSmallTablet: computeIsSmallTablet()
36
- })
37
-
38
-
39
- onMounted(() => {
40
- window.addEventListener('resize', setValues, { passive: true })
41
- }
42
- )
43
- onUnmounted(() => window.removeEventListener('resize', setValues))
44
-
45
- return ctx
46
- }
1
+ import {ref, useSSRContext} from "vue";
2
+ import type {Ref, UnwrapRef} from "vue"
3
+
4
+ export type AdaptiveContext = {
5
+ isMobile: boolean
6
+ isTablet: boolean
7
+ isSmallTablet: boolean
8
+ isDesktop: boolean
9
+ }
10
+
11
+ const isBrowser = typeof window !== undefined && process.client
12
+ const computeIsMobile = (): boolean =>
13
+ isBrowser ? window.matchMedia('(max-width: 560px)').matches : false
14
+
15
+ const computeIsSmallTablet = (): boolean =>
16
+ isBrowser ? window.matchMedia('(max-width: 767px)').matches : false
17
+ const computeIsTablet = (): boolean =>
18
+ isBrowser ? window.innerWidth >= 768 && window.innerWidth < 1024 : false
19
+ const computeIsDesktop = (): boolean =>
20
+ isBrowser ? window.innerWidth >= 1024 : false
21
+
22
+ export const useAdaptive = (): Ref<AdaptiveContext> => {
23
+ const ctx = ref<UnwrapRef<AdaptiveContext>>({
24
+ isDesktop: computeIsDesktop(),
25
+ isMobile: computeIsMobile(),
26
+ isTablet: computeIsTablet(),
27
+ isSmallTablet: computeIsSmallTablet()
28
+ })
29
+
30
+ const setValues = () =>
31
+ (ctx.value = {
32
+ isDesktop: computeIsDesktop(),
33
+ isMobile: computeIsMobile(),
34
+ isTablet: computeIsTablet(),
35
+ isSmallTablet: computeIsSmallTablet()
36
+ })
37
+
38
+
39
+ onMounted(() => {
40
+ window.addEventListener('resize', setValues, { passive: true })
41
+ }
42
+ )
43
+ onUnmounted(() => window.removeEventListener('resize', setValues))
44
+
45
+ return ctx
46
+ }
@@ -1,91 +1,91 @@
1
- import { removeTrailingSlash } from '#adata-ui/components/utils/removeTrailingSlash'
2
-
3
- export function useBuyTariffs() {
4
- const { commonAuth } = useAppConfig()
5
-
6
- const userApiURL = commonAuth.userApiURL
7
- const { locale } = useI18n()
8
- const localePath = useLocalePath()
9
- const checkNumber = ref(0)
10
- const messageRate = ref(null)
11
-
12
-
13
- const isAuthenticated = computed(() => {
14
- const accessToken = useCookie('accessToken')
15
- return accessToken.value
16
- })
17
-
18
- async function buyTariff(tariffs: any) {
19
- await fetch(`${removeTrailingSlash(userApiURL)}/user/rate`, {
20
- method: 'PUT',
21
- credentials: 'include',
22
- headers: {
23
- 'Content-Type': 'application/json',
24
- 'lang': locale.value,
25
- Authorization: `Bearer ${isAuthenticated.value}`
26
- },
27
- body: JSON.stringify({
28
- rate_code: tariffs
29
- })
30
- })
31
- location.reload()
32
- }
33
-
34
- async function viaKaspiBank(tariffId: any, sum: any) {
35
- try {
36
- const info = await fetch(`${removeTrailingSlash(userApiURL)}/user/kaspi-balance/request/`, {
37
- method: 'POST',
38
- credentials: 'include',
39
- headers: {
40
- 'Content-Type': 'application/json',
41
- 'lang': locale.value,
42
- Authorization: `Bearer ${isAuthenticated.value}`
43
- },
44
- body: JSON.stringify({
45
- amount: sum,
46
- rate_id: tariffId
47
- })
48
- })
49
- const { data } = await info.json().catch(() => ({}))
50
-
51
- checkNumber.value = data.request_id
52
- } catch (error) {
53
- console.error(error)
54
- } finally {
55
- window.open(localePath(`https://kaspi.kz/pay/adata?service_id=5964&9507=${checkNumber.value}`), '_blank')
56
- }
57
- }
58
-
59
- async function leaveRequest(name: any, email: any, phone: any, comment: any, rateCode: any = 'adata_pro') {
60
- try {
61
- const info = await fetch(`${removeTrailingSlash(userApiURL)}/message/rate`, {
62
- method: 'POST',
63
- credentials: 'include',
64
- headers: {
65
- 'Content-Type': 'application/json',
66
- 'lang': locale.value,
67
- Authorization: `Bearer ${isAuthenticated.value}`
68
- },
69
- body: JSON.stringify({
70
- sender_name: name,
71
- email: email,
72
- phone_number: phone,
73
- message: comment,
74
- rate_code: rateCode,
75
- })
76
- })
77
- const { data } = await info.json().catch(() => ({}))
78
- messageRate.value = data
79
- } catch (error) {
80
- console.error(error)
81
- }
82
- }
83
-
84
- return {
85
- buyTariff,
86
- viaKaspiBank,
87
- checkNumber,
88
- leaveRequest,
89
- messageRate
90
- }
91
- }
1
+ import { removeTrailingSlash } from '#adata-ui/components/utils/removeTrailingSlash'
2
+
3
+ export function useBuyTariffs() {
4
+ const { commonAuth } = useAppConfig()
5
+
6
+ const userApiURL = commonAuth.userApiURL
7
+ const { locale } = useI18n()
8
+ const localePath = useLocalePath()
9
+ const checkNumber = ref(0)
10
+ const messageRate = ref(null)
11
+
12
+
13
+ const isAuthenticated = computed(() => {
14
+ const accessToken = useCookie('accessToken')
15
+ return accessToken.value
16
+ })
17
+
18
+ async function buyTariff(tariffs: any) {
19
+ await fetch(`${removeTrailingSlash(userApiURL)}/user/rate`, {
20
+ method: 'PUT',
21
+ credentials: 'include',
22
+ headers: {
23
+ 'Content-Type': 'application/json',
24
+ 'lang': locale.value,
25
+ Authorization: `Bearer ${isAuthenticated.value}`
26
+ },
27
+ body: JSON.stringify({
28
+ rate_code: tariffs
29
+ })
30
+ })
31
+ location.reload()
32
+ }
33
+
34
+ async function viaKaspiBank(tariffId: any, sum: any) {
35
+ try {
36
+ const info = await fetch(`${removeTrailingSlash(userApiURL)}/user/kaspi-balance/request/`, {
37
+ method: 'POST',
38
+ credentials: 'include',
39
+ headers: {
40
+ 'Content-Type': 'application/json',
41
+ 'lang': locale.value,
42
+ Authorization: `Bearer ${isAuthenticated.value}`
43
+ },
44
+ body: JSON.stringify({
45
+ amount: sum,
46
+ rate_id: tariffId
47
+ })
48
+ })
49
+ const { data } = await info.json().catch(() => ({}))
50
+
51
+ checkNumber.value = data.request_id
52
+ } catch (error) {
53
+ console.error(error)
54
+ } finally {
55
+ window.open(localePath(`https://kaspi.kz/pay/adata?service_id=5964&9507=${checkNumber.value}`), '_blank')
56
+ }
57
+ }
58
+
59
+ async function leaveRequest(name: any, email: any, phone: any, comment: any, rateCode: any = 'adata_pro') {
60
+ try {
61
+ const info = await fetch(`${removeTrailingSlash(userApiURL)}/message/rate`, {
62
+ method: 'POST',
63
+ credentials: 'include',
64
+ headers: {
65
+ 'Content-Type': 'application/json',
66
+ 'lang': locale.value,
67
+ Authorization: `Bearer ${isAuthenticated.value}`
68
+ },
69
+ body: JSON.stringify({
70
+ sender_name: name,
71
+ email: email,
72
+ phone_number: phone,
73
+ message: comment,
74
+ rate_code: rateCode,
75
+ })
76
+ })
77
+ const { data } = await info.json().catch(() => ({}))
78
+ messageRate.value = data
79
+ } catch (error) {
80
+ console.error(error)
81
+ }
82
+ }
83
+
84
+ return {
85
+ buyTariff,
86
+ viaKaspiBank,
87
+ checkNumber,
88
+ leaveRequest,
89
+ messageRate
90
+ }
91
+ }
@@ -1,49 +1,49 @@
1
- import { ref, type Ref, onMounted, onUnmounted } from 'vue'
2
-
3
- export const useCarouselScroll = (el: Ref<HTMLElement>) => {
4
- const x = ref<number>(0)
5
-
6
- function onMouseDown (e) {
7
- el.value.style.scrollSnapType = 'none'
8
- el.value.style.scrollBehavior = 'auto'
9
-
10
- x.value = e.pageX
11
-
12
- window.addEventListener('mousemove', onMouseMove)
13
- window.addEventListener('mouseup', onMouseUp)
14
- }
15
-
16
- function onMouseUp () {
17
- el.value.style.removeProperty('scroll-behavior')
18
- el.value.style.removeProperty('scroll-snap-type')
19
-
20
- window.removeEventListener('mousemove', onMouseMove)
21
- window.removeEventListener('mouseup', onMouseUp)
22
- }
23
-
24
- function onMouseMove (e) {
25
- e.preventDefault()
26
-
27
- const delta = e.pageX - x.value
28
-
29
- x.value = e.pageX
30
-
31
- el.value.scrollBy(-delta, 0)
32
- }
33
-
34
- onMounted(() => {
35
- if (!el.value) {
36
- return
37
- }
38
-
39
- el.value.addEventListener('mousedown', onMouseDown)
40
- })
41
-
42
- onUnmounted(() => {
43
- if (!el.value) {
44
- return
45
- }
46
-
47
- el.value.removeEventListener('mousedown', onMouseDown)
48
- })
49
- }
1
+ import { ref, type Ref, onMounted, onUnmounted } from 'vue'
2
+
3
+ export const useCarouselScroll = (el: Ref<HTMLElement>) => {
4
+ const x = ref<number>(0)
5
+
6
+ function onMouseDown (e) {
7
+ el.value.style.scrollSnapType = 'none'
8
+ el.value.style.scrollBehavior = 'auto'
9
+
10
+ x.value = e.pageX
11
+
12
+ window.addEventListener('mousemove', onMouseMove)
13
+ window.addEventListener('mouseup', onMouseUp)
14
+ }
15
+
16
+ function onMouseUp () {
17
+ el.value.style.removeProperty('scroll-behavior')
18
+ el.value.style.removeProperty('scroll-snap-type')
19
+
20
+ window.removeEventListener('mousemove', onMouseMove)
21
+ window.removeEventListener('mouseup', onMouseUp)
22
+ }
23
+
24
+ function onMouseMove (e) {
25
+ e.preventDefault()
26
+
27
+ const delta = e.pageX - x.value
28
+
29
+ x.value = e.pageX
30
+
31
+ el.value.scrollBy(-delta, 0)
32
+ }
33
+
34
+ onMounted(() => {
35
+ if (!el.value) {
36
+ return
37
+ }
38
+
39
+ el.value.addEventListener('mousedown', onMouseDown)
40
+ })
41
+
42
+ onUnmounted(() => {
43
+ if (!el.value) {
44
+ return
45
+ }
46
+
47
+ el.value.removeEventListener('mousedown', onMouseDown)
48
+ })
49
+ }