adata-ui 2.1.0 → 2.1.2

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 (307) hide show
  1. package/.editorconfig +12 -12
  2. package/.nuxtrc +1 -1
  3. package/.playground/app.config.ts +5 -5
  4. package/README.md +75 -75
  5. package/app.config.ts +4 -3
  6. package/app.vue +1 -0
  7. package/assets/styles/index.scss +104 -0
  8. package/assets/styles/modules/_base.scss +5 -0
  9. package/assets/styles/modules/_typography.scss +152 -0
  10. package/components/elements/README.md +1 -1
  11. package/components/elements/accordion/AAccordion.vue +13 -12
  12. package/components/elements/curve-block/ACurveBlock.vue +94 -19
  13. package/components/elements/feature-description/AFeatureDescription.vue +4 -4
  14. package/components/elements/illustrations/noAccess.vue +11 -2
  15. package/components/elements/photos-animation/APhotosAnimation.vue +3 -1
  16. package/components/elements/select/ASelect.vue +65 -9
  17. package/components/features/lang-switcher/lang-switcher.vue +8 -1
  18. package/components/features/payment/banner/BasicPlusLimitBanner.vue +104 -0
  19. package/components/features/payment/banner/PaymentBanner.vue +108 -0
  20. package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +158 -0
  21. package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +112 -0
  22. package/components/features/payment/process/PaymentMethodSidePanel.vue +121 -0
  23. package/components/features/payment/process/PaymentProcess.vue +138 -0
  24. package/components/features/payment/process/PaymentTopUpSidePanel.vue +130 -0
  25. package/components/features/pk-mobile-services/APkMobileServices.vue +21 -2
  26. package/components/forms/README.md +1 -1
  27. package/components/forms/checkbox/ACheckbox.vue +0 -2
  28. package/components/forms/radio-button/ARadioButton.vue +21 -13
  29. package/components/forms/request-demo/ARequestDemo.vue +21 -7
  30. package/components/modals/AConfirmationEmail.vue +40 -0
  31. package/components/modals/AnotherDeviceModal.vue +3 -2
  32. package/components/modals/ConnectingTariffModal.vue +0 -1
  33. package/components/modals/ContentNavigationModal.vue +148 -75
  34. package/components/modals/Insufficient-funds-modal.vue +5 -2
  35. package/components/modals/LimitReachedModal.vue +4 -3
  36. package/components/modals/ReportBugModal.vue +3 -3
  37. package/components/modals/Resend.vue +82 -0
  38. package/components/modals/SubmitApplicationModal.vue +4 -0
  39. package/components/modals/id/AuthModal.vue +78 -0
  40. package/components/modals/id/IdAutoLogoutModal.vue +45 -0
  41. package/components/modals/id/IdBanner.vue +58 -0
  42. package/components/modals/id/IdConfirmAccountOtpModal.vue +186 -0
  43. package/components/modals/id/IdConfirmSuccessfulModal.vue +41 -0
  44. package/components/modals/id/IdLoginModal.vue +316 -0
  45. package/components/modals/id/IdModals.vue +114 -0
  46. package/components/modals/id/IdNewPasswordModal.vue +129 -0
  47. package/components/modals/id/IdOtpInput.vue +155 -0
  48. package/components/modals/id/IdPasswordSuccessfulModal.vue +25 -0
  49. package/components/modals/id/IdRecoveryModal.vue +117 -0
  50. package/components/modals/id/IdRegistrationModal.vue +215 -0
  51. package/components/modals/id/IdResetPasswordOtpModal.vue +158 -0
  52. package/components/modals/id/IdTwoFactorModal.vue +130 -0
  53. package/components/navigation/README.md +1 -1
  54. package/components/navigation/bottom-navigation/ABottomNavigation.vue +34 -29
  55. package/components/navigation/footer/AFooter.vue +210 -57
  56. package/components/navigation/footer/ui/{new-footer-accordion.vue → a-footer-accordion.vue} +2 -4
  57. package/components/navigation/header/AHeader.vue +59 -51
  58. package/components/navigation/header/AlmatyContacts.vue +16 -14
  59. package/components/navigation/header/AstanaContacts.vue +13 -11
  60. package/components/navigation/header/CardGallery.vue +5 -4
  61. package/components/navigation/header/HeaderLink.vue +16 -8
  62. package/components/navigation/header/NavList.vue +21 -5
  63. package/components/navigation/header/ProductMenu.vue +8 -78
  64. package/components/navigation/header/ProfileMenu.vue +10 -5
  65. package/components/navigation/header/TopHeader.vue +2 -2
  66. package/components/navigation/mobile-navigation/AMobileNavigation.vue +3 -3
  67. package/components/navigation/pill-tabs/APillTabs.vue +18 -4
  68. package/components/navigation/pill-tabs/types.ts +1 -0
  69. package/components/navigation/side-navigation/ASideNavigation.vue +23 -21
  70. package/components/overlays/README.md +1 -1
  71. package/components/overlays/side-panel/ASidePanel.vue +439 -0
  72. package/components/overlays/tooltip/ATooltip.vue +149 -154
  73. package/components/utils/removeTrailingSlash.ts +7 -0
  74. package/composables/useBuyTariffs.ts +91 -0
  75. package/composables/useHeaderNavigationLinks.ts +174 -297
  76. package/composables/useIdModals.ts +36 -0
  77. package/composables/usePayment.ts +74 -0
  78. package/composables/useUrls.ts +21 -0
  79. package/eslint.config.mjs +45 -0
  80. package/icons/adata-logo.vue +1 -1
  81. package/icons/ai-assistant.vue +13 -0
  82. package/icons/akimat.vue +20 -0
  83. package/icons/arrow/arrow-bottom-left-on-square.vue +1 -1
  84. package/icons/arrow/arrow-circle-reset.vue +1 -1
  85. package/icons/arrow/arrow-corner.vue +1 -1
  86. package/icons/arrow/arrow-graph-down.vue +1 -1
  87. package/icons/arrow/arrow-graph-up.vue +1 -1
  88. package/icons/arrow/arrow-square-down.vue +1 -1
  89. package/icons/arrow/arrow-top-right-on-square.vue +1 -1
  90. package/icons/arrow-currency-gray.vue +1 -1
  91. package/icons/arrow-currency-green.vue +1 -1
  92. package/icons/arrow-currency-red.vue +1 -1
  93. package/icons/avatar.vue +1 -1
  94. package/icons/bank.vue +5 -0
  95. package/icons/block.vue +1 -1
  96. package/icons/bookmark/bookmark-filled.vue +1 -1
  97. package/icons/bookmark/bookmark.vue +1 -1
  98. package/icons/browsers/browser-duck.vue +1 -1
  99. package/icons/browsers/browser-google.vue +7 -1
  100. package/icons/browsers/browser-yandex.vue +1 -1
  101. package/icons/building-vector.vue +1 -1
  102. package/icons/calculator.vue +1 -1
  103. package/icons/calendar.vue +1 -1
  104. package/icons/car.vue +1 -1
  105. package/icons/chart-bar.vue +5 -0
  106. package/icons/chart-pie.vue +16 -0
  107. package/icons/check/check-circle.vue +1 -1
  108. package/icons/check/check.vue +1 -1
  109. package/icons/check/checkmark-circle.vue +1 -1
  110. package/icons/check-sb.vue +7 -0
  111. package/icons/checkbox/checkbox-active.vue +1 -1
  112. package/icons/checkbox/checkbox-empty.vue +1 -1
  113. package/icons/checkbox/checkbox-intermediate.vue +1 -1
  114. package/icons/chevron/chevron-down.vue +1 -1
  115. package/icons/chevron/chevron-left.vue +1 -1
  116. package/icons/chevron/chevron-right.vue +1 -1
  117. package/icons/chevron/chevron-up.vue +1 -1
  118. package/icons/chevron/double-chevron-right.vue +1 -1
  119. package/icons/clipboard-text.vue +1 -1
  120. package/icons/clock.vue +1 -1
  121. package/icons/company/company-bazis.vue +3 -3
  122. package/icons/company/company-bereke.vue +13 -13
  123. package/icons/company/company-bigroup.vue +5 -5
  124. package/icons/company/company-erg.vue +6 -6
  125. package/icons/company/company-forte.vue +11 -11
  126. package/icons/company/company-halyk.vue +4 -4
  127. package/icons/company/company-jusan.vue +20 -3
  128. package/icons/company/company-kaspi.vue +3 -3
  129. package/icons/company/company-mycar.vue +2 -2
  130. package/icons/company/company-samruk.vue +9 -9
  131. package/icons/company-egov-small.vue +1 -1
  132. package/icons/company.vue +1 -1
  133. package/icons/copy.vue +1 -1
  134. package/icons/currency/currency-dollar.vue +1 -1
  135. package/icons/currency/currency-down.vue +1 -1
  136. package/icons/currency/currency-eur.vue +1 -1
  137. package/icons/currency/currency-rub.vue +1 -1
  138. package/icons/currency/currency-tenge.vue +9 -0
  139. package/icons/currency/currency-usd.vue +1 -1
  140. package/icons/currency/currency-yuan.vue +1 -1
  141. package/icons/delete.vue +1 -1
  142. package/icons/document.vue +1 -1
  143. package/icons/download.vue +1 -1
  144. package/icons/edit.vue +1 -1
  145. package/icons/education.vue +1 -1
  146. package/icons/egov-small.vue +1 -1
  147. package/icons/excel-icon.vue +14 -0
  148. package/icons/expand-window.vue +1 -1
  149. package/icons/eye-closed.vue +1 -1
  150. package/icons/eye-open.vue +1 -1
  151. package/icons/eye-opened.vue +1 -1
  152. package/icons/file/file.vue +1 -1
  153. package/icons/filter.vue +1 -1
  154. package/icons/flag.vue +1 -1
  155. package/icons/gift.vue +1 -1
  156. package/icons/globe.vue +1 -1
  157. package/icons/google.vue +41 -0
  158. package/icons/hand/hand-thumb-up-filled.vue +1 -1
  159. package/icons/hand/hand-thumb-up.vue +1 -1
  160. package/icons/hand-with-phone/hand-with-phone-dark.vue +1 -1
  161. package/icons/hand-with-phone/hand-with-phone-light.vue +1 -1
  162. package/icons/handshake.vue +1 -1
  163. package/icons/hcheck.vue +1 -1
  164. package/icons/hdocument.vue +1 -1
  165. package/icons/history.vue +1 -1
  166. package/icons/horizontal-more.vue +1 -1
  167. package/icons/hot-line.vue +6 -0
  168. package/icons/hummer.vue +1 -1
  169. package/icons/info/info-circle.vue +1 -1
  170. package/icons/invoice.vue +1 -1
  171. package/icons/kaspi-qr.vue +13 -0
  172. package/icons/link-chain.vue +1 -1
  173. package/icons/link.vue +1 -1
  174. package/icons/linkedin.vue +24 -24
  175. package/icons/loader-circle.vue +1 -1
  176. package/icons/location.vue +1 -1
  177. package/icons/lock.vue +1 -1
  178. package/icons/logo.vue +1 -1
  179. package/icons/logout.vue +1 -1
  180. package/icons/magnify/magnifying-glass-minus.vue +1 -1
  181. package/icons/magnify/magnifying-glass-plus.vue +1 -1
  182. package/icons/magnify/magnifying-glass.vue +1 -1
  183. package/icons/mail.vue +1 -1
  184. package/icons/mailru.vue +34 -0
  185. package/icons/main-filter.vue +1 -1
  186. package/icons/map/map-pin-filled.vue +1 -1
  187. package/icons/map/map-pin-rect.vue +1 -1
  188. package/icons/map/map-pin.vue +1 -1
  189. package/icons/map-marker-start.vue +1 -1
  190. package/icons/medal.vue +1 -1
  191. package/icons/menu-filled.vue +1 -1
  192. package/icons/menu.vue +1 -1
  193. package/icons/message/message.vue +1 -1
  194. package/icons/minus/minus-circle.vue +1 -1
  195. package/icons/money.vue +1 -1
  196. package/icons/monitoring.vue +1 -1
  197. package/icons/moon.vue +1 -1
  198. package/icons/more.vue +1 -1
  199. package/icons/notification.vue +1 -1
  200. package/icons/paperclip.vue +1 -1
  201. package/icons/payment/payment-card.vue +1 -1
  202. package/icons/payment/payment-kaspi.vue +1 -1
  203. package/icons/person-vector.vue +1 -1
  204. package/icons/person-with-briefcase.vue +1 -1
  205. package/icons/phone-filled.vue +1 -1
  206. package/icons/phone.vue +1 -1
  207. package/icons/plus/plus-circle.vue +1 -1
  208. package/icons/plus/plus.vue +1 -1
  209. package/icons/profile.vue +1 -1
  210. package/icons/radio/radio-check.vue +1 -1
  211. package/icons/radio/radio-empty.vue +1 -1
  212. package/icons/receipt.vue +1 -1
  213. package/icons/sanctions.vue +8 -0
  214. package/icons/scales/scale.vue +1 -1
  215. package/icons/scales/scales.vue +1 -1
  216. package/icons/scales/standing-scales.vue +1 -1
  217. package/icons/search.vue +1 -1
  218. package/icons/share/share-alt.vue +1 -1
  219. package/icons/share/share.vue +1 -1
  220. package/icons/socials/face-book.vue +1 -1
  221. package/icons/socials/instagram.vue +1 -1
  222. package/icons/socials/telegram.vue +1 -1
  223. package/icons/socials/tik-tok.vue +1 -1
  224. package/icons/socials/youtube.vue +1 -1
  225. package/icons/sort/sort-asc.vue +1 -1
  226. package/icons/sort/sort-desc.vue +1 -1
  227. package/icons/splitting-arrows.vue +1 -1
  228. package/icons/star/star-filled.vue +1 -1
  229. package/icons/star/star-half-filled.vue +1 -1
  230. package/icons/star/star.vue +1 -1
  231. package/icons/sun.vue +14 -14
  232. package/icons/sviazi.vue +1 -1
  233. package/icons/tag.vue +1 -1
  234. package/icons/tasks.vue +10 -0
  235. package/icons/tender-search.vue +1 -1
  236. package/icons/toasts/check-circle-toast.vue +1 -1
  237. package/icons/toasts/warning-triangle-toast.vue +1 -1
  238. package/icons/trash.vue +1 -1
  239. package/icons/triangle.vue +1 -1
  240. package/icons/truck.vue +1 -1
  241. package/icons/user.vue +1 -1
  242. package/icons/users-focus.vue +1 -1
  243. package/icons/users.vue +1 -1
  244. package/icons/warning/warning-circle.vue +1 -1
  245. package/icons/warning/warning-triangle-filled.vue +1 -1
  246. package/icons/warning/warning-triangle.vue +1 -1
  247. package/icons/whatsapp.vue +1 -1
  248. package/icons/work-bag.vue +1 -1
  249. package/icons/work-case.vue +9 -0
  250. package/icons/work-search.vue +1 -1
  251. package/icons/work.vue +1 -1
  252. package/icons/x-mark.vue +1 -1
  253. package/icons/yandex.vue +28 -0
  254. package/illustrations/address-location.vue +1 -1
  255. package/illustrations/ball-with-chain.vue +1 -1
  256. package/illustrations/bill.vue +1 -1
  257. package/illustrations/buildings.vue +1 -1
  258. package/illustrations/calendar.vue +1 -1
  259. package/illustrations/chains.vue +1 -1
  260. package/illustrations/coin-percent.vue +1 -1
  261. package/illustrations/coins-stack.vue +1 -1
  262. package/illustrations/delete-dark.vue +1 -1
  263. package/illustrations/delete.vue +1 -1
  264. package/illustrations/doc-with-stamp.vue +1 -1
  265. package/illustrations/document.vue +1 -1
  266. package/illustrations/door.vue +1 -1
  267. package/illustrations/empty-box.vue +1 -1
  268. package/illustrations/empty-wallet.vue +1 -1
  269. package/illustrations/graph-in-coin.vue +1 -1
  270. package/illustrations/hammer.vue +1 -1
  271. package/illustrations/hand-cash.vue +1 -1
  272. package/illustrations/info.vue +1 -1
  273. package/illustrations/mail.vue +1 -1
  274. package/illustrations/ok.vue +1 -1
  275. package/illustrations/people-group.vue +1 -1
  276. package/illustrations/person-with-phone.vue +1 -1
  277. package/illustrations/person.vue +1 -1
  278. package/illustrations/phone-check.vue +1 -1
  279. package/illustrations/phone-payment-method.vue +1 -1
  280. package/illustrations/stop-hand.vue +1 -1
  281. package/illustrations/stop-sign.vue +1 -1
  282. package/illustrations/suit.vue +1 -1
  283. package/illustrations/suitcase.vue +1 -1
  284. package/illustrations/terminal-dark.vue +1 -1
  285. package/illustrations/terminal.vue +1 -1
  286. package/illustrations/trash-can.vue +1 -1
  287. package/illustrations/turn-on-tariff.vue +1 -1
  288. package/illustrations/two-persons.vue +1 -1
  289. package/lang/en.ts +475 -270
  290. package/lang/kk.ts +476 -271
  291. package/lang/ru.ts +315 -107
  292. package/layouts/default.vue +13 -13
  293. package/nuxt.config.ts +42 -14
  294. package/package.json +69 -53
  295. package/public/kaspi/logo.svg +4 -0
  296. package/shared/constans/pages.ts +17 -2
  297. package/tailwind.config.ts +163 -0
  298. package/vitest.config.ts +14 -0
  299. package/.eslintrc.cjs +0 -4
  300. package/.playground/app.vue +0 -9
  301. package/.playground/pages/index.vue +0 -13
  302. package/.prettierignore +0 -24
  303. package/.prettierrc +0 -10
  304. package/assets/styles/index.css +0 -226
  305. package/components/modals/AuthModal.vue +0 -50
  306. package/components/navigation/footer/NewFooter.vue +0 -276
  307. package/components/navigation/footer/ui/footer-acccordion.vue +0 -119
