@webitel/ui-datalist 1.0.6 → 1.0.8

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.
Files changed (74) hide show
  1. package/package.json +2 -2
  2. package/src/filters/classes/FiltersManager.ts +1 -1
  3. package/src/filters/components/filter-options/case-assignee/case-assignee-filter-value-preview.vue +36 -0
  4. package/src/filters/components/filter-options/{assignee → case-assignee}/config.js +0 -1
  5. package/src/filters/components/filter-options/case-author/case-author-filter-value-preview.vue +16 -0
  6. package/src/filters/components/filter-options/{author → case-author}/config.js +0 -1
  7. package/src/filters/components/filter-options/case-close-reason-groups/case-close-reason-groups-filter-value-preview.vue +15 -0
  8. package/src/filters/components/filter-options/{close-reason-groups-case → case-close-reason-groups}/config.js +0 -1
  9. package/src/filters/components/filter-options/case-impacted/case-impacted-filter-value-preview.vue +15 -0
  10. package/src/filters/components/filter-options/{reporter → case-impacted}/config.js +0 -1
  11. package/src/filters/components/filter-options/case-priority/case-priority-filter-value-preview.vue +15 -0
  12. package/src/filters/components/filter-options/{priority-case → case-priority}/config.js +0 -1
  13. package/src/filters/components/filter-options/case-reporter/case-reporter-filter-value-preview.vue +15 -0
  14. package/src/filters/components/filter-options/{impacted → case-reporter}/config.js +0 -1
  15. package/src/filters/components/filter-options/case-service/case-service-filter-value-preview.vue +18 -0
  16. package/src/filters/components/filter-options/{service-case → case-service}/config.js +1 -2
  17. package/src/filters/components/filter-options/case-sla/case-sla-filter-value-preview.vue +15 -0
  18. package/src/filters/components/filter-options/{sla → case-sla}/config.js +0 -1
  19. package/src/filters/components/filter-options/case-sla-condition/case-sla-condition-filter-value-preview.vue +15 -0
  20. package/src/filters/components/filter-options/{sla-condition → case-sla-condition}/config.js +0 -1
  21. package/src/filters/components/filter-options/case-source/case-source-filter-value-preview.vue +15 -0
  22. package/src/filters/components/filter-options/{source-case → case-source}/config.js +0 -1
  23. package/src/filters/components/filter-options/case-status/case-status-filter-value-preview.vue +15 -0
  24. package/src/filters/components/filter-options/{status-case → case-status}/config.js +0 -1
  25. package/src/filters/components/filter-options/contact/config.js +0 -1
  26. package/src/filters/components/filter-options/contact-group/config.js +0 -1
  27. package/src/filters/components/filter-options/contact-group/contact-group-filter-value-preview.vue +20 -22
  28. package/src/filters/components/filter-options/gateway/config.js +0 -1
  29. package/src/filters/components/filter-options/grantee/config.js +0 -1
  30. package/src/filters/components/filter-options/index.ts +184 -149
  31. package/src/filters/components/filter-options/queue/config.js +0 -1
  32. package/src/filters/components/filter-options/rated-by/config.js +0 -1
  33. package/src/filters/components/filter-options/team/config.js +0 -1
  34. package/src/filters/components/filter-options/user/config.js +0 -1
  35. package/src/filters/components/preview/dynamic-filter-preview.vue +3 -2
  36. package/src/filters/components/search-bar/dynamic-filter-search.vue +123 -0
  37. package/src/filters/components/search-bar/types/DynamicFilterSearch.d.ts +5 -0
  38. package/src/filters/enums/FilterOption.ts +3 -3
  39. package/src/filters/index.ts +1 -1
  40. package/src/filters/components/dynamic-filter-search.vue +0 -60
  41. package/src/filters/components/filter-options/assignee/assignee-filter-value-preview.vue +0 -36
  42. package/src/filters/components/filter-options/author/author-filter-value-preview.vue +0 -31
  43. package/src/filters/components/filter-options/close-reason-groups-case/close-reason-groups-case-filter-value-preview.vue +0 -34
  44. package/src/filters/components/filter-options/impacted/impacted-filter-value-preview.vue +0 -31
  45. package/src/filters/components/filter-options/priority-case/priority-case-filter-value-preview.vue +0 -31
  46. package/src/filters/components/filter-options/reporter/reporter-filter-value-preview.vue +0 -31
  47. package/src/filters/components/filter-options/service-case/service-case-filter-value-preview.vue +0 -34
  48. package/src/filters/components/filter-options/sla/sla-filter-value-preview.vue +0 -31
  49. package/src/filters/components/filter-options/sla-condition/sla-condition-filter-value-preview.vue +0 -37
  50. package/src/filters/components/filter-options/source-case/source-case-filter-value-preview.vue +0 -31
  51. package/src/filters/components/filter-options/status-case/status-case-filter-value-preview.vue +0 -37
  52. /package/src/filters/components/filter-options/{direction/direction-filter-value-field.vue → call-direction/call-direction-filter-value-field.vue} +0 -0
  53. /package/src/filters/components/filter-options/{direction/direction-filter-value-preview.vue → call-direction/call-direction-filter-value-preview.vue} +0 -0
  54. /package/src/filters/components/filter-options/{actual-reaction-time/actual-reaction-time-filter-value-field.vue → case-actual-reaction-time/case-actual-reaction-time-filter-value-field.vue} +0 -0
  55. /package/src/filters/components/filter-options/{actual-reaction-time/actual-reaction-time-filter-value-preview.vue → case-actual-reaction-time/case-actual-reaction-time-filter-value-preview.vue} +0 -0
  56. /package/src/filters/components/filter-options/{actual-resolution-time/actual-resolution-time-filter-value-field.vue → case-actual-resolution-time/case-actual-resolution-time-filter-value-field.vue} +0 -0
  57. /package/src/filters/components/filter-options/{actual-resolution-time/actual-resolution-time-filter-value-preview.vue → case-actual-resolution-time/case-actual-resolution-time-filter-value-preview.vue} +0 -0
  58. /package/src/filters/components/filter-options/{assignee/assignee-filter-value-field.vue → case-assignee/case-assignee-filter-value-field.vue} +0 -0
  59. /package/src/filters/components/filter-options/{author/author-filter-value-field.vue → case-author/case-author-filter-value-field.vue} +0 -0
  60. /package/src/filters/components/filter-options/{close-reason-groups-case/close-reason-groups-case-filter-value-field.vue → case-close-reason-groups/case-close-reason-groups-filter-value-field.vue} +0 -0
  61. /package/src/filters/components/filter-options/{impacted/impacted-filter-value-field.vue → case-impacted/case-impacted-filter-value-field.vue} +0 -0
  62. /package/src/filters/components/filter-options/{priority-case/priority-case-filter-value-field.vue → case-priority/case-priority-filter-value-field.vue} +0 -0
  63. /package/src/filters/components/filter-options/{reaction-time/reaction-time-filter-value-field.vue → case-reaction-time/case-reaction-time-filter-value-field.vue} +0 -0
  64. /package/src/filters/components/filter-options/{reaction-time/reaction-time-filter-value-preview.vue → case-reaction-time/case-reaction-time-filter-value-preview.vue} +0 -0
  65. /package/src/filters/components/filter-options/{reporter/reporter-filter-value-field.vue → case-reporter/case-reporter-filter-value-field.vue} +0 -0
  66. /package/src/filters/components/filter-options/{resolution-time/resolution-time-filter-value-field.vue → case-resolution-time/case-resolution-time-filter-value-field.vue} +0 -0
  67. /package/src/filters/components/filter-options/{resolution-time/resolution-time-filter-value-preview.vue → case-resolution-time/case-resolution-time-filter-value-preview.vue} +0 -0
  68. /package/src/filters/components/filter-options/{service-case/service-case-filter-value-field.vue → case-service/case-service-filter-value-field.vue} +0 -0
  69. /package/src/filters/components/filter-options/{sla/sla-filter-value-field.vue → case-sla/case-sla-filter-value-field.vue} +0 -0
  70. /package/src/filters/components/filter-options/{sla-condition/sla-condition-filter-value-field.vue → case-sla-condition/case-sla-condition-filter-value-field.vue} +0 -0
  71. /package/src/filters/components/filter-options/{source-case/source-case-filter-value-field.vue → case-source/case-source-filter-value-field.vue} +0 -0
  72. /package/src/filters/components/filter-options/{status-case/status-case-filter-value-field.vue → case-status/case-status-filter-value-field.vue} +0 -0
  73. /package/src/filters/components/filter-options/{cause/cause-filter-value-field.vue → hangup-cause/hangup-cause-filter-value-field.vue} +0 -0
  74. /package/src/filters/components/filter-options/{cause/cause-filter-value-preview.vue → hangup-cause/hangup-cause-filter-value-preview.vue} +0 -0
