@webitel/ui-datalist 1.0.79 → 1.0.81
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 +1 -1
- package/src/modules/filters/components/table-filters-panel.vue +2 -2
- package/src/modules/filters/modules/filterConfig/classes/FilterConfig.ts +5 -1
- package/src/modules/filters/modules/filterConfig/components/index.ts +16 -4
- package/src/modules/filters/modules/filterConfig/components/queue/index.ts +21 -0
- package/src/modules/filters/modules/filterConfig/components/queue/queue-filter-value-field.vue +18 -5
- package/src/modules/filters/modules/filterConfig/components/queue-period/queue-period-filter-value-field.vue +67 -0
- package/src/modules/filters/modules/filterConfig/components/queue-period/queue-period-filter-value-preview.vue +35 -0
- package/src/modules/filters/modules/filterConfig/components/queue-type/queue-type-filter-value-field.vue +67 -0
- package/src/modules/filters/modules/filterConfig/components/queue-type/queue-type-filter-value-preview.vue +34 -0
- package/src/modules/filters/modules/filterConfig/components/team/index.ts +21 -0
- package/src/modules/filters/modules/filterConfig/components/team/team-filter-value-field.vue +18 -5
- package/src/modules/filters/modules/filterConfig/composables/useQueuePeriodOptions.ts +45 -0
- package/src/modules/filters/modules/filterConfig/composables/useQueueTypeOptions.ts +22 -0
- package/src/modules/filters/modules/filterConfig/enums/FilterOption.ts +2 -0
- package/src/modules/table/createTableStore.store.ts +8 -0
- package/types/modules/filter-presets/stores/createFilterPresetsStore.d.ts +2 -0
- package/types/modules/filters/modules/filterConfig/classes/FilterConfig.d.ts +3 -1
- package/types/modules/filters/modules/filterConfig/components/index.d.ts +74 -1
- package/types/modules/filters/modules/filterConfig/components/queue/index.d.ts +32 -0
- package/types/modules/filters/modules/filterConfig/components/queue/queue-filter-value-field.vue.d.ts +7 -2
- package/types/modules/filters/modules/filterConfig/components/queue-period/queue-period-filter-value-field.vue.d.ts +16 -0
- package/types/modules/filters/modules/filterConfig/components/queue-period/queue-period-filter-value-preview.vue.d.ts +5 -0
- package/types/modules/filters/modules/filterConfig/components/queue-type/queue-type-filter-value-field.vue.d.ts +16 -0
- package/types/modules/filters/modules/filterConfig/components/queue-type/queue-type-filter-value-preview.vue.d.ts +5 -0
- package/types/modules/filters/modules/filterConfig/components/team/index.d.ts +33 -0
- package/types/modules/filters/modules/filterConfig/components/team/team-filter-value-field.vue.d.ts +7 -2
- package/types/modules/filters/modules/filterConfig/composables/useQueuePeriodOptions.d.ts +6 -0
- package/types/modules/filters/modules/filterConfig/composables/useQueueTypeOptions.d.ts +6 -0
- package/types/modules/filters/modules/filterConfig/enums/FilterOption.d.ts +2 -0
- package/types/modules/table/createTableStore.store.d.ts +2 -0
- package/src/modules/filters/modules/filterConfig/components/queue/config.js +0 -3
- package/src/modules/filters/modules/filterConfig/components/team/config.js +0 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webitel/ui-datalist",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.81",
|
|
4
4
|
"description": "Toolkit for building data lists in webitel ui system",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"make-all": "npm version patch --git-tag-version false && ( npm run lint:fix || true) && (npm run build:types || true) && npm run utils:publish",
|
|
@@ -202,8 +202,8 @@ const handleResetFilters = () => {
|
|
|
202
202
|
align-items: center;
|
|
203
203
|
}
|
|
204
204
|
.dynamic-filter-panel-wrapper__filters {
|
|
205
|
-
display:
|
|
206
|
-
|
|
205
|
+
display: grid;
|
|
206
|
+
grid-template-columns: repeat(4, 1fr);
|
|
207
207
|
grid-gap: var(--spacing-xs);
|
|
208
208
|
}
|
|
209
209
|
}
|
|
@@ -16,6 +16,7 @@ export type FilterConfigBaseParams = {
|
|
|
16
16
|
valueInputComponent?: Component;
|
|
17
17
|
valuePreviewComponent?: Component;
|
|
18
18
|
notDeletable?: boolean;
|
|
19
|
+
showFilterName: boolean;
|
|
19
20
|
};
|
|
20
21
|
|
|
21
22
|
export interface IWtSysTypeFilterConfig extends BaseFilterConfig {
|
|
@@ -50,13 +51,15 @@ export class FilterConfig implements BaseFilterConfig {
|
|
|
50
51
|
label?: ReturnType<MessageResolver> | string;
|
|
51
52
|
staticView?: boolean;
|
|
52
53
|
notDeletable: boolean;
|
|
54
|
+
showFilterName: boolean;
|
|
53
55
|
|
|
54
56
|
constructor({
|
|
55
57
|
name,
|
|
56
58
|
valueInputComponent,
|
|
57
59
|
valuePreviewComponent,
|
|
58
60
|
notDeletable,
|
|
59
|
-
|
|
61
|
+
showFilterName,
|
|
62
|
+
staticView,
|
|
60
63
|
}: FilterConfigBaseParams = {}) {
|
|
61
64
|
|
|
62
65
|
if (name) this.name = name;
|
|
@@ -65,6 +68,7 @@ export class FilterConfig implements BaseFilterConfig {
|
|
|
65
68
|
this.valuePreviewComponent = valuePreviewComponent;
|
|
66
69
|
this.notDeletable = !!notDeletable;
|
|
67
70
|
if (staticView) this.staticView = staticView;
|
|
71
|
+
if(showFilterName) this.showFilterName = showFilterName;
|
|
68
72
|
}
|
|
69
73
|
}
|
|
70
74
|
|
|
@@ -83,9 +83,12 @@ import HasTranscriptionFilter from './has-transcription/has-transcription-filter
|
|
|
83
83
|
import HasTranscriptionFilterPreview from './has-transcription/has-transcription-filter-value-preview.vue';
|
|
84
84
|
import HasUserFilter from './has-user/has-user-filter-value-field.vue';
|
|
85
85
|
import HasUserFilterPreview from './has-user/has-user-filter-value-preview.vue';
|
|
86
|
-
import { searchMethod as queueSearchMethod } from './queue/config';
|
|
87
86
|
import QueueFilter from './queue/queue-filter-value-field.vue';
|
|
88
87
|
import QueueFilterPreview from './queue/queue-filter-value-preview.vue';
|
|
88
|
+
import QueueTypeFilter from './queue-type/queue-type-filter-value-field.vue';
|
|
89
|
+
import QueueTypeFilterPreview from './queue-type/queue-type-filter-value-preview.vue';
|
|
90
|
+
import QueuePeriodFilter from './queue-period/queue-period-filter-value-field.vue';
|
|
91
|
+
import QueuePeriodFilterPreview from './queue-period/queue-period-filter-value-preview.vue';
|
|
89
92
|
import { searchMethod as ratedBySearchMethod } from './rated-by/config';
|
|
90
93
|
import RatedByFilter from './rated-by/rated-by-filter-value-field.vue';
|
|
91
94
|
import RatedByFilterPreview from './rated-by/rated-by-filter-value-preview.vue';
|
|
@@ -97,7 +100,6 @@ import TagFilter from './tag/tag-filter-value-field.vue';
|
|
|
97
100
|
import TagFilterPreview from './tag/tag-filter-value-preview.vue';
|
|
98
101
|
import TalkDurationFilter from './talk-duration/talk-duration-filter-value-field.vue';
|
|
99
102
|
import TalkDurationFilterPreview from './talk-duration/talk-duration-filter-value-preview.vue';
|
|
100
|
-
import { searchMethod as teamSearchMethod } from './team/config';
|
|
101
103
|
import TeamFilter from './team/team-filter-value-field.vue';
|
|
102
104
|
import TeamFilterPreview from './team/team-filter-value-preview.vue';
|
|
103
105
|
import TotalDurationFilter from './total-duration/total-duration-filter-value-field.vue';
|
|
@@ -107,6 +109,8 @@ import UserFilter from './user/user-filter-value-field.vue';
|
|
|
107
109
|
import UserFilterPreview from './user/user-filter-value-preview.vue';
|
|
108
110
|
import VariableFilter from './variable/variable-filter-value-field.vue';
|
|
109
111
|
import VariableFilterPreview from './variable/variable-filter-value-preview.vue';
|
|
112
|
+
import { createTeamFilterConfig } from './team';
|
|
113
|
+
import { createQueueFilterConfig } from './queue';
|
|
110
114
|
|
|
111
115
|
export {
|
|
112
116
|
AgentFilter,
|
|
@@ -170,6 +174,10 @@ export {
|
|
|
170
174
|
HasUserFilterPreview,
|
|
171
175
|
QueueFilter,
|
|
172
176
|
QueueFilterPreview,
|
|
177
|
+
QueueTypeFilter,
|
|
178
|
+
QueueTypeFilterPreview,
|
|
179
|
+
QueuePeriodFilter,
|
|
180
|
+
QueuePeriodFilterPreview,
|
|
173
181
|
RatedByFilter,
|
|
174
182
|
RatedByFilterPreview,
|
|
175
183
|
RatingFromToFilter,
|
|
@@ -203,6 +211,8 @@ export const FilterOptionToValueComponentMap: Record<
|
|
|
203
211
|
[FilterOption.Grantee]: GranteeFilter,
|
|
204
212
|
[FilterOption.HangupCause]: HangupCauseFilterValueField,
|
|
205
213
|
[FilterOption.Queue]: QueueFilter,
|
|
214
|
+
[FilterOption.QueueType]: QueueTypeFilter,
|
|
215
|
+
[FilterOption.QueuePeriod]: QueuePeriodFilter,
|
|
206
216
|
[FilterOption.RatedBy]: RatedByFilter,
|
|
207
217
|
[FilterOption.HasFile]: HasFileFilter,
|
|
208
218
|
[FilterOption.Score]: ScoreFilter,
|
|
@@ -248,6 +258,8 @@ export const FilterOptionToPreviewComponentMap: Record<
|
|
|
248
258
|
[FilterOption.Grantee]: GranteeFilterPreview,
|
|
249
259
|
[FilterOption.HangupCause]: HangupCauseFilterValuePreview,
|
|
250
260
|
[FilterOption.Queue]: QueueFilterPreview,
|
|
261
|
+
[FilterOption.QueueType]: QueueTypeFilterPreview,
|
|
262
|
+
[FilterOption.QueuePeriod]: QueuePeriodFilterPreview,
|
|
251
263
|
[FilterOption.RatedBy]: RatedByFilterPreview,
|
|
252
264
|
[FilterOption.HasFile]: HasFileFilterPreview,
|
|
253
265
|
[FilterOption.Score]: ScoreFilterPreview,
|
|
@@ -286,7 +298,6 @@ export const FilterOptionToPreviewApiSearchMethodMap: Record<
|
|
|
286
298
|
[FilterOption.Agent]: agentSearchMethod,
|
|
287
299
|
[FilterOption.Gateway]: gatewaySearchMethod,
|
|
288
300
|
[FilterOption.Grantee]: granteeSearchMethod,
|
|
289
|
-
[FilterOption.Queue]: queueSearchMethod,
|
|
290
301
|
[FilterOption.RatedBy]: ratedBySearchMethod,
|
|
291
302
|
[FilterOption.CaseReporter]: caseReporterSearchMethod,
|
|
292
303
|
[FilterOption.CaseSla]: caseSlaSearchMethod,
|
|
@@ -302,7 +313,6 @@ export const FilterOptionToPreviewApiSearchMethodMap: Record<
|
|
|
302
313
|
[FilterOption.CasePriority]: casePrioritySearchMethod,
|
|
303
314
|
[FilterOption.CaseImpacted]: caseImpactedSearchMethod,
|
|
304
315
|
[FilterOption.Contact]: contactSearchMethod,
|
|
305
|
-
[FilterOption.Team]: teamSearchMethod,
|
|
306
316
|
[FilterOption.CaseCloseReasonGroups]: ({ id: value, ...rest }) => {
|
|
307
317
|
return caseCloseReasonsSearchMethod({
|
|
308
318
|
parentId: value?.selection,
|
|
@@ -324,4 +334,6 @@ export const FilterOptionToFilterConfigCreatorMap = {
|
|
|
324
334
|
[FilterOption.ContactLabel]: createContactLabelFilterConfig,
|
|
325
335
|
[FilterOption.ContactOwner]: createContactOwnerFilterConfig,
|
|
326
336
|
[FilterOption.ContactGroup]: createContactGroupFilterConfig,
|
|
337
|
+
[FilterOption.Team]: createTeamFilterConfig,
|
|
338
|
+
[FilterOption.Queue]: createQueueFilterConfig,
|
|
327
339
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { QueuesAPI } from '@webitel/api-services/api';
|
|
2
|
+
|
|
3
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
4
|
+
import { FilterOption } from '../../enums/FilterOption';
|
|
5
|
+
import QueueFilterValueField from './queue-filter-value-field.vue';
|
|
6
|
+
import QueueFilterValuePreview from './queue-filter-value-preview.vue';
|
|
7
|
+
|
|
8
|
+
class QueueFilterConfig extends WtSysTypeFilterConfig {
|
|
9
|
+
readonly name = FilterOption.Queue;
|
|
10
|
+
valueInputComponent = QueueFilterValueField;
|
|
11
|
+
valuePreviewComponent = QueueFilterValuePreview;
|
|
12
|
+
|
|
13
|
+
searchRecords(
|
|
14
|
+
params: object
|
|
15
|
+
): Promise<{ items: unknown[]; next?: boolean }> {
|
|
16
|
+
return QueuesAPI.getLookup(params);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const createQueueFilterConfig = (params) =>
|
|
21
|
+
new QueueFilterConfig(params);
|
package/src/modules/filters/modules/filterConfig/components/queue/queue-filter-value-field.vue
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<wt-select
|
|
3
3
|
:close-on-select="false"
|
|
4
|
-
:label="
|
|
5
|
-
:search-method="
|
|
4
|
+
:label="labelValue"
|
|
5
|
+
:search-method="props.filterConfig.searchRecords"
|
|
6
6
|
:value="model"
|
|
7
|
-
:v="v$.model"
|
|
7
|
+
:v="!disableValidation && v$.model"
|
|
8
8
|
multiple
|
|
9
9
|
use-value-from-options-by-prop="id"
|
|
10
10
|
@input="handleInput"
|
|
@@ -15,13 +15,18 @@
|
|
|
15
15
|
import { useVuelidate } from '@vuelidate/core';
|
|
16
16
|
import { required } from '@vuelidate/validators';
|
|
17
17
|
import { WtSelect } from '@webitel/ui-sdk/components';
|
|
18
|
-
import { computed, watch } from 'vue';
|
|
18
|
+
import { computed, onMounted, watch } from 'vue';
|
|
19
19
|
import { useI18n } from 'vue-i18n';
|
|
20
20
|
|
|
21
|
-
import {
|
|
21
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
22
22
|
|
|
23
23
|
type ModelValue = number[];
|
|
24
24
|
|
|
25
|
+
const props = defineProps<{
|
|
26
|
+
filterConfig: WtSysTypeFilterConfig;
|
|
27
|
+
disableValidation?: boolean;
|
|
28
|
+
}>();
|
|
29
|
+
|
|
25
30
|
const model = defineModel<ModelValue>();
|
|
26
31
|
|
|
27
32
|
const emit = defineEmits<{
|
|
@@ -29,6 +34,10 @@ const emit = defineEmits<{
|
|
|
29
34
|
}>();
|
|
30
35
|
const { t } = useI18n();
|
|
31
36
|
|
|
37
|
+
const labelValue = computed(() =>
|
|
38
|
+
t(`webitelUI.filters.${props?.filterConfig?.showFilterName ?
|
|
39
|
+
props?.filterConfig.name : 'filterValue'}`))
|
|
40
|
+
|
|
32
41
|
const v$ = useVuelidate(
|
|
33
42
|
computed(() => ({
|
|
34
43
|
model: {
|
|
@@ -40,6 +49,10 @@ const v$ = useVuelidate(
|
|
|
40
49
|
);
|
|
41
50
|
v$.value.$touch();
|
|
42
51
|
|
|
52
|
+
onMounted(() => {
|
|
53
|
+
if (!props?.disableValidation) v$.value.$touch();
|
|
54
|
+
});
|
|
55
|
+
|
|
43
56
|
watch(
|
|
44
57
|
() => v$.value.$invalid,
|
|
45
58
|
(invalid) => {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<wt-select
|
|
3
|
+
:label="labelValue"
|
|
4
|
+
:options="options"
|
|
5
|
+
:value="model"
|
|
6
|
+
:v="!disableValidation && v$.model"
|
|
7
|
+
track-by="value"
|
|
8
|
+
option-label="label"
|
|
9
|
+
use-value-from-options-by-prop="value"
|
|
10
|
+
@input="model = $event"
|
|
11
|
+
/>
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<script lang="ts" setup>
|
|
15
|
+
import { useVuelidate } from '@vuelidate/core';
|
|
16
|
+
import { required } from '@vuelidate/validators';
|
|
17
|
+
import { WtSelect } from '@webitel/ui-sdk/components';
|
|
18
|
+
import { computed, onMounted, watch } from 'vue';
|
|
19
|
+
import { useI18n } from 'vue-i18n';
|
|
20
|
+
|
|
21
|
+
import { useQueuePeriodOptions } from '../../composables/useQueuePeriodOptions';
|
|
22
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
23
|
+
|
|
24
|
+
const model = defineModel<string>();
|
|
25
|
+
const { t } = useI18n();
|
|
26
|
+
|
|
27
|
+
const props = defineProps<{
|
|
28
|
+
filterConfig?: WtSysTypeFilterConfig,
|
|
29
|
+
disableValidation?: boolean;
|
|
30
|
+
}>();
|
|
31
|
+
|
|
32
|
+
const v$ = useVuelidate(
|
|
33
|
+
computed(() => ({
|
|
34
|
+
model: {
|
|
35
|
+
required,
|
|
36
|
+
},
|
|
37
|
+
})),
|
|
38
|
+
{ model },
|
|
39
|
+
{ $autoDirty: true },
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
v$.value.$touch();
|
|
43
|
+
|
|
44
|
+
const emit = defineEmits<{
|
|
45
|
+
'update:invalid': [boolean];
|
|
46
|
+
}>();
|
|
47
|
+
|
|
48
|
+
const labelValue = computed(() =>
|
|
49
|
+
t(`webitelUI.filters.${props?.filterConfig?.showFilterName ?
|
|
50
|
+
props?.filterConfig.name : 'filterValue'}`));
|
|
51
|
+
|
|
52
|
+
const { options } = useQueuePeriodOptions();
|
|
53
|
+
|
|
54
|
+
onMounted(() => {
|
|
55
|
+
if (!props?.disableValidation) v$.value.$touch();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
watch(
|
|
59
|
+
() => v$.value.$invalid,
|
|
60
|
+
(invalid) => {
|
|
61
|
+
emit('update:invalid', invalid);
|
|
62
|
+
},
|
|
63
|
+
{ immediate: true },
|
|
64
|
+
);
|
|
65
|
+
</script>
|
|
66
|
+
|
|
67
|
+
<style scoped></style>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<ul>
|
|
3
|
+
<li
|
|
4
|
+
v-for="({ label }, index) of arrayValues"
|
|
5
|
+
:key="index"
|
|
6
|
+
>
|
|
7
|
+
{{ label }}
|
|
8
|
+
</li>
|
|
9
|
+
</ul>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script lang="ts" setup>
|
|
13
|
+
import { useQueuePeriodOptions } from '../../composables/useQueuePeriodOptions';
|
|
14
|
+
import { computed } from 'vue';
|
|
15
|
+
|
|
16
|
+
const props = defineProps<{
|
|
17
|
+
value: number[];
|
|
18
|
+
}>();
|
|
19
|
+
|
|
20
|
+
const { options } = useQueuePeriodOptions();
|
|
21
|
+
|
|
22
|
+
const arrayLabels = computed(() =>
|
|
23
|
+
options.value.reduce((acc, { value, label }) => {
|
|
24
|
+
acc[value] = label;
|
|
25
|
+
return acc;
|
|
26
|
+
}, {})
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
const arrayValues = computed(() =>
|
|
30
|
+
props.value.map((v) => arrayLabels.value[v] || v)
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<style scoped></style>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<wt-select
|
|
3
|
+
:label="labelValue"
|
|
4
|
+
:options="options"
|
|
5
|
+
:value="model"
|
|
6
|
+
:v="!disableValidation && v$.model"
|
|
7
|
+
track-by="value"
|
|
8
|
+
option-label="label"
|
|
9
|
+
use-value-from-options-by-prop="value"
|
|
10
|
+
@input="model = $event"
|
|
11
|
+
/>
|
|
12
|
+
</template>
|
|
13
|
+
|
|
14
|
+
<script lang="ts" setup>
|
|
15
|
+
import { useVuelidate } from '@vuelidate/core';
|
|
16
|
+
import { required } from '@vuelidate/validators';
|
|
17
|
+
import { WtSelect } from '@webitel/ui-sdk/components';
|
|
18
|
+
import { computed, onMounted, watch } from 'vue';
|
|
19
|
+
import { useI18n } from 'vue-i18n';
|
|
20
|
+
|
|
21
|
+
import { useQueueTypeOptions } from '../../composables/useQueueTypeOptions';
|
|
22
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
23
|
+
|
|
24
|
+
const model = defineModel<string>();
|
|
25
|
+
const { t } = useI18n();
|
|
26
|
+
|
|
27
|
+
const props = defineProps<{
|
|
28
|
+
filterConfig?: WtSysTypeFilterConfig;
|
|
29
|
+
disableValidation?: boolean;
|
|
30
|
+
}>();
|
|
31
|
+
|
|
32
|
+
const v$ = useVuelidate(
|
|
33
|
+
computed(() => ({
|
|
34
|
+
model: {
|
|
35
|
+
required,
|
|
36
|
+
},
|
|
37
|
+
})),
|
|
38
|
+
{ model },
|
|
39
|
+
{ $autoDirty: true },
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
v$.value.$touch();
|
|
43
|
+
|
|
44
|
+
const emit = defineEmits<{
|
|
45
|
+
'update:invalid': [boolean];
|
|
46
|
+
}>();
|
|
47
|
+
|
|
48
|
+
const labelValue = computed(() =>
|
|
49
|
+
t(`webitelUI.filters.${props?.filterConfig?.showFilterName ?
|
|
50
|
+
props?.filterConfig.name : 'filterValue'}`));
|
|
51
|
+
|
|
52
|
+
const { options } = useQueueTypeOptions();
|
|
53
|
+
|
|
54
|
+
onMounted(() => {
|
|
55
|
+
if (!props?.disableValidation) v$.value.$touch();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
watch(
|
|
59
|
+
() => v$.value.$invalid,
|
|
60
|
+
(invalid) => {
|
|
61
|
+
emit('update:invalid', invalid);
|
|
62
|
+
},
|
|
63
|
+
{ immediate: true },
|
|
64
|
+
);
|
|
65
|
+
</script>
|
|
66
|
+
|
|
67
|
+
<style scoped></style>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<ul>
|
|
3
|
+
<li
|
|
4
|
+
v-for="({ label }, index) of arrayValues"
|
|
5
|
+
:key="index"
|
|
6
|
+
>
|
|
7
|
+
{{ label }}
|
|
8
|
+
</li>
|
|
9
|
+
</ul>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script lang="ts" setup>
|
|
13
|
+
import { useQueueTypeOptions } from '../../composables/useQueueTypeOptions';
|
|
14
|
+
import { computed } from 'vue';
|
|
15
|
+
|
|
16
|
+
const props = defineProps<{
|
|
17
|
+
value: number[];
|
|
18
|
+
}>();
|
|
19
|
+
|
|
20
|
+
const { options } = useQueueTypeOptions();
|
|
21
|
+
|
|
22
|
+
const arrayLabels = computed(() =>
|
|
23
|
+
options.value.reduce((acc, { value, label }) => {
|
|
24
|
+
acc[value] = label;
|
|
25
|
+
return acc;
|
|
26
|
+
}, {})
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
const arrayValues = computed(() =>
|
|
30
|
+
props.value.map((v) => arrayLabels.value[v] || v)
|
|
31
|
+
);
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<style scoped></style>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import TeamsAPI from '@webitel/ui-sdk/api/clients/teams/teams';
|
|
2
|
+
|
|
3
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
4
|
+
import { FilterOption } from '../../enums/FilterOption';
|
|
5
|
+
import TeamFilterValueField from './team-filter-value-field.vue';
|
|
6
|
+
import TeamFilterValuePreview from './team-filter-value-preview.vue';
|
|
7
|
+
|
|
8
|
+
class TeamFilterConfig extends WtSysTypeFilterConfig {
|
|
9
|
+
readonly name = FilterOption.Team;
|
|
10
|
+
valueInputComponent = TeamFilterValueField;
|
|
11
|
+
valuePreviewComponent = TeamFilterValuePreview;
|
|
12
|
+
|
|
13
|
+
searchRecords(
|
|
14
|
+
params: object
|
|
15
|
+
): Promise<{ items: unknown[]; next?: boolean }> {
|
|
16
|
+
return TeamsAPI.getLookup(params);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const createTeamFilterConfig = (params) =>
|
|
21
|
+
new TeamFilterConfig(params);
|
package/src/modules/filters/modules/filterConfig/components/team/team-filter-value-field.vue
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<wt-select
|
|
3
3
|
:close-on-select="false"
|
|
4
|
-
:label="
|
|
5
|
-
:search-method="
|
|
4
|
+
:label="labelValue"
|
|
5
|
+
:search-method="props.filterConfig.searchRecords"
|
|
6
6
|
:value="model"
|
|
7
|
-
:v="v$.model"
|
|
7
|
+
:v="!disableValidation && v$.model"
|
|
8
8
|
multiple
|
|
9
9
|
use-value-from-options-by-prop="id"
|
|
10
10
|
@input="handleInput"
|
|
@@ -15,10 +15,15 @@
|
|
|
15
15
|
import { useVuelidate } from '@vuelidate/core';
|
|
16
16
|
import { required } from '@vuelidate/validators';
|
|
17
17
|
import { WtSelect } from '@webitel/ui-sdk/components';
|
|
18
|
-
import { computed, watch } from 'vue';
|
|
18
|
+
import { computed, onMounted, watch } from 'vue';
|
|
19
19
|
import { useI18n } from 'vue-i18n';
|
|
20
20
|
|
|
21
|
-
import {
|
|
21
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
22
|
+
|
|
23
|
+
const props = defineProps<{
|
|
24
|
+
filterConfig: WtSysTypeFilterConfig;
|
|
25
|
+
disableValidation?: boolean;
|
|
26
|
+
}>();
|
|
22
27
|
|
|
23
28
|
type ModelValue = number[];
|
|
24
29
|
|
|
@@ -40,6 +45,14 @@ const v$ = useVuelidate(
|
|
|
40
45
|
);
|
|
41
46
|
v$.value.$touch();
|
|
42
47
|
|
|
48
|
+
const labelValue = computed(() =>
|
|
49
|
+
t(`webitelUI.filters.${props?.filterConfig?.showFilterName ?
|
|
50
|
+
props?.filterConfig.name : 'filterValue'}`))
|
|
51
|
+
|
|
52
|
+
onMounted(() => {
|
|
53
|
+
if (!props?.disableValidation) v$.value.$touch();
|
|
54
|
+
});
|
|
55
|
+
|
|
43
56
|
watch(
|
|
44
57
|
() => v$.value.$invalid,
|
|
45
58
|
(invalid) => {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { computed } from 'vue';
|
|
2
|
+
import { useI18n } from 'vue-i18n';
|
|
3
|
+
|
|
4
|
+
export function useQueuePeriodOptions() {
|
|
5
|
+
const { t } = useI18n();
|
|
6
|
+
|
|
7
|
+
const QueuePeriodOptions = {
|
|
8
|
+
today: 'today',
|
|
9
|
+
h6: '6hour',
|
|
10
|
+
h3: '3hour',
|
|
11
|
+
h1: '1hour',
|
|
12
|
+
m30: '30min',
|
|
13
|
+
m15: '15min',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const mapPeriodToLabel = (value: string) => {
|
|
17
|
+
switch (value) {
|
|
18
|
+
case QueuePeriodOptions.today:
|
|
19
|
+
return t('filters.period.options.today');
|
|
20
|
+
case QueuePeriodOptions.h6:
|
|
21
|
+
return t('filters.period.options.h', { h: 6 }, 2);
|
|
22
|
+
case QueuePeriodOptions.h3:
|
|
23
|
+
return t('filters.period.options.h', { h: 3 }, 2);
|
|
24
|
+
case QueuePeriodOptions.h1:
|
|
25
|
+
return t('filters.period.options.h', { h: 1 }, 1);
|
|
26
|
+
case QueuePeriodOptions.m30:
|
|
27
|
+
return t('filters.period.options.m', { m: 30 }, 2);
|
|
28
|
+
case QueuePeriodOptions.m15:
|
|
29
|
+
return t('filters.period.options.m', { m: 15 }, 2);
|
|
30
|
+
default:
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const options = computed(() =>
|
|
36
|
+
Object.values(QueuePeriodOptions).map((value) => ({
|
|
37
|
+
value,
|
|
38
|
+
label: mapPeriodToLabel(value),
|
|
39
|
+
}))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
options,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { QueueType } from '@webitel/ui-sdk/enums';
|
|
2
|
+
import { computed } from 'vue';
|
|
3
|
+
import { useI18n } from 'vue-i18n';
|
|
4
|
+
|
|
5
|
+
export function useQueueTypeOptions() {
|
|
6
|
+
const { t } = useI18n();
|
|
7
|
+
|
|
8
|
+
const mapQueueTypeToLabel = (value: string) =>
|
|
9
|
+
t(`objects.queue.type.${value}`);
|
|
10
|
+
|
|
11
|
+
const options = computed(() =>
|
|
12
|
+
Object.entries(QueueType)
|
|
13
|
+
.map(([key, value]) => ({
|
|
14
|
+
value,
|
|
15
|
+
label: mapQueueTypeToLabel(value),
|
|
16
|
+
}))
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
return {
|
|
20
|
+
options,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -239,6 +239,12 @@ export const tableStoreBody = <Entity extends { id: string; etag?: string }>(
|
|
|
239
239
|
return loadDataList();
|
|
240
240
|
};
|
|
241
241
|
|
|
242
|
+
const resetInfiniteScrollTableParamsToDefaults = () => {
|
|
243
|
+
paginationStore.$reset();
|
|
244
|
+
filtersManager.value.reset();
|
|
245
|
+
headersStore.$reset();
|
|
246
|
+
};
|
|
247
|
+
|
|
242
248
|
return {
|
|
243
249
|
isStoreSetUp, // internal export for pinia devtools
|
|
244
250
|
|
|
@@ -271,6 +277,8 @@ export const tableStoreBody = <Entity extends { id: string; etag?: string }>(
|
|
|
271
277
|
patchItemProperty,
|
|
272
278
|
deleteEls,
|
|
273
279
|
|
|
280
|
+
resetInfiniteScrollTableParamsToDefaults,
|
|
281
|
+
|
|
274
282
|
updateSearchMode,
|
|
275
283
|
|
|
276
284
|
updatePage,
|
|
@@ -87,6 +87,7 @@ export declare const filterPresetsStoreBody: (namespace?: string) => {
|
|
|
87
87
|
updateSelected: (value: EnginePresetQuery[]) => void;
|
|
88
88
|
patchItemProperty: ({ index, path, value, }: import("../../types/tableStore.types").PatchItemPropertyParams) => Promise<void>;
|
|
89
89
|
deleteEls: (_els: EnginePresetQuery[]) => Promise<void>;
|
|
90
|
+
resetInfiniteScrollTableParamsToDefaults: () => void;
|
|
90
91
|
updateSearchMode: (newSearch: string) => void;
|
|
91
92
|
updatePage: (newPage: number) => void;
|
|
92
93
|
updateSize: (newSize: number) => void;
|
|
@@ -191,6 +192,7 @@ export declare const createFilterPresetsStore: (namespace: string) => () => {
|
|
|
191
192
|
updateSelected: (value: EnginePresetQuery[]) => void;
|
|
192
193
|
patchItemProperty: ({ index, path, value, }: import("../../types/tableStore.types").PatchItemPropertyParams) => Promise<void>;
|
|
193
194
|
deleteEls: (_els: EnginePresetQuery[]) => Promise<void>;
|
|
195
|
+
resetInfiniteScrollTableParamsToDefaults: () => void;
|
|
194
196
|
updateSearchMode: (newSearch: string) => void;
|
|
195
197
|
updatePage: (newPage: number) => void;
|
|
196
198
|
updateSize: (newSize: number) => void;
|
|
@@ -13,6 +13,7 @@ export type FilterConfigBaseParams = {
|
|
|
13
13
|
valueInputComponent?: Component;
|
|
14
14
|
valuePreviewComponent?: Component;
|
|
15
15
|
notDeletable?: boolean;
|
|
16
|
+
showFilterName: boolean;
|
|
16
17
|
};
|
|
17
18
|
export interface IWtSysTypeFilterConfig extends BaseFilterConfig {
|
|
18
19
|
searchRecords: (params: FilterConfigSearchMethodParams) => Promise<{
|
|
@@ -44,7 +45,8 @@ export declare class FilterConfig implements BaseFilterConfig {
|
|
|
44
45
|
label?: ReturnType<MessageResolver> | string;
|
|
45
46
|
staticView?: boolean;
|
|
46
47
|
notDeletable: boolean;
|
|
47
|
-
|
|
48
|
+
showFilterName: boolean;
|
|
49
|
+
constructor({ name, valueInputComponent, valuePreviewComponent, notDeletable, showFilterName, staticView, }?: FilterConfigBaseParams);
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* @author @dlohvinov
|
|
@@ -61,6 +61,10 @@ import HasUserFilter from './has-user/has-user-filter-value-field.vue';
|
|
|
61
61
|
import HasUserFilterPreview from './has-user/has-user-filter-value-preview.vue';
|
|
62
62
|
import QueueFilter from './queue/queue-filter-value-field.vue';
|
|
63
63
|
import QueueFilterPreview from './queue/queue-filter-value-preview.vue';
|
|
64
|
+
import QueueTypeFilter from './queue-type/queue-type-filter-value-field.vue';
|
|
65
|
+
import QueueTypeFilterPreview from './queue-type/queue-type-filter-value-preview.vue';
|
|
66
|
+
import QueuePeriodFilter from './queue-period/queue-period-filter-value-field.vue';
|
|
67
|
+
import QueuePeriodFilterPreview from './queue-period/queue-period-filter-value-preview.vue';
|
|
64
68
|
import RatedByFilter from './rated-by/rated-by-filter-value-field.vue';
|
|
65
69
|
import RatedByFilterPreview from './rated-by/rated-by-filter-value-preview.vue';
|
|
66
70
|
import RatingFromToFilter from './rating/rating-from-to-filter-value-field.vue';
|
|
@@ -79,7 +83,7 @@ import UserFilter from './user/user-filter-value-field.vue';
|
|
|
79
83
|
import UserFilterPreview from './user/user-filter-value-preview.vue';
|
|
80
84
|
import VariableFilter from './variable/variable-filter-value-field.vue';
|
|
81
85
|
import VariableFilterPreview from './variable/variable-filter-value-preview.vue';
|
|
82
|
-
export { AgentFilter, AgentFilterPreview, AmdResultFilter, AmdResultFilterPreview, CallDirectionFilterValueField, CallDirectionFilterValuePreview, CaseActualReactionTimeFilterValueField, CaseActualReactionTimeFilterValuePreview, CaseActualResolutionTimeFilterValueField, CaseActualResolutionTimeFilterValuePreview, CaseAuthorFilterValueField, CaseAuthorFilterValuePreview, CaseCloseReasonGroupsFilterValueField, CaseCloseReasonGroupsFilterValuePreview, CaseImpactedFilterValueField, CaseImpactedFilterValuePreview, CasePriorityFilterValueField, CasePriorityFilterValuePreview, CaseReactionTimeFilterValueField, CaseReactionTimeFilterValuePreview, CaseReporterFilterValueField, CaseReporterFilterValuePreview, CaseResolutionTimeFilterValueField, CaseResolutionTimeFilterValuePreview, CaseServiceFilterValueField, CaseServiceFilterValuePreview, CaseSlaConditionFilterValueField, CaseSlaConditionFilterValuePreview, CaseSlaFilterValueField, CaseSlaFilterValuePreview, CaseSourceFilterValueField, CaseSourceFilterValuePreview, CaseStatusFilterValueField, CaseStatusFilterValuePreview, ContactFilter, ContactFilterPreview, ContactGroupFilter, ContactGroupFilterPreview, ContactLabelFilter, ContactLabelFilterPreview, ContactOwnerFilter, ContactOwnerFilterPreview, DateTimeOptionsFilterValueField, GatewayFilter, GatewayFilterPreview, GranteeFilter, GranteeFilterPreview, HangupCauseFilterValueField, HangupCauseFilterValuePreview, HasAttachmentFilter, HasAttachmentFilterPreview, HasFileFilter, HasFileFilterPreview, HasRatingFilterValueField, HasRatingFilterValuePreview, HasTranscriptionFilter, HasTranscriptionFilterPreview, HasUserFilter, HasUserFilterPreview, QueueFilter, QueueFilterPreview, RatedByFilter, RatedByFilterPreview, RatingFromToFilter, RatingFromToFilterPreview, ScoreFilter, ScoreFilterPreview, TagFilter, TagFilterPreview, TalkDurationFilter, TalkDurationFilterPreview, TeamFilter, TeamFilterPreview, TotalDurationFilter, TotalDurationFilterPreview, UserFilter, UserFilterPreview, VariableFilter, VariableFilterPreview, };
|
|
86
|
+
export { AgentFilter, AgentFilterPreview, AmdResultFilter, AmdResultFilterPreview, CallDirectionFilterValueField, CallDirectionFilterValuePreview, CaseActualReactionTimeFilterValueField, CaseActualReactionTimeFilterValuePreview, CaseActualResolutionTimeFilterValueField, CaseActualResolutionTimeFilterValuePreview, CaseAuthorFilterValueField, CaseAuthorFilterValuePreview, CaseCloseReasonGroupsFilterValueField, CaseCloseReasonGroupsFilterValuePreview, CaseImpactedFilterValueField, CaseImpactedFilterValuePreview, CasePriorityFilterValueField, CasePriorityFilterValuePreview, CaseReactionTimeFilterValueField, CaseReactionTimeFilterValuePreview, CaseReporterFilterValueField, CaseReporterFilterValuePreview, CaseResolutionTimeFilterValueField, CaseResolutionTimeFilterValuePreview, CaseServiceFilterValueField, CaseServiceFilterValuePreview, CaseSlaConditionFilterValueField, CaseSlaConditionFilterValuePreview, CaseSlaFilterValueField, CaseSlaFilterValuePreview, CaseSourceFilterValueField, CaseSourceFilterValuePreview, CaseStatusFilterValueField, CaseStatusFilterValuePreview, ContactFilter, ContactFilterPreview, ContactGroupFilter, ContactGroupFilterPreview, ContactLabelFilter, ContactLabelFilterPreview, ContactOwnerFilter, ContactOwnerFilterPreview, DateTimeOptionsFilterValueField, GatewayFilter, GatewayFilterPreview, GranteeFilter, GranteeFilterPreview, HangupCauseFilterValueField, HangupCauseFilterValuePreview, HasAttachmentFilter, HasAttachmentFilterPreview, HasFileFilter, HasFileFilterPreview, HasRatingFilterValueField, HasRatingFilterValuePreview, HasTranscriptionFilter, HasTranscriptionFilterPreview, HasUserFilter, HasUserFilterPreview, QueueFilter, QueueFilterPreview, QueueTypeFilter, QueueTypeFilterPreview, QueuePeriodFilter, QueuePeriodFilterPreview, RatedByFilter, RatedByFilterPreview, RatingFromToFilter, RatingFromToFilterPreview, ScoreFilter, ScoreFilterPreview, TagFilter, TagFilterPreview, TalkDurationFilter, TalkDurationFilterPreview, TeamFilter, TeamFilterPreview, TotalDurationFilter, TotalDurationFilterPreview, UserFilter, UserFilterPreview, VariableFilter, VariableFilterPreview, };
|
|
83
87
|
export declare const FilterOptionToValueComponentMap: Record<FilterOptionName, Component>;
|
|
84
88
|
export declare const FilterOptionToPreviewComponentMap: Record<FilterOptionName, Component>;
|
|
85
89
|
export declare const FilterOptionToPreviewApiSearchMethodMap: Record<FilterOptionName, (unknown: any) => {
|
|
@@ -120,6 +124,7 @@ export declare const FilterOptionToFilterConfigCreatorMap: {
|
|
|
120
124
|
label?: ReturnType<FilterOptionName> | string;
|
|
121
125
|
staticView?: boolean;
|
|
122
126
|
notDeletable: boolean;
|
|
127
|
+
showFilterName: boolean;
|
|
123
128
|
};
|
|
124
129
|
contactOwner: (params: any) => {
|
|
125
130
|
readonly name: "contactOwner";
|
|
@@ -150,6 +155,7 @@ export declare const FilterOptionToFilterConfigCreatorMap: {
|
|
|
150
155
|
label?: ReturnType<FilterOptionName> | string;
|
|
151
156
|
staticView?: boolean;
|
|
152
157
|
notDeletable: boolean;
|
|
158
|
+
showFilterName: boolean;
|
|
153
159
|
};
|
|
154
160
|
contactGroup: (params: any) => {
|
|
155
161
|
readonly name: "contactGroup";
|
|
@@ -199,5 +205,72 @@ export declare const FilterOptionToFilterConfigCreatorMap: {
|
|
|
199
205
|
label?: ReturnType<FilterOptionName> | string;
|
|
200
206
|
staticView?: boolean;
|
|
201
207
|
notDeletable: boolean;
|
|
208
|
+
showFilterName: boolean;
|
|
209
|
+
};
|
|
210
|
+
team: (params: any) => {
|
|
211
|
+
readonly name: "team";
|
|
212
|
+
valueInputComponent: import("vue").DefineComponent<{
|
|
213
|
+
filterConfig: import("..").WtSysTypeFilterConfig;
|
|
214
|
+
disableValidation?: boolean;
|
|
215
|
+
} & {
|
|
216
|
+
modelValue?: number[];
|
|
217
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
218
|
+
"update:modelValue": (value: number[]) => any;
|
|
219
|
+
"update:invalid": (args_0: boolean) => any;
|
|
220
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
221
|
+
filterConfig: import("..").WtSysTypeFilterConfig;
|
|
222
|
+
disableValidation?: boolean;
|
|
223
|
+
} & {
|
|
224
|
+
modelValue?: number[];
|
|
225
|
+
}> & Readonly<{
|
|
226
|
+
"onUpdate:modelValue"?: (value: number[]) => any;
|
|
227
|
+
"onUpdate:invalid"?: (args_0: boolean) => any;
|
|
228
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
229
|
+
valuePreviewComponent: import("vue").DefineComponent<{
|
|
230
|
+
value: FilterOptionName[];
|
|
231
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
232
|
+
value: FilterOptionName[];
|
|
233
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
234
|
+
searchRecords(params: object): Promise<{
|
|
235
|
+
items: unknown[];
|
|
236
|
+
next?: boolean;
|
|
237
|
+
}>;
|
|
238
|
+
label?: ReturnType<FilterOptionName> | string;
|
|
239
|
+
staticView?: boolean;
|
|
240
|
+
notDeletable: boolean;
|
|
241
|
+
showFilterName: boolean;
|
|
242
|
+
};
|
|
243
|
+
queue: (params: any) => {
|
|
244
|
+
readonly name: "queue";
|
|
245
|
+
valueInputComponent: import("vue").DefineComponent<{
|
|
246
|
+
filterConfig: import("..").WtSysTypeFilterConfig;
|
|
247
|
+
disableValidation?: boolean;
|
|
248
|
+
} & {
|
|
249
|
+
modelValue?: number[];
|
|
250
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
251
|
+
"update:modelValue": (value: number[]) => any;
|
|
252
|
+
"update:invalid": (args_0: boolean) => any;
|
|
253
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
254
|
+
filterConfig: import("..").WtSysTypeFilterConfig;
|
|
255
|
+
disableValidation?: boolean;
|
|
256
|
+
} & {
|
|
257
|
+
modelValue?: number[];
|
|
258
|
+
}> & Readonly<{
|
|
259
|
+
"onUpdate:modelValue"?: (value: number[]) => any;
|
|
260
|
+
"onUpdate:invalid"?: (args_0: boolean) => any;
|
|
261
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
262
|
+
valuePreviewComponent: import("vue").DefineComponent<{
|
|
263
|
+
value: FilterOptionName[];
|
|
264
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
265
|
+
value: FilterOptionName[];
|
|
266
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
267
|
+
searchRecords(params: object): Promise<{
|
|
268
|
+
items: unknown[];
|
|
269
|
+
next?: boolean;
|
|
270
|
+
}>;
|
|
271
|
+
label?: ReturnType<FilterOptionName> | string;
|
|
272
|
+
staticView?: boolean;
|
|
273
|
+
notDeletable: boolean;
|
|
274
|
+
showFilterName: boolean;
|
|
202
275
|
};
|
|
203
276
|
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
2
|
+
declare class QueueFilterConfig extends WtSysTypeFilterConfig {
|
|
3
|
+
readonly name: "queue";
|
|
4
|
+
valueInputComponent: import("vue").DefineComponent<{
|
|
5
|
+
filterConfig: WtSysTypeFilterConfig;
|
|
6
|
+
disableValidation?: boolean;
|
|
7
|
+
} & {
|
|
8
|
+
modelValue?: number[];
|
|
9
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:modelValue": (value: number[]) => any;
|
|
11
|
+
"update:invalid": (args_0: boolean) => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
13
|
+
filterConfig: WtSysTypeFilterConfig;
|
|
14
|
+
disableValidation?: boolean;
|
|
15
|
+
} & {
|
|
16
|
+
modelValue?: number[];
|
|
17
|
+
}> & Readonly<{
|
|
18
|
+
"onUpdate:modelValue"?: (value: number[]) => any;
|
|
19
|
+
"onUpdate:invalid"?: (args_0: boolean) => any;
|
|
20
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
21
|
+
valuePreviewComponent: import("vue").DefineComponent<{
|
|
22
|
+
value: EngineQueue[];
|
|
23
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
24
|
+
value: EngineQueue[];
|
|
25
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
searchRecords(params: object): Promise<{
|
|
27
|
+
items: unknown[];
|
|
28
|
+
next?: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
export declare const createQueueFilterConfig: (params: any) => QueueFilterConfig;
|
|
32
|
+
export {};
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
1
2
|
type ModelValue = number[];
|
|
2
|
-
type
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
filterConfig: WtSysTypeFilterConfig;
|
|
5
|
+
disableValidation?: boolean;
|
|
6
|
+
};
|
|
7
|
+
type __VLS_PublicProps = __VLS_Props & {
|
|
3
8
|
modelValue?: ModelValue;
|
|
4
9
|
};
|
|
5
10
|
declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -8,5 +13,5 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {},
|
|
|
8
13
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
9
14
|
"onUpdate:modelValue"?: (value: ModelValue) => any;
|
|
10
15
|
"onUpdate:invalid"?: (args_0: boolean) => any;
|
|
11
|
-
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions,
|
|
16
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
17
|
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
filterConfig?: WtSysTypeFilterConfig;
|
|
4
|
+
disableValidation?: boolean;
|
|
5
|
+
};
|
|
6
|
+
type __VLS_PublicProps = __VLS_Props & {
|
|
7
|
+
modelValue?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:modelValue": (value: string) => any;
|
|
11
|
+
"update:invalid": (args_0: boolean) => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
13
|
+
"onUpdate:modelValue"?: (value: string) => any;
|
|
14
|
+
"onUpdate:invalid"?: (args_0: boolean) => any;
|
|
15
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
value: number[];
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
filterConfig?: WtSysTypeFilterConfig;
|
|
4
|
+
disableValidation?: boolean;
|
|
5
|
+
};
|
|
6
|
+
type __VLS_PublicProps = __VLS_Props & {
|
|
7
|
+
modelValue?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"update:modelValue": (value: string) => any;
|
|
11
|
+
"update:invalid": (args_0: boolean) => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
13
|
+
"onUpdate:modelValue"?: (value: string) => any;
|
|
14
|
+
"onUpdate:invalid"?: (args_0: boolean) => any;
|
|
15
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
value: number[];
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import TeamsAPI from '@webitel/ui-sdk/api/clients/teams/teams';
|
|
2
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
3
|
+
declare class TeamFilterConfig extends WtSysTypeFilterConfig {
|
|
4
|
+
readonly name: "team";
|
|
5
|
+
valueInputComponent: import("vue").DefineComponent<{
|
|
6
|
+
filterConfig: WtSysTypeFilterConfig;
|
|
7
|
+
disableValidation?: boolean;
|
|
8
|
+
} & {
|
|
9
|
+
modelValue?: number[];
|
|
10
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
|
+
"update:modelValue": (value: number[]) => any;
|
|
12
|
+
"update:invalid": (args_0: boolean) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
14
|
+
filterConfig: WtSysTypeFilterConfig;
|
|
15
|
+
disableValidation?: boolean;
|
|
16
|
+
} & {
|
|
17
|
+
modelValue?: number[];
|
|
18
|
+
}> & Readonly<{
|
|
19
|
+
"onUpdate:modelValue"?: (value: number[]) => any;
|
|
20
|
+
"onUpdate:invalid"?: (args_0: boolean) => any;
|
|
21
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
|
+
valuePreviewComponent: import("vue").DefineComponent<{
|
|
23
|
+
value: TeamsAPI[];
|
|
24
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
25
|
+
value: TeamsAPI[];
|
|
26
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
27
|
+
searchRecords(params: object): Promise<{
|
|
28
|
+
items: unknown[];
|
|
29
|
+
next?: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
}
|
|
32
|
+
export declare const createTeamFilterConfig: (params: any) => TeamFilterConfig;
|
|
33
|
+
export {};
|
package/types/modules/filters/modules/filterConfig/components/team/team-filter-value-field.vue.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
filterConfig: WtSysTypeFilterConfig;
|
|
4
|
+
disableValidation?: boolean;
|
|
5
|
+
};
|
|
1
6
|
type ModelValue = number[];
|
|
2
|
-
type __VLS_PublicProps = {
|
|
7
|
+
type __VLS_PublicProps = __VLS_Props & {
|
|
3
8
|
modelValue?: ModelValue;
|
|
4
9
|
};
|
|
5
10
|
declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -8,5 +13,5 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {},
|
|
|
8
13
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
9
14
|
"onUpdate:modelValue"?: (value: ModelValue) => any;
|
|
10
15
|
"onUpdate:invalid"?: (args_0: boolean) => any;
|
|
11
|
-
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions,
|
|
16
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
17
|
export default _default;
|
|
@@ -40,6 +40,8 @@ export declare const FilterOption: {
|
|
|
40
40
|
readonly CaseActualResolutionTime: "actualResolutionTime";
|
|
41
41
|
readonly HasAttachment: "hasAttachment";
|
|
42
42
|
readonly HasUser: "hasUser";
|
|
43
|
+
readonly QueueType: "queueType";
|
|
44
|
+
readonly QueuePeriod: "queuePeriod";
|
|
43
45
|
};
|
|
44
46
|
/**
|
|
45
47
|
*
|
|
@@ -89,6 +89,7 @@ export declare const tableStoreBody: <Entity extends {
|
|
|
89
89
|
updateSelected: (value: Entity[]) => void;
|
|
90
90
|
patchItemProperty: ({ index, path, value, }: PatchItemPropertyParams) => Promise<void>;
|
|
91
91
|
deleteEls: (_els: Entity[]) => Promise<void>;
|
|
92
|
+
resetInfiniteScrollTableParamsToDefaults: () => void;
|
|
92
93
|
updateSearchMode: (newSearch: string) => void;
|
|
93
94
|
updatePage: (newPage: number) => void;
|
|
94
95
|
updateSize: (newSize: number) => void;
|
|
@@ -193,6 +194,7 @@ export declare const createTableStore: <Entity extends {
|
|
|
193
194
|
updateSelected: (value: Entity[]) => void;
|
|
194
195
|
patchItemProperty: ({ index, path, value, }: PatchItemPropertyParams) => Promise<void>;
|
|
195
196
|
deleteEls: (_els: Entity[]) => Promise<void>;
|
|
197
|
+
resetInfiniteScrollTableParamsToDefaults: () => void;
|
|
196
198
|
updateSearchMode: (newSearch: string) => void;
|
|
197
199
|
updatePage: (newPage: number) => void;
|
|
198
200
|
updateSize: (newSize: number) => void;
|