@webitel/ui-datalist 1.0.16 → 1.0.17

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 (26) hide show
  1. package/package.json +1 -1
  2. package/src/modules/filter-presets/components/_shared/preset-filters-preview.vue +2 -2
  3. package/src/modules/filter-presets/components/apply-preset/apply-preset-action.vue +2 -2
  4. package/src/modules/filter-presets/components/apply-preset/preset-preview.vue +2 -2
  5. package/src/modules/filter-presets/components/save-preset/save-preset-action.vue +2 -2
  6. package/src/modules/filter-presets/components/save-preset/save-preset-popup.vue +2 -2
  7. package/src/modules/filters/components/config/dynamic-filter-config-form-value-input.vue +2 -2
  8. package/src/modules/filters/components/preview/dynamic-filter-preview.vue +2 -2
  9. package/src/modules/filters/components/table-filters-panel.vue +2 -2
  10. package/src/modules/filters/modules/filterConfig/classes/FilterConfig.ts +6 -2
  11. package/src/modules/filters/modules/filterConfig/classes/createFilterConfig.ts +9 -9
  12. package/src/modules/filters/modules/filterConfig/index.ts +2 -0
  13. package/src/modules/filters/modules/filterConfig/types/FilterConfigDefinition.ts +4 -0
  14. package/types/modules/filter-presets/components/_shared/preset-filters-preview.vue.d.ts +2 -2
  15. package/types/modules/filter-presets/components/apply-preset/apply-preset-action.vue.d.ts +2 -2
  16. package/types/modules/filter-presets/components/apply-preset/preset-preview.vue.d.ts +2 -2
  17. package/types/modules/filter-presets/components/save-preset/save-preset-action.vue.d.ts +2 -2
  18. package/types/modules/filter-presets/components/save-preset/save-preset-popup.vue.d.ts +2 -2
  19. package/types/modules/filters/components/config/dynamic-filter-config-form-value-input.vue.d.ts +2 -2
  20. package/types/modules/filters/components/preview/dynamic-filter-preview.vue.d.ts +2 -2
  21. package/types/modules/filters/components/table-filters-panel.vue.d.ts +2 -2
  22. package/types/modules/filters/modules/filterConfig/classes/FilterConfig.d.ts +5 -3
  23. package/types/modules/filters/modules/filterConfig/classes/createFilterConfig.d.ts +2 -2
  24. package/types/modules/filters/modules/filterConfig/components/index.d.ts +1 -1
  25. package/types/modules/filters/modules/filterConfig/index.d.ts +2 -0
  26. package/types/modules/filters/modules/filterConfig/types/FilterConfigDefinition.d.ts +3 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-datalist",
3
- "version": "1.0.16",
3
+ "version": "1.0.17",
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",
@@ -25,11 +25,11 @@ import type {IFiltersManager} from '../../../filters';
25
25
  import DynamicFilterPanelWrapper from '../../../filters/components/dynamic-filter-panel-wrapper.vue';
26
26
  import DynamicFilterPreview from '../../../filters/components/preview/dynamic-filter-preview.vue';
27
27
  import { useFilterConfigsToolkit } from "../../../filters/composables/useFilterConfigsToolkit";
