adata-ui 4.0.5 → 4.0.7

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 (133) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/Footer.vue +70 -69
  3. package/dist/runtime/components/Header.vue +168 -9
  4. package/dist/runtime/components/Header.vue.d.ts +24 -1
  5. package/dist/runtime/components/Tag.vue +46 -0
  6. package/dist/runtime/components/Tag.vue.d.ts +25 -0
  7. package/dist/runtime/components/header/AlmatyContacts.vue +119 -0
  8. package/dist/runtime/components/header/AstanaContacts.vue +65 -0
  9. package/dist/runtime/components/header/AstanaContacts.vue.d.ts +2 -0
  10. package/dist/runtime/components/header/CardGallery.vue +156 -0
  11. package/dist/runtime/components/header/CardGallery.vue.d.ts +2 -0
  12. package/dist/runtime/components/header/ContactMenu.vue +64 -0
  13. package/dist/runtime/components/header/ContactMenu.vue.d.ts +11 -0
  14. package/dist/runtime/components/header/HeaderLink.vue +167 -0
  15. package/dist/runtime/components/header/HeaderLink.vue.d.ts +2 -0
  16. package/dist/runtime/components/header/ListItem.vue +26 -0
  17. package/dist/runtime/components/header/ListItem.vue.d.ts +7 -0
  18. package/dist/runtime/components/header/NavCard.vue +40 -0
  19. package/dist/runtime/components/header/NavCard.vue.d.ts +8 -0
  20. package/dist/runtime/components/header/NavList.vue +58 -0
  21. package/dist/runtime/components/header/NavList.vue.d.ts +15 -0
  22. package/dist/runtime/components/header/ProductMenu.vue +72 -0
  23. package/dist/runtime/components/header/ProductMenu.vue.d.ts +11 -0
  24. package/dist/runtime/components/header/ProfileMenu.vue +168 -0
  25. package/dist/runtime/components/header/ProfileMenu.vue.d.ts +13 -0
  26. package/dist/runtime/components/header/TopHeader.vue +147 -0
  27. package/dist/runtime/components/header/TopHeader.vue.d.ts +10 -0
  28. package/dist/runtime/components/header/types.d.ts +19 -0
  29. package/dist/runtime/components/header/types.js +0 -0
  30. package/dist/runtime/composables/useHeaderNavigationLinks.d.ts +28 -0
  31. package/dist/runtime/composables/useHeaderNavigationLinks.js +238 -0
  32. package/dist/runtime/i18n.d.ts +1 -1
  33. package/dist/runtime/icons/arrow/arrow-circle-down.vue +30 -0
  34. package/dist/runtime/icons/arrow/arrow-circle-down.vue.d.ts +2 -0
  35. package/dist/runtime/icons/arrow/arrow-graph-up.vue +24 -0
  36. package/dist/runtime/icons/arrow/arrow-graph-up.vue.d.ts +2 -0
  37. package/dist/runtime/icons/arrow/arrow-side-up.vue +19 -0
  38. package/dist/runtime/icons/arrow/arrow-side-up.vue.d.ts +2 -0
  39. package/dist/runtime/icons/arrow/arrow-top-right-on-square.vue +19 -0
  40. package/dist/runtime/icons/arrow/arrow-top-right-on-square.vue.d.ts +2 -0
  41. package/dist/runtime/icons/avto/car.vue +17 -0
  42. package/dist/runtime/icons/avto/car.vue.d.ts +2 -0
  43. package/dist/runtime/icons/avto/truck.vue +17 -0
  44. package/dist/runtime/icons/avto/truck.vue.d.ts +2 -0
  45. package/dist/runtime/icons/block.vue +19 -0
  46. package/dist/runtime/icons/block.vue.d.ts +2 -0
  47. package/dist/runtime/icons/calculator.vue +19 -0
  48. package/dist/runtime/icons/calculator.vue.d.ts +2 -0
  49. package/dist/runtime/icons/check-circle.vue +25 -0
  50. package/dist/runtime/icons/check-circle.vue.d.ts +2 -0
  51. package/dist/runtime/icons/clipboard-text.vue +17 -0
  52. package/dist/runtime/icons/clipboard-text.vue.d.ts +2 -0
  53. package/dist/runtime/icons/clock.vue +25 -0
  54. package/dist/runtime/icons/clock.vue.d.ts +2 -0
  55. package/dist/runtime/icons/color-mode/moon.vue +20 -0
  56. package/dist/runtime/icons/color-mode/moon.vue.d.ts +2 -0
  57. package/dist/runtime/icons/color-mode/sun.vue +27 -0
  58. package/dist/runtime/icons/color-mode/sun.vue.d.ts +2 -0
  59. package/dist/runtime/icons/communication/mail.vue +19 -0
  60. package/dist/runtime/icons/communication/mail.vue.d.ts +2 -0
  61. package/dist/runtime/icons/communication/phone.vue +19 -0
  62. package/dist/runtime/icons/communication/phone.vue.d.ts +2 -0
  63. package/dist/runtime/icons/company.vue +17 -0
  64. package/dist/runtime/icons/company.vue.d.ts +2 -0
  65. package/dist/runtime/icons/currency/dollar.vue +19 -0
  66. package/dist/runtime/icons/currency/dollar.vue.d.ts +2 -0
  67. package/dist/runtime/icons/currency/down.vue +22 -0
  68. package/dist/runtime/icons/currency/down.vue.d.ts +2 -0
  69. package/dist/runtime/icons/currency/eur.vue +69 -0
  70. package/dist/runtime/icons/currency/eur.vue.d.ts +2 -0
  71. package/dist/runtime/icons/currency/rub.vue +25 -0
  72. package/dist/runtime/icons/currency/rub.vue.d.ts +2 -0
  73. package/dist/runtime/icons/currency/usd.vue +269 -0
  74. package/dist/runtime/icons/currency/usd.vue.d.ts +2 -0
  75. package/dist/runtime/icons/currency/yuan.vue +37 -0
  76. package/dist/runtime/icons/currency/yuan.vue.d.ts +2 -0
  77. package/dist/runtime/icons/document/hdocument.vue +17 -0
  78. package/dist/runtime/icons/document/hdocument.vue.d.ts +2 -0
  79. package/dist/runtime/icons/document/id.vue +19 -0
  80. package/dist/runtime/icons/document/id.vue.d.ts +2 -0
  81. package/dist/runtime/icons/document/profile.vue +19 -0
  82. package/dist/runtime/icons/document/profile.vue.d.ts +2 -0
  83. package/dist/runtime/icons/file.vue +19 -0
  84. package/dist/runtime/icons/file.vue.d.ts +2 -0
  85. package/dist/runtime/icons/globe.vue +19 -0
  86. package/dist/runtime/icons/globe.vue.d.ts +2 -0
  87. package/dist/runtime/icons/handshake.vue +19 -0
  88. package/dist/runtime/icons/handshake.vue.d.ts +2 -0
  89. package/dist/runtime/icons/info/info-circle.vue +29 -0
  90. package/dist/runtime/icons/info/info-circle.vue.d.ts +2 -0
  91. package/dist/runtime/icons/link-chain.vue +31 -0
  92. package/dist/runtime/icons/link-chain.vue.d.ts +2 -0
  93. package/dist/runtime/icons/loader-circle.vue +41 -0
  94. package/dist/runtime/icons/loader-circle.vue.d.ts +2 -0
  95. package/dist/runtime/icons/logo/adata.vue +48 -0
  96. package/dist/runtime/icons/logo/adata.vue.d.ts +2 -0
  97. package/dist/runtime/icons/logo/logo.vue +27 -0
  98. package/dist/runtime/icons/logo/logo.vue.d.ts +2 -0
  99. package/dist/runtime/icons/medal.vue +17 -0
  100. package/dist/runtime/icons/medal.vue.d.ts +2 -0
  101. package/dist/runtime/icons/navigation/expand-window.vue +19 -0
  102. package/dist/runtime/icons/navigation/expand-window.vue.d.ts +2 -0
  103. package/dist/runtime/icons/navigation/location.vue +25 -0
  104. package/dist/runtime/icons/navigation/location.vue.d.ts +2 -0
  105. package/dist/runtime/icons/navigation/logout.vue +19 -0
  106. package/dist/runtime/icons/navigation/logout.vue.d.ts +2 -0
  107. package/dist/runtime/icons/plus.vue +24 -0
  108. package/dist/runtime/icons/plus.vue.d.ts +2 -0
  109. package/dist/runtime/icons/receipt/hcheck.vue +27 -0
  110. package/dist/runtime/icons/receipt/hcheck.vue.d.ts +2 -0
  111. package/dist/runtime/icons/receipt/receipt.vue +27 -0
  112. package/dist/runtime/icons/receipt/receipt.vue.d.ts +2 -0
  113. package/dist/runtime/icons/scale.vue +19 -0
  114. package/dist/runtime/icons/scale.vue.d.ts +2 -0
  115. package/dist/runtime/icons/search.vue +27 -0
  116. package/dist/runtime/icons/search.vue.d.ts +2 -0
  117. package/dist/runtime/icons/socials/whatsapp.vue +21 -0
  118. package/dist/runtime/icons/socials/whatsapp.vue.d.ts +2 -0
  119. package/dist/runtime/icons/sviazi.vue +19 -0
  120. package/dist/runtime/icons/sviazi.vue.d.ts +2 -0
  121. package/dist/runtime/icons/users/users-three.vue +17 -0
  122. package/dist/runtime/icons/users/users-three.vue.d.ts +2 -0
  123. package/dist/runtime/icons/users/users.vue +31 -0
  124. package/dist/runtime/icons/users/users.vue.d.ts +2 -0
  125. package/dist/runtime/icons/work-bag.vue +20 -0
  126. package/dist/runtime/icons/work-bag.vue.d.ts +2 -0
  127. package/dist/runtime/icons/x-mark.vue +18 -0
  128. package/dist/runtime/icons/x-mark.vue.d.ts +2 -0
  129. package/dist/runtime/shared/constants/pages.d.ts +68 -0
  130. package/dist/runtime/shared/constants/pages.js +68 -0
  131. package/package.json +3 -1
  132. package/dist/runtime/icons/adata.vue +0 -19
  133. /package/dist/runtime/{icons/adata.vue.d.ts → components/header/AlmatyContacts.vue.d.ts} +0 -0
