@webitel/ui-sdk 2.0.15 → 2.0.16-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.
- package/dist/img/sprite/idle.svg +4 -0
- package/dist/img/sprite/index.js +1 -1
- package/dist/img/sprite/stt-download.svg +4 -0
- package/dist/img/sprite/stt-search.svg +3 -0
- package/dist/img/sprite/stt.svg +4 -0
- package/dist/ui-sdk.common.js +126 -36
- package/dist/ui-sdk.common.js.map +1 -1
- package/dist/ui-sdk.css +1 -1
- package/dist/ui-sdk.umd.js +126 -36
- 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/atoms/wt-context-menu/wt-context-menu.vue +16 -3
- package/src/components/atoms/wt-icon/wt-icon.vue +5 -1
- package/src/components/atoms/wt-loader/_internals/wt-loader--sm.vue +4 -1
- package/src/components/index.js +2 -0
- package/src/components/molecules/wt-search-bar/wt-search-bar.vue +8 -4
- package/src/components/organisms/wt-headline-nav/__tests__/wt-headline-nav.spec.js +13 -0
- package/src/components/organisms/wt-headline-nav/wt-headline-nav.vue +85 -0
- package/src/css/components/_components.scss +1 -0
- package/src/css/components/atoms/wt-context-menu/_variables.scss +0 -3
- package/src/css/components/organisms/wt-headline-nav/_variables.scss +5 -0
- package/src/enums/WebitelApplications/AdminSections.enum.js +1 -0
- package/src/locale/en/en.js +10 -0
- package/src/locale/ru/ru.js +10 -0
- package/src/locale/ua/ua.js +10 -0
- package/src/modules/Userinfo/classes/ApplicationsAccess.js +4 -0
package/package.json
CHANGED
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
>
|
|
8
8
|
<slot name="activator"></slot>
|
|
9
9
|
<template #popper="{ hide }">
|
|
10
|
-
<ul
|
|
10
|
+
<ul
|
|
11
|
+
class="wt-context-menu__menu"
|
|
12
|
+
:style="`width: ${width}; min-width: ${minWidth}; max-width: ${maxWidth};`"
|
|
13
|
+
>
|
|
11
14
|
<li
|
|
12
15
|
class="wt-context-menu__option-wrapper"
|
|
13
16
|
v-for="(option, index) in options"
|
|
@@ -42,6 +45,18 @@ export default {
|
|
|
42
45
|
type: Boolean,
|
|
43
46
|
default: false,
|
|
44
47
|
},
|
|
48
|
+
width: {
|
|
49
|
+
type: [String],
|
|
50
|
+
default: 'auto',
|
|
51
|
+
},
|
|
52
|
+
minWidth: {
|
|
53
|
+
type: [String],
|
|
54
|
+
default: '160px',
|
|
55
|
+
},
|
|
56
|
+
maxWidth: {
|
|
57
|
+
type: [String],
|
|
58
|
+
default: '300px',
|
|
59
|
+
},
|
|
45
60
|
},
|
|
46
61
|
methods: {
|
|
47
62
|
handleOptionClick({ option, index, hide }) {
|
|
@@ -59,8 +74,6 @@ export default {
|
|
|
59
74
|
|
|
60
75
|
.wt-context-menu__menu {
|
|
61
76
|
@extend %typo-body-2;
|
|
62
|
-
min-width: var(--context-menu-min-width);
|
|
63
|
-
max-width: var(--context-menu-max-width);
|
|
64
77
|
background-color: var(--context-menu-background-color);
|
|
65
78
|
border-radius: var(--border-radius);
|
|
66
79
|
box-shadow: var(--box-shadow);
|
|
@@ -29,7 +29,7 @@ export default {
|
|
|
29
29
|
color: {
|
|
30
30
|
type: String,
|
|
31
31
|
default: 'default',
|
|
32
|
-
options: ['default', 'contrast', 'active', 'accent', 'disabled', 'success', 'danger', 'transfer', 'job', 'hold', 'secondary-50'],
|
|
32
|
+
options: ['default', 'contrast', 'active', 'accent', 'secondary', 'disabled', 'success', 'danger', 'transfer', 'job', 'hold', 'secondary-50'],
|
|
33
33
|
},
|
|
34
34
|
iconPrefix: {
|
|
35
35
|
type: String,
|
|
@@ -85,6 +85,10 @@ svg {
|
|
|
85
85
|
fill: var(--icon-color-active);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
&-secondary .wt-icon__icon {
|
|
89
|
+
fill: var(--secondary-color);
|
|
90
|
+
}
|
|
91
|
+
|
|
88
92
|
&-success .wt-icon__icon {
|
|
89
93
|
fill: var(--icon-color-success);
|
|
90
94
|
}
|
|
@@ -14,7 +14,7 @@ export default {
|
|
|
14
14
|
color: {
|
|
15
15
|
type: String,
|
|
16
16
|
default: 'contrast',
|
|
17
|
-
description: '["main", "contrast"]',
|
|
17
|
+
description: '["main", "contrast", "icon"]',
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
20
|
};
|
|
@@ -44,6 +44,9 @@ export default {
|
|
|
44
44
|
&--main circle {
|
|
45
45
|
stroke: var(--main-color);
|
|
46
46
|
}
|
|
47
|
+
&--icon circle {
|
|
48
|
+
stroke: var(--icon-color);
|
|
49
|
+
}
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
@keyframes rotate {
|
package/src/components/index.js
CHANGED
|
@@ -40,6 +40,7 @@ import WtFiltersPanelWrapper from './organisms/wt-filters-panel-wrapper/wt-filte
|
|
|
40
40
|
import WtHeaderActions from './organisms/wt-app-header/wt-header-actions.vue';
|
|
41
41
|
import WtErrorPage from './organisms/wt-error-page/wt-error-page.vue';
|
|
42
42
|
import WtHeadline from './organisms/wt-headline/wt-headline.vue';
|
|
43
|
+
import WtHeadlineNav from './organisms/wt-headline-nav/wt-headline-nav.vue';
|
|
43
44
|
import WtNavigationBar from './organisms/wt-navigation-bar/wt-navigation-bar.vue';
|
|
44
45
|
import WtNotificationsBar from './organisms/wt-notifications-bar/wt-notifications-bar.vue';
|
|
45
46
|
import WtPageWrapper from './organisms/wt-page-wrapper/wt-page-wrapper.vue';
|
|
@@ -84,6 +85,7 @@ const Components = {
|
|
|
84
85
|
WtTextarea,
|
|
85
86
|
WtAppHeader,
|
|
86
87
|
WtHeadline,
|
|
88
|
+
WtHeadlineNav,
|
|
87
89
|
WtNavigationBar,
|
|
88
90
|
WtAppNavigator,
|
|
89
91
|
WtFiltersPanelWrapper,
|
|
@@ -13,10 +13,13 @@
|
|
|
13
13
|
type="search"
|
|
14
14
|
v-on="listeners"
|
|
15
15
|
>
|
|
16
|
-
<wt-icon
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
<div class="wt-search-bar__search-icon">
|
|
17
|
+
<slot name="search-icon">
|
|
18
|
+
<wt-icon
|
|
19
|
+
icon="search"
|
|
20
|
+
></wt-icon>
|
|
21
|
+
</slot>
|
|
22
|
+
</div>
|
|
20
23
|
<wt-icon-btn
|
|
21
24
|
class="wt-search-bar__reset-icon-btn"
|
|
22
25
|
:class="{ 'hidden': !value }"
|
|
@@ -112,6 +115,7 @@
|
|
|
112
115
|
}
|
|
113
116
|
|
|
114
117
|
.wt-search-bar__search-icon {
|
|
118
|
+
line-height: 0;
|
|
115
119
|
position: absolute;
|
|
116
120
|
top: 50%;
|
|
117
121
|
left: var(--input-icon-margin);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { shallowMount } from '@vue/test-utils';
|
|
2
|
+
import WtHeadlineNav from '../wt-headline-nav.vue';
|
|
3
|
+
|
|
4
|
+
describe('WtHeadlineNav', () => {
|
|
5
|
+
it('renders a component', () => {
|
|
6
|
+
const wrapper = shallowMount(WtHeadlineNav, {
|
|
7
|
+
propsData: {
|
|
8
|
+
path: [],
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
expect(wrapper.isVisible()).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<nav class="wt-headline-nav">
|
|
3
|
+
<div
|
|
4
|
+
class="wt-headline-nav__wrapper"
|
|
5
|
+
v-for="(singlePath, key) of path"
|
|
6
|
+
:key="key"
|
|
7
|
+
>
|
|
8
|
+
<span v-if="key !== 0" class="wt-headline-nav__indicator"></span>
|
|
9
|
+
<h1 class="wt-headline-nav__title">
|
|
10
|
+
<router-link
|
|
11
|
+
v-if="singlePath.route"
|
|
12
|
+
class="wt-headline-nav__text wt-headline-nav__title-link"
|
|
13
|
+
:to="singlePath.route"
|
|
14
|
+
>{{ singlePath.name }}
|
|
15
|
+
</router-link>
|
|
16
|
+
<span v-else class="wt-headline-nav__text">{{ singlePath.name }}</span>
|
|
17
|
+
</h1>
|
|
18
|
+
</div>
|
|
19
|
+
</nav>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
export default {
|
|
24
|
+
name: 'wt-headline-nav',
|
|
25
|
+
props: {
|
|
26
|
+
path: {
|
|
27
|
+
type: Array,
|
|
28
|
+
required: true,
|
|
29
|
+
// PATH EXAMPLE
|
|
30
|
+
// default: () => [
|
|
31
|
+
// { name: 'directory' },
|
|
32
|
+
// { name: 'users', route: '/directory/users' },
|
|
33
|
+
// { name: 'adm', route: '/directory/users/3' },
|
|
34
|
+
// ],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<style lang="scss" scoped>
|
|
41
|
+
.wt-headline-nav {
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.wt-headline-nav__wrapper {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.wt-headline-nav__indicator {
|
|
52
|
+
display: inline-block;
|
|
53
|
+
width: var(--headline-nav-indicator-size);
|
|
54
|
+
height: var(--headline-nav-indicator-size);
|
|
55
|
+
margin: 0 var(--headline-nav-indicator-margin);
|
|
56
|
+
background: var(--icon-color);
|
|
57
|
+
border-radius: 50%;
|
|
58
|
+
flex-shrink: 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.wt-headline-nav__title {
|
|
62
|
+
@extend %typo-subtitle-1;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.wt-headline-nav__text {
|
|
66
|
+
color: var(--text-outline-color);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.wt-headline-nav__wrapper:last-child {
|
|
70
|
+
min-width: 0;
|
|
71
|
+
|
|
72
|
+
.wt-headline-nav__indicator {
|
|
73
|
+
background: var(--icon-color-accent);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.wt-headline-nav__title {
|
|
77
|
+
overflow: hidden;
|
|
78
|
+
text-overflow: ellipsis;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.wt-headline-nav__text {
|
|
82
|
+
color: var(--text-primary-color);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
</style>
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
@import "molecules/wt-button-select/variables";
|
|
33
33
|
|
|
34
34
|
@import "organisms/wt-headline/variables";
|
|
35
|
+
@import "organisms/wt-headline-nav/variables";
|
|
35
36
|
@import "organisms/wt-app-header/variables";
|
|
36
37
|
@import "organisms/wt-navigation-bar/variables";
|
|
37
38
|
@import "organisms/wt-notifications-bar/variables";
|
|
@@ -34,6 +34,7 @@ const AdminSections = Object.freeze({
|
|
|
34
34
|
// INTEGRATIONS
|
|
35
35
|
STORAGE: 'storage', // scope: storage_profile
|
|
36
36
|
COGNITIVE_PROFILES: 'cognitive-profiles', // scope: cognitive_profile
|
|
37
|
+
EMAIL_PROFILES: 'email-profiles', // scope: email_profile
|
|
37
38
|
|
|
38
39
|
// PERMISSIONS
|
|
39
40
|
OBJECTS: 'objects', // permissions: add
|
package/src/locale/en/en.js
CHANGED
|
@@ -38,6 +38,7 @@ export default {
|
|
|
38
38
|
to: 'To',
|
|
39
39
|
tts: 'Text-to-Speech',
|
|
40
40
|
state: 'State',
|
|
41
|
+
refresh: 'Refresh',
|
|
41
42
|
},
|
|
42
43
|
// yak zhe ya zaebalsya povtoriaty odni i ti sami slova!!!!
|
|
43
44
|
vocabulary: {
|
|
@@ -45,6 +46,14 @@ export default {
|
|
|
45
46
|
voice: 'Voice',
|
|
46
47
|
format: 'Format',
|
|
47
48
|
text: 'Text',
|
|
49
|
+
yes: 'Yes',
|
|
50
|
+
no: 'No',
|
|
51
|
+
description: 'Description',
|
|
52
|
+
login: 'Login',
|
|
53
|
+
host: 'Host',
|
|
54
|
+
time: 'Time',
|
|
55
|
+
channel: 'Channel',
|
|
56
|
+
file: 'File',
|
|
48
57
|
},
|
|
49
58
|
// date-related texts
|
|
50
59
|
date: {
|
|
@@ -144,6 +153,7 @@ export default {
|
|
|
144
153
|
[AdminSections.QUEUES]: 'Queues',
|
|
145
154
|
[AdminSections.STORAGE]: 'Storage',
|
|
146
155
|
[AdminSections.COGNITIVE_PROFILES]: 'Cognitive profiles',
|
|
156
|
+
[AdminSections.EMAIL_PROFILES]: 'Email profiles',
|
|
147
157
|
[AdminSections.MEDIA]: 'Media',
|
|
148
158
|
[AdminSections.BLACKLIST]: 'Call lists',
|
|
149
159
|
[AdminSections.ROLES]: 'Roles',
|
package/src/locale/ru/ru.js
CHANGED
|
@@ -38,12 +38,21 @@ export default {
|
|
|
38
38
|
to: 'До',
|
|
39
39
|
tts: 'Text-to-Speech',
|
|
40
40
|
state: 'Состояние',
|
|
41
|
+
refresh: 'Обновить',
|
|
41
42
|
},
|
|
42
43
|
vocabulary: {
|
|
43
44
|
language: 'Язык',
|
|
44
45
|
voice: 'Голос',
|
|
45
46
|
format: 'Формат',
|
|
46
47
|
text: 'Текст',
|
|
48
|
+
yes: 'Да',
|
|
49
|
+
no: 'Нет',
|
|
50
|
+
description: 'Описание',
|
|
51
|
+
login: 'Логин',
|
|
52
|
+
host: 'Хост',
|
|
53
|
+
time: 'Время',
|
|
54
|
+
channel: 'Канал',
|
|
55
|
+
file: 'Файл',
|
|
47
56
|
},
|
|
48
57
|
// date-related texts
|
|
49
58
|
date: {
|
|
@@ -143,6 +152,7 @@ export default {
|
|
|
143
152
|
[AdminSections.QUEUES]: 'Очереди',
|
|
144
153
|
[AdminSections.STORAGE]: 'Хранилища',
|
|
145
154
|
[AdminSections.COGNITIVE_PROFILES]: 'Языковые профили',
|
|
155
|
+
[AdminSections.EMAIL_PROFILES]: 'Email профили',
|
|
146
156
|
[AdminSections.ROLES]: 'Роли',
|
|
147
157
|
[AdminSections.OBJECTS]: 'Разделы',
|
|
148
158
|
},
|
package/src/locale/ua/ua.js
CHANGED
|
@@ -38,12 +38,21 @@ export default {
|
|
|
38
38
|
to: 'До',
|
|
39
39
|
tts: 'Text-to-Speech',
|
|
40
40
|
state: 'Стан',
|
|
41
|
+
refresh: 'Оновити',
|
|
41
42
|
},
|
|
42
43
|
vocabulary: {
|
|
43
44
|
language: 'Мова',
|
|
44
45
|
voice: 'Голос',
|
|
45
46
|
format: 'Формат',
|
|
46
47
|
text: 'Текст',
|
|
48
|
+
yes: 'Так',
|
|
49
|
+
no: 'Ні',
|
|
50
|
+
description: 'Опис',
|
|
51
|
+
login: 'Логін',
|
|
52
|
+
host: 'Хост',
|
|
53
|
+
time: 'Час',
|
|
54
|
+
channel: 'Канал',
|
|
55
|
+
file: 'Файл',
|
|
47
56
|
},
|
|
48
57
|
// date-related texts
|
|
49
58
|
date: {
|
|
@@ -143,6 +152,7 @@ export default {
|
|
|
143
152
|
[AdminSections.QUEUES]: 'Черги',
|
|
144
153
|
[AdminSections.STORAGE]: 'Сховища',
|
|
145
154
|
[AdminSections.COGNITIVE_PROFILES]: 'Мовні профілі',
|
|
155
|
+
[AdminSections.EMAIL_PROFILES]: 'Email профілі',
|
|
146
156
|
[AdminSections.ROLES]: 'Ролі',
|
|
147
157
|
[AdminSections.OBJECTS]: 'Розділи',
|
|
148
158
|
},
|
|
@@ -128,6 +128,10 @@ const applicationsAccess = (value = true) => ({
|
|
|
128
128
|
_enabled: value,
|
|
129
129
|
_locale: `WebitelApplications.${WebitelApplications.ADMIN}.sections.${AdminSections.COGNITIVE_PROFILES}`,
|
|
130
130
|
},
|
|
131
|
+
[AdminSections.EMAIL_PROFILES]: {
|
|
132
|
+
_enabled: value,
|
|
133
|
+
_locale: `WebitelApplications.${WebitelApplications.ADMIN}.sections.${AdminSections.EMAIL_PROFILES}`,
|
|
134
|
+
},
|
|
131
135
|
[AdminSections.ROLES]: {
|
|
132
136
|
_enabled: value,
|
|
133
137
|
_locale: `WebitelApplications.${WebitelApplications.ADMIN}.sections.${AdminSections.ROLES}`,
|