@webitel/ui-datalist 1.0.19 → 1.0.21

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 (30) hide show
  1. package/package.json +1 -1
  2. package/src/modules/filters/components/preview/dynamic-filter-preview.vue +3 -2
  3. package/src/modules/filters/components/table-filters-panel.vue +15 -13
  4. package/src/modules/filters/modules/filterConfig/classes/FilterConfig.ts +6 -5
  5. package/src/modules/filters/modules/filterConfig/components/_custom/filterConfig.ts +24 -2
  6. package/src/modules/filters/modules/filterConfig/components/contact-group/contact-group-filter-value-field.vue +7 -4
  7. package/src/modules/filters/modules/filterConfig/components/contact-group/index.ts +42 -0
  8. package/src/modules/filters/modules/filterConfig/components/contact-label/contact-label-filter-value-field.vue +58 -0
  9. package/src/modules/filters/modules/filterConfig/components/contact-label/contact-label-filter-value-preview.vue +22 -0
  10. package/src/modules/filters/modules/filterConfig/components/contact-label/index.ts +29 -0
  11. package/src/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-field.vue +60 -0
  12. package/src/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-preview.vue +16 -0
  13. package/src/modules/filters/modules/filterConfig/components/contact-owner/index.ts +21 -0
  14. package/src/modules/filters/modules/filterConfig/components/has-user/has-user-filter-value-field.vue +33 -0
  15. package/src/modules/filters/modules/filterConfig/components/has-user/has-user-filter-value-preview.vue +15 -0
  16. package/src/modules/filters/modules/filterConfig/components/index.ts +20 -9
  17. package/src/modules/filters/modules/filterConfig/enums/FilterOption.ts +3 -0
  18. package/types/modules/filters/modules/filterConfig/components/contact-group/contact-group-filter-value-field.vue.d.ts +6 -2
  19. package/types/modules/filters/modules/filterConfig/components/contact-group/index.d.ts +51 -0
  20. package/types/modules/filters/modules/filterConfig/components/contact-label/contact-label-filter-value-field.vue.d.ts +16 -0
  21. package/types/modules/filters/modules/filterConfig/components/contact-label/contact-label-filter-value-preview.vue.d.ts +8 -0
  22. package/types/modules/filters/modules/filterConfig/components/contact-label/index.d.ts +30 -0
  23. package/types/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-field.vue.d.ts +16 -0
  24. package/types/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-preview.vue.d.ts +8 -0
  25. package/types/modules/filters/modules/filterConfig/components/contact-owner/index.d.ts +30 -0
  26. package/types/modules/filters/modules/filterConfig/components/has-user/has-user-filter-value-field.vue.d.ts +12 -0
  27. package/types/modules/filters/modules/filterConfig/components/has-user/has-user-filter-value-preview.vue.d.ts +5 -0
  28. package/types/modules/filters/modules/filterConfig/components/index.d.ts +109 -1
  29. package/types/modules/filters/modules/filterConfig/enums/FilterOption.d.ts +3 -0
  30. package/src/modules/filters/modules/filterConfig/components/contact-group/config.js +0 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-datalist",
3
- "version": "1.0.19",
3
+ "version": "1.0.21",
4
4
  "description": "Toolkit for building data lists in webitel ui system",
