adata-ui 4.0.36 → 4.0.37

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 (50) hide show
  1. package/README.md +84 -84
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/components/Alert.vue +26 -26
  4. package/dist/runtime/components/Header.vue.d.ts +1 -1
  5. package/dist/runtime/components/Tag.vue +4 -4
  6. package/dist/runtime/components/accordion/Accordion.vue.d.ts +1 -1
  7. package/dist/runtime/components/button/Button.vue +1 -1
  8. package/dist/runtime/components/button/Button.vue.d.ts +2 -2
  9. package/dist/runtime/components/forms/input/textarea/ATextarea.vue.d.ts +1 -1
  10. package/dist/runtime/components/header/NavList.vue +45 -2
  11. package/dist/runtime/components/header/NavList.vue.d.ts +2 -0
  12. package/dist/runtime/components/header/ProductMenu.vue +31 -3
  13. package/dist/runtime/components/header/ProfileMenu.vue +13 -210
  14. package/dist/runtime/components/header/ProfileMenuContent.vue +227 -0
  15. package/dist/runtime/components/header/ProfileMenuContent.vue.d.ts +16 -0
  16. package/dist/runtime/components/mobile-navigation/BottomNavigation.vue +78 -0
  17. package/dist/runtime/components/mobile-navigation/BottomNavigation.vue.d.ts +29 -0
  18. package/dist/runtime/components/mobile-navigation/MainButton.vue +16 -0
  19. package/dist/runtime/components/mobile-navigation/MainButton.vue.d.ts +2 -0
  20. package/dist/runtime/components/mobile-navigation/MobileProductMenu.vue +261 -0
  21. package/dist/runtime/components/pill-tabs/PillTabs.vue.d.ts +1 -1
  22. package/dist/runtime/components/row-card/RowCard.vue +1 -1
  23. package/dist/runtime/composables/projectState.d.ts +2 -1
  24. package/dist/runtime/composables/projectState.js +1 -0
  25. package/dist/runtime/i18n/i18n.config.d.ts +24 -0
  26. package/dist/runtime/i18n.d.ts +1 -1
  27. package/dist/runtime/icons/avatar.vue +41 -0
  28. package/dist/runtime/icons/avatar.vue.d.ts +2 -0
  29. package/dist/runtime/icons/file/file.vue.d.ts +2 -0
  30. package/dist/runtime/icons/file/files.vue +17 -0
  31. package/dist/runtime/icons/file/files.vue.d.ts +2 -0
  32. package/dist/runtime/icons/invoice.vue +35 -0
  33. package/dist/runtime/icons/invoice.vue.d.ts +2 -0
  34. package/dist/runtime/icons/menu/menu-filled.vue +61 -0
  35. package/dist/runtime/icons/menu/menu-filled.vue.d.ts +2 -0
  36. package/dist/runtime/icons/menu/menu.vue +41 -0
  37. package/dist/runtime/icons/menu/menu.vue.d.ts +2 -0
  38. package/dist/runtime/icons/notifications.vue +25 -0
  39. package/dist/runtime/icons/notifications.vue.d.ts +2 -0
  40. package/dist/runtime/icons/warning-triangle.vue +29 -29
  41. package/dist/runtime/lang/en.js +8 -0
  42. package/dist/runtime/lang/kk.js +8 -0
  43. package/dist/runtime/lang/ru.d.ts +8 -0
  44. package/dist/runtime/lang/ru.js +8 -0
  45. package/dist/runtime/server/tsconfig.json +3 -3
  46. package/dist/runtime/shared/constants/pages.d.ts +3 -0
  47. package/dist/runtime/shared/constants/pages.js +3 -0
  48. package/package.json +1 -1
  49. /package/dist/runtime/{icons/file.vue.d.ts → components/mobile-navigation/MobileProductMenu.vue.d.ts} +0 -0
  50. /package/dist/runtime/icons/{file.vue → file/file.vue} +0 -0
