v-sistec-features 1.31.2 → 1.31.4
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
|
@@ -267,7 +267,7 @@ import VDataTableLoading from './VDataTableLoading.vue';
|
|
|
267
267
|
import VThDataTable from './VThDataTable.vue';
|
|
268
268
|
import { buildIcons } from '@/utils/svgFactory'
|
|
269
269
|
import { svgs } from '@/DatatableVue/style/svgs'
|
|
270
|
-
|
|
270
|
+
|
|
271
271
|
const icons = buildIcons(svgs)
|
|
272
272
|
/*
|
|
273
273
|
Variável responsável por indicar se o componente já foi totalmente montado no DOM.
|
|
@@ -285,12 +285,11 @@ const {
|
|
|
285
285
|
} = useImagePreview();
|
|
286
286
|
|
|
287
287
|
/*
|
|
288
|
-
|
|
289
|
-
Por que é usada: Recebe as propriedades enviadas pelo pai e previne que o Vue converta booleanos não declarados para false, aplicando nosso defaultDataTableConfig.
|
|
288
|
+
Propriedades do componente instanciadas de forma limpa.
|
|
290
289
|
*/
|
|
291
|
-
const props =
|
|
290
|
+
const props = defineProps<VDataTableProps>();
|
|
292
291
|
// mescla a prop com o padrão e o global definido pelo usuario
|
|
293
|
-
const { options } = useDataTableConfig(props
|
|
292
|
+
const { options } = useDataTableConfig(props);
|
|
294
293
|
|
|
295
294
|
const emit = defineEmits(['tradePage', 'beforeFetch', 'afterFetch', 'clickedClearSearch']);
|
|
296
295
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Responsável por mesclar as propriedades recebidas pelo componente VDataTable com a configuração global da aplicação.
|
|
4
4
|
========
|
|
5
5
|
*/
|
|
6
|
-
import { computed, inject } from 'vue';
|
|
6
|
+
import { computed, inject, getCurrentInstance } from 'vue';
|
|
7
7
|
import { DATA_TABLE_CONFIG } from '@/DatatableVue/config/datatableConfig';
|
|
8
8
|
import type { VDataTableProps, DataTablePropsWithDefaults } from '../types/v-data-table';
|
|
9
9
|
import { defaultDataTableConfig } from '@/DatatableVue/config/datatableDefaults';
|
|
@@ -15,13 +15,19 @@ Por que é usada: Limpa o componente principal, isolando a lógica de fallback d
|
|
|
15
15
|
*/
|
|
16
16
|
export function useDataTableConfig(props: VDataTableProps) {
|
|
17
17
|
const globalConfig = inject(DATA_TABLE_CONFIG, {});
|
|
18
|
-
|
|
18
|
+
/* Instância interna para acesso ao Virtual DOM e leitura crua dos atributos */
|
|
19
|
+
const instance = getCurrentInstance();
|
|
19
20
|
const options = computed<DataTablePropsWithDefaults>(() => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const rawProps = instance?.vnode.props || {};
|
|
22
|
+
const propsPassadas = Object.keys(props).reduce((acc, key) => {
|
|
23
|
+
const kebabKey = key.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
24
|
+
const snakeToKebab = key.replace(/_/g, '-');
|
|
25
|
+
|
|
26
|
+
if (key in rawProps || kebabKey in rawProps || snakeToKebab in rawProps) {
|
|
27
|
+
acc[key] = props[key as keyof VDataTableProps];
|
|
28
|
+
}
|
|
29
|
+
return acc;
|
|
30
|
+
}, {} as Record<string, any>);
|
|
25
31
|
|
|
26
32
|
// 2. O Merge Dinâmico!
|
|
27
33
|
// A ordem importa! O que vem por último sobrescreve o anterior.
|
|
@@ -29,7 +35,7 @@ export function useDataTableConfig(props: VDataTableProps) {
|
|
|
29
35
|
return {
|
|
30
36
|
...defaultDataTableConfig, // 1º Camada: Prioridade Mínima (Valores Padrão)
|
|
31
37
|
...globalConfig, // 2º Camada: Prioridade Média (Valores Globais definidos por quem usa o plugin)
|
|
32
|
-
...
|
|
38
|
+
...propsPassadas // 3º Camada: Prioridade Máxima (O que o dev digitou na tela)
|
|
33
39
|
} as DataTablePropsWithDefaults;
|
|
34
40
|
});
|
|
35
41
|
|