@webitel/ui-datalist 26.8.7 → 26.8.9

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 (137) hide show
  1. package/package.json +1 -1
  2. package/src/modules/filter-presets/components/apply-preset/apply-preset-action.vue +16 -4
  3. package/src/modules/filter-presets/components/save-preset/save-preset-action.vue +18 -4
  4. package/src/modules/filters/components/column/column-filter-preview.vue +70 -0
  5. package/src/modules/filters/components/column/column-filter.vue +77 -0
  6. package/src/modules/filters/components/config/dynamic-view/dynamic-filter-config-form-value-input.vue +2 -0
  7. package/src/modules/filters/components/config/dynamic-view/dynamic-filter-config-form.vue +43 -5
  8. package/src/modules/filters/components/config/static-view/static-filter-field.vue +6 -21
  9. package/src/modules/filters/components/filters-actions-menu.vue +177 -0
  10. package/src/modules/filters/components/preview/dynamic-filter-preview.vue +5 -60
  11. package/src/modules/filters/components/table-filters-panel.vue +6 -28
  12. package/src/modules/filters/components/types/Filter.types.ts +5 -0
  13. package/src/modules/filters/composables/useColumnFilter.ts +116 -0
  14. package/src/modules/filters/composables/useFilterValueChange.ts +58 -0
  15. package/src/modules/filters/composables/useFilterValuePreview.ts +87 -0
  16. package/src/modules/filters/composables/useSelectedFilters.ts +64 -0
  17. package/src/modules/filters/index.ts +4 -0
  18. package/src/modules/filters/modules/filterConfig/components/_custom/type-extension-filter-value-field.vue +9 -5
  19. package/src/modules/filters/modules/filterConfig/components/_shared/date-time-filter/date-time-filter-value-field.vue +7 -4
  20. package/src/modules/filters/modules/filterConfig/components/_shared/date-time-filter/date-time-options/date-time-options-filter-value-field.vue +7 -4
  21. package/src/modules/filters/modules/filterConfig/components/_shared/durations/duration-filter-value-field.vue +7 -4
  22. package/src/modules/filters/modules/filterConfig/components/_shared/string-filter/string-filter-value-field.vue +6 -3
  23. package/src/modules/filters/modules/filterConfig/components/agent/agent-filter-value-field.vue +6 -3
  24. package/src/modules/filters/modules/filterConfig/components/amd-result/amd-result-filter-value-field.vue +6 -3
  25. package/src/modules/filters/modules/filterConfig/components/call-direction/call-direction-filter-value-field.vue +6 -3
  26. package/src/modules/filters/modules/filterConfig/components/case-assignee/case-assignee-filter-value-field.vue +4 -4
  27. package/src/modules/filters/modules/filterConfig/components/case-author/case-author-filter-value-field.vue +6 -3
  28. package/src/modules/filters/modules/filterConfig/components/case-close-reason-groups/case-close-reason-groups-filter-value-field.vue +7 -4
  29. package/src/modules/filters/modules/filterConfig/components/case-impacted/case-impacted-filter-value-field.vue +6 -3
  30. package/src/modules/filters/modules/filterConfig/components/case-priority/case-priority-filter-value-field.vue +6 -3
  31. package/src/modules/filters/modules/filterConfig/components/case-reporter/case-reporter-filter-value-field.vue +6 -3
  32. package/src/modules/filters/modules/filterConfig/components/case-service/case-service-filter-value-field.vue +1 -32
  33. package/src/modules/filters/modules/filterConfig/components/case-sla/case-sla-filter-value-field.vue +6 -3
  34. package/src/modules/filters/modules/filterConfig/components/case-sla-condition/case-sla-condition-filter-value-field.vue +7 -4
  35. package/src/modules/filters/modules/filterConfig/components/case-source/case-source-filter-value-field.vue +6 -3
  36. package/src/modules/filters/modules/filterConfig/components/case-status/case-status-filter-value-field.vue +7 -4
  37. package/src/modules/filters/modules/filterConfig/components/contact/contact-filter-value-field.vue +6 -3
  38. package/src/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-field.vue +3 -3
  39. package/src/modules/filters/modules/filterConfig/components/gateway/gateway-filter-value-field.vue +6 -3
  40. package/src/modules/filters/modules/filterConfig/components/grantee/grantee-filter-value-field.vue +6 -3
  41. package/src/modules/filters/modules/filterConfig/components/hangup-cause/hangup-cause-filter-value-field.vue +6 -3
  42. package/src/modules/filters/modules/filterConfig/components/has-attachment/has-attachment-filter-value-field.vue +6 -3
  43. package/src/modules/filters/modules/filterConfig/components/rated-by/rated-by-filter-value-field.vue +6 -3
  44. package/src/modules/filters/modules/filterConfig/components/rating/rating-from-to-filter-value-field.vue +7 -4
  45. package/src/modules/filters/modules/filterConfig/components/score/score-from-to-filter-value-field.vue +4 -4
  46. package/src/modules/filters/modules/filterConfig/components/tag/tag-filter-value-field.vue +6 -3
  47. package/src/modules/filters/modules/filterConfig/components/user/user-filter-value-field.vue +6 -3
  48. package/src/modules/filters/modules/filterConfig/components/variable/variable-filter-value-field.vue +6 -3
  49. package/src/modules/table/createTableStore.store.ts +24 -3
  50. package/src/modules/types/tableStore.types.ts +18 -1
  51. package/types/.tsbuildinfo +1 -1
  52. package/types/modules/filter-presets/components/apply-preset/apply-preset-action.vue.d.ts +15 -1
  53. package/types/modules/filter-presets/components/save-preset/save-preset-action.vue.d.ts +17 -1
  54. package/types/modules/filter-presets/stores/createFilterPresetsStore.d.ts +2 -35
  55. package/types/modules/filters/components/column/column-filter-preview.vue.d.ts +21 -0
  56. package/types/modules/filters/components/column/column-filter.vue.d.ts +36 -0
  57. package/types/modules/filters/components/config/dynamic-view/dynamic-filter-config-form-label.vue.d.ts +2 -2
  58. package/types/modules/filters/components/config/dynamic-view/dynamic-filter-config-form-value-input.vue.d.ts +3 -2
  59. package/types/modules/filters/components/config/dynamic-view/dynamic-filter-config-form.vue.d.ts +13 -1
  60. package/types/modules/filters/components/config/static-view/static-filter-field.vue.d.ts +2 -2
  61. package/types/modules/filters/components/filters-actions-menu.vue.d.ts +29 -0
  62. package/types/modules/filters/components/table-filters-panel.vue.d.ts +6 -6
  63. package/types/modules/filters/components/types/Filter.types.d.ts +4 -0
  64. package/types/modules/filters/composables/useColumnFilter.d.ts +27 -0
  65. package/types/modules/filters/composables/useFilterValueChange.d.ts +23 -0
  66. package/types/modules/filters/composables/useFilterValuePreview.d.ts +21 -0
  67. package/types/modules/filters/composables/useSelectedFilters.d.ts +22 -0
  68. package/types/modules/filters/index.d.ts +3 -1
  69. package/types/modules/filters/modules/filterConfig/components/_custom/type-extension-filter-value-field.vue.d.ts +3 -2
  70. package/types/modules/filters/modules/filterConfig/components/_shared/date-time-filter/date-time-filter-value-field.vue.d.ts +8 -4
  71. package/types/modules/filters/modules/filterConfig/components/_shared/date-time-filter/date-time-options/date-time-options-filter-value-field.vue.d.ts +8 -4
  72. package/types/modules/filters/modules/filterConfig/components/_shared/durations/duration-filter-value-field.vue.d.ts +8 -4
  73. package/types/modules/filters/modules/filterConfig/components/_shared/string-filter/string-filter-value-field.vue.d.ts +8 -4
  74. package/types/modules/filters/modules/filterConfig/components/agent/agent-filter-value-field.vue.d.ts +8 -4
  75. package/types/modules/filters/modules/filterConfig/components/agent-status/agent-status-filter-value-field.vue.d.ts +2 -2
  76. package/types/modules/filters/modules/filterConfig/components/amd-result/amd-result-filter-value-field.vue.d.ts +8 -4
  77. package/types/modules/filters/modules/filterConfig/components/auditor/auditor-filter-value-field.vue.d.ts +2 -2
  78. package/types/modules/filters/modules/filterConfig/components/auditor/index.d.ts +2 -2
  79. package/types/modules/filters/modules/filterConfig/components/bucket/bucket-filter-value-field.vue.d.ts +2 -2
  80. package/types/modules/filters/modules/filterConfig/components/bucket/index.d.ts +2 -2
  81. package/types/modules/filters/modules/filterConfig/components/call-direction/call-direction-filter-value-field.vue.d.ts +8 -4
  82. package/types/modules/filters/modules/filterConfig/components/call-reporting-result/call-reporting-result-filter-value-field.vue.d.ts +2 -2
  83. package/types/modules/filters/modules/filterConfig/components/case-assignee/case-assignee-filter-value-field.vue.d.ts +3 -2
  84. package/types/modules/filters/modules/filterConfig/components/case-assignee/filterConfig.d.ts +4 -2
  85. package/types/modules/filters/modules/filterConfig/components/case-author/case-author-filter-value-field.vue.d.ts +8 -4
  86. package/types/modules/filters/modules/filterConfig/components/case-close-reason-groups/case-close-reason-groups-filter-value-field.vue.d.ts +8 -4
  87. package/types/modules/filters/modules/filterConfig/components/case-impacted/case-impacted-filter-value-field.vue.d.ts +8 -4
  88. package/types/modules/filters/modules/filterConfig/components/case-priority/case-priority-filter-value-field.vue.d.ts +8 -4
  89. package/types/modules/filters/modules/filterConfig/components/case-reporter/case-reporter-filter-value-field.vue.d.ts +8 -4
  90. package/types/modules/filters/modules/filterConfig/components/case-sla/case-sla-filter-value-field.vue.d.ts +8 -4
  91. package/types/modules/filters/modules/filterConfig/components/case-sla-condition/case-sla-condition-filter-value-field.vue.d.ts +8 -4
  92. package/types/modules/filters/modules/filterConfig/components/case-source/case-source-filter-value-field.vue.d.ts +8 -4
  93. package/types/modules/filters/modules/filterConfig/components/case-status/case-status-filter-value-field.vue.d.ts +8 -4
  94. package/types/modules/filters/modules/filterConfig/components/contact/contact-filter-value-field.vue.d.ts +8 -4
  95. package/types/modules/filters/modules/filterConfig/components/contact-group/contact-group-filter-value-field.vue.d.ts +2 -2
  96. package/types/modules/filters/modules/filterConfig/components/contact-group/index.d.ts +2 -2
  97. package/types/modules/filters/modules/filterConfig/components/contact-label/contact-label-filter-value-field.vue.d.ts +2 -2
  98. package/types/modules/filters/modules/filterConfig/components/contact-label/index.d.ts +2 -2
  99. package/types/modules/filters/modules/filterConfig/components/contact-owner/contact-owner-filter-value-field.vue.d.ts +3 -2
  100. package/types/modules/filters/modules/filterConfig/components/contact-owner/index.d.ts +4 -2
  101. package/types/modules/filters/modules/filterConfig/components/gateway/gateway-filter-value-field.vue.d.ts +8 -4
  102. package/types/modules/filters/modules/filterConfig/components/grantee/grantee-filter-value-field.vue.d.ts +8 -4
  103. package/types/modules/filters/modules/filterConfig/components/hangup-cause/hangup-cause-filter-value-field.vue.d.ts +8 -4
  104. package/types/modules/filters/modules/filterConfig/components/has-attachment/has-attachment-filter-value-field.vue.d.ts +8 -4
  105. package/types/modules/filters/modules/filterConfig/components/has-file/has-file-filter-value-field.vue.d.ts +2 -2
  106. package/types/modules/filters/modules/filterConfig/components/has-rating/has-rating-filter-value-field.vue.d.ts +2 -2
  107. package/types/modules/filters/modules/filterConfig/components/has-transcription/has-transcription-filter-value-field.vue.d.ts +2 -2
  108. package/types/modules/filters/modules/filterConfig/components/has-user/has-user-filter-value-field.vue.d.ts +2 -2
  109. package/types/modules/filters/modules/filterConfig/components/index.d.ts +24 -22
  110. package/types/modules/filters/modules/filterConfig/components/queue/index.d.ts +2 -2
  111. package/types/modules/filters/modules/filterConfig/components/queue/queue-filter-value-field.vue.d.ts +2 -2
  112. package/types/modules/filters/modules/filterConfig/components/queue-period/queue-period-filter-value-field.vue.d.ts +2 -2
  113. package/types/modules/filters/modules/filterConfig/components/queue-type/queue-type-filter-value-field.vue.d.ts +2 -2
  114. package/types/modules/filters/modules/filterConfig/components/rated-by/rated-by-filter-value-field.vue.d.ts +8 -4
  115. package/types/modules/filters/modules/filterConfig/components/rating/rating-from-to-filter-value-field.vue.d.ts +8 -4
  116. package/types/modules/filters/modules/filterConfig/components/region/index.d.ts +2 -2
  117. package/types/modules/filters/modules/filterConfig/components/region/region-filter-value-field.vue.d.ts +2 -2
  118. package/types/modules/filters/modules/filterConfig/components/score/score-from-to-filter-value-field.vue.d.ts +3 -2
  119. package/types/modules/filters/modules/filterConfig/components/skill/index.d.ts +2 -2
  120. package/types/modules/filters/modules/filterConfig/components/skill/skill-filter-value-field.vue.d.ts +2 -2
  121. package/types/modules/filters/modules/filterConfig/components/stop-cause/stop-cause-filter-value-field.vue.d.ts +2 -2
  122. package/types/modules/filters/modules/filterConfig/components/supervisor/index.d.ts +2 -2
  123. package/types/modules/filters/modules/filterConfig/components/supervisor/supervisor-filter-value-field.vue.d.ts +2 -2
  124. package/types/modules/filters/modules/filterConfig/components/tag/tag-filter-value-field.vue.d.ts +8 -4
  125. package/types/modules/filters/modules/filterConfig/components/tags/index.d.ts +2 -2
  126. package/types/modules/filters/modules/filterConfig/components/tags/tags-filter-value-field.vue.d.ts +2 -2
  127. package/types/modules/filters/modules/filterConfig/components/talk-duration/talk-duration-filter-value-field.vue.d.ts +2 -2
  128. package/types/modules/filters/modules/filterConfig/components/team/index.d.ts +2 -2
  129. package/types/modules/filters/modules/filterConfig/components/team/team-filter-value-field.vue.d.ts +2 -2
  130. package/types/modules/filters/modules/filterConfig/components/total-duration/total-duration-filter-value-field.vue.d.ts +2 -2
  131. package/types/modules/filters/modules/filterConfig/components/user/user-filter-value-field.vue.d.ts +8 -4
  132. package/types/modules/filters/modules/filterConfig/components/utilization-progress/utilization-progress-filter-value-field.vue.d.ts +2 -2
  133. package/types/modules/filters/modules/filterConfig/components/variable/variable-filter-value-field.vue.d.ts +8 -4
  134. package/types/modules/headers/createTableHeadersStore.d.ts +24 -0
  135. package/types/modules/permissions-page/stores/createPermissionsStore.d.ts +4 -70
  136. package/types/modules/table/createTableStore.store.d.ts +76 -141
  137. package/types/modules/types/tableStore.types.d.ts +15 -1