package/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "nuxt": ">=3.16.0"
6
6
  },
7
7
  "failOnWarn": false,
8
- "version": "4.0.5",
8
+ "version": "4.0.7",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "1.0.1",
11
11
  "unbuild": "3.5.0"
@@ -5,6 +5,7 @@ import ISocialsInstagram from "#icons/socials/instagram.vue";
5
5
  import ISocialsTelegram from "#icons/socials/telegram.vue";
6
6
  import ISocialsFacebook from "#icons/socials/facebook.vue";
7
7
  import ISocialsTiktok from "#icons/socials/tik-tok.vue";
8
+ import IAdata from "#icons/logo/adata.vue";
8
9
  import { useI18n, ref } from "#imports";
9
10
  const year = (/* @__PURE__ */ new Date()).getFullYear();
10
11
  const { t } = useI18n();
@@ -45,73 +46,73 @@ const info = ref([]);
45
46
  </script>
46
47
 
47
48
  <template>
48
- <div
49
- id="footer"
50
- class="bg-deepblue-900 dark:bg-gray-900 lg:pt-10"
51
- >
52
- <div class="container mx-auto px-4 2xl:px-16 py-5 text-white">
53
- <i-adata
54
- filled
55
- :font-controlled="false"
56
- class="mb-8 h-[26px] w-[92px] lg:hidden"
57
- />
58
- <div class="grid gap-5 lg:grid-cols-5 lg:gap-10 xl:grid-cols-6">
59
- <div
60
- v-for="(link, key) in links"
61
- :key="key"
62
- >
63
- <div
64
- :content="link.items"
65
- :label="t(link.title)"
66
- :link="link.link.replace(/\/$/, '')"
67
- />
68
- </div>
69
- </div>
70
- <div class="flex grow justify-end gap-8 py-5">
71
- <nuxt-link
72
- v-for="(social, idx) in socialMedia"
73
- :key="idx"
74
- target="_blank"
75
- :to="social.link"
76
- :aria-label="social.name"
77
- >
78
- <component
79
- :is="social.icon"
80
- filled
81
- :font-controlled="false"
82
- class="social-icon h-[28px] w-[28px]"
83
- />
84
- </nuxt-link>
85
- </div>
86
- </div>
87
- <div class="relative">
88
- <div class="container mx-auto px-4 2xl:px-16 py-5">
89
- <div
90
- class="flex flex-col gap-10 text-xs text-white before:absolute before:left-0 before:top-0 before:h-[0.5px] before:w-full before:bg-white lg:flex-row lg:items-center lg:gap-5"
91
- >
92
- <div class="flex flex-col gap-4 lg:flex-row lg:gap-6">
93
- <nuxt-link
94
- v-for="(item, idx) in info"
95
- :key="idx"
96
- target="_blank"
97
- class="text-[10px]"
98
- :to="item.link"
99
- >
100
- {{ t(item.title) }}
101
- </nuxt-link>
102
- </div>
103
- <div class="flex justify-center lg:grow lg:items-center lg:justify-end lg:gap-4">
104
- <div class="flex flex-col gap-1">
105
- <span>{{ year }} © {{ t("footer.LLP") }} "Alldata"</span>
106
- </div>
107
- <i-adata
108
- filled
109
- :font-controlled="false"
110
- class="hidden h-[26px] w-[92px] lg:block"
111
- />
112
- </div>
113
- </div>
114
- </div>
115
- </div>
116
- </div>
49
+ <div
50
+ id="footer"
51
+ class="bg-deepblue-900 dark:bg-gray-900 lg:pt-10"
52
+ >
53
+ <div class="container mx-auto px-4 2xl:px-16 py-5 text-white">
54
+ <i-adata
55
+ filled
56
+ :font-controlled="false"
57
+ class="mb-8 h-[26px] w-[92px] lg:hidden"
58
+ />
59
+ <div class="grid gap-5 lg:grid-cols-5 lg:gap-10 xl:grid-cols-6">
60
+ <div
61
+ v-for="(link, key) in links"
62
+ :key="key"
63
+ >
64
+ <div
65
+ :content="link.items"
66
+ :label="t(link.title)"
67
+ :link="link.link.replace(/\/$/, '')"
68
+ />
69
+ </div>
70
+ </div>
71
+ <div class="flex grow justify-end gap-8 py-5">
72
+ <nuxt-link
73
+ v-for="(social, idx) in socialMedia"
74
+ :key="idx"
75
+ target="_blank"
76
+ :to="social.link"
77
+ :aria-label="social.name"
78
+ >
79
+ <component
80
+ :is="social.icon"
81
+ filled
82
+ :font-controlled="false"
83
+ class="social-icon h-[28px] w-[28px]"
84
+ />
85
+ </nuxt-link>
86
+ </div>
87
+ </div>
88
+ <div class="relative">
89
+ <div class="container mx-auto px-4 2xl:px-16 py-5">
90
+ <div
91
+ class="flex flex-col gap-10 text-xs text-white before:absolute before:left-0 before:top-0 before:h-[0.5px] before:w-full before:bg-white lg:flex-row lg:items-center lg:gap-5"
92
+ >
93
+ <div class="flex flex-col gap-4 lg:flex-row lg:gap-6">
94
+ <nuxt-link
95
+ v-for="(item, idx) in info"
96
+ :key="idx"
97
+ target="_blank"
98
+ class="text-[10px]"
99
+ :to="item.link"
100
+ >
101
+ {{ t(item.title) }}
102
+ </nuxt-link>
103
+ </div>
104
+ <div class="flex justify-center lg:grow lg:items-center lg:justify-end lg:gap-4">
105
+ <div class="flex flex-col gap-1">
106
+ <span>{{ year }} © {{ t("footer.LLP") }} "Alldata"</span>
107
+ </div>
108
+ <i-adata
109
+ filled
110
+ :font-controlled="false"
111
+ class="hidden h-[26px] w-[92px] lg:block"
112
+ />
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </div>
117
118
  </template>
