shared-ritm 1.0.50 → 1.0.52

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 (39) hide show
  1. package/README.md +93 -0
  2. package/dist/index.css +1 -1
  3. package/dist/shared-ritm.es.js +1104 -1135
  4. package/dist/shared-ritm.umd.js +7 -7
  5. package/dist/types/api/services/ProjectsService.d.ts +0 -10
  6. package/dist/types/index.d.ts +1 -2
  7. package/package.json +56 -56
  8. package/src/App.vue +2404 -2404
  9. package/src/api/services/AuthService.ts +37 -37
  10. package/src/api/services/GanttService.ts +17 -17
  11. package/src/api/services/MetricsService.ts +74 -74
  12. package/src/api/services/ProjectsService.ts +15 -56
  13. package/src/api/services/RepairsService.ts +82 -82
  14. package/src/api/services/TasksService.ts +15 -15
  15. package/src/api/settings/ApiService.ts +124 -124
  16. package/src/api/types/Api_Repairs.ts +57 -57
  17. package/src/api/types/Api_Tasks.ts +99 -99
  18. package/src/common/app-icon/AppIcon.vue +104 -104
  19. package/src/common/app-input/AppInput.vue +128 -128
  20. package/src/common/app-input-search/AppInputSearch.vue +168 -170
  21. package/src/common/app-layout/AppLayout.vue +61 -62
  22. package/src/common/app-layout/components/AppLayoutHeader.vue +119 -119
  23. package/src/common/app-loader/index.vue +41 -43
  24. package/src/common/app-page-layout/AppPageLayout.vue +122 -122
  25. package/src/common/app-select/AppSelect.vue +154 -154
  26. package/src/common/app-sidebar/AppSidebar.vue +163 -163
  27. package/src/common/app-sidebar/components/SidebarMenu.vue +27 -27
  28. package/src/common/app-sidebar/components/SidebarMenuItem.vue +134 -134
  29. package/src/common/app-toggle/index.vue +23 -23
  30. package/src/common/app-wrapper/AppWrapper.vue +25 -25
  31. package/src/global.d.ts +1 -1
  32. package/src/icons/sidebar/projects-icon.vue +31 -31
  33. package/src/icons/sidebar/tasks_tasks-icon.vue +39 -39
  34. package/src/icons/sidebar/tasks_today-icon.vue +27 -27
  35. package/src/index.ts +34 -35
  36. package/src/main.ts +15 -15
  37. package/src/quasar-user-options.ts +17 -17
  38. package/src/shared/styles/general.css +77 -77
  39. package/src/shims-vue.d.ts +5 -5
