@webitel/ui-sdk 3.2.19 → 3.2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-sdk",
3
- "version": "3.2.19",
3
+ "version": "3.2.21",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve-lib": "vue-cli-service serve",
@@ -64,7 +64,6 @@ export default {
64
64
  default: 1000,
65
65
  },
66
66
  },
67
- emits: ['change', 'input', 'prev', 'next'],
68
67
  model: {
69
68
  prop: 'size',
70
69
  event: 'change',
@@ -95,7 +95,7 @@ export default {
95
95
  computed: {
96
96
  changeableDraft() {
97
97
  return this.draft.filter((header) => !this.staticHeaders.includes(header.value)).sort((a, b) => {
98
- return this.$t(a.locale).localeCompare(this.$t(b.locale));
98
+ return this.shownColLabel(a).localeCompare(this.shownColLabel(b));
99
99
  // sorting headers for alphabet just in popup
100
100
  });
101
101
  },
@@ -8,6 +8,10 @@ export default class TableStoreModule extends BaseStoreModule {
8
8
  state = {
9
9
  headers: [],
10
10
  dataList: [],
11
+ size: 10,
12
+ search: '',
13
+ page: 1,
14
+ sort: '',
11
15
  error: {},
12
16
  isLoading: false,
13
17
  isNextPage: false,
@@ -27,15 +31,15 @@ export default class TableStoreModule extends BaseStoreModule {
27
31
  },
28
32
 
29
33
  // main GET_LIST params collector
30
- GET_LIST_PARAMS: (state, getters) => (overrideFilters) => {
34
+ GET_LIST_PARAMS: (state, getters) => (query) => {
31
35
  const fields = getters.FIELDS.concat(getters.REQUIRED_FIELDS);
32
36
 
33
37
  const filters = getters.GET_FILTERS || getters['filters/GET_FILTERS'];
34
38
 
35
39
  return {
40
+ ...query,
36
41
  ...filters,
37
42
  fields,
38
- ...overrideFilters,
39
43
  };
40
44
  },
41
45
  };
@@ -46,6 +50,13 @@ export default class TableStoreModule extends BaseStoreModule {
46
50
  AFTER_SET_DATA_LIST_HOOK: (context, { items, next }) => ({ items, next }),
47
51
 
48
52
  LOAD_DATA_LIST: async (context, query) => {
53
+ /*
54
+ https://my.webitel.com/browse/WTEL-3560
55
+ preventively disable isNext to handle case when user is clicking
56
+ "next" faster than actual request is made
57
+ */
58
+ context.commit('SET_IS_NEXT', false);
59
+
49
60
  const params = context.getters.GET_LIST_PARAMS(query);
50
61
  try {
51
62
  context.commit('SET_LOADING', true);
@@ -1,61 +0,0 @@
1
- <template>
2
- <wt-pagination
3
- :next="isNext"
4
- :prev="page > 1"
5
- :size="localSize"
6
- debounce
7
- @input="localSize = $event"
8
- @change="setSize(localSize)"
9
- @next="setPage(page - 1)"
10
- @prev="setPage(+page + 1)"
11
- ></wt-pagination>
12
- </template>
13
-
14
- <script setup>
15
- import { computed, ref, watch } from 'vue';
16
- import { useStore } from 'vuex';
17
- import getNamespacedState from '../../../store/helpers/getNamespacedState';
18
-
19
- const props = defineProps({
20
- namespace: {
21
- type: String,
22
- required: true,
23
- },
24
- isNext: {
25
- type: Boolean,
26
- default: false,
27
- },
28
- });
29
-
30
- const pageFilterName = 'page';
31
- const sizeFilterName = 'size';
32
-
33
- const store = useStore();
34
-
35
- const localSize = ref(0);
36
-
37
- const page = computed(() => getNamespacedState(store.state, props.namespace)[pageFilterName].value);
38
- const size = computed(() => getNamespacedState(store.state, props.namespace)[sizeFilterName].value);
39
-
40
- function setFilter(payload) {
41
- return store.dispatch(`${props.namespace}/SET_FILTER`, payload);
42
- }
43
-
44
- function setPage(value) {
45
- return setFilter({ value, filter: pageFilterName });
46
- }
47
-
48
- function setSize(value) {
49
- if (value === size.value) return;
50
- // eslint-disable-next-line consistent-return
51
- return setFilter({ value, filter: sizeFilterName });
52
- }
53
-
54
- watch(size, () => {
55
- localSize.value = size.value;
56
- }, { immediate: true });
57
- </script>
58
-
59
- <style lang="scss" scoped>
60
-
61
- </style>
@@ -1,98 +0,0 @@
1
- import deepEqual from 'deep-equal';
2
- import isEmpty from '../../../scripts/isEmpty';
3
- import BaseStoreModule from '../../../store/BaseStoreModules/BaseStoreModule';
4
-
5
- export default class FiltersStoreModule extends BaseStoreModule {
6
- getters = {
7
- GET_FILTERS: (state, getters) => Object.keys(state)
8
- .reduce((filters, filterKey) => {
9
- const filterValue = getters.GET_FILTER(filterKey);
10
- return isEmpty(filterValue) ? filters : {
11
- ...filters,
12
- [filterKey]: filterValue,
13
- };
14
- }, {}),
15
- GET_FILTER: (state) => (filter) => {
16
- if (!state[filter]) return null;
17
- const { value, storedProp, multiple } = state[filter];
18
- if (multiple) return value.map((item) => item[storedProp]); // if arr, map
19
- if (storedProp) return value[storedProp]; // if object and has specific prop, return this prop
20
- return value; // else return val
21
- },
22
- GET_VALUE_FROM_QUERY: (state, getters) => ({ filterQuery }) => (
23
- getters.ROUTER.currentRoute.value.query[filterQuery]
24
- ),
25
- };
26
-
27
- actions = {
28
- SET_FILTER: async (context, { filter, value }) => {
29
- const { multiple, defaultValue } = context.state[filter];
30
- let newValue = value;
31
- if (newValue) {
32
- if (multiple && !Array.isArray(newValue)) newValue = [newValue];
33
- } else if (newValue === null || newValue ===
34
- undefined) newValue = defaultValue;
35
- await context.dispatch('SET_VALUE_TO_QUERY', {
36
- filterQuery: filter,
37
- value,
38
- storedProp: context.state[filter].storedProp,
39
- });
40
- context.commit('SET_FILTER', { filter, value: newValue });
41
- },
42
- SET_VALUE_TO_QUERY: async (
43
- context,
44
- { filterQuery, value, storedProp = 'id' },
45
- ) => {
46
- let newValue = '';
47
- if (Array.isArray(value)) {
48
- if (value.length && typeof value[0] !== 'object') {
49
- newValue = value;
50
- } else {
51
- newValue = value.map((item) => item[storedProp]);
52
- }
53
- } else if (typeof value === 'object' && value !== null) {
54
- newValue = value[storedProp];
55
- } else {
56
- newValue = value;
57
- }
58
-
59
- return context.dispatch('CHANGE_ROUTE_QUERY', ({
60
- value: newValue,
61
- filterQuery,
62
- }));
63
- },
64
- CHANGE_ROUTE_QUERY: (context, { value, filterQuery }) => {
65
- if (deepEqual(context.getters.GET_VALUE_FROM_QUERY({ filterQuery }), value)) return;
66
- const query = { ...context.getters.ROUTER.currentRoute.value.query };
67
- query[filterQuery] = value;
68
- // eslint-disable-next-line consistent-return
69
- return context.getters.ROUTER.replace({
70
- name: context.getters.ROUTER.currentRoute.value.name,
71
- query,
72
- });
73
- },
74
- // eslint-disable-next-line consistent-return
75
- RESTORE_FILTER: (context, { filter }) => {
76
- const value = context.getters.GET_VALUE_FROM_QUERY({ filterQuery: filter });
77
- if (value) return context.dispatch('SET_FILTER', ({ filter, value }));
78
- },
79
- RESTORE_FILTERS: (context) => {
80
- Object.keys(context.state)
81
- .forEach((filter) => context.dispatch('RESTORE_FILTER', { filter }));
82
- },
83
- RESET_FILTERS: (context) => {
84
- context.commit('RESET_FILTERS');
85
- },
86
- };
87
-
88
- mutations = {
89
- SET_FILTER: (state, { filter, value }) => {
90
- state[filter].value = value;
91
- },
92
- RESET_FILTERS: (state) => {
93
- Object.keys(state).forEach((filter) => {
94
- state[filter].value = state[filter].defaultValue;
95
- });
96
- },
97
- };
98
- }