@@ -1,13 +1,172 @@
1
- <script setup lang="ts">
2
-
1
+ <script setup>
2
+ import TopHeader from "./header/TopHeader.vue";
3
+ import HeaderLink from "./header/HeaderLink.vue";
4
+ import ProfileMenu from "./header/ProfileMenu.vue";
5
+ import { useI18n, ref, onBeforeMount } from "#imports";
6
+ import ILogo from "#icons/logo/logo.vue";
7
+ import ILogout from "#icons/navigation/logout.vue";
8
+ import IAdata from "#icons/logo/adata.vue";
9
+ import ISearch from "#icons/search.vue";
10
+ const props = defineProps({
11
+ replenish: { type: String, required: false },
12
+ hasNotification: { type: Boolean, required: false },
13
+ email: { type: null, required: false },
14
+ rate: { type: String, required: false, default: "\u0411\u0430\u0437\u043E\u0432\u044B\u0439" },
15
+ daysRemaining: { type: Number, required: false, default: 0 },
16
+ limitRemaining: { type: Number, required: false, default: 0 },
17
+ balance: { type: Number, required: false, default: 0 },
18
+ isAuthenticated: { type: Boolean, required: false },
19
+ showLogIn: { type: Boolean, required: false, default: true },
20
+ mobileHeaderType: { type: String, required: false, default: "default" },
21
+ module: { type: String, required: false, default: "pk" },
22
+ oldVersion: { type: String, required: false }
23
+ });
24
+ const emit = defineEmits(["logout", "search", "login"]);
25
+ const { t } = useI18n();
26
+ const langIsOn = false;
27
+ const contacts = ref([]);
28
+ const goAuth = () => {
29
+ if (window) {
30
+ emit("login");
31
+ let fullPath = encodeURIComponent(window.location.toString());
32
+ if (fullPath.includes("basic-info")) {
33
+ fullPath = fullPath.replace("%2Fcounterparty%2Fmain", "").replace("%2Fbasic-info", "");
34
+ }
35
+ location.href = `https://id.adata.kz/?url=${fullPath}`;
36
+ }
37
+ };
38
+ const goToAnotherModule = () => {
39
+ location.href = "https://adata.kz";
40
+ };
41
+ const fetchContacts = async () => {
42
+ try {
43
+ const response = await fetch(
44
+ "https://pk-api.adata.kz/api/v1/data/counterparty/contacts/sales-department"
45
+ );
46
+ const { data } = await response.json();
47
+ contacts.value = data;
48
+ } catch (e) {
49
+ console.error(e.message);
50
+ }
51
+ };
52
+ onBeforeMount(() => {
53
+ fetchContacts();
54
+ });
3
55
  </script>