@@ -1,25 +1,54 @@
1
1
  import type { Component } from 'vue';
2
2
 
3
- import { FilterOption } from '../../enums/FilterOption';
4
- import ActualReactionTimeFilter from './actual-reaction-time/actual-reaction-time-filter-value-field.vue';
5
- import ActualReactionTimeFilterPreview from './actual-reaction-time/actual-reaction-time-filter-value-preview.vue';
6
- import ActualResolutionTimeFilter from './actual-resolution-time/actual-resolution-time-filter-value-field.vue';
7
- import ActualResolutionTimeFilterPreview from './actual-resolution-time/actual-resolution-time-filter-value-preview.vue';
3
+ import { FilterOption, FilterOptionName } from '../../enums/FilterOption';
8
4
  import AgentFilter from './agent/agent-filter-value-field.vue';
9
5
  import AgentFilterPreview from './agent/agent-filter-value-preview.vue';
10
6
  import { searchMethod as agentSearchMethod } from './agent/config';
11
7
  import AmdResultFilter from './amd-result/amd-result-filter-value-field.vue';
12
8
  import AmdResultFilterPreview from './amd-result/amd-result-filter-value-preview.vue';
13
- import AssigneeFilter from './assignee/assignee-filter-value-field.vue';
14
- import AssigneeFilterPreview from './assignee/assignee-filter-value-preview.vue';
15
- import { searchMethod as assigneeSearchMethod } from './assignee/config';
16
- import AuthorFilter from './author/author-filter-value-field.vue';
17
- import AuthorFilterPreview from './author/author-filter-value-preview.vue';
18
- import { searchMethod as authorSearchMethod } from './author/config';
19
- import CauseFilter from './cause/cause-filter-value-field.vue';
20
- import CauseFilterPreview from './cause/cause-filter-value-preview.vue';
21
- import CloseReasonGroupsCaseFilter from './close-reason-groups-case/close-reason-groups-case-filter-value-field.vue';
22
- import CloseReasonGroupsCaseFilterPreview from './close-reason-groups-case/close-reason-groups-case-filter-value-preview.vue';
9
+ import CallDirectionFilterValueField from './call-direction/call-direction-filter-value-field.vue';
10
+ import CallDirectionFilterValuePreview from './call-direction/call-direction-filter-value-preview.vue';
11
+ import CaseActualReactionTimeFilterValueField from './case-actual-reaction-time/case-actual-reaction-time-filter-value-field.vue';
12
+ import CaseActualReactionTimeFilterValuePreview from './case-actual-reaction-time/case-actual-reaction-time-filter-value-preview.vue';
13
+ import CaseActualResolutionTimeFilterValueField from './case-actual-resolution-time/case-actual-resolution-time-filter-value-field.vue';
14
+ import CaseActualResolutionTimeFilterValuePreview from './case-actual-resolution-time/case-actual-resolution-time-filter-value-preview.vue';
15
+ import CaseAssigneeFilterValueField from './case-assignee/case-assignee-filter-value-field.vue';
16
+ import CaseAssigneeFilterValuePreview from './case-assignee/case-assignee-filter-value-preview.vue';
17
+ import { searchMethod as caseAssigneeSearchMethod } from './case-assignee/config';
18
+ import CaseAuthorFilterValueField from './case-author/case-author-filter-value-field.vue';
19
+ import CaseAuthorFilterValuePreview from './case-author/case-author-filter-value-preview.vue';
20
+ import { searchMethod as caseAuthorSearchMethod } from './case-author/config';
21
+ import CaseCloseReasonGroupsFilterValueField from './case-close-reason-groups/case-close-reason-groups-filter-value-field.vue';
22
+ import CaseCloseReasonGroupsFilterValuePreview from './case-close-reason-groups/case-close-reason-groups-filter-value-preview.vue';
23
+ import { caseCloseReasonsSearchMethod } from './case-close-reason-groups/config';
24
+ import CaseImpactedFilterValueField from './case-impacted/case-impacted-filter-value-field.vue';
25
+ import CaseImpactedFilterValuePreview from './case-impacted/case-impacted-filter-value-preview.vue';
26
+ import { searchMethod as caseImpactedSearchMethod } from './case-impacted/config';
27
+ import CasePriorityFilterValueField from './case-priority/case-priority-filter-value-field.vue';
28
+ import CasePriorityFilterValuePreview from './case-priority/case-priority-filter-value-preview.vue';
29
+ import { searchMethod as casePrioritySearchMethod } from './case-priority/config';
30
+ import CaseReactionTimeFilterValueField from './case-reaction-time/case-reaction-time-filter-value-field.vue';
31
+ import CaseReactionTimeFilterValuePreview from './case-reaction-time/case-reaction-time-filter-value-preview.vue';
32
+ import CaseReporterFilterValueField from './case-reporter/case-reporter-filter-value-field.vue';
33
+ import CaseReporterFilterValuePreview from './case-reporter/case-reporter-filter-value-preview.vue';
34
+ import { searchMethod as caseReporterSearchMethod } from './case-reporter/config';
35
+ import CaseResolutionTimeFilterValueField from './case-resolution-time/case-resolution-time-filter-value-field.vue';
36
+ import CaseResolutionTimeFilterValuePreview from './case-resolution-time/case-resolution-time-filter-value-preview.vue';
37
+ import CaseServiceFilterValueField from './case-service/case-service-filter-value-field.vue';
38
+ import CaseServiceFilterValuePreview from './case-service/case-service-filter-value-preview.vue';
39
+ import { servicesSearchMethod } from './case-service/config';
40
+ import CaseSlaFilterValueField from './case-sla/case-sla-filter-value-field.vue';
41
+ import CaseSlaFilterValuePreview from './case-sla/case-sla-filter-value-preview.vue';
42
+ import { searchMethod as caseSlaSearchMethod } from './case-sla/config';
43
+ import CaseSlaConditionFilterValueField from './case-sla-condition/case-sla-condition-filter-value-field.vue';
44
+ import CaseSlaConditionFilterValuePreview from './case-sla-condition/case-sla-condition-filter-value-preview.vue';
45
+ import { slasConditionsSearchMethod } from './case-sla-condition/config';
46
+ import CaseSourceFilterValueField from './case-source/case-source-filter-value-field.vue';
47
+ import CaseSourceFilterValuePreview from './case-source/case-source-filter-value-preview.vue';
48
+ import { searchMethod as caseSourceSearchMethod } from './case-source/config';
49
+ import CaseStatusFilterValueField from './case-status/case-status-filter-value-field.vue';
50
+ import CaseStatusFilterValuePreview from './case-status/case-status-filter-value-preview.vue';
51
+ import { caseStatusConditionsSearchMethod } from './case-status/config';
23
52
  import { searchMethod as contactSearchMethod } from './contact/config';