5
5
  "scripts": {
6
6
  "build:types": "vue-tsc -p ./tsconfig.build.json",
@@ -33,9 +33,9 @@
33
33
  <component
34
34
  :is="filterConfig.valuePreviewComponent"
35
35
  v-else
36
- :value="localValue"
37
36
  :filter="props.filter"
38
37
  :filter-config="filterConfig"
38
+ :value="localValue"
39
39
  />
40
40
  </slot>
41
41
  </template>
@@ -80,6 +80,7 @@ import {
80
80
  import DynamicFilterConfigForm from '../config/dynamic-filter-config-form.vue';
81
81
  import DynamicFilterConfigView from '../config/dynamic-filter-config-view.vue';
82
82
  import DynamicFilterPreviewInfo from './dynamic-filter-preview-info.vue';
83
+ import { FilterOption } from '../../modules/filterConfig/enums/FilterOption';
83
84
 
84
85
  interface Props {
85
86
  filter: IFilter;
@@ -152,8 +153,8 @@ const deleteFilter = () => {
152
153
  <style lang="scss" scoped>
153
154
  .wt-chip {
154
155
  display: flex;
155
- justify-content: center;
156
156
  align-items: center;
157
+ justify-content: center;
157
158
  gap: var(--spacing-2xs);
158
159
  }
159
160
 
@@ -19,20 +19,22 @@
19
19
  </template>
20
20
 
21
21
  <template #actions>
22
- <apply-preset-action
23
- :filter-configs="filterConfigs"
24
- :namespace="props.presetNamespace"
25
- :use-presets-store="props.usePresetsStore"
26
- @apply="emit('preset:apply', $event)"
27
- />
22
+ <div v-if="enablePresets">
23
+ <apply-preset-action
24
+ :filter-configs="filterConfigs"
25
+ :namespace="props.presetNamespace"
26
+ :use-presets-store="props.usePresetsStore"
27
+ @apply="emit('preset:apply', $event)"
28
+ />
28
29
 
29
- <save-preset-action
30
- v-if="enablePresets"
31
- :filter-configs="filterConfigs"
32
- :filters-included="filtersIncluded"
33
- :filters-manager="props.filtersManager"
34
- :namespace="props.presetNamespace"
35
- />
30
+ <save-preset-action
31
+ :filter-configs="filterConfigs"
32
+ :filters-included="filtersIncluded"
33
+ :filters-manager="props.filtersManager"
34
+ :namespace="props.presetNamespace"
35
+ />
36
+
37
+ </div>
36
38
 
37
39
  <wt-icon-action
38
40
  :disabled="!props.filtersManager.filters.size"
@@ -51,11 +51,12 @@ export class FilterConfig implements BaseFilterConfig {
51
51
  notDeletable: boolean;
52
52
 
53
53
  constructor({
54
- name,
55
- valueInputComponent,
56
- valuePreviewComponent,
57
- notDeletable,
58
- }: FilterConfigBaseParams = {}) {
54
+ name,
55
+ valueInputComponent,
56
+ valuePreviewComponent,
57
+ notDeletable,
58
+ }: FilterConfigBaseParams = {}) {
59
+
59
60
  if (name) this.name = name;
60
61
  if (valueInputComponent) this.valueInputComponent = valueInputComponent;
61
62
  if (valuePreviewComponent)
@@ -1,5 +1,6 @@
1
1
  import { sysTypes } from '@webitel/ui-sdk/api/clients/index';
2
2
  import { WtTypeExtensionFieldKind } from '@webitel/ui-sdk/enums';
3
+ import get from 'lodash/get';
3
4
  import { WebitelProtoDataField } from 'webitel-sdk';
4
5
 
5
6
  import { FilterConfig } from '../../classes/FilterConfig';
@@ -41,7 +42,7 @@ class TypeExtensionWtSysTypeFieldFilterConfig
41
42
  extends TypeExtensionFilterConfig
42
43
  implements IWtSysTypeFilterConfig
43
44
  {
44
- searchRecords(
45
+ async searchRecords(
45
46
  { id: filterValue, ...rest },
46
47
  // {
47
48
  // filterValue,
@@ -49,11 +50,32 @@ class TypeExtensionWtSysTypeFieldFilterConfig
49
50
  // filterValue: unknown;
50
51
  // },
51
52
  ): Promise<{ items: unknown[]; next?: boolean }> {
52
- return sysTypes.getLookup({
53
+ const { items, ...restResponse } = await sysTypes.getLookup({
53
54
  ...rest,
54
55
  ...this.field.lookup,
55
56
  id: filterValue,
56
57
  });
58
+
59
+ /**
60
+ * @author @dlohvinov
61
+ *
62
+ * [WTEL-6787](https://webitel.atlassian.net/browse/WTEL-6787)
63
+ *
64
+ * name from display is get here instead of wt-select props because it's
65
+ * much simplier than configuring wt-select, but still this code is still
66
+ * isolated enough.
67
+ *
68
+ * for instance, contacts:
69
+ * display=name.common_name
70
+ * objects=[{ name: { common_name: 'str' } }]
71
+ */
72
+ return {
73
+ items: items.map((item) => ({
74
+ ...item,
75
+ name: get(item, this.field.lookup.display),
76
+ })),
77
+ ...restResponse,
78
+ };
57
79
  }
58
80
  }
59
81
 
@@ -2,7 +2,7 @@
2
2
  <wt-select
3
3
  :close-on-select="false"
4
4
  :label="t('webitelUI.filters.filterValue')"
5
- :search-method="searchMethod"
5
+ :search-method="props.filterConfig.searchRecords"
6
6
  :v="v$.model.list"
7
7
  :value="model?.list"
8
8
  multiple
@@ -11,6 +11,7 @@
11
11
  @input="model.list = $event"
12
12
  />
13
13
  <wt-checkbox
14
+ v-if="!props.filterConfig?.hideUnassigned"
14
15
  :label="t('reusable.showUnassigned')"
15
16
  :selected="model?.unassigned"
16
17
  :v="v$.model.unassigned"
@@ -25,9 +26,11 @@ import { WtSelect } from '@webitel/ui-sdk/components';
25
26
  import { WtCheckbox } from '@webitel/ui-sdk/components';
26
27
  import { computed, onMounted, watch } from 'vue';
27
28
  import { useI18n } from 'vue-i18n';
29
+ import { IContactGroupFilterConfig } from './index';
28
30
 
29
- import { searchMethod } from './config.js';
30
-
31
+ const props = defineProps<{
32
+ filterConfig: IContactGroupFilterConfig;
33
+ }>();
31
34
  type ModelValue = {
32
35
  list: string[];
33
36
  unassigned: boolean;
@@ -54,7 +57,7 @@ const v$ = useVuelidate(
54
57
  computed(() => ({
55
58
  model: {
56
59
  list: { required: requiredIf(() => !model.value.unassigned) },
57
- unassigned: { required: requiredIf(() => !model.value.list.length) },
60
+ unassigned: { required: requiredIf(() => props.filterConfig?.hideUnassigned && !model.value.list.length) },
58
61
  },
59
62
  })),
60
63
  { model },
@@ -0,0 +1,42 @@
1
+ import { contactGroups } from '@webitel/ui-sdk/api/clients/index';
2
+
3
+ import { WtSysTypeFilterConfig, IWtSysTypeFilterConfig } from '../../classes/FilterConfig';
4
+ import { FilterOption } from '../../enums/FilterOption';
5
+ import ContactGroupFilterValueField from './contact-group-filter-value-field.vue';
6
+ import ContactGroupFilterValuePreview from './contact-group-filter-value-preview.vue';
7
+
8
+ class ContactGroupFilterConfig extends WtSysTypeFilterConfig {
9
+ readonly name = FilterOption.ContactGroup;
10
+ valueInputComponent = ContactGroupFilterValueField;
11
+ valuePreviewComponent = ContactGroupFilterValuePreview;
12
+ hideUnassigned?: boolean;
13
+
14
+ constructor(params: { hideUnassigned?: boolean } = {}) {
15
+ super(params);
16
+ if ('hideUnassigned' in params) {
17
+ this.hideUnassigned = params.hideUnassigned;
18
+ }
19
+ }
20
+
21
+ searchRecords(
22
+ params: object,
23
+ { filterValue } = {},
24
+ ): Promise<{ items: unknown[]; next?: boolean }> {
25
+ const id = params.id?.list?.length ? params.id?.list : (params.id || filterValue?.list);
26
+ // params.id?.list /* general logic from dynamic-filter-preview.vue*/
27
+ // params.id /* wt-select options loadings */
28
+ // filterValue?.list; /* newest and coolest, but not implemented on all filters 🥲 */
29
+
30
+ return contactGroups.getLookup({
31
+ ...params,
32
+ id,
33
+ });
34
+ }
35
+ }
36
+
37
+ export const createContactGroupFilterConfig = (params) =>
38
+ new ContactGroupFilterConfig(params);
39
+
40
+ export interface IContactGroupFilterConfig extends IWtSysTypeFilterConfig {
41
+ hideUnassigned?: boolean;
42
+ }
@@ -0,0 +1,58 @@
1
+ <template>
2
+ <wt-tags-input
3
+ :label="t('webitelUI.filters.filterValue')"
4
+ :search-method="props.filterConfig.searchRecords"
5
+ :v="v$.model"
6
+ :value="model"
7
+ option-label="label"
8
+ track-by="label"
9
+ @input="handleInput"
10
+ />
11
+ </template>
12
+
13
+ <script lang="ts" setup>
14
+ import { useVuelidate } from '@vuelidate/core';
15
+ import { required } from '@vuelidate/validators';
16
+ import { computed, watch } from 'vue';
17
+ import { useI18n } from 'vue-i18n';
18
+
19
+ import {WtSysTypeFilterConfig} from "../../classes/FilterConfig";
20
+
21
+ const props = defineProps<{
22
+ filterConfig: WtSysTypeFilterConfig;
23
+ }>();
24
+
25
+ type ModelValue = number[];
26
+
27
+ const model = defineModel<ModelValue>();
28
+
29
+ const emit = defineEmits<{
30
+ 'update:invalid': [boolean];
31
+ }>();
32
+ const { t } = useI18n();
33
+
34
+ const v$ = useVuelidate(
35
+ computed(() => ({
36
+ model: {
37
+ required,
38
+ },
39
+ })),
40
+ { model },
41
+ { $autoDirty: true },
42
+ );
43
+ v$.value.$touch();
44
+
45
+ watch(
46
+ () => v$.value.$invalid,
47
+ (invalid) => {
48
+ emit('update:invalid', invalid);
49
+ },
50
+ { immediate: true },
51
+ );
52
+
53
+ const handleInput = (value: ModelValue) => {
54
+ model.value = value;
55
+ };
56
+ </script>
57
+
58
+ <style scoped></style>
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <ul v-if="value">
3
+ <li
4
+ v-for="({ label }, index) of value"
5
+ :key="index"
6
+ >
7
+ {{ label }}
8
+ </li>
9
+ </ul>
10
+ </template>
11
+
12
+ <script lang="ts" setup>
13
+ const props = defineProps<{
14
+ /**
15
+ * would be great to use generated type for this
16
+ * */
17
+ value: Record<string, unknown>[];
18
+ }>();
19
+
20
+ </script>
21
+
22
+ <style scoped></style>
@@ -0,0 +1,29 @@
1
+ import { labels as contactLabels } from '@webitel/ui-sdk/api/clients/index';
2
+
3
+ import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
4
+ import { FilterOption } from '../../enums/FilterOption';
5
+ import ContactLabelFilterValueField from './contact-label-filter-value-field.vue';
6
+ import ContactLabelFilterValuePreview from './contact-label-filter-value-preview.vue';
7
+
8
+ class ContactLabelFilterConfig extends WtSysTypeFilterConfig {
9
+ readonly name = FilterOption.ContactLabel;
10
+ valueInputComponent = ContactLabelFilterValueField;
11
+ valuePreviewComponent = ContactLabelFilterValuePreview;
12
+
13
+ searchRecords(
14
+ params: object,
15
+ { filterValue } = {},
16
+ ): Promise<{ items: unknown[]; next?: boolean }> {
17
+
18
+ // @author @Lera24
19
+ // [WTEl-6410](https://webitel.atlassian.net/browse/WTEL-6410)
20
+ // For label preview component no need to call the API, so we return filterValue back to the searchRecords method and display it
21
+
22
+ if (filterValue) return { items: filterValue }
23
+
24
+ return contactLabels.getLookup(params);
25
+ }
26
+ }
27
+
28
+ export const createContactLabelFilterConfig = (params) =>
29
+ new ContactLabelFilterConfig(params);
@@ -0,0 +1,60 @@
1
+ <template>
2
+ <wt-select
3
+ :close-on-select="false"
4
+ :label="t('webitelUI.filters.filterValue')"
5
+ :search-method="props.filterConfig.searchRecords"
6
+ :v="v$.model"
7
+ :value="model"
8
+ multiple
9
+ use-value-from-options-by-prop="id"
10
+ @input="handleInput"
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, watch } from 'vue';
19
+ import { useI18n } from 'vue-i18n';
20
+
21
+ import {WtSysTypeFilterConfig} from "../../classes/FilterConfig";
22
+
23
+ const props = defineProps<{
24
+ filterConfig: WtSysTypeFilterConfig;
25
+ }>();
26
+
27
+ type ModelValue = number[];
28
+
29
+ const model = defineModel<ModelValue>();
30
+
31
+ const emit = defineEmits<{
32
+ 'update:invalid': [boolean];
33
+ }>();
34
+ const { t } = useI18n();
35
+
36
+ const v$ = useVuelidate(
37
+ computed(() => ({
38
+ model: {
39
+ required,
40
+ },
41
+ })),
42
+ { model },
43
+ { $autoDirty: true },
44
+ );
45
+ v$.value.$touch();
46
+
47
+ watch(
48
+ () => v$.value.$invalid,
49
+ (invalid) => {
50
+ emit('update:invalid', invalid);
51
+ },
52
+ { immediate: true },
53
+ );
54
+
55
+ const handleInput = (value: ModelValue) => {
56
+ model.value = value;
57
+ };
58
+ </script>
59
+
60
+ <style scoped></style>
@@ -0,0 +1,16 @@
1
+ <template>
2
+ <lookup-filter-value-preview v-bind="props" />
3
+ </template>
4
+
5
+ <script lang="ts" setup>
6
+ import LookupFilterValuePreview from '../_shared/lookup-filter-preview/lookup-filter-value-preview.vue';
7
+
8
+ const props = defineProps<{
9
+ /**
10
+ * would be great to use generated type for this
11
+ * */
12
+ value: Record<string, unknown>[];
13
+ }>();
14
+ </script>
15
+
16
+ <style scoped></style>
@@ -0,0 +1,21 @@
1
+ import { users as UsersAPI } from '@webitel/ui-sdk/api/clients/index';
2
+
3
+ import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
4
+ import { FilterOption } from '../../enums/FilterOption';
5
+ import ContactOwnerFilterValueField from './contact-owner-filter-value-field.vue';
6
+ import ContactOwnerFilterValuePreview from './contact-owner-filter-value-preview.vue';
7
+
8
+ class ContactOwnerFilterConfig extends WtSysTypeFilterConfig {
9
+ readonly name = FilterOption.ContactOwner;
10
+ valueInputComponent = ContactOwnerFilterValueField;
11
+ valuePreviewComponent = ContactOwnerFilterValuePreview;
12
+
13
+ searchRecords(
14
+ params: object
15
+ ): Promise<{ items: unknown[]; next?: boolean }> {
16
+ return UsersAPI.getLookup(params);
17
+ }
18
+ }
19
+
20
+ export const createContactOwnerFilterConfig = (params) =>
21
+ new ContactOwnerFilterConfig(params);
@@ -0,0 +1,33 @@
1
+ <template>
2
+ <has-option-filter-value-field
3
+ :model-value="model"
4
+ :v="v$.model"
5
+ @update:model-value="model = $event"
6
+ />
7
+ </template>
8
+
9
+ <script lang="ts" setup>
10
+ import { watch } from 'vue';
11
+
12
+ import { useBooleanFilterValueValidation } from '../../composables/booleanFilterToolkit';
13
+ import HasOptionFilterValueField from '../_shared/has-options/has-option-filter-value-field.vue';
14
+ import {BooleanFilterModelValue} from "../../enums/options/BooleanFilterOptions";
15
+
16
+ const model = defineModel<BooleanFilterModelValue>();
17
+
18
+ const { v$ } = useBooleanFilterValueValidation<BooleanFilterModelValue>(model);
19
+
20
+ const emit = defineEmits<{
21
+ 'update:invalid': [boolean];
22
+ }>();
23
+
24
+ watch(
25
+ () => v$.value.$invalid,
26
+ (invalid) => {
27
+ emit('update:invalid', invalid);
28
+ },
29
+ { immediate: true },
30
+ );
31
+ </script>
32
+
33
+ <style scoped></style>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div>{{ localeValue }}</div>
3
+ </template>
4
+
5
+ <script lang="ts" setup>
6
+ import { usePrettifyBooleanValuePreview } from '../../composables/booleanFilterToolkit';
7
+
8
+ const props = defineProps<{
9
+ value: boolean;
10
+ }>();
11
+
12
+ const { localeValue } = usePrettifyBooleanValuePreview(props.value);
13
+ </script>
14
+
15
+ <style scoped></style>
@@ -54,7 +54,6 @@ import { caseStatusConditionsSearchMethod } from './case-status/config';
54
54
  import { searchMethod as contactSearchMethod } from './contact/config';
55
55
  import ContactFilter from './contact/contact-filter-value-field.vue';
56
56
  import ContactFilterPreview from './contact/contact-filter-value-preview.vue';
57
- import { searchMethod as contactGroupSearchMethod } from './contact-group/config';
58
57
  import ContactGroupFilter from './contact-group/contact-group-filter-value-field.vue';
59
58
  import ContactGroupFilterPreview from './contact-group/contact-group-filter-value-preview.vue';
60
59
  import CreatedAtFilterValueField from './created-at/created-at-filter-value-field.vue';
@@ -75,6 +74,15 @@ import HasRatingFilterValueField from './has-rating/has-rating-filter-value-fiel
75
74
  import HasRatingFilterValuePreview from './has-rating/has-rating-filter-value-preview.vue';
76
75
  import HasTranscriptionFilter from './has-transcription/has-transcription-filter-value-field.vue';
77
76
  import HasTranscriptionFilterPreview from './has-transcription/has-transcription-filter-value-preview.vue';
77
+ import HasUserFilter from './has-user/has-user-filter-value-field.vue';
78
+ import HasUserFilterPreview from './has-user/has-user-filter-value-preview.vue';
79
+ import ContactLabelFilter from './contact-label/contact-label-filter-value-field.vue';
80
+ import ContactLabelFilterPreview from './contact-label/contact-label-filter-value-preview.vue';
81
+ import { createContactLabelFilterConfig } from './contact-label';
82
+ import { createContactOwnerFilterConfig } from './contact-owner'
83
+ import { createContactGroupFilterConfig } from './contact-group';
84
+ import ContactOwnerFilter from "./contact-owner/contact-owner-filter-value-field.vue";
85
+ import ContactOwnerFilterPreview from "./contact-owner/contact-owner-filter-value-preview.vue";
78
86
  import { searchMethod as queueSearchMethod } from './queue/config';
79
87
  import QueueFilter from './queue/queue-filter-value-field.vue';
80
88
  import QueueFilterPreview from './queue/queue-filter-value-preview.vue';
@@ -154,6 +162,12 @@ export {
154
162
  HasRatingFilterValuePreview,
155
163
  HasTranscriptionFilter,
156
164
  HasTranscriptionFilterPreview,
165
+ HasUserFilter,
166
+ HasUserFilterPreview,
167
+ ContactLabelFilter,
168
+ ContactLabelFilterPreview,
169
+ ContactOwnerFilter,
170
+ ContactOwnerFilterPreview,
157
171
  QueueFilter,
158
172
  QueueFilterPreview,
159
173
  RatedByFilter,
@@ -197,6 +211,7 @@ export const FilterOptionToValueComponentMap: Record<
197
211
  [FilterOption.Team]: TeamFilter,
198
212
  [FilterOption.TotalDuration]: TotalDurationFilter,
199
213
  [FilterOption.HasTranscription]: HasTranscriptionFilter,
214
+ [FilterOption.HasUser]: HasUserFilter,
200
215
  [FilterOption.User]: UserFilter,
201
216
  [FilterOption.Variable]: VariableFilter,
202
217
  [FilterOption.CreatedAt]: CreatedAtFilterValueField,
@@ -206,7 +221,6 @@ export const FilterOptionToValueComponentMap: Record<
206
221
  [FilterOption.CaseAuthor]: CaseAuthorFilterValueField,
207
222
  [FilterOption.CaseReporter]: CaseReporterFilterValueField,
208
223
  [FilterOption.CaseImpacted]: CaseImpactedFilterValueField,
209
- [FilterOption.ContactGroup]: ContactGroupFilter,
210
224
  [FilterOption.CasePriority]: CasePriorityFilterValueField,
211
225
  [FilterOption.CaseCloseReasonGroups]: CaseCloseReasonGroupsFilterValueField,
212
226
  [FilterOption.Rating]: RatingFromToFilter,
@@ -242,6 +256,7 @@ export const FilterOptionToPreviewComponentMap: Record<
242
256
  [FilterOption.Team]: TeamFilterPreview,
243
257
  [FilterOption.TotalDuration]: TotalDurationFilterPreview,
244
258
  [FilterOption.HasTranscription]: HasTranscriptionFilterPreview,
259
+ [FilterOption.HasUser]: HasUserFilterPreview,
245
260
  [FilterOption.User]: UserFilterPreview,
246
261
  [FilterOption.Variable]: VariableFilterPreview,
247
262
  [FilterOption.CaseStatus]: CaseStatusFilterValuePreview,
@@ -250,7 +265,6 @@ export const FilterOptionToPreviewComponentMap: Record<
250
265
  [FilterOption.CaseAuthor]: CaseAuthorFilterValuePreview,
251
266
  [FilterOption.CaseReporter]: CaseReporterFilterValuePreview,
252
267
  [FilterOption.CaseImpacted]: CaseImpactedFilterValuePreview,
253
- [FilterOption.ContactGroup]: ContactGroupFilterPreview,
254
268
  [FilterOption.CasePriority]: CasePriorityFilterValuePreview,
255
269
  [FilterOption.CaseCloseReasonGroups]: CaseCloseReasonGroupsFilterValuePreview,
256
270
  [FilterOption.Rating]: RatingFromToFilterPreview,
@@ -284,12 +298,6 @@ export const FilterOptionToPreviewApiSearchMethodMap: Record<
284
298
  id: value?.conditions,
285
299
  }),
286
300
  [FilterOption.User]: userSearchMethod,
287
- [FilterOption.ContactGroup]: ({ id: value }, ...rest) => {
288
- return contactGroupSearchMethod({
289
- id: value.list,
290
- ...rest,
291
- });
292
- },
293
301
  [FilterOption.CaseAuthor]: caseAuthorSearchMethod,
294
302
  [FilterOption.CasePriority]: casePrioritySearchMethod,
295
303
  [FilterOption.CaseImpacted]: caseImpactedSearchMethod,
@@ -313,4 +321,7 @@ export const FilterOptionToPreviewApiSearchMethodMap: Record<
313
321
 
314
322
  export const FilterOptionToFilterConfigCreatorMap = {
315
323
  [FilterOption.CaseAssignee]: createCaseAssigneeFilterConfig,
324
+ [FilterOption.ContactLabel]: createContactLabelFilterConfig,
325
+ [FilterOption.ContactOwner]: createContactOwnerFilterConfig,
326
+ [FilterOption.ContactGroup]: createContactGroupFilterConfig,
316
327
  };
@@ -27,6 +27,8 @@ export const FilterOption = {
27
27
  CaseImpacted: 'impacted',
28
28
  CaseAssignee: 'assignee',
29
29
  ContactGroup: 'contactGroup',
30
+ ContactLabel: 'contactLabel',
31
+ ContactOwner: 'contactOwner',
30
32
  CasePriority: 'priority',
31
33
  CaseCloseReasonGroups: 'closeReasonGroups',
32
34
  Rating: 'rating',
@@ -37,6 +39,7 @@ export const FilterOption = {
37
39
  CaseActualReactionTime: 'actualReactionTime',
38
40
  CaseActualResolutionTime: 'actualResolutionTime',
39
41
  HasAttachment: 'hasAttachment',
42
+ HasUser: 'hasUser',
40
43
  } as const;
41
44
 
42
45
  /**
@@ -1,8 +1,12 @@
1
+ import { IContactGroupFilterConfig } from './index';
2
+ type __VLS_Props = {
3
+ filterConfig: IContactGroupFilterConfig;
4
+ };
1
5
  type ModelValue = {
2
6
  list: string[];
3
7
  unassigned: boolean;
4
8
  };
5
- type __VLS_PublicProps = {
9
+ type __VLS_PublicProps = __VLS_Props & {
6
10
  modelValue?: ModelValue;
7
11
  };
8
12
  declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -11,5 +15,5 @@ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {},
11
15
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
12
16
  "onUpdate:modelValue"?: (value: ModelValue) => any;
13
17
  "onUpdate:invalid"?: (args_0: boolean) => any;
14
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
19
  export default _default;
@@ -0,0 +1,51 @@
1
+ import { WtSysTypeFilterConfig, IWtSysTypeFilterConfig } from '../../classes/FilterConfig';
2
+ declare class ContactGroupFilterConfig extends WtSysTypeFilterConfig {
3
+ readonly name: "contactGroup";
4
+ valueInputComponent: import("vue").DefineComponent<{
5
+ filterConfig: IContactGroupFilterConfig;
6
+ } & {
7
+ modelValue?: {
8
+ list: string[];
9
+ unassigned: boolean;
10
+ };
11
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ "update:modelValue": (value: {
13
+ list: string[];
14
+ unassigned: boolean;
15
+ }) => any;
16
+ "update:invalid": (args_0: boolean) => any;
17
+ }, string, import("vue").PublicProps, Readonly<{
18
+ filterConfig: IContactGroupFilterConfig;
19
+ } & {
20
+ modelValue?: {
21
+ list: string[];
22
+ unassigned: boolean;
23
+ };
24
+ }> & Readonly<{
25
+ "onUpdate:modelValue"?: (value: {
26
+ list: string[];
27
+ unassigned: boolean;
28
+ }) => any;
29
+ "onUpdate:invalid"?: (args_0: boolean) => any;
30
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
+ valuePreviewComponent: import("vue").DefineComponent<{
32
+ value: import("webitel-sdk").WebitelContactsContact[];
33
+ filter: import("../../../..").IFilter;
34
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
35
+ value: import("webitel-sdk").WebitelContactsContact[];
36
+ filter: import("../../../..").IFilter;
37
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
38
+ hideUnassigned?: boolean;
39
+ constructor(params?: {
40
+ hideUnassigned?: boolean;
41
+ });
42
+ searchRecords(params: object, { filterValue }?: {}): Promise<{
43
+ items: unknown[];
44
+ next?: boolean;
45
+ }>;
46
+ }
47
+ export declare const createContactGroupFilterConfig: (params: any) => ContactGroupFilterConfig;
48
+ export interface IContactGroupFilterConfig extends IWtSysTypeFilterConfig {
49
+ hideUnassigned?: boolean;
50
+ }
51
+ export {};
@@ -0,0 +1,16 @@
1
+ import { WtSysTypeFilterConfig } from "../../classes/FilterConfig";
2
+ type __VLS_Props = {
3
+ filterConfig: WtSysTypeFilterConfig;
4
+ };
5
+ type ModelValue = number[];
6
+ type __VLS_PublicProps = __VLS_Props & {
7
+ modelValue?: ModelValue;
8
+ };
9
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ "update:modelValue": (value: ModelValue) => any;
11
+ "update:invalid": (args_0: boolean) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
13
+ "onUpdate:modelValue"?: (value: ModelValue) => any;
14
+ "onUpdate:invalid"?: (args_0: boolean) => any;
15
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ export default _default;
@@ -0,0 +1,8 @@
1
+ type __VLS_Props = {
2
+ /**
3
+ * would be great to use generated type for this
4
+ * */
5
+ value: Record<string, unknown>[];
6
+ };
7
+ 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>;
8
+ export default _default;
@@ -0,0 +1,30 @@
1
+ import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
2
+ declare class ContactLabelFilterConfig extends WtSysTypeFilterConfig {
3
+ readonly name: "contactLabel";
4
+ valueInputComponent: import("vue").DefineComponent<{
5
+ filterConfig: WtSysTypeFilterConfig;
6
+ } & {
7
+ modelValue?: number[];
8
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ "update:modelValue": (value: number[]) => any;
10
+ "update:invalid": (args_0: boolean) => any;
11
+ }, string, import("vue").PublicProps, Readonly<{
12
+ filterConfig: WtSysTypeFilterConfig;
13
+ } & {
14
+ modelValue?: number[];
15
+ }> & Readonly<{
16
+ "onUpdate:modelValue"?: (value: number[]) => any;
17
+ "onUpdate:invalid"?: (args_0: boolean) => any;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ valuePreviewComponent: import("vue").DefineComponent<{
20
+ value: Record<string, unknown>[];
21
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
22
+ value: Record<string, unknown>[];
23
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
+ searchRecords(params: object, { filterValue }?: {}): Promise<{
25
+ items: unknown[];
26
+ next?: boolean;
27
+ }>;
28
+ }
29
+ export declare const createContactLabelFilterConfig: (params: any) => ContactLabelFilterConfig;
30
+ export {};
@@ -0,0 +1,16 @@
1
+ import { WtSysTypeFilterConfig } from "../../classes/FilterConfig";
2
+ type __VLS_Props = {
3
+ filterConfig: WtSysTypeFilterConfig;
4
+ };
5
+ type ModelValue = number[];
6
+ type __VLS_PublicProps = __VLS_Props & {
7
+ modelValue?: ModelValue;
8
+ };
9
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
+ "update:modelValue": (value: ModelValue) => any;
11
+ "update:invalid": (args_0: boolean) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
13
+ "onUpdate:modelValue"?: (value: ModelValue) => any;
14
+ "onUpdate:invalid"?: (args_0: boolean) => any;
15
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ export default _default;
@@ -0,0 +1,8 @@
1
+ type __VLS_Props = {
2
+ /**
3
+ * would be great to use generated type for this
4
+ * */
5
+ value: Record<string, unknown>[];
6
+ };
7
+ 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>;
8
+ export default _default;
@@ -0,0 +1,30 @@
1
+ import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
2
+ declare class ContactOwnerFilterConfig extends WtSysTypeFilterConfig {
3
+ readonly name: "contactOwner";
4
+ valueInputComponent: import("vue").DefineComponent<{
5
+ filterConfig: WtSysTypeFilterConfig;
6
+ } & {
7
+ modelValue?: number[];
8
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ "update:modelValue": (value: number[]) => any;
10
+ "update:invalid": (args_0: boolean) => any;
11
+ }, string, import("vue").PublicProps, Readonly<{
12
+ filterConfig: WtSysTypeFilterConfig;
13
+ } & {
14
+ modelValue?: number[];
15
+ }> & Readonly<{
16
+ "onUpdate:modelValue"?: (value: number[]) => any;
17
+ "onUpdate:invalid"?: (args_0: boolean) => any;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ valuePreviewComponent: import("vue").DefineComponent<{
20
+ value: Record<string, unknown>[];
21
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
22
+ value: Record<string, unknown>[];
23
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
+ searchRecords(params: object): Promise<{
25
+ items: unknown[];
26
+ next?: boolean;
27
+ }>;
28
+ }
29
+ export declare const createContactOwnerFilterConfig: (params: any) => ContactOwnerFilterConfig;
30
+ export {};
@@ -0,0 +1,12 @@
1
+ import { BooleanFilterModelValue } from "../../enums/options/BooleanFilterOptions";
2
+ type __VLS_PublicProps = {
3
+ modelValue?: BooleanFilterModelValue;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ "update:modelValue": (value: boolean) => any;
7
+ "update:invalid": (args_0: boolean) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
9
+ "onUpdate:modelValue"?: (value: boolean) => any;
10
+ "onUpdate:invalid"?: (args_0: boolean) => any;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
12
+ export default _default;
@@ -0,0 +1,5 @@
1
+ type __VLS_Props = {
2
+ value: boolean;
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;
@@ -53,6 +53,12 @@ import HasRatingFilterValueField from './has-rating/has-rating-filter-value-fiel
53
53
  import HasRatingFilterValuePreview from './has-rating/has-rating-filter-value-preview.vue';
54
54
  import HasTranscriptionFilter from './has-transcription/has-transcription-filter-value-field.vue';
55
55
  import HasTranscriptionFilterPreview from './has-transcription/has-transcription-filter-value-preview.vue';
56
+ import HasUserFilter from './has-user/has-user-filter-value-field.vue';
57
+ import HasUserFilterPreview from './has-user/has-user-filter-value-preview.vue';
58
+ import ContactLabelFilter from './contact-label/contact-label-filter-value-field.vue';
59
+ import ContactLabelFilterPreview from './contact-label/contact-label-filter-value-preview.vue';
60
+ import ContactOwnerFilter from "./contact-owner/contact-owner-filter-value-field.vue";
61
+ import ContactOwnerFilterPreview from "./contact-owner/contact-owner-filter-value-preview.vue";
56
62
  import QueueFilter from './queue/queue-filter-value-field.vue';
57
63
  import QueueFilterPreview from './queue/queue-filter-value-preview.vue';
58
64
  import RatedByFilter from './rated-by/rated-by-filter-value-field.vue';
@@ -73,7 +79,7 @@ import UserFilter from './user/user-filter-value-field.vue';
73
79
  import UserFilterPreview from './user/user-filter-value-preview.vue';
74
80
  import VariableFilter from './variable/variable-filter-value-field.vue';
75
81
  import VariableFilterPreview from './variable/variable-filter-value-preview.vue';
76
- 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, CreatedAtFilterValueField, GatewayFilter, GatewayFilterPreview, GranteeFilter, GranteeFilterPreview, HangupCauseFilterValueField, HangupCauseFilterValuePreview, HasAttachmentFilter, HasAttachmentFilterPreview, HasFileFilter, HasFileFilterPreview, HasRatingFilterValueField, HasRatingFilterValuePreview, HasTranscriptionFilter, HasTranscriptionFilterPreview, QueueFilter, QueueFilterPreview, RatedByFilter, RatedByFilterPreview, RatingFromToFilter, RatingFromToFilterPreview, ScoreFilter, ScoreFilterPreview, TagFilter, TagFilterPreview, TalkDurationFilter, TalkDurationFilterPreview, TeamFilter, TeamFilterPreview, TotalDurationFilter, TotalDurationFilterPreview, UserFilter, UserFilterPreview, VariableFilter, VariableFilterPreview, };
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, CreatedAtFilterValueField, GatewayFilter, GatewayFilterPreview, GranteeFilter, GranteeFilterPreview, HangupCauseFilterValueField, HangupCauseFilterValuePreview, HasAttachmentFilter, HasAttachmentFilterPreview, HasFileFilter, HasFileFilterPreview, HasRatingFilterValueField, HasRatingFilterValuePreview, HasTranscriptionFilter, HasTranscriptionFilterPreview, HasUserFilter, HasUserFilterPreview, ContactLabelFilter, ContactLabelFilterPreview, ContactOwnerFilter, ContactOwnerFilterPreview, QueueFilter, QueueFilterPreview, RatedByFilter, RatedByFilterPreview, RatingFromToFilter, RatingFromToFilterPreview, ScoreFilter, ScoreFilterPreview, TagFilter, TagFilterPreview, TalkDurationFilter, TalkDurationFilterPreview, TeamFilter, TeamFilterPreview, TotalDurationFilter, TotalDurationFilterPreview, UserFilter, UserFilterPreview, VariableFilter, VariableFilterPreview, };
77
83
  export declare const FilterOptionToValueComponentMap: Record<FilterOptionName, Component>;
78
84
  export declare const FilterOptionToPreviewComponentMap: Record<FilterOptionName, Component>;
79
85
  export declare const FilterOptionToPreviewApiSearchMethodMap: Record<FilterOptionName, (unknown: any) => {
@@ -81,4 +87,106 @@ export declare const FilterOptionToPreviewApiSearchMethodMap: Record<FilterOptio
81
87
  }>;
82
88
  export declare const FilterOptionToFilterConfigCreatorMap: {
83
89
  assignee: (params: any) => import("./case-assignee").CaseAssigneeFilterConfig;
90
+ contactLabel: (params: any) => {
91
+ readonly name: "contactLabel";
92
+ valueInputComponent: import("vue").DefineComponent<{
93
+ filterConfig: import("..").WtSysTypeFilterConfig;
94
+ } & {
95
+ modelValue?: number[];
96
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
97
+ "update:modelValue": (value: number[]) => any;
98
+ "update:invalid": (args_0: boolean) => any;
99
+ }, string, import("vue").PublicProps, Readonly<{
100
+ filterConfig: import("..").WtSysTypeFilterConfig;
101
+ } & {
102
+ modelValue?: number[];
103
+ }> & Readonly<{
104
+ "onUpdate:modelValue"?: (value: number[]) => any;
105
+ "onUpdate:invalid"?: (args_0: boolean) => any;
106
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
107
+ valuePreviewComponent: import("vue").DefineComponent<{
108
+ value: Record<string, unknown>[];
109
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
110
+ value: Record<string, unknown>[];
111
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
112
+ searchRecords(params: object, { filterValue }?: {}): Promise<{
113
+ items: unknown[];
114
+ next?: boolean;
115
+ }>;
116
+ label?: ReturnType<import("vue-i18n").MessageResolver> | string;
117
+ notDeletable: boolean;
118
+ };
119
+ contactOwner: (params: any) => {
120
+ readonly name: "contactOwner";
121
+ valueInputComponent: import("vue").DefineComponent<{
122
+ filterConfig: import("..").WtSysTypeFilterConfig;
123
+ } & {
124
+ modelValue?: number[];
125
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
126
+ "update:modelValue": (value: number[]) => any;
127
+ "update:invalid": (args_0: boolean) => any;
128
+ }, string, import("vue").PublicProps, Readonly<{
129
+ filterConfig: import("..").WtSysTypeFilterConfig;
130
+ } & {
131
+ modelValue?: number[];
132
+ }> & Readonly<{
133
+ "onUpdate:modelValue"?: (value: number[]) => any;
134
+ "onUpdate:invalid"?: (args_0: boolean) => any;
135
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
136
+ valuePreviewComponent: import("vue").DefineComponent<{
137
+ value: Record<string, unknown>[];
138
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
139
+ value: Record<string, unknown>[];
140
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
141
+ searchRecords(params: object): Promise<{
142
+ items: unknown[];
143
+ next?: boolean;
144
+ }>;
145
+ label?: ReturnType<import("vue-i18n").MessageResolver> | string;
146
+ notDeletable: boolean;
147
+ };
148
+ contactGroup: (params: any) => {
149
+ readonly name: "contactGroup";
150
+ valueInputComponent: import("vue").DefineComponent<{
151
+ filterConfig: import("./contact-group").IContactGroupFilterConfig;
152
+ } & {
153
+ modelValue?: {
154
+ list: string[];
155
+ unassigned: boolean;
156
+ };
157
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
158
+ "update:modelValue": (value: {
159
+ list: string[];
160
+ unassigned: boolean;
161
+ }) => any;
162
+ "update:invalid": (args_0: boolean) => any;
163
+ }, string, import("vue").PublicProps, Readonly<{
164
+ filterConfig: import("./contact-group").IContactGroupFilterConfig;
165
+ } & {
166
+ modelValue?: {
167
+ list: string[];
168
+ unassigned: boolean;
169
+ };
170
+ }> & Readonly<{
171
+ "onUpdate:modelValue"?: (value: {
172
+ list: string[];
173
+ unassigned: boolean;
174
+ }) => any;
175
+ "onUpdate:invalid"?: (args_0: boolean) => any;
176
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
177
+ valuePreviewComponent: import("vue").DefineComponent<{
178
+ value: import("webitel-sdk").WebitelContactsContact[];
179
+ filter: import("../../..").IFilter;
180
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
181
+ value: import("webitel-sdk").WebitelContactsContact[];
182
+ filter: import("../../..").IFilter;
183
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
184
+ hideUnassigned?: boolean;
185
+ searchRecords(params: object, { filterValue }?: {}): Promise<{
186
+ items: unknown[];
187
+ next?: boolean;
188
+ }>;
189
+ label?: ReturnType<import("vue-i18n").MessageResolver> | string;
190
+ notDeletable: boolean;
191
+ };
84
192
  };
@@ -27,6 +27,8 @@ export declare const FilterOption: {
27
27
  readonly CaseImpacted: "impacted";
28
28
  readonly CaseAssignee: "assignee";
29
29
  readonly ContactGroup: "contactGroup";
30
+ readonly ContactLabel: "contactLabel";
31
+ readonly ContactOwner: "contactOwner";
30
32
  readonly CasePriority: "priority";
31
33
  readonly CaseCloseReasonGroups: "closeReasonGroups";
32
34
  readonly Rating: "rating";
@@ -37,6 +39,7 @@ export declare const FilterOption: {
37
39
  readonly CaseActualReactionTime: "actualReactionTime";
38
40
  readonly CaseActualResolutionTime: "actualResolutionTime";
39
41
  readonly HasAttachment: "hasAttachment";
42
+ readonly HasUser: "hasUser";
40
43
  };
41
44
  /**
42
45
  *
@@ -1,3 +0,0 @@
1
- import ContactGroupsAPI from '@webitel/ui-sdk/api/clients/contactGroups/contactGroups';
2
-
3
- export const searchMethod = ContactGroupsAPI.getLookup;