4
56
 
5
57
  <template>
6
- <header class="text-3xl">
7
- Adata Header dasdasd
8
- </header>
58
+ <div>
59
+ <top-header
60
+ :days-remaining="daysRemaining"
61
+ :is-authenticated="isAuthenticated"
62
+ :module-name="module"
63
+ :limit-remaining="limitRemaining"
64
+ />
65
+ <header
66
+ class="relative h-16 border-b border-deepblue-900/10 bg-white dark:border-gray-200/10 dark:bg-gray-900"
67
+ >
68
+ <div class="container mx-auto mobile-padding flex h-full items-center justify-between gap-2">
69
+ <!-- Desktop hidden -->
70
+ <section
71
+ id="mobile-header"
72
+ class="grow lg:hidden"
73
+ >
74
+ <div
75
+ v-if="mobileHeaderType === 'default'"
76
+ class="flex justify-center"
77
+ >
78
+ <nuxt-link
79
+ class="text-deepblue dark:text-[#E3E5E8]"
80
+ @click="goToAnotherModule"
81
+ >
82
+ <i-adata
83
+ :font-controlled="false"
84
+ filled
85
+ />
86
+ </nuxt-link>
87
+ </div>
88
+ <div
89
+ v-else-if="mobileHeaderType === 'search'"
90
+ class="flex w-full items-center gap-2 bg-white dark:bg-gray-900 lg:hidden"
91
+ >
92
+ <i-logo
93
+ class="dark:text-gray-200"
94
+ @click="goToAnotherModule"
95
+ />
96
+ <button
97
+ class="flex w-full items-center gap-2 rounded bg-gray-50 px-4 py-1.5 dark:bg-gray-800 dark:text-gray-500"
98
+ @click="$emit('search')"
99
+ >
100
+ <i-search />
101
+ <span class="body-400">Найти</span>
102
+ </button>
103
+ </div>
104
+ </section>
105
+ <div class="lg:hidden">
106
+ <div
107
+ v-if="langIsOn || module === 'fea'"
108
+ class="lg:hidden"
109
+ />
110
+ </div>
111
+ <!-- Mobile hidden -->
112
+ <nav class="hidden items-center gap-4 lg:flex">
113
+ <nuxt-link
114
+ aria-label="Adata-logo"
115
+ to="https://adata.kz"
116
+ class="text-deepblue cursor-pointer dark:text-[#E3E5E8]"
117
+ @click="goToAnotherModule"
118
+ >
119
+ <i-adata
120
+ :font-controlled="false"
121
+ filled
122
+ />
123
+ </nuxt-link>
124
+ <header-link />
125
+ </nav>
126
+ <div class="text-deepblue hidden items-center gap-4 dark:text-[#E3E5E8] lg:flex">
127
+ <!-- Mobile hidden -->
128
+ <div class="hidden items-center gap-4 lg:flex">
129
+ <div
130
+ v-if="oldVersion"
131
+ :url="oldVersion"
132
+ />
133
+ <div />
134
+ <div v-if="langIsOn || module === 'fea'" />
135
+ </div>
136
+
137
+ <!-- <div v-show="isAuthenticated"> -->
138
+ <!-- <template #default="{ onExpand, expanded }"> -->
139
+ <!-- <div -->
140
+ <!-- class="hidden cursor-pointer items-center gap-2 text-sm font-semibold lg:flex" -->
141
+ <!-- @click.stop="onExpand" -->
142
+ <!-- > -->
143
+ <!-- <span>{{ email }}</span> -->
144
+ <!-- <arrow :class="{ 'rotate-180': expanded }" /> -->
145
+ <!-- </div> -->
146
+ <!-- </template> -->
147
+ <!-- <template #content> -->
148
+ <!-- <profile-menu -->
149
+ <!-- :balance="balance" -->
150
+ <!-- :days-remaining="daysRemaining" -->
151
+ <!-- :limit-remaining="limitRemaining" -->
152
+ <!-- :rate="rate" -->
153
+ <!-- :replenish="replenish" -->
154
+ <!-- @logout="$emit('logout')" -->
155
+ <!-- /> -->
156
+ <!-- </template> -->
157
+ <!-- </div> -->
158
+ <div
159
+ v-show="!isAuthenticated && showLogIn"
160
+ class="hidden cursor-pointer items-center gap-2 font-semibold lg:flex"
161
+ @click="goAuth"
162
+ >
163
+ <i-logout class="lg:h-4 lg:w-4" />
164
+ <span class="hidden lg:inline-block">
165
+ {{ t("header.login") }}
166
+ </span>
167
+ </div>
168
+ </div>
169
+ </div>
170
+ </header>
171
+ </div>
9
172
  </template>
