@it-enterprise/forcebpm-ui-kit 1.0.2-beta.32 → 1.0.2-beta.33

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@it-enterprise/forcebpm-ui-kit",
4
- "version": "1.0.2-beta.32",
4
+ "version": "1.0.2-beta.33",
5
5
  "description": "FBPM UI Kit",
6
6
  "author": "it-enterprise",
7
7
  "license": "MIT",
@@ -11,6 +11,7 @@ const props = defineProps({
11
11
  // action: () => {},
12
12
  // color: 'text',
13
13
  // icon: 'fire',
14
+ // size: 18,
14
15
  // dividerTop: false, // optional setting to add top visual separation of list blocks
15
16
  // dividerBottom: false // optional setting to add bottom visual separation of list blocks
16
17
  // }
@@ -73,7 +74,7 @@ const isEmpty = computed(() => !props.list.length || props.list.every(el => el.h
73
74
  <!-- List item -->
74
75
  <v-list-item :key="idx" @click="item.action">
75
76
  <v-list-item-title :class="`text-${item.color || 'subTitle'}`">
76
- <FIcon v-if="item.icon" :icon="item.icon" :color="item.color || 'text'" size="18" />
77
+ <FIcon v-if="item.icon" :icon="item.icon" :color="item.color || 'text'" :size="item.size || 18" />
77
78
  <span :class="item.icon ? 'ml-1' : 'ml-5'">{{ item.name }}</span>
78
79
  </v-list-item-title>
79
80
  </v-list-item>
package/src/FDialog.vue CHANGED
@@ -27,6 +27,10 @@ const props = defineProps({
27
27
  type: Boolean,
28
28
  default: false
29
29
  },
30
+ closeMethod: {
31
+ type: Function,
32
+ default: null
33
+ },
30
34
  headerActions: {
31
35
  type: Array,
32
36
  default: null,
@@ -86,6 +90,15 @@ const open = props => {
86
90
  emit('open', props)
87
91
  }
88
92
 
93
+ const close = () => {
94
+ if (typeof props.closeMethod === 'function') {
95
+ props.closeMethod()
96
+ emit('close')
97
+ } else {
98
+ modelValue.value = false
99
+ }
100
+ }
101
+
89
102
  watch(modelValue, val => {
90
103
  if (!val) {
91
104
  search.value = null
@@ -133,13 +146,7 @@ watch(modelValue, val => {
133
146
  <!-- Close btn -->
134
147
  <v-tooltip v-if="!disableCloseBtn" offset="10" :text="$t('buttons.close')">
135
148
  <template #activator="{ props: tooltipProps }">
136
- <v-btn
137
- v-bind="tooltipProps"
138
- variant="text"
139
- size="32"
140
- class="f-dialog-header-action f-dialog-header-action-close"
141
- @click="modelValue = false"
142
- >
149
+ <v-btn v-bind="tooltipProps" variant="text" size="32" class="f-dialog-header-action f-dialog-header-action-close" @click="close">
143
150
  <FIcon icon="times" size="18" color="fields-light" />
144
151
  </v-btn>
145
152
  </template>
@@ -159,7 +166,7 @@ watch(modelValue, val => {
159
166
  :class="noSpace ? 'ml-n1' : 'mt-5 ml-4'"
160
167
  @click="
161
168
  () => {
162
- modelValue = false
169
+ close()
163
170
  backAction()
164
171
  }
165
172
  "
@@ -222,16 +229,20 @@ watch(modelValue, val => {
222
229
  .f-dialog-header-actions {
223
230
  display: flex;
224
231
  align-items: center;
225
-
226
- .f-dialog-header-action {
227
- margin-left: 8px;
228
- }
229
232
  }
230
233
  .f-dialog-header-action {
234
+ &:hover {
235
+ .v-btn__overlay {
236
+ opacity: 0.4;
237
+ }
238
+ }
231
239
  .v-btn__overlay {
232
240
  background-color: currentColor;
233
241
  }
234
242
  }
243
+ .f-dialog-header-action {
244
+ margin-left: 8px;
245
+ }
235
246
  }
236
247
  }
237
248
  .f-dialog-body {
@@ -72,6 +72,7 @@ const modelValue = defineModel('modelValue', {
72
72
  })
73
73
 
74
74
  const search = ref('')
75
+ const chipGroup = ref(null)
75
76
  const selectedMenuId = ref(null)
76
77
  const tab = ref('USERS_BY_GROUP')
77
78
  const calculatedHeight = Math.floor(window.innerHeight * 0.1) // 10vh rounded down
@@ -436,6 +437,7 @@ const close = () => {
436
437
  state.value = false
437
438
  search.value = ''
438
439
  selectedMenuId.value = null
440
+ chipGroup.value = null
439
441
  }
440
442
 
441
443
  const selectHandler = () => {
@@ -462,6 +464,11 @@ watch(tab, () => {
462
464
  selectedMenuId.value = null
463
465
  })
464
466
 
467
+ // Clear chip group when menu changes
468
+ watch(selectedMenuId, val => {
469
+ if (!val) chipGroup.value = null
470
+ })
471
+
465
472
  // Sync with external modelValue changes
466
473
  watch(state, newState => {
467
474
  // Reset
@@ -500,6 +507,10 @@ watch(state, newState => {
500
507
  }
501
508
  }
502
509
  }
510
+
511
+ if (!newState) {
512
+ close()
513
+ }
503
514
  })
504
515
  </script>
505
516
  <template>
@@ -530,7 +541,7 @@ watch(state, newState => {
530
541
  :style="{ height: `${calculatedHeight}px` }"
531
542
  class="f-scrollbar-y"
532
543
  >
533
- <v-chip-group selected-class="active" class="pa-0" column>
544
+ <v-chip-group v-model="chipGroup" selected-class="active" class="pa-0" column>
534
545
  <v-chip
535
546
  v-for="item in menuItems"
536
547
  :key="item.id"
@@ -0,0 +1,4 @@
1
+ <svg width="15" height="17" viewBox="0 0 15 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M14.6284 4.57315L14.6286 4.57334C14.6938 4.63786 14.7454 4.7146 14.7805 4.79909C14.8156 4.88357 14.8336 4.97415 14.8333 5.06558V5.06586V16.1145C14.8331 16.2993 14.7594 16.4764 14.6282 16.6071C14.4969 16.7379 14.3189 16.8115 14.1332 16.8117H0.800116C0.614381 16.8115 0.43639 16.7379 0.305168 16.6071C0.173958 16.4764 0.100216 16.2993 0.0999999 16.1145L0.1 1.76766C0.100231 1.58296 0.173971 1.40582 0.305168 1.2751C0.43639 1.14436 0.614381 1.07075 0.800116 1.07054L10.8229 1.07054L10.8232 1.07054C10.9151 1.07028 11.0061 1.0882 11.091 1.12324C11.1759 1.15828 11.253 1.20974 11.3178 1.27462L11.318 1.27482L14.6284 4.57315ZM9.7 2.03328V1.93328H9.6H4.8H4.7V2.03328V5.22152V5.32152H4.8H9.6H9.7V5.22152V2.03328ZM13.8667 15.949H13.9667V15.849V5.17592V5.13439L13.9372 5.10508L10.783 1.96244L10.7537 1.93328H10.7124H10.6667H10.5667V2.03328V6.18426H3.83333V2.03328V1.93328H3.73333H1.06667H0.966666V2.03328V15.849V15.949H1.06667H13.8667Z" fill="#5E5CE6" stroke="white" stroke-width="0.2"/>
3
+ <path d="M7.33424 13.0263H7.33436C7.89097 13.0257 8.42468 12.8051 8.81838 12.4129C9.21208 12.0206 9.43361 11.4887 9.43424 10.9338V10.9337C9.43424 10.5197 9.31103 10.1151 9.08024 9.77093C8.84944 9.42679 8.52144 9.15863 8.13776 9.00028C7.75408 8.84194 7.33191 8.80052 6.92462 8.88124C6.51734 8.96195 6.14317 9.1612 5.84945 9.45383C5.55573 9.74647 5.35567 10.1194 5.27461 10.5254C5.19355 10.9314 5.23516 11.3522 5.39415 11.7346C5.55314 12.1171 5.82235 12.4439 6.16769 12.6738C6.51302 12.9037 6.91899 13.0263 7.33424 13.0263ZM5.68591 8.47646C6.17377 8.15168 6.74738 7.97831 7.33419 7.9783C8.12087 7.97916 8.875 8.2909 9.43115 8.84501C9.9873 9.39912 10.3001 10.1503 10.3009 10.9338C10.3009 11.5182 10.1269 12.0895 9.80103 12.5755C9.47509 13.0615 9.01179 13.4403 8.46966 13.6641C7.92753 13.8878 7.33096 13.9463 6.75541 13.8323C6.17986 13.7182 5.65124 13.4367 5.23637 13.0233C4.8215 12.61 4.53901 12.0834 4.42457 11.5102C4.31013 10.937 4.36886 10.3428 4.59335 9.80283C4.81785 9.26284 5.19804 8.80125 5.68591 8.47646Z" fill="#5E5CE6" stroke="white" stroke-width="0.2"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="19" height="18" viewBox="0 0 19 18" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.99414 8.04688H6.15039V7.09766H9.99414V8.04688Z" fill="#888EA4"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M7.93718 14.4968C9.43468 14.4968 10.8329 14.0054 11.9696 13.1863L16.2456 17.5L17.8678 16.0703L13.449 11.7393C14.3421 10.5562 14.8744 9.09101 14.8744 7.49839C14.8744 3.64882 11.7531 0.5 7.93718 0.5C4.11226 0.5 1 3.64882 1 7.49839C1 11.348 4.11226 14.4968 7.93718 14.4968ZM2.49749 7.49839C2.49749 10.5016 4.95122 12.9861 7.93718 12.9861C10.9141 12.9861 13.3769 10.5016 13.3769 7.49839C13.3769 4.49518 10.9141 2.01071 7.93718 2.01071C4.95122 2.01071 2.49749 4.49518 2.49749 7.49839Z" fill="#888EA4" stroke="#F7F7F7" stroke-width="0.4"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="19" height="18" viewBox="0 0 19 18" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M8.60156 8.14062V10.8242H7.65234V8.14062H5.15039V7.19141H7.65234V4.57227H8.60156V7.19141H11.1035V8.14062H8.60156Z" fill="#888EA4"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M7.93718 14.4968C9.43468 14.4968 10.8329 14.0054 11.9696 13.1863L16.2456 17.5L17.8678 16.0703L13.449 11.7393C14.3421 10.5562 14.8744 9.09101 14.8744 7.49839C14.8744 3.64882 11.7531 0.5 7.93718 0.5C4.11226 0.5 1 3.64882 1 7.49839C1 11.348 4.11226 14.4968 7.93718 14.4968ZM2.49749 7.49839C2.49749 10.5016 4.95122 12.9861 7.93718 12.9861C10.9141 12.9861 13.3769 10.5016 13.3769 7.49839C13.3769 4.49518 10.9141 2.01071 7.93718 2.01071C4.95122 2.01071 2.49749 4.49518 2.49749 7.49839Z" fill="#888EA4" stroke="#F7F7F7" stroke-width="0.4"/>
4
+ </svg>
@@ -260,6 +260,27 @@
260
260
  mask-size: contain;
261
261
  mask-position: center;
262
262
  }
263
+ &.save {
264
+ background-color: rgb(var(--v-theme-primary));
265
+ -webkit-mask: url('./../icons/save.svg') no-repeat;
266
+ mask: url('./../icons/save.svg') no-repeat;
267
+ mask-size: contain;
268
+ mask-position: center;
269
+ }
270
+ &.zoom-minus {
271
+ background-color: rgb(var(--v-theme-primary));
272
+ -webkit-mask: url('./../icons/zoom-minus.svg') no-repeat;
273
+ mask: url('./../icons/zoom-minus.svg') no-repeat;
274
+ mask-size: contain;
275
+ mask-position: center;
276
+ }
277
+ &.zoom-plus {
278
+ background-color: rgb(var(--v-theme-primary));
279
+ -webkit-mask: url('./../icons/zoom-plus.svg') no-repeat;
280
+ mask: url('./../icons/zoom-plus.svg') no-repeat;
281
+ mask-size: contain;
282
+ mask-position: center;
283
+ }
263
284
  }
264
285
 
265
286
  @media screen and (max-width: 1280px) {
@@ -7,4 +7,4 @@
7
7
  @use 'expansion';
8
8
  @use 'skeleton';
9
9
  @use 'card';
10
- // @use 'tables';
10
+ @use 'tables';
@@ -1,143 +1,62 @@
1
- // todo describe table styles
1
+ .f-data-table.v-data-table {
2
+ &.v-table--density-default {
3
+ --v-table-header-height: 48px;
4
+ --v-table-row-height: 48px;
5
+ }
6
+ &.v-table--fixed-header {
7
+ .v-table__wrapper {
8
+ table {
9
+ thead {
10
+ tr {
11
+ th {
12
+ border-bottom: thin solid rgb(var(--v-theme-line)) !important;
13
+ box-shadow: none;
14
+ background: rgb(var(--v-theme-background));
15
+ }
16
+ }
17
+ }
18
+ }
19
+ }
20
+ }
2
21
 
3
- // .fbpm-table.v-data-table {
4
- // width: 100%;
5
- // .v-data-table__wrapper {
6
- // overflow-x: hidden;
7
- // scrollbar-width: thin;
8
- // &::-webkit-scrollbar {
9
- // width: 2.5px;
10
- // }
11
- // &::-webkit-scrollbar-track {
12
- // box-shadow: inset 0 0 6px rgb(var(--v-theme-line));
13
- // }
14
- // &::-webkit-scrollbar-thumb {
15
- // border-top: 1px solid rgba(0, 0, 0, 0);
16
- // border-bottom: 1px solid rgba(0, 0, 0, 0);
17
- // background-clip: padding-box;
18
- // border-radius: 20px;
19
- // height: 50px;
20
- // background-color: rgb(var(--v-theme-primary));
21
- // }
22
- // }
23
- // &.darken table {
24
- // tbody {
25
- // tr {
26
- // &:nth-child(odd) {
27
- // background: var(--v-background3-base);
28
- // &:hover {
29
- // background: var(--v-background4-base) !important;
30
- // }
31
- // }
32
- // &:nth-child(even) {
33
- // background: var(--v-background4-base);
34
- // &:hover {
35
- // background: var(--v-background3-base) !important;
36
- // }
37
- // }
38
- // }
39
- // }
40
- // }
41
- // table {
42
- // width: 100%;
43
- // .fbpm-table__header,
44
- // .v-data-table-header {
45
- // tr {
46
- // th {
47
- // color: rgb(var(--v-theme-text)) !important;
48
- // font-weight: normal;
49
- // line-height: 1;
50
- // font-size: 0.8em;
51
- // padding: 4px 4px 10px 4px;
52
- // height: 24px;
53
- // box-shadow: none;
54
- // background: var(--v-background2-base);
55
- // .v-data-table-header__icon {
56
- // -webkit-mask: url("~@/assets/icons/arrow-icon.svg") no-repeat;
57
- // mask: url("~@/assets/icons/arrow-icon.svg") no-repeat;
58
- // mask-size: contain;
59
- // width: 15px;
60
- // height: 15px;
61
- // transform: rotate(-90deg);
62
- // &::after,
63
- // &::before {
64
- // content: none;
65
- // }
66
- // }
67
- // &.asc .v-data-table-header__icon {
68
- // transform: rotate(-90deg);
69
- // background-color: rgb(var(--v-theme-title)) !important;
70
- // }
71
- // &.desc .v-data-table-header__icon {
72
- // transform: rotate(-270deg);
73
- // background-color: rgb(var(--v-theme-title)) !important;
74
- // }
75
- // &.active {
76
- // font-weight: bold;
77
- // color: rgb(var(--v-theme-subTitle)) !important;
78
- // }
79
- // }
80
- // }
81
- // }
82
- // tbody {
83
- // width: 100%;
84
- // tr {
85
- // position: relative;
86
- // z-index: 1;
87
- // td {
88
- // padding: 17px 0 9px 4px;
89
- // font-size: 0.9em;
90
- // line-height: 1em;
91
- // border: none !important;
92
- // height: 40px;
93
- // min-width: 100px;
94
- // &.fbpm-table__check-box {
95
- // width: 40px;
96
- // min-width: 40px;
97
- // padding: 12px;
98
- // border-bottom: none !important;
99
- // .v-input--selection-controls__input {
100
- // margin: 0;
101
- // }
102
- // }
103
- // &.fbpm-table__avatar {
104
- // padding: 6px 0 0 0;
105
- // width: 20px;
106
- // min-width: 20px;
107
- // line-height: 1;
108
- // }
109
- // }
110
-
111
- // &:nth-child(odd) {
112
- // background: var(--v-background5-base);
113
- // &:hover {
114
- // background: var(--v-background6-base) !important;
115
- // }
116
- // }
117
- // &:nth-child(even) {
118
- // background: var(--v-background6-base);
119
- // &:hover {
120
- // background: var(--v-background5-base) !important;
121
- // }
122
- // }
123
- // &.fbpm-table__row-hover:hover,
124
- // &.fbpm-table__row-selected {
125
- // background: rgb(var(--v-theme-background)) !important;
126
- // cursor: pointer;
127
- // &::after {
128
- // content: "";
129
- // height: 100%;
130
- // width: 100%;
131
- // z-index: -1;
132
- // display: block;
133
- // position: absolute;
134
- // top: 0;
135
- // left: 0;
136
- // background: rgb(var(--v-theme-primary));
137
- // opacity: 0.4;
138
- // }
139
- // }
140
- // }
141
- // }
142
- // }
143
- // }
22
+ .v-table__wrapper {
23
+ padding-right: 12px;
24
+ .v-data-table-progress {
25
+ display: none;
26
+ }
27
+ .v-data-table-header__content {
28
+ color: rgba(var(--v-theme-text));
29
+ font-size: 0.85em;
30
+ }
31
+ table {
32
+ tbody {
33
+ font-size: 0.85em;
34
+ tr:not(:last-child) {
35
+ td,
36
+ th {
37
+ border-bottom: thin solid rgb(var(--v-theme-line));
38
+ }
39
+ }
40
+ }
41
+ }
42
+ &::-webkit-scrollbar {
43
+ height: 6px;
44
+ width: 6px;
45
+ }
46
+ &::-webkit-scrollbar-track {
47
+ border-radius: 10.8px;
48
+ box-shadow: inset 0 0 6px rgba(var(--v-theme-disabled));
49
+ }
50
+ &::-webkit-scrollbar-thumb {
51
+ border-top: 0px solid rgba(0, 0, 0, 0);
52
+ border-bottom: 0px solid rgba(0, 0, 0, 0);
53
+ background-clip: padding-box;
54
+ border-radius: 10.8px;
55
+ height: 50px;
56
+ background-color: rgba(var(--v-theme-disabled));
57
+ &:hover {
58
+ background-color: rgba(var(--v-theme-primary));
59
+ }
60
+ }
61
+ }
62
+ }
@@ -80,6 +80,29 @@
80
80
  }
81
81
  }
82
82
 
83
+ .f-scrollbar-x {
84
+ overflow-y: hidden;
85
+ overflow-x: auto;
86
+ &::-webkit-scrollbar {
87
+ height: 6px;
88
+ }
89
+ &::-webkit-scrollbar-track {
90
+ border-radius: 10.8px;
91
+ box-shadow: inset 0 0 6px rgba(var(--v-theme-disabled));
92
+ }
93
+ &::-webkit-scrollbar-thumb {
94
+ border-top: 0px solid rgba(0, 0, 0, 0);
95
+ border-bottom: 0px solid rgba(0, 0, 0, 0);
96
+ background-clip: padding-box;
97
+ border-radius: 10.8px;
98
+ height: 50px;
99
+ background-color: rgba(var(--v-theme-disabled));
100
+ &:hover {
101
+ background-color: rgba(var(--v-theme-primary));
102
+ }
103
+ }
104
+ }
105
+
83
106
  .f-menu.v-menu .v-overlay__content .f-context-menu-list.v-list {
84
107
  padding: 12px 6px;
85
108
  overflow-x: hidden;