@webitel/ui-datalist 1.0.8 → 1.0.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/package.json +1 -1
- package/src/filters/components/filter-options/has-attachment/has-attachment-filter-value-preview.vue +2 -11
- package/src/filters/components/filter-options/index.ts +47 -45
- package/src/filters/components/preview/dynamic-filter-preview.vue +8 -5
- package/src/filters/enums/FilterOption.ts +17 -17
package/package.json
CHANGED
package/src/filters/components/filter-options/has-attachment/has-attachment-filter-value-preview.vue
CHANGED
|
@@ -3,22 +3,13 @@
|
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script lang="ts" setup>
|
|
6
|
-
import {
|
|
7
|
-
import { useI18n } from 'vue-i18n';
|
|
8
|
-
|
|
9
|
-
import { BooleanOptions } from '../../../enums/boolean-options';
|
|
6
|
+
import { usePrettifyBooleanValuePreview } from '../_shared/composables/booleanFilterToolkit';
|
|
10
7
|
|
|
11
8
|
const props = defineProps<{
|
|
12
9
|
value: boolean;
|
|
13
10
|
}>();
|
|
14
|
-
const { t } = useI18n();
|
|
15
11
|
|
|
16
|
-
const localeValue =
|
|
17
|
-
const match = BooleanOptions.find(
|
|
18
|
-
(el) => el.value === props.value.toString(),
|
|
19
|
-
);
|
|
20
|
-
return match ? t(match.locale) : '';
|
|
21
|
-
});
|
|
12
|
+
const { localeValue } = usePrettifyBooleanValuePreview(props.value);
|
|
22
13
|
</script>
|
|
23
14
|
|
|
24
15
|
<style scoped></style>
|
|
@@ -191,11 +191,11 @@ export const FilterOptionToValueComponentMap: Record<
|
|
|
191
191
|
[FilterOption.Agent]: AgentFilter,
|
|
192
192
|
[FilterOption.AmdResult]: AmdResultFilter,
|
|
193
193
|
[FilterOption.Contact]: ContactFilter,
|
|
194
|
-
[FilterOption.
|
|
194
|
+
[FilterOption.CallDirection]: CallDirectionFilterValueField,
|
|
195
195
|
[FilterOption.Rated]: HasRatingFilterValueField,
|
|
196
196
|
[FilterOption.Gateway]: GatewayFilter,
|
|
197
197
|
[FilterOption.Grantee]: GranteeFilter,
|
|
198
|
-
[FilterOption.
|
|
198
|
+
[FilterOption.HangupCause]: HangupCauseFilterValueField,
|
|
199
199
|
[FilterOption.Queue]: QueueFilter,
|
|
200
200
|
[FilterOption.RatedBy]: RatedByFilter,
|
|
201
201
|
[FilterOption.HasFile]: HasFileFilter,
|
|
@@ -210,23 +210,24 @@ export const FilterOptionToValueComponentMap: Record<
|
|
|
210
210
|
[FilterOption.CreatedAt]: CreatedAtFilterValueField,
|
|
211
211
|
[FilterOption.CreatedAtFrom]: CreatedAtFromFilter,
|
|
212
212
|
[FilterOption.CreatedAtTo]: CreatedAtToFilter,
|
|
213
|
-
[FilterOption.
|
|
214
|
-
[FilterOption.
|
|
215
|
-
[FilterOption.
|
|
216
|
-
[FilterOption.
|
|
217
|
-
[FilterOption.
|
|
218
|
-
[FilterOption.
|
|
219
|
-
[FilterOption.
|
|
213
|
+
[FilterOption.CaseStatus]: CaseStatusFilterValueField,
|
|
214
|
+
[FilterOption.CaseSource]: CaseSourceFilterValueField,
|
|
215
|
+
[FilterOption.CaseService]: CaseServiceFilterValueField,
|
|
216
|
+
[FilterOption.CaseAuthor]: CaseAuthorFilterValueField,
|
|
217
|
+
[FilterOption.CaseReporter]: CaseReporterFilterValueField,
|
|
218
|
+
[FilterOption.CaseImpacted]: CaseImpactedFilterValueField,
|
|
219
|
+
[FilterOption.CaseAssignee]: CaseAssigneeFilterValueField,
|
|
220
220
|
[FilterOption.ContactGroup]: ContactGroupFilter,
|
|
221
|
-
[FilterOption.
|
|
222
|
-
[FilterOption.
|
|
221
|
+
[FilterOption.CasePriority]: CasePriorityFilterValueField,
|
|
222
|
+
[FilterOption.CaseCloseReasonGroups]: CaseCloseReasonGroupsFilterValueField,
|
|
223
223
|
[FilterOption.Rating]: RatingFromToFilter,
|
|
224
|
-
[FilterOption.
|
|
225
|
-
[FilterOption.
|
|
226
|
-
[FilterOption.
|
|
227
|
-
[FilterOption.
|
|
228
|
-
[FilterOption.
|
|
229
|
-
[FilterOption.
|
|
224
|
+
[FilterOption.CaseSla]: CaseSlaFilterValueField,
|
|
225
|
+
[FilterOption.CaseSlaCondition]: CaseSlaConditionFilterValueField,
|
|
226
|
+
[FilterOption.CaseReactionTime]: CaseReactionTimeFilterValueField,
|
|
227
|
+
[FilterOption.CaseResolutionTime]: CaseResolutionTimeFilterValueField,
|
|
228
|
+
[FilterOption.CaseActualReactionTime]: CaseActualReactionTimeFilterValueField,
|
|
229
|
+
[FilterOption.CaseActualResolutionTime]:
|
|
230
|
+
CaseActualResolutionTimeFilterValueField,
|
|
230
231
|
[FilterOption.HasAttachment]: HasAttachmentFilter,
|
|
231
232
|
};
|
|
232
233
|
|
|
@@ -238,11 +239,11 @@ export const FilterOptionToPreviewComponentMap: Record<
|
|
|
238
239
|
[FilterOption.Agent]: AgentFilterPreview,
|
|
239
240
|
[FilterOption.AmdResult]: AmdResultFilterPreview,
|
|
240
241
|
[FilterOption.Contact]: ContactFilterPreview,
|
|
241
|
-
[FilterOption.
|
|
242
|
+
[FilterOption.CallDirection]: CallDirectionFilterValuePreview,
|
|
242
243
|
[FilterOption.Rated]: HasRatingFilterValuePreview,
|
|
243
244
|
[FilterOption.Gateway]: GatewayFilterPreview,
|
|
244
245
|
[FilterOption.Grantee]: GranteeFilterPreview,
|
|
245
|
-
[FilterOption.
|
|
246
|
+
[FilterOption.HangupCause]: HangupCauseFilterValuePreview,
|
|
246
247
|
[FilterOption.Queue]: QueueFilterPreview,
|
|
247
248
|
[FilterOption.RatedBy]: RatedByFilterPreview,
|
|
248
249
|
[FilterOption.HasFile]: HasFileFilterPreview,
|
|
@@ -256,23 +257,24 @@ export const FilterOptionToPreviewComponentMap: Record<
|
|
|
256
257
|
[FilterOption.Variable]: VariableFilterPreview,
|
|
257
258
|
[FilterOption.CreatedAtFrom]: CreatedAtFromFilterPreview,
|
|
258
259
|
[FilterOption.CreatedAtTo]: CreatedAtToFilterPreview,
|
|
259
|
-
[FilterOption.
|
|
260
|
-
[FilterOption.
|
|
261
|
-
[FilterOption.
|
|
262
|
-
[FilterOption.
|
|
263
|
-
[FilterOption.
|
|
264
|
-
[FilterOption.
|
|
265
|
-
[FilterOption.
|
|
260
|
+
[FilterOption.CaseStatus]: CaseStatusFilterValuePreview,
|
|
261
|
+
[FilterOption.CaseSource]: CaseSourceFilterValuePreview,
|
|
262
|
+
[FilterOption.CaseService]: CaseServiceFilterValuePreview,
|
|
263
|
+
[FilterOption.CaseAuthor]: CaseAuthorFilterValuePreview,
|
|
264
|
+
[FilterOption.CaseReporter]: CaseReporterFilterValuePreview,
|
|
265
|
+
[FilterOption.CaseImpacted]: CaseImpactedFilterValuePreview,
|
|
266
|
+
[FilterOption.CaseAssignee]: CaseAssigneeFilterValuePreview,
|
|
266
267
|
[FilterOption.ContactGroup]: ContactGroupFilterPreview,
|
|
267
|
-
[FilterOption.
|
|
268
|
-
[FilterOption.
|
|
268
|
+
[FilterOption.CasePriority]: CasePriorityFilterValuePreview,
|
|
269
|
+
[FilterOption.CaseCloseReasonGroups]: CaseCloseReasonGroupsFilterValuePreview,
|
|
269
270
|
[FilterOption.Rating]: RatingFromToFilterPreview,
|
|
270
|
-
[FilterOption.
|
|
271
|
-
[FilterOption.
|
|
272
|
-
[FilterOption.
|
|
273
|
-
[FilterOption.
|
|
274
|
-
[FilterOption.
|
|
275
|
-
|
|
271
|
+
[FilterOption.CaseSla]: CaseSlaFilterValuePreview,
|
|
272
|
+
[FilterOption.CaseSlaCondition]: CaseSlaConditionFilterValuePreview,
|
|
273
|
+
[FilterOption.CaseReactionTime]: CaseReactionTimeFilterValuePreview,
|
|
274
|
+
[FilterOption.CaseResolutionTime]: CaseResolutionTimeFilterValuePreview,
|
|
275
|
+
[FilterOption.CaseActualReactionTime]:
|
|
276
|
+
CaseActualReactionTimeFilterValuePreview,
|
|
277
|
+
[FilterOption.CaseActualResolutionTime]:
|
|
276
278
|
CaseActualResolutionTimeFilterValuePreview,
|
|
277
279
|
[FilterOption.HasAttachment]: HasAttachmentFilterPreview,
|
|
278
280
|
};
|
|
@@ -286,11 +288,11 @@ export const FilterOptionToPreviewApiSearchMethodMap: Record<
|
|
|
286
288
|
[FilterOption.Grantee]: granteeSearchMethod,
|
|
287
289
|
[FilterOption.Queue]: queueSearchMethod,
|
|
288
290
|
[FilterOption.RatedBy]: ratedBySearchMethod,
|
|
289
|
-
[FilterOption.
|
|
290
|
-
[FilterOption.
|
|
291
|
-
[FilterOption.
|
|
292
|
-
[FilterOption.
|
|
293
|
-
[FilterOption.
|
|
291
|
+
[FilterOption.CaseReporter]: caseReporterSearchMethod,
|
|
292
|
+
[FilterOption.CaseSla]: caseSlaSearchMethod,
|
|
293
|
+
[FilterOption.CaseService]: servicesSearchMethod,
|
|
294
|
+
[FilterOption.CaseSource]: caseSourceSearchMethod,
|
|
295
|
+
[FilterOption.CaseStatus]: ({ id: value }) =>
|
|
294
296
|
caseStatusConditionsSearchMethod({
|
|
295
297
|
parentId: value?.selection,
|
|
296
298
|
id: value?.conditions,
|
|
@@ -302,25 +304,25 @@ export const FilterOptionToPreviewApiSearchMethodMap: Record<
|
|
|
302
304
|
...rest,
|
|
303
305
|
});
|
|
304
306
|
},
|
|
305
|
-
[FilterOption.
|
|
307
|
+
[FilterOption.CaseAssignee]: ({ id: value }, ...rest) => {
|
|
306
308
|
return caseAssigneeSearchMethod({
|
|
307
309
|
id: value.list,
|
|
308
310
|
...rest,
|
|
309
311
|
});
|
|
310
312
|
},
|
|
311
|
-
[FilterOption.
|
|
312
|
-
[FilterOption.
|
|
313
|
-
[FilterOption.
|
|
313
|
+
[FilterOption.CaseAuthor]: caseAuthorSearchMethod,
|
|
314
|
+
[FilterOption.CasePriority]: casePrioritySearchMethod,
|
|
315
|
+
[FilterOption.CaseImpacted]: caseImpactedSearchMethod,
|
|
314
316
|
[FilterOption.Contact]: contactSearchMethod,
|
|
315
317
|
[FilterOption.Team]: teamSearchMethod,
|
|
316
|
-
[FilterOption.
|
|
318
|
+
[FilterOption.CaseCloseReasonGroups]: ({ id: value, ...rest }) => {
|
|
317
319
|
return caseCloseReasonsSearchMethod({
|
|
318
320
|
parentId: value?.selection,
|
|
319
321
|
id: value?.conditions,
|
|
320
322
|
...rest,
|
|
321
323
|
});
|
|
322
324
|
},
|
|
323
|
-
[FilterOption.
|
|
325
|
+
[FilterOption.CaseSlaCondition]: ({ id: value, ...rest }) => {
|
|
324
326
|
return slasConditionsSearchMethod({
|
|
325
327
|
parentId: value?.selection,
|
|
326
328
|
id: value?.conditions,
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
{{ filter.label || t(`webitelUI.filters.${filter.name}`) }}
|
|
11
11
|
<wt-icon-btn
|
|
12
12
|
v-if="!filterConfig.notDeletable && !readonly"
|
|
13
|
+
color="on-primary"
|
|
13
14
|
icon="close--filled"
|
|
14
15
|
size="sm"
|
|
15
|
-
color="on-primary"
|
|
16
16
|
@mousedown.stop="deleteFilter"
|
|
17
17
|
/>
|
|
18
18
|
</wt-chip>
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
<template #default>
|
|
28
28
|
<slot name="info">
|
|
29
29
|
<wt-loader
|
|
30
|
-
v-if="!
|
|
30
|
+
v-if="!isRenderPreview"
|
|
31
31
|
size="sm"
|
|
32
32
|
/>
|
|
33
33
|
<component
|
|
34
34
|
:is="FilterOptionToPreviewComponentMap[filter.name]"
|
|
35
35
|
v-else
|
|
36
|
-
:value="localValue"
|
|
37
36
|
:filter="props.filter"
|
|
37
|
+
:value="localValue"
|
|
38
38
|
/>
|
|
39
39
|
</slot>
|
|
40
40
|
</template>
|
|
@@ -124,7 +124,6 @@ const fillLocalValue = async (filter = props.filter) => {
|
|
|
124
124
|
const filterValue = filter.value;
|
|
125
125
|
|
|
126
126
|
const valueSearchMethod = FilterOptionToPreviewApiSearchMethodMap[filterName];
|
|
127
|
-
|
|
128
127
|
if (valueSearchMethod) {
|
|
129
128
|
const { items } = await valueSearchMethod({ id: filterValue });
|
|
130
129
|
localValue.value = items;
|
|
@@ -133,6 +132,10 @@ const fillLocalValue = async (filter = props.filter) => {
|
|
|
133
132
|
}
|
|
134
133
|
};
|
|
135
134
|
|
|
135
|
+
// [https://webitel.atlassian.net/browse/WTEL-6732]
|
|
136
|
+
// if type filter is boolean and value = false, need display preview
|
|
137
|
+
const isRenderPreview = computed(() => localValue.value === false || localValue.value);
|
|
138
|
+
|
|
136
139
|
const submit = (filter: IFilter, { hide }) => {
|
|
137
140
|
emit('update:filter', filter);
|
|
138
141
|
fillLocalValue(filter);
|
|
@@ -147,8 +150,8 @@ const deleteFilter = () => {
|
|
|
147
150
|
<style lang="scss" scoped>
|
|
148
151
|
.wt-chip {
|
|
149
152
|
display: flex;
|
|
150
|
-
justify-content: center;
|
|
151
153
|
align-items: center;
|
|
154
|
+
justify-content: center;
|
|
152
155
|
gap: var(--spacing-2xs);
|
|
153
156
|
}
|
|
154
157
|
|
|
@@ -4,11 +4,11 @@ export const FilterOption = {
|
|
|
4
4
|
Agent: 'agent',
|
|
5
5
|
AmdResult: 'amdResult',
|
|
6
6
|
Contact: 'contact',
|
|
7
|
-
|
|
7
|
+
CallDirection: 'direction',
|
|
8
8
|
Rated: 'rated',
|
|
9
9
|
Gateway: 'gateway',
|
|
10
10
|
Grantee: 'grantee',
|
|
11
|
-
|
|
11
|
+
HangupCause: 'cause',
|
|
12
12
|
Queue: 'queue',
|
|
13
13
|
RatedBy: 'ratedBy',
|
|
14
14
|
HasFile: 'hasFile',
|
|
@@ -23,23 +23,23 @@ export const FilterOption = {
|
|
|
23
23
|
CreatedAt: 'createdAt',
|
|
24
24
|
CreatedAtFrom: 'createdAtFrom',
|
|
25
25
|
CreatedAtTo: 'createdAtTo',
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
CaseStatus: 'status',
|
|
27
|
+
CaseSource: 'source',
|
|
28
|
+
CaseService: 'service',
|
|
29
|
+
CaseAuthor: 'author',
|
|
30
|
+
CaseReporter: 'reporter',
|
|
31
|
+
CaseImpacted: 'impacted',
|
|
32
|
+
CaseAssignee: 'assignee',
|
|
33
33
|
ContactGroup: 'contactGroup',
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
CasePriority: 'priority',
|
|
35
|
+
CaseCloseReasonGroups: 'closeReasonGroups',
|
|
36
36
|
Rating: 'rating',
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
CaseSla: 'sla',
|
|
38
|
+
CaseSlaCondition: 'slaCondition',
|
|
39
|
+
CaseReactionTime: 'reactionTime',
|
|
40
|
+
CaseResolutionTime: 'resolutionTime',
|
|
41
|
+
CaseActualReactionTime: 'actualReactionTime',
|
|
42
|
+
CaseActualResolutionTime: 'actualResolutionTime',
|
|
43
43
|
HasAttachment: 'hasAttachment',
|
|
44
44
|
} as const satisfies FilterName;
|
|
45
45
|
|