28
- import {TFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
28
+ import {AnyFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
29
29
 
30
30
  const props = defineProps<{
31
31
  filtersManager: IFiltersManager;
32
- filterConfigs: TFilterConfig[];
32
+ filterConfigs: AnyFilterConfig[];
33
33
  }>();
34
34
 
35
35
  const { t } = useI18n();
@@ -83,7 +83,7 @@ import { computed, inject, ref, watch } from 'vue';
83
83
  import { useI18n } from 'vue-i18n';
84
84
  import { EnginePresetQuery } from 'webitel-sdk';
85
85
 
86
- import {TFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
86
+ import {AnyFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
87
87
  import PresetQueryAPI from '../../api/PresetQuery.ts';
88
88
  import PresetPreview from './preset-preview.vue';
89
89
 
@@ -93,7 +93,7 @@ const props = defineProps<{
93
93
  */
94
94
  namespace: string;
95
95
  usePresetsStore: Store;
96
- filterConfigs: TFilterConfig[];
96
+ filterConfigs: AnyFilterConfig[];
97
97
  }>();
98
98
 
99
99
  const emit = defineEmits<{
@@ -89,7 +89,7 @@ import { computed, ref } from 'vue';
89
89
  import { EnginePresetQuery } from 'webitel-sdk';
90
90
 
91
91
  import { createFiltersManager } from '../../../filters';
92
- import {TFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
92
+ import {AnyFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
93
93
  import PresetDescriptionField from '../_shared/input-fields/preset-description-field.vue';
94
94
  import PresetNameField from '../_shared/input-fields/preset-name-field.vue';
95
95
  import PresetFiltersPreview from '../_shared/preset-filters-preview.vue';
@@ -98,7 +98,7 @@ type Props = {
98
98
  preset: EnginePresetQuery;
99
99
  isSelected: boolean;
100
100
  collapsed: boolean;
101
- filterConfigs: TFilterConfig[];
101
+ filterConfigs: AnyFilterConfig[];
102
102
  };
103
103
 
104
104
  const props = defineProps<Props>();
@@ -41,7 +41,7 @@ import {
41
41
  createFiltersManager, FilterName,
42
42
  IFiltersManager,
43
43
  } from '../../../filters';
44
- import {TFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
44
+ import {AnyFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
45
45
  import {
46
46
  addPreset,
47
47
  getPresetList,
@@ -66,7 +66,7 @@ const props = defineProps<{
66
66
  * include in preset only filter values related to filters panel
67
67
  */
68
68
  filtersIncluded: FilterName[];
69
- filterConfigs: TFilterConfig[];
69
+ filterConfigs: AnyFilterConfig[];
70
70
  }>();
71
71
 
72
72
  const eventBus = inject('$eventBus');
@@ -57,7 +57,7 @@ import { useI18n } from 'vue-i18n';
57
57
  import { EnginePresetQuery } from 'webitel-sdk';
58
58
 
59
59
  import type { IFiltersManager } from '../../../filters';
60
- import {TFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
60
+ import {AnyFilterConfig} from "../../../filters/modules/filterConfig/classes/FilterConfig";
61
61
  import PresetDescriptionField from '../_shared/input-fields/preset-description-field.vue';
62
62
  import PresetNameField from '../_shared/input-fields/preset-name-field.vue';
63
63
  import PresetFiltersPreview from '../_shared/preset-filters-preview.vue';
@@ -74,7 +74,7 @@ const props = defineProps<{
74
74
  * is needed here for `.toString()`
75
75
  */
76
76
  filtersManager: IFiltersManager;
77
- filterConfigs: TFilterConfig[];
77
+ filterConfigs: AnyFilterConfig[];
78
78
  }>();
79
79
 
80
80
  const emit = defineEmits<{
@@ -9,12 +9,12 @@
9
9
  </template>
10
10
 
11
11
  <script setup lang="ts">
12
- import {TFilterConfig} from "../../modules/filterConfig/classes/FilterConfig";
12
+ import {AnyFilterConfig} from "../../modules/filterConfig/classes/FilterConfig";
13
13
 
14
14
  const filterValue = defineModel<unknown>();
15
15
 
16
16
  const props = defineProps<{
17
- filterConfig: TFilterConfig;
17
+ filterConfig: AnyFilterConfig;
18
18
  label?: string;
19
19
  }>();
20
20
 
@@ -73,7 +73,7 @@ import { computed,ref } from 'vue';
73
73
  import { useI18n } from 'vue-i18n';
74
74
 
75
75
  import {FilterData, IFilter} from "../../classes/Filter";
76
- import {TFilterConfig} from "../../modules/filterConfig/classes/FilterConfig";
76
+ import {AnyFilterConfig} from "../../modules/filterConfig/classes/FilterConfig";
77
77
  import {
78
78
  FilterOptionToPreviewApiSearchMethodMap,
79
79
  } from '../../modules/filterConfig/components';
@@ -87,7 +87,7 @@ interface Props {
87
87
  * @description
88
88
  * this filter config
89
89
  */
90
- filterConfig: TFilterConfig;
90
+ filterConfig: AnyFilterConfig;
91
91
  readonly?: boolean;
92
92
  }
93
93
 
@@ -57,7 +57,7 @@ import { ApplyPresetAction, SavePresetAction } from '../../filter-presets';
57
57
  import {FilterData, IFilter} from "../classes/Filter";
58
58
  import {IFiltersManager} from "../classes/FiltersManager";
59
59
  import {useFilterConfigsToolkit} from "../composables/useFilterConfigsToolkit";
60
- import {TFilterConfig} from "../modules/filterConfig/classes/FilterConfig";
60
+ import {AnyFilterConfig} from "../modules/filterConfig/classes/FilterConfig";
61
61
  import { FilterOption } from '../modules/filterConfig/enums/FilterOption';
62
62
  import DynamicFilterAddAction from './dynamic-filter-add-action.vue';
63
63
  import DynamicFilterPanelWrapper from './dynamic-filter-panel-wrapper.vue';
@@ -68,7 +68,7 @@ type Props = {
68
68
  * @description
69
69
  * available filter options to set
70
70
  */
71
- filterOptions: (FilterOption | TFilterConfig)[];
71
+ filterOptions: (FilterOption | AnyFilterConfig)[];
72
72
  /**
73
73
  * @description
74
74
  * create local filters manager from snapshot
@@ -8,12 +8,14 @@ export interface BaseFilterConfig {
8
8
  valueInputComponent: Component;
9
9
  valuePreviewComponent: Component;
10
10
  label?: ReturnType<MessageResolver> | string;
11
+ notDeletable?: boolean;
11
12
  }
12
13
 
13
14
  export type FilterConfigBaseParams = {
14
15
  name?: FilterName;
15
16
  valueInputComponent?: Component;
16
17
  valuePreviewComponent?: Component;
18
+ notDeletable?: boolean;
17
19
  };
18
20
 
19
21
  export interface IWtSysTypeFilterConfig extends BaseFilterConfig {
@@ -39,24 +41,26 @@ export type FilterConfigSearchMethodParams = [
39
41
  },
40
42
  ];
41
43
 
42
- export type TFilterConfig = IWtSysTypeFilterConfig | BaseFilterConfig;
44
+ export type AnyFilterConfig = IWtSysTypeFilterConfig | BaseFilterConfig;
43
45
 
44
46
  export class FilterConfig implements BaseFilterConfig {
45
47
  name: FilterName;
46
48
  valueInputComponent: Component;
47
49
  valuePreviewComponent: Component;
48
50
  label?: ReturnType<MessageResolver> | string;
49
- notDeletable?: boolean;
51
+ notDeletable: boolean;
50
52
 
51
53
  constructor({
52
54
  name,
53
55
  valueInputComponent,
54
56
  valuePreviewComponent,
57
+ notDeletable,
55
58
  }: FilterConfigBaseParams = {}) {
56
59
  if (name) this.name = name;
57
60
  if (valueInputComponent) this.valueInputComponent = valueInputComponent;
58
61
  if (valuePreviewComponent)
59
62
  this.valuePreviewComponent = valuePreviewComponent;
63
+ this.notDeletable = !!notDeletable;
60
64
  }
61
65
  }
62
66
 
@@ -9,22 +9,22 @@ import {
9
9
  FilterConfigBaseParams,
10
10
  } from './FilterConfig';
11
11
 
12
- export const createFilterConfig = ({
13
- name,
14
- }: Partial<FilterConfigBaseParams> &
15
- Pick<FilterConfigBaseParams, 'name'>): BaseFilterConfig => {
12
+ export const createFilterConfig = (
13
+ params: BaseFilterConfigParams &
14
+ Required<BaseFilterConfig, 'name'> &
15
+ Record<string, unknown>,
16
+ ): BaseFilterConfig => {
17
+ const { name } = params;
18
+
16
19
  const filterConfigClass = FilterOptionToFilterConfigCreatorMap[name];
17
20
 
18
21
  if (filterConfigClass) {
19
- return filterConfigClass();
22
+ return filterConfigClass(params);
20
23
  }
21
24
 
22
- /**
23
- * @author @dlohvinov
24
- * */
25
25
  return new FilterConfig({
26
- name,
27
26
  valueInputComponent: FilterOptionToValueComponentMap[name],
28
27
  valuePreviewComponent: FilterOptionToPreviewComponentMap[name],
28
+ ...params,
29
29
  });
30
30
  };
@@ -1,4 +1,6 @@
1
1
  export type * from './classes/FilterConfig';
2
+ export * from './types/DynamicFilterPreviewComponent';
3
+ export * from './types/FilterConfigDefinition';
2
4
 
3
5
  import { createFilterConfig } from './classes/createFilterConfig';
4
6
 
@@ -0,0 +1,4 @@
1
+ import { AnyFilterConfig } from '../classes/FilterConfig';
2
+ import { FilterOption } from '../enums/FilterOption';
3
+
4
+ export type FilterConfigDefinition = FilterOption | AnyFilterConfig;
@@ -1,8 +1,8 @@
1
1
  import type { IFiltersManager } from '../../../filters';
2
- import { TFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
2
+ import { AnyFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
3
3
  type __VLS_Props = {
4
4
  filtersManager: IFiltersManager;
5
- filterConfigs: TFilterConfig[];
5
+ filterConfigs: AnyFilterConfig[];
6
6
  };
7
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
8
  export default _default;
@@ -1,12 +1,12 @@
1
1
  import { type Store } from 'pinia';
2
- import { TFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
2
+ import { AnyFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
3
3
  type __VLS_Props = {
4
4
  /**
5
5
  * presets "section" namespace
6
6
  */
7
7
  namespace: string;
8
8
  usePresetsStore: Store;
9
- filterConfigs: TFilterConfig[];
9
+ filterConfigs: AnyFilterConfig[];
10
10
  };
11
11
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
12
  apply: (args_0: string) => any;
@@ -1,11 +1,11 @@
1
1
  import { AxiosError } from 'axios';
2
2
  import { EnginePresetQuery } from 'webitel-sdk';
3
- import { TFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
3
+ import { AnyFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
4
4
  type Props = {
5
5
  preset: EnginePresetQuery;
6
6
  isSelected: boolean;
7
7
  collapsed: boolean;
8
- filterConfigs: TFilterConfig[];
8
+ filterConfigs: AnyFilterConfig[];
9
9
  };
10
10
  declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
11
  "preset:select": (args_0: EnginePresetQuery) => any;
@@ -1,5 +1,5 @@
1
1
  import { FilterName, IFiltersManager } from '../../../filters';
2
- import { TFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
2
+ import { AnyFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
3
3
  type __VLS_Props = {
4
4
  /**
5
5
  * @description
@@ -16,7 +16,7 @@ type __VLS_Props = {
16
16
  * include in preset only filter values related to filters panel
17
17
  */
18
18
  filtersIncluded: FilterName[];
19
- filterConfigs: TFilterConfig[];
19
+ filterConfigs: AnyFilterConfig[];
20
20
  };
21
21
  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>;
22
22
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import { EnginePresetQuery } from 'webitel-sdk';
2
2
  import type { IFiltersManager } from '../../../filters';
3
- import { TFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
3
+ import { AnyFilterConfig } from "../../../filters/modules/filterConfig/classes/FilterConfig";
4
4
  export type SubmitConfig = {
5
5
  onSuccess?: () => void;
6
6
  onFailure?: (err: Error) => void;
@@ -12,7 +12,7 @@ type __VLS_Props = {
12
12
  * is needed here for `.toString()`
13
13
  */
14
14
  filtersManager: IFiltersManager;
15
- filterConfigs: TFilterConfig[];
15
+ filterConfigs: AnyFilterConfig[];
16
16
  };
17
17
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
18
  submit: (args_0: EnginePresetQuery, args_1?: SubmitConfig) => any;
@@ -1,6 +1,6 @@
1
- import { TFilterConfig } from "../../modules/filterConfig/classes/FilterConfig";
1
+ import { AnyFilterConfig } from "../../modules/filterConfig/classes/FilterConfig";
2
2
  type __VLS_Props = {
3
- filterConfig: TFilterConfig;
3
+ filterConfig: AnyFilterConfig;
4
4
  label?: string;
5
5
  };
6
6
  type __VLS_PublicProps = __VLS_Props & {
@@ -1,6 +1,6 @@
1
1
  import { WtChip, WtIconBtn, WtLoader, WtTooltip } from '@webitel/ui-sdk/components';
2
2
  import { FilterData, IFilter } from "../../classes/Filter";
3
- import { TFilterConfig } from "../../modules/filterConfig/classes/FilterConfig";
3
+ import { AnyFilterConfig } from "../../modules/filterConfig/classes/FilterConfig";
4
4
  import DynamicFilterConfigForm from '../config/dynamic-filter-config-form.vue';
5
5
  import DynamicFilterConfigView from '../config/dynamic-filter-config-view.vue';
6
6
  import DynamicFilterPreviewInfo from './dynamic-filter-preview-info.vue';
@@ -10,7 +10,7 @@ interface Props {
10
10
  * @description
11
11
  * this filter config
12
12
  */
13
- filterConfig: TFilterConfig;
13
+ filterConfig: AnyFilterConfig;
14
14
  readonly?: boolean;
15
15
  }
16
16
  declare const localValue: import("vue").Ref<any, any>;
@@ -2,14 +2,14 @@ import { Store } from 'pinia';
2
2
  import { WebitelProtoDataField } from "webitel-sdk";
3
3
  import { FilterData, IFilter } from "../classes/Filter";
4
4
  import { IFiltersManager } from "../classes/FiltersManager";
5
- import { TFilterConfig } from "../modules/filterConfig/classes/FilterConfig";
5
+ import { AnyFilterConfig } from "../modules/filterConfig/classes/FilterConfig";
6
6
  import { FilterOption } from '../modules/filterConfig/enums/FilterOption';
7
7
  type Props = {
8
8
  /**
9
9
  * @description
10
10
  * available filter options to set
11
11
  */
12
- filterOptions: (FilterOption | TFilterConfig)[];
12
+ filterOptions: (FilterOption | AnyFilterConfig)[];
13
13
  /**
14
14
  * @description
15
15
  * create local filters manager from snapshot
@@ -6,11 +6,13 @@ export interface BaseFilterConfig {
6
6
  valueInputComponent: Component;
7
7
  valuePreviewComponent: Component;
8
8
  label?: ReturnType<MessageResolver> | string;
9
+ notDeletable?: boolean;
9
10
  }
10
11
  export type FilterConfigBaseParams = {
11
12
  name?: FilterName;
12
13
  valueInputComponent?: Component;
13
14
  valuePreviewComponent?: Component;
15
+ notDeletable?: boolean;
14
16
  };
15
17
  export interface IWtSysTypeFilterConfig extends BaseFilterConfig {
16
18
  searchRecords: (params: FilterConfigSearchMethodParams) => Promise<{
@@ -34,14 +36,14 @@ export type FilterConfigSearchMethodParams = [
34
36
  filterConfig: BaseFilterConfig;
35
37
  }
36
38
  ];
37
- export type TFilterConfig = IWtSysTypeFilterConfig | BaseFilterConfig;
39
+ export type AnyFilterConfig = IWtSysTypeFilterConfig | BaseFilterConfig;
38
40
  export declare class FilterConfig implements BaseFilterConfig {
39
41
  name: FilterName;
40
42
  valueInputComponent: Component;
41
43
  valuePreviewComponent: Component;
42
44
  label?: ReturnType<MessageResolver> | string;
43
- notDeletable?: boolean;
44
- constructor({ name, valueInputComponent, valuePreviewComponent, }?: FilterConfigBaseParams);
45
+ notDeletable: boolean;
46
+ constructor({ name, valueInputComponent, valuePreviewComponent, notDeletable, }?: FilterConfigBaseParams);
45
47
  }
46
48
  /**
47
49
  * @author @dlohvinov
@@ -1,2 +1,2 @@
1
- import { BaseFilterConfig, FilterConfigBaseParams } from './FilterConfig';
2
- export declare const createFilterConfig: ({ name, }: Partial<FilterConfigBaseParams> & Pick<FilterConfigBaseParams, "name">) => BaseFilterConfig;
1
+ import { BaseFilterConfig } from './FilterConfig';
2
+ export declare const createFilterConfig: (params: BaseFilterConfigParams & Required<BaseFilterConfig, "name"> & Record<string, unknown>) => BaseFilterConfig;
@@ -121,6 +121,6 @@ export declare const FilterOptionToFilterConfigCreatorMap: {
121
121
  next?: boolean;
122
122
  }>;
123
123
  label?: ReturnType<import("vue-i18n").MessageResolver> | string;
124
- notDeletable?: boolean;
124
+ notDeletable: boolean;
125
125
  };
126
126
  };
@@ -1,3 +1,5 @@
1
1
  export type * from './classes/FilterConfig';
2
+ export * from './types/DynamicFilterPreviewComponent';
3
+ export * from './types/FilterConfigDefinition';
2
4
  import { createFilterConfig } from './classes/createFilterConfig';
3
5
  export { createFilterConfig };
@@ -0,0 +1,3 @@
1
+ import { AnyFilterConfig } from '../classes/FilterConfig';
2
+ import { FilterOption } from '../enums/FilterOption';
3
+ export type FilterConfigDefinition = FilterOption | AnyFilterConfig;