@@ -1,27 +1,27 @@
1
- <template>
2
- <div :class="$style.wrapper">
3
- <sidebar-menu-item v-for="(item, index) in menuItems" :key="index" :item="item" :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
- }
15
- const props = defineProps<Props>()
16
- </script>
17
-
18
- <style lang="scss" module>
19
- .wrapper {
20
- overflow-y: auto;
21
- overflow-x: hidden;
22
- flex-grow: 1;
23
- :global(.q-item) {
24
- min-height: 54px;
25
- }
26
- }
27
- </style>
1
+ <template>
2
+ <div :class="$style.wrapper">
3
+ <sidebar-menu-item v-for="(item, index) in menuItems" :key="index" :item="item" :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
+ }
15
+ const props = defineProps<Props>()
16
+ </script>
17
+
18
+ <style lang="scss" module>
19
+ .wrapper {
20
+ overflow-y: auto;
21
+ overflow-x: hidden;
22
+ flex-grow: 1;
23
+ :global(.q-item) {
24
+ min-height: 54px;
25
+ }
26
+ }
27
+ </style>
@@ -1,134 +1,134 @@
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" />
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
- @click="goToRoute(item)"
37
- >
38
- <q-tooltip
39
- v-if="minify"
40
- :delay="100"
41
- transition-show="jump-right"
42
- transition-hide="jump-left"
43
- anchor="center right"
44
- self="center left"
45
- >
46
- {{ item.label }}
47
- </q-tooltip>
48
-
49
- <q-item-section v-if="item.icon" avatar>
50
- <app-icon :name="item.icon" color="white" size="24px" />
51
- </q-item-section>
52
-
53
- <q-item-section :class="$style['menu-item__label']">{{ item.label }}</q-item-section>
54
- </q-item>
55
- </template>
56
-
57
- <script lang="ts" setup>
58
- import { defineProps, reactive } from 'vue'
59
- import AppIcon from '@/common/app-icon/AppIcon.vue'
60
-
61
- interface Props {
62
- minify?: boolean
63
- item: {
64
- name: string
65
- label: string
66
- icon: string
67
- href: string
68
- to: string
69
- items: any[]
70
- }
71
- }
72
-
73
- const props = defineProps<Props>()
74
-
75
- const test = reactive({
76
- 'repairs-icon': true,
77
- })
78
-
79
- const goToRoute = (item: any) => {
80
- window.location.href = item.to
81
- }
82
-
83
- const isRouteActive = (item: any) => {
84
- return (item.to === '' && item.items.find((x: any) => x.to === '/repairs/')) || item.to === '/repairs/'
85
- }
86
- </script>
87
-
88
- <style lang="scss" scoped>
89
- .expansion-item-active {
90
- background: rgba(243, 249, 253, 0.1);
91
- border-radius: 10px;
92
- }
93
- </style>
94
-
95
- <style lang="scss" module>
96
- .menu-item {
97
- margin: 0 8px;
98
- &:global(.menu-active) {
99
- border-radius: 10px;
100
- background: rgba(243, 249, 253, 0.1);
101
- }
102
- :global(.q-item__section--avatar) {
103
- min-width: 24px;
104
- padding-right: 14px;
105
- }
106
-
107
- :global(.q-expansion-item__content .q-item) {
108
- padding-left: 20px;
109
- }
110
- :global(.q-item__section--main ~ .q-item__section--side) {
111
- color: white;
112
- }
113
- &__label {
114
- color: #fff;
115
- font-family: 'Nunito Sans', sans-serif;
116
- font-size: 16px;
117
- font-weight: 300;
118
- white-space: nowrap;
119
- }
120
- }
121
-
122
- @media (max-width: 1440px) {
123
- .menu-item {
124
- margin: 0 4px;
125
- :global(.q-item__section--avatar) {
126
- min-width: 24px;
127
- padding-right: 10px;
128
- }
129
- &__label {
130
- font-size: 14px;
131
- }
132
- }
133
- }
134
- </style>
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" />
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
+ @click="goToRoute(item)"
37
+ >
38
+ <q-tooltip
39
+ v-if="minify"
40
+ :delay="100"
41
+ transition-show="jump-right"
42
+ transition-hide="jump-left"
43
+ anchor="center right"
44
+ self="center left"
45
+ >
46
+ {{ item.label }}
47
+ </q-tooltip>
48
+
49
+ <q-item-section v-if="item.icon" avatar>
50
+ <app-icon :name="item.icon" color="white" size="24px" />
51
+ </q-item-section>
52
+
53
+ <q-item-section :class="$style['menu-item__label']">{{ item.label }}</q-item-section>
54
+ </q-item>
55
+ </template>
56
+
57
+ <script lang="ts" setup>
58
+ import { defineProps, reactive } from 'vue'
59
+ import AppIcon from '@/common/app-icon/AppIcon.vue'
60
+
61
+ interface Props {
62
+ minify?: boolean
63
+ item: {
64
+ name: string
65
+ label: string
66
+ icon: string
67
+ href: string
68
+ to: string
69
+ items: any[]
70
+ }
71
+ }
72
+
73
+ const props = defineProps<Props>()
74
+
75
+ const test = reactive({
76
+ 'repairs-icon': true,
77
+ })
78
+
79
+ const goToRoute = (item: any) => {
80
+ window.location.href = item.to
81
+ }
82
+
83
+ const isRouteActive = (item: any) => {
84
+ return (item.to === '' && item.items.find((x: any) => x.to === '/repairs/')) || item.to === '/repairs/'
85
+ }
86
+ </script>
87
+
88
+ <style lang="scss" scoped>
89
+ .expansion-item-active {
90
+ background: rgba(243, 249, 253, 0.1);
91
+ border-radius: 10px;
92
+ }
93
+ </style>
94
+
95
+ <style lang="scss" module>
96
+ .menu-item {
97
+ margin: 0 8px;
98
+ &:global(.menu-active) {
99
+ border-radius: 10px;
100
+ background: rgba(243, 249, 253, 0.1);
101
+ }
102
+ :global(.q-item__section--avatar) {
103
+ min-width: 24px;
104
+ padding-right: 14px;
105
+ }
106
+
107
+ :global(.q-expansion-item__content .q-item) {
108
+ padding-left: 20px;
109
+ }
110
+ :global(.q-item__section--main ~ .q-item__section--side) {
111
+ color: white;
112
+ }
113
+ &__label {
114
+ color: #fff;
115
+ font-family: 'Nunito Sans', sans-serif;
116
+ font-size: 16px;
117
+ font-weight: 300;
118
+ white-space: nowrap;
119
+ }
120
+ }
121
+
122
+ @media (max-width: 1440px) {
123
+ .menu-item {
124
+ margin: 0 4px;
125
+ :global(.q-item__section--avatar) {
126
+ min-width: 24px;
127
+ padding-right: 10px;
128
+ }
129
+ &__label {
130
+ font-size: 14px;
131
+ }
132
+ }
133
+ }
134
+ </style>
@@ -1,23 +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>
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>
@@ -1,25 +1,25 @@
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;
12
- padding: 30px;
13
- border-radius: 24px;
14
- background: #fff;
15
- box-shadow: 0px 6px 58px 0px rgba(0, 49, 122, 0.1);
16
- }
17
-
18
- @media (max-width: 1440px) {
19
- .app-wrapper {
20
- margin: 10px 0;
21
- padding: 14px;
22
- border-radius: 8px;
23
- }
24
- }
25
- </style>
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;
12
+ padding: 30px;
13
+ border-radius: 24px;
14
+ background: #fff;
15
+ box-shadow: 0px 6px 58px 0px rgba(0, 49, 122, 0.1);
16
+ }
17
+
18
+ @media (max-width: 1440px) {
19
+ .app-wrapper {
20
+ margin: 10px 0;
21
+ padding: 14px;
22
+ border-radius: 14px;
23
+ }
24
+ }
25
+ </style>
package/src/global.d.ts CHANGED
@@ -1 +1 @@
1
- declare module 'shared-ritm'
1
+ declare module 'shared-ritm'
@@ -1,31 +1,31 @@
1
- <template>
2
- <svg
3
- xmlns="http://www.w3.org/2000/svg"
4
- width="currentWidth"
5
- height="currentHeight"
6
- viewBox="0 0 24 24"
7
- fill="currentFill"
8
- >
9
- <path
10
- d="M13.01 2.91995L18.91 5.53995C20.61 6.28995 20.61 7.52995 18.91 8.27995L13.01 10.8999C12.34 11.1999 11.24 11.1999 10.57 10.8999L4.67002 8.27995C2.97002 7.52995 2.97002 6.28995 4.67002 5.53995L10.57 2.91995C11.24 2.61995 12.34 2.61995 13.01 2.91995Z"
11
- stroke="currentStroke"
12
- stroke-width="1.5"
13
- stroke-linecap="round"
14
- stroke-linejoin="round"
15
- />
16
- <path
17
- d="M3 11C3 11.84 3.63 12.81 4.4 13.15L11.19 16.17C11.71 16.4 12.3 16.4 12.81 16.17L19.6 13.15C20.37 12.81 21 11.84 21 11"
18
- stroke="currentStroke"
19
- stroke-width="1.5"
20
- stroke-linecap="round"
21
- stroke-linejoin="round"
22
- />
23
- <path
24
- d="M3 16C3 16.93 3.55 17.77 4.4 18.15L11.19 21.17C11.71 21.4 12.3 21.4 12.81 21.17L19.6 18.15C20.45 17.77 21 16.93 21 16"
25
- stroke="currentStroke"
26
- stroke-width="1.5"
27
- stroke-linecap="round"
28
- stroke-linejoin="round"
29
- />
30
- </svg>
31
- </template>
1
+ <template>
2
+ <svg
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ width="currentWidth"
5
+ height="currentHeight"
6
+ viewBox="0 0 24 24"
7
+ fill="currentFill"
8
+ >
9
+ <path
10
+ d="M13.01 2.91995L18.91 5.53995C20.61 6.28995 20.61 7.52995 18.91 8.27995L13.01 10.8999C12.34 11.1999 11.24 11.1999 10.57 10.8999L4.67002 8.27995C2.97002 7.52995 2.97002 6.28995 4.67002 5.53995L10.57 2.91995C11.24 2.61995 12.34 2.61995 13.01 2.91995Z"
11
+ stroke="currentStroke"
12
+ stroke-width="1.5"
13
+ stroke-linecap="round"
14
+ stroke-linejoin="round"
15
+ />
16
+ <path
17
+ d="M3 11C3 11.84 3.63 12.81 4.4 13.15L11.19 16.17C11.71 16.4 12.3 16.4 12.81 16.17L19.6 13.15C20.37 12.81 21 11.84 21 11"
18
+ stroke="currentStroke"
19
+ stroke-width="1.5"
20
+ stroke-linecap="round"
21
+ stroke-linejoin="round"
22
+ />
23
+ <path
24
+ d="M3 16C3 16.93 3.55 17.77 4.4 18.15L11.19 21.17C11.71 21.4 12.3 21.4 12.81 21.17L19.6 18.15C20.45 17.77 21 16.93 21 16"
25
+ stroke="currentStroke"
26
+ stroke-width="1.5"
27
+ stroke-linecap="round"
28
+ stroke-linejoin="round"
29
+ />
30
+ </svg>
31
+ </template>
@@ -1,39 +1,39 @@
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="M12.3701 8.87988H17.6201"
5
- stroke="currentStroke"
6
- stroke-width="1.5"
7
- stroke-linecap="round"
8
- stroke-linejoin="round"
9
- />
10
- <path
11
- d="M6.37988 8.87988L7.12988 9.62988L9.37988 7.37988"
12
- stroke="currentStroke"
13
- stroke-width="1.5"
14
- stroke-linecap="round"
15
- stroke-linejoin="round"
16
- />
17
- <path
18
- d="M12.3701 15.8799H17.6201"
19
- stroke="currentStroke"
20
- stroke-width="1.5"
21
- stroke-linecap="round"
22
- stroke-linejoin="round"
23
- />
24
- <path
25
- d="M6.37988 15.8799L7.12988 16.6299L9.37988 14.3799"
26
- stroke="currentStroke"
27
- stroke-width="1.5"
28
- stroke-linecap="round"
29
- stroke-linejoin="round"
30
- />
31
- <path
32
- d="M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z"
33
- stroke="currentStroke"
34
- stroke-width="1.5"
35
- stroke-linecap="round"
36
- stroke-linejoin="round"
37
- />
38
- </svg>
39
- </template>
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="M12.3701 8.87988H17.6201"
5
+ stroke="currentStroke"
6
+ stroke-width="1.5"
7
+ stroke-linecap="round"
8
+ stroke-linejoin="round"
9
+ />
10
+ <path
11
+ d="M6.37988 8.87988L7.12988 9.62988L9.37988 7.37988"
12
+ stroke="currentStroke"
13
+ stroke-width="1.5"
14
+ stroke-linecap="round"
15
+ stroke-linejoin="round"
16
+ />
17
+ <path
18
+ d="M12.3701 15.8799H17.6201"
19
+ stroke="currentStroke"
20
+ stroke-width="1.5"
21
+ stroke-linecap="round"
22
+ stroke-linejoin="round"
23
+ />
24
+ <path
25
+ d="M6.37988 15.8799L7.12988 16.6299L9.37988 14.3799"
26
+ stroke="currentStroke"
27
+ stroke-width="1.5"
28
+ stroke-linecap="round"
29
+ stroke-linejoin="round"
30
+ />
31
+ <path
32
+ d="M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z"
33
+ stroke="currentStroke"
34
+ stroke-width="1.5"
35
+ stroke-linecap="round"
36
+ stroke-linejoin="round"
37
+ />
38
+ </svg>
39
+ </template>
@@ -1,27 +1,27 @@
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.31006 14.7L10.8101 16.2L14.8101 12.2"
5
- stroke="currentStroke"
6
- stroke-width="1.5"
7
- stroke-linecap="round"
8
- stroke-linejoin="round"
9
- />
10
- <path
11
- d="M10 6H14C16 6 16 5 16 4C16 2 15 2 14 2H10C9 2 8 2 8 4C8 6 9 6 10 6Z"
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="M16 4.02002C19.33 4.20002 21 5.43002 21 10V16C21 20 20 22 15 22H9C4 22 3 20 3 16V10C3 5.44002 4.67 4.20002 8 4.02002"
20
- stroke="currentStroke"
21
- stroke-width="1.5"
22
- stroke-miterlimit="10"
23
- stroke-linecap="round"
24
- stroke-linejoin="round"
25
- />
26
- </svg>
27
- </template>
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.31006 14.7L10.8101 16.2L14.8101 12.2"
5
+ stroke="currentStroke"
6
+ stroke-width="1.5"
7
+ stroke-linecap="round"
8
+ stroke-linejoin="round"
9
+ />
10
+ <path
11
+ d="M10 6H14C16 6 16 5 16 4C16 2 15 2 14 2H10C9 2 8 2 8 4C8 6 9 6 10 6Z"
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="M16 4.02002C19.33 4.20002 21 5.43002 21 10V16C21 20 20 22 15 22H9C4 22 3 20 3 16V10C3 5.44002 4.67 4.20002 8 4.02002"
20
+ stroke="currentStroke"
21
+ stroke-width="1.5"
22
+ stroke-miterlimit="10"
23
+ stroke-linecap="round"
24
+ stroke-linejoin="round"
25
+ />
26
+ </svg>
27
+ </template>