shared-ritm 1.1.9 → 1.1.11

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 (79) hide show
  1. package/package.json +10 -9
  2. package/src/App.vue +2411 -0
  3. package/src/api/services/AuthService.ts +41 -0
  4. package/src/api/services/GanttService.ts +17 -0
  5. package/src/api/services/MetricsService.ts +101 -0
  6. package/src/api/services/ProjectsService.ts +57 -0
  7. package/src/api/services/RepairsService.ts +82 -0
  8. package/src/api/services/TasksService.ts +27 -0
  9. package/src/api/settings/ApiService.ts +124 -0
  10. package/src/api/types/Api_Metrics.ts +0 -0
  11. package/src/api/types/Api_Projects.ts +33 -0
  12. package/src/api/types/Api_Repairs.ts +57 -0
  13. package/src/api/types/Api_Tasks.ts +124 -0
  14. package/src/common/app-button/AppButton.vue +173 -0
  15. package/src/common/app-checkbox/AppCheckbox.vue +26 -0
  16. package/src/common/app-date-picker/AppDatePicker.vue +66 -0
  17. package/src/common/app-icon/AppIcon.vue +104 -0
  18. package/src/common/app-input/AppInput.vue +147 -0
  19. package/src/common/app-input-search/AppInputSearch.vue +170 -0
  20. package/src/common/app-layout/AppLayout.vue +62 -0
  21. package/src/common/app-layout/components/AppLayoutHeader.vue +124 -0
  22. package/src/common/app-loader/index.vue +43 -0
  23. package/src/common/app-page-layout/AppPageLayout.vue +122 -0
  24. package/src/common/app-select/AppSelect.vue +157 -0
  25. package/src/common/app-sheet/AppSheet.vue +114 -0
  26. package/src/common/app-sidebar/AppSidebar.vue +167 -0
  27. package/src/common/app-sidebar/components/SidebarMenu.vue +29 -0
  28. package/src/common/app-sidebar/components/SidebarMenuItem.vue +137 -0
  29. package/src/common/app-toggle/AppToggle.vue +23 -0
  30. package/src/common/app-wrapper/AppWrapper.vue +28 -0
  31. package/src/global.d.ts +1 -0
  32. package/src/icons/components/arrow-down-icon.vue +25 -0
  33. package/src/icons/components/arrow-frame-icon.vue +19 -0
  34. package/src/icons/components/arrow-square.vue +22 -0
  35. package/src/icons/header/flashIcon.vue +24 -0
  36. package/src/icons/header/notificationIcon.vue +18 -0
  37. package/src/icons/header/searchStatusIcon.vue +24 -0
  38. package/src/icons/header/smallCapsIcon.vue +34 -0
  39. package/src/icons/sidebar/assign-module-icon.vue +36 -0
  40. package/src/icons/sidebar/instrument-history-icon.vue +32 -0
  41. package/src/icons/sidebar/instrument-order-icon.vue +38 -0
  42. package/src/icons/sidebar/instrument-work-zone-icon.vue +18 -0
  43. package/src/icons/sidebar/instruments-icon.vue +45 -0
  44. package/src/icons/sidebar/logo-icon.vue +15 -0
  45. package/src/icons/sidebar/logout-icon.vue +13 -0
  46. package/src/icons/sidebar/modules-icon.vue +16 -0
  47. package/src/icons/sidebar/notifications-icon.vue +24 -0
  48. package/src/icons/sidebar/order-icon.vue +44 -0
  49. package/src/icons/sidebar/pass-icon.vue +38 -0
  50. package/src/icons/sidebar/positions-icon.vue +42 -0
  51. package/src/icons/sidebar/preorder-icon.vue +19 -0
  52. package/src/icons/sidebar/projects-icon.vue +31 -0
  53. package/src/icons/sidebar/repair-object-icon.vue +18 -0
  54. package/src/icons/sidebar/repairs-icon.vue +20 -0
  55. package/src/icons/sidebar/roles-icon.vue +26 -0
  56. package/src/icons/sidebar/status-history-icon.vue +24 -0
  57. package/src/icons/sidebar/tasks-icon.vue +28 -0
  58. package/src/icons/sidebar/tasks_tasks-icon.vue +39 -0
  59. package/src/icons/sidebar/tasks_today-icon.vue +27 -0
  60. package/src/icons/sidebar/teams-icon.vue +32 -0
  61. package/src/icons/sidebar/user-icon.vue +18 -0
  62. package/src/icons/sidebar/users-icon.vue +46 -0
  63. package/src/icons/sidebar/videosources-icon.vue +19 -0
  64. package/src/icons/sidebar/videowall-icon.vue +13 -0
  65. package/src/icons/sidebar/videozones-icon.vue +21 -0
  66. package/src/icons/sidebar/warehouses-icon.vue +43 -0
  67. package/src/icons/sidebar/workshop-icon.vue +100 -0
  68. package/src/icons/sidebar/workzones-icon.vue +22 -0
  69. package/src/index.ts +57 -0
  70. package/src/main.ts +15 -0
  71. package/src/quasar-user-options.ts +17 -0
  72. package/src/shared/fonts/Montserrat-Bold.ttf +0 -0
  73. package/src/shared/fonts/Montserrat.ttf +0 -0
  74. package/src/shared/fonts/NunitoSansFont.ttf +0 -0
  75. package/src/shared/fonts/NunitoSans_7pt-Bold.ttf +0 -0
  76. package/src/shared/styles/general.css +96 -0
  77. package/src/shims-vue.d.ts +5 -0
  78. package/src/styles/variables.sass +12 -0
  79. package/src/utils/notification.ts +13 -0
