adata-ui 4.0.54 → 4.0.56

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/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "nuxt": ">=3.16.0"
6
6
  },
7
7
  "failOnWarn": false,
8
- "version": "4.0.54",
8
+ "version": "4.0.56",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "1.0.1",
11
11
  "unbuild": "3.5.0"
@@ -92,7 +92,7 @@ onBeforeMount(() => {
92
92
  <slot name="mobile-right"></slot>
93
93
  </div>
94
94
  </div>
95
- <lang-switcher class="lg:hidden"/>
95
+ <lang-switcher v-if="localize" class="lg:hidden"/>
96
96
  <div class="text-deepblue hidden items-center gap-4 dark:text-[#E3E5E8] lg:flex">
97
97
  <!-- Mobile hidden -->
98
98
  <div class="hidden items-center gap-4 lg:flex">
@@ -0,0 +1,267 @@
1
+ <script setup>
2
+ import { PAGES } from "../shared/constants/pages";
3
+ import { useI18n, useAppConfig } from "#imports";
4
+ import ISocialsLinkedin from "#icons/socials/linkedin.vue";
5
+ import ISocialsYoutube from "#icons/socials/youtube.vue";
6
+ import ISocialsInstagram from "#icons/socials/instagram.vue";
7
+ import ISocialsTelegram from "#icons/socials/telegram.vue";
8
+ import ISocialsFacebook from "#icons/socials/facebook.vue";
9
+ import ISocialsTiktok from "#icons/socials/tik-tok.vue";
10
+ import INavigationLocation from "#icons/navigation/location.vue";
11
+ import INavigationExpandWindow from "#icons/navigation/expand-window.vue";
12
+ import ICommunicationPhone from "#icons/communication/phone.vue";
13
+ import ICommunicationMail from "#icons/communication/mail.vue";
14
+ import IAdata from "#icons/logo/adata.vue";
15
+ const year = (/* @__PURE__ */ new Date()).getFullYear();
16
+ const { t } = useI18n();
17
+ const appConfig = useAppConfig();
18
+ const mode = appConfig.adataUI.mode;
19
+ const socialMedia = [
20
+ // {
21
+ // icon: ISocialsLinkedin,
22
+ // link: 'https://www.linkedin.com/company/adata-kz/?viewAsMember=true',
23
+ // name: 'Linkedin',
24
+ // },
25
+ {
26
+ icon: ISocialsYoutube,
27
+ link: "https://www.youtube.com/channel/UCPkbtgwgTZbMJXjmTi3R8Uw/featured",
28
+ name: "YouTube"
29
+ },
30
+ {
31
+ icon: ISocialsInstagram,
32
+ link: "https://www.instagram.com/adata.kz/?igshid=253i4qxg3els",
33
+ name: "Instagram"
34
+ },
35
+ {
36
+ icon: ISocialsTelegram,
37
+ link: "https://t.me/adatakz_official",
38
+ name: "Telegram"
39
+ },
40
+ {
41
+ icon: ISocialsFacebook,
42
+ link: "https://www.facebook.com/adata.kz",
43
+ name: "Facebook"
44
+ },
45
+ {
46
+ icon: ISocialsTiktok,
47
+ link: "https://www.tiktok.com/@adata.kz?lang=ru-RU",
48
+ name: "Tiktok"
49
+ }
50
+ ];
51
+ const mainLinks = {
52
+ services: {
53
+ title: "footer.newVersion.services.title",
54
+ items: [
55
+ [
56
+ {
57
+ title: "footer.newVersion.services.counterparties",
58
+ link: `https://pk.${mode}.kz`
59
+ },
60
+ {
61
+ title: "footer.newVersion.services.fines",
62
+ link: `https://avto.${mode}.kz/`
63
+ },
64
+ {
65
+ title: "footer.newVersion.services.work",
66
+ link: `https://work.${mode}.kz/`
67
+ },
68
+ {
69
+ title: "footer.newVersion.services.analytics",
70
+ link: `https://analytics-new.${mode}.kz/`
71
+ },
72
+ {
73
+ title: "footer.newVersion.services.procurement",
74
+ link: `https://tender.${mode}.kz/`
75
+ }
76
+ ],
77
+ [
78
+ {
79
+ title: "footer.newVersion.services.compliance",
80
+ link: `https://ac.${mode}.kz/compliance`,
81
+ isNew: true
82
+ },
83
+ {
84
+ title: "footer.newVersion.services.edo",
85
+ link: `https://edo.${mode}.kz/`,
86
+ isNew: true
87
+ },
88
+ {
89
+ title: "footer.newVersion.services.ved",
90
+ link: `https://tnved.${mode}.kz/`,
91
+ isNew: true
92
+ }
93
+ ]
94
+ ]
95
+ },
96
+ useful: {
97
+ title: "footer.newVersion.useful.title",
98
+ link: `https://${mode}.kz` + PAGES.usefulMain,
99
+ items: [[
100
+ {
101
+ title: "footer.newVersion.useful.apiDescription",
102
+ link: `https://${mode}.kz` + PAGES.apiDescription
103
+ },
104
+ {
105
+ title: "footer.newVersion.useful.userAgreement",
106
+ link: `https://${mode}.kz` + PAGES.userAgreement
107
+ },
108
+ {
109
+ title: "footer.newVersion.useful.privacyPolicy",
110
+ link: `https://${mode}.kz` + PAGES.privacy
111
+ },
112
+ {
113
+ title: "footer.newVersion.useful.vacancies",
114
+ link: `https://${mode}.kz` + PAGES.vacancy
115
+ },
116
+ {
117
+ title: "footer.newVersion.useful.companyDirectory",
118
+ link: `https://pk.${mode}.kz` + PAGES.pk.counterparty
119
+ }
120
+ ]]
121
+ }
122
+ };
123
+ const contactLinks = {
124
+ title: "footer.newVersion.contacts.title",
125
+ link: `https://${mode}.kz` + PAGES.contacts,
126
+ items: [
127
+ {
128
+ title: "footer.newVersion.contacts.address",
129
+ link: "https://go.2gis.com/30j2f",
130
+ startIcon: INavigationLocation,
131
+ endIcon: null
132
+ },
133
+ {
134
+ title: "+7 (747) 120 34 67",
135
+ link: "tel:+77471203467",
136
+ startIcon: ICommunicationPhone,
137
+ endIcon: null
138
+ },
139
+ {
140
+ title: "info@adata.kz",
141
+ link: "mailto:info@adata.kz",
142
+ startIcon: ICommunicationMail,
143
+ endIcon: null
144
+ },
145
+ {
146
+ title: "footer.newVersion.contacts.goToChat",
147
+ link: "https://api.whatsapp.com/send?phone=77712289041",
148
+ startIcon: null,
149
+ endIcon: INavigationExpandWindow,
150
+ class: "!font-bold"
151
+ }
152
+ ]
153
+ };
154
+ </script>
155
+
156
+ <template>
157
+ <div
158
+ id="footer"
159
+ class="bg-deepblue-900 dark:bg-gray-900 py-4 lg:py-5 rounded-t-3xl"
160
+ >
161
+ <div class="a-container mobile-padding py-5 text-white flex flex-col lg:flex-row justify-between gap-8">
162
+ <div class="flex flex-col gap-8 justify-between">
163
+ <div class="flex flex-col gap-4">
164
+ <i-adata
165
+ filled
166
+ :font-controlled="false"
167
+ class="h-[26px] w-[92px]"
168
+ />
169
+ <span class="text-sm">{{ t("footer.slogan") }}</span>
170
+
171
+ <div class="hidden lg:flex gap-8">
172
+ <nuxt-link
173
+ v-for="(social, idx) in socialMedia"
174
+ :key="idx"
175
+ target="_blank"
176
+ :to="social.link"
177
+ :aria-label="social.name"
178
+ >
179
+ <component
180
+ :is="social.icon"
181
+ filled
182
+ :font-controlled="false"
183
+ class="social-icon h-[28px] w-[28px]"
184
+ />
185
+ </nuxt-link>
186
+ </div>
187
+ </div>
188
+
189
+ <span class="hidden lg:block text-[10px]">{{ year }} © {{ t("footer.LLP") }} "Alldata"</span>
190
+ </div>
191
+
192
+ <div class="flex gap-6 lg:gap-[75px] flex-col lg:flex-row">
193
+ <div class="flex flex-col gap-[18px] lg:gap-[75px] lg:flex-row">
194
+ <div v-for="(item, idx) in mainLinks" :key="idx">
195
+ <adt-new-footer-accordion
196
+ :content="item.items"
197
+ :label="t(item.title)"
198
+ :link="item.link?.replace(/\/$/, '')"
199
+ />
200
+ </div>
201
+ </div>
202
+
203
+ <!-- contactLinks -->
204
+ <div class="flex flex-col gap-2 items-start">
205
+ <nuxt-link-locale
206
+ class="text-sm font-semibold pb-3 pr-4 border-b border-b-[0.5px] border-white cursor-default"
207
+ :class="{ 'cursor-pointer': contactLinks.link }"
208
+ :to="contactLinks.link?.replace(/\/$/, '')"
209
+ >
210
+ {{ t(contactLinks.title) }}
211
+ </nuxt-link-locale>
212
+
213
+ <div class="flex flex-col gap-3 lg:gap-2">
214
+ <div
215
+ v-for="(link, linkIdx) in contactLinks.items"
216
+ :key="linkIdx"
217
+ class="flex gap-2 items-center"
218
+ >
219
+ <nuxt-link-locale
220
+ class="text-xs/5 font-medium flex gap-2 items-center cursor-pointer"
221
+ :class="link.class"
222
+ :to="link.link?.replace(/\/$/, '')"
223
+ >
224
+ <component
225
+ v-if="link.startIcon"
226
+ :is="link.startIcon"
227
+ class="size-4"
228
+ />
229
+
230
+ {{ t(link.title) }}
231
+
232
+ <component
233
+ v-if="link.endIcon"
234
+ :is="link.endIcon"
235
+ class="size-4"
236
+ />
237
+ </nuxt-link-locale>
238
+
239
+ <div v-if="link.isNew" class="text-[9px]/1 font-bold px-1 py-1.5 rounded-sm bg-white/20">
240
+ NEW
241
+ </div>
242
+ </div>
243
+ </div>
244
+ </div>
245
+ </div>
246
+
247
+ <div class="lg:hidden flex gap-8 flex-wrap">
248
+ <nuxt-link
249
+ v-for="(social, idx) in socialMedia"
250
+ :key="idx"
251
+ target="_blank"
252
+ :to="social.link"
253
+ :aria-label="social.name"
254
+ >
255
+ <component
256
+ :is="social.icon"
257
+ filled
258
+ :font-controlled="false"
259
+ class="social-icon h-[28px] w-[28px]"
260
+ />
261
+ </nuxt-link>
262
+ </div>
263
+
264
+ <span class="lg:hidden text-[10px]">{{ year }} © {{ t("footer.LLP") }} "Alldata"</span>
265
+ </div>
266
+ </div>
267
+ </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;
@@ -0,0 +1,85 @@
1
+ <script setup>
2
+ import { ref, useI18n, computed } from "#imports";
3
+ import { useMediaQuery } from "@vueuse/core";
4
+ const props = defineProps({
5
+ label: { type: String, required: true },
6
+ link: { type: String, required: true },
7
+ content: { type: Array, required: true }
8
+ });
9
+ const isDesktop = useMediaQuery("(max-width: 1024px)");
10
+ const { t } = useI18n();
11
+ const open = ref(false);
12
+ function toFinalValues(el) {
13
+ el.style.height = el.scrollHeight + "px";
14
+ el.style.opacity = "1";
15
+ }
16
+ function onAfterEnter(el) {
17
+ el.style.height = "";
18
+ }
19
+ const filterCheck = computed(() => {
20
+ if (open.value) {
21
+ return open.value;
22
+ } else {
23
+ return open.value = !isDesktop.value;
24
+ }
25
+ });
26
+ </script>
27
+
28
+ <template>
29
+ <div class="flex flex-col gap-2 items-start">
30
+ <div
31
+ class="flex gap-2 justify-between w-full"
32
+ >
33
+ <nuxt-link-locale
34
+ class="text-sm font-semibold lg:pb-3 lg:pr-4 lg:border-b lg:border-b-[0.5px] lg:border-white cursor-default"
35
+ :class="{ 'cursor-pointer': link }"
36
+ :to="link?.replace(/\/$/, '')"
37
+ >
38
+ {{ t(label) }}
39
+ </nuxt-link-locale>
40
+
41
+ <div class="transition-all lg:hidden cursor-pointer">
42
+ <i-arrow-chevron-down
43
+ v-if="content.length"
44
+ filled
45
+ :font-controlled="false"
46
+ class="w-6 h-6 transition-all"
47
+ :class="{ 'rotate-180': open }"
48
+ @click="open = !open"
49
+ />
50
+ </div>
51
+ </div>
52
+
53
+ <transition
54
+ name="accordion"
55
+ @enter="toFinalValues"
56
+ @after-enter="onAfterEnter"
57
+ @before-leave="toFinalValues"
58
+ >
59
+ <div v-if="filterCheck" class="flex gap-3 lg:gap-6 flex-col lg:flex-row ">
60
+ <div v-for="(subItem, subIdx) in content" :key="subIdx" class="flex flex-col gap-3 lg:gap-2">
61
+ <div
62
+ v-for="(link, idx) in subItem"
63
+ :key="idx"
64
+ class="flex gap-2 items-center"
65
+ >
66
+ <nuxt-link-locale
67
+ class="text-xs/5 lg:font-medium flex gap-2 items-center cursor-pointer"
68
+ :to="link.link?.replace(/\/$/, '')"
69
+ >
70
+ {{ t(link.title) }}
71
+ </nuxt-link-locale>
72
+
73
+ <div v-if="link.isNew" class="text-[9px]/1 font-bold px-1 py-1.5 rounded-sm bg-white/20">
74
+ NEW
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </transition>
80
+ </div>
81
+ </template>
82
+
83
+ <style scoped>
84
+ .accordion-enter-active,.accordion-leave-active{overflow:hidden;transition:height .3s ease,opacity .3s ease,margin .3s ease}.accordion-enter-from,.accordion-leave-to{height:0!important;margin:0!important;opacity:0!important}
85
+ </style>
@@ -0,0 +1,11 @@
1
+ interface Item {
2
+ title: string;
3
+ link: string;
4
+ }
5
+ interface Props {
6
+ label: string;
7
+ link: string;
8
+ content: Item[];
9
+ }
10
+ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -344,6 +344,33 @@ declare const _default: {
344
344
  title: string;
345
345
  };
346
346
  LLP: string;
347
+ slogan: string;
348
+ newVersion: {
349
+ services: {
350
+ title: string;
351
+ counterparties: string;
352
+ compliance: string;
353
+ edo: string;
354
+ ved: string;
355
+ procurement: string;
356
+ fines: string;
357
+ work: string;
358
+ analytics: string;
359
+ };
360
+ useful: {
361
+ title: string;
362
+ apiDescription: string;
363
+ userAgreement: string;
364
+ privacyPolicy: string;
365
+ vacancies: string;
366
+ companyDirectory: string;
367
+ };
368
+ contacts: {
369
+ title: string;
370
+ address: string;
371
+ goToChat: string;
372
+ };
373
+ };
347
374
  };
348
375
  our_clients: {
349
376
  title: string;
@@ -891,6 +918,33 @@ declare const _default: {
891
918
  title: string;
892
919
  };
893
920
  LLP: string;
921
+ slogan: string;
922
+ newVersion: {
923
+ services: {
924
+ title: string;
925
+ counterparties: string;
926
+ compliance: string;
927
+ edo: string;
928
+ ved: string;
929
+ procurement: string;
930
+ fines: string;
931
+ work: string;
932
+ analytics: string;
933
+ };
934
+ useful: {
935
+ title: string;
936
+ apiDescription: string;
937
+ userAgreement: string;
938
+ privacyPolicy: string;
939
+ vacancies: string;
940
+ companyDirectory: string;
941
+ };
942
+ contacts: {
943
+ title: string;
944
+ address: string;
945
+ goToChat: string;
946
+ };
947
+ };
894
948
  };
895
949
  our_clients: {
896
950
  title: string;
@@ -1438,6 +1492,33 @@ declare const _default: {
1438
1492
  title: string;
1439
1493
  };
1440
1494
  LLP: string;
1495
+ slogan: string;
1496
+ newVersion: {
1497
+ services: {
1498
+ title: string;
1499
+ counterparties: string;
1500
+ compliance: string;
1501
+ edo: string;
1502
+ ved: string;
1503
+ procurement: string;
1504
+ fines: string;
1505
+ work: string;
1506
+ analytics: string;
1507
+ };
1508
+ useful: {
1509
+ title: string;
1510
+ apiDescription: string;
1511
+ userAgreement: string;
1512
+ privacyPolicy: string;
1513
+ vacancies: string;
1514
+ companyDirectory: string;
1515
+ };
1516
+ contacts: {
1517
+ title: string;
1518
+ address: string;
1519
+ goToChat: string;
1520
+ };
1521
+ };
1441
1522
  };
1442
1523
  our_clients: {
1443
1524
  title: string;
@@ -338,6 +338,33 @@ declare const RuLocale: {
338
338
  title: string;
339
339
  };
340
340
  LLP: string;
341
+ slogan: string;
342
+ newVersion: {
343
+ services: {
344
+ title: string;
345
+ counterparties: string;
346
+ compliance: string;
347
+ edo: string;
348
+ ved: string;
349
+ procurement: string;
350
+ fines: string;
351
+ work: string;
352
+ analytics: string;
353
+ };
354
+ useful: {
355
+ title: string;
356
+ apiDescription: string;
357
+ userAgreement: string;
358
+ privacyPolicy: string;
359
+ vacancies: string;
360
+ companyDirectory: string;
361
+ };
362
+ contacts: {
363
+ title: string;
364
+ address: string;
365
+ goToChat: string;
366
+ };
367
+ };
341
368
  };
342
369
  our_clients: {
343
370
  title: string;
@@ -331,7 +331,34 @@ const RuLocale = {
331
331
  compliance: {
332
332
  title: "\u041A\u043E\u043C\u043F\u043B\u0430\u0435\u043D\u0441"
333
333
  },
334
- LLP: "\u0422\u041E\u041E"
334
+ LLP: "\u0422\u041E\u041E",
335
+ slogan: "\u0415\u0434\u0438\u043D\u043E\u0435 \u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0434\u0435\u043B\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447",
336
+ newVersion: {
337
+ services: {
338
+ title: "\u0421\u0435\u0440\u0432\u0438\u0441\u044B",
339
+ counterparties: "\u041A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u044B",
340
+ compliance: "\u041A\u043E\u043C\u043F\u043B\u0430\u0435\u043D\u0441",
341
+ edo: "\u042D\u0414\u041E",
342
+ ved: "\u0412\u042D\u0414",
343
+ procurement: "\u0417\u0430\u043A\u0443\u043F\u043A\u0438",
344
+ fines: "\u0428\u0442\u0440\u0430\u0444\u044B",
345
+ work: "\u0420\u0430\u0431\u043E\u0442\u0430",
346
+ analytics: "\u0410\u043D\u0430\u043B\u0438\u0442\u0438\u043A\u0430"
347
+ },
348
+ useful: {
349
+ title: "\u041F\u043E\u043B\u0435\u0437\u043D\u043E\u0435",
350
+ apiDescription: "\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 API",
351
+ userAgreement: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0435",
352
+ privacyPolicy: "\u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u0438",
353
+ vacancies: "\u0412\u0430\u043A\u0430\u043D\u0441\u0438\u0438",
354
+ companyDirectory: "\u041A\u0430\u0442\u0430\u043B\u043E\u0433 \u043F\u0440\u0435\u0434\u043F\u0440\u0438\u044F\u0442\u0438\u0439"
355
+ },
356
+ contacts: {
357
+ title: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B",
358
+ address: "\u041A\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043D, \u0433. \u0410\u043B\u043C\u0430\u0442\u044B, \u0443\u043B.\u0425\u043E\u0434\u0436\u0430\u043D\u043E\u0432\u0430, 79",
359
+ goToChat: "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0447\u0430\u0442 \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439"
360
+ }
361
+ }
335
362
  },
336
363
  our_clients: {
337
364
  title: "\u041D\u0430\u043C \u0434\u043E\u0432\u0435\u0440\u044F\u044E\u0442"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adata-ui",
3
- "version": "4.0.54",
3
+ "version": "4.0.56",
4
4
  "description": "Adata UI",
5
5
  "repository": "your-org/my-module",
6
6
  "license": "MIT",