@webitel/ui-sdk 1.0.5 → 1.0.9
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/ui-sdk.common.js +309 -285
- package/dist/ui-sdk.common.js.map +1 -1
- package/dist/ui-sdk.css +1 -1
- package/dist/ui-sdk.umd.js +309 -285
- package/dist/ui-sdk.umd.js.map +1 -1
- package/dist/ui-sdk.umd.min.js +2 -2
- package/dist/ui-sdk.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/molecules/wt-datepicker/wt-datepicker.vue +130 -133
- package/src/components/molecules/wt-datetimepicker/wt-datetimepicker.vue +21 -30
- package/src/components/molecules/wt-input/wt-input.vue +1 -0
- package/src/components/molecules/wt-popup/wt-popup.vue +1 -0
- package/src/components/molecules/wt-switcher/wt-switcher.vue +4 -0
- package/src/components/organisms/wt-app-header/wt-app-navigator.vue +1 -1
- package/src/components/organisms/wt-app-header/wt-header-actions.vue +4 -4
- package/src/components/organisms/wt-error-page/wt-error-page.vue +1 -1
- package/src/components/organisms/wt-navigation-bar/wt-navigation-bar.vue +62 -37
- package/src/components/organisms/wt-table/wt-table.vue +29 -28
- package/src/components/organisms/wt-table-actions/wt-table-actions.vue +0 -1
- package/src/css/components/atoms/wt-tooltip/_variables.scss +1 -1
- package/src/css/components/organisms/wt-navigation-bar/_variables.scss +2 -0
- package/src/css/styleguide/colors/_colors.scss +1 -1
|
@@ -1,44 +1,64 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<aside class="wt-navigation-bar"
|
|
2
|
+
<aside v-clickaway="close" class="wt-navigation-bar">
|
|
3
3
|
<wt-icon-btn
|
|
4
|
+
:class="{'active': isOpened}"
|
|
4
5
|
class="wt-navigation-bar__menu-btn"
|
|
5
6
|
icon="menu"
|
|
6
|
-
:class="{'active': isOpened}"
|
|
7
7
|
@click="isOpened = !isOpened"
|
|
8
8
|
></wt-icon-btn>
|
|
9
9
|
<transition name="fade">
|
|
10
|
-
<nav class="wt-navigation-bar__nav"
|
|
10
|
+
<nav v-show="isOpened" class="wt-navigation-bar__nav">
|
|
11
11
|
<header class="wt-navigation-bar__nav-header">
|
|
12
12
|
<!-- vue cli build target lib cant handle dynamic require :( -->
|
|
13
|
-
<img
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<img
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
<img
|
|
14
|
+
v-if="currentApp === 'admin'"
|
|
15
|
+
alt="admin"
|
|
16
|
+
class="wt-navigation-bar__app-pic"
|
|
17
|
+
src="../../../assets/components/organisms/wt-navigation-bar/logo-admin-app.svg"
|
|
18
|
+
>
|
|
19
|
+
<img
|
|
20
|
+
v-if="currentApp === 'agent'"
|
|
21
|
+
alt="agent"
|
|
22
|
+
class="wt-navigation-bar__app-pic"
|
|
23
|
+
src="../../../assets/components/organisms/wt-navigation-bar/logo-agent-app.svg"
|
|
24
|
+
>
|
|
25
|
+
<img
|
|
26
|
+
v-if="currentApp === 'audit'"
|
|
27
|
+
alt="audit"
|
|
28
|
+
class="wt-navigation-bar__app-pic"
|
|
29
|
+
src="../../../assets/components/organisms/wt-navigation-bar/logo-audit-app.svg"
|
|
30
|
+
>
|
|
31
|
+
<img
|
|
32
|
+
v-if="currentApp === 'history'"
|
|
33
|
+
alt="history"
|
|
34
|
+
class="wt-navigation-bar__app-pic"
|
|
35
|
+
src="../../../assets/components/organisms/wt-navigation-bar/logo-history-app.svg"
|
|
36
|
+
>
|
|
37
|
+
<img
|
|
38
|
+
v-if="currentApp === 'supervisor'"
|
|
39
|
+
alt="supervisor"
|
|
40
|
+
class="wt-navigation-bar__app-pic"
|
|
41
|
+
src="../../../assets/components/organisms/wt-navigation-bar/logo-supervisor-app.svg"
|
|
42
|
+
>
|
|
23
43
|
<wt-icon-btn
|
|
24
44
|
class="wt-navigation-bar__nav-close"
|
|
25
45
|
icon="close"
|
|
26
46
|
@click="isOpened = false"
|
|
27
47
|
></wt-icon-btn>
|
|
28
48
|
</header>
|
|
29
|
-
<wt-divider/>
|
|
49
|
+
<wt-divider />
|
|
30
50
|
<ul class="wt-navigation-bar__nav-list">
|
|
31
51
|
<li
|
|
32
52
|
v-for="(navItem, key) of nav"
|
|
33
|
-
class="wt-navigation-bar__nav-item"
|
|
34
53
|
:key="key"
|
|
54
|
+
class="wt-navigation-bar__nav-item"
|
|
35
55
|
>
|
|
36
56
|
<div v-if="!navItem.subNav">
|
|
37
57
|
<div class="wt-navigation-bar__nav-item-wrapper">
|
|
38
58
|
<router-link
|
|
39
|
-
class="wt-navigation-bar__nav-item-link"
|
|
40
59
|
:class="{'wt-navigation-bar__nav-item-link--active': currentNav.nav === navItem.value}"
|
|
41
60
|
:to="navItem.route"
|
|
61
|
+
class="wt-navigation-bar__nav-item-link"
|
|
42
62
|
@click.native="close"
|
|
43
63
|
> {{ navItem.name || navItem.value }}
|
|
44
64
|
</router-link>
|
|
@@ -46,33 +66,33 @@
|
|
|
46
66
|
</div>
|
|
47
67
|
<div v-else>
|
|
48
68
|
<button
|
|
49
|
-
class="wt-navigation-bar__nav-expansion"
|
|
50
69
|
:class="{
|
|
51
70
|
'wt-navigation-bar__nav-expansion--expanded': isExpanded(navItem),
|
|
52
71
|
'wt-navigation-bar__nav-expansion--active': currentNav.expansion === navItem.value,
|
|
53
72
|
}"
|
|
73
|
+
class="wt-navigation-bar__nav-expansion"
|
|
54
74
|
type="button"
|
|
55
75
|
@click="expand(navItem)"
|
|
56
76
|
>
|
|
57
77
|
<span class="wt-navigation-bar__nav-expansion-name">{{ navItem.name || navItem.value }}</span>
|
|
58
78
|
<wt-icon
|
|
59
79
|
class="wt-navigation-bar__expansion-arrow"
|
|
60
|
-
icon="arrow-right"
|
|
61
80
|
color="active"
|
|
81
|
+
icon="arrow-right"
|
|
62
82
|
></wt-icon>
|
|
63
83
|
</button>
|
|
64
84
|
<expand-transition>
|
|
65
85
|
<ul v-if="isExpanded(navItem)">
|
|
66
86
|
<li
|
|
67
87
|
v-for="(subNavItem, subNavKey) of navItem.subNav"
|
|
68
|
-
class="wt-navigation-bar__nav-item"
|
|
69
88
|
:key="subNavKey"
|
|
89
|
+
class="wt-navigation-bar__nav-item"
|
|
70
90
|
>
|
|
71
91
|
<div class="wt-navigation-bar__nav-item-wrapper">
|
|
72
92
|
<router-link
|
|
73
|
-
class="wt-navigation-bar__nav-item-link wt-navigation-bar__nav-item-link--subnav"
|
|
74
93
|
:class="{'wt-navigation-bar__nav-item-link--active': currentNav.nav === subNavItem.value}"
|
|
75
94
|
:to="nestedRoute(subNavItem, navItem)"
|
|
95
|
+
class="wt-navigation-bar__nav-item-link wt-navigation-bar__nav-item-link--subnav"
|
|
76
96
|
@click.native="close"
|
|
77
97
|
>{{ subNavItem.name || subNavItem.value }}
|
|
78
98
|
</router-link>
|
|
@@ -113,14 +133,14 @@ export default {
|
|
|
113
133
|
currentNav() {
|
|
114
134
|
const path = this.$route.fullPath;
|
|
115
135
|
const currentNav = this.nav
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
136
|
+
.reduce((flatNav, currentNavItem) => {
|
|
137
|
+
if (currentNavItem.subNav) return flatNav.concat(currentNavItem.subNav);
|
|
138
|
+
return [...flatNav, currentNavItem];
|
|
139
|
+
}, [])
|
|
140
|
+
.find((navItem) => path.includes(navItem.route));
|
|
121
141
|
const currentExpansion = this.nav
|
|
122
|
-
|
|
123
|
-
|
|
142
|
+
.filter((nav) => nav.subNav)
|
|
143
|
+
.find((nav) => nav.subNav.indexOf(currentNav) !== -1);
|
|
124
144
|
return {
|
|
125
145
|
nav: currentNav?.value,
|
|
126
146
|
expansion: currentExpansion?.value,
|
|
@@ -154,21 +174,21 @@ export default {
|
|
|
154
174
|
.wt-navigation-bar__nav {
|
|
155
175
|
@extend %wt-scrollbar;
|
|
156
176
|
position: fixed;
|
|
177
|
+
z-index: var(--navigation-bar-z-index);
|
|
157
178
|
top: 0;
|
|
158
179
|
bottom: 0;
|
|
159
180
|
left: 0;
|
|
181
|
+
overflow: auto;
|
|
160
182
|
width: var(--navigation-bar-width);
|
|
161
183
|
padding: var(--navigation-bar-padding);
|
|
162
|
-
overflow: auto;
|
|
163
|
-
z-index: var(--navigation-bar-z-index);
|
|
164
184
|
border-radius: var(--border-radius);
|
|
165
|
-
box-shadow: var(--elevation-10);
|
|
166
185
|
background: var(--navigation-bar-bg-color);
|
|
186
|
+
box-shadow: var(--elevation-10);
|
|
167
187
|
|
|
168
188
|
// expand animation optimization
|
|
169
189
|
* {
|
|
170
|
-
will-change: height;
|
|
171
190
|
transform: translateZ(0);
|
|
191
|
+
will-change: height;
|
|
172
192
|
backface-visibility: hidden;
|
|
173
193
|
perspective: 1000px;
|
|
174
194
|
}
|
|
@@ -176,11 +196,16 @@ export default {
|
|
|
176
196
|
|
|
177
197
|
.wt-navigation-bar__nav-header {
|
|
178
198
|
display: flex;
|
|
179
|
-
justify-content: space-between;
|
|
180
199
|
align-items: center;
|
|
200
|
+
justify-content: space-between;
|
|
181
201
|
padding: var(--navigation-bar-header-padding);
|
|
182
202
|
}
|
|
183
203
|
|
|
204
|
+
.wt-navigation-bar__app-pic {
|
|
205
|
+
width: var(--navigation-bar-app-pic-width);
|
|
206
|
+
height: var(--navigation-bar-app-pic-height);
|
|
207
|
+
}
|
|
208
|
+
|
|
184
209
|
.wt-navigation-bar__nav-item-link {
|
|
185
210
|
@extend %typo-body-1;
|
|
186
211
|
display: block;
|
|
@@ -198,26 +223,26 @@ export default {
|
|
|
198
223
|
}
|
|
199
224
|
|
|
200
225
|
.wt-navigation-bar__nav-expansion {
|
|
201
|
-
@extend %typo-
|
|
226
|
+
@extend %typo-subtitle-1;
|
|
202
227
|
position: relative;
|
|
203
228
|
display: flex;
|
|
204
|
-
justify-content: space-between;
|
|
205
229
|
align-items: center;
|
|
230
|
+
justify-content: space-between;
|
|
206
231
|
width: 100%;
|
|
207
232
|
padding: var(--navigation-bar-link-padding);
|
|
208
233
|
outline: none;
|
|
209
234
|
|
|
210
235
|
&:before {
|
|
211
|
-
opacity: 0;
|
|
212
|
-
content: "";
|
|
213
236
|
position: absolute;
|
|
214
237
|
top: 0;
|
|
215
238
|
bottom: 0;
|
|
216
239
|
left: 0;
|
|
217
240
|
width: var(--navigation-bar-active-expansion-flag-width);
|
|
241
|
+
content: '';
|
|
242
|
+
transition: var(--transition);
|
|
243
|
+
opacity: 0;
|
|
218
244
|
border-radius: var(--border-radius);
|
|
219
245
|
background: var(--accent-color);
|
|
220
|
-
transition: var(--transition);
|
|
221
246
|
}
|
|
222
247
|
|
|
223
248
|
.wt-navigation-bar__expansion-arrow {
|
|
@@ -2,38 +2,38 @@
|
|
|
2
2
|
<div class="wt-table">
|
|
3
3
|
<table class="wt-table__table">
|
|
4
4
|
<thead class="wt-table__head">
|
|
5
|
-
<tr class="wt-table__tr wt-table__tr__head"
|
|
6
|
-
<th class="wt-table__th wt-table__th--checkbox"
|
|
5
|
+
<tr :style="columnsStyle" class="wt-table__tr wt-table__tr__head">
|
|
6
|
+
<th v-if="selectable" class="wt-table__th wt-table__th--checkbox">
|
|
7
7
|
<wt-checkbox
|
|
8
8
|
:selected="isAllSelected"
|
|
9
9
|
@change="selectAll"
|
|
10
10
|
></wt-checkbox>
|
|
11
11
|
</th>
|
|
12
12
|
<th
|
|
13
|
-
|
|
13
|
+
v-for="(col, key) of dataHeaders"
|
|
14
|
+
:key="key"
|
|
14
15
|
:class="[
|
|
15
16
|
{'wt-table__th--sortable': sortable},
|
|
16
17
|
`wt-table__th--sort-${col.sort}`,
|
|
17
18
|
]"
|
|
18
|
-
|
|
19
|
-
:key="key"
|
|
19
|
+
class="wt-table__th"
|
|
20
20
|
@click="sort(col)"
|
|
21
21
|
>
|
|
22
22
|
<div class="wt-table__th__text">{{ col.text }}</div>
|
|
23
23
|
<wt-icon
|
|
24
|
-
class="wt-table__th__sort-arrow wt-table__th__sort-arrow--asc"
|
|
25
24
|
v-if="sortable"
|
|
25
|
+
class="wt-table__th__sort-arrow wt-table__th__sort-arrow--asc"
|
|
26
26
|
icon="sort-arrow-up"
|
|
27
27
|
size="sm"
|
|
28
28
|
></wt-icon>
|
|
29
29
|
<wt-icon
|
|
30
|
-
class="wt-table__th__sort-arrow wt-table__th__sort-arrow--desc"
|
|
31
30
|
v-if="sortable"
|
|
31
|
+
class="wt-table__th__sort-arrow wt-table__th__sort-arrow--desc"
|
|
32
32
|
icon="sort-arrow-down"
|
|
33
33
|
size="sm"
|
|
34
34
|
></wt-icon>
|
|
35
35
|
</th>
|
|
36
|
-
<th class="wt-table__th__actions"
|
|
36
|
+
<th v-if="gridActions" class="wt-table__th__actions">
|
|
37
37
|
<slot name="actions-header"></slot>
|
|
38
38
|
</th>
|
|
39
39
|
</tr>
|
|
@@ -41,44 +41,44 @@
|
|
|
41
41
|
|
|
42
42
|
<tbody class="wt-table__body">
|
|
43
43
|
<tr
|
|
44
|
-
class="wt-table__tr wt-table__tr__body"
|
|
45
44
|
v-for="(row, dataKey) of data"
|
|
46
|
-
:class="`wt-table__tr__${row.id || dataKey}`"
|
|
47
45
|
:key="dataKey"
|
|
46
|
+
:class="`wt-table__tr__${row.id || dataKey}`"
|
|
48
47
|
:style="columnsStyle"
|
|
48
|
+
class="wt-table__tr wt-table__tr__body"
|
|
49
49
|
>
|
|
50
|
-
<td class="wt-table__td wt-table__td--checkbox"
|
|
50
|
+
<td v-if="selectable" class="wt-table__td wt-table__td--checkbox">
|
|
51
51
|
<wt-checkbox
|
|
52
52
|
v-model="row._isSelected"
|
|
53
53
|
></wt-checkbox>
|
|
54
54
|
</td>
|
|
55
55
|
|
|
56
56
|
<td
|
|
57
|
-
class="wt-table__td"
|
|
58
57
|
v-for="(col, headerKey) of dataHeaders"
|
|
59
58
|
:key="headerKey"
|
|
59
|
+
class="wt-table__td"
|
|
60
60
|
>
|
|
61
|
-
<slot :
|
|
61
|
+
<slot :index="dataKey" :item="row" :name="col.value">
|
|
62
62
|
<div>{{ row[col.value] }}</div>
|
|
63
63
|
</slot>
|
|
64
64
|
</td>
|
|
65
65
|
|
|
66
|
-
<td class="wt-table__td__actions"
|
|
67
|
-
<slot
|
|
66
|
+
<td v-if="gridActions" class="wt-table__td__actions">
|
|
67
|
+
<slot :index="dataKey" :item="row" name="actions"></slot>
|
|
68
68
|
</td>
|
|
69
69
|
</tr>
|
|
70
70
|
</tbody>
|
|
71
71
|
|
|
72
|
-
<tfoot class="wt-table__foot"
|
|
73
|
-
<tr class="wt-table__tr wt-table__tr__foot"
|
|
72
|
+
<tfoot v-if="isTableFooter" class="wt-table__foot">
|
|
73
|
+
<tr :style="columnsStyle" class="wt-table__tr wt-table__tr__foot">
|
|
74
74
|
<!-- empty checkbox column -->
|
|
75
|
-
<th class="wt-table__th__checkbox"
|
|
75
|
+
<th v-if="selectable" class="wt-table__th__checkbox"></th>
|
|
76
76
|
<td
|
|
77
|
-
class="wt-table__td"
|
|
78
77
|
v-for="(col, headerKey) of dataHeaders"
|
|
79
78
|
:key="headerKey"
|
|
79
|
+
class="wt-table__td"
|
|
80
80
|
>
|
|
81
|
-
<slot :
|
|
81
|
+
<slot :header="col" :index="headerKey" :name="`${col.value}-footer`"></slot>
|
|
82
82
|
</td>
|
|
83
83
|
</tr>
|
|
84
84
|
</tfoot>
|
|
@@ -165,15 +165,16 @@ export default {
|
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
.wt-table__table {
|
|
168
|
-
border-collapse: collapse;
|
|
169
168
|
width: 100%;
|
|
169
|
+
border-collapse: collapse;
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
.wt-table__head {
|
|
173
173
|
display: block;
|
|
174
|
-
|
|
174
|
+
box-sizing: border-box;
|
|
175
175
|
border: var(--table-head-border);
|
|
176
176
|
border-color: var(--table-head-border-color);
|
|
177
|
+
border-radius: var(--border-radius);
|
|
177
178
|
}
|
|
178
179
|
|
|
179
180
|
//.wt-table__head {
|
|
@@ -182,10 +183,10 @@ export default {
|
|
|
182
183
|
|
|
183
184
|
.wt-table__tr {
|
|
184
185
|
display: grid;
|
|
185
|
-
grid-template-columns: repeat(auto-fit, var(--table-col-min-width));
|
|
186
|
-
grid-column-gap: var(--table-column-gap);
|
|
187
186
|
padding: var(--table-row-padding);
|
|
188
187
|
transition: var(--transition);
|
|
188
|
+
grid-template-columns: repeat(auto-fit, var(--table-col-min-width));
|
|
189
|
+
grid-column-gap: var(--table-column-gap);
|
|
189
190
|
|
|
190
191
|
&:nth-child(2n) {
|
|
191
192
|
background: var(--table-secondary-color);
|
|
@@ -197,13 +198,13 @@ export default {
|
|
|
197
198
|
@extend %typo-body-1;
|
|
198
199
|
display: flex;
|
|
199
200
|
align-items: center;
|
|
200
|
-
padding: 0;
|
|
201
201
|
width: 100%;
|
|
202
202
|
max-width: 100%;
|
|
203
|
-
min-height: var(--table-min-height);
|
|
204
203
|
height: fit-content;
|
|
205
|
-
|
|
204
|
+
min-height: var(--table-min-height);
|
|
205
|
+
padding: 0;
|
|
206
206
|
word-break: break-all;
|
|
207
|
+
overflow-wrap: break-word;
|
|
207
208
|
|
|
208
209
|
&__actions {
|
|
209
210
|
display: flex;
|
|
@@ -238,7 +239,7 @@ export default {
|
|
|
238
239
|
}
|
|
239
240
|
|
|
240
241
|
.wt-table__foot {
|
|
241
|
-
border-top: var(--table-head-border);
|
|
242
242
|
border-color: var(--table-head-border-color);
|
|
243
|
+
border-top: var(--table-head-border);
|
|
243
244
|
}
|
|
244
245
|
</style>
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
--navigation-bar-padding: var(--spacing-sm);
|
|
6
6
|
|
|
7
7
|
--navigation-bar-header-padding: var(--spacing-xs);
|
|
8
|
+
--navigation-bar-app-pic-width: 200px;
|
|
9
|
+
--navigation-bar-app-pic-height: 30px;
|
|
8
10
|
|
|
9
11
|
--navigation-bar-list-padding: var(--navigation-bar-padding);
|
|
10
12
|
--navigation-bar-link-padding: var(--navigation-bar-padding);
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
--_main-color: var(--_accent-color-hue), 20%, 99%;
|
|
23
23
|
--_contrast-color: var(--_accent-color-hue), 20%, 1%;
|
|
24
24
|
--_secondary-color: var(--_secondary-color-hue), 20%, 90%;
|
|
25
|
-
--_secondary-color-50: var(--_secondary-color-hue), 22%,
|
|
25
|
+
--_secondary-color-50: var(--_secondary-color-hue), 22%, 95%;
|
|
26
26
|
--_page-bg-color: var(--_page-bg-color-hue), 20%, 95%;
|
|
27
27
|
--_header-color: var(--_page-bg-color-hue), 20%, 90%;
|
|
28
28
|
--_positive-color: var(--_positive-color-hue), 60%, 40%;
|