adata-ui 3.1.14 → 3.1.16

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": "3.1.14",
8
+ "version": "3.1.16",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "1.0.1",
11
11
  "unbuild": "3.5.0"
@@ -201,7 +201,9 @@ const contactLinks = {
201
201
  </div>
202
202
 
203
203
  <!-- contactLinks -->
204
- <div class="flex flex-col gap-2 items-start">
204
+ <!--noindex-->
205
+
206
+ <div class="flex flex-col gap-2 items-start" data-nosnippet>
205
207
  <nuxt-link-locale
206
208
  class="text-sm font-semibold pb-3 pr-4 border-b border-b-[0.5px] border-white cursor-default"
207
209
  :class="{ 'cursor-pointer': contactLinks.link }"
@@ -242,6 +244,7 @@ const contactLinks = {
242
244
  </div>
243
245
  </div>
244
246
  </div>
247
+ <!--/noindex-->
245
248
  </div>
246
249
 
247
250
  <div class="lg:hidden flex gap-8 flex-wrap">
@@ -0,0 +1,105 @@
1
+ <script setup>
2
+ import { onMounted, onUnmounted } from "#imports";
3
+ const props = defineProps({
4
+ features: { type: Array, required: true }
5
+ });
6
+ const selected = defineModel({ type: Number, ...{ default: 0 } });
7
+ const duration = 5e3;
8
+ let timer = null;
9
+ const nextFeature = () => {
10
+ selected.value = (selected.value + 1) % props.features.length;
11
+ startTimer();
12
+ };
13
+ const startTimer = () => {
14
+ clearTimer();
15
+ timer = setTimeout(() => {
16
+ nextFeature();
17
+ }, duration);
18
+ };
19
+ const clearTimer = () => {
20
+ if (timer) {
21
+ clearTimeout(timer);
22
+ timer = null;
23
+ }
24
+ };
25
+ function selectFeature(idx) {
26
+ selected.value = idx;
27
+ startTimer();
28
+ }
29
+ onMounted(() => startTimer());
30
+ onUnmounted(() => clearTimer());
31
+ </script>
32
+
33
+ <template>
34
+ <div
35
+ v-for="(item, idx) in features"
36
+ :key="idx"
37
+ class="relative flex flex-col pl-3 cursor-pointer"
38
+ @click="selectFeature(idx)"
39
+ >
40
+ <div
41
+ v-if="selected === idx"
42
+ class="absolute left-0 top-0 w-[2px] bg-blue-700 dark:bg-blue-500 z-20 h-full rounded-full"
43
+ :class="{ 'fill-animation': selected === idx }"
44
+ />
45
+
46
+ <div
47
+ class="absolute left-0 top-0 w-[2px] bg-gray-500/50 z-10 h-full rounded-full"
48
+ />
49
+
50
+ <div class="flex items-center gap-2 relative z-10">
51
+ <div
52
+ :class="[
53
+ 'transition-all duration-300 ease-in-out',
54
+ selected === idx ? 'rounded-md bg-blue-700 dark:bg-blue-500 p-2 icon-bg' : 'size-fit'
55
+ ]"
56
+ >
57
+ <component
58
+ :is="item.icon"
59
+ class="shrink-0 size-6 transition-colors duration-300 ease-in-out"
60
+ :class="selected === idx ? 'text-white dark:text-gray-900' : 'text-gray-600 dark:text-gray-200'"
61
+ />
62
+ </div>
63
+ <p
64
+ class="font-semibold text-base lg:text-xl transition-colors duration-300 ease-in-out"
65
+ :class="selected === idx ? 'dark:text-[#E3E5E8]' : 'text-gray-600 dark:text-gray-200'"
66
+ >
67
+ {{ item.title }}
68
+ </p>
69
+ </div>
70
+
71
+ <adt-transitions-transition-height
72
+ :transition="{
73
+ enterActiveClass: 'overflow-hidden transition-[height] duration-[1s] ease-in-out',
74
+ leaveActiveClass: 'overflow-hidden transition-[height] duration-[1s] ease-in-out'
75
+ }"
76
+ >
77
+ <div
78
+ v-if="selected === idx"
79
+ >
80
+ <p class="text-xs lg:text-sm pt-3">
81
+ {{ item.description }}
82
+ </p>
83
+ </div>
84
+ </adt-transitions-transition-height>
85
+ </div>
86
+ </template>
87
+
88
+ <style scoped>
89
+ .icon-bg {
90
+ box-shadow: -4px 4px 0px 0px rgba(0, 122, 255, 0.1019607843);
91
+ }
92
+
93
+ .fill-animation {
94
+ animation: borderFill 5s linear forwards;
95
+ }
96
+
97
+ @keyframes borderFill {
98
+ 0% {
99
+ height: 0;
100
+ }
101
+ 100% {
102
+ height: 100%;
103
+ }
104
+ }
105
+ </style>
@@ -0,0 +1,18 @@
1
+ import type { Component } from 'vue';
2
+ interface FeatureInfo {
3
+ icon: Component;
4
+ title: string;
5
+ description: string;
6
+ }
7
+ type __VLS_Props = {
8
+ features: FeatureInfo[];
9
+ };
10
+ type __VLS_PublicProps = __VLS_Props & {
11
+ modelValue?: number;
12
+ };
13
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ "update:modelValue": (value: number) => any;
15
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
16
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ export default _default;
@@ -43,7 +43,8 @@ const newContacts = computed(() => contacts.value.map((item) => ({
43
43
  </script>
44
44
 
45
45
  <template>
46
- <div class="h-[272px]">
46
+ <!--noindex-->
47
+ <div class="h-[272px]" data-nosnippet>
47
48
  <h2 class="heading-02 mb-4">
48
49
  {{ t("header.contacts.almaty.title") }}
49
50
  </h2>
@@ -117,4 +118,5 @@ const newContacts = computed(() => contacts.value.map((item) => ({
117
118
  </div>
118
119
  </div>
119
120
  </div>
121
+ <!--/noindex-->
120
122
  </template>
@@ -33,7 +33,8 @@ const AstanaItems = [
33
33
  </script>
34
34
 
35
35
  <template>
36
- <div class="h-[272px]">
36
+ <!--noindex-->
37
+ <div class="h-[272px]" data-nosnippet>
37
38
  <h2 class="heading-02 mb-4">
38
39
  {{ t("header.contacts.astana.title") }}
39
40
  </h2>
@@ -62,4 +63,5 @@ const AstanaItems = [
62
63
  </div>
63
64
  </div>
64
65
  </div>
66
+ <!--/noindex-->
65
67
  </template>
@@ -1,28 +1,31 @@
1
1
  <script setup>
2
- import { computed, onMounted, onUnmounted, ref, useI18n } from "#imports";
2
+ import { PAGES } from "../../shared/constants/pages";
3
+ import { computed, onMounted, onUnmounted, ref, useAppConfig, useI18n } from "#imports";
3
4
  import ArrowSideUp from "#icons/arrow/arrow-side-up.vue";
4
5
  import { IArrowCircleDown, IGlobe, IId } from "#components";
5
6
  const { t } = useI18n();
7
+ const appConfig = useAppConfig();
8
+ const mode = appConfig.adataUI.mode;
6
9
  const items = computed(() => {
7
10
  return [
8
11
  {
9
12
  title: "header.products.galleryCards.unload.title",
10
13
  subtitle: "header.products.galleryCards.unload.subtitle",
11
- to: "/",
14
+ to: `https://pk.${mode}.kz` + PAGES.pk.unload,
12
15
  image: "/header/unload.webp",
13
16
  icon: IArrowCircleDown
14
17
  },
15
18
  {
16
19
  title: "header.products.galleryCards.compliance.title",
17
20
  subtitle: "header.products.galleryCards.compliance.subtitle",
18
- to: "/",
21
+ to: `https://ac.${mode}.kz`,
19
22
  image: "/header/compliance.webp",
20
23
  icon: IId
21
24
  },
22
25
  {
23
26
  title: "header.products.galleryCards.ved.title",
24
27
  subtitle: "header.products.galleryCards.ved.subtitle",
25
- to: "/",
28
+ to: `https://tnved.${mode}.kz`,
26
29
  image: "/header/ved.webp",
27
30
  icon: IGlobe
28
31
  }
@@ -103,7 +106,7 @@ onUnmounted(() => clearTimer());
103
106
  <img
104
107
  :src="items[currentIndex].image"
105
108
  class="size-full object-cover rounded-2xl"
106
- />
109
+ >
107
110
  <nuxt-link :to="items[currentIndex].to">
108
111
  <div class="absolute bottom-0 rounded-2xl 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">
109
112
  <div class="flex flex-col gap-2">
@@ -2,7 +2,7 @@
2
2
  import { PAGES } from "../../shared/constants/pages";
3
3
  import NavList from "./NavList.vue";
4
4
  import CardGallery from "./CardGallery.vue";
5
- import { useI18n, useAppConfig, useRequestURL } from "#imports";
5
+ import { useI18n, useAppConfig, useRequestURL, computed } from "#imports";
6
6
  import IUsersThree from "#icons/users/users-three.vue";
7
7
  import ISearch from "#icons/search.vue";
8
8
  import IArrowCircleDown from "#icons/arrow/arrow-circle-down.vue";
@@ -42,7 +42,7 @@ const appConfig = useAppConfig();
42
42
  const mode = appConfig.adataUI.mode;
43
43
  const pageUrl = useRequestURL();
44
44
  defineEmits(["outerClick", "mouseOver"]);
45
- const filteredItems = [
45
+ const filteredItems = computed(() => [
46
46
  {
47
47
  key: "edo",
48
48
  is_new: true,
@@ -274,7 +274,7 @@ const filteredItems = [
274
274
  }
275
275
  ]
276
276
  }
277
- ];
277
+ ]);
278
278
  function isCurrentModule(currentModule) {
279
279
  if (currentModule === "fines") return "avto";
280
280
  if (currentModule === "analytics") return "analytics-new";
@@ -0,0 +1,26 @@
1
+ <script setup>
2
+ const props = defineProps({
3
+ photos: { type: Array, required: true }
4
+ });
5
+ const getAnimationClass = (index) => {
6
+ if (props.photos.length === 1) return "fade-in";
7
+ const directions = ["from-top", "from-right", "from-bottom", "from-left"];
8
+ return directions[index % 4];
9
+ };
10
+ </script>
11
+
12
+ <template>
13
+ <div class="relative size-full">
14
+ <img
15
+ v-for="(photo, index) in photos"
16
+ :key="index"
17
+ :src="photo.src"
18
+ :alt="photo.src"
19
+ :class="['photo', getAnimationClass(index), photo.classes]"
20
+ >
21
+ </div>
22
+ </template>
23
+
24
+ <style scoped>
25
+ .photo{animation:fadeSlide 1s forwards;opacity:0;position:absolute;transform:translate(0)}.fade-in{animation:fadeOnly 1s forwards}.from-top{animation-name:slideFromTop}.from-right{animation-name:slideFromRight}.from-bottom{animation-name:slideFromBottom}.from-left{animation-name:slideFromLeft}@keyframes fadeOnly{0%{opacity:0}to{opacity:1}}@keyframes slideFromTop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideFromBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideFromLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.photo{animation-duration:1s;animation-fill-mode:forwards}
26
+ </style>
@@ -0,0 +1,9 @@
1
+ interface Photo {
2
+ src: string;
3
+ classes: string;
4
+ }
5
+ type __VLS_Props = {
6
+ photos: Photo[];
7
+ };
8
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ export default _default;
@@ -0,0 +1,58 @@
1
+ <script setup>
2
+ import { twMerge } from "tailwind-merge";
3
+ import { computed } from "#imports";
4
+ const props = defineProps({
5
+ transition: { type: Object, required: false }
6
+ });
7
+ const ui = {
8
+ transition: {
9
+ enterActiveClass: "overflow-hidden transition-[height] duration-200 ease-out",
10
+ leaveActiveClass: "overflow-hidden transition-[height] duration-200 ease-out"
11
+ }
12
+ };
13
+ const mergedUi = computed(() => ({
14
+ transition: {
15
+ enterActiveClass: twMerge(
16
+ ui.transition.enterActiveClass,
17
+ props.transition?.enterActiveClass
18
+ ),
19
+ leaveActiveClass: twMerge(
20
+ ui.transition.leaveActiveClass,
21
+ props.transition?.leaveActiveClass
22
+ )
23
+ }
24
+ }));
25
+ function onEnter(_el, done) {
26
+ const el = _el;
27
+ el.style.height = "0";
28
+ el.offsetHeight;
29
+ el.style.height = el.scrollHeight + "px";
30
+ el.addEventListener("transitionend", done, { once: true });
31
+ }
32
+ function onBeforeLeave(_el) {
33
+ const el = _el;
34
+ el.style.height = el.scrollHeight + "px";
35
+ el.offsetHeight;
36
+ }
37
+ function onAfterEnter(_el) {
38
+ const el = _el;
39
+ el.style.height = "auto";
40
+ }
41
+ function onLeave(_el, done) {
42
+ const el = _el;
43
+ el.style.height = "0";
44
+ el.addEventListener("transitionend", done, { once: true });
45
+ }
46
+ </script>
47
+
48
+ <template>
49
+ <Transition
50
+ v-bind="mergedUi.transition"
51
+ @enter="onEnter"
52
+ @after-enter="onAfterEnter"
53
+ @before-leave="onBeforeLeave"
54
+ @leave="onLeave"
55
+ >
56
+ <slot />
57
+ </Transition>
58
+ </template>
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ transition?: {
3
+ enterActiveClass?: string;
4
+ leaveActiveClass?: string;
5
+ };
6
+ };
7
+ declare var __VLS_12: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_12) => any;
10
+ };
11
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
@@ -199,6 +199,14 @@ declare const _default: {
199
199
  t: string;
200
200
  st: string;
201
201
  };
202
+ importerMap: {
203
+ t: string;
204
+ st: string;
205
+ };
206
+ containers: {
207
+ t: string;
208
+ st: string;
209
+ };
202
210
  };
203
211
  };
204
212
  compliance: {
@@ -755,6 +763,14 @@ declare const _default: {
755
763
  t: string;
756
764
  st: string;
757
765
  };
766
+ importerMap: {
767
+ t: string;
768
+ st: string;
769
+ };
770
+ containers: {
771
+ t: string;
772
+ st: string;
773
+ };
758
774
  };
759
775
  };
760
776
  compliance: {
@@ -1311,6 +1327,14 @@ declare const _default: {
1311
1327
  t: string;
1312
1328
  st: string;
1313
1329
  };
1330
+ importerMap: {
1331
+ t: string;
1332
+ st: string;
1333
+ };
1334
+ containers: {
1335
+ t: string;
1336
+ st: string;
1337
+ };
1314
1338
  };
1315
1339
  };
1316
1340
  compliance: {
@@ -192,6 +192,14 @@ const EnLocale = {
192
192
  tr: {
193
193
  t: "International market and tariffs",
194
194
  st: "Customs Tariffs and Quotas. Measures for Protecting the Domestic Market. Regulatory Requirements"
195
+ },
196
+ importerMap: {
197
+ t: "Map of importers",
198
+ st: ""
199
+ },
200
+ containers: {
201
+ t: "Container Tracking",
202
+ st: ""
195
203
  }
196
204
  }
197
205
  },
@@ -192,6 +192,14 @@ const KkLocale = {
192
192
  tr: {
193
193
  t: "\u0425\u0430\u043B\u044B\u049B\u0430\u0440\u0430\u043B\u044B\u049B \u043D\u0430\u0440\u044B\u049B \u0436\u04D9\u043D\u0435 \u0442\u0430\u0440\u0438\u0444\u0442\u0435\u0440",
194
194
  st: "\u041A\u0435\u0434\u0435\u043D\u0434\u0456\u043A \u0442\u0430\u0440\u0438\u0444\u0442\u0435\u0440 \u043C\u0435\u043D \u043A\u0432\u043E\u0442\u0430\u043B\u0430\u0440. \u0406\u0448\u043A\u0456 \u043D\u0430\u0440\u044B\u049B\u0442\u044B \u049B\u043E\u0440\u0493\u0430\u0443 \u0448\u0430\u0440\u0430\u043B\u0430\u0440\u044B. \u041D\u043E\u0440\u043C\u0430\u0442\u0438\u0432\u0442\u0456\u043A \u0442\u0430\u043B\u0430\u043F\u0442\u0430\u0440"
195
+ },
196
+ importerMap: {
197
+ t: "\u0418\u043C\u043F\u043E\u0440\u0442\u0442\u0430\u0443\u0448\u044B\u043D\u044B\u04A3 \u043A\u0430\u0440\u0442\u0430\u0441\u044B",
198
+ st: ""
199
+ },
200
+ containers: {
201
+ t: "\u041A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u043B\u0435\u0440\u0434\u0456 \u0431\u0430\u049B\u044B\u043B\u0430\u0443",
202
+ st: ""
195
203
  }
196
204
  }
197
205
  },
@@ -193,6 +193,14 @@ declare const RuLocale: {
193
193
  t: string;
194
194
  st: string;
195
195
  };
196
+ importerMap: {
197
+ t: string;
198
+ st: string;
199
+ };
200
+ containers: {
201
+ t: string;
202
+ st: string;
203
+ };
196
204
  };
197
205
  };
198
206
  compliance: {
@@ -186,6 +186,14 @@ const RuLocale = {
186
186
  tr: {
187
187
  t: "\u041C\u0435\u0436\u0434\u0443\u043D\u0430\u0440\u043E\u0434\u043D\u044B\u0439 \u0440\u044B\u043D\u043E\u043A \u0438 \u0442\u0430\u0440\u0438\u0444\u044B",
188
188
  st: "\u0422\u0430\u043C\u043E\u0436\u0435\u043D\u043D\u044B\u0435 \u0442\u0430\u0440\u0438\u0444\u044B \u0438 \u043A\u0432\u043E\u0442\u044B. \u041C\u0435\u0440\u044B \u0437\u0430\u0449\u0438\u0442\u044B \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0435\u0433\u043E \u0440\u044B\u043D\u043A\u0430. \u041D\u043E\u0440\u043C\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F"
189
+ },
190
+ importerMap: {
191
+ t: "\u041A\u0430\u0440\u0442\u0430 \u0438\u043C\u043F\u043E\u0440\u0442\u0435\u0440\u0430",
192
+ st: ""
193
+ },
194
+ containers: {
195
+ t: "\u041E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u043E\u0432",
196
+ st: ""
189
197
  }
190
198
  }
191
199
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adata-ui",
3
- "version": "3.1.14",
3
+ "version": "3.1.16",
4
4
  "description": "Adata UI",
5
5
  "repository": "your-org/my-module",
6
6
  "license": "MIT",