paket-ui 0.1.1 → 0.1.2
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 +1 -1
- package/dist/runtime/components/breadcrumb/Breadcrumb.d.vue.ts +11 -0
- package/dist/runtime/components/breadcrumb/Breadcrumb.vue +35 -0
- package/dist/runtime/components/breadcrumb/Breadcrumb.vue.d.ts +11 -0
- package/dist/runtime/components/navbar/Navbar.d.vue.ts +2 -2
- package/dist/runtime/components/navbar/Navbar.vue +7 -7
- package/dist/runtime/components/navbar/Navbar.vue.d.ts +2 -2
- package/dist/runtime/components/navbar/NavbarMenus.d.vue.ts +8 -11
- package/dist/runtime/components/navbar/NavbarMenus.vue +8 -17
- package/dist/runtime/components/navbar/NavbarMenus.vue.d.ts +8 -11
- package/dist/runtime/components/navbar/NavbarSearch.vue +1 -2
- package/dist/runtime/components/navbar/NavbarSearchInput.vue +3 -3
- package/dist/runtime/components/page/Dashboard.vue +2 -2
- package/dist/runtime/components/page/PageHeader.d.vue.ts +26 -0
- package/dist/runtime/components/page/PageHeader.vue +60 -0
- package/dist/runtime/components/page/PageHeader.vue.d.ts +26 -0
- package/dist/runtime/components/sidebar/Sidebar.d.vue.ts +8 -4
- package/dist/runtime/components/sidebar/Sidebar.vue +26 -17
- package/dist/runtime/components/sidebar/Sidebar.vue.d.ts +8 -4
- package/dist/runtime/components/sidebar/SidebarChild.d.vue.ts +8 -0
- package/dist/runtime/components/sidebar/SidebarChild.vue +64 -0
- package/dist/runtime/components/sidebar/SidebarChild.vue.d.ts +8 -0
- package/dist/runtime/components/sidebar/SidebarCollapse.vue +1 -1
- package/dist/runtime/components/sidebar/SidebarMenu.d.vue.ts +16 -0
- package/dist/runtime/components/sidebar/SidebarMenu.vue +20 -0
- package/dist/runtime/components/sidebar/SidebarMenu.vue.d.ts +16 -0
- package/dist/runtime/components/sidebar/SidebarParent.d.vue.ts +7 -0
- package/dist/runtime/components/sidebar/SidebarParent.vue +182 -0
- package/dist/runtime/components/sidebar/SidebarParent.vue.d.ts +7 -0
- package/dist/runtime/composables/useSidebar.d.ts +3 -0
- package/dist/runtime/composables/useSidebar.js +19 -2
- package/dist/runtime/types/navigation.d.ts +2 -11
- package/dist/runtime/types/navigation.js +0 -8
- package/package.json +1 -1
- package/dist/runtime/components/icon/KAFavicon.d.vue.ts +0 -3
- package/dist/runtime/components/icon/KAFavicon.vue +0 -45
- package/dist/runtime/components/icon/KAFavicon.vue.d.ts +0 -3
- package/dist/runtime/components/icon/KALogo.d.vue.ts +0 -3
- package/dist/runtime/components/icon/KALogo.vue +0 -102
- package/dist/runtime/components/icon/KALogo.vue.d.ts +0 -3
- package/dist/runtime/components/icon/KALogoMono.d.vue.ts +0 -3
- package/dist/runtime/components/icon/KALogoMono.vue +0 -70
- package/dist/runtime/components/icon/KALogoMono.vue.d.ts +0 -3
package/dist/module.json
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface BreadcrumbItem {
|
|
2
|
+
link: string;
|
|
3
|
+
label: string;
|
|
4
|
+
color?: string | null;
|
|
5
|
+
}
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
breadcrumbs: BreadcrumbItem[];
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_export: 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>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<nav aria-label="breadcrumb" class="mb-1">
|
|
3
|
+
<ol class="flex items-center text-primary text-xs">
|
|
4
|
+
<li
|
|
5
|
+
v-for="(crumb, index) in breadcrumbs"
|
|
6
|
+
:key="index"
|
|
7
|
+
class="flex items-center text-xs font-medium leading-3"
|
|
8
|
+
>
|
|
9
|
+
<NuxtLink
|
|
10
|
+
v-if="crumb.link !== '-' && index < breadcrumbs.length - 1"
|
|
11
|
+
:to="crumb.link"
|
|
12
|
+
>
|
|
13
|
+
<span :class="`${crumb.color ?? 'text-primary'} font-medium`">
|
|
14
|
+
{{ crumb.label }}
|
|
15
|
+
</span>
|
|
16
|
+
</NuxtLink>
|
|
17
|
+
<span v-else class="text-outline font-normal">
|
|
18
|
+
{{ crumb.label }}
|
|
19
|
+
</span>
|
|
20
|
+
<span
|
|
21
|
+
v-if="index < breadcrumbs.length - 1"
|
|
22
|
+
class="mx-2 text-outline font-medium"
|
|
23
|
+
>
|
|
24
|
+
/
|
|
25
|
+
</span>
|
|
26
|
+
</li>
|
|
27
|
+
</ol>
|
|
28
|
+
</nav>
|
|
29
|
+
</template>
|
|
30
|
+
|
|
31
|
+
<script setup>
|
|
32
|
+
defineProps({
|
|
33
|
+
breadcrumbs: { type: Array, required: true }
|
|
34
|
+
});
|
|
35
|
+
</script>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface BreadcrumbItem {
|
|
2
|
+
link: string;
|
|
3
|
+
label: string;
|
|
4
|
+
color?: string | null;
|
|
5
|
+
}
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
breadcrumbs: BreadcrumbItem[];
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_export: 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>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
declare var
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
2
|
type __VLS_Slots = {} & {
|
|
3
|
-
default?: (props: typeof
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
4
|
};
|
|
5
5
|
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
6
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import LoadingIndicator from "../loading/LoadingIndicator.vue";
|
|
3
2
|
import { cn } from "../../lib/utils";
|
|
4
3
|
import useSidebar from "../../composables/useSidebar";
|
|
5
|
-
const { collapsed } = useSidebar();
|
|
4
|
+
const { collapsed, collapsedMobile } = useSidebar();
|
|
6
5
|
</script>
|
|
7
6
|
|
|
8
7
|
<template>
|
|
9
|
-
<LoadingIndicator />
|
|
10
8
|
<div
|
|
11
9
|
:class="
|
|
12
10
|
cn(
|
|
13
11
|
'bg-layer h-navbar fixed z-60 top-0 left-0 right-0 py-1.5 transform lg:grid px-2 lg:py-0 lg:pr-2.5 lg:pl-0',
|
|
14
12
|
{
|
|
15
|
-
'lg:left-14': collapsed,
|
|
16
|
-
'lg:left-64': !collapsed
|
|
13
|
+
'lg:left-14': collapsed && !collapsedMobile,
|
|
14
|
+
'lg:left-64': !collapsed && !collapsedMobile,
|
|
15
|
+
'w-full': collapsedMobile
|
|
17
16
|
}
|
|
18
17
|
)
|
|
19
18
|
"
|
|
@@ -25,8 +24,9 @@ const { collapsed } = useSidebar();
|
|
|
25
24
|
<div
|
|
26
25
|
class="hidden lg:block pointer-events-none lg:fixed top-navbar right-0 h-4 z-5"
|
|
27
26
|
:class="{
|
|
28
|
-
'lg:left-14': collapsed,
|
|
29
|
-
'lg:left-64': !collapsed
|
|
27
|
+
'lg:left-14': collapsed && !collapsedMobile,
|
|
28
|
+
'lg:left-64': !collapsed && !collapsedMobile,
|
|
29
|
+
'w-full': collapsedMobile
|
|
30
30
|
}"
|
|
31
31
|
>
|
|
32
32
|
<span
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
declare var
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
2
|
type __VLS_Slots = {} & {
|
|
3
|
-
default?: (props: typeof
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
4
|
};
|
|
5
5
|
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
6
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
collapsed
|
|
3
|
-
};
|
|
4
|
-
declare var __VLS_24: {}, __VLS_26: {};
|
|
1
|
+
declare var __VLS_13: {
|
|
2
|
+
collapsed: boolean;
|
|
3
|
+
}, __VLS_15: {}, __VLS_17: {};
|
|
5
4
|
type __VLS_Slots = {} & {
|
|
6
|
-
|
|
5
|
+
logo?: (props: typeof __VLS_13) => any;
|
|
6
|
+
} & {
|
|
7
|
+
search?: (props: typeof __VLS_15) => any;
|
|
7
8
|
} & {
|
|
8
|
-
shortcuts?: (props: typeof
|
|
9
|
+
shortcuts?: (props: typeof __VLS_17) => any;
|
|
9
10
|
};
|
|
10
|
-
declare const __VLS_base: import("vue").DefineComponent<
|
|
11
|
-
"toggle-collapse": (value: boolean) => any;
|
|
12
|
-
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
-
"onToggle-collapse"?: ((value: boolean) => any) | undefined;
|
|
14
|
-
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
15
12
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
16
13
|
declare const _default: typeof __VLS_export;
|
|
17
14
|
export default _default;
|
|
@@ -5,23 +5,21 @@
|
|
|
5
5
|
<Button
|
|
6
6
|
class="p-0 lg:hidden inline-flex border-none w-12 h-12 justify-center items-center"
|
|
7
7
|
:icon="
|
|
8
|
-
|
|
8
|
+
collapsedMobile ? 'material-symbols:close' : 'material-symbols:menu'
|
|
9
9
|
"
|
|
10
10
|
variant="outline"
|
|
11
|
-
@click="
|
|
11
|
+
@click="toggle()"
|
|
12
12
|
/>
|
|
13
13
|
|
|
14
|
-
<
|
|
14
|
+
<Link
|
|
15
15
|
:to="'/'"
|
|
16
16
|
class="col-span-2 flex justify-center items-center h-full lg:hidden"
|
|
17
17
|
>
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
</NuxtLink>
|
|
18
|
+
<slot name="logo" :collapsed="collapsed && !collapsedMobile" />
|
|
19
|
+
</Link>
|
|
21
20
|
|
|
22
21
|
<slot name="search" />
|
|
23
22
|
|
|
24
|
-
<!-- cek kalau login bukan employee -->
|
|
25
23
|
<div class="flex justify-end items-center gap-2.5">
|
|
26
24
|
<slot name="shortcuts" />
|
|
27
25
|
</div>
|
|
@@ -29,15 +27,8 @@
|
|
|
29
27
|
</template>
|
|
30
28
|
|
|
31
29
|
<script setup>
|
|
32
|
-
import { NuxtLink } from "#components";
|
|
33
30
|
import Button from "../button/Button.vue";
|
|
34
|
-
import
|
|
35
|
-
import
|
|
36
|
-
const
|
|
37
|
-
collapsed: { type: Boolean, required: false }
|
|
38
|
-
});
|
|
39
|
-
const emit = defineEmits(["toggle-collapse"]);
|
|
40
|
-
const toggleCollapse = () => {
|
|
41
|
-
emit("toggle-collapse", !props.collapsed);
|
|
42
|
-
};
|
|
31
|
+
import useSidebar from "../../composables/useSidebar";
|
|
32
|
+
import Link from "../link/Link.vue";
|
|
33
|
+
const { collapsed, collapsedMobile, toggle } = useSidebar();
|
|
43
34
|
</script>
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
collapsed
|
|
3
|
-
};
|
|
4
|
-
declare var __VLS_24: {}, __VLS_26: {};
|
|
1
|
+
declare var __VLS_13: {
|
|
2
|
+
collapsed: boolean;
|
|
3
|
+
}, __VLS_15: {}, __VLS_17: {};
|
|
5
4
|
type __VLS_Slots = {} & {
|
|
6
|
-
|
|
5
|
+
logo?: (props: typeof __VLS_13) => any;
|
|
6
|
+
} & {
|
|
7
|
+
search?: (props: typeof __VLS_15) => any;
|
|
7
8
|
} & {
|
|
8
|
-
shortcuts?: (props: typeof
|
|
9
|
+
shortcuts?: (props: typeof __VLS_17) => any;
|
|
9
10
|
};
|
|
10
|
-
declare const __VLS_base: import("vue").DefineComponent<
|
|
11
|
-
"toggle-collapse": (value: boolean) => any;
|
|
12
|
-
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
-
"onToggle-collapse"?: ((value: boolean) => any) | undefined;
|
|
14
|
-
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
15
12
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
16
13
|
declare const _default: typeof __VLS_export;
|
|
17
14
|
export default _default;
|
|
@@ -59,8 +59,7 @@ const searchedMenus = computed(() => {
|
|
|
59
59
|
return props.menus.flatMap((menu) => {
|
|
60
60
|
const subMenus = (menu.submenus ?? []).map((item) => ({
|
|
61
61
|
...item,
|
|
62
|
-
icon: menu.icon
|
|
63
|
-
group: menu.group
|
|
62
|
+
icon: menu.icon
|
|
64
63
|
}));
|
|
65
64
|
return [menu, ...subMenus];
|
|
66
65
|
}).filter((menu) => props.filter ? props.filter(menu) : menu).filter((menu) => {
|
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
aria-autocomplete="none"
|
|
9
9
|
autocomplete="off"
|
|
10
10
|
placeholder="Cari resi, order ID, atau menu yang ingin diakses..."
|
|
11
|
-
class="w-full focus:outline-none border rounded-xl bg-layer-inner border-surface-container-high focus:ring-1 focus:ring-
|
|
11
|
+
class="w-full focus:outline-none border rounded-xl bg-layer-inner border-surface-container-high focus:ring-1 focus:ring-primary focus:border-primary text-sm h-full pr-3.5 pl-10 placeholder-outline text-on-surface"
|
|
12
12
|
@keydown.enter.prevent
|
|
13
13
|
/>
|
|
14
14
|
|
|
15
15
|
<Icon
|
|
16
16
|
name="i-material-symbols-search"
|
|
17
17
|
size="20px"
|
|
18
|
-
class="absolute left-2 top-1/2 transform -translate-y-1/2 text-
|
|
18
|
+
class="absolute left-2 top-1/2 transform -translate-y-1/2 text-outline"
|
|
19
19
|
/>
|
|
20
20
|
|
|
21
21
|
<div
|
|
22
|
-
class="absolute right-2.5 top-1/2 transform -translate-y-1/2 flex font-medium justify-center items-center text-
|
|
22
|
+
class="absolute right-2.5 top-1/2 transform -translate-y-1/2 flex font-medium justify-center items-center text-outline rounded text-xs"
|
|
23
23
|
:class="{
|
|
24
24
|
'pr-2': keyword.length
|
|
25
25
|
}"
|
|
@@ -4,7 +4,7 @@ import { cn } from "../../lib/utils";
|
|
|
4
4
|
const props = defineProps({
|
|
5
5
|
autoExpand: { type: Boolean, required: false, default: false }
|
|
6
6
|
});
|
|
7
|
-
const { collapsed } = useSidebar();
|
|
7
|
+
const { collapsed, collapsedMobile } = useSidebar();
|
|
8
8
|
</script>
|
|
9
9
|
|
|
10
10
|
<template>
|
|
@@ -16,7 +16,7 @@ const { collapsed } = useSidebar();
|
|
|
16
16
|
'min-h-navbar-screen mt-navbar relative lg:flex lg:flex-col lg:ml-64',
|
|
17
17
|
'border-l bg-layer-inner border-surface-container-high',
|
|
18
18
|
{
|
|
19
|
-
'lg:ml-14': collapsed && !
|
|
19
|
+
'lg:ml-14': collapsed && !collapsedMobile,
|
|
20
20
|
'px-2 lg:px-4': !props.autoExpand
|
|
21
21
|
}
|
|
22
22
|
)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
import type { BreadcrumbItem } from '../breadcrumb/Breadcrumb.vue.js';
|
|
3
|
+
interface IPageHeaderType {
|
|
4
|
+
title?: string;
|
|
5
|
+
/** For seo purpose only */
|
|
6
|
+
description?: string;
|
|
7
|
+
class?: HTMLAttributes['class'];
|
|
8
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
9
|
+
}
|
|
10
|
+
declare var __VLS_1: {}, __VLS_8: {}, __VLS_10: {};
|
|
11
|
+
type __VLS_Slots = {} & {
|
|
12
|
+
breadcrumb?: (props: typeof __VLS_1) => any;
|
|
13
|
+
} & {
|
|
14
|
+
title?: (props: typeof __VLS_8) => any;
|
|
15
|
+
} & {
|
|
16
|
+
default?: (props: typeof __VLS_10) => any;
|
|
17
|
+
};
|
|
18
|
+
declare const __VLS_base: import("vue").DefineComponent<IPageHeaderType, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IPageHeaderType> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div :class="cn('pt-4 mb-3', props.class)">
|
|
3
|
+
<div
|
|
4
|
+
class="grid gap-0 md:gap-7 gap-y-2 md:flex md:justify-between md:items-center"
|
|
5
|
+
>
|
|
6
|
+
<div>
|
|
7
|
+
<slot name="breadcrumb">
|
|
8
|
+
<Breadcrumb
|
|
9
|
+
v-if="dynamicBreadcrumbs"
|
|
10
|
+
:breadcrumbs="dynamicBreadcrumbs"
|
|
11
|
+
/>
|
|
12
|
+
</slot>
|
|
13
|
+
<slot name="title">
|
|
14
|
+
<h1 class="text-on-surface font-bold text-xl">
|
|
15
|
+
{{ title }}
|
|
16
|
+
</h1>
|
|
17
|
+
</slot>
|
|
18
|
+
</div>
|
|
19
|
+
<div
|
|
20
|
+
v-if="slots.default || slots['right-comp']"
|
|
21
|
+
class="md:ml-auto flex gap-3 flex-wrap items-center"
|
|
22
|
+
>
|
|
23
|
+
<slot />
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<script setup>
|
|
30
|
+
import { computed, useSlots } from "vue";
|
|
31
|
+
import { useRoute, useSeoMeta } from "#imports";
|
|
32
|
+
import { cn } from "../../lib/utils";
|
|
33
|
+
import Breadcrumb from "../breadcrumb/Breadcrumb.vue";
|
|
34
|
+
const props = defineProps({
|
|
35
|
+
title: { type: String, required: false, default: void 0 },
|
|
36
|
+
description: { type: String, required: false, default: void 0 },
|
|
37
|
+
class: { type: null, required: false, default: void 0 },
|
|
38
|
+
breadcrumbs: { type: Array, required: false, default: void 0 }
|
|
39
|
+
});
|
|
40
|
+
const route = useRoute();
|
|
41
|
+
const dynamicBreadcrumbs = computed(() => {
|
|
42
|
+
if (props.breadcrumbs) return props.breadcrumbs;
|
|
43
|
+
const link = [
|
|
44
|
+
{
|
|
45
|
+
label: "Beranda",
|
|
46
|
+
link: "/"
|
|
47
|
+
}
|
|
48
|
+
];
|
|
49
|
+
link.push({
|
|
50
|
+
label: props.title ?? "Unknown",
|
|
51
|
+
link: route.path
|
|
52
|
+
});
|
|
53
|
+
return link;
|
|
54
|
+
});
|
|
55
|
+
const slots = useSlots();
|
|
56
|
+
useSeoMeta({
|
|
57
|
+
title: props.title,
|
|
58
|
+
description: props.description ?? props.title
|
|
59
|
+
});
|
|
60
|
+
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
import type { BreadcrumbItem } from '../breadcrumb/Breadcrumb.vue.js';
|
|
3
|
+
interface IPageHeaderType {
|
|
4
|
+
title?: string;
|
|
5
|
+
/** For seo purpose only */
|
|
6
|
+
description?: string;
|
|
7
|
+
class?: HTMLAttributes['class'];
|
|
8
|
+
breadcrumbs?: BreadcrumbItem[];
|
|
9
|
+
}
|
|
10
|
+
declare var __VLS_1: {}, __VLS_8: {}, __VLS_10: {};
|
|
11
|
+
type __VLS_Slots = {} & {
|
|
12
|
+
breadcrumb?: (props: typeof __VLS_1) => any;
|
|
13
|
+
} & {
|
|
14
|
+
title?: (props: typeof __VLS_8) => any;
|
|
15
|
+
} & {
|
|
16
|
+
default?: (props: typeof __VLS_10) => any;
|
|
17
|
+
};
|
|
18
|
+
declare const __VLS_base: import("vue").DefineComponent<IPageHeaderType, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IPageHeaderType> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -3,13 +3,17 @@ type __VLS_Props = {
|
|
|
3
3
|
class?: HTMLAttributes['class'];
|
|
4
4
|
buttonClass?: HTMLAttributes['class'];
|
|
5
5
|
};
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_6: {
|
|
7
|
+
collapsed: boolean;
|
|
8
|
+
}, __VLS_8: {}, __VLS_17: {}, __VLS_24: {};
|
|
7
9
|
type __VLS_Slots = {} & {
|
|
8
|
-
|
|
10
|
+
logo?: (props: typeof __VLS_6) => any;
|
|
9
11
|
} & {
|
|
10
|
-
|
|
12
|
+
'collapse-button'?: (props: typeof __VLS_8) => any;
|
|
11
13
|
} & {
|
|
12
|
-
|
|
14
|
+
top?: (props: typeof __VLS_17) => any;
|
|
15
|
+
} & {
|
|
16
|
+
default?: (props: typeof __VLS_24) => any;
|
|
13
17
|
};
|
|
14
18
|
declare const __VLS_base: 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
19
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
|
-
v-if="
|
|
3
|
+
v-if="collapsedMobile"
|
|
4
4
|
class="bg-black/20 z-40 lg:hidden fixed inset-0 w-screen h-screen"
|
|
5
|
-
@click="
|
|
5
|
+
@click="toggleMobile(false)"
|
|
6
6
|
></button>
|
|
7
|
-
<
|
|
7
|
+
<aside
|
|
8
8
|
:class="
|
|
9
9
|
cn([
|
|
10
|
-
'left-0 flex flex-col z-
|
|
10
|
+
'left-0 flex flex-col z-60 transform fixed! top-0 bg-layer duration-300',
|
|
11
11
|
'h-screen',
|
|
12
|
-
collapsed ? '
|
|
13
|
-
|
|
12
|
+
collapsed && !collapsedMobile ? 'w-14' : 'w-64',
|
|
13
|
+
collapsedMobile ? '' : '-translate-x-full lg:translate-x-0',
|
|
14
14
|
props.class
|
|
15
15
|
])
|
|
16
16
|
"
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
<div
|
|
19
19
|
:class="
|
|
20
20
|
cn('flex items-center p-2 lg:h-navbar lg:justify-between relative', {
|
|
21
|
-
'lg:justify-center group p-0': collapsed
|
|
21
|
+
'lg:justify-center group p-0': collapsed && !collapsedMobile
|
|
22
22
|
})
|
|
23
23
|
"
|
|
24
24
|
>
|
|
25
|
-
<
|
|
25
|
+
<Link
|
|
26
26
|
:to="'/'"
|
|
27
27
|
:class="
|
|
28
28
|
cn('hover:bg-surface-container-high p-2 rounded-lg text-left', {
|
|
@@ -30,18 +30,28 @@
|
|
|
30
30
|
})
|
|
31
31
|
"
|
|
32
32
|
>
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
</NuxtLink>
|
|
33
|
+
<slot name="logo" :collapsed="collapsed && !collapsedMobile" />
|
|
34
|
+
</Link>
|
|
36
35
|
<slot name="collapse-button">
|
|
37
|
-
<SidebarCollapse
|
|
36
|
+
<SidebarCollapse
|
|
37
|
+
:collapsed="collapsed && !collapsedMobile"
|
|
38
|
+
@click="switchCollapsed"
|
|
39
|
+
/>
|
|
38
40
|
</slot>
|
|
39
41
|
</div>
|
|
40
42
|
<slot name="top" />
|
|
41
43
|
<ScrollArea id="sidebar-container" class="h-auto flex-1">
|
|
42
|
-
<
|
|
44
|
+
<nav
|
|
45
|
+
:class="
|
|
46
|
+
cn('p-2 space-y-0.5', {
|
|
47
|
+
'pt-0': collapsed
|
|
48
|
+
})
|
|
49
|
+
"
|
|
50
|
+
>
|
|
51
|
+
<slot />
|
|
52
|
+
</nav>
|
|
43
53
|
</ScrollArea>
|
|
44
|
-
</
|
|
54
|
+
</aside>
|
|
45
55
|
</template>
|
|
46
56
|
|
|
47
57
|
<script setup>
|
|
@@ -49,9 +59,8 @@ import { cn } from "../../lib/utils";
|
|
|
49
59
|
import ScrollArea from "../scroll-area/ScrollArea.vue";
|
|
50
60
|
import SidebarCollapse from "./SidebarCollapse.vue";
|
|
51
61
|
import useSidebar from "../../composables/useSidebar";
|
|
52
|
-
import
|
|
53
|
-
|
|
54
|
-
const { collapsed, toggle } = useSidebar();
|
|
62
|
+
import Link from "../link/Link.vue";
|
|
63
|
+
const { collapsed, collapsedMobile, switchCollapsed, toggleMobile } = useSidebar();
|
|
55
64
|
const props = defineProps({
|
|
56
65
|
class: { type: null, required: false },
|
|
57
66
|
buttonClass: { type: null, required: false }
|
|
@@ -3,13 +3,17 @@ type __VLS_Props = {
|
|
|
3
3
|
class?: HTMLAttributes['class'];
|
|
4
4
|
buttonClass?: HTMLAttributes['class'];
|
|
5
5
|
};
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_6: {
|
|
7
|
+
collapsed: boolean;
|
|
8
|
+
}, __VLS_8: {}, __VLS_17: {}, __VLS_24: {};
|
|
7
9
|
type __VLS_Slots = {} & {
|
|
8
|
-
|
|
10
|
+
logo?: (props: typeof __VLS_6) => any;
|
|
9
11
|
} & {
|
|
10
|
-
|
|
12
|
+
'collapse-button'?: (props: typeof __VLS_8) => any;
|
|
11
13
|
} & {
|
|
12
|
-
|
|
14
|
+
top?: (props: typeof __VLS_17) => any;
|
|
15
|
+
} & {
|
|
16
|
+
default?: (props: typeof __VLS_24) => any;
|
|
13
17
|
};
|
|
14
18
|
declare const __VLS_base: 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
19
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NavigationMenu } from '../../types/navigation.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
submenu: NavigationMenu;
|
|
4
|
+
fit?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: 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>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
:class="
|
|
4
|
+
cn([
|
|
5
|
+
'relative py-1.5 flex items-center rounded-lg gap-2',
|
|
6
|
+
{
|
|
7
|
+
'pl-10 pr-3.5': !fit,
|
|
8
|
+
'px-3.5 rounded-lg': fit,
|
|
9
|
+
'bg-layer-inner text-primary': isActive,
|
|
10
|
+
'hover:bg-surface-container-high': !isActive,
|
|
11
|
+
'pr-10': submenu.count && submenu.count > 0
|
|
12
|
+
}
|
|
13
|
+
])
|
|
14
|
+
"
|
|
15
|
+
>
|
|
16
|
+
<span
|
|
17
|
+
:class="
|
|
18
|
+
cn([
|
|
19
|
+
'text-sm grow ease-in-out duration-300',
|
|
20
|
+
{
|
|
21
|
+
'text-primary font-medium': isActive
|
|
22
|
+
}
|
|
23
|
+
])
|
|
24
|
+
"
|
|
25
|
+
v-text="submenu.title"
|
|
26
|
+
></span>
|
|
27
|
+
<Badge
|
|
28
|
+
v-if="submenu.count && submenu.count > 0"
|
|
29
|
+
variant="error"
|
|
30
|
+
class="scale-75 translate-x-4"
|
|
31
|
+
:label="submenu.count <= 99 ? submenu.count.toString() : '99+'"
|
|
32
|
+
/>
|
|
33
|
+
|
|
34
|
+
<NuxtLink :to="submenu.path" class="absolute inset-0" />
|
|
35
|
+
</div>
|
|
36
|
+
</template>
|
|
37
|
+
|
|
38
|
+
<script setup>
|
|
39
|
+
import { useRoute } from "#imports";
|
|
40
|
+
import { computed } from "vue";
|
|
41
|
+
import { cn } from "../../lib/utils";
|
|
42
|
+
import Badge from "../badge/Badge.vue";
|
|
43
|
+
const props = defineProps({
|
|
44
|
+
submenu: { type: Object, required: true },
|
|
45
|
+
fit: { type: Boolean, required: false }
|
|
46
|
+
});
|
|
47
|
+
const route = useRoute();
|
|
48
|
+
const isActive = computed(() => {
|
|
49
|
+
const isPathActive = route.fullPath.includes(props.submenu.path);
|
|
50
|
+
if (props.submenu.includes) {
|
|
51
|
+
const isIncluded = props.submenu.includes.some(
|
|
52
|
+
(include) => route.fullPath.includes(include)
|
|
53
|
+
);
|
|
54
|
+
if (isIncluded) return isIncluded;
|
|
55
|
+
}
|
|
56
|
+
if (props.submenu.excludes) {
|
|
57
|
+
const isExcluded = props.submenu.excludes.some(
|
|
58
|
+
(exclude) => route.fullPath.includes(exclude)
|
|
59
|
+
);
|
|
60
|
+
return isPathActive && !isExcluded;
|
|
61
|
+
}
|
|
62
|
+
return isPathActive;
|
|
63
|
+
});
|
|
64
|
+
</script>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NavigationMenu } from '../../types/navigation.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
submenu: NavigationMenu;
|
|
4
|
+
fit?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: 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>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<button
|
|
3
3
|
:class="
|
|
4
4
|
cn(
|
|
5
|
-
'hidden lg:inline-flex group p-0 text-
|
|
5
|
+
'hidden lg:inline-flex group p-0 text-outline items-center justify-center',
|
|
6
6
|
{
|
|
7
7
|
'absolute inset-0 lg:hidden group-hover:lg:inline-flex p-2': collapsed
|
|
8
8
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
label?: string;
|
|
3
|
+
};
|
|
4
|
+
declare var __VLS_1: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_1) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: 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
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="label && !collapsed"
|
|
4
|
+
class="px-3.5 text-xs py-2 font-semibold flex justify-between"
|
|
5
|
+
>
|
|
6
|
+
{{ label }}
|
|
7
|
+
</div>
|
|
8
|
+
<slot />
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script setup>
|
|
12
|
+
import useSidebar from "../../composables/useSidebar";
|
|
13
|
+
const { collapsed } = useSidebar();
|
|
14
|
+
defineOptions({
|
|
15
|
+
inheritAttrs: false
|
|
16
|
+
});
|
|
17
|
+
defineProps({
|
|
18
|
+
label: { type: String, required: false }
|
|
19
|
+
});
|
|
20
|
+
</script>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
label?: string;
|
|
3
|
+
};
|
|
4
|
+
declare var __VLS_1: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_1) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: 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
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NavigationMenu } from '../../types/navigation.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
menu: NavigationMenu;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: 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>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<component
|
|
3
|
+
:is="!hasMenu ? 'div' : !collapsed ? CollapsibleRoot : PopoverRoot"
|
|
4
|
+
v-model:open="open"
|
|
5
|
+
>
|
|
6
|
+
<component
|
|
7
|
+
:is="!hasMenu ? 'div' : !collapsed ? CollapsibleTrigger : PopoverTrigger"
|
|
8
|
+
:class="
|
|
9
|
+
cn(
|
|
10
|
+
'relative w-full flex items-center gap-2 py-1.5 rounded-lg text-sm font-medium',
|
|
11
|
+
{
|
|
12
|
+
'justify-center p-0 aspect-square w-10 h-10': collapsed,
|
|
13
|
+
'px-2': !collapsed,
|
|
14
|
+
'bg-surface-container-high text-primary': isActive,
|
|
15
|
+
'hover:bg-surface-container-high text-current/80': !isActive
|
|
16
|
+
}
|
|
17
|
+
)
|
|
18
|
+
"
|
|
19
|
+
>
|
|
20
|
+
<Icon
|
|
21
|
+
size="24px"
|
|
22
|
+
class="shrink-0"
|
|
23
|
+
:name="
|
|
24
|
+
menu.icon?.[isActive ? 'filled' : 'DEFAULT'] ?? 'material-symbols:info'
|
|
25
|
+
"
|
|
26
|
+
/>
|
|
27
|
+
<template v-if="!collapsed">
|
|
28
|
+
<span v-text="menu.title" />
|
|
29
|
+
<span
|
|
30
|
+
:class="[
|
|
31
|
+
'absolute left-0 top-2 bottom-2 rounded-full bg-primary transition-all',
|
|
32
|
+
{
|
|
33
|
+
'w-0.5': isActive,
|
|
34
|
+
'w-0': !isActive
|
|
35
|
+
}
|
|
36
|
+
]"
|
|
37
|
+
></span>
|
|
38
|
+
</template>
|
|
39
|
+
<Badge
|
|
40
|
+
v-if="menu.count && menu.count > 0 && !collapsed"
|
|
41
|
+
variant="error"
|
|
42
|
+
class="scale-75 translate-x-3 ml-auto"
|
|
43
|
+
:label="menu.count <= 99 ? menu.count.toString() : '99+'"
|
|
44
|
+
/>
|
|
45
|
+
<Icon
|
|
46
|
+
v-if="hasMenu && !collapsed"
|
|
47
|
+
name="material-symbols:keyboard-arrow-up"
|
|
48
|
+
size="24px"
|
|
49
|
+
:class="[
|
|
50
|
+
'transition-all',
|
|
51
|
+
{
|
|
52
|
+
'ml-auto': !menu.count || menu.count <= 0,
|
|
53
|
+
'rotate-0': open,
|
|
54
|
+
'rotate-180': !open
|
|
55
|
+
}
|
|
56
|
+
]"
|
|
57
|
+
/>
|
|
58
|
+
<NuxtLink v-if="!hasMenu" :to="menu.path" class="absolute inset-0" />
|
|
59
|
+
</component>
|
|
60
|
+
<component :is="!collapsed ? 'div' : PopoverPortal" v-if="hasMenu">
|
|
61
|
+
<component
|
|
62
|
+
:is="!collapsed ? CollapsibleContent : PopoverContent"
|
|
63
|
+
v-bind="{
|
|
64
|
+
side: 'right',
|
|
65
|
+
sideOffset: 5
|
|
66
|
+
}"
|
|
67
|
+
class="left-1 will-change-[transform,opacity] data-[state=open]:data-[side=top]:animate-slideDownAndFade data-[state=open]:data-[side=right]:animate-slideLeftAndFade data-[state=open]:data-[side=bottom]:animate-slideUpAndFade data-[state=open]:data-[side=left]:animate-slideRightAndFade"
|
|
68
|
+
:class="{
|
|
69
|
+
'rounded-xl p-2 w-[260px] bg-background dark:bg-surface-container shadow-sm z-50 border border-outline-variant': collapsed,
|
|
70
|
+
'c-content': !collapsed
|
|
71
|
+
}"
|
|
72
|
+
>
|
|
73
|
+
<SidebarChild
|
|
74
|
+
v-for="(submenu, idx) in menu.submenus"
|
|
75
|
+
:key="idx + 'collapsed'"
|
|
76
|
+
:submenu="submenu"
|
|
77
|
+
:fit="collapsed"
|
|
78
|
+
/>
|
|
79
|
+
<PopoverArrow
|
|
80
|
+
v-if="collapsed"
|
|
81
|
+
class="fill-background dark:fill-surface-container stroke-outline-variant"
|
|
82
|
+
/>
|
|
83
|
+
</component>
|
|
84
|
+
</component>
|
|
85
|
+
</component>
|
|
86
|
+
</template>
|
|
87
|
+
|
|
88
|
+
<script setup>
|
|
89
|
+
import { cn } from "../../lib/utils";
|
|
90
|
+
import {
|
|
91
|
+
PopoverContent,
|
|
92
|
+
PopoverPortal,
|
|
93
|
+
PopoverRoot,
|
|
94
|
+
PopoverTrigger,
|
|
95
|
+
PopoverArrow,
|
|
96
|
+
CollapsibleContent,
|
|
97
|
+
CollapsibleRoot,
|
|
98
|
+
CollapsibleTrigger
|
|
99
|
+
} from "reka-ui";
|
|
100
|
+
import { computed, onMounted, ref, watch } from "vue";
|
|
101
|
+
import { useRoute } from "#imports";
|
|
102
|
+
import useSidebar from "../../composables/useSidebar";
|
|
103
|
+
import SidebarChild from "./SidebarChild.vue";
|
|
104
|
+
import Badge from "../badge/Badge.vue";
|
|
105
|
+
import { whenever } from "@vueuse/core";
|
|
106
|
+
const {
|
|
107
|
+
collapsed: collapsedDesktop,
|
|
108
|
+
collapsedMobile,
|
|
109
|
+
toggleMobile
|
|
110
|
+
} = useSidebar();
|
|
111
|
+
const open = ref(false);
|
|
112
|
+
const collapsed = computed(() => {
|
|
113
|
+
return collapsedDesktop.value && !collapsedMobile.value;
|
|
114
|
+
});
|
|
115
|
+
whenever(collapsedDesktop, () => {
|
|
116
|
+
open.value = false;
|
|
117
|
+
});
|
|
118
|
+
const props = defineProps({
|
|
119
|
+
menu: { type: Object, required: true }
|
|
120
|
+
});
|
|
121
|
+
const hasMenu = computed(
|
|
122
|
+
() => props.menu.submenus && props.menu.submenus.length > 0
|
|
123
|
+
);
|
|
124
|
+
const route = useRoute();
|
|
125
|
+
const isExpanded = ref(false);
|
|
126
|
+
onMounted(() => {
|
|
127
|
+
if (props.menu.submenus) {
|
|
128
|
+
for (const item of props.menu.submenus) {
|
|
129
|
+
if (route.fullPath.includes(item.path)) {
|
|
130
|
+
isExpanded.value = true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
const isActive = computed(() => {
|
|
136
|
+
if (props.menu.submenus) {
|
|
137
|
+
return props.menu.submenus?.some((submenu) => {
|
|
138
|
+
const isPathActive2 = route.fullPath.includes(submenu.path);
|
|
139
|
+
if (submenu.includes) {
|
|
140
|
+
const isIncluded = submenu.includes.some(
|
|
141
|
+
(include) => route.fullPath.includes(include)
|
|
142
|
+
);
|
|
143
|
+
if (isIncluded) return isIncluded;
|
|
144
|
+
}
|
|
145
|
+
if (submenu.excludes) {
|
|
146
|
+
const isExcluded = submenu.excludes.some(
|
|
147
|
+
(exclude) => route.fullPath.includes(exclude)
|
|
148
|
+
);
|
|
149
|
+
return isPathActive2 && !isExcluded;
|
|
150
|
+
}
|
|
151
|
+
return isPathActive2;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (props.menu.path === "/") return route.path == props.menu.path;
|
|
155
|
+
const isPathActive = route.fullPath.includes(props.menu.path);
|
|
156
|
+
if (props.menu.includes) {
|
|
157
|
+
const isIncluded = props.menu.includes.some(
|
|
158
|
+
(include) => route.fullPath.includes(include)
|
|
159
|
+
);
|
|
160
|
+
if (isIncluded) return isIncluded;
|
|
161
|
+
}
|
|
162
|
+
if (props.menu.excludes) {
|
|
163
|
+
const isExcluded = props.menu.excludes.some(
|
|
164
|
+
(exclude) => route.fullPath.includes(exclude)
|
|
165
|
+
);
|
|
166
|
+
return isPathActive && !isExcluded;
|
|
167
|
+
}
|
|
168
|
+
return isPathActive;
|
|
169
|
+
});
|
|
170
|
+
watch(
|
|
171
|
+
() => route.path,
|
|
172
|
+
(newValue, oldValue) => {
|
|
173
|
+
if (newValue !== oldValue) {
|
|
174
|
+
toggleMobile(false);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
</script>
|
|
179
|
+
|
|
180
|
+
<style scoped>
|
|
181
|
+
.c-content{overflow:hidden}.c-content[data-state=open]{animation:slideDown .3s ease-out}.c-content[data-state=closed]{animation:slideUp .3s ease-out}@keyframes slideDown{0%{height:0}to{height:var(--reka-collapsible-content-height)}}@keyframes slideUp{0%{height:var(--reka-collapsible-content-height)}to{height:0}}
|
|
182
|
+
</style>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NavigationMenu } from '../../types/navigation.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
menu: NavigationMenu;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: 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>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
declare const _default: () => {
|
|
2
2
|
collapsed: import("nuxt/app").CookieRef<boolean>;
|
|
3
|
+
collapsedMobile: import("nuxt/app").CookieRef<boolean>;
|
|
3
4
|
toggle: () => void;
|
|
5
|
+
toggleMobile: (forced?: boolean) => void;
|
|
6
|
+
switchCollapsed: () => void;
|
|
4
7
|
};
|
|
5
8
|
export default _default;
|
|
@@ -1,13 +1,30 @@
|
|
|
1
1
|
import { useCookie } from "nuxt/app";
|
|
2
2
|
export default () => {
|
|
3
|
-
const collapsed = useCookie("sidebar", {
|
|
3
|
+
const collapsed = useCookie("sidebar-desktop-collapsed", {
|
|
4
|
+
default: () => false
|
|
5
|
+
});
|
|
6
|
+
const collapsedMobile = useCookie("sidebar-mobile-collapsed", {
|
|
4
7
|
default: () => false
|
|
5
8
|
});
|
|
6
9
|
const toggle = () => {
|
|
7
10
|
collapsed.value = !collapsed.value;
|
|
8
11
|
};
|
|
12
|
+
const toggleMobile = (forced) => {
|
|
13
|
+
if (forced !== void 0) {
|
|
14
|
+
collapsedMobile.value = forced;
|
|
15
|
+
} else {
|
|
16
|
+
collapsedMobile.value = !collapsedMobile.value;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const switchCollapsed = () => {
|
|
20
|
+
collapsed.value = !collapsed.value;
|
|
21
|
+
collapsedMobile.value = false;
|
|
22
|
+
};
|
|
9
23
|
return {
|
|
10
24
|
collapsed,
|
|
11
|
-
|
|
25
|
+
collapsedMobile,
|
|
26
|
+
toggle,
|
|
27
|
+
toggleMobile,
|
|
28
|
+
switchCollapsed
|
|
12
29
|
};
|
|
13
30
|
};
|
|
@@ -2,28 +2,19 @@ interface NavigationMenuIcon {
|
|
|
2
2
|
DEFAULT: string;
|
|
3
3
|
filled: string;
|
|
4
4
|
}
|
|
5
|
-
export interface NavigationMenu
|
|
5
|
+
export interface NavigationMenu {
|
|
6
6
|
title: string;
|
|
7
7
|
key: string;
|
|
8
8
|
path: string;
|
|
9
|
-
group: NavigationGroup;
|
|
10
9
|
/** Exclude some path from currentActive logic */
|
|
11
10
|
excludes?: string[];
|
|
12
11
|
/** Include some path to currentActive logic */
|
|
13
12
|
includes?: string[];
|
|
14
13
|
icon?: NavigationMenuIcon;
|
|
15
|
-
role?: Role;
|
|
16
14
|
description: string;
|
|
17
15
|
/** Show counter at the right side of menu */
|
|
18
16
|
count?: number;
|
|
19
17
|
/** Submenus */
|
|
20
|
-
submenus?: Omit<NavigationMenu
|
|
21
|
-
}
|
|
22
|
-
export declare enum NavigationGroup {
|
|
23
|
-
GENERAL = "GENERAL",
|
|
24
|
-
DELIVERY = "DELIVERY",
|
|
25
|
-
OMS = "OMS",
|
|
26
|
-
PLATFORM = "PLATFORM",
|
|
27
|
-
OTHER = "OTHER"
|
|
18
|
+
submenus?: Omit<NavigationMenu, 'submenus'>[];
|
|
28
19
|
}
|
|
29
20
|
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export var NavigationGroup = /* @__PURE__ */ ((NavigationGroup2) => {
|
|
2
|
-
NavigationGroup2["GENERAL"] = "GENERAL";
|
|
3
|
-
NavigationGroup2["DELIVERY"] = "DELIVERY";
|
|
4
|
-
NavigationGroup2["OMS"] = "OMS";
|
|
5
|
-
NavigationGroup2["PLATFORM"] = "PLATFORM";
|
|
6
|
-
NavigationGroup2["OTHER"] = "OTHER";
|
|
7
|
-
return NavigationGroup2;
|
|
8
|
-
})(NavigationGroup || {});
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
-
declare const _default: typeof __VLS_export;
|
|
3
|
-
export default _default;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
width="32"
|
|
4
|
-
height="32"
|
|
5
|
-
viewBox="0 0 32 32"
|
|
6
|
-
fill="none"
|
|
7
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
-
>
|
|
9
|
-
<path
|
|
10
|
-
d="M13.9553 13.6528C12.7323 12.4411 10.8415 12.3776 9.61842 13.5876C8.39536 14.7993 8.45236 16.8448 9.67542 18.0564L17.6897 26.0349C18.9306 27.2758 20.8393 27.3361 22.0624 26.1244C23.2854 24.9128 23.274 22.9731 22.0249 21.724L13.9553 13.6528Z"
|
|
11
|
-
fill="url(#paint0_linear_552_390)"
|
|
12
|
-
/>
|
|
13
|
-
<path
|
|
14
|
-
fill-rule="evenodd"
|
|
15
|
-
clip-rule="evenodd"
|
|
16
|
-
d="M12.9505 7.22895C12.4799 7.3283 12.2698 7.91947 12.5906 8.2745L13.786 9.46988L9.62008 13.5869C8.45239 14.7546 8.22602 16.6047 9.67708 18.0557L16.1784 24.5391V15.8686L18.1945 13.8736L19.3443 15.025C19.6668 15.3784 20.2547 15.2562 20.4029 14.8018L23.3099 5.81046C23.4581 5.35772 23.0559 4.91474 22.5852 5.01409L12.9505 7.22895Z"
|
|
17
|
-
fill="url(#paint1_linear_552_390)"
|
|
18
|
-
/>
|
|
19
|
-
<defs>
|
|
20
|
-
<linearGradient
|
|
21
|
-
id="paint0_linear_552_390"
|
|
22
|
-
x1="8.72922"
|
|
23
|
-
y1="19.856"
|
|
24
|
-
x2="22.9711"
|
|
25
|
-
y2="19.856"
|
|
26
|
-
gradientUnits="userSpaceOnUse"
|
|
27
|
-
>
|
|
28
|
-
<stop stop-color="#1E398C" />
|
|
29
|
-
<stop offset="1" stop-color="#0071BB" />
|
|
30
|
-
</linearGradient>
|
|
31
|
-
<linearGradient
|
|
32
|
-
id="paint1_linear_552_390"
|
|
33
|
-
x1="18.7027"
|
|
34
|
-
y1="9.31353"
|
|
35
|
-
x2="10.7308"
|
|
36
|
-
y2="21.637"
|
|
37
|
-
gradientUnits="userSpaceOnUse"
|
|
38
|
-
>
|
|
39
|
-
<stop stop-color="#782B8F" />
|
|
40
|
-
<stop offset="0.49" stop-color="#5C217D" />
|
|
41
|
-
<stop offset="1" stop-color="#411569" />
|
|
42
|
-
</linearGradient>
|
|
43
|
-
</defs>
|
|
44
|
-
</svg>
|
|
45
|
-
</template>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
-
declare const _default: typeof __VLS_export;
|
|
3
|
-
export default _default;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
-
declare const _default: typeof __VLS_export;
|
|
3
|
-
export default _default;
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg
|
|
3
|
-
width="132"
|
|
4
|
-
class="text-[#782B8F] dark:text-on-surface"
|
|
5
|
-
height="38"
|
|
6
|
-
viewBox="0 0 150 38"
|
|
7
|
-
fill="none"
|
|
8
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
-
>
|
|
10
|
-
<path
|
|
11
|
-
d="M142.425 13.6343C140.622 13.6343 138.692 14.0281 137.201 14.7735C136.765 14.9901 136.594 15.533 136.81 15.969L137.511 17.3783C137.775 17.9099 138.414 18.149 138.948 17.8959C139.786 17.4993 140.793 17.2686 141.724 17.2686C143.041 17.2686 143.89 17.6483 144.307 18.3516C144.588 18.8242 144.214 19.4261 143.662 19.4261H141.899C137.688 19.4261 135.859 20.9789 135.859 23.4852C135.859 25.8424 137.665 27.6708 140.923 27.6708C142.25 27.6708 143.297 27.367 144.045 26.7735C144.262 26.6019 144.672 26.6751 144.85 26.8832C145.128 27.2123 145.505 27.4458 145.938 27.4458H148.416C148.942 27.4458 149.37 27.0182 149.37 26.4922V19.9015C149.37 15.5893 146.838 13.6343 142.428 13.6343H142.425ZM142.248 24.6638C141.12 24.6638 140.467 24.0872 140.467 23.2855C140.467 22.4838 141.018 21.9071 142.549 21.9071H143.651C144.177 21.9071 144.605 22.3347 144.605 22.8607V22.9226C144.605 23.0295 144.588 23.1392 144.546 23.2377C144.138 24.2109 143.249 24.6638 142.248 24.6638Z"
|
|
12
|
-
fill="currentColor"
|
|
13
|
-
/>
|
|
14
|
-
<path
|
|
15
|
-
d="M129.283 32.5316C132.791 32.5316 134.822 30.4022 134.822 27.0913V14.81C134.822 14.284 134.394 13.8564 133.868 13.8564H131.013C130.487 13.8564 130.059 14.284 130.059 14.81V27.066C130.059 28.2953 129.483 28.8466 128.656 28.8466C128.532 28.8466 128.411 28.8382 128.29 28.8241C127.685 28.751 126.982 28.9901 126.78 29.5639L126.239 31.0801C126.085 31.5133 126.262 32.0027 126.698 32.1518C127.443 32.4078 128.358 32.5316 129.28 32.5316H129.283Z"
|
|
16
|
-
fill="currentColor"
|
|
17
|
-
/>
|
|
18
|
-
<path
|
|
19
|
-
d="M121.165 13.6343C119.362 13.6343 117.432 14.0281 115.941 14.7735C115.505 14.9901 115.333 15.533 115.547 15.969L116.245 17.3783C116.509 17.9099 117.148 18.1519 117.685 17.8959C118.523 17.4993 119.53 17.2686 120.461 17.2686C121.778 17.2686 122.627 17.6483 123.044 18.3516C123.325 18.8242 122.951 19.4261 122.4 19.4261H120.636C116.425 19.4261 114.596 20.9789 114.596 23.4852C114.596 25.8424 116.4 27.6708 119.66 27.6708C120.987 27.6708 122.034 27.367 122.782 26.7735C123.016 26.5879 123.471 26.6863 123.62 26.931C123.826 27.2686 124.219 27.4458 124.613 27.4458H127.153C127.679 27.4458 128.107 27.0182 128.107 26.4922V19.9015C128.107 15.5893 125.575 13.6343 121.165 13.6343ZM120.987 24.6638C119.859 24.6638 119.207 24.0872 119.207 23.2855C119.207 22.4838 119.758 21.9071 121.288 21.9071H122.391C122.917 21.9071 123.345 22.3347 123.345 22.8607V22.9226C123.345 23.0295 123.328 23.1364 123.286 23.2348C122.878 24.2081 121.989 24.6638 120.987 24.6638Z"
|
|
20
|
-
fill="currentColor"
|
|
21
|
-
/>
|
|
22
|
-
<path
|
|
23
|
-
d="M108.022 13.6343C106.706 13.6343 105.494 13.9775 104.515 14.6554C104.264 14.827 103.904 14.7313 103.767 14.4922C103.578 14.1603 103.159 13.8593 102.776 13.8593H100.129C99.6033 13.8593 99.1758 14.2869 99.1758 14.8129V26.4894C99.1758 27.0154 99.6033 27.443 100.129 27.443H102.984C103.511 27.443 103.938 27.0154 103.938 26.4894V20.8776C103.938 18.6216 105.117 17.668 106.644 17.668C108.022 17.668 108.875 18.495 108.875 20.45V26.4894C108.875 27.0154 109.302 27.443 109.828 27.443H112.684C113.21 27.443 113.637 27.0154 113.637 26.4894V19.6737C113.637 15.4627 111.207 13.6343 108.022 13.6343Z"
|
|
24
|
-
fill="currentColor"
|
|
25
|
-
/>
|
|
26
|
-
<path
|
|
27
|
-
d="M93.5251 13.8594H96.3803C96.9063 13.8594 97.3338 14.2869 97.3338 14.813V26.4895C97.3338 27.0155 96.9063 27.4431 96.3803 27.4431H93.5251C92.9991 27.4431 92.5715 27.0155 92.5715 26.4895V14.813C92.5715 14.2869 92.9991 13.8594 93.5251 13.8594Z"
|
|
28
|
-
fill="currentColor"
|
|
29
|
-
/>
|
|
30
|
-
<path
|
|
31
|
-
d="M85.331 13.6343C83.8851 13.6343 82.5884 14.059 81.5757 14.8298C81.0581 15.2236 80.2452 15.2011 79.7473 14.782C78.819 14.0028 77.601 13.6343 76.2311 13.6343C74.9962 13.6343 73.8654 13.9606 72.94 14.616C72.7009 14.7848 72.3549 14.6948 72.2227 14.4669C71.992 14.0675 71.5307 13.8621 71.0694 13.8621H68.5855C68.0595 13.8621 67.632 14.2897 67.632 14.8157V26.4922C67.632 27.0182 68.0595 27.4458 68.5855 27.4458H71.4407C71.9667 27.4458 72.3943 27.0182 72.3943 26.4922V20.7032C72.3943 18.5991 73.3957 17.6708 74.7993 17.6708C76.0792 17.6708 76.8556 18.4978 76.8556 20.4528V26.4922C76.8556 27.0182 77.2832 27.4458 77.8092 27.4458H80.6643C81.1903 27.4458 81.6179 27.0182 81.6179 26.4922V20.7032C81.6179 18.5991 82.6193 17.6708 84.0005 17.6708C85.2522 17.6708 86.0567 18.4978 86.0567 20.4528V26.4922C86.0567 27.0182 86.4843 27.4458 87.0103 27.4458H89.8654C90.3915 27.4458 90.819 27.0182 90.819 26.4922V19.6765C90.819 15.4655 88.4871 13.6371 85.331 13.6371V13.6343Z"
|
|
32
|
-
fill="currentColor"
|
|
33
|
-
/>
|
|
34
|
-
<path
|
|
35
|
-
d="M64.8385 13.8594H61.9834C61.4567 13.8594 61.0298 14.2863 61.0298 14.813V26.4895C61.0298 27.0161 61.4567 27.4431 61.9834 27.4431H64.8385C65.3652 27.4431 65.7921 27.0161 65.7921 26.4895V14.813C65.7921 14.2863 65.3652 13.8594 64.8385 13.8594Z"
|
|
36
|
-
fill="currentColor"
|
|
37
|
-
/>
|
|
38
|
-
<path
|
|
39
|
-
d="M56.6305 14.6612C56.3548 14.8609 55.9132 14.7343 55.7922 14.4446C55.6319 14.0704 55.2268 13.8595 54.8217 13.8595H52.1776C51.6516 13.8595 51.224 14.287 51.224 14.8131V26.4896C51.224 27.0156 51.6516 27.4432 52.1776 27.4432H55.0327C55.5587 27.4432 55.9863 27.0156 55.9863 26.4896V21.2013C55.9863 18.7906 57.3478 17.8173 59.3168 17.8426C59.871 17.8482 60.321 17.3982 60.321 16.844V14.5852C60.321 14.0508 59.8569 13.626 59.3253 13.6879C58.2676 13.8117 57.359 14.1351 56.6305 14.6584V14.6612Z"
|
|
40
|
-
fill="currentColor"
|
|
41
|
-
/>
|
|
42
|
-
<path
|
|
43
|
-
d="M45.5699 13.8593H48.4251C48.9511 13.8593 49.3786 14.2868 49.3786 14.8128V26.4894C49.3786 27.0154 48.9511 27.4429 48.4251 27.4429H45.5699C45.0439 27.4429 44.6163 27.0154 44.6163 26.4894V14.81C44.6163 14.284 45.0439 13.8564 45.5699 13.8564V13.8593Z"
|
|
44
|
-
fill="currentColor"
|
|
45
|
-
/>
|
|
46
|
-
<path
|
|
47
|
-
d="M38.2984 27.0858C38.4784 27.3108 38.7541 27.443 39.0438 27.443H42.3856C43.1816 27.443 43.6261 26.526 43.1338 25.8987L38.7484 20.3263C38.4531 19.9522 38.4812 19.4149 38.8131 19.0717L42.304 15.474C42.8891 14.8692 42.4615 13.8565 41.6204 13.8565H38.6218C38.3743 13.8565 38.1352 13.955 37.958 14.1266L34.9932 17.0155C34.3884 17.6034 33.3729 17.1758 33.3729 16.3319V9.79465C33.3729 9.26863 32.9453 8.84106 32.4193 8.84106H29.5642C29.0382 8.84106 28.6106 9.26863 28.6106 9.79465V26.4866C28.6106 27.0127 29.0382 27.4402 29.5642 27.4402H32.4193C32.9453 27.4402 33.3729 27.0127 33.3729 26.4866V24.4979C33.3729 24.2475 33.4714 24.0084 33.6458 23.8284L34.0227 23.4458C34.4221 23.038 35.0888 23.0717 35.446 23.519L38.2984 27.083V27.0858Z"
|
|
48
|
-
fill="currentColor"
|
|
49
|
-
/>
|
|
50
|
-
<path
|
|
51
|
-
d="M46.999 12.5175C48.4857 12.5175 49.691 11.3123 49.691 9.82553C49.691 8.33879 48.4857 7.13354 46.999 7.13354C45.5123 7.13354 44.307 8.33879 44.307 9.82553C44.307 11.3123 45.5123 12.5175 46.999 12.5175Z"
|
|
52
|
-
fill="currentColor"
|
|
53
|
-
/>
|
|
54
|
-
<path
|
|
55
|
-
d="M63.4124 12.5175C64.8992 12.5175 66.1044 11.3123 66.1044 9.82553C66.1044 8.33879 64.8992 7.13354 63.4124 7.13354C61.9257 7.13354 60.7205 8.33879 60.7205 9.82553C60.7205 11.3123 61.9257 12.5175 63.4124 12.5175Z"
|
|
56
|
-
fill="currentColor"
|
|
57
|
-
/>
|
|
58
|
-
<path
|
|
59
|
-
d="M94.9536 12.5175C96.4403 12.5175 97.6456 11.3123 97.6456 9.82553C97.6456 8.33879 96.4403 7.13354 94.9536 7.13354C93.4668 7.13354 92.2616 8.33879 92.2616 9.82553C92.2616 11.3123 93.4668 12.5175 94.9536 12.5175Z"
|
|
60
|
-
fill="currentColor"
|
|
61
|
-
/>
|
|
62
|
-
<path
|
|
63
|
-
d="M132.121 12.5175C133.608 12.5175 134.813 11.3123 134.813 9.82553C134.813 8.33879 133.608 7.13354 132.121 7.13354C130.634 7.13354 129.429 8.33879 129.429 9.82553C129.429 11.3123 130.634 12.5175 132.121 12.5175Z"
|
|
64
|
-
fill="currentColor"
|
|
65
|
-
/>
|
|
66
|
-
<path
|
|
67
|
-
d="M9.13943 14.9453C7.02691 12.8524 3.76109 12.7427 1.64857 14.8327C-0.463947 16.9256 -0.365494 20.4586 1.74702 22.5515L15.5895 36.332C17.733 38.4755 21.0297 38.5796 23.1422 36.4868C25.2548 34.3939 25.2351 31.0437 23.0775 28.8862L9.13943 14.9453Z"
|
|
68
|
-
fill="url(#paint0_linear_3061_7003)"
|
|
69
|
-
/>
|
|
70
|
-
<path
|
|
71
|
-
fill-rule="evenodd"
|
|
72
|
-
clip-rule="evenodd"
|
|
73
|
-
d="M7.40389 3.85091C6.59095 4.0225 6.22808 5.04359 6.78223 5.65682L8.84693 7.72151L1.65143 14.8326C-0.365447 16.8495 -0.756446 20.045 1.74988 22.5513L12.9791 33.7496V18.7736L16.4616 15.3277L18.4475 17.3165C19.0045 17.9269 20.0199 17.7159 20.2759 16.9311L25.297 1.40084C25.553 0.61884 24.8582 -0.146279 24.0452 0.02531L7.40389 3.85091Z"
|
|
74
|
-
fill="url(#paint1_linear_3061_7003)"
|
|
75
|
-
/>
|
|
76
|
-
<defs>
|
|
77
|
-
<linearGradient
|
|
78
|
-
id="paint0_linear_3061_7003"
|
|
79
|
-
x1="0.112706"
|
|
80
|
-
y1="25.6598"
|
|
81
|
-
x2="24.7119"
|
|
82
|
-
y2="25.6598"
|
|
83
|
-
gradientUnits="userSpaceOnUse"
|
|
84
|
-
>
|
|
85
|
-
<stop stop-color="#1E398C" />
|
|
86
|
-
<stop offset="1" stop-color="#0071BB" />
|
|
87
|
-
</linearGradient>
|
|
88
|
-
<linearGradient
|
|
89
|
-
id="paint1_linear_3061_7003"
|
|
90
|
-
x1="17.3392"
|
|
91
|
-
y1="7.45147"
|
|
92
|
-
x2="3.56985"
|
|
93
|
-
y2="28.737"
|
|
94
|
-
gradientUnits="userSpaceOnUse"
|
|
95
|
-
>
|
|
96
|
-
<stop stop-color="#782B8F" />
|
|
97
|
-
<stop offset="0.49" stop-color="#5C217D" />
|
|
98
|
-
<stop offset="1" stop-color="#411569" />
|
|
99
|
-
</linearGradient>
|
|
100
|
-
</defs>
|
|
101
|
-
</svg>
|
|
102
|
-
</template>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
-
declare const _default: typeof __VLS_export;
|
|
3
|
-
export default _default;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
-
declare const _default: typeof __VLS_export;
|
|
3
|
-
export default _default;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<svg viewBox="0 0 56 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
-
<path
|
|
4
|
-
d="M52.9564 5.02295C52.2921 5.02295 51.5812 5.16804 51.0319 5.44267C50.8713 5.52247 50.8081 5.72248 50.8879 5.88312L51.1459 6.40233C51.2433 6.5982 51.4786 6.68628 51.6755 6.59301C51.9843 6.44689 52.3553 6.36191 52.6984 6.36191C53.1834 6.36191 53.4964 6.50181 53.6497 6.7609C53.7534 6.93501 53.6155 7.15679 53.4124 7.15679H52.7626C51.2112 7.15679 50.5376 7.72885 50.5376 8.65223C50.5376 9.52069 51.2029 10.1943 52.403 10.1943C52.8922 10.1943 53.2777 10.0824 53.5534 9.86372C53.6332 9.80051 53.7845 9.82745 53.8498 9.90414C53.9524 10.0254 54.0912 10.1114 54.2508 10.1114H55.1638C55.3576 10.1114 55.5152 9.95388 55.5152 9.76009V7.33193C55.5152 5.74321 54.5825 5.02295 52.9575 5.02295H52.9564ZM52.8911 9.08646C52.4756 9.08646 52.2351 8.87401 52.2351 8.57865C52.2351 8.28329 52.4383 8.07084 53.002 8.07084H53.4083C53.6021 8.07084 53.7596 8.22837 53.7596 8.42216V8.44496C53.7596 8.48435 53.7534 8.52476 53.7378 8.56104C53.5876 8.91961 53.2601 9.08646 52.8911 9.08646Z"
|
|
5
|
-
fill="currentColor"
|
|
6
|
-
/>
|
|
7
|
-
<path
|
|
8
|
-
d="M48.1143 11.9853C49.4066 11.9853 50.1548 11.2008 50.1548 9.98099V5.4563C50.1548 5.26251 49.9973 5.10498 49.8035 5.10498H48.7516C48.5578 5.10498 48.4003 5.26251 48.4003 5.4563V9.97166C48.4003 10.4245 48.1878 10.6277 47.8832 10.6277C47.8376 10.6277 47.793 10.6246 47.7484 10.6194C47.5256 10.5924 47.2665 10.6805 47.1919 10.8919L46.9929 11.4505C46.9359 11.6101 47.0012 11.7905 47.1619 11.8454C47.4365 11.9397 47.7733 11.9853 48.1132 11.9853H48.1143Z"
|
|
9
|
-
fill="currentColor"
|
|
10
|
-
/>
|
|
11
|
-
<path
|
|
12
|
-
d="M45.1235 5.02295C44.4592 5.02295 43.7483 5.16804 43.199 5.44267C43.0384 5.52247 42.9751 5.72248 43.0539 5.88312L43.3109 6.40233C43.4083 6.5982 43.6436 6.68732 43.8415 6.59301C44.1504 6.44689 44.5214 6.36191 44.8644 6.36191C45.3494 6.36191 45.6624 6.50181 45.8158 6.7609C45.9194 6.93501 45.7816 7.15679 45.5784 7.15679H44.9286C43.3772 7.15679 42.7036 7.72885 42.7036 8.65223C42.7036 9.52069 43.3679 10.1943 44.569 10.1943C45.0582 10.1943 45.4437 10.0824 45.7194 9.86372C45.8054 9.79532 45.9733 9.8316 46.0282 9.92176C46.1039 10.0461 46.249 10.1114 46.394 10.1114H47.3299C47.5237 10.1114 47.6812 9.95388 47.6812 9.76009V7.33193C47.6812 5.74321 46.7485 5.02295 45.1235 5.02295ZM45.0582 9.08646C44.6426 9.08646 44.4022 8.87401 44.4022 8.57865C44.4022 8.28329 44.6053 8.07084 45.1691 8.07084H45.5753C45.7691 8.07084 45.9266 8.22837 45.9266 8.42216V8.44496C45.9266 8.48435 45.9204 8.52373 45.9049 8.56C45.7546 8.91857 45.4271 9.08646 45.0582 9.08646Z"
|
|
13
|
-
fill="currentColor"
|
|
14
|
-
/>
|
|
15
|
-
<path
|
|
16
|
-
d="M40.2818 5.02295C39.7968 5.02295 39.3501 5.14938 38.9894 5.39914C38.8972 5.46236 38.7646 5.42712 38.7138 5.33903C38.6443 5.21675 38.4899 5.10586 38.349 5.10586H37.3738C37.18 5.10586 37.0225 5.26338 37.0225 5.45718V9.75905C37.0225 9.95285 37.18 10.1104 37.3738 10.1104H38.4257C38.6195 10.1104 38.777 9.95285 38.777 9.75905V7.69154C38.777 6.86039 39.2112 6.50907 39.774 6.50907C40.2818 6.50907 40.5958 6.81375 40.5958 7.53402V9.75905C40.5958 9.95285 40.7533 10.1104 40.9471 10.1104H41.999C42.1928 10.1104 42.3503 9.95285 42.3503 9.75905V7.24798C42.3503 5.69657 41.4549 5.02295 40.2818 5.02295Z"
|
|
17
|
-
fill="currentColor"
|
|
18
|
-
/>
|
|
19
|
-
<path
|
|
20
|
-
d="M34.9402 5.10602H35.9921C36.1859 5.10602 36.3434 5.26354 36.3434 5.45734V9.75921C36.3434 9.95301 36.1859 10.1105 35.9921 10.1105H34.9402C34.7464 10.1105 34.5889 9.95301 34.5889 9.75921V5.4563C34.5889 5.26251 34.7464 5.10498 34.9402 5.10498V5.10602Z"
|
|
21
|
-
fill="currentColor"
|
|
22
|
-
/>
|
|
23
|
-
<path
|
|
24
|
-
d="M31.9216 5.02295C31.3889 5.02295 30.9111 5.17944 30.538 5.4634C30.3474 5.60848 30.0479 5.60019 29.8644 5.44578C29.5224 5.15871 29.0737 5.02295 28.569 5.02295C28.114 5.02295 27.6974 5.14317 27.3565 5.38463C27.2684 5.44681 27.1409 5.41365 27.0922 5.32971C27.0072 5.18255 26.8373 5.10689 26.6673 5.10689H25.7522C25.5584 5.10689 25.4009 5.26442 25.4009 5.45821V9.76009C25.4009 9.95388 25.5584 10.1114 25.7522 10.1114H26.8041C26.9979 10.1114 27.1554 9.95388 27.1554 9.76009V7.62729C27.1554 6.8521 27.5244 6.51011 28.0415 6.51011C28.513 6.51011 28.7991 6.81479 28.7991 7.53505V9.76009C28.7991 9.95388 28.9566 10.1114 29.1504 10.1114H30.2023C30.3961 10.1114 30.5536 9.95388 30.5536 9.76009V7.62729C30.5536 6.8521 30.9225 6.51011 31.4314 6.51011C31.8926 6.51011 32.1889 6.81479 32.1889 7.53505V9.76009C32.1889 9.95388 32.3465 10.1114 32.5403 10.1114H33.5922C33.786 10.1114 33.9435 9.95388 33.9435 9.76009V7.24902C33.9435 5.69761 33.0844 5.02399 31.9216 5.02399V5.02295Z"
|
|
25
|
-
fill="currentColor"
|
|
26
|
-
/>
|
|
27
|
-
<path
|
|
28
|
-
d="M23.3201 5.10596H24.372C24.5658 5.10596 24.7233 5.26348 24.7233 5.45728V9.75915C24.7233 9.95295 24.5658 10.1105 24.372 10.1105H23.3201C23.1263 10.1105 22.9688 9.95295 22.9688 9.75915V5.45728C22.9688 5.26348 23.1263 5.10596 23.3201 5.10596Z"
|
|
29
|
-
fill="currentColor"
|
|
30
|
-
/>
|
|
31
|
-
<path
|
|
32
|
-
d="M21.3478 5.40131C21.2463 5.4749 21.0835 5.42826 21.039 5.32152C20.9799 5.18368 20.8307 5.10596 20.6814 5.10596H19.7073C19.5135 5.10596 19.356 5.26348 19.356 5.45728V9.75915C19.356 9.95295 19.5135 10.1105 19.7073 10.1105H20.7592C20.953 10.1105 21.1105 9.95295 21.1105 9.75915V7.81082C21.1105 6.92267 21.6121 6.5641 22.3375 6.57342C22.5417 6.57549 22.7075 6.40968 22.7075 6.20552V5.37333C22.7075 5.17643 22.5365 5.01994 22.3406 5.04274C21.951 5.08834 21.6162 5.20752 21.3478 5.40028V5.40131Z"
|
|
33
|
-
fill="currentColor"
|
|
34
|
-
/>
|
|
35
|
-
<path
|
|
36
|
-
d="M17.2727 5.10602H18.3246C18.5184 5.10602 18.6759 5.26354 18.6759 5.45734V9.75921C18.6759 9.95301 18.5184 10.1105 18.3246 10.1105H17.2727C17.0789 10.1105 16.9214 9.95301 16.9214 9.75921V5.4563C16.9214 5.26251 17.0789 5.10498 17.2727 5.10498V5.10602Z"
|
|
37
|
-
fill="currentColor"
|
|
38
|
-
/>
|
|
39
|
-
<path
|
|
40
|
-
d="M14.5936 9.97882C14.6599 10.0617 14.7615 10.1104 14.8682 10.1104H16.0994C16.3927 10.1104 16.5564 9.77259 16.3751 9.54148L14.7594 7.48848C14.6506 7.35065 14.661 7.15271 14.7832 7.02627L16.0693 5.70078C16.2849 5.47797 16.1274 5.10489 15.8175 5.10489H14.7128C14.6216 5.10489 14.5335 5.14116 14.4682 5.20437L13.3759 6.2687C13.1531 6.4853 12.7789 6.32777 12.7789 6.01687V3.6084C12.7789 3.4146 12.6214 3.25708 12.4276 3.25708H11.3757C11.1819 3.25708 11.0244 3.4146 11.0244 3.6084V9.75808C11.0244 9.95188 11.1819 10.1094 11.3757 10.1094H12.4276C12.6214 10.1094 12.7789 9.95188 12.7789 9.75808V9.02538C12.7789 8.93315 12.8152 8.84506 12.8795 8.77873L13.0183 8.63779C13.1655 8.48752 13.4111 8.49996 13.5427 8.66473L14.5936 9.97778V9.97882Z"
|
|
41
|
-
fill="currentColor"
|
|
42
|
-
/>
|
|
43
|
-
<path
|
|
44
|
-
d="M17.7994 4.61174C18.3471 4.61174 18.7912 4.1677 18.7912 3.61996C18.7912 3.07221 18.3471 2.62817 17.7994 2.62817C17.2517 2.62817 16.8076 3.07221 16.8076 3.61996C16.8076 4.1677 17.2517 4.61174 17.7994 4.61174Z"
|
|
45
|
-
fill="currentColor"
|
|
46
|
-
/>
|
|
47
|
-
<path
|
|
48
|
-
d="M23.8463 4.61174C24.394 4.61174 24.8381 4.1677 24.8381 3.61996C24.8381 3.07221 24.394 2.62817 23.8463 2.62817C23.2985 2.62817 22.8545 3.07221 22.8545 3.61996C22.8545 4.1677 23.2985 4.61174 23.8463 4.61174Z"
|
|
49
|
-
fill="currentColor"
|
|
50
|
-
/>
|
|
51
|
-
<path
|
|
52
|
-
d="M35.4669 4.61174C36.0146 4.61174 36.4587 4.1677 36.4587 3.61996C36.4587 3.07221 36.0146 2.62817 35.4669 2.62817C34.9191 2.62817 34.4751 3.07221 34.4751 3.61996C34.4751 4.1677 34.9191 4.61174 35.4669 4.61174Z"
|
|
53
|
-
fill="currentColor"
|
|
54
|
-
/>
|
|
55
|
-
<path
|
|
56
|
-
d="M49.1602 4.61174C49.708 4.61174 50.152 4.1677 50.152 3.61996C50.152 3.07221 49.708 2.62817 49.1602 2.62817C48.6125 2.62817 48.1685 3.07221 48.1685 3.61996C48.1685 4.1677 48.6125 4.61174 49.1602 4.61174Z"
|
|
57
|
-
fill="currentColor"
|
|
58
|
-
/>
|
|
59
|
-
<path
|
|
60
|
-
d="M3.85108 5.50601C3.07279 4.73497 1.86959 4.69455 1.09129 5.46456C0.312997 6.2356 0.349269 7.53725 1.12757 8.30829L6.22743 13.3854C7.01712 14.175 8.23172 14.2134 9.01002 13.4423C9.78831 12.6713 9.78106 11.437 8.98618 10.6421L3.85108 5.50601Z"
|
|
61
|
-
fill="currentColor"
|
|
62
|
-
/>
|
|
63
|
-
<path
|
|
64
|
-
fill-rule="evenodd"
|
|
65
|
-
clip-rule="evenodd"
|
|
66
|
-
d="M3.21162 1.41864C2.91212 1.48186 2.77843 1.85805 2.98259 2.08397L3.74327 2.84465L1.0923 5.46454C0.349235 6.2076 0.205183 7.38488 1.12857 8.30827L5.26566 12.434V6.91646L6.54866 5.64693L7.28032 6.37963C7.48552 6.60452 7.85964 6.52679 7.95395 6.23765L9.80382 0.515982C9.89813 0.227878 9.64215 -0.054008 9.34265 0.00920909L3.21162 1.41864Z"
|
|
67
|
-
fill="currentColor"
|
|
68
|
-
/>
|
|
69
|
-
</svg>
|
|
70
|
-
</template>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
-
declare const _default: typeof __VLS_export;
|
|
3
|
-
export default _default;
|