10
-
11
- <style scoped>
12
-
13
- </style>
@@ -1,2 +1,25 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ import type { ProjectKeys } from './header/types.js';
2
+ interface Props {
3
+ replenish?: string;
4
+ hasNotification?: boolean;
5
+ email?: string | undefined;
6
+ rate?: string;
7
+ daysRemaining?: number;
8
+ limitRemaining?: number;
9
+ balance?: number;
10
+ isAuthenticated?: boolean;
11
+ showLogIn?: boolean;
12
+ mobileHeaderType?: 'search' | 'default';
13
+ module?: ProjectKeys;
14
+ oldVersion?: string;
15
+ }
16
+ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, any, string, import("vue").PublicProps, any, {
17
+ daysRemaining: number;
18
+ limitRemaining: number;
19
+ module: ProjectKeys;
20
+ rate: string;
21
+ balance: number;
22
+ showLogIn: boolean;
23
+ mobileHeaderType: "search" | "default";
24
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
2
25
  export default _default;
@@ -0,0 +1,46 @@
1
+ <script setup>
2
+ import { computed } from "#imports";
3
+ defineOptions({ name: "AStatusBadge" });
4
+ const props = defineProps({
5
+ type: { type: String, required: false, default: "primary" },
6
+ view: { type: String, required: false, default: "default" },
7
+ size: { type: String, required: false, default: "lg" },
8
+ customClasses: { type: String, required: false, default: "" }
9
+ });
10
+ const classes = computed(() => [
11
+ "text-sm rounded-md select-none inline-flex gap-[5.5px] justify-center items-center",
12
+ typeSwitchValues[props.view][props.type],
13
+ props.size === "xs" ? "px-4 py-[2px] text-xs font-bold" : "",
14
+ props.size === "sm" ? "text-xs font-semibold px-4 py-[2px] h-6" : "",
15
+ props.size === "lg" ? "px-4 py-[7.5px] font-semibold" : ""
16
+ ]);
17
+ const typeSwitchValues = {
18
+ default: {
19
+ primary: "bg-blue-700 text-white dark:text-gray-900 dark:bg-blue-500",
20
+ success: "bg-green-500 text-white dark:text-gray-200 dark:bg-green-400",
21
+ danger: "bg-red-500 text-white dark:text-gray-200 ",
22
+ warning: "bg-yellow-400 text-white dark:text-gray-200 ",
23
+ gray: "bg-deepblue-900 text-white dark:text-gray-200 dark:bg-gray-200/10",
24
+ orange: "bg-orange-600 text-white dark:text-gray-200"
25
+ },
26
+ inverted: {
27
+ primary: "bg-blue-700/10 text-blue-700 dark:text-blue-500 dark:bg-[#1EABFF1A]",
28
+ success: "bg-green-500/20 text-green-500 dark:text-green-400 dark:bg-green-400/20",
29
+ danger: "bg-red-500/10 text-red-500 dark:text-red-400 dark:bg-red-400/10",
30
+ warning: "bg-yellow-400/10 text-yellow-400",
31
+ gray: "bg-deepblue-900/10 text-gray-600 dark:text-gray-200 dark:bg-gray-200/10",
32
+ orange: "bg-orange-600/10 text-orange-600"
33
+ },
34
+ transparent: {
35
+ success: "bg-green-500/10 text-green-500 dark:bg-green-400/10 dark:text-green-400",
36
+ danger: "bg-red-500/10 text-red-500 dark:bg-red-400/10 dark:text-red-400"
37
+ }
38
+ };
39
+ </script>
40
+
41
+ <template>
42
+ <div :class="[[classes], customClasses]">
43
+ <slot name="point" />
44
+ <slot />
45
+ </div>
46
+ </template>
@@ -0,0 +1,25 @@
1
+ interface Props {
2
+ type?: 'primary' | 'success' | 'danger' | 'gray' | 'orange' | 'warning';
3
+ view?: 'default' | 'inverted' | 'transparent';
4
+ size?: 'xs' | 'sm' | 'lg';
5
+ customClasses?: string;
6
+ }
7
+ declare var __VLS_1: {}, __VLS_3: {};
8
+ type __VLS_Slots = {} & {
9
+ point?: (props: typeof __VLS_1) => any;
10
+ } & {
11
+ default?: (props: typeof __VLS_3) => any;
12
+ };
13
+ declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
14
+ type: "primary" | "success" | "danger" | "gray" | "orange" | "warning";
15
+ view: "default" | "inverted" | "transparent";
16
+ size: "xs" | "sm" | "lg";
17
+ customClasses: string;
18
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,119 @@
1
+ <script setup>
2
+ import Location from "#icons/navigation/location.vue";
3
+ import Mail from "#icons/communication/mail.vue";
4
+ import Clock from "#icons/clock.vue";
5
+ import ExpandWindow from "#icons/navigation/expand-window.vue";
6
+ import { computed, ref, useI18n } from "#imports";
7
+ import Phone from "#icons/communication/phone.vue";
8
+ import Whatsapp from "#icons/socials/whatsapp.vue";
9
+ const contacts = ref([]);
10
+ const { t } = useI18n();
11
+ const AlmatyItems = [
12
+ {
13
+ title: "header.contacts.almaty.adress.title",
14
+ subtitle: "header.contacts.almaty.adress.subtitle",
15
+ icon: Location,
16
+ to: "https://yandex.kz/maps/ru/org/avrora_kholding/1099794306/?ll=76.912479%2C43.208928&z=17.72"
17
+ },
18
+ {
19
+ title: "header.contacts.almaty.email.title",
20
+ subtitle: "info@adata.kz",
21
+ icon: Mail,
22
+ to: "mailto:info@adata.kz"
23
+ },
24
+ {
25
+ title: "header.contacts.almaty.schedule.title",
26
+ subtitle: "header.contacts.almaty.schedule.subtitle",
27
+ icon: Clock
28
+ }
29
+ ];
30
+ const technicalSupport = [
31
+ {
32
+ subtitle: "header.contacts.almaty.support.linkTitle",
33
+ icon: ExpandWindow,
34
+ to: "https://api.whatsapp.com/send/?phone=77712289041"
35
+ }
36
+ ];
37
+ const newContacts = computed(() => contacts.value.map((item) => ({
38
+ subtitle: item.contact,
39
+ icon: item.platform_code === "telephone" ? Phone : Whatsapp,
40
+ to: item.platform_code === "telephone" ? `tel:${item.contact}` : `https://api.whatsapp.com/send/?phone=${item.contact.replace(/\D/g, "")}`
41
+ })));
42
+ </script>
43
+
44
+ <template>
45
+ <div class="h-[272px]">
46
+ <h2 class="heading-02 mb-4">
47
+ {{ t("header.contacts.almaty.title") }}
48
+ </h2>
49
+ <div class="flex gap-10">
50
+ <div class="flex flex-col gap-4">
51
+ <div
52
+ v-for="item in AlmatyItems.slice(0, 3)"
53
+ class="flex flex-col gap-2 "
54
+ >
55
+ <div class="heading-04">
56
+ {{ t(item.title) }}
57
+ </div>
58
+ <a
59
+ class="flex items-center gap-1 text-deepblue-900 dark:text-white"
60
+ :href="item.to"
61
+ >
62
+ <component
63
+ :is="item.icon"
64
+ class="shrink-0"
65
+ />
66
+ <div class=" body-400">
67
+ {{ t(item.subtitle) }}
68
+ </div>
69
+ </a>
70
+ </div>
71
+ </div>
72
+ <div class="flex flex-col gap-2 2xl:gap-4">
73
+ <div class="flex flex-col gap-4 h-full justify-between">
74
+ <div class="flex flex-col gap-2 ">
75
+ <div class="heading-04">
76
+ {{ t("header.contacts.almaty.sellDep.title") }}
77
+ </div>
78
+ <div class="grid grid-cols-3 gap-x-8 gap-y-2">
79
+ <a
80
+ v-for="link in newContacts"
81
+ :key="link.subtitle"
82
+ class="flex 2xl:items-center gap-1 text-deepblue-900 dark:text-white"
83
+ :href="link.to"
84
+ :target="link.icon === Whatsapp ? '_blank' : '_self'"
85
+ >
86
+ <component :is="link.icon" />
87
+ <div class="body-400 line-clamp-1">
88
+ {{ link.subtitle }}
89
+ </div>
90
+ </a>
91
+ </div>
92
+ </div>
93
+ <div class="flex flex-col gap-2 ">
94
+ <div class="heading-04 whitespace-nowrap">
95
+ {{ t("header.contacts.almaty.support.title") }}
96
+ </div>
97
+ <div class="flex flex-col lg:gap-y-5">
98
+ <a
99
+ v-for="link in technicalSupport"
100
+ :key="link.subtitle"
101
+ class="flex 2xl:items-center gap-1 text-deepblue-900 dark:text-white"
102
+ :href="link.to"
103
+ target="_blank"
104
+ >
105
+ <div class="body-400 line-clamp-1 text-blue-600">
106
+ {{ t(link.subtitle) }}
107
+ </div>
108
+ <component
109
+ :is="link.icon"
110
+ class="stroke-blue-600"
111
+ />
112
+ </a>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ </template>
@@ -0,0 +1,65 @@
1
+ <script setup>
2
+ import Location from "#icons/navigation/location.vue";
3
+ import Mail from "#icons/communication/mail.vue";
4
+ import Clock from "#icons/clock.vue";
5
+ import Whatsapp from "#icons/socials/whatsapp.vue";
6
+ import { useI18n } from "#imports";
7
+ const { t } = useI18n();
8
+ const AstanaItems = [
9
+ {
10
+ title: "header.contacts.astana.adress.title",
11
+ subtitle: "header.contacts.astana.adress.subtitle",
12
+ icon: Location,
13
+ to: "https://yandex.kz/maps/ru/org/adata_consulting/214484722242/?ll=71.429573%2C51.131319&z=20.56"
14
+ },
15
+ {
16
+ title: "header.contacts.astana.email.title",
17
+ subtitle: "info@adata-c.kz",
18
+ icon: Mail,
19
+ to: "mailto:info@adata-c.kz"
20
+ },
21
+ {
22
+ title: "header.contacts.astana.schedule.title",
23
+ subtitle: "header.contacts.astana.schedule.subtitle",
24
+ icon: Clock
25
+ },
26
+ {
27
+ title: "header.contacts.astana.sellDep.title",
28
+ subtitle: "+7 700 744 00 10",
29
+ icon: Whatsapp,
30
+ to: "https://api.whatsapp.com/send/?phone=77007440010"
31
+ }
32
+ ];
33
+ </script>
34
+
35
+ <template>
36
+ <div class="h-[272px]">
37
+ <h2 class="heading-02 mb-4">
38
+ {{ t("header.contacts.astana.title") }}
39
+ </h2>
40
+ <div class="grid grid-cols-2 gap-5 ">
41
+ <div class="xl:grid grid-cols-2 grid-rows-3 flex flex-wrap gap-4 ">
42
+ <div
43
+ v-for="(item, index) in AstanaItems"
44
+ :key="index"
45
+ class="flex flex-col gap-2 "
46
+ :class="{ 'col-span-2': index === 0 }"
47
+ >
48
+ <div class="heading-04">
49
+ {{ t(item.title) }}
50
+ </div>
51
+ <a
52
+ class="flex items-center gap-1 text-deepblue-900 dark:text-white"
53
+ :href="item?.to"
54
+ :target="item.icon === Whatsapp ? '_blank' : '_self'"
55
+ >
56
+ <component :is="item.icon" />
57
+ <div class=" body-400">
58
+ {{ t(item.subtitle) }}
59
+ </div>
60
+ </a>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </template>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;