@@ -49,12 +49,16 @@ function onSend() {
49
49
  <div class="rounded-[20px] bg-blue-700 dark:bg-[#1B98E2] p-4 dark:bg-blue-500 lg:p-8">
50
50
  <div class="flex w-full flex-col gap-4 lg:flex-row lg:justify-between">
51
51
  <div class="flex flex-col gap-4 text-white dark:text-gray-900 lg:max-w-[50%] lg:gap-6">
52
- <p class="md:text-[32px] text-[24px] font-bold">
53
- {{ title || t('forms.request_demo.title') }}
54
- </p>
55
- <p class="text-base">
56
- {{ description || t('forms.request_demo.info') }}
57
- </p>
52
+ <slot name="title">
53
+ <p class="md:text-[32px] text-[24px] font-bold">
54
+ {{ title || t('forms.request_demo.title') }}
55
+ </p>
56
+ </slot>
57
+ <slot name="description">
58
+ <p class="text-base whitespace-pre-line">
59
+ {{ description || t('forms.request_demo.info') }}
60
+ </p>
61
+ </slot>
58
62
  </div>
59
63
  <div class="rounded-[20px] bg-white p-6 dark:bg-gray-900 lg:w-[456px]">
60
64
  <div class="flex flex-col gap-4">
@@ -62,17 +66,22 @@ function onSend() {
62
66
  <div class="flex flex-col gap-4">
63
67
  <a-input-standard
64
68
  v-model="form.sender_name"
69
+ required
65
70
  :label="t('forms.demo.n')"
66
71
  :error="getError('sender_name')"
67
72
  />
68
73
  <a-input-standard
69
74
  v-model="form.email"
75
+ required
70
76
  :label="t('forms.demo.e')"
71
77
  :error="getError('email')"
72
78
  type="email"
73
79
  />
74
80
  <a-input-standard
75
81
  v-model="form.phone_number"
82
+ v-maska
83
+ required
84
+ data-maska="8 (###) ###-##-##"
76
85
  :label="t('forms.demo.p')"
77
86
  :error="getError('phone_number')"
78
87
  type="tel"
@@ -80,7 +89,12 @@ function onSend() {
80
89
  </div>
81
90
  </slot>
82
91
  <div>
83
- <a-button @click="onSend">{{ t('forms.request_demo.send') }}</a-button>
92
+ <a-button
93
+ block
94
+ @click="onSend"
95
+ >
96
+ {{ t('forms.request_demo.send') }}
97
+ </a-button>
84
98
  </div>
85
99
  </div>
86
100
  </div>
@@ -0,0 +1,40 @@
1
+ <script setup lang="ts">
2
+ const emit = defineEmits<{
3
+ (e: 'resend'): void
4
+ (e: 'close'): void
5
+ }>()
6
+ </script>
7
+
8
+ <template>
9
+ <div class="flex flex-col justify-center items-center gap-5">
10
+ <p class="heading-02">
11
+ {{ $t('login.modal.title') }}
12
+ </p>
13
+ <a-ill-mail />
14
+ <p class="body-400 text-center">
15
+ {{ $t('login.modal.subtitle1') }}
16
+ </p>
17
+ <p class="body-400 text-center">
18
+ {{ $t('login.modal.confirmationEmail') }}
19
+ </p>
20
+ <div class="flex flex-col gap-2 w-full">
21
+ <a-button
22
+ class="w-full"
23
+ view="outline"
24
+ @click="emit('close')"
25
+ >
26
+ {{ $t('login.modal.back') }}
27
+ </a-button>
28
+ <a-button
29
+ class="w-full"
30
+ @click="emit('resend')"
31
+ >
32
+ {{ $t('login.modal.resend') }}
33
+ </a-button>
34
+ </div>
35
+ </div>
36
+ </template>
37
+
38
+ <style scoped>
39
+
40
+ </style>
@@ -1,10 +1,11 @@
1
1
  <script setup lang="ts">
2
2
  import { useAnotherDeviceModal } from '#adata-ui/composables/modalsState'
3
+ import { useUrls } from '#adata-ui/composables/useUrls'
3
4
  const { t, locale } = useI18n()
4
5
  const localePath = useLocalePath()
5
6
 
6
7
  const isOpen = useAnotherDeviceModal()
7
- const { myLayer }: any = useAppConfig()
8
+ const { landing } = useUrls()
8
9
 
9
10
  function onClose() {
10
11
  isOpen.value = false
@@ -47,7 +48,7 @@ function onClose() {
47
48
  </a-button>
48
49
  <a-button
49
50
  class="w-full"
50
- :to="buildLocalizedUrl(locale, myLayer.landingUrl)"
51
+ :to="buildLocalizedUrl(locale, landing)"
51
52
  >
52
53
  {{ t('modals.buttons.toMain') }}
53
54
  </a-button>
@@ -34,7 +34,6 @@ if (props.deleteFromDom) {
34
34
  <a-modal
35
35
  v-model="isOpen"
36
36
  name="connecting-tariff"
37
- :prevent-close="true"
38
37
  >
39
38
  <div class="flex flex-col gap-5">
40
39
  <p class="heading-02 text-center">
@@ -25,87 +25,117 @@ import Connections from "#adata-ui/icons/sviazi.vue";
25
25
  import {useCurrentModule} from "#adata-ui/composables/projectState";
26
26
  import IconCalc from '#adata-ui/icons/calculator.vue'
27
27
  import { buildLocalizedUrl } from '#adata-ui/utils/localizedNavigation'
28
- import { AIconFiles } from '#components'
28
+ import {
29
+ AIconAkimat,
30
+ AIconCurrencyTenge,
31
+ AIconExcelIcon,
32
+ AIconFiles, AIconSearch,
33
+ AIconUsers,
34
+ AIconWarningTriangle
35
+ } from '#components'
36
+ import MapPinRect from '#adata-ui/icons/map/map-pin-rect.vue'
37
+ import ChartBar from '#adata-ui/icons/chart-bar.vue'
38
+ import Bank from '#adata-ui/icons/bank.vue'
39
+ import { useUrls } from '#adata-ui/composables/useUrls'
40
+ import MapPaper from '#adata-ui/icons/map-paper.vue'
41
+ import AiAssistant from '#adata-ui/icons/ai-assistant.vue'
42
+ import Tasks from '#adata-ui/icons/tasks.vue'
43
+ import HotLine from '#adata-ui/icons/hot-line.vue'
44
+ import Sanctions from '#adata-ui/icons/sanctions.vue'
45
+ import CheckSb from '#adata-ui/icons/check-sb.vue'
29
46
  type Emits = {
30
47
  (e: 'pushMain'): void
31
48
  }
32
49
  const isOpen = ref(false)
33
50
  const tab = ref(useCurrentModule().value)
34
51
  const { myLayer }: any = useAppConfig()
35
- const { t } = useI18n()
36
- const emits = defineEmits<Emits>()
52
+ const urls = useUrls()
37
53
 
54
+ const { t, locale } = useI18n()
55
+ const emits = defineEmits<Emits>()
56
+ const mode = myLayer.mode
38
57
 
39
58
  const tabOptions = [
40
59
  {
41
60
  name: 'header.products.counterparties.label',
42
61
  key: 'pk',
43
62
  },
44
- {
45
- name: 'header.products.jobs.label',
46
- key: 'work',
47
- },
48
- {
49
- name: 'header.products.tenders.label',
50
- key: 'tenders',
51
- },
52
63
  {
53
64
  name: 'header.products.fines.label',
54
65
  key: 'fines',
55
66
  },
56
67
  {
57
- name: 'header.products.analytics.label',
58
- key: 'analytics',
68
+ name: 'header.products.jobs.label',
69
+ key: 'work',
59
70
  },
60
71
  {
61
72
  name: 'header.products.fea.label',
62
73
  key: 'fea',
63
74
  },
64
75
  {
65
- name: 'header.products.compliance.label',
66
- key: 'compliance',
76
+ name: 'header.products.tenders.label',
77
+ key: 'tenders',
67
78
  },
68
79
  {
69
80
  name: 'header.products.edo.label',
70
81
  key: 'edo',
71
- }
82
+ },
83
+ {
84
+ name: 'header.products.compliance.label',
85
+ key: 'compliance',
86
+ },
87
+
88
+ {
89
+ name: 'header.products.analytics.label',
90
+ key: 'analytics',
91
+ },
92
+
93
+
94
+
72
95
  ]
73
96
  const sideLinks = <any>{
97
+ edo: [
98
+ {
99
+ label: 'header.products.edo.label',
100
+ icon: AIconFiles,
101
+ link: urls.edo + PAGES.edo.l
102
+ }
103
+ ],
74
104
  pk: [
75
105
  {
76
106
  icon: IconSearch,
77
107
  label: 'header.products.counterparties.items.counterparty.title',
78
- link: myLayer.pkUrl + PAGES.pk.main
108
+ link: urls.pk + PAGES.pk.main
79
109
  },
80
110
  {
81
111
  icon: IconScales,
82
112
  label: 'header.products.counterparties.items.compare.title',
83
- link: myLayer.counterParty ? myLayer.pkUrl + myLayer.counterParty + PAGES.pk.compare : myLayer.pkUrl + PAGES.pk.compare
113
+ link: myLayer.counterParty ? urls.pk + myLayer.counterParty + PAGES.pk.compare : urls.pk + PAGES.pk.compare
84
114
  },
85
115
  {
86
116
  icon: IconLink,
87
117
  label: 'header.products.counterparties.items.networks.title',
88
- link: myLayer.counterParty ? myLayer.pkUrl + myLayer.counterParty + '/search-connections/check' : myLayer.pkUrl + PAGES.pk.connections
118
+ link: myLayer.counterParty ? urls.pk + myLayer.counterParty + '/search-connections/check' : urls.pk + PAGES.pk.connections
89
119
  },
90
120
  {
91
121
  icon: IconUsers,
92
122
  label: 'header.products.counterparties.items.wholesale.title',
93
- link: myLayer.counterParty ? myLayer.pkUrl + myLayer.counterParty + PAGES.pk.employees : myLayer.pkUrl + PAGES.pk.employees
123
+ link: myLayer.counterParty ? urls.pk + myLayer.counterParty + PAGES.pk.employees : urls.pk + PAGES.pk.employees
94
124
  },
95
125
  {
96
126
  icon: IconGlobe,
97
127
  label: 'header.products.counterparties.items.foreign.title',
98
- link: myLayer.pkUrl + PAGES.pk.foreign
128
+ link: urls.pk + PAGES.pk.foreign
99
129
  },
100
130
  {
101
131
  icon: IconBlock,
102
132
  label: 'header.products.counterparties.items.sanction.title',
103
- link: myLayer.counterParty ? myLayer.pkUrl + myLayer.counterParty + PAGES.pk.sanctions : myLayer.pkUrl + PAGES.pk.sanctions
133
+ link: myLayer.counterParty ? urls.pk + myLayer.counterParty + PAGES.pk.sanctions : urls.pk + PAGES.pk.sanctions
104
134
  },
105
135
  {
106
136
  icon: IconDollar,
107
137
  label: 'header.products.counterparties.items.offshore.title',
108
- link: myLayer.counterParty ? myLayer.pkUrl + myLayer.counterParty + PAGES.pk.offshore : myLayer.pkUrl + PAGES.pk.offshore
138
+ link: myLayer.counterParty ? urls.pk + myLayer.counterParty + PAGES.pk.offshore : urls.pk + PAGES.pk.offshore
109
139
  },
110
140
  // {
111
141
  // icon: IconDocument,
@@ -115,53 +145,51 @@ const sideLinks = <any>{
115
145
  {
116
146
  icon: IconArrowCircle,
117
147
  label: 'header.products.counterparties.items.unloading.title',
118
- link: myLayer.pkUrl + PAGES.pk.unload
148
+ link: urls.pk + PAGES.pk.unload
119
149
  }
120
150
  ],
121
151
  work: [
122
152
  {
123
153
  icon: IconWork,
124
154
  label: 'header.products.jobs.items.vacancies.title',
125
- link: myLayer.workUrl + PAGES.work.vacancy
155
+ link: urls.work + PAGES.work.vacancy
126
156
  },
127
157
  {
128
158
  icon: IconDocument,
129
159
  label: 'header.products.jobs.items.resume.title',
130
- link: myLayer.workUrl + PAGES.work.summary
160
+ link: urls.work + PAGES.work.summary
131
161
  },
132
162
  ],
133
163
  tenders: [
134
164
  {
135
- icon: IconSearch,
136
- label: 'header.products.tenders.items.tenders.title',
137
- link: myLayer.tenderUrl + PAGES.tender.main
165
+ icon: AIconUsers,
166
+ label: t('header.products.tenders.items.customers.title'),
167
+ link: urls.zakupki + PAGES.tender.customers,
138
168
  },
139
169
  {
140
- icon: IconFile,
141
- label: 'header.products.tenders.items.contracts.title',
142
- link: myLayer.tenderUrl + PAGES.tender.contracts
170
+ icon: AIconAkimat,
171
+ label: t('header.products.tenders.items.akimat.title'),
172
+ link: urls.zakupki + PAGES.tender.akimat,
143
173
  },
144
174
  {
145
- icon: IconCheck,
146
- label: 'header.products.tenders.items.procurement.title',
147
- link: myLayer.tenderUrl + PAGES.tender.plans
148
- }
149
- ],
150
- fines: [
175
+ icon: AIconWarningTriangle,
176
+ label: 'header.products.tenders.items.tru.title',
177
+ link: urls.zakupki + PAGES.tender.tru
178
+ },
151
179
  {
152
- icon: IconCheckCircle,
153
- label: 'header.products.fines.items.fines.title',
154
- link: myLayer.avtoUrl + PAGES.fines.main
180
+ icon: AIconCurrencyTenge,
181
+ label: 'header.products.tenders.items.price.title',
182
+ link: urls.zakupki + PAGES.tender.price
155
183
  },
156
184
  {
157
- icon: IconCar,
158
- label: 'header.products.fines.items.auto.title',
159
- link: myLayer.avtoUrl + PAGES.fines.avto
185
+ icon: AIconExcelIcon,
186
+ label: 'header.products.tenders.items.constructor.title',
187
+ link: urls.zakupki + PAGES.tender.constructor
160
188
  },
161
189
  {
162
- icon: IconTruck,
163
- label: 'header.products.fines.items.wholesaleAuto.title',
164
- link: myLayer.avtoUrl + PAGES.fines.bulk
190
+ icon: AIconSearch,
191
+ label: 'header.products.tenders.items.monitoring.title',
192
+ link: urls.tender
165
193
  }
166
194
  ],
167
195
  analytics: [
@@ -170,66 +198,111 @@ const sideLinks = <any>{
170
198
  // label: 'header.products.analytics.items.clients.title',
171
199
  // link: myLayer.analyticsUrl + PAGES.analytics.clients
172
200
  // },
173
- {
174
- icon: IconCheck,
175
- label: 'header.products.analytics.items.procurement.title',
176
- link: myLayer.analyticsNewUrl + PAGES.analytics.main
177
- },
201
+ // {
202
+ // icon: IconCheck,
203
+ // label: 'header.products.analytics.items.procurement.title',
204
+ // link: urls.analyticsNew + PAGES.analytics.main
205
+ // },
178
206
  {
179
207
  icon: IconArrowGraph,
180
208
  label: 'header.products.analytics.items.activity.title',
181
- link: myLayer.analyticsNewUrl + PAGES.analytics.index
209
+ link: urls.analyticsNew + PAGES.analytics.index
182
210
  },
183
211
  {
184
212
  icon: IconCompany,
185
213
  label: 'header.products.analytics.items.subjects.title',
186
- link: myLayer.analyticsNewUrl + PAGES.analytics.business
214
+ link: urls.analyticsNew + PAGES.analytics.business
187
215
  },
188
216
  {
189
217
  icon: IconMedal,
190
218
  label: 'header.products.analytics.items.rate.title',
191
- link: myLayer.analyticsNewUrl + PAGES.analytics.rating
219
+ link: urls.analyticsNew + PAGES.analytics.rating
192
220
  }
193
221
  ],
222
+ fines: [
223
+ {
224
+ icon: IconCheckCircle,
225
+ label: 'header.products.fines.items.fines.title',
226
+ link: urls.avto + PAGES.fines.main
227
+ },
228
+ {
229
+ icon: IconCar,
230
+ label: 'header.products.fines.items.auto.title',
231
+ link: urls.avto + PAGES.fines.avto
232
+ },
233
+ // {
234
+ // icon: IconTruck,
235
+ // label: 'header.products.fines.items.wholesaleAuto.title',
236
+ // link: myLayer.avtoUrl + PAGES.fines.bulk
237
+ // }
238
+ ],
194
239
  fea: [
195
240
  {
196
241
  label: 'header.products.fea.items.i.t',
197
242
  icon: IconSearch,
198
- link: `${myLayer.tnvedUrl}${PAGES.fea.t}`
243
+ link: `${urls.tnved}${PAGES.fea.t}`
199
244
  },
200
245
  {
201
246
  label: 'header.products.fea.items.o.t',
202
247
  icon: Connections,
203
- link: `${myLayer.tnvedUrl}${PAGES.fea.o}`
248
+ link: `${urls.tnved}${PAGES.fea.o}`
204
249
  },
205
250
  {
206
251
  label: 'header.products.fea.items.cp.t',
207
252
  icon: IconFile,
208
- link: `${myLayer.tnvedUrl}${PAGES.fea.cp}`
253
+ link: `${urls.tnved}${PAGES.fea.cp}`
209
254
  },
210
255
  {
211
256
  label: 'header.products.fea.items.ca.t',
212
257
  icon: IconCalc,
213
- link: `${myLayer.tnvedUrl}${PAGES.fea.ca}`
258
+ link: `${urls.tnved}${PAGES.fea.ca}`
214
259
  },
215
260
  {
216
261
  label: 'header.products.fea.items.tr.t',
217
262
  icon: IconGlobe,
218
- link: `${myLayer.tnvedUrl}${PAGES.fea.tr}`
263
+ link: `${urls.tnved}${PAGES.fea.tr}`
264
+ },
265
+ {
266
+ label: 'header.products.fea.items.importerMap.t',
267
+ icon: MapPinRect,
268
+ link: `${urls.tnved}${PAGES.fea.importerMap}`
269
+ },
270
+ {
271
+ label: 'header.products.fea.items.containers.t',
272
+ icon: MapPaper,
273
+ link: `${urls.tnved}${PAGES.fea.containers}`
219
274
  }
220
275
  ],
221
276
  compliance: [
222
277
  {
223
- label: 'header.products.compliance.label',
278
+ label: 'header.products.compliance.items.assistant.t',
279
+ icon: AiAssistant,
280
+ link: urls.compliancemain + PAGES.compliance.assistant
281
+ },
282
+ {
283
+ label: 'header.products.compliance.items.inspection.t',
284
+ icon: Tasks,
285
+ link: urls.compliancemain + PAGES.compliance.inspection
286
+ },
287
+ {
288
+ label: 'header.products.compliance.items.hotline.t',
289
+ icon: HotLine,
290
+ link: urls.compliancemain + PAGES.compliance.hotline
291
+ },
292
+ {
293
+ label: 'header.products.compliance.items.sanctions.t',
294
+ icon: Sanctions,
295
+ link: urls.compliancemain + PAGES.compliance.sanctions
296
+ },
297
+ {
298
+ label: 'header.products.compliance.items.suppliers.t',
224
299
  icon: IconProfile,
225
- link: myLayer.complianceUrl + PAGES.compliance.l
226
- }
227
- ],
228
- edo: [
300
+ link: urls.compliancemain + PAGES.compliance.suppliers
301
+ },
229
302
  {
230
- label: 'header.products.edo.label',
231
- icon: AIconFiles,
232
- link: 'https://edo.adata.kz' + PAGES.edo.l
303
+ label: 'header.products.compliance.items.sb.t',
304
+ icon: CheckSb,
305
+ link: urls.compliancemain + PAGES.compliance.sb
233
306
  }
234
307
  ]
235
308
  }
@@ -247,15 +320,15 @@ watch(tab, (e) => {
247
320
  <a-modal v-model="isOpen" :title="t('modals.mobile_navigation.type_main')">
248
321
  <div class="flex flex-col gap-5">
249
322
  <div class="h-[1px] w-full bg-deepblue-900/5"/>
250
- <div>
251
- <a-pill-tabs v-model="tab" :options="tabOptions" view="gray"/>
252
- </div>
323
+ <div>
324
+ <a-pill-tabs v-model="tab" :options="tabOptions" view="gray"/>
325
+ </div>
253
326
  <div class="h-[40vh] sm:h-[300px] overflow-auto no-scrollbar">
254
327
  <nuxt-link
255
- v-for="item in currentLinks"
256
- :key="item.label"
257
- :to="item.link"
258
- class="flex items-center gap-4 px-4 py-3 bg-gray-50 dark:bg-gray-800 mb-2 rounded"
328
+ v-for="item in currentLinks"
329
+ :key="item.label"
330
+ :to="item.link"
331
+ class="flex items-center gap-4 px-4 py-3 bg-gray-50 dark:bg-gray-800 mb-2 rounded"
259
332
  >
260
333
  <div class="bg-gradient-blue p-1 rounded-lg">
261
334
  <component
@@ -15,10 +15,14 @@ const { t } = useI18n()
15
15
  interface Props {
16
16
  deleteFromDom?: boolean
17
17
  }
18
+ const { topUpSidePanel } = usePayment()
19
+
18
20
  const isOpen = defineModel<boolean>({ default: false })
19
21
  const userInfo = useState<UserInfo>('user-info', () => ({}))
22
+
20
23
  function confirm() {
21
- emit('next')
24
+ isOpen.value = false
25
+ topUpSidePanel.value = true
22
26
  }
23
27
  function cancel() {
24
28
  isOpen.value = false
@@ -33,7 +37,6 @@ if (props.deleteFromDom) {
33
37
  <a-modal
34
38
  v-model="isOpen"
35
39
  name="insufficient-funds"
36
- :prevent-close="true"
37
40
  >
38
41
  <div class="flex flex-col gap-5">
39
42
  <p class="heading-02 text-center">
@@ -1,13 +1,14 @@
1
1
  <script setup lang="ts">
2
2
 
3
+ import { useUrls } from '#adata-ui/composables/useUrls'
4
+
3
5
  const { t } = useI18n()
4
6
  const isOpen = useLimitReachedModal()
5
- const appConfig = useAppConfig()
6
- const loginUrl = appConfig.myLayer.landingUrl
7
+ const { login } = useUrls()
7
8
 
8
9
  function goTariffs() {
9
10
  if (window) {
10
- window.location.href = `${loginUrl}/tariffs`
11
+ window.location.href = `${login}/tariffs`
11
12
  }
12
13
  }
13
14
  </script>
@@ -4,8 +4,8 @@ import * as z from 'zod'
4
4
  import { useUIValidation } from '#adata-ui/composables/useUIValidation'
5
5
 
6
6
  const props = defineProps<{
7
- name: string
8
- email: string
7
+ name?: string
8
+ email?: string
9
9
  }>()
10
10
 
11
11
  const emit = defineEmits<{
@@ -16,7 +16,7 @@ const { t } = useI18n()
16
16
 
17
17
  const mask = new Mask({ mask: '# (###) ### ## ##' })
18
18
 
19
- const isOpen = defineModel<boolean>('isOpen', { required: true })
19
+ const isOpen = defineModel<boolean>()
20
20
  const form: any = reactive({
21
21
  name: '',
22
22
  email: '',
@@ -0,0 +1,82 @@
1
+ <script setup lang="ts">
2
+
3
+ import { useUrls } from '#adata-ui/composables/useUrls'
4
+
5
+ const emit = defineEmits<{
6
+ (e: 'resend'): void
7
+ (e: 'close'): void
8
+ }>()
9
+
10
+ const timer = ref(60)
11
+ const isResend = ref(false)
12
+ const route = useRoute()
13
+ const { landing } = useUrls()
14
+
15
+ function runTimer() {
16
+ timer.value = 60
17
+ const intervalId = setInterval(() => {
18
+ if (timer.value <= 0) {
19
+ isResend.value = true
20
+ clearInterval(intervalId);
21
+ return;
22
+ }
23
+ timer.value--;
24
+ }, 1000);
25
+ }
26
+
27
+ onMounted(() => resend())
28
+
29
+ const resend = () => {
30
+ isResend.value = false
31
+ runTimer()
32
+ emit('resend')
33
+ }
34
+ const goToMain = () => {
35
+ if (route.query.url) {
36
+ document.location.replace(route.query.url)
37
+ } else {
38
+ document.location.replace(landing)
39
+ }
40
+ emit('close')
41
+
42
+ }
43
+ </script>
44
+
45
+ <template>
46
+ <div class="flex flex-col justify-center items-center gap-5">
47
+ <p class="heading-02">
48
+ {{ $t('login.modal.title') }}
49
+ </p>
50
+ <a-ill-mail />
51
+ <p class="body-400 text-center">
52
+ {{ $t('login.modal.subtitle1') }}
53
+ </p>
54
+ <p class="body-400 text-center">
55
+ {{ $t('login.modal.subtitle2') }}
56
+ </p>
57
+ <p
58
+ v-if="!isResend"
59
+ class="heading-02"
60
+ >
61
+ {{ timer }} {{ $t('login.modal.seconds') }}
62
+ </p>
63
+ <a-button
64
+ v-else
65
+ class="w-full"
66
+ view="outline"
67
+ @click="resend"
68
+ >
69
+ {{ $t('login.modal.resend') }}
70
+ </a-button>
71
+ <a-button
72
+ class="w-full"
73
+ @click="goToMain"
74
+ >
75
+ {{ $t('login.modal.back') }}
76
+ </a-button>
77
+ </div>
78
+ </template>
79
+
80
+ <style scoped>
81
+
82
+ </style>
@@ -64,11 +64,13 @@ defineExpose({
64
64
  v-model="form.name"
65
65
  :label="t('modals.submit_application_modal.labels.name')"
66
66
  :error="getError('name')"
67
+ required
67
68
  />
68
69
  <a-input-standard
69
70
  v-model="form.email"
70
71
  :label="t('modals.submit_application_modal.labels.email')"
71
72
  :error="getError('email')"
73
+ required
72
74
  />
73
75
  <a-input-standard
74
76
  v-model="form.phone"
@@ -83,6 +85,8 @@ defineExpose({
83
85
  v-model="form.comment"
84
86
  :label="t('modals.submit_application_modal.labels.comment')"
85
87
  :error="getError('comment')"
88
+ resizeable="none"
89
+ required
86
90
  />
87
91
  </div>
88
92
  </div>