@@ -0,0 +1,167 @@
1
+ <template>
2
+ <q-drawer
3
+ :key="`${drawer}`"
4
+ v-model="drawer"
5
+ :class="$style.drawer"
6
+ :mini="isSidebarMini"
7
+ :overlay="!isFixSidebar"
8
+ :width="drawerWidth"
9
+ :mini-width="drawerMiniWidth"
10
+ :breakpoint="960"
11
+ show-if-above
12
+ @mouseover="toggleSidebarMini(false)"
13
+ @mouseout="toggleSidebarMini(true)"
14
+ >
15
+ <template v-if="isTablet">
16
+ <q-item :class="$style['tablet-logo']">
17
+ <q-item-section avatar>
18
+ <q-btn
19
+ round
20
+ unelevated
21
+ :class="$style['tablet-logo__btn']"
22
+ :icon="tabletLogoBtn"
23
+ @click="openDrawerIsTablet()"
24
+ />
25
+ </q-item-section>
26
+ <q-item-section :class="$style['logo__text']">РИТМ</q-item-section>
27
+ </q-item>
28
+ </template>
29
+ <template v-else>
30
+ <q-item :class="$style.logo">
31
+ <q-item-section avatar>
32
+ <app-icon name="logo-icon" />
33
+ </q-item-section>
34
+ <q-item-section :class="$style['logo__text']">РИТМ</q-item-section>
35
+ </q-item>
36
+ <q-btn
37
+ dense
38
+ round
39
+ unelevated
40
+ class="q-mini-drawer-hide"
41
+ :class="$style['minify-btn']"
42
+ icon="chevron_left"
43
+ @click="isFixSidebar = !isFixSidebar"
44
+ >
45
+ <q-tooltip>Закрепить сайдбар</q-tooltip>
46
+ </q-btn>
47
+ </template>
48
+ <sidebar-menu :main="main" :menu-items="menuItems" :minify="isSidebarMini" />
49
+ <q-item v-ripple :class="$style['menu-exit']" clickable @click="logout()">
50
+ <q-item-section avatar>
51
+ <app-icon :name="'logout-icon'" color="white" size="24px" />
52
+ </q-item-section>
53
+ <q-item-section :class="$style['menu-exit__label']">Выход</q-item-section>
54
+ </q-item>
55
+ </q-drawer>
56
+ </template>
57
+
58
+ <script setup lang="ts">
59
+ import { computed, defineProps, defineEmits, ref, watch, withDefaults } from 'vue'
60
+ import SidebarMenu from './components/SidebarMenu.vue'
61
+
62
+ import { useQuasar } from 'quasar'
63
+ import AppIcon from '@/common/app-icon/AppIcon.vue'
64
+
65
+ interface Props {
66
+ isDrawer: boolean
67
+ minify?: boolean
68
+ menuItems?: any[]
69
+ main?: boolean
70
+ }
71
+ const emits = defineEmits(['logout'])
72
+ const props = withDefaults(defineProps<Props>(), {
73
+ main: false,
74
+ menuItems: () => [],
75
+ })
76
+ const $q = useQuasar()
77
+
78
+ const drawer = ref(true)
79
+ const isSidebarMini = ref(true)
80
+ const isFixSidebar = ref(false)
81
+
82
+ const isTablet = computed(() => $q.screen.lt.lg)
83
+ const tabletLogoBtn = computed(() => (isSidebarMini.value ? 'menu' : 'close'))
84
+ const drawerWidth = computed(() => (isTablet.value ? 250 : 275))
85
+ const drawerMiniWidth = computed(() => (isTablet.value ? 47 : 72))
86
+
87
+ function toggleSidebarMini(value: boolean): void {
88
+ if (!isFixSidebar.value && !isTablet.value) isSidebarMini.value = value
89
+ }
90
+
91
+ function openDrawerIsTablet() {
92
+ isFixSidebar.value = !isFixSidebar.value
93
+ isSidebarMini.value = !isSidebarMini.value
94
+ }
95
+
96
+ function logout(): void {
97
+ emits('logout')
98
+ }
99
+
100
+ watch(
101
+ () => isTablet.value,
102
+ (value: boolean) => {
103
+ isFixSidebar.value = value
104
+ },
105
+ )
106
+ </script>
107
+
108
+ <style lang="scss" module>
109
+ .drawer {
110
+ display: flex;
111
+ flex-direction: column;
112
+ height: 100vh;
113
+ background: linear-gradient(184deg, #0b3f8e 9.62%, #5386d3 59.23%, #5386d3 91.63%);
114
+ border-right: 1px solid #e4e6e8;
115
+ &::-webkit-scrollbar {
116
+ height: 4px;
117
+ width: 4px;
118
+ }
119
+ &::-webkit-scrollbar-thumb {
120
+ width: 4px;
121
+ height: 4px;
122
+ }
123
+ }
124
+ .logo {
125
+ display: flex;
126
+ justify-content: center;
127
+ margin: 24px 0;
128
+ &__text {
129
+ color: white;
130
+ font-size: 20px;
131
+ font-weight: 700;
132
+ }
133
+ }
134
+ .tablet-logo {
135
+ border-bottom: 1px solid white;
136
+ &__btn {
137
+ color: white;
138
+ }
139
+ }
140
+
141
+ .minify-btn {
142
+ background: #0b3f8e;
143
+ color: white;
144
+ position: absolute;
145
+ top: 25px;
146
+ right: -17px;
147
+
148
+ &:global(.--mini) {
149
+ :global(.q-icon) {
150
+ transform: rotate(180deg);
151
+ }
152
+ }
153
+ }
154
+
155
+ .menu-exit {
156
+ border-top: 1px solid white;
157
+ :global(.q-item__section--avatar) {
158
+ min-width: 24px;
159
+ }
160
+ &__label {
161
+ color: #fff;
162
+ font-family: 'Nunito Sans', sans-serif;
163
+ font-size: 16px;
164
+ font-weight: 300;
165
+ }
166
+ }
167
+ </style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <div :class="$style.wrapper">
3
+ <sidebar-menu-item v-for="(item, index) in menuItems" :key="index" :item="item" :main="main" :minify="minify" />
4
+ </div>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ import { defineProps } from 'vue'
9
+ import SidebarMenuItem from './SidebarMenuItem.vue'
10
+
11
+ interface Props {
12
+ menuItems?: any[]
13
+ minify?: boolean
14
+ main: boolean
15
+ }
16
+
17
+ const props = defineProps<Props>()
18
+ </script>
19
+
20
+ <style lang="scss" module>
21
+ .wrapper {
22
+ overflow-y: auto;
23
+ overflow-x: hidden;
24
+ flex-grow: 1;
25
+ :global(.q-item) {
26
+ min-height: 54px;
27
+ }
28
+ }
29
+ </style>
@@ -0,0 +1,137 @@
1
+ <template>
2
+ <q-expansion-item
3
+ v-if="item.items"
4
+ v-model="test[`${item.icon}`]"
5
+ header-class="text-purple"
6
+ :class="[$style['menu-item'], { 'expansion-item-active': isRouteActive(item) && minify }]"
7
+ >
8
+ <template #header>
9
+ <q-tooltip
10
+ v-if="minify"
11
+ :delay="100"
12
+ transition-show="jump-right"
13
+ transition-hide="jump-left"
14
+ anchor="center right"
15
+ self="center left"
16
+ >
17
+ {{ item.label }}
18
+ </q-tooltip>
19
+
20
+ <q-item-section v-if="item.icon" avatar>
21
+ <app-icon :name="item.icon" color="white" size="24px" />
22
+ </q-item-section>
23
+
24
+ <q-item-section :class="$style['menu-item__label']">{{ item.label }}</q-item-section>
25
+ </template>
26
+
27
+ <sidebar-menu-item v-for="(subItem, index) in item.items" :key="index" :item="subItem" :main="main" />
28
+ </q-expansion-item>
29
+ <q-item
30
+ v-else-if="item.name !== 'sign-out'"
31
+ v-ripple
32
+ :class="$style['menu-item']"
33
+ :active="isRouteActive(item)"
34
+ active-class="menu-active"
35
+ clickable
36
+ :to="main ? item.to : ''"
37
+ @click="goToRoute(item.to)"
38
+ >
39
+ <q-tooltip
40
+ v-if="minify"
41
+ :delay="100"
42
+ transition-show="jump-right"
43
+ transition-hide="jump-left"
44
+ anchor="center right"
45
+ self="center left"
46
+ >
47
+ {{ item.label }}
48
+ </q-tooltip>
49
+
50
+ <q-item-section v-if="item.icon" avatar>
51
+ <app-icon :name="item.icon" color="white" size="24px" />
52
+ </q-item-section>
53
+
54
+ <q-item-section :class="$style['menu-item__label']">{{ item.label }}</q-item-section>
55
+ </q-item>
56
+ </template>
57
+
58
+ <script lang="ts" setup>
59
+ import { defineProps, reactive } from 'vue'
60
+ import AppIcon from '@/common/app-icon/AppIcon.vue'
61
+
62
+ interface Props {
63
+ minify?: boolean
64
+ main: boolean
65
+ item: {
66
+ name: string
67
+ label: string
68
+ icon: string
69
+ href: string
70
+ to: string
71
+ items: any[]
72
+ }
73
+ }
74
+
75
+ const emits = defineEmits(['goToRoute'])
76
+ const props = defineProps<Props>()
77
+
78
+ const test = reactive({
79
+ 'repairs-icon': true,
80
+ })
81
+
82
+ const goToRoute = (to: string) => {
83
+ if (!props.main) window.location.href = to
84
+ }
85
+
86
+ const isRouteActive = (item: any) => {
87
+ return (item.to === '' && item.items.find((x: any) => x.to === '/repairs/')) || item.to === '/repairs/'
88
+ }
89
+ </script>
90
+
91
+ <style lang="scss" scoped>
92
+ .expansion-item-active {
93
+ background: rgba(243, 249, 253, 0.1);
94
+ border-radius: 10px;
95
+ }
96
+ </style>
97
+
98
+ <style lang="scss" module>
99
+ .menu-item {
100
+ margin: 0 8px;
101
+ &:global(.menu-active) {
102
+ border-radius: 10px;
103
+ background: rgba(243, 249, 253, 0.1);
104
+ }
105
+ :global(.q-item__section--avatar) {
106
+ min-width: 24px;
107
+ padding-right: 14px;
108
+ }
109
+
110
+ :global(.q-expansion-item__content .q-item) {
111
+ padding-left: 20px;
112
+ }
113
+ :global(.q-item__section--main ~ .q-item__section--side) {
114
+ color: white;
115
+ }
116
+ &__label {
117
+ color: #fff;
118
+ font-family: 'Nunito Sans', sans-serif;
119
+ font-size: 16px;
120
+ font-weight: 300;
121
+ white-space: nowrap;
122
+ }
123
+ }
124
+
125
+ @media (max-width: 1440px) {
126
+ .menu-item {
127
+ margin: 0 4px;
128
+ :global(.q-item__section--avatar) {
129
+ min-width: 24px;
130
+ padding-right: 10px;
131
+ }
132
+ &__label {
133
+ font-size: 14px;
134
+ }
135
+ }
136
+ }
137
+ </style>
@@ -0,0 +1,23 @@
1
+ <template>
2
+ <div>
3
+ <q-toggle v-model="value" />
4
+ </div>
5
+ </template>
6
+
7
+ <script setup lang="ts">
8
+ import { computed } from 'vue'
9
+
10
+ interface Props {
11
+ modelValue: any
12
+ }
13
+
14
+ const props = defineProps<Props>()
15
+ const emit = defineEmits(['update:modelValue', 'number'])
16
+
17
+ const value = computed({
18
+ get: () => props.modelValue,
19
+ set: (newValue: any) => emit('update:modelValue', newValue),
20
+ })
21
+ </script>
22
+
23
+ <style module lang="scss"></style>
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <div class="app-wrapper">
3
+ <slot />
4
+ </div>
5
+ </template>
6
+ <script setup lang="ts"></script>
7
+ <style scoped lang="scss">
8
+ .app-wrapper {
9
+ width: 100%;
10
+ height: 100%;
11
+ margin: 20px 0 12px 0;
12
+ padding: 30px;
13
+ border-radius: 8px;
14
+ background: #fff;
15
+ outline: 4px solid #598dd5;
16
+ outline-offset: -3px;
17
+ box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25), 0px 4px 4px 0px #c4d7f1 inset,
18
+ 0px 0px 6.4px 3px rgba(31, 82, 159, 0.5), 0px 6px 58px 0px rgba(0, 49, 122, 0.1);
19
+ }
20
+
21
+ @media (max-width: 1440px) {
22
+ .app-wrapper {
23
+ margin: 10px 0;
24
+ padding: 14px;
25
+ border-radius: 8px;
26
+ }
27
+ }
28
+ </style>
@@ -0,0 +1 @@
1
+ declare module 'shared-ritm'
@@ -0,0 +1,25 @@
1
+ <script>
2
+ export default {
3
+ name: 'ArrowDownIcon',
4
+ }
5
+ </script>
6
+
7
+ <template>
8
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
9
+ <path
10
+ d="M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2Z"
11
+ stroke="#3F8CFF"
12
+ stroke-width="1.5"
13
+ stroke-miterlimit="10"
14
+ stroke-linecap="round"
15
+ stroke-linejoin="round"
16
+ />
17
+ <path
18
+ d="M15.53 10.74L12 14.26L8.47003 10.74"
19
+ stroke="#3F8CFF"
20
+ stroke-width="1.5"
21
+ stroke-linecap="round"
22
+ stroke-linejoin="round"
23
+ />
24
+ </svg>
25
+ </template>
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
3
+ <path
4
+ d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z"
5
+ stroke="currentStroke"
6
+ stroke-width="1.5"
7
+ stroke-miterlimit="10"
8
+ stroke-linecap="round"
9
+ stroke-linejoin="round"
10
+ />
11
+ <path
12
+ d="M8.46997 13.26L12 9.73999L15.53 13.26"
13
+ stroke="currentStroke"
14
+ stroke-width="1.5"
15
+ stroke-linecap="round"
16
+ stroke-linejoin="round"
17
+ />
18
+ </svg>
19
+ </template>
@@ -0,0 +1,22 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
5
+ <path
6
+ d="M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z"
7
+ stroke="#3F8CFF"
8
+ stroke-width="1.5"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ />
12
+ <path
13
+ d="M10.7402 15.53L14.2602 12L10.7402 8.46997"
14
+ stroke="#3F8CFF"
15
+ stroke-width="1.5"
16
+ stroke-linecap="round"
17
+ stroke-linejoin="round"
18
+ />
19
+ </svg>
20
+ </template>
21
+
22
+ <style scoped lang="scss"></style>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
5
+ <path
6
+ d="M6.08998 13.28H9.17998V20.48C9.17998 22.16 10.09 22.5 11.2 21.24L18.77 12.64C19.7 11.59 19.31 10.72 17.9 10.72H14.81V3.52002C14.81 1.84002 13.9 1.50002 12.79 2.76002L5.21998 11.36C4.29998 12.42 4.68998 13.28 6.08998 13.28Z"
7
+ stroke="#404650"
8
+ stroke-width="1.5"
9
+ stroke-miterlimit="10"
10
+ stroke-linecap="round"
11
+ stroke-linejoin="round"
12
+ />
13
+ <path
14
+ d="M9.18005 20.4798C9.18005 22.1598 10.0901 22.4998 11.2001 21.2398L18.7701 12.6398C19.7001 11.5898 19.3101 10.7198 17.9001 10.7198H14.8101"
15
+ stroke="#408CFF"
16
+ stroke-width="1.5"
17
+ stroke-miterlimit="10"
18
+ stroke-linecap="round"
19
+ stroke-linejoin="round"
20
+ />
21
+ </svg>
22
+ </template>
23
+
24
+ <style scoped lang="stylus"></style>
@@ -0,0 +1,18 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
3
+ <path d="M12 6.43994V9.76994" stroke="#408CFF" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" />
4
+ <path
5
+ d="M12.0199 2C8.3399 2 5.3599 4.98 5.3599 8.66V10.76C5.3599 11.44 5.0799 12.46 4.7299 13.04L3.4599 15.16C2.6799 16.47 3.2199 17.93 4.6599 18.41C9.4399 20 14.6099 20 19.3899 18.41C20.7399 17.96 21.3199 16.38 20.5899 15.16L19.3199 13.04C18.9699 12.46 18.6899 11.43 18.6899 10.76V8.66C18.6799 5 15.6799 2 12.0199 2Z"
6
+ stroke="#404650"
7
+ stroke-width="1.5"
8
+ stroke-miterlimit="10"
9
+ stroke-linecap="round"
10
+ />
11
+ <path
12
+ d="M15.33 18.8199C15.33 20.6499 13.83 22.1499 12 22.1499C11.09 22.1499 10.25 21.7699 9.65004 21.1699C9.05004 20.5699 8.67004 19.7299 8.67004 18.8199"
13
+ stroke="#404650"
14
+ stroke-width="1.5"
15
+ stroke-miterlimit="10"
16
+ />
17
+ </svg>
18
+ </template>
@@ -0,0 +1,24 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
5
+ <path
6
+ d="M20 11C20 15.97 15.97 20 11 20C6.03 20 2 15.97 2 11C2 6.03 6.03 2 11 2"
7
+ stroke="#404650"
8
+ stroke-width="1.5"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ />
12
+ <path
13
+ d="M18.9299 20.6898C19.4599 22.2898 20.6699 22.4498 21.5999 21.0498C22.4499 19.7698 21.8899 18.7198 20.3499 18.7198C19.2099 18.7098 18.5699 19.5998 18.9299 20.6898Z"
14
+ stroke="#404650"
15
+ stroke-width="1.5"
16
+ stroke-linecap="round"
17
+ stroke-linejoin="round"
18
+ />
19
+ <path d="M14 5H20" stroke="#408CFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
20
+ <path d="M14 8H17" stroke="#408CFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
21
+ </svg>
22
+ </template>
23
+
24
+ <style scoped lang="stylus"></style>
@@ -0,0 +1,34 @@
1
+ <template>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
3
+ <path
4
+ d="M1.99023 5.92995V4.41995C1.99023 3.39995 2.82023 2.56995 3.84023 2.56995H16.7602C17.7802 2.56995 18.6102 3.39995 18.6102 4.41995V5.92995"
5
+ stroke="#404650"
6
+ stroke-width="1.5"
7
+ stroke-linecap="round"
8
+ stroke-linejoin="round"
9
+ />
10
+ <path
11
+ d="M10.2998 18.0999V3.31995"
12
+ stroke="#404650"
13
+ stroke-width="1.5"
14
+ stroke-linecap="round"
15
+ stroke-linejoin="round"
16
+ />
17
+ <path d="M6.90002 18.1H12.48" stroke="#404650" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
18
+ <path d="M16.08 21.43V10.87" stroke="#408CFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
19
+ <path
20
+ d="M13.9399 21.4301H18.2199"
21
+ stroke="#3055D9"
22
+ stroke-width="1.5"
23
+ stroke-linecap="round"
24
+ stroke-linejoin="round"
25
+ />
26
+ <path
27
+ d="M13.6797 10.3401H20.6897C21.4197 10.3401 22.0097 10.9301 22.0097 11.6601V12.4601"
28
+ stroke="#404650"
29
+ stroke-width="1.5"
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ />
33
+ </svg>
34
+ </template>
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
5
+ <path
6
+ d="M9.02 2.83986L3.63 7.03986C2.73 7.73986 2 9.22986 2 10.3599V17.7699C2 20.0899 3.89 21.9899 6.21 21.9899H17.79C20.11 21.9899 22 20.0899 22 17.7799V10.4999C22 9.28986 21.19 7.73986 20.2 7.04986L14.02 2.71986C12.62 1.73986 10.37 1.78986 9.02 2.83986Z"
7
+ stroke="currentStroke"
8
+ stroke-width="1.5"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ />
12
+ <path
13
+ d="M10.5 17.9999H13.5C15.15 17.9999 16.5 16.6499 16.5 14.9999V11.9999C16.5 10.3499 15.15 8.99988 13.5 8.99988H10.5C8.85 8.99988 7.5 10.3499 7.5 11.9999V14.9999C7.5 16.6499 8.85 17.9999 10.5 17.9999Z"
14
+ stroke="currentStroke"
15
+ stroke-width="1.5"
16
+ stroke-linecap="round"
17
+ stroke-linejoin="round"
18
+ />
19
+ <path
20
+ d="M12 8.99988V17.9999"
21
+ stroke="currentStroke"
22
+ stroke-width="1.5"
23
+ stroke-linecap="round"
24
+ stroke-linejoin="round"
25
+ />
26
+ <path
27
+ d="M7.5 13.5002H16.5"
28
+ stroke="currentStroke"
29
+ stroke-width="1.5"
30
+ stroke-linecap="round"
31
+ stroke-linejoin="round"
32
+ />
33
+ </svg>
34
+ </template>
35
+
36
+ <style scoped lang="stylus"></style>
@@ -0,0 +1,32 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
5
+ <path
6
+ d="M12 22.0003C7.17 22.0003 3.25 18.0803 3.25 13.2503C3.25 8.42031 7.17 4.50031 12 4.50031C16.83 4.50031 20.75 8.42031 20.75 13.2503"
7
+ stroke="currentStroke"
8
+ stroke-width="1.5"
9
+ stroke-linecap="round"
10
+ stroke-linejoin="round"
11
+ />
12
+ <path
13
+ d="M12 8.00012V13.0001"
14
+ stroke="currentStroke"
15
+ stroke-width="1.5"
16
+ stroke-linecap="round"
17
+ stroke-linejoin="round"
18
+ />
19
+ <path
20
+ d="M9 2.00018H15"
21
+ stroke="currentStroke"
22
+ stroke-width="1.5"
23
+ stroke-miterlimit="10"
24
+ stroke-linecap="round"
25
+ stroke-linejoin="round"
26
+ />
27
+ <path d="M19 17V21" stroke="currentStroke" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
28
+ <path d="M16 17V21" stroke="currentStroke" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
29
+ </svg>
30
+ </template>
31
+
32
+ <style scoped lang="stylus"></style>
@@ -0,0 +1,38 @@
1
+ <template>
2
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path
4
+ d="M9.62012 16L11.1201 17.5L14.3701 14.5"
5
+ stroke="currentStroke"
6
+ stroke-width="1.5"
7
+ stroke-linecap="round"
8
+ stroke-linejoin="round"
9
+ />
10
+ <path
11
+ d="M8.80994 2L5.18994 5.63"
12
+ stroke="currentStroke"
13
+ stroke-width="1.5"
14
+ stroke-miterlimit="10"
15
+ stroke-linecap="round"
16
+ stroke-linejoin="round"
17
+ />
18
+ <path
19
+ d="M15.1899 2L18.8099 5.63"
20
+ stroke="currentStroke"
21
+ stroke-width="1.5"
22
+ stroke-miterlimit="10"
23
+ stroke-linecap="round"
24
+ stroke-linejoin="round"
25
+ />
26
+ <path
27
+ d="M2 7.8501C2 6.0001 2.99 5.8501 4.22 5.8501H19.78C21.01 5.8501 22 6.0001 22 7.8501C22 10.0001 21.01 9.8501 19.78 9.8501H4.22C2.99 9.8501 2 10.0001 2 7.8501Z"
28
+ stroke="currentStroke"
29
+ stroke-width="1.5"
30
+ />
31
+ <path
32
+ d="M3.5 10L4.91 18.64C5.23 20.58 6 22 8.86 22H14.89C18 22 18.46 20.64 18.82 18.76L20.5 10"
33
+ stroke="currentStroke"
34
+ stroke-width="1.5"
35
+ stroke-linecap="round"
36
+ />
37
+ </svg>
38
+ </template>