package/README.md CHANGED
@@ -1,84 +1,84 @@
1
- <!--
2
- Get your module up and running quickly.
3
-
4
- Find and replace all on all files (CMD+SHIFT+F):
5
- - Name: My Module
6
- - Package name: my-module
7
- - Description: My new Nuxt module
8
- -->
9
-
10
- # My Module
11
-
12
- [![npm version][npm-version-src]][npm-version-href]
13
- [![npm downloads][npm-downloads-src]][npm-downloads-href]
14
- [![License][license-src]][license-href]
15
- [![Nuxt][nuxt-src]][nuxt-href]
16
-
17
- My new Nuxt module for doing amazing things.
18
-
19
- - [✨ &nbsp;Release Notes](/CHANGELOG.md)
20
- <!-- - [🏀 Online playground](https://stackblitz.com/github/your-org/my-module?file=playground%2Fapp.vue) -->
21
- <!-- - [📖 &nbsp;Documentation](https://example.com) -->
22
-
23
- ## Features
24
-
25
- <!-- Highlight some of the features your module provide here -->
26
- - ⛰ &nbsp;Foo
27
- - 🚠 &nbsp;Bar
28
- - 🌲 &nbsp;Baz
29
-
30
- ## Quick Setup
31
-
32
- Install the module to your Nuxt application with one command:
33
-
34
- ```bash
35
- npx nuxi module add my-module
36
- ```
37
-
38
- That's it! You can now use My Module in your Nuxt app ✨
39
-
40
-
41
- ## Contribution
42
-
43
- <details>
44
- <summary>Local development</summary>
45
-
46
- ```bash
47
- # Install dependencies
48
- npm install
49
-
50
- # Generate type stubs
51
- npm run dev:prepare
52
-
53
- # Develop with the playground
54
- npm run dev
55
-
56
- # Build the playground
57
- npm run dev:build
58
-
59
- # Run ESLint
60
- npm run lint
61
-
62
- # Run Vitest
63
- npm run test
64
- npm run test:watch
65
-
66
- # Release new version
67
- npm run release
68
- ```
69
-
70
- </details>
71
-
72
-
73
- <!-- Badges -->
74
- [npm-version-src]: https://img.shields.io/npm/v/my-module/latest.svg?style=flat&colorA=020420&colorB=00DC82
75
- [npm-version-href]: https://npmjs.com/package/my-module
76
-
77
- [npm-downloads-src]: https://img.shields.io/npm/dm/my-module.svg?style=flat&colorA=020420&colorB=00DC82
78
- [npm-downloads-href]: https://npm.chart.dev/my-module
79
-
80
- [license-src]: https://img.shields.io/npm/l/my-module.svg?style=flat&colorA=020420&colorB=00DC82
81
- [license-href]: https://npmjs.com/package/my-module
82
-
83
- [nuxt-src]: https://img.shields.io/badge/Nuxt-020420?logo=nuxt.js
84
- [nuxt-href]: https://nuxt.com
1
+ <!--
2
+ Get your module up and running quickly.
3
+
4
+ Find and replace all on all files (CMD+SHIFT+F):
5
+ - Name: My Module
6
+ - Package name: my-module
7
+ - Description: My new Nuxt module
8
+ -->
9
+
10
+ # My Module
11
+
12
+ [![npm version][npm-version-src]][npm-version-href]
13
+ [![npm downloads][npm-downloads-src]][npm-downloads-href]
14
+ [![License][license-src]][license-href]
15
+ [![Nuxt][nuxt-src]][nuxt-href]
16
+
17
+ My new Nuxt module for doing amazing things.
18
+
19
+ - [✨ &nbsp;Release Notes](/CHANGELOG.md)
20
+ <!-- - [🏀 Online playground](https://stackblitz.com/github/your-org/my-module?file=playground%2Fapp.vue) -->
21
+ <!-- - [📖 &nbsp;Documentation](https://example.com) -->
22
+
23
+ ## Features
24
+
25
+ <!-- Highlight some of the features your module provide here -->
26
+ - ⛰ &nbsp;Foo
27
+ - 🚠 &nbsp;Bar
28
+ - 🌲 &nbsp;Baz
29
+
30
+ ## Quick Setup
31
+
32
+ Install the module to your Nuxt application with one command:
33
+
34
+ ```bash
35
+ npx nuxi module add my-module
36
+ ```
37
+
38
+ That's it! You can now use My Module in your Nuxt app ✨
39
+
40
+
41
+ ## Contribution
42
+
43
+ <details>
44
+ <summary>Local development</summary>
45
+
46
+ ```bash
47
+ # Install dependencies
48
+ npm install
49
+
50
+ # Generate type stubs
51
+ npm run dev:prepare
52
+
53
+ # Develop with the playground
54
+ npm run dev
55
+
56
+ # Build the playground
57
+ npm run dev:build
58
+
59
+ # Run ESLint
60
+ npm run lint
61
+
62
+ # Run Vitest
63
+ npm run test
64
+ npm run test:watch
65
+
66
+ # Release new version
67
+ npm run release
68
+ ```
69
+
70
+ </details>
71
+
72
+
73
+ <!-- Badges -->
74
+ [npm-version-src]: https://img.shields.io/npm/v/my-module/latest.svg?style=flat&colorA=020420&colorB=00DC82
75
+ [npm-version-href]: https://npmjs.com/package/my-module
76
+
77
+ [npm-downloads-src]: https://img.shields.io/npm/dm/my-module.svg?style=flat&colorA=020420&colorB=00DC82
78
+ [npm-downloads-href]: https://npm.chart.dev/my-module
79
+
80
+ [license-src]: https://img.shields.io/npm/l/my-module.svg?style=flat&colorA=020420&colorB=00DC82
81
+ [license-href]: https://npmjs.com/package/my-module
82
+
83
+ [nuxt-src]: https://img.shields.io/badge/Nuxt-020420?logo=nuxt.js
84
+ [nuxt-href]: https://nuxt.com
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.36",
8
+ "version": "4.0.37",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "1.0.1",
11
11
  "unbuild": "3.5.0"
@@ -1,30 +1,30 @@
1
1
  <template>
2
- <div
3
- class="inline-flex w-full rounded-md"
4
- :class="twMerge(colorOptions.description[color], textBgClasses)"
5
- >
6
- <div
7
- class="flex items-center justify-center rounded-l-md"
8
- :class="twMerge([colorOptions.icon[color], sizeOptions[size]], iconBgClasses)"
9
- >
10
- <slot name="icon">
11
- <i-info-circle
12
- v-if="iconType == 'circle'"
13
- :class="`w-[${iconSize}] h-[${iconSize}]`"
14
- />
15
- <i-warning-triangle
16
- v-if="iconType == 'triangle'"
17
- :class="`w-[${iconSize}] h-[${iconSize}]`"
18
- />
19
- </slot>
20
- </div>
21
- <div
22
- :class="sizeOptions[size]"
23
- class="rounded-r-md flex items-center"
24
- >
25
- <slot name="default" />
26
- </div>
27
- </div>
2
+ <div
3
+ class="inline-flex w-full rounded-md"
4
+ :class="twMerge(colorOptions.description[color], textBgClasses)"
5
+ >
6
+ <div
7
+ class="flex items-center justify-center rounded-l-md"
8
+ :class="twMerge([colorOptions.icon[color], sizeOptions[size]], iconBgClasses)"
9
+ >
10
+ <slot name="icon">
11
+ <i-info-circle
12
+ v-if="iconType == 'circle'"
13
+ :class="`w-[${iconSize}] h-[${iconSize}]`"
14
+ />
15
+ <i-warning-triangle
16
+ v-if="iconType == 'triangle'"
17
+ :class="`w-[${iconSize}] h-[${iconSize}]`"
18
+ />
19
+ </slot>
20
+ </div>
21
+ <div
22
+ :class="sizeOptions[size]"
23
+ class="rounded-r-md flex items-center"
24
+ >
25
+ <slot name="default" />
26
+ </div>
27
+ </div>
28
28
  </template>
29
29
 
30
30
  <script setup>
@@ -26,10 +26,10 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {},
26
26
  daysRemaining: number;
27
27
  limitRemaining: number;
28
28
  isAuthenticated: boolean;
29
+ mobileHeaderType: "search" | "default";
29
30
  module: ProjectKeys;
30
31
  rate: string;
31
32
  balance: number;
32
- mobileHeaderType: "search" | "default";
33
33
  showLogIn: boolean;
34
34
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
35
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
@@ -39,8 +39,8 @@ const typeSwitchValues = {
39
39
  </script>
40
40
 
41
41
  <template>
42
- <div :class="[[classes], customClasses]">
43
- <slot name="point" />
44
- <slot />
45
- </div>
42
+ <div :class="[[classes], customClasses]">
43
+ <slot name="point" />
44
+ <slot />
45
+ </div>
46
46
  </template>
@@ -28,8 +28,8 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
28
28
  size: import("./types.js").Size;
29
29
  color: import("./types.js").Color;
30
30
  disabled: boolean;
31
- slot: string;
32
31
  defaultOpen: boolean;
32
+ slot: string;
33
33
  divider: boolean;
34
34
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
35
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
@@ -8,7 +8,7 @@ const props = defineProps({
8
8
  view: { type: String, required: false, default: "default" },
9
9
  size: { type: String, required: false, default: "lg" },
10
10
  form: { type: String, required: false, default: "button" },
11
- icon: { type: null, required: false },
11
+ icon: { type: [Object, Function], required: false },
12
12
  iconClass: { type: String, required: false, default: "" },
13
13
  loading: { type: Boolean, required: false, default: false },
14
14
  disabled: { type: Boolean, required: false, default: false },
@@ -21,12 +21,12 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {},
21
21
  disabled: boolean;
22
22
  active: boolean;
23
23
  view: "default" | "outline" | "transparent";
24
+ to: string;
25
+ loading: boolean;
24
26
  variant: "primary" | "success" | "danger" | "gray" | "ghost";
25
27
  form: "icon" | "button";
26
28
  iconClass: string;
27
- loading: boolean;
28
29
  block: boolean;
29
- to: string;
30
30
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
31
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
32
32
  export default _default;
@@ -24,9 +24,9 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
24
24
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
25
25
  }>, {
26
26
  size: "sm" | "md";
27
+ error: string | boolean;
27
28
  disabled: boolean;
28
29
  required: boolean;
29
- error: string | boolean;
30
30
  label: string;
31
31
  readonly: boolean;
32
32
  clearable: boolean;
@@ -1,15 +1,57 @@
1
1
  <script setup>
2
+ import { PAGES } from "../../shared/constants/pages";
2
3
  const props = defineProps({
4
+ id: { type: String, required: true },
3
5
  icon: { type: Object, required: false },
4
6
  title: { type: String, required: true },
5
7
  badge: { type: Boolean, required: false },
6
8
  to: { type: String, required: true },
7
- navList: { type: Array, required: true }
9
+ navList: { type: Array, required: true },
10
+ currentModule: { type: Boolean, required: true }
8
11
  });
12
+ function isActive(itemPath) {
13
+ if (!props.currentModule) return false;
14
+ const currentUrl = window.location.href.split("/").filter((item) => !["kk", "en"].includes(item)).join("/");
15
+ const section = PAGES[props.id];
16
+ const currentPath = itemPath.split("/").filter((item) => !["kk", "en"].includes(item)).join("/");
17
+ if (currentUrl === currentPath) return true;
18
+ if (currentPath.endsWith("/")) {
19
+ let atLeastOne = false;
20
+ for (const key in section) {
21
+ const path = section[key];
22
+ if (key !== "main") {
23
+ const includes = currentUrl.includes(path) || currentUrl.includes("car-result");
24
+ if (includes) {
25
+ atLeastOne = true;
26
+ break;
27
+ }
28
+ }
29
+ }
30
+ return !atLeastOne;
31
+ }
32
+ if (currentPath.includes("check-car")) {
33
+ if (currentUrl.includes("car-result")) {
34
+ return true;
35
+ }
36
+ }
37
+ for (const key in section) {
38
+ const path = section[key];
39
+ if (key !== "main") {
40
+ const includesBoth = currentUrl.includes(path) && currentUrl.startsWith(currentPath);
41
+ if (includesBoth) {
42
+ return true;
43
+ }
44
+ }
45
+ }
46
+ return false;
47
+ }
9
48
  </script>
10
49
 
11
50
  <template>
12
- <div class="flex flex-col gap-2">
51
+ <div
52
+ class="flex flex-col gap-2"
53
+ :class="{ 'rounded-md bg-gray-50 p-2 dark:bg-gray-800': currentModule }"
54
+ >
13
55
  <div
14
56
  class="flex items-center gap-2 pl-[10px]"
15
57
  >
@@ -31,6 +73,7 @@ const props = defineProps({
31
73
  v-for="item in navList"
32
74
  :key="item.title"
33
75
  class="flex items-center gap-2 px-[10px] py-[6px] w-full rounded-md hover:bg-gray-50 dark:hover:bg-gray-800"
76
+ :class="{ 'bg-blue-100 dark:bg-gray-200/10': isActive(item.to) }"
34
77
  >
35
78
  <div class="bg-gradient-blue p-1 rounded-lg g-white">
36
79
  <component
@@ -5,11 +5,13 @@ interface NavList {
5
5
  icon?: Component;
6
6
  }
7
7
  type __VLS_Props = {
8
+ id: string;
8
9
  icon?: Component;
9
10
  title: string;
10
11
  badge?: boolean;
11
12
  to: string;
12
13
  navList: NavList[];
14
+ currentModule: boolean;
13
15
  };
14
16
  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>;
15
17
  export default _default;
@@ -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 } from "#imports";
5
+ import { useI18n, useAppConfig, useRequestURL } 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";
@@ -16,7 +16,8 @@ import IWorkBag from "#icons/work-bag.vue";
16
16
  import IHdocument from "#icons/document/hdocument.vue";
17
17
  import IReceipt from "#icons/receipt/receipt.vue";
18
18
  import IHcheck from "#icons/receipt/hcheck.vue";
19
- import IFile from "#icons/file.vue";
19
+ import IFile from "#icons/file/file.vue";
20
+ import IFiles from "#icons/file/files.vue";
20
21
  import ICar from "#icons/avto/car.vue";
21
22
  import ICheckCircle from "#icons/check-circle.vue";
22
23
  import ITruck from "#icons/avto/truck.vue";
@@ -37,6 +38,7 @@ const props = defineProps({
37
38
  const { t } = useI18n();
38
39
  const appConfig = useAppConfig();
39
40
  const mode = appConfig.adataUI.mode;
41
+ const pageUrl = useRequestURL();
40
42
  defineEmits(["outerClick", "mouseOver"]);
41
43
  const filteredItems = [
42
44
  {
@@ -241,8 +243,28 @@ const filteredItems = [
241
243
  to: `https://ac.${mode}.kz/compliance`
242
244
  }
243
245
  ]
246
+ },
247
+ {
248
+ key: "edo",
249
+ name: t("header.products.edo.label"),
250
+ icon: IFiles,
251
+ items: [
252
+ {
253
+ title: t("header.products.edo.items.l.t"),
254
+ subtitle: t("header.products.edo.items.l.t"),
255
+ icon: IFiles,
256
+ to: `https://edo.${mode}.kz`
257
+ }
258
+ ]
244
259
  }
245
260
  ];
261
+ function isCurrentModule(currentModule) {
262
+ if (currentModule === "fines") return "avto";
263
+ if (currentModule === "analytics") return "analytics-new";
264
+ if (currentModule === "compliance") return "ac";
265
+ if (currentModule === "fea") return "tnved";
266
+ return currentModule;
267
+ }
246
268
  </script>
247
269
 
248
270
  <template>
@@ -258,7 +280,9 @@ const filteredItems = [
258
280
  <div class="flex flex-col gap-5 w-[290px]">
259
281
  <nav-list
260
282
  v-for="module in filteredItems.slice(0, 2)"
283
+ :id="module.key"
261
284
  :key="module.key"
285
+ :current-module="pageUrl.hostname.startsWith(isCurrentModule(module.key))"
262
286
  :title="module.name"
263
287
  :nav-list="module.items"
264
288
  :to="module.to"
@@ -268,7 +292,9 @@ const filteredItems = [
268
292
  <div class="flex flex-col gap-5 w-[290px] pl-[10px]">
269
293
  <nav-list
270
294
  v-for="module in filteredItems.slice(2, 5)"
295
+ :id="module.key"
271
296
  :key="module.key"
297
+ :current-module="pageUrl.hostname.startsWith(isCurrentModule(module.key))"
272
298
  :title="module.name"
273
299
  :nav-list="module.items"
274
300
  :to="module.to"
@@ -277,8 +303,10 @@ const filteredItems = [
277
303
  </div>
278
304
  <div class="flex flex-col gap-5 w-[330px] pl-[10px]">
279
305
  <nav-list
280
- v-for="module in filteredItems.slice(5, 7)"
306
+ v-for="module in filteredItems.slice(5, 8)"
307
+ :id="module.key"
281
308
  :key="module.key"
309
+ :current-module="pageUrl.hostname.startsWith(isCurrentModule(module.key))"
282
310
  :title="module.name"
283
311
  :nav-list="module.items"
284
312
  :to="module.to"