adata-ui 2.1.40-beta.18 → 2.1.40-beta.19
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.
- package/.playground/app.vue +102 -0
- package/assets/styles/index.scss +67 -5
- package/components/elements/a-select-row/ASelectRowV2.vue +214 -0
- package/components/elements/a-select-row/index.vue +3 -5
- package/components/elements/accordion/AAccordion.vue +5 -3
- package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +3 -3
- package/components/elements/alert/AAlert.vue +34 -47
- package/components/elements/bg-block/ABgBlock.vue +1 -1
- package/components/elements/button/AButton.vue +3 -3
- package/components/elements/button/AButtonV2.vue +133 -0
- package/components/elements/button-login/index.vue +6 -10
- package/components/elements/chip-wrapper/AChipWrapper.vue +1 -1
- package/components/elements/chips/AChips.vue +2 -2
- package/components/elements/companies/AOurClients.vue +3 -1
- package/components/elements/curve-block-v2/ACurveBlockV2.vue +85 -0
- package/components/elements/digit-badge/ADigitBadge.vue +24 -22
- package/components/elements/feature-description/AFeatureDescription.vue +1 -1
- package/components/elements/leave-note/ALeaveNote.vue +39 -18
- package/components/elements/pagination/APagination.vue +7 -7
- package/components/elements/segmented/ASegmentedV2.vue +151 -0
- package/components/elements/select/ASelect.vue +4 -4
- package/components/elements/select/ASelectMobile.vue +2 -2
- package/components/elements/select/ASelectV2.vue +588 -0
- package/components/elements/select/ui/select-button.vue +1 -1
- package/components/elements/show-more/AShowMoreV2.vue +26 -0
- package/components/elements/slider/ASlider.vue +174 -0
- package/components/elements/slider/ASliderItem.vue +31 -0
- package/components/elements/slider/types.ts +21 -0
- package/components/elements/star-rating/AStarRating.vue +12 -4
- package/components/elements/status-badge/AStatusBadge.vue +91 -44
- package/components/elements/step-slider/AStepSliderColCard.vue +232 -0
- package/components/elements/step-slider/AStepSliderColNumber.vue +178 -0
- package/components/elements/table/ATable.vue +1 -1
- package/components/elements/table/table.config.ts +2 -2
- package/components/elements/tree-select/ATreeSelect.vue +97 -113
- package/components/elements/tree-select/TreeService.ts +142 -207
- package/components/elements/tree-select/components/ATreeSelectNode.vue +104 -0
- package/components/elements/tree-select/types.ts +40 -11
- package/components/elements/tree-select/utils.ts +30 -0
- package/components/elements/tree-select-modal/ATreeSelectModal.vue +217 -0
- package/components/features/color-mode/AColorMode.client.vue +74 -32
- package/components/features/dropdown/ADropdownV2.vue +140 -0
- package/components/features/lang-switcher/lang-switcher.vue +125 -40
- package/components/features/payment/banner/BasicPlusLimitBanner.vue +3 -3
- package/components/features/payment/banner/PaymentBanner.vue +3 -3
- package/components/features/payment/banner/UpSellBanner.vue +3 -3
- package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +45 -27
- package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +34 -23
- package/components/features/payment/process/PaymentMethodSidePanel.vue +66 -49
- package/components/features/payment/process/PaymentProcess.vue +6 -6
- package/components/features/payment/process/PaymentTopUpSidePanel.vue +49 -63
- package/components/features/pk-mobile-services/APkMobileServices.vue +6 -28
- package/components/features//321/201hange-version/AChangeVersion.vue +2 -2
- package/components/forms/checkbox/ACheckbox.vue +1 -1
- package/components/forms/checkbox/ACheckboxV2.vue +229 -0
- package/components/forms/feedback-form/FeedbackForm.vue +8 -8
- package/components/forms/feedback-form/FeedbackFormV2.vue +182 -0
- package/components/forms/input/AInputV2.vue +542 -0
- package/components/forms/input/date/AInputDate.vue +2 -2
- package/components/forms/input/password/AInputPassword.vue +8 -2
- package/components/forms/input/standard/AInputStandard.vue +3 -3
- package/components/forms/input/textarea/ATextarea.vue +2 -2
- package/components/forms/input/textarea/ATextareaV2.vue +248 -0
- package/components/forms/toggle/AToggle.vue +2 -3
- package/components/forms/toggle/AToggleV2.vue +71 -0
- package/components/modals/AnotherDeviceModal.vue +22 -18
- package/components/modals/ApplicationAcceptedModal.vue +12 -15
- package/components/modals/ConnectingTariffModal.vue +13 -20
- package/components/modals/ContactsMobileModel.vue +1 -1
- package/components/modals/ContentNavigationModal.vue +77 -333
- package/components/modals/Insufficient-funds-modal.vue +18 -33
- package/components/modals/LimitReachedModal.vue +17 -14
- package/components/modals/NoAccessModal.vue +9 -11
- package/components/modals/PaymentMethodModal.vue +1 -1
- package/components/modals/ReportBugConfirmModal.vue +12 -10
- package/components/modals/ReportBugModal.vue +46 -38
- package/components/modals/Resend.vue +9 -10
- package/components/modals/SubmitApplicationModal.vue +27 -24
- package/components/modals/id/IdBanner.vue +3 -3
- package/components/modals/id/IdConfirmAccountOtpModal.vue +4 -9
- package/components/modals/id/IdLoginModal.vue +3 -8
- package/components/modals/id/IdModals.vue +23 -10
- package/components/modals/id/IdRecoveryModal.vue +1 -1
- package/components/modals/id/IdTwoFactorModal.vue +3 -8
- package/components/navigation/bottom-navigation/ABottomNavigation.vue +1 -1
- package/components/navigation/breadcrumbs/ABreadcrumbs.vue +106 -45
- package/components/navigation/breadcrumbs/types.ts +3 -0
- package/components/navigation/footer/AFooter.vue +39 -40
- package/components/navigation/footer/ui/a-footer-accordion.vue +9 -9
- package/components/navigation/header/AHeader.vue +68 -51
- package/components/navigation/header/AlmatyContacts.vue +78 -78
- package/components/navigation/header/CardGallery.vue +9 -7
- package/components/navigation/header/ContactMenu.vue +26 -92
- package/components/navigation/header/HeaderLink.vue +181 -213
- package/components/navigation/header/HeaderUsage.vue +139 -0
- package/components/navigation/header/ListItem.vue +2 -2
- package/components/navigation/header/NavCard.vue +1 -1
- package/components/navigation/header/NavList.vue +33 -92
- package/components/navigation/header/NotificationsMenu.vue +2 -3
- package/components/navigation/header/ProductMenu.vue +81 -127
- package/components/navigation/header/ProfileMenu.vue +122 -151
- package/components/navigation/header/SystemNotification.vue +108 -0
- package/components/navigation/mobile-navigation/AMobileNavigation.vue +23 -15
- package/components/navigation/pill-tabs/APillTabs.vue +2 -2
- package/components/navigation/pill-tabs/APillTabsV2.vue +226 -0
- package/components/overlays/drawer/ADrawerV2.vue +335 -0
- package/components/overlays/modal/AModal.vue +4 -4
- package/components/overlays/modal/AModalV2.vue +397 -0
- package/components/overlays/side-panel/ASidePanel.vue +10 -7
- package/components/overlays/sideover/ASlideover.vue +6 -6
- package/components/overlays/tooltip/ATooltip.vue +1 -1
- package/components/overlays/tooltip/ATooltipV2.vue +223 -0
- package/components/overlays/tooltip/types.ts +26 -0
- package/components/overlays/tooltip/useTooltipTrigger.ts +101 -0
- package/components/transitions/ATransitionHeight.vue +1 -1
- package/composables/useAccessTokenCookie.ts +25 -0
- package/composables/useActiveNavigation.ts +84 -0
- package/composables/useChipOverflow.ts +92 -0
- package/composables/useHeaderNavigationLinks.ts +140 -98
- package/icons/archive.vue +16 -0
- package/icons/arrow/arrow-left-right.vue +8 -0
- package/icons/arrow/arrow-right.vue +14 -0
- package/icons/arrow/arrows-in.vue +11 -0
- package/icons/arrow/arrows-out.vue +11 -0
- package/icons/arrow/arrows-resize-in.vue +38 -0
- package/icons/arrow/arrows-resize-out.vue +17 -0
- package/icons/bill.vue +3 -0
- package/icons/bot.vue +52 -0
- package/icons/briefcase.vue +14 -0
- package/icons/building.vue +9 -0
- package/icons/car-side.vue +16 -0
- package/icons/cart.vue +15 -0
- package/icons/chart-no-axes-column.vue +3 -0
- package/icons/clock-time.vue +24 -0
- package/icons/cloud/cloud-upload.vue +3 -0
- package/icons/code.vue +9 -0
- package/icons/compare-outlined.vue +8 -0
- package/icons/dots-horizontal.vue +31 -0
- package/icons/download-line.vue +13 -0
- package/icons/download-rounded.vue +15 -0
- package/icons/egov.vue +41 -0
- package/icons/elicense.vue +38 -0
- package/icons/favourite-bookmark-outline.vue +17 -0
- package/icons/file/file-check-corner.vue +3 -0
- package/icons/file/file-spreadsheet.vue +3 -0
- package/icons/file-pen.vue +31 -0
- package/icons/file-stack.vue +31 -0
- package/icons/file-types/excel.vue +131 -0
- package/icons/file-types/html.vue +13 -0
- package/icons/file-types/jpeg.vue +16 -0
- package/icons/file-types/pdf.vue +11 -0
- package/icons/file-types/png.vue +11 -0
- package/icons/file-types/rar.vue +11 -0
- package/icons/file-types/word.vue +50 -0
- package/icons/file-types/zip.vue +11 -0
- package/icons/gauge.vue +17 -0
- package/icons/git-compare.vue +38 -0
- package/icons/git-fork.vue +3 -0
- package/icons/graduation-cap.vue +31 -0
- package/icons/graph-loading.vue +34 -0
- package/icons/headset.vue +6 -0
- package/icons/help-question-circle.vue +26 -0
- package/icons/in-row-type.vue +46 -0
- package/icons/in-table-type.vue +29 -0
- package/icons/landmark.vue +3 -0
- package/icons/layers.vue +3 -0
- package/icons/letter/letter-a.vue +6 -0
- package/icons/letter/letter-b.vue +6 -0
- package/icons/letter/letter-c.vue +6 -0
- package/icons/letter/letter-d.vue +6 -0
- package/icons/letter/letter-e.vue +6 -0
- package/icons/link-url.vue +3 -0
- package/icons/list-tree.vue +3 -0
- package/icons/mail-question-mark.vue +8 -0
- package/icons/message/message-square.vue +3 -0
- package/icons/message-dotted.vue +30 -0
- package/icons/network.vue +3 -0
- package/icons/newspaper.vue +3 -0
- package/icons/notification-error.vue +17 -0
- package/icons/person.vue +22 -0
- package/icons/phone-call.vue +6 -0
- package/icons/phone-reversed.vue +3 -0
- package/icons/route.vue +7 -0
- package/icons/scan-search.vue +3 -0
- package/icons/settings.vue +26 -0
- package/icons/shield-alert.vue +31 -0
- package/icons/shield-verified.vue +14 -0
- package/icons/socials/facebook-color.vue +16 -0
- package/icons/socials/globe-color.vue +16 -0
- package/icons/socials/instagram-color.vue +46 -0
- package/icons/socials/linkedin-color.vue +14 -0
- package/icons/socials/telegram-color.vue +16 -0
- package/icons/socials/tiktok-color.vue +14 -0
- package/icons/socials/vk-color.vue +16 -0
- package/icons/socials/youtube-color.vue +16 -0
- package/icons/sparkles.vue +3 -0
- package/icons/sun.vue +13 -3
- package/icons/users-round.vue +3 -0
- package/icons/view-eye-open.vue +13 -0
- package/icons/workflow.vue +3 -0
- package/icons/zap.vue +3 -0
- package/lang/en.ts +49 -5
- package/lang/kk.ts +50 -6
- package/lang/ru.ts +51 -7
- package/package.json +1 -1
- package/plugins/toast.client.ts +38 -55
- package/shared/constans/pages.ts +8 -2
- package/tailwind.config.ts +147 -116
- package/utils/twMerge.ts +34 -0
- package/components/elements/tree-select/components/tree-select-nodes.vue +0 -91
- package/components/navigation/header/TopHeader.vue +0 -196
|
@@ -1,16 +1,64 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { useContacts } from '#adata-ui/composables/projectState'
|
|
3
|
+
import Clock from '#adata-ui/icons/clock.vue'
|
|
4
|
+
import ExpandWindow from '#adata-ui/icons/expand-window.vue'
|
|
5
|
+
import Location from '#adata-ui/icons/location.vue'
|
|
6
|
+
import Mail from '#adata-ui/icons/mail.vue'
|
|
7
|
+
import Phone from '#adata-ui/icons/phone.vue'
|
|
8
|
+
import Whatsapp from '#adata-ui/icons/whatsapp.vue'
|
|
9
|
+
|
|
10
|
+
const { t } = useI18n()
|
|
11
|
+
const contacts = useContacts()
|
|
12
|
+
const AlmatyItems = computed(() => ([
|
|
13
|
+
{
|
|
14
|
+
title: t('header.contacts.almaty.adress.title'),
|
|
15
|
+
subtitle: t('header.contacts.almaty.adress.subtitle'),
|
|
16
|
+
icon: Location,
|
|
17
|
+
to: 'https://yandex.kz/maps/ru/org/avrora_kholding/1099794306/?ll=76.912479%2C43.208928&z=17.72',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
title: t('header.contacts.almaty.email.title'),
|
|
21
|
+
subtitle: 'info@adata.kz',
|
|
22
|
+
icon: Mail,
|
|
23
|
+
to: 'mailto:info@adata.kz',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: t('header.contacts.almaty.schedule.title'),
|
|
27
|
+
subtitle: t('header.contacts.almaty.schedule.subtitle'),
|
|
28
|
+
icon: Clock,
|
|
29
|
+
},
|
|
30
|
+
]))
|
|
31
|
+
|
|
32
|
+
const technicalSupport = computed(() => ([
|
|
33
|
+
{
|
|
34
|
+
subtitle: t('header.contacts.almaty.support.linkTitle'),
|
|
35
|
+
icon: ExpandWindow,
|
|
36
|
+
to: 'https://api.whatsapp.com/send/?phone=77712289041',
|
|
37
|
+
},
|
|
38
|
+
]))
|
|
39
|
+
|
|
40
|
+
const newContacts = computed(() => contacts.value.map(item => ({
|
|
41
|
+
subtitle: item.contact,
|
|
42
|
+
icon: item.platform_code === 'telephone' ? Phone : Whatsapp,
|
|
43
|
+
to: item.platform_code === 'telephone'
|
|
44
|
+
? `tel:${item.contact}`
|
|
45
|
+
: `https://api.whatsapp.com/send/?phone=${item.contact.replace(/\D/g, '')}`,
|
|
46
|
+
})))
|
|
47
|
+
</script>
|
|
48
|
+
|
|
1
49
|
<template>
|
|
2
|
-
<!--noindex-->
|
|
50
|
+
<!-- noindex -->
|
|
3
51
|
<div class="h-[272px]" data-nosnippet>
|
|
4
|
-
<h2 class="
|
|
52
|
+
<h2 class="mb-4 text-h2">
|
|
5
53
|
{{ t('header.contacts.almaty.title') }}
|
|
6
54
|
</h2>
|
|
7
55
|
<div class="flex gap-10">
|
|
8
56
|
<div class="flex flex-col gap-4">
|
|
9
57
|
<div
|
|
10
|
-
v-for="item in AlmatyItems.slice(0,3)"
|
|
58
|
+
v-for="item in AlmatyItems.slice(0, 3)"
|
|
11
59
|
class="flex flex-col gap-2 "
|
|
12
60
|
>
|
|
13
|
-
<div class="
|
|
61
|
+
<div class="text-h5">
|
|
14
62
|
{{ item.title }}
|
|
15
63
|
</div>
|
|
16
64
|
<a
|
|
@@ -21,46 +69,46 @@
|
|
|
21
69
|
:is="item.icon"
|
|
22
70
|
class="shrink-0"
|
|
23
71
|
/>
|
|
24
|
-
<div class="
|
|
72
|
+
<div class="text-body-md">
|
|
25
73
|
{{ item.subtitle }}
|
|
26
74
|
</div>
|
|
27
75
|
</a>
|
|
28
76
|
</div>
|
|
29
77
|
</div>
|
|
30
78
|
<div class="flex flex-col gap-2 2xl:gap-4">
|
|
31
|
-
<div class="flex flex-col gap-4
|
|
79
|
+
<div class="flex h-full flex-col justify-between gap-4">
|
|
32
80
|
<div class="flex flex-col gap-2 ">
|
|
33
|
-
<div class="
|
|
81
|
+
<div class="text-h5">
|
|
34
82
|
{{ t('header.contacts.almaty.contactUs.title') }}
|
|
35
83
|
</div>
|
|
36
|
-
<div class="grid grid-cols-[repeat(auto-fit,minmax(140px,1fr))]
|
|
84
|
+
<div class="grid max-w-[484px] grid-cols-[repeat(auto-fit,minmax(140px,1fr))] gap-x-8 gap-y-2">
|
|
37
85
|
<a
|
|
38
86
|
v-for="link in newContacts"
|
|
39
87
|
:key="link.subtitle"
|
|
40
|
-
class="flex
|
|
88
|
+
class="flex gap-1 text-deepblue-900 dark:text-white 2xl:items-center"
|
|
41
89
|
:href="link.to"
|
|
42
90
|
:target="link.icon === Whatsapp ? '_blank' : '_self'"
|
|
43
91
|
>
|
|
44
92
|
<component :is="link.icon" />
|
|
45
|
-
<div class="
|
|
93
|
+
<div class="line-clamp-1 text-body-md">
|
|
46
94
|
{{ link.subtitle }}
|
|
47
95
|
</div>
|
|
48
96
|
</a>
|
|
49
97
|
</div>
|
|
50
98
|
</div>
|
|
51
99
|
<div class="flex flex-col gap-2 ">
|
|
52
|
-
<div class="
|
|
100
|
+
<div class="whitespace-nowrap text-h5">
|
|
53
101
|
{{ t('header.contacts.almaty.support.title') }}
|
|
54
102
|
</div>
|
|
55
103
|
<div class="flex flex-col lg:gap-y-5">
|
|
56
104
|
<a
|
|
57
105
|
v-for="link in technicalSupport"
|
|
58
106
|
:key="link.subtitle"
|
|
59
|
-
class="flex
|
|
107
|
+
class="flex gap-1 text-deepblue-900 dark:text-white 2xl:items-center"
|
|
60
108
|
:href="link.to"
|
|
61
109
|
target="_blank"
|
|
62
110
|
>
|
|
63
|
-
<div class="
|
|
111
|
+
<div class="line-clamp-1 text-body-md text-blue-600">
|
|
64
112
|
{{ link.subtitle }}
|
|
65
113
|
</div>
|
|
66
114
|
<component
|
|
@@ -72,74 +120,26 @@
|
|
|
72
120
|
</div>
|
|
73
121
|
</div>
|
|
74
122
|
</div>
|
|
75
|
-
<!-- Here is the financial department-->
|
|
76
|
-
<!-- <div class="flex flex-col gap-2 self-end"
|
|
77
|
-
<!-- <div class="heading-04 whitespace-nowrap"
|
|
78
|
-
<!-- {{ t('header.contacts.almaty.financeDep.title') }}-->
|
|
79
|
-
<!-- </div
|
|
80
|
-
<!-- <nuxt-link-->
|
|
81
|
-
<!-- class="flex gap-1 items-center"-->
|
|
82
|
-
<!-- to="https://api.whatsapp.com/send?phone=77713954561"-->
|
|
83
|
-
<!-- target="_blank"-->
|
|
84
|
-
<!--
|
|
85
|
-
<!-- <div class="body-400 line-clamp-1 text-blue-600"
|
|
86
|
-
<!-- {{ t('header.contacts.almaty.financeDep.linkTitle') }}-->
|
|
87
|
-
<!-- </div
|
|
88
|
-
<!-- <a-icon-expand-window class="stroke-blue-600"
|
|
89
|
-
<!-- </nuxt-link
|
|
90
|
-
<!-- </div
|
|
123
|
+
<!-- Here is the financial department -->
|
|
124
|
+
<!-- <div class="flex flex-col gap-2 self-end"> -->
|
|
125
|
+
<!-- <div class="heading-04 whitespace-nowrap"> -->
|
|
126
|
+
<!-- {{ t('header.contacts.almaty.financeDep.title') }} -->
|
|
127
|
+
<!-- </div> -->
|
|
128
|
+
<!-- <nuxt-link -->
|
|
129
|
+
<!-- class="flex gap-1 items-center" -->
|
|
130
|
+
<!-- to="https://api.whatsapp.com/send?phone=77713954561" -->
|
|
131
|
+
<!-- target="_blank" -->
|
|
132
|
+
<!-- > -->
|
|
133
|
+
<!-- <div class="body-400 line-clamp-1 text-blue-600"> -->
|
|
134
|
+
<!-- {{ t('header.contacts.almaty.financeDep.linkTitle') }} -->
|
|
135
|
+
<!-- </div> -->
|
|
136
|
+
<!-- <a-icon-expand-window class="stroke-blue-600"/> -->
|
|
137
|
+
<!-- </nuxt-link> -->
|
|
138
|
+
<!-- </div> -->
|
|
91
139
|
</div>
|
|
92
140
|
</div>
|
|
93
|
-
|
|
141
|
+
<!-- /noindex -->
|
|
94
142
|
</template>
|
|
95
143
|
|
|
96
|
-
<script setup lang="ts">
|
|
97
|
-
|
|
98
|
-
import Location from "#adata-ui/icons/location.vue";
|
|
99
|
-
import Mail from "#adata-ui/icons/mail.vue";
|
|
100
|
-
import Clock from "#adata-ui/icons/clock.vue";
|
|
101
|
-
import Whatsapp from "#adata-ui/icons/whatsapp.vue";
|
|
102
|
-
import Phone from "#adata-ui/icons/phone.vue";
|
|
103
|
-
import ExpandWindow from "#adata-ui/icons/expand-window.vue";
|
|
104
|
-
import {useContacts} from "#adata-ui/composables/projectState";
|
|
105
|
-
|
|
106
|
-
const {t} = useI18n()
|
|
107
|
-
const contacts = ref(useContacts())
|
|
108
|
-
const AlmatyItems = computed(() => ([
|
|
109
|
-
{
|
|
110
|
-
title: t('header.contacts.almaty.adress.title'),
|
|
111
|
-
subtitle: t('header.contacts.almaty.adress.subtitle'),
|
|
112
|
-
icon: Location,
|
|
113
|
-
to: 'https://yandex.kz/maps/ru/org/avrora_kholding/1099794306/?ll=76.912479%2C43.208928&z=17.72'
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
title: t('header.contacts.almaty.email.title'),
|
|
117
|
-
subtitle: 'info@adata.kz',
|
|
118
|
-
icon: Mail,
|
|
119
|
-
to: 'mailto:info@adata.kz'
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
title: t('header.contacts.almaty.schedule.title'),
|
|
123
|
-
subtitle: t('header.contacts.almaty.schedule.subtitle'),
|
|
124
|
-
icon: Clock,
|
|
125
|
-
},
|
|
126
|
-
]))
|
|
127
|
-
|
|
128
|
-
const technicalSupport = computed(() => ([
|
|
129
|
-
{
|
|
130
|
-
subtitle: t('header.contacts.almaty.support.linkTitle'),
|
|
131
|
-
icon: ExpandWindow,
|
|
132
|
-
to: "https://api.whatsapp.com/send/?phone=77712289041"
|
|
133
|
-
}
|
|
134
|
-
]))
|
|
135
|
-
|
|
136
|
-
const newContacts = computed(()=> contacts.value.map(item => ({
|
|
137
|
-
subtitle: item.contact,
|
|
138
|
-
icon: item.platform_code === 'telephone' ? Phone : Whatsapp,
|
|
139
|
-
to: item.platform_code === 'telephone' ? `tel:${item.contact}`
|
|
140
|
-
: `https://api.whatsapp.com/send/?phone=${item.contact.replace(/[^0-9]/g, '')}`
|
|
141
|
-
})))
|
|
142
|
-
</script>
|
|
143
|
-
|
|
144
144
|
<style scoped>
|
|
145
145
|
</style>
|
|
@@ -109,7 +109,7 @@ onUnmounted(() => clearTimer())
|
|
|
109
109
|
|
|
110
110
|
<template>
|
|
111
111
|
<div
|
|
112
|
-
class="overflow-hidden relative w-[320px] h-[480px] rounded-
|
|
112
|
+
class="overflow-hidden relative w-[320px] h-[480px] rounded-xl"
|
|
113
113
|
@mouseover="handleMouseOver"
|
|
114
114
|
@mouseout="handleMouseOut"
|
|
115
115
|
>
|
|
@@ -120,14 +120,14 @@ onUnmounted(() => clearTimer())
|
|
|
120
120
|
>
|
|
121
121
|
<img
|
|
122
122
|
:src="items[currentIndex].image"
|
|
123
|
-
class="size-full object-cover rounded-
|
|
123
|
+
class="size-full object-cover rounded-xl"
|
|
124
124
|
/>
|
|
125
125
|
<nuxt-link-locale :to="items[currentIndex].to">
|
|
126
|
-
<div class="absolute bottom-0 rounded-
|
|
126
|
+
<div class="absolute bottom-0 rounded-xl w-full bg-blue-700/80 dark:bg-blue-500/80 px-4 pt-4 pb-12 shadow-[0_-2px_4px_0_rgba(0,0,0,0.25)] backdrop-blur-md flex flex-col gap-6">
|
|
127
127
|
<div class="flex flex-col gap-2">
|
|
128
128
|
<div class="flex items-center justify-between">
|
|
129
129
|
<div class="flex items-center gap-2">
|
|
130
|
-
<div class="flex items-center justify-center bg-white dark:bg-gray-900 text-blue-700 dark:text-blue-500 size-8 rounded-
|
|
130
|
+
<div class="flex items-center justify-center bg-white dark:bg-gray-900 text-blue-700 dark:text-blue-500 size-8 rounded-md">
|
|
131
131
|
<component
|
|
132
132
|
:is="items[currentIndex].icon"
|
|
133
133
|
class="size-6"
|
|
@@ -150,12 +150,12 @@ onUnmounted(() => clearTimer())
|
|
|
150
150
|
</nuxt-link-locale>
|
|
151
151
|
</div>
|
|
152
152
|
</transition>
|
|
153
|
-
<div class="absolute
|
|
153
|
+
<div class="absolute bottom-4 w-full">
|
|
154
154
|
<div class="flex justify-center items-center gap-6">
|
|
155
155
|
<div
|
|
156
156
|
v-for="(item, index) in items"
|
|
157
157
|
:key="index"
|
|
158
|
-
class="relative bg-white/50 dark:bg-gray-900/50 rounded-full overflow-hidden cursor-pointer h-2 w-2"
|
|
158
|
+
class="relative bg-white/50 dark:bg-gray-900/50 rounded-full overflow-hidden cursor-pointer h-2 w-2 transition-[width] duration-500 ease-[cubic-bezier(0.22,1,0.36,1)]"
|
|
159
159
|
:class="{ 'w-[52px]': currentIndex === index }"
|
|
160
160
|
@click="setCurrentIndex(index)"
|
|
161
161
|
>
|
|
@@ -188,7 +188,9 @@ onUnmounted(() => clearTimer())
|
|
|
188
188
|
top: 0;
|
|
189
189
|
left: 0;
|
|
190
190
|
width: 100%;
|
|
191
|
-
transition:
|
|
191
|
+
transition:
|
|
192
|
+
transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
|
|
193
|
+
opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1);
|
|
192
194
|
}
|
|
193
195
|
|
|
194
196
|
.slide-left-enter-from {
|
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import AlmatyContacts from
|
|
3
|
-
import AstanaContacts from
|
|
2
|
+
import AlmatyContacts from '#adata-ui/components/navigation/header/AlmatyContacts.vue'
|
|
3
|
+
import AstanaContacts from '#adata-ui/components/navigation/header/AstanaContacts.vue'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
defineProps<{
|
|
7
|
-
animation?: string
|
|
8
|
-
index?: number
|
|
9
|
-
url?: string
|
|
10
|
-
}>(),
|
|
11
|
-
{
|
|
12
|
-
animation: 'previous',
|
|
13
|
-
index: 2,
|
|
14
|
-
url:''
|
|
15
|
-
}
|
|
16
|
-
)
|
|
5
|
+
defineProps<{ url?: string }>()
|
|
17
6
|
defineEmits(['outerClick', 'mouseOver'])
|
|
18
7
|
|
|
19
8
|
const { t } = useI18n()
|
|
@@ -21,94 +10,39 @@ const activeTab = ref(0)
|
|
|
21
10
|
const options = [
|
|
22
11
|
{
|
|
23
12
|
key: 0,
|
|
24
|
-
name: 'ТОО "Alldata"'
|
|
13
|
+
name: 'ТОО "Alldata"',
|
|
25
14
|
},
|
|
26
15
|
{
|
|
27
16
|
key: 1,
|
|
28
|
-
name: ' ТОО «ADATA Consulting»'
|
|
17
|
+
name: ' ТОО «ADATA Consulting»',
|
|
29
18
|
},
|
|
30
19
|
]
|
|
31
|
-
|
|
32
20
|
</script>
|
|
33
21
|
|
|
34
22
|
<template>
|
|
35
|
-
<div class="
|
|
23
|
+
<div class="normal-case">
|
|
36
24
|
<div class="bg-white dark:bg-gray-950">
|
|
37
|
-
<
|
|
38
|
-
<div
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
</div>
|
|
57
|
-
<div>
|
|
58
|
-
<almaty-contacts v-show="activeTab===0" />
|
|
59
|
-
<astana-contacts v-show="activeTab===1" />
|
|
60
|
-
</div>
|
|
25
|
+
<div class="a-container">
|
|
26
|
+
<div class="mb-8 flex justify-between pt-2">
|
|
27
|
+
<a-pill-tabs
|
|
28
|
+
v-model="activeTab"
|
|
29
|
+
class="gap-2"
|
|
30
|
+
view="mobile"
|
|
31
|
+
:options="options"
|
|
32
|
+
size="lg"
|
|
33
|
+
/>
|
|
34
|
+
<nuxt-link :to="url">
|
|
35
|
+
<a-button variant="gray">
|
|
36
|
+
{{ t('header.contacts.toContacts') }}
|
|
37
|
+
<a-icon-arrow-top-right-on-square />
|
|
38
|
+
</a-button>
|
|
39
|
+
</nuxt-link>
|
|
40
|
+
</div>
|
|
41
|
+
<div>
|
|
42
|
+
<almaty-contacts v-show="activeTab === 0" />
|
|
43
|
+
<astana-contacts v-show="activeTab === 1" />
|
|
61
44
|
</div>
|
|
62
|
-
</
|
|
63
|
-
<button
|
|
64
|
-
class="absolute right-8 top-4"
|
|
65
|
-
@click="$emit('outerClick')"
|
|
66
|
-
>
|
|
67
|
-
<a-icon-x-mark
|
|
68
|
-
width="32"
|
|
69
|
-
height="32"
|
|
70
|
-
/>
|
|
71
|
-
</button>
|
|
45
|
+
</div>
|
|
72
46
|
</div>
|
|
73
47
|
</div>
|
|
74
48
|
</template>
|
|
75
|
-
|
|
76
|
-
<style scoped lang="scss">
|
|
77
|
-
$percent: 30%;
|
|
78
|
-
.next-enter-from,
|
|
79
|
-
.next-leave-to {
|
|
80
|
-
opacity: 0;
|
|
81
|
-
transform: translateX($percent);
|
|
82
|
-
position: absolute;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.next-enter-active {
|
|
86
|
-
transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.next-leave-active {
|
|
90
|
-
transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
91
|
-
opacity: 0;
|
|
92
|
-
transform: translateX(-$percent);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// Backwards transition
|
|
96
|
-
|
|
97
|
-
.prev-enter-from,
|
|
98
|
-
.prev-leave-to {
|
|
99
|
-
position: absolute;
|
|
100
|
-
|
|
101
|
-
opacity: 0;
|
|
102
|
-
transform: translateX(-$percent);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.prev-enter-active {
|
|
106
|
-
transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.prev-leave-active {
|
|
110
|
-
transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
111
|
-
opacity: 0;
|
|
112
|
-
transform: translateX($percent);
|
|
113
|
-
}
|
|
114
|
-
</style>
|