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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "v-sistec-features",
3
3
  "private": false,
4
- "version": "1.31.2",
4
+ "version": "1.31.4",
5
5
  "author": "Márlon Bento Azevedo (https://github.com/marlon-bento)",
6
6
  "repository": {
7
7
  "type": "git",
@@ -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
- import { defaultDataTableConfig } from '@/DatatableVue/config/datatableDefaults';
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
- Constante que define as props do componente com seus valores padrão.
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 = withDefaults(defineProps<VDataTableProps>(), defaultDataTableConfig as any);
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 as unknown as VDataTableProps);
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
- // 1. Filtramos as props do componente para remover tudo que for "undefined".
21
- // Se não fizermos isso, uma prop undefined vai esmagar a configuração global na hora de mesclar.
22
- const propsPassadasPeloUsuario = Object.fromEntries(
23
- Object.entries(props).filter(([_, valor]) => valor !== undefined)
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
- ...propsPassadasPeloUsuario // 3º Camada: Prioridade Máxima (O que o dev digitou na tela)
38
+ ...propsPassadas // 3º Camada: Prioridade Máxima (O que o dev digitou na tela)
33
39
  } as DataTablePropsWithDefaults;
34
40
  });
35
41