@@ -4,7 +4,7 @@
4
4
  :label="t('webitelUI.filters.filterValue')"
5
5
  :options="CallDirectionFilterOptions"
6
6
  v-model:model-value="model"
7
- :v="v$.model"
7
+ :v="!disableValidation && v$.model"
8
8
  data-key="value"
9
9
  option-value="value"
10
10
  />
@@ -19,6 +19,10 @@ import { useI18n } from 'vue-i18n';
19
19
 
20
20
  import { CallDirectionFilterOptions } from '../../enums/options/CallDirectionFilterOptions';
21
21
 
22
+ const props = defineProps<{
23
+ disableValidation?: boolean;
24
+ }>();
25
+
22
26
  const model = defineModel<string>();
23
27
  const { t } = useI18n();
24
28
 
@@ -36,8 +40,7 @@ const v$ = useVuelidate(
36
40
  },
37
41
  );
38
42
 
39
- v$.value.$touch();
40
-
43
+ if (!props?.disableValidation) v$.value.$touch();
41
44
  const emit = defineEmits<{
42
45
  'update:invalid': [
43
46
  boolean,
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="props.filterConfig.searchRecords"
5
- :v="vList"
5
+ :v="!disableValidation && vList"
6
6
  :model-value="value.list"
7
7
  data-key="id"
8
8
  option-value="id"
@@ -11,7 +11,7 @@
11
11
  <wt-checkbox
12
12
  :label="t('reusable.showUnassigned')"
13
13
  :selected="value.unassigned"
14
- :v="vUnassigned"
14
+ :v="!disableValidation && vUnassigned"
15
15
  @update:selected="handleInput('unassigned', !!$event)"
16
16
  />
17
17
  </template>
@@ -57,6 +57,7 @@ const handleInput = <K extends keyof ModelValue>(
57
57
 
58
58
  const props = defineProps<{
59
59
  filterConfig: CaseAssigneeFilterConfig;
60
+ disableValidation?: boolean;
60
61
  }>();
61
62
 
62
63
  const emit = defineEmits<{
@@ -87,8 +88,7 @@ const v$ = useVuelidate<{
87
88
  $autoDirty: true,
88
89
  },
89
90
  );
90
- v$.value.$touch();
91
-
91
+ if (!props?.disableValidation) v$.value.$touch();
92
92
  const vList = computed(() => {
93
93
  const modelValidation = v$.value.model;
94
94
  if (!modelValidation) return undefined;
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
- :v="v$.model"
5
+ :v="!disableValidation && v$.model"
6
6
  :model-value="model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -42,8 +46,7 @@ const v$ = useVuelidate(
42
46
  $autoDirty: true,
43
47
  },
44
48
  );
45
- v$.value.$touch();
46
-
49
+ if (!props?.disableValidation) v$.value.$touch();
47
50
  watch(
48
51
  () => v$.value.$invalid,
49
52
  (invalid) => {
@@ -4,7 +4,7 @@
4
4
  :show-clear="false"
5
5
  :label="t('cases.reason')"
6
6
  :search-method="caseCloseReasonsGroupsSearchMethod"
7
- :v="vSelection"
7
+ :v="!disableValidation && vSelection"
8
8
  :model-value="value.selection"
9
9
  data-key="id"
10
10
  option-value="id"
@@ -18,7 +18,7 @@
18
18
  :disabled="!value.selection"
19
19
  :label="t('webitelUI.filters.filterValue')"
20
20
  :search-method="getConditionList"
21
- :v="vConditions"
21
+ :v="!disableValidation && vConditions"
22
22
  :model-value="value.conditions"
23
23
  data-key="id"
24
24
  option-value="id"
@@ -39,6 +39,10 @@ import {
39
39
  caseCloseReasonsSearchMethod,
40
40
  } from './config.js';
41
41
 
42
+ const props = defineProps<{
43
+ disableValidation?: boolean;
44
+ }>();
45
+
42
46
  type ModelValue = {
43
47
  selection: string;
44
48
  conditions: string;
@@ -104,8 +108,7 @@ const v$ = useVuelidate<{
104
108
  },
105
109
  );
106
110
 
107
- v$.value.$touch();
108
-
111
+ if (!props?.disableValidation) v$.value.$touch();
109
112
  const vSelection = computed(() => {
110
113
  const modelValidation = v$.value.model;
111
114
  if (!modelValidation) return undefined;
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
- :v="v$.model"
5
+ :v="!disableValidation && v$.model"
6
6
  :model-value="model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -42,8 +46,7 @@ const v$ = useVuelidate(
42
46
  $autoDirty: true,
43
47
  },
44
48
  );
45
- v$.value.$touch();
46
-
49
+ if (!props?.disableValidation) v$.value.$touch();
47
50
  watch(
48
51
  () => v$.value.$invalid,
49
52
  (invalid) => {
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
- :v="v$.model"
5
+ :v="!disableValidation && v$.model"
6
6
  :model-value="model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -43,8 +47,7 @@ const v$ = useVuelidate(
43
47
  $autoDirty: true,
44
48
  },
45
49
  );
46
- v$.value.$touch();
47
-
50
+ if (!props?.disableValidation) v$.value.$touch();
48
51
  watch(
49
52
  () => v$.value.$invalid,
50
53
  (invalid) => {
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
- :v="v$.model"
5
+ :v="!disableValidation && v$.model"
6
6
  :model-value="model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -42,8 +46,7 @@ const v$ = useVuelidate(
42
46
  $autoDirty: true,
43
47
  },
44
48
  );
45
- v$.value.$touch();
46
-
49
+ if (!props?.disableValidation) v$.value.$touch();
47
50
  watch(
48
51
  () => v$.value.$invalid,
49
52
  (invalid) => {
@@ -49,41 +49,10 @@ if (!model.value) {
49
49
  onMounted(loadCatalogs);
50
50
  </script>
51
51
 
52
- <style lang="scss">
53
- $form-width: 800px;
54
-
52
+ <style lang="scss" scoped>
55
53
  .service-case-filter-value-field {
56
- grid-area: value;
57
54
  background: transparent;
58
- height: 100%;
59
55
  max-height: 350px;
60
56
  overflow-y: auto;
61
57
  }
62
-
63
- .dynamic-filter-config-form {
64
- &:has(.service-case-filter-value-field) {
65
- display: grid;
66
- grid-template-rows: 64px 1fr auto;
67
- grid-template-columns: repeat(2, 1fr);
68
- grid-template-areas:
69
- 'column label'
70
- 'value value'
71
- 'footer footer';
72
- width: $form-width;
73
- height: 500px;
74
-
75
- .wt-select {
76
- grid-area: column;
77
- height: fit-content;
78
- }
79
-
80
- .wt-input-text {
81
- grid-area: label;
82
- }
83
-
84
- .dynamic-filter-config-form-footer {
85
- grid-area: footer;
86
- }
87
- }
88
- }
89
58
  </style>
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
- :v="v$.model"
5
+ :v="!disableValidation && v$.model"
6
6
  :model-value="model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -43,8 +47,7 @@ const v$ = useVuelidate(
43
47
  $autoDirty: true,
44
48
  },
45
49
  );
46
- v$.value.$touch();
47
-
50
+ if (!props?.disableValidation) v$.value.$touch();
48
51
  watch(
49
52
  () => v$.value.$invalid,
50
53
  (invalid) => {
@@ -4,7 +4,7 @@
4
4
  :show-clear="false"
5
5
  :label="t('cases.appliedSLA')"
6
6
  :search-method="slasSearchMethod"
7
- :v="vSelection"
7
+ :v="!disableValidation && vSelection"
8
8
  :model-value="value.selection"
9
9
  data-key="id"
10
10
  option-value="id"
@@ -17,7 +17,7 @@
17
17
  :disabled="!value.selection"
18
18
  :label="t('webitelUI.filters.filterValue')"
19
19
  :search-method="getConditionList"
20
- :v="vConditions"
20
+ :v="!disableValidation && vConditions"
21
21
  :model-value="value.conditions"
22
22
  data-key="id"
23
23
  option-value="id"
@@ -35,6 +35,10 @@ import { useI18n } from 'vue-i18n';
35
35
 
36
36
  import { slasConditionsSearchMethod, slasSearchMethod } from './config.js';
37
37
 
38
+ const props = defineProps<{
39
+ disableValidation?: boolean;
40
+ }>();
41
+
38
42
  type ModelValue = {
39
43
  selection: string;
40
44
  conditions: string;
@@ -100,8 +104,7 @@ const v$ = useVuelidate<{
100
104
  },
101
105
  );
102
106
 
103
- v$.value.$touch();
104
-
107
+ if (!props?.disableValidation) v$.value.$touch();
105
108
  const vSelection = computed(() => {
106
109
  const modelValidation = v$.value.model;
107
110
  if (!modelValidation) return undefined;
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
- :v="v$.model"
5
+ :v="!disableValidation && v$.model"
6
6
  :model-value="model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -43,8 +47,7 @@ const v$ = useVuelidate(
43
47
  $autoDirty: true,
44
48
  },
45
49
  );
46
- v$.value.$touch();
47
-
50
+ if (!props?.disableValidation) v$.value.$touch();
48
51
  watch(
49
52
  () => v$.value.$invalid,
50
53
  (invalid) => {
@@ -4,7 +4,7 @@
4
4
  :show-clear="false"
5
5
  :label="t('cases.status')"
6
6
  :search-method="caseStatusesSearchMethod"
7
- :v="vSelection"
7
+ :v="!disableValidation && vSelection"
8
8
  :model-value="value.selection"
9
9
  data-key="id"
10
10
  option-value="id"
@@ -17,7 +17,7 @@
17
17
  :disabled="!value.selection"
18
18
  :label="t('webitelUI.filters.filterValue')"
19
19
  :search-method="getConditionList"
20
- :v="vConditions"
20
+ :v="!disableValidation && vConditions"
21
21
  :model-value="value.conditions"
22
22
  data-key="id"
23
23
  option-value="id"
@@ -38,6 +38,10 @@ import {
38
38
  caseStatusesSearchMethod,
39
39
  } from './config.js';
40
40
 
41
+ const props = defineProps<{
42
+ disableValidation?: boolean;
43
+ }>();
44
+
41
45
  type ModelValue = {
42
46
  selection: string;
43
47
  conditions: string;
@@ -103,8 +107,7 @@ const v$ = useVuelidate<{
103
107
  },
104
108
  );
105
109
 
106
- v$.value.$touch();
107
-
110
+ if (!props?.disableValidation) v$.value.$touch();
108
111
  const vSelection = computed(() => {
109
112
  const modelValidation = v$.value.model;
110
113
  if (!modelValidation) return undefined;
@@ -3,7 +3,7 @@
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
5
  :model-value="model"
6
- :v="v$.model"
6
+ :v="!disableValidation && v$.model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
9
9
  />
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -42,8 +46,7 @@ const v$ = useVuelidate(
42
46
  $autoDirty: true,
43
47
  },
44
48
  );
45
- v$.value.$touch();
46
-
49
+ if (!props?.disableValidation) v$.value.$touch();
47
50
  watch(
48
51
  () => v$.value.$invalid,
49
52
  (invalid) => {
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="props.filterConfig.searchRecords"
5
- :v="v$.model"
5
+ :v="!disableValidation && v$.model"
6
6
  :model-value="model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
@@ -20,6 +20,7 @@ import { WtSysTypeFilterConfig } from '../../classes/FilterConfig';
20
20
 
21
21
  const props = defineProps<{
22
22
  filterConfig: WtSysTypeFilterConfig;
23
+ disableValidation?: boolean;
23
24
  }>();
24
25
 
25
26
  type ModelValue = number[];
@@ -46,8 +47,7 @@ const v$ = useVuelidate(
46
47
  $autoDirty: true,
47
48
  },
48
49
  );
49
- v$.value.$touch();
50
-
50
+ if (!props?.disableValidation) v$.value.$touch();
51
51
  watch(
52
52
  () => v$.value.$invalid,
53
53
  (invalid) => {
@@ -2,7 +2,7 @@
2
2
  <wt-multi-select
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchGateway"
5
- :v="v$.model"
5
+ :v="!disableValidation && v$.model"
6
6
  :model-value="model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -42,8 +46,7 @@ const v$ = useVuelidate(
42
46
  $autoDirty: true,
43
47
  },
44
48
  );
45
- v$.value.$touch();
46
-
49
+ if (!props?.disableValidation) v$.value.$touch();
47
50
  const searchGateway = async (params: { search?: string }) => {
48
51
  return params.search
49
52
  ? await searchMethod({
@@ -3,7 +3,7 @@
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
5
  :model-value="model"
6
- :v="v$.model"
6
+ :v="!disableValidation && v$.model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
9
9
  />
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -42,8 +46,7 @@ const v$ = useVuelidate(
42
46
  $autoDirty: true,
43
47
  },
44
48
  );
45
- v$.value.$touch();
46
-
49
+ if (!props?.disableValidation) v$.value.$touch();
47
50
  watch(
48
51
  () => v$.value.$invalid,
49
52
  (invalid) => {
@@ -3,7 +3,7 @@
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :options="HangupCauseOptions"
5
5
  v-model:model-value="model"
6
- :v="v$.model"
6
+ :v="!disableValidation && v$.model"
7
7
  data-key="value"
8
8
  option-value="value"
9
9
  />
@@ -18,6 +18,10 @@ import { useI18n } from 'vue-i18n';
18
18
 
19
19
  import { HangupCauseOptions } from '../../enums/options/HangupCauseFilterOptions';
20
20
 
21
+ const props = defineProps<{
22
+ disableValidation?: boolean;
23
+ }>();
24
+
21
25
  const model = defineModel<string>();
22
26
  const { t } = useI18n();
23
27
 
@@ -35,8 +39,7 @@ const v$ = useVuelidate(
35
39
  },
36
40
  );
37
41
 
38
- v$.value.$touch();
39
-
42
+ if (!props?.disableValidation) v$.value.$touch();
40
43
  const emit = defineEmits<{
41
44
  'update:invalid': [
42
45
  boolean,
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <has-option-filter-value-field
3
3
  :model-value="model"
4
- :v="v$.model"
4
+ :v="!disableValidation && v$.model"
5
5
  @update:model-value="model = $event"
6
6
  />
7
7
  </template>
@@ -13,6 +13,10 @@ import { computed, watch } from 'vue';
13
13
 
14
14
  import HasOptionFilterValueField from '../_shared/has-options/has-option-filter-value-field.vue';
15
15
 
16
+ const props = defineProps<{
17
+ disableValidation?: boolean;
18
+ }>();
19
+
16
20
  const model = defineModel<boolean | null>();
17
21
 
18
22
  const v$ = useVuelidate(
@@ -29,8 +33,7 @@ const v$ = useVuelidate(
29
33
  },
30
34
  );
31
35
 
32
- v$.value.$touch();
33
-
36
+ if (!props?.disableValidation) v$.value.$touch();
34
37
  const emit = defineEmits<{
35
38
  'update:invalid': [
36
39
  boolean,
@@ -3,7 +3,7 @@
3
3
  :label="t('webitelUI.filters.filterValue')"
4
4
  :search-method="searchMethod"
5
5
  :model-value="model"
6
- :v="v$.model"
6
+ :v="!disableValidation && v$.model"
7
7
  option-value="id"
8
8
  @update:model-value="handleInput"
9
9
  />
@@ -20,6 +20,10 @@ import { searchMethod } from './config.js';
20
20
 
21
21
  type ModelValue = number[];
22
22
 
23
+ const props = defineProps<{
24
+ disableValidation?: boolean;
25
+ }>();
26
+
23
27
  const model = defineModel<ModelValue>();
24
28
 
25
29
  const emit = defineEmits<{
@@ -42,8 +46,7 @@ const v$ = useVuelidate(
42
46
  $autoDirty: true,
43
47
  },
44
48
  );
45
- v$.value.$touch();
46
-
49
+ if (!props?.disableValidation) v$.value.$touch();
47
50
  watch(
48
51
  () => v$.value.$invalid,
49
52
  (invalid) => {
@@ -3,7 +3,7 @@
3
3
  <wt-input-number
4
4
  :label="`${t('reusable.from')}:`"
5
5
  :placeholder="t('webitelUI.filters.filterValue')"
6
- :v="vFrom"
6
+ :v="!disableValidation && vFrom"
7
7
  :model-value="value.from"
8
8
  class="rating-from-to-filter-value-field__input"
9
9
  @update:model-value="handleInput('from', $event)"
@@ -12,7 +12,7 @@
12
12
  <wt-input-number
13
13
  :label="`${t('reusable.to')}:`"
14
14
  :placeholder="t('webitelUI.filters.filterValue')"
15
- :v="vTo"
15
+ :v="!disableValidation && vTo"
16
16
  :model-value="value.to"
17
17
  class="rating-from-to-filter-value-field__input"
18
18
  @update:model-value="handleInput('to', $event)"
@@ -26,6 +26,10 @@ import { maxValue, requiredIf } from '@vuelidate/validators';
26
26
  import { computed, watch } from 'vue';
27
27
  import { useI18n } from 'vue-i18n';
28
28
 
29
+ const props = defineProps<{
30
+ disableValidation?: boolean;
31
+ }>();
32
+
29
33
  type ModelValue = {
30
34
  from: number | null;
31
35
  to: number | null;
@@ -80,8 +84,7 @@ const v$ = useVuelidate<{
80
84
  $autoDirty: true,
81
85
  },
82
86
  );
83
- v$.value.$touch();
84
-
87
+ if (!props?.disableValidation) v$.value.$touch();
85
88
  const vFrom = computed(() => {
86
89
  const modelValidation = v$.value.model;
87
90
  if (!modelValidation) return undefined;
@@ -4,7 +4,7 @@
4
4
  :model-value="value.from"
5
5
  :max="props.numberMax"
6
6
  :min="0"
7
- :v="vFrom"
7
+ :v="!disableValidation && vFrom"
8
8
  :label="`${t('reusable.from')}:`"
9
9
  :placeholder="t('webitelUI.filters.filterValue')"
10
10
  class="score-from-to-filter-value-field__input"
@@ -16,7 +16,7 @@
16
16
  :model-value="value.to"
17
17
  :max="props.numberMax"
18
18
  :min="0"
19
- :v="vTo"
19
+ :v="!disableValidation && vTo"
20
20
  :label="`${t('reusable.to')}:`"
21
21
  :placeholder="t('webitelUI.filters.filterValue')"
22
22
  class="score-from-to-filter-value-field__input"
@@ -54,6 +54,7 @@ const value = computed<ModelValue>(
54
54
  const props = withDefaults(
55
55
  defineProps<{
56
56
  numberMax?: number;
57
+ disableValidation?: boolean;
57
58
  }>(),
58
59
  {
59
60
  numberMax: 100,
@@ -88,8 +89,7 @@ const v$ = useVuelidate<{
88
89
  $autoDirty: true,
89
90
  },
90
91
  );
91
- v$.value.$touch();
92
-
92
+ if (!props?.disableValidation) v$.value.$touch();
93
93
  const vFrom = computed(() => {
94
94
  const modelValidation = v$.value.model;
95
95
  if (!modelValidation) return undefined;