24
53
  import ContactFilter from './contact/contact-filter-value-field.vue';
25
54
  import ContactFilterPreview from './contact/contact-filter-value-preview.vue';
@@ -32,14 +61,14 @@ import CreatedAtFromFilter from './created-at-from/created-at-from-filter-value-
32
61
  import CreatedAtFromFilterPreview from './created-at-from/created-at-from-filter-value-preview.vue';
33
62
  import CreatedAtToFilter from './created-at-to/created-at-to-filter-value-field.vue';
34
63
  import CreatedAtToFilterPreview from './created-at-to/created-at-to-filter-value-preview.vue';
35
- import DirectionFilter from './direction/direction-filter-value-field.vue';
36
- import DirectionFilterPreview from './direction/direction-filter-value-preview.vue';
37
64
  import { searchMethod as gatewaySearchMethod } from './gateway/config';
38
65
  import GatewayFilter from './gateway/gateway-filter-value-field.vue';
39
66
  import GatewayFilterPreview from './gateway/gateway-filter-value-preview.vue';
40
67
  import { searchMethod as granteeSearchMethod } from './grantee/config';
41
68
  import GranteeFilter from './grantee/grantee-filter-value-field.vue';
42
69
  import GranteeFilterPreview from './grantee/grantee-filter-value-preview.vue';
70
+ import HangupCauseFilterValueField from './hangup-cause/hangup-cause-filter-value-field.vue';
71
+ import HangupCauseFilterValuePreview from './hangup-cause/hangup-cause-filter-value-preview.vue';
43
72
  import HasAttachmentFilter from './has-attachment/has-attachment-filter-value-field.vue';
44
73
  import HasAttachmentFilterPreview from './has-attachment/has-attachment-filter-value-preview.vue';
45
74
  import HasFileFilter from './has-file/has-file-filter-value-field.vue';
@@ -48,12 +77,6 @@ import HasRatingFilterValueField from './has-rating/has-rating-filter-value-fiel
48
77
  import HasRatingFilterValuePreview from './has-rating/has-rating-filter-value-preview.vue';
49
78
  import HasTranscriptionFilter from './has-transcription/has-transcription-filter-value-field.vue';
50
79
  import HasTranscriptionFilterPreview from './has-transcription/has-transcription-filter-value-preview.vue';
51
- import { searchMethod as impactedSearchMethod } from './impacted/config';
52
- import ImpactedFilter from './impacted/impacted-filter-value-field.vue';
53
- import ImpactedFilterPreview from './impacted/impacted-filter-value-preview.vue';
54
- import { searchMethod as priorityCaseSearchMethod } from './priority-case/config';
55
- import CasePriorityFilter from './priority-case/priority-case-filter-value-field.vue';
56
- import CasePriorityFilterPreview from './priority-case/priority-case-filter-value-preview.vue';
57
80
  import { searchMethod as queueSearchMethod } from './queue/config';
58
81
  import QueueFilter from './queue/queue-filter-value-field.vue';
59
82
  import QueueFilterPreview from './queue/queue-filter-value-preview.vue';
@@ -62,28 +85,8 @@ import RatedByFilter from './rated-by/rated-by-filter-value-field.vue';
62
85
  import RatedByFilterPreview from './rated-by/rated-by-filter-value-preview.vue';
63
86
  import RatingFromToFilter from './rating/rating-from-to-filter-value-field.vue';
64
87
  import RatingFromToFilterPreview from './rating/rating-from-to-filter-value-preview.vue';
65
- import ReactionTimeFilter from './reaction-time/reaction-time-filter-value-field.vue';
66
- import ReactionTimeFilterPreview from './reaction-time/reaction-time-filter-value-preview.vue';
67
- import { searchMethod as reporterSearchMethod } from './reporter/config';
68
- import ReporterFilter from './reporter/reporter-filter-value-field.vue';
69
- import ReporterFilterPreview from './reporter/reporter-filter-value-preview.vue';
70
- import ResolutionTimeFilter from './resolution-time/resolution-time-filter-value-field.vue';
71
- import ResolutionTimeFilterPreview from './resolution-time/resolution-time-filter-value-preview.vue';
72
88
  import ScoreFilter from './score/score-from-to-filter-value-field.vue';
73
89
  import ScoreFilterPreview from './score/score-from-to-filter-value-preview.vue';
74
- import { searchMethod as serviceCaseSearchMethod } from './service-case/config';
75
- import CaseServiceFilter from './service-case/service-case-filter-value-field.vue';
76
- import CaseServiceFilterPreview from './service-case/service-case-filter-value-preview.vue';
77
- import { searchMethod as slaSearchMethod } from './sla/config';
78
- import SlaFilter from './sla/sla-filter-value-field.vue';
79
- import SlaFilterPreview from './sla/sla-filter-value-preview.vue';
80
- import SlaConditionFilter from './sla-condition/sla-condition-filter-value-field.vue';
81
- import SlaConditionFilterPreview from './sla-condition/sla-condition-filter-value-preview.vue';
82
- import { searchMethod as sourceCaseSearchMethod } from './source-case/config';
83
- import CaseSourceFilter from './source-case/source-case-filter-value-field.vue';
84
- import CaseSourceFilterPreview from './source-case/source-case-filter-value-preview.vue';
85
- import CaseStatusFilter from './status-case/status-case-filter-value-field.vue';
86
- import CaseStatusFilterPreview from './status-case/status-case-filter-value-preview.vue';
87
90
  import TagFilter from './tag/tag-filter-value-field.vue';
88
91
  import TagFilterPreview from './tag/tag-filter-value-preview.vue';
89
92
  import TalkDurationFilter from './talk-duration/talk-duration-filter-value-field.vue';
@@ -100,30 +103,42 @@ import VariableFilter from './variable/variable-filter-value-field.vue';
100
103
  import VariableFilterPreview from './variable/variable-filter-value-preview.vue';
101
104
 
102
105
  export {
103
- ActualReactionTimeFilter,
104
- ActualReactionTimeFilterPreview,
105
- ActualResolutionTimeFilter,
106
- ActualResolutionTimeFilterPreview,
107
106
  AgentFilter,
108
107
  AgentFilterPreview,
109
108
  AmdResultFilter,
110
109
  AmdResultFilterPreview,
111
- AssigneeFilter,
112
- AssigneeFilterPreview,
113
- AuthorFilter,
114
- AuthorFilterPreview,
115
- CasePriorityFilter,
116
- CasePriorityFilterPreview,
117
- CaseServiceFilter,
118
- CaseServiceFilterPreview,
119
- CaseSourceFilter,
120
- CaseSourceFilterPreview,
121
- CaseStatusFilter,
122
- CaseStatusFilterPreview,
123
- CauseFilter,
124
- CauseFilterPreview,
125
- CloseReasonGroupsCaseFilter,
126
- CloseReasonGroupsCaseFilterPreview,
110
+ CallDirectionFilterValueField,
111
+ CallDirectionFilterValuePreview,
112
+ CaseActualReactionTimeFilterValueField,
113
+ CaseActualReactionTimeFilterValuePreview,
114
+ CaseActualResolutionTimeFilterValueField,
115
+ CaseActualResolutionTimeFilterValuePreview,
116
+ CaseAssigneeFilterValueField,
117
+ CaseAssigneeFilterValuePreview,
118
+ CaseAuthorFilterValueField,
119
+ CaseAuthorFilterValuePreview,
120
+ CaseCloseReasonGroupsFilterValueField,
121
+ CaseCloseReasonGroupsFilterValuePreview,
122
+ CaseImpactedFilterValueField,
123
+ CaseImpactedFilterValuePreview,
124
+ CasePriorityFilterValueField,
125
+ CasePriorityFilterValuePreview,
126
+ CaseReactionTimeFilterValueField,
127
+ CaseReactionTimeFilterValuePreview,
128
+ CaseReporterFilterValueField,
129
+ CaseReporterFilterValuePreview,
130
+ CaseResolutionTimeFilterValueField,
131
+ CaseResolutionTimeFilterValuePreview,
132
+ CaseServiceFilterValueField,
133
+ CaseServiceFilterValuePreview,
134
+ CaseSlaConditionFilterValueField,
135
+ CaseSlaConditionFilterValuePreview,
136
+ CaseSlaFilterValueField,
137
+ CaseSlaFilterValuePreview,
138
+ CaseSourceFilterValueField,
139
+ CaseSourceFilterValuePreview,
140
+ CaseStatusFilterValueField,
141
+ CaseStatusFilterValuePreview,
127
142
  ContactFilter,
128
143
  ContactFilterPreview,
129
144
  ContactGroupFilter,
@@ -133,12 +148,12 @@ export {
133
148
  CreatedAtFromFilterPreview,
134
149
  CreatedAtToFilter,
135
150
  CreatedAtToFilterPreview,
136
- DirectionFilter,
137
- DirectionFilterPreview,
138
151
  GatewayFilter,
139
152
  GatewayFilterPreview,
140
153
  GranteeFilter,
141
154
  GranteeFilterPreview,
155
+ HangupCauseFilterValueField,
156
+ HangupCauseFilterValuePreview,
142
157
  HasAttachmentFilter,
143
158
  HasAttachmentFilterPreview,
144
159
  HasFileFilter,
@@ -147,26 +162,14 @@ export {
147
162
  HasRatingFilterValuePreview,
148
163
  HasTranscriptionFilter,
149
164
  HasTranscriptionFilterPreview,
150
- ImpactedFilter,
151
- ImpactedFilterPreview,
152
165
  QueueFilter,
153
166
  QueueFilterPreview,
154
167
  RatedByFilter,
155
168
  RatedByFilterPreview,
156
169
  RatingFromToFilter,
157
170
  RatingFromToFilterPreview,
158
- ReactionTimeFilter,
159
- ReactionTimeFilterPreview,
160
- ReporterFilter,
161
- ReporterFilterPreview,
162
- ResolutionTimeFilter,
163
- ResolutionTimeFilterPreview,
164
171
  ScoreFilter,
165
172
  ScoreFilterPreview,
166
- SlaConditionFilter,
167
- SlaConditionFilterPreview,
168
- SlaFilter,
169
- SlaFilterPreview,
170
173
  TagFilter,
171
174
  TagFilterPreview,
172
175
  TalkDurationFilter,
@@ -181,63 +184,65 @@ export {
181
184
  VariableFilterPreview,
182
185
  };
183
186
 
184
- export const FilterOptionToValueComponentMap: Record<FilterOption, Component> =
185
- {
186
- [FilterOption.Agent]: AgentFilter,
187
- [FilterOption.AmdResult]: AmdResultFilter,
188
- [FilterOption.Contact]: ContactFilter,
189
- [FilterOption.Direction]: DirectionFilter,
190
- [FilterOption.Rated]: HasRatingFilterValueField,
191
- [FilterOption.Gateway]: GatewayFilter,
192
- [FilterOption.Grantee]: GranteeFilter,
193
- [FilterOption.Cause]: CauseFilter,
194
- [FilterOption.Queue]: QueueFilter,
195
- [FilterOption.RatedBy]: RatedByFilter,
196
- [FilterOption.HasFile]: HasFileFilter,
197
- [FilterOption.Score]: ScoreFilter,
198
- [FilterOption.Tag]: TagFilter,
199
- [FilterOption.TalkDuration]: TalkDurationFilter,
200
- [FilterOption.Team]: TeamFilter,
201
- [FilterOption.TotalDuration]: TotalDurationFilter,
202
- [FilterOption.HasTranscription]: HasTranscriptionFilter,
203
- [FilterOption.User]: UserFilter,
204
- [FilterOption.Variable]: VariableFilter,
205
- [FilterOption.CreatedAt]: CreatedAtFilterValueField,
206
- [FilterOption.CreatedAtFrom]: CreatedAtFromFilter,
207
- [FilterOption.CreatedAtTo]: CreatedAtToFilter,
208
- [FilterOption.Status]: CaseStatusFilter,
209
- [FilterOption.Source]: CaseSourceFilter,
210
- [FilterOption.Service]: CaseServiceFilter,
211
- [FilterOption.Author]: AuthorFilter,
212
- [FilterOption.Reporter]: ReporterFilter,
213
- [FilterOption.Impacted]: ImpactedFilter,
214
- [FilterOption.Assignee]: AssigneeFilter,
215
- [FilterOption.ContactGroup]: ContactGroupFilter,
216
- [FilterOption.Priority]: CasePriorityFilter,
217
- [FilterOption.CloseReasonGroups]: CloseReasonGroupsCaseFilter,
218
- [FilterOption.Rating]: RatingFromToFilter,
219
- [FilterOption.Sla]: SlaFilter,
220
- [FilterOption.SlaCondition]: SlaConditionFilter,
221
- [FilterOption.ReactionTime]: ReactionTimeFilter,
222
- [FilterOption.ResolutionTime]: ResolutionTimeFilter,
223
- [FilterOption.ActualReactionTime]: ActualReactionTimeFilter,
224
- [FilterOption.ActualResolutionTime]: ActualResolutionTimeFilter,
225
- [FilterOption.HasAttachment]: HasAttachmentFilter,
226
- };
187
+ export const FilterOptionToValueComponentMap: Record<
188
+ FilterOptionName,
189
+ Component
190
+ > = {
191
+ [FilterOption.Agent]: AgentFilter,
192
+ [FilterOption.AmdResult]: AmdResultFilter,
193
+ [FilterOption.Contact]: ContactFilter,
194
+ [FilterOption.Direction]: CallDirectionFilterValueField,
195
+ [FilterOption.Rated]: HasRatingFilterValueField,
196
+ [FilterOption.Gateway]: GatewayFilter,
197
+ [FilterOption.Grantee]: GranteeFilter,
198
+ [FilterOption.Cause]: HangupCauseFilterValueField,
199
+ [FilterOption.Queue]: QueueFilter,
200
+ [FilterOption.RatedBy]: RatedByFilter,
201
+ [FilterOption.HasFile]: HasFileFilter,
202
+ [FilterOption.Score]: ScoreFilter,
203
+ [FilterOption.Tag]: TagFilter,
204
+ [FilterOption.TalkDuration]: TalkDurationFilter,
205
+ [FilterOption.Team]: TeamFilter,
206
+ [FilterOption.TotalDuration]: TotalDurationFilter,
207
+ [FilterOption.HasTranscription]: HasTranscriptionFilter,
208
+ [FilterOption.User]: UserFilter,
209
+ [FilterOption.Variable]: VariableFilter,
210
+ [FilterOption.CreatedAt]: CreatedAtFilterValueField,
211
+ [FilterOption.CreatedAtFrom]: CreatedAtFromFilter,
212
+ [FilterOption.CreatedAtTo]: CreatedAtToFilter,
213
+ [FilterOption.Status]: CaseStatusFilterValueField,
214
+ [FilterOption.Source]: CaseSourceFilterValueField,
215
+ [FilterOption.Service]: CaseServiceFilterValueField,
216
+ [FilterOption.Author]: CaseAuthorFilterValueField,
217
+ [FilterOption.Reporter]: CaseReporterFilterValueField,
218
+ [FilterOption.Impacted]: CaseImpactedFilterValueField,
219
+ [FilterOption.Assignee]: CaseAssigneeFilterValueField,
220
+ [FilterOption.ContactGroup]: ContactGroupFilter,
221
+ [FilterOption.Priority]: CasePriorityFilterValueField,
222
+ [FilterOption.CloseReasonGroups]: CaseCloseReasonGroupsFilterValueField,
223
+ [FilterOption.Rating]: RatingFromToFilter,
224
+ [FilterOption.Sla]: CaseSlaFilterValueField,
225
+ [FilterOption.SlaCondition]: CaseSlaConditionFilterValueField,
226
+ [FilterOption.ReactionTime]: CaseReactionTimeFilterValueField,
227
+ [FilterOption.ResolutionTime]: CaseResolutionTimeFilterValueField,
228
+ [FilterOption.ActualReactionTime]: CaseActualReactionTimeFilterValueField,
229
+ [FilterOption.ActualResolutionTime]: CaseActualResolutionTimeFilterValueField,
230
+ [FilterOption.HasAttachment]: HasAttachmentFilter,
231
+ };
227
232
 
228
233
  export const FilterOptionToPreviewComponentMap: Record<
229
- FilterOption,
234
+ FilterOptionName,
230
235
  Component
231
236
  > = {
232
237
  [FilterOption.CreatedAt]: CreatedAtFilterPreview,
233
238
  [FilterOption.Agent]: AgentFilterPreview,
234
239
  [FilterOption.AmdResult]: AmdResultFilterPreview,
235
240
  [FilterOption.Contact]: ContactFilterPreview,
236
- [FilterOption.Direction]: DirectionFilterPreview,
241
+ [FilterOption.Direction]: CallDirectionFilterValuePreview,
237
242
  [FilterOption.Rated]: HasRatingFilterValuePreview,
238
243
  [FilterOption.Gateway]: GatewayFilterPreview,
239
244
  [FilterOption.Grantee]: GranteeFilterPreview,
240
- [FilterOption.Cause]: CauseFilterPreview,
245
+ [FilterOption.Cause]: HangupCauseFilterValuePreview,
241
246
  [FilterOption.Queue]: QueueFilterPreview,
242
247
  [FilterOption.RatedBy]: RatedByFilterPreview,
243
248
  [FilterOption.HasFile]: HasFileFilterPreview,
@@ -251,28 +256,29 @@ export const FilterOptionToPreviewComponentMap: Record<
251
256
  [FilterOption.Variable]: VariableFilterPreview,
252
257
  [FilterOption.CreatedAtFrom]: CreatedAtFromFilterPreview,
253
258
  [FilterOption.CreatedAtTo]: CreatedAtToFilterPreview,
254
- [FilterOption.Status]: CaseStatusFilterPreview,
255
- [FilterOption.Source]: CaseSourceFilterPreview,
256
- [FilterOption.Service]: CaseServiceFilterPreview,
257
- [FilterOption.Author]: AuthorFilterPreview,
258
- [FilterOption.Reporter]: ReporterFilterPreview,
259
- [FilterOption.Impacted]: ImpactedFilterPreview,
260
- [FilterOption.Assignee]: AssigneeFilterPreview,
259
+ [FilterOption.Status]: CaseStatusFilterValuePreview,
260
+ [FilterOption.Source]: CaseSourceFilterValuePreview,
261
+ [FilterOption.Service]: CaseServiceFilterValuePreview,
262
+ [FilterOption.Author]: CaseAuthorFilterValuePreview,
263
+ [FilterOption.Reporter]: CaseReporterFilterValuePreview,
264
+ [FilterOption.Impacted]: CaseImpactedFilterValuePreview,
265
+ [FilterOption.Assignee]: CaseAssigneeFilterValuePreview,
261
266
  [FilterOption.ContactGroup]: ContactGroupFilterPreview,
262
- [FilterOption.Priority]: CasePriorityFilterPreview,
263
- [FilterOption.CloseReasonGroups]: CloseReasonGroupsCaseFilterPreview,
267
+ [FilterOption.Priority]: CasePriorityFilterValuePreview,
268
+ [FilterOption.CloseReasonGroups]: CaseCloseReasonGroupsFilterValuePreview,
264
269
  [FilterOption.Rating]: RatingFromToFilterPreview,
265
- [FilterOption.Sla]: SlaFilterPreview,
266
- [FilterOption.SlaCondition]: SlaConditionFilterPreview,
267
- [FilterOption.ReactionTime]: ReactionTimeFilterPreview,
268
- [FilterOption.ResolutionTime]: ResolutionTimeFilterPreview,
269
- [FilterOption.ActualReactionTime]: ActualReactionTimeFilterPreview,
270
- [FilterOption.ActualResolutionTime]: ActualResolutionTimeFilterPreview,
270
+ [FilterOption.Sla]: CaseSlaFilterValuePreview,
271
+ [FilterOption.SlaCondition]: CaseSlaConditionFilterValuePreview,
272
+ [FilterOption.ReactionTime]: CaseReactionTimeFilterValuePreview,
273
+ [FilterOption.ResolutionTime]: CaseResolutionTimeFilterValuePreview,
274
+ [FilterOption.ActualReactionTime]: CaseActualReactionTimeFilterValuePreview,
275
+ [FilterOption.ActualResolutionTime]:
276
+ CaseActualResolutionTimeFilterValuePreview,
271
277
  [FilterOption.HasAttachment]: HasAttachmentFilterPreview,
272
278
  };
273
279
 
274
- export const FilterOptionToApiSearchMethodMap: Record<
275
- FilterOption,
280
+ export const FilterOptionToPreviewApiSearchMethodMap: Record<
281
+ FilterOptionName,
276
282
  (unknown) => { items }
277
283
  > = {
278
284
  [FilterOption.Agent]: agentSearchMethod,
@@ -280,16 +286,45 @@ export const FilterOptionToApiSearchMethodMap: Record<
280
286
  [FilterOption.Grantee]: granteeSearchMethod,
281
287
  [FilterOption.Queue]: queueSearchMethod,
282
288
  [FilterOption.RatedBy]: ratedBySearchMethod,
283
- [FilterOption.Reporter]: reporterSearchMethod,
284
- [FilterOption.Sla]: slaSearchMethod,
285
- [FilterOption.Service]: serviceCaseSearchMethod,
286
- [FilterOption.Source]: sourceCaseSearchMethod,
289
+ [FilterOption.Reporter]: caseReporterSearchMethod,
290
+ [FilterOption.Sla]: caseSlaSearchMethod,
291
+ [FilterOption.Service]: servicesSearchMethod,
292
+ [FilterOption.Source]: caseSourceSearchMethod,
293
+ [FilterOption.Status]: ({ id: value }) =>
294
+ caseStatusConditionsSearchMethod({
295
+ parentId: value?.selection,
296
+ id: value?.conditions,
297
+ }),
287
298
  [FilterOption.User]: userSearchMethod,
288
- [FilterOption.ContactGroup]: contactGroupSearchMethod,
289
- [FilterOption.Assignee]: assigneeSearchMethod,
290
- [FilterOption.Author]: authorSearchMethod,
291
- [FilterOption.Priority]: priorityCaseSearchMethod,
292
- [FilterOption.Impacted]: impactedSearchMethod,
299
+ [FilterOption.ContactGroup]: ({ id: value }, ...rest) => {
300
+ return contactGroupSearchMethod({
301
+ id: value.list,
302
+ ...rest,
303
+ });
304
+ },
305
+ [FilterOption.Assignee]: ({ id: value }, ...rest) => {
306
+ return caseAssigneeSearchMethod({
307
+ id: value.list,
308
+ ...rest,
309
+ });
310
+ },
311
+ [FilterOption.Author]: caseAuthorSearchMethod,
312
+ [FilterOption.Priority]: casePrioritySearchMethod,
313
+ [FilterOption.Impacted]: caseImpactedSearchMethod,
293
314
  [FilterOption.Contact]: contactSearchMethod,
294
315
  [FilterOption.Team]: teamSearchMethod,
316
+ [FilterOption.CloseReasonGroups]: ({ id: value, ...rest }) => {
317
+ return caseCloseReasonsSearchMethod({
318
+ parentId: value?.selection,
319
+ id: value?.conditions,
320
+ ...rest,
321
+ });
322
+ },
323
+ [FilterOption.SlaCondition]: ({ id: value, ...rest }) => {
324
+ return slasConditionsSearchMethod({
325
+ parentId: value?.selection,
326
+ id: value?.conditions,
327
+ ...rest,
328
+ });
329
+ },
295
330
  };
@@ -1,4 +1,3 @@
1
1
  import QueuesAPI from '@webitel/ui-sdk/api/clients/queues/queues';
2
2
 
3
3
  export const searchMethod = QueuesAPI.getLookup;
4
- export const localePath = '';
@@ -1,4 +1,3 @@
1
1
  import UsersAPI from '@webitel/ui-sdk/api/clients/users/users';
2
2
 
3
3
  export const searchMethod = UsersAPI.getLookup;
4
- export const localePath = '';
@@ -1,4 +1,3 @@
1
1
  import TeamsAPI from '@webitel/ui-sdk/api/clients/teams/teams';
2
2
 
3
3
  export const searchMethod = TeamsAPI.getLookup;
4
- export const localePath = '';
@@ -1,4 +1,3 @@
1
1
  import UsersAPI from '@webitel/ui-sdk/api/clients/users/users';
2
2
 
3
3
  export const searchMethod = UsersAPI.getLookup;
4
- export const localePath = '';
@@ -34,6 +34,7 @@
34
34
  :is="FilterOptionToPreviewComponentMap[filter.name]"
35
35
  v-else
36
36
  :value="localValue"
37
+ :filter="props.filter"
37
38
  />
38
39
  </slot>
39
40
  </template>
@@ -75,7 +76,7 @@ import type { FilterData, IFilter } from '../../types/Filter';
75
76
  import DynamicFilterConfigForm from '../config/dynamic-filter-config-form.vue';
76
77
  import DynamicFilterConfigView from '../config/dynamic-filter-config-view.vue';
77
78
  import {
78
- FilterOptionToApiSearchMethodMap,
79
+ FilterOptionToPreviewApiSearchMethodMap,
79
80
  FilterOptionToPreviewComponentMap,
80
81
  } from '../filter-options';
81
82
  import DynamicFilterPreviewInfo from './dynamic-filter-preview-info.vue';
@@ -122,7 +123,7 @@ const fillLocalValue = async (filter = props.filter) => {
122
123
  const filterName = props.filter.name;
123
124
  const filterValue = filter.value;
124
125
 
125
- const valueSearchMethod = FilterOptionToApiSearchMethodMap[filterName];
126
+ const valueSearchMethod = FilterOptionToPreviewApiSearchMethodMap[filterName];
126
127
 
127
128
  if (valueSearchMethod) {
128
129
  const { items } = await valueSearchMethod({ id: filterValue });
@@ -0,0 +1,123 @@
1
+ <template>
2
+ <wt-search-bar
3
+ :placeholder="t('reusable.search')"
4
+ :search-mode="searchMode"
5
+ :search-mode-options="searchModeOptions"
6
+ :value="localSearchValue"
7
+ @input="localSearchValue = $event"
8
+ @search="handleSearch"
9
+ @update:search-mode="updateSearchMode"
10
+ />
11
+ </template>
12
+
13
+ <script lang="ts" setup>
14
+ import { WtSearchBar } from '@webitel/ui-sdk/components';
15
+ import {computed, type Ref, ref,watch} from 'vue';
16
+ import { useI18n } from 'vue-i18n';
17
+
18
+ import {FilterInitParams, FilterName} from "../../types/Filter";
19
+ import {IFiltersManager} from "../../types/FiltersManager";
20
+ import type { DynamicFilterSearchSearchModeOption } from './types/DynamicFilterSearch';
21
+
22
+ /**
23
+ * @description
24
+ * default search name is used when there are no search modes
25
+ */
26
+ const defaultSearchName = 'search';
27
+
28
+ const props = defineProps<{
29
+ filtersManager: IFiltersManager;
30
+ searchModeOptions?: DynamicFilterSearchSearchModeOption[];
31
+ isFiltersRestoring?: boolean;
32
+ }>();
33
+
34
+ const emit = defineEmits<{
35
+ 'filter:add': [FilterInitParams];
36
+ 'filter:update': [FilterInitParams];
37
+ 'filter:delete': [{ name: FilterName }];
38
+ }>();
39
+
40
+ const { t } = useI18n();
41
+
42
+ const searchMode: Ref<FilterName> = ref();
43
+ const localSearchValue = ref('');
44
+
45
+ const hasFilter = (filterName = searchMode.value) => {
46
+ return props.filtersManager.filters.has(filterName);
47
+ };
48
+ const addFilter = (filterInitParams: FilterInitParams) => {
49
+ return emit('filter:add', filterInitParams);
50
+ };
51
+ const updateFilter = (filterInitParams: FilterInitParams) => {
52
+ return emit('filter:update', filterInitParams);
53
+ };
54
+ const deleteFilter = ({ name }: { name: FilterName }) => {
55
+ return emit('filter:delete', { name });
56
+ };
57
+
58
+ const hasSearchModes = computed(() => {
59
+ return props.searchModeOptions && props.searchModeOptions.length > 0;
60
+ });
61
+
62
+ if (hasSearchModes.value) {
63
+ searchMode.value = props.searchModeOptions[0].value;
64
+ }
65
+
66
+ const currentSearchName = computed(() => {
67
+ if (hasSearchModes.value) {
68
+ return searchMode.value;
69
+ }
70
+
71
+ return defaultSearchName;
72
+ });
73
+
74
+ const handleSearch = (value = localSearchValue.value) => {
75
+ if (hasFilter(currentSearchName.value)) {
76
+ updateFilter({
77
+ name: currentSearchName.value,
78
+ value,
79
+ });
80
+ } else {
81
+ addFilter({
82
+ name: currentSearchName.value,
83
+ value,
84
+ });
85
+ }
86
+ };
87
+
88
+ const updateSearchMode = (nextSearchMode: DynamicFilterSearchSearchModeOption) => {
89
+ if (hasFilter(currentSearchName.value)) {
90
+ deleteFilter({
91
+ name: currentSearchName.value,
92
+ });
93
+ }
94
+ searchMode.value = nextSearchMode.value;
95
+ localSearchValue.value = '';
96
+ };
97
+
98
+ /**
99
+ * @description
100
+ * Restoring search value after filters were restored
101
+ */
102
+ watch(() => props.isFiltersRestoring,
103
+ (next) => {
104
+ if (next) return;
105
+
106
+ let searchModes = [defaultSearchName];
107
+ if (hasSearchModes.value) {
108
+ searchModes = props.searchModeOptions?.map((option) => option.value);
109
+ }
110
+
111
+ for (const mode of searchModes) {
112
+ if (hasFilter(mode)) {
113
+ searchMode.value = mode;
114
+ localSearchValue.value = props.filtersManager.filters.get(mode).value;
115
+
116
+ break;
117
+ }
118
+ }
119
+ },
120
+ );
121
+ </script>
122
+
123
+ <style scoped></style>
@@ -0,0 +1,5 @@
1
+ import { WtSearchBarSearchModeOption } from '../../../../../../../src/components/wt-search-bar/types/WtSearchBar';
2
+ import { FilterName } from '../../../types/Filter';
3
+
4
+ export type DynamicFilterSearchSearchModeOption =
5
+ WtSearchBarSearchModeOption<FilterName>;
@@ -41,13 +41,13 @@ export const FilterOption = {
41
41
  ActualReactionTime: 'actualReactionTime',
42
42
  ActualResolutionTime: 'actualResolutionTime',
43
43
  HasAttachment: 'hasAttachment',
44
- } as FilterName;
44
+ } as const satisfies FilterName;
45
45
 
46
- type SimpleFilterOption = (typeof FilterOption)[keyof typeof FilterOption];
46
+ export type FilterOptionName = (typeof FilterOption)[keyof typeof FilterOption];
47
47
 
48
48
  type ExtendedFilterOption = {
49
49
  name: FilterOption;
50
50
  notDeletable?: boolean;
51
51
  };
52
52
 
53
- export type FilterOption = SimpleFilterOption | ExtendedFilterOption;
53
+ export type FilterOption = FilterOptionName | ExtendedFilterOption;