@imj_media/ui 1.2.3 → 1.2.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.
Files changed (166) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.esm.js +8877 -8145
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.js +8 -8
  5. package/dist/index.js.map +1 -1
  6. package/dist/modules/Filters/components/organisms/Filters.d.ts +1 -1
  7. package/dist/modules/Filters/components/organisms/Filters.d.ts.map +1 -1
  8. package/dist/modules/Header/components/organims/Header.d.ts +2 -25
  9. package/dist/modules/Header/components/organims/Header.d.ts.map +1 -1
  10. package/dist/modules/Icon/Icon.d.ts.map +1 -1
  11. package/dist/modules/IconFont/components/organims/IconFont.d.ts +6 -2
  12. package/dist/modules/IconFont/components/organims/IconFont.d.ts.map +1 -1
  13. package/dist/modules/InnerButton/index.d.ts +1 -1
  14. package/dist/modules/InnerButton/index.d.ts.map +1 -1
  15. package/dist/modules/Input/components/Input.d.ts.map +1 -1
  16. package/dist/modules/Input/stories/Input.stories.d.ts.map +1 -1
  17. package/dist/modules/Lists/components/organisms/List.d.ts +1 -1
  18. package/dist/modules/Lists/components/organisms/List.d.ts.map +1 -1
  19. package/dist/modules/Lists/stories/list.stories.d.ts.map +1 -1
  20. package/dist/modules/Pagination/components/organisms/Pagination.d.ts.map +1 -1
  21. package/dist/modules/Table/Table.d.ts.map +1 -1
  22. package/dist/modules/Table/Table.test.d.ts +2 -0
  23. package/dist/modules/Table/Table.test.d.ts.map +1 -0
  24. package/dist/modules/Table/components/atoms/ActionsCell.test.d.ts +2 -0
  25. package/dist/modules/Table/components/atoms/ActionsCell.test.d.ts.map +1 -0
  26. package/dist/modules/Table/components/atoms/AvatarsCell.test.d.ts +2 -0
  27. package/dist/modules/Table/components/atoms/AvatarsCell.test.d.ts.map +1 -0
  28. package/dist/modules/Table/components/atoms/ButtonCell.test.d.ts +2 -0
  29. package/dist/modules/Table/components/atoms/ButtonCell.test.d.ts.map +1 -0
  30. package/dist/modules/Table/components/atoms/CheckboxCell.test.d.ts +2 -0
  31. package/dist/modules/Table/components/atoms/CheckboxCell.test.d.ts.map +1 -0
  32. package/dist/modules/Table/components/atoms/DateCell.test.d.ts +2 -0
  33. package/dist/modules/Table/components/atoms/DateCell.test.d.ts.map +1 -0
  34. package/dist/modules/Table/components/atoms/DropdownCell.test.d.ts +2 -0
  35. package/dist/modules/Table/components/atoms/DropdownCell.test.d.ts.map +1 -0
  36. package/dist/modules/Table/components/atoms/FilterIcon.test.d.ts +2 -0
  37. package/dist/modules/Table/components/atoms/FilterIcon.test.d.ts.map +1 -0
  38. package/dist/modules/Table/components/atoms/IconCell.test.d.ts +2 -0
  39. package/dist/modules/Table/components/atoms/IconCell.test.d.ts.map +1 -0
  40. package/dist/modules/Table/components/atoms/LinkCell.test.d.ts +2 -0
  41. package/dist/modules/Table/components/atoms/LinkCell.test.d.ts.map +1 -0
  42. package/dist/modules/Table/components/atoms/PrimaryCell.test.d.ts +2 -0
  43. package/dist/modules/Table/components/atoms/PrimaryCell.test.d.ts.map +1 -0
  44. package/dist/modules/Table/components/atoms/ProgressBarCell.test.d.ts +2 -0
  45. package/dist/modules/Table/components/atoms/ProgressBarCell.test.d.ts.map +1 -0
  46. package/dist/modules/Table/components/atoms/SkeletonCell.d.ts.map +1 -1
  47. package/dist/modules/Table/components/atoms/SkeletonCell.test.d.ts +2 -0
  48. package/dist/modules/Table/components/atoms/SkeletonCell.test.d.ts.map +1 -0
  49. package/dist/modules/Table/components/atoms/StarsCell.test.d.ts +2 -0
  50. package/dist/modules/Table/components/atoms/StarsCell.test.d.ts.map +1 -0
  51. package/dist/modules/Table/components/atoms/StatusCell.test.d.ts +2 -0
  52. package/dist/modules/Table/components/atoms/StatusCell.test.d.ts.map +1 -0
  53. package/dist/modules/Table/components/atoms/TableCell.test.d.ts +2 -0
  54. package/dist/modules/Table/components/atoms/TableCell.test.d.ts.map +1 -0
  55. package/dist/modules/Table/components/atoms/TagsCell.test.d.ts +2 -0
  56. package/dist/modules/Table/components/atoms/TagsCell.test.d.ts.map +1 -0
  57. package/dist/modules/Table/components/atoms/TextFieldCell.test.d.ts +2 -0
  58. package/dist/modules/Table/components/atoms/TextFieldCell.test.d.ts.map +1 -0
  59. package/dist/modules/Table/components/molecules/CellRenderer.d.ts +3 -1
  60. package/dist/modules/Table/components/molecules/CellRenderer.d.ts.map +1 -1
  61. package/dist/modules/Table/components/molecules/CellRenderer.test.d.ts +2 -0
  62. package/dist/modules/Table/components/molecules/CellRenderer.test.d.ts.map +1 -0
  63. package/dist/modules/Table/components/molecules/FilterCard.test.d.ts +2 -0
  64. package/dist/modules/Table/components/molecules/FilterCard.test.d.ts.map +1 -0
  65. package/dist/modules/Table/components/molecules/FilterForm.test.d.ts +2 -0
  66. package/dist/modules/Table/components/molecules/FilterForm.test.d.ts.map +1 -0
  67. package/dist/modules/Table/components/molecules/FilterList.test.d.ts +2 -0
  68. package/dist/modules/Table/components/molecules/FilterList.test.d.ts.map +1 -0
  69. package/dist/modules/Table/components/molecules/HeaderCell.d.ts.map +1 -1
  70. package/dist/modules/Table/components/molecules/HeaderCell.test.d.ts +2 -0
  71. package/dist/modules/Table/components/molecules/HeaderCell.test.d.ts.map +1 -0
  72. package/dist/modules/Table/components/molecules/LogicOperatorSelector.test.d.ts +2 -0
  73. package/dist/modules/Table/components/molecules/LogicOperatorSelector.test.d.ts.map +1 -0
  74. package/dist/modules/Table/components/molecules/SelectionCheckbox.test.d.ts +2 -0
  75. package/dist/modules/Table/components/molecules/SelectionCheckbox.test.d.ts.map +1 -0
  76. package/dist/modules/Table/components/molecules/TableRow.d.ts.map +1 -1
  77. package/dist/modules/Table/components/molecules/TableRow.test.d.ts +2 -0
  78. package/dist/modules/Table/components/molecules/TableRow.test.d.ts.map +1 -0
  79. package/dist/modules/Table/components/organisms/EmptyTableState.d.ts.map +1 -1
  80. package/dist/modules/Table/components/organisms/EmptyTableState.test.d.ts +2 -0
  81. package/dist/modules/Table/components/organisms/EmptyTableState.test.d.ts.map +1 -0
  82. package/dist/modules/Table/components/organisms/FilterPopup.d.ts.map +1 -1
  83. package/dist/modules/Table/components/organisms/FilterPopup.test.d.ts +2 -0
  84. package/dist/modules/Table/components/organisms/FilterPopup.test.d.ts.map +1 -0
  85. package/dist/modules/Table/components/organisms/SkeletonRow.test.d.ts +2 -0
  86. package/dist/modules/Table/components/organisms/SkeletonRow.test.d.ts.map +1 -0
  87. package/dist/modules/Table/components/organisms/TableBody.test.d.ts +2 -0
  88. package/dist/modules/Table/components/organisms/TableBody.test.d.ts.map +1 -0
  89. package/dist/modules/Table/components/organisms/TableContent.test.d.ts +2 -0
  90. package/dist/modules/Table/components/organisms/TableContent.test.d.ts.map +1 -0
  91. package/dist/modules/Table/components/organisms/TableHeader.test.d.ts +2 -0
  92. package/dist/modules/Table/components/organisms/TableHeader.test.d.ts.map +1 -0
  93. package/dist/modules/Table/components/organisms/TableSelectionBar.test.d.ts +2 -0
  94. package/dist/modules/Table/components/organisms/TableSelectionBar.test.d.ts.map +1 -0
  95. package/dist/modules/Table/components/organisms/TableToolbar.d.ts.map +1 -1
  96. package/dist/modules/Table/components/organisms/TableToolbar.test.d.ts +2 -0
  97. package/dist/modules/Table/components/organisms/TableToolbar.test.d.ts.map +1 -0
  98. package/dist/modules/Table/hooks/useTableSelection.test.d.ts +2 -0
  99. package/dist/modules/Table/hooks/useTableSelection.test.d.ts.map +1 -0
  100. package/dist/modules/Table/hooks/useTableSort.test.d.ts +2 -0
  101. package/dist/modules/Table/hooks/useTableSort.test.d.ts.map +1 -0
  102. package/dist/modules/Table/index.d.ts +1 -0
  103. package/dist/modules/Table/index.d.ts.map +1 -1
  104. package/dist/modules/Table/queries/api/client.d.ts +43 -0
  105. package/dist/modules/Table/queries/api/client.d.ts.map +1 -0
  106. package/dist/modules/Table/queries/api/index.d.ts +4 -0
  107. package/dist/modules/Table/queries/api/index.d.ts.map +1 -0
  108. package/dist/modules/Table/queries/api/teams.api.d.ts +48 -0
  109. package/dist/modules/Table/queries/api/teams.api.d.ts.map +1 -0
  110. package/dist/modules/Table/queries/hooks/index.d.ts +6 -0
  111. package/dist/modules/Table/queries/hooks/index.d.ts.map +1 -0
  112. package/dist/modules/Table/queries/hooks/useDebounce.d.ts +31 -0
  113. package/dist/modules/Table/queries/hooks/useDebounce.d.ts.map +1 -0
  114. package/dist/modules/Table/queries/hooks/useTableQuery.d.ts +52 -0
  115. package/dist/modules/Table/queries/hooks/useTableQuery.d.ts.map +1 -0
  116. package/dist/modules/Table/queries/hooks/useTeams.d.ts +73 -0
  117. package/dist/modules/Table/queries/hooks/useTeams.d.ts.map +1 -0
  118. package/dist/modules/Table/queries/index.d.ts +33 -0
  119. package/dist/modules/Table/queries/index.d.ts.map +1 -0
  120. package/dist/modules/Table/queries/providers/QueryProvider.d.ts +44 -0
  121. package/dist/modules/Table/queries/providers/QueryProvider.d.ts.map +1 -0
  122. package/dist/modules/Table/queries/providers/index.d.ts +3 -0
  123. package/dist/modules/Table/queries/providers/index.d.ts.map +1 -0
  124. package/dist/modules/Table/queries/types/index.d.ts +3 -0
  125. package/dist/modules/Table/queries/types/index.d.ts.map +1 -0
  126. package/dist/modules/Table/queries/types/strapi.types.d.ts +96 -0
  127. package/dist/modules/Table/queries/types/strapi.types.d.ts.map +1 -0
  128. package/dist/modules/Table/queries/types/team.types.d.ts +60 -0
  129. package/dist/modules/Table/queries/types/team.types.d.ts.map +1 -0
  130. package/dist/modules/Table/queries/utils/filters.d.ts +32 -0
  131. package/dist/modules/Table/queries/utils/filters.d.ts.map +1 -0
  132. package/dist/modules/Table/queries/utils/index.d.ts +3 -0
  133. package/dist/modules/Table/queries/utils/index.d.ts.map +1 -0
  134. package/dist/modules/Table/queries/utils/normalizers.d.ts +39 -0
  135. package/dist/modules/Table/queries/utils/normalizers.d.ts.map +1 -0
  136. package/dist/modules/Table/stories/Table.stories.d.ts +8 -1
  137. package/dist/modules/Table/stories/Table.stories.d.ts.map +1 -1
  138. package/dist/modules/Table/stories/TableWithQuery.stories.d.ts +13 -0
  139. package/dist/modules/Table/stories/TableWithQuery.stories.d.ts.map +1 -0
  140. package/dist/modules/Table/utils/filterUtils.test.d.ts +2 -0
  141. package/dist/modules/Table/utils/filterUtils.test.d.ts.map +1 -0
  142. package/dist/modules/Table/utils/selection.test.d.ts +2 -0
  143. package/dist/modules/Table/utils/selection.test.d.ts.map +1 -0
  144. package/dist/modules/Table/utils/sorting.test.d.ts +2 -0
  145. package/dist/modules/Table/utils/sorting.test.d.ts.map +1 -0
  146. package/dist/shared/types/button.d.ts +3 -2
  147. package/dist/shared/types/button.d.ts.map +1 -1
  148. package/dist/shared/types/filters.d.ts +2 -1
  149. package/dist/shared/types/filters.d.ts.map +1 -1
  150. package/dist/shared/types/header.d.ts +25 -0
  151. package/dist/shared/types/header.d.ts.map +1 -0
  152. package/dist/shared/types/input.d.ts +3 -1
  153. package/dist/shared/types/input.d.ts.map +1 -1
  154. package/dist/shared/types/list.d.ts +1 -0
  155. package/dist/shared/types/list.d.ts.map +1 -1
  156. package/dist/shared/types/table.d.ts +3 -1
  157. package/dist/shared/types/table.d.ts.map +1 -1
  158. package/dist/shared/types/types.d.ts +1 -1
  159. package/dist/shared/types/types.d.ts.map +1 -1
  160. package/dist/shared/types/visual.d.ts +2 -2
  161. package/dist/shared/types/visual.d.ts.map +1 -1
  162. package/dist/test/setup.d.ts +1 -0
  163. package/dist/test/setup.d.ts.map +1 -0
  164. package/package.json +11 -3
  165. package/dist/modules/Table/stories/Table.test.d.ts +0 -1
  166. package/dist/modules/Table/stories/Table.test.d.ts.map +0 -1
@@ -0,0 +1,48 @@
1
+ import { TeamsApiResponse, TeamsQueryParams, TeamsQueryResult, Team } from '../types/team.types';
2
+ import { AdvancedFilterConfig } from '../../types/filter';
3
+ /**
4
+ * Obtiene la lista de equipos desde Strapi
5
+ * Retorna los datos en formato crudo de Strapi
6
+ */
7
+ export declare function fetchTeamsRaw(params?: TeamsQueryParams): Promise<TeamsApiResponse>;
8
+ /**
9
+ * Obtiene la lista de equipos normalizada
10
+ * Transforma los datos de Strapi a formato plano
11
+ */
12
+ export declare function fetchTeams(params?: TeamsQueryParams): Promise<TeamsQueryResult>;
13
+ /**
14
+ * Obtiene equipos usando filtros del formato AdvancedFilterConfig
15
+ * (El formato que usa el FilterPopup de la tabla)
16
+ */
17
+ export declare function fetchTeamsWithAdvancedFilters(advancedFilters: AdvancedFilterConfig[], params?: Omit<TeamsQueryParams, 'filters'>): Promise<TeamsQueryResult>;
18
+ /**
19
+ * Datos para actualizar un equipo
20
+ */
21
+ export interface UpdateTeamData {
22
+ nombre?: string;
23
+ color?: string;
24
+ }
25
+ /**
26
+ * Actualiza un equipo en Strapi
27
+ * @param id - ID del equipo
28
+ * @param data - Datos a actualizar
29
+ */
30
+ export declare function updateTeam(id: number, data: UpdateTeamData): Promise<Team>;
31
+ /**
32
+ * Actualiza el nombre de un equipo
33
+ * @param id - ID del equipo
34
+ * @param nombre - Nuevo nombre
35
+ */
36
+ export declare function updateTeamName(id: number, nombre: string): Promise<Team>;
37
+ /**
38
+ * Key factory para las queries de equipos
39
+ * Útil para invalidación y gestión de cache
40
+ */
41
+ export declare const teamsQueryKeys: {
42
+ all: readonly ["teams"];
43
+ lists: () => readonly ["teams", "list"];
44
+ list: (params?: TeamsQueryParams) => readonly ["teams", "list", TeamsQueryParams | undefined];
45
+ details: () => readonly ["teams", "detail"];
46
+ detail: (id: number) => readonly ["teams", "detail", number];
47
+ };
48
+ //# sourceMappingURL=teams.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams.api.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/api/teams.api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAkB,MAAM,qBAAqB,CAAA;AAMhH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAQzD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,oBAAoB,EAAE,EACvC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GACzC,OAAO,CAAC,gBAAgB,CAAC,CAa3B;AAsCD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;oBAGT,gBAAgB;;iBAEnB,MAAM;CACpB,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { useTeams, useTeamsWithFilters, useTeamsTable, useInvalidateTeams, useUpdateTeam, useUpdateTeamName, } from './useTeams';
2
+ export type { UseTeamsTableOptions, UpdateTeamVariables } from './useTeams';
3
+ export { useTableQueryState, useColumnsWithQueryState, } from './useTableQuery';
4
+ export type { TableQueryState, TableQueryActions, UseTableQueryStateOptions, } from './useTableQuery';
5
+ export { useDebouncedValue, useDebouncedCallback } from './useDebounce';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/hooks/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAEnB,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAG3E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Hook para hacer debounce de un valor
3
+ * Útil para búsquedas donde no queremos hacer una petición por cada tecla
4
+ *
5
+ * @param value - El valor a hacer debounce
6
+ * @param delay - El tiempo de espera en milisegundos (default: 300ms)
7
+ * @returns El valor con debounce aplicado
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * const [search, setSearch] = useState('')
12
+ * const debouncedSearch = useDebouncedValue(search, 300)
13
+ *
14
+ * // Usar debouncedSearch para hacer la petición
15
+ * useQuery({
16
+ * queryKey: ['search', debouncedSearch],
17
+ * queryFn: () => fetchData(debouncedSearch),
18
+ * })
19
+ * ```
20
+ */
21
+ export declare function useDebouncedValue<T>(value: T, delay?: number): T;
22
+ /**
23
+ * Hook para crear una función con debounce
24
+ * Útil cuando necesitas el callback en lugar del valor
25
+ *
26
+ * @param callback - La función a ejecutar con debounce
27
+ * @param delay - El tiempo de espera en milisegundos (default: 300ms)
28
+ * @returns La función con debounce aplicado
29
+ */
30
+ export declare function useDebouncedCallback<T extends (...args: any[]) => any>(callback: T, delay?: number): T;
31
+ //# sourceMappingURL=useDebounce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounce.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/hooks/useDebounce.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAE,MAAY,GAAG,CAAC,CAgBrE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACpE,QAAQ,EAAE,CAAC,EACX,KAAK,GAAE,MAAY,GAClB,CAAC,CAyBH"}
@@ -0,0 +1,52 @@
1
+ import { AdvancedFilterConfig } from '../../types/filter';
2
+ /**
3
+ * Estado de la tabla que se sincroniza con queries
4
+ */
5
+ export interface TableQueryState {
6
+ page: number;
7
+ pageSize: number;
8
+ sortField?: string;
9
+ sortDirection?: 'asc' | 'desc';
10
+ filters: AdvancedFilterConfig[];
11
+ search?: string;
12
+ }
13
+ /**
14
+ * Acciones para modificar el estado de la tabla
15
+ */
16
+ export interface TableQueryActions {
17
+ setPage: (page: number) => void;
18
+ setPageSize: (pageSize: number) => void;
19
+ setSort: (field: string | undefined, direction?: 'asc' | 'desc') => void;
20
+ setFilters: (filters: AdvancedFilterConfig[]) => void;
21
+ addFilter: (filter: AdvancedFilterConfig) => void;
22
+ removeFilter: (filterId: string) => void;
23
+ clearFilters: () => void;
24
+ setSearch: (search: string) => void;
25
+ reset: () => void;
26
+ }
27
+ /**
28
+ * Opciones iniciales para el estado de la tabla
29
+ */
30
+ export interface UseTableQueryStateOptions {
31
+ initialPage?: number;
32
+ initialPageSize?: number;
33
+ initialSortField?: string;
34
+ initialSortDirection?: 'asc' | 'desc';
35
+ initialFilters?: AdvancedFilterConfig[];
36
+ initialSearch?: string;
37
+ }
38
+ /**
39
+ * Hook para gestionar el estado de la tabla que se sincroniza con TanStack Query
40
+ * Maneja paginación, ordenamiento, filtros y búsqueda
41
+ */
42
+ export declare function useTableQueryState(options?: UseTableQueryStateOptions): TableQueryState & TableQueryActions;
43
+ /**
44
+ * Hook para convertir el estado de la tabla en columnas con estado de sort/filter
45
+ */
46
+ export declare function useColumnsWithQueryState<T extends {
47
+ id: string;
48
+ }>(columns: T[], state: Pick<TableQueryState, 'sortField' | 'sortDirection' | 'filters'>): (T & {
49
+ sortDirection: "asc" | "desc" | null | undefined;
50
+ filterActive: boolean;
51
+ })[];
52
+ //# sourceMappingURL=useTableQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableQuery.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/hooks/useTableQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,OAAO,EAAE,oBAAoB,EAAE,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAA;IACxE,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAA;IACjD,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oBAAoB,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACrC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAA;IACvC,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAA8B,GACtC,eAAe,GAAG,iBAAiB,CAuFrC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC/D,OAAO,EAAE,CAAC,EAAE,EACZ,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;;;KAcxE"}
@@ -0,0 +1,73 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ import { UpdateTeamData } from '../api/teams.api';
3
+ import { TeamsQueryParams, TeamsQueryResult, Team } from '../types/team.types';
4
+ import { AdvancedFilterConfig } from '../../types/filter';
5
+ /**
6
+ * Hook para obtener la lista de equipos con TanStack Query
7
+ */
8
+ export declare function useTeams(params?: TeamsQueryParams, options?: Omit<UseQueryOptions<TeamsQueryResult, Error>, 'queryKey' | 'queryFn'>): import('@tanstack/react-query').UseQueryResult<TeamsQueryResult, Error>;
9
+ /**
10
+ * Hook para obtener equipos con filtros avanzados del FilterPopup
11
+ */
12
+ export declare function useTeamsWithFilters(advancedFilters: AdvancedFilterConfig[], params?: Omit<TeamsQueryParams, 'filters'>, options?: Omit<UseQueryOptions<TeamsQueryResult, Error>, 'queryKey' | 'queryFn'>): import('@tanstack/react-query').UseQueryResult<TeamsQueryResult, Error>;
13
+ /**
14
+ * Hook que combina la tabla con TanStack Query
15
+ * Gestiona automáticamente paginación, ordenamiento y filtros
16
+ */
17
+ export interface UseTeamsTableOptions {
18
+ page?: number;
19
+ pageSize?: number;
20
+ sortField?: string;
21
+ sortDirection?: 'asc' | 'desc';
22
+ filters?: AdvancedFilterConfig[];
23
+ search?: string;
24
+ enabled?: boolean;
25
+ }
26
+ export declare function useTeamsTable(options?: UseTeamsTableOptions): {
27
+ data: Team[];
28
+ pagination: {
29
+ page: number;
30
+ pageSize: number;
31
+ pageCount: number;
32
+ total: number;
33
+ } | null;
34
+ isLoading: boolean;
35
+ isFetching: boolean;
36
+ isError: boolean;
37
+ error: Error | null;
38
+ isSuccess: boolean;
39
+ isPlaceholderData: boolean;
40
+ refetch: () => Promise<void>;
41
+ prefetchNextPage: () => void;
42
+ query: import('@tanstack/react-query').UseQueryResult<TeamsQueryResult, Error>;
43
+ };
44
+ /**
45
+ * Hook para invalidar el cache de equipos
46
+ */
47
+ export declare function useInvalidateTeams(): {
48
+ invalidateAll: () => Promise<void>;
49
+ invalidateLists: () => Promise<void>;
50
+ };
51
+ /**
52
+ * Variables para la mutación de actualización
53
+ */
54
+ export interface UpdateTeamVariables {
55
+ id: number;
56
+ data: UpdateTeamData;
57
+ }
58
+ type OptimisticContext = {
59
+ previousData: [readonly unknown[], unknown][];
60
+ };
61
+ /**
62
+ * Hook para actualizar un equipo con optimistic updates
63
+ */
64
+ export declare function useUpdateTeam(): import('@tanstack/react-query').UseMutationResult<Team, Error, UpdateTeamVariables, OptimisticContext>;
65
+ /**
66
+ * Hook para actualizar solo el nombre de un equipo con optimistic updates
67
+ */
68
+ export declare function useUpdateTeamName(): import('@tanstack/react-query').UseMutationResult<Team, Error, {
69
+ id: number;
70
+ nombre: string;
71
+ }, OptimisticContext>;
72
+ export {};
73
+ //# sourceMappingURL=useTeams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTeams.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/hooks/useTeams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,eAAe,EAAwC,MAAM,uBAAuB,CAAA;AACpI,OAAO,EAML,cAAc,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzD;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,CAAC,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,2EAQjF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,oBAAoB,EAAE,EACvC,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAC1C,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,2EAQjF;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB;;;;;;;;;;;;;;;;;EA2G/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB;;;EASjC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,cAAc,CAAA;CACrB;AAGD,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,CAAA;CAC9C,CAAA;AAED;;GAEG;AACH,wBAAgB,aAAa,2GA0C5B;AAED;;GAEG;AACH,wBAAgB,iBAAiB;QAGO,MAAM;YAAU,MAAM;sBAuC7D"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Table Queries Module
3
+ *
4
+ * Proporciona integración con TanStack Query para la tabla,
5
+ * incluyendo normalización de datos de Strapi y traducción de filtros.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { configureStrapiClient, useTeamsTable } from './queries'
10
+ *
11
+ * // Configurar cliente una vez al iniciar la app
12
+ * configureStrapiClient({
13
+ * baseUrl: 'https://api.example.com',
14
+ * token: 'your-token',
15
+ * })
16
+ *
17
+ * // Usar en componente
18
+ * function TeamsTable() {
19
+ * const { data, isLoading, pagination } = useTeamsTable({
20
+ * page: 1,
21
+ * pageSize: 10,
22
+ * })
23
+ *
24
+ * return <Table rows={data} ... />
25
+ * }
26
+ * ```
27
+ */
28
+ export * from './types';
29
+ export * from './utils';
30
+ export * from './api';
31
+ export * from './hooks';
32
+ export * from './providers';
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/Table/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,cAAc,SAAS,CAAA;AAGvB,cAAc,SAAS,CAAA;AAGvB,cAAc,OAAO,CAAA;AAGrB,cAAc,SAAS,CAAA;AAGvB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ import { ReactNode } from 'react';
3
+ /**
4
+ * Opciones de configuración para el QueryProvider
5
+ */
6
+ export interface QueryProviderOptions {
7
+ /**
8
+ * Tiempo en milisegundos que los datos se consideran frescos
9
+ * @default 1000 * 60 * 5 (5 minutos)
10
+ */
11
+ staleTime?: number;
12
+ /**
13
+ * Tiempo en milisegundos que los datos inactivos permanecen en cache
14
+ * @default 1000 * 60 * 30 (30 minutos)
15
+ */
16
+ gcTime?: number;
17
+ /**
18
+ * Número de reintentos en caso de error
19
+ * @default 3
20
+ */
21
+ retry?: number | boolean;
22
+ /**
23
+ * Si se debe refetch al enfocar la ventana
24
+ * @default true
25
+ */
26
+ refetchOnWindowFocus?: boolean;
27
+ }
28
+ interface QueryProviderProps extends QueryProviderOptions {
29
+ children: ReactNode;
30
+ }
31
+ /**
32
+ * Provider de TanStack Query configurado para la tabla
33
+ * Envuelve los componentes que necesitan acceso a queries
34
+ */
35
+ export declare function TableQueryProvider({ children, staleTime, // 5 minutos
36
+ gcTime, // 30 minutos
37
+ retry, refetchOnWindowFocus, }: QueryProviderProps): import("react/jsx-runtime").JSX.Element;
38
+ /**
39
+ * Crea un QueryClient con la configuración por defecto
40
+ * Útil cuando ya existe un QueryClientProvider en la app
41
+ */
42
+ export declare function createTableQueryClient(options?: QueryProviderOptions): QueryClient;
43
+ export {};
44
+ //# sourceMappingURL=QueryProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryProvider.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/providers/QueryProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAExB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,UAAU,kBAAmB,SAAQ,oBAAoB;IACvD,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,SAAyB,EAAE,YAAY;AACvC,MAAuB,EAAE,aAAa;AACtC,KAAS,EACT,oBAA2B,GAC5B,EAAE,kBAAkB,2CAoBpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,oBAAyB,eAkBxE"}
@@ -0,0 +1,3 @@
1
+ export { TableQueryProvider, createTableQueryClient, } from './QueryProvider';
2
+ export type { QueryProviderOptions } from './QueryProvider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export type { StrapiAttributes, StrapiItem, StrapiPagination, StrapiMeta, StrapiListResponse, StrapiSingleResponse, StrapiFilterOperator, StrapiFilter, StrapiQueryParams, StrapiClientConfig, } from './strapi.types';
2
+ export type { TeamAttributes, TeamsApiResponse, Team, TeamsQueryParams, TeamFilter, TeamFilterOperator, TeamsQueryResult, } from './team.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AAGvB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,IAAI,EACJ,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAA"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Tipos genéricos para respuestas de Strapi API
3
+ * @see https://docs.strapi.io/cms/api/rest/filters
4
+ */
5
+ /**
6
+ * Estructura base de atributos de Strapi
7
+ */
8
+ export interface StrapiAttributes {
9
+ createdAt: string;
10
+ updatedAt: string;
11
+ publishedAt?: string;
12
+ }
13
+ /**
14
+ * Estructura de un item individual de Strapi
15
+ */
16
+ export interface StrapiItem<T extends StrapiAttributes> {
17
+ id: number;
18
+ attributes: T;
19
+ }
20
+ /**
21
+ * Estructura de paginación de Strapi
22
+ */
23
+ export interface StrapiPagination {
24
+ page: number;
25
+ pageSize: number;
26
+ pageCount: number;
27
+ total: number;
28
+ }
29
+ /**
30
+ * Estructura de metadata de Strapi
31
+ */
32
+ export interface StrapiMeta {
33
+ pagination: StrapiPagination;
34
+ }
35
+ /**
36
+ * Estructura de respuesta de lista de Strapi
37
+ */
38
+ export interface StrapiListResponse<T extends StrapiAttributes> {
39
+ data: StrapiItem<T>[];
40
+ meta: StrapiMeta;
41
+ }
42
+ /**
43
+ * Estructura de respuesta de item único de Strapi
44
+ */
45
+ export interface StrapiSingleResponse<T extends StrapiAttributes> {
46
+ data: StrapiItem<T>;
47
+ meta: Record<string, unknown>;
48
+ }
49
+ /**
50
+ * Operadores de filtro de Strapi
51
+ * @see https://docs.strapi.io/cms/api/rest/filters
52
+ */
53
+ export type StrapiFilterOperator = '$eq' | '$eqi' | '$ne' | '$nei' | '$lt' | '$lte' | '$gt' | '$gte' | '$in' | '$notIn' | '$contains' | '$notContains' | '$containsi' | '$notContainsi' | '$null' | '$notNull' | '$between' | '$startsWith' | '$startsWithi' | '$endsWith' | '$endsWithi' | '$or' | '$and' | '$not';
54
+ /**
55
+ * Operadores de campo de Strapi
56
+ */
57
+ export type StrapiFieldOperator = '$eq' | '$eqi' | '$ne' | '$nei' | '$lt' | '$lte' | '$gt' | '$gte' | '$in' | '$notIn' | '$contains' | '$notContains' | '$containsi' | '$notContainsi' | '$null' | '$notNull' | '$between' | '$startsWith' | '$startsWithi' | '$endsWith' | '$endsWithi';
58
+ /**
59
+ * Estructura de filtro individual de Strapi
60
+ */
61
+ export type StrapiFilter = {
62
+ [field: string]: {
63
+ [operator in StrapiFieldOperator]?: unknown;
64
+ } | StrapiFilter;
65
+ } | {
66
+ $or?: StrapiFilter[];
67
+ $and?: StrapiFilter[];
68
+ $not?: StrapiFilter;
69
+ };
70
+ /**
71
+ * Parámetros de query para Strapi
72
+ */
73
+ export interface StrapiQueryParams {
74
+ filters?: StrapiFilter;
75
+ sort?: string | string[];
76
+ pagination?: {
77
+ page?: number;
78
+ pageSize?: number;
79
+ start?: number;
80
+ limit?: number;
81
+ withCount?: boolean;
82
+ };
83
+ populate?: string | string[] | Record<string, unknown>;
84
+ fields?: string[];
85
+ publicationState?: 'live' | 'preview';
86
+ locale?: string | string[];
87
+ }
88
+ /**
89
+ * Configuración del cliente de Strapi
90
+ */
91
+ export interface StrapiClientConfig {
92
+ baseUrl: string;
93
+ token: string;
94
+ defaultPageSize?: number;
95
+ }
96
+ //# sourceMappingURL=strapi.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strapi.types.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/types/strapi.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { StrapiAttributes, StrapiListResponse } from './strapi.types';
2
+ /**
3
+ * Atributos de un equipo en Strapi
4
+ */
5
+ export interface TeamAttributes extends StrapiAttributes {
6
+ nombre: string;
7
+ color: string;
8
+ }
9
+ /**
10
+ * Respuesta de la API de equipos (formato Strapi)
11
+ */
12
+ export type TeamsApiResponse = StrapiListResponse<TeamAttributes>;
13
+ /**
14
+ * Equipo normalizado (formato plano para usar en la tabla)
15
+ */
16
+ export interface Team {
17
+ id: number;
18
+ nombre: string;
19
+ color: string;
20
+ createdAt: Date;
21
+ updatedAt: Date;
22
+ }
23
+ /**
24
+ * Parámetros para la query de equipos
25
+ */
26
+ export interface TeamsQueryParams {
27
+ page?: number;
28
+ pageSize?: number;
29
+ sortField?: string;
30
+ sortDirection?: 'asc' | 'desc';
31
+ filters?: TeamFilter[];
32
+ search?: string;
33
+ }
34
+ /**
35
+ * Filtro individual para equipos
36
+ */
37
+ export interface TeamFilter {
38
+ field: keyof Team | string;
39
+ operator: TeamFilterOperator;
40
+ value: unknown;
41
+ value2?: unknown;
42
+ logicOperator?: 'and' | 'or';
43
+ }
44
+ /**
45
+ * Operadores de filtro disponibles para equipos
46
+ */
47
+ export type TeamFilterOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'gt' | 'gte' | 'lt' | 'lte' | 'between' | 'in' | 'isEmpty' | 'isNotEmpty' | 'afterDate' | 'beforeDate' | 'thisMonth' | 'lastMonth' | 'thisYear' | 'lastYear';
48
+ /**
49
+ * Resultado normalizado de la query de equipos
50
+ */
51
+ export interface TeamsQueryResult {
52
+ data: Team[];
53
+ pagination: {
54
+ page: number;
55
+ pageSize: number;
56
+ pageCount: number;
57
+ total: number;
58
+ };
59
+ }
60
+ //# sourceMappingURL=team.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.types.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/types/team.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,IAAI,GAAG,MAAM,CAAA;IAC1B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,WAAW,GACX,UAAU,GACV,aAAa,GACb,YAAY,GACZ,UAAU,GACV,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,SAAS,GACT,IAAI,GACJ,SAAS,GACT,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,GACX,WAAW,GACX,UAAU,GACV,UAAU,CAAA;AAEd;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,EAAE,CAAA;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF"}
@@ -0,0 +1,32 @@
1
+ import { StrapiFilter } from '../types/strapi.types';
2
+ import { TeamFilter } from '../types/team.types';
3
+ import { AdvancedFilterConfig } from '../../types/filter';
4
+ /**
5
+ * Convierte un filtro de la tabla a formato de filtro de Strapi
6
+ */
7
+ export declare function convertFilterToStrapi(filter: TeamFilter): StrapiFilter;
8
+ /**
9
+ * Convierte un filtro del formato AdvancedFilterConfig a TeamFilter
10
+ */
11
+ export declare function advancedFilterToTeamFilter(filter: AdvancedFilterConfig): TeamFilter;
12
+ /**
13
+ * Convierte múltiples filtros de la tabla a formato de query string de Strapi
14
+ * Maneja la lógica AND/OR entre filtros
15
+ */
16
+ export declare function convertFiltersToStrapiQuery(filters: TeamFilter[]): StrapiFilter;
17
+ /**
18
+ * Convierte filtros del formato AdvancedFilterConfig al formato de Strapi
19
+ */
20
+ export declare function convertAdvancedFiltersToStrapi(filters: AdvancedFilterConfig[]): StrapiFilter;
21
+ /**
22
+ * Genera la URL con query params para Strapi
23
+ * Usa el formato de filtros de Strapi: filters[field][$operator]=value
24
+ */
25
+ export declare function buildStrapiQueryString(params: {
26
+ filters?: StrapiFilter;
27
+ sort?: string;
28
+ sortDirection?: 'asc' | 'desc';
29
+ page?: number;
30
+ pageSize?: number;
31
+ }): string;
32
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/utils/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwB,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAsB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AA8EzD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CA8EtE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,UAAU,CAQnF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,CA+C/E;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,oBAAoB,EAAE,GAC9B,YAAY,CAGd;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,MAAM,CAuBT"}
@@ -0,0 +1,3 @@
1
+ export { normalizeStrаpiItem, normalizeStrapiList, transformTeamAttributes, normalizeTeamsResponse, createNormalizer, } from './normalizers';
2
+ export { convertFilterToStrapi, advancedFilterToTeamFilter, convertFiltersToStrapiQuery, convertAdvancedFiltersToStrapi, buildStrapiQueryString, } from './filters';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAGtB,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,WAAW,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { StrapiItem, StrapiAttributes, StrapiListResponse } from '../types/strapi.types';
2
+ import { Team, TeamAttributes, TeamsApiResponse, TeamsQueryResult } from '../types/team.types';
3
+ /**
4
+ * Normaliza un item de Strapi a un formato plano
5
+ * Combina el id con los attributes en un solo objeto
6
+ */
7
+ export declare function normalizeStrаpiItem<TAttributes extends StrapiAttributes, TResult extends {
8
+ id: number;
9
+ }>(item: StrapiItem<TAttributes>, transform: (id: number, attributes: TAttributes) => TResult): TResult;
10
+ /**
11
+ * Normaliza una lista de items de Strapi
12
+ */
13
+ export declare function normalizeStrapiList<TAttributes extends StrapiAttributes, TResult extends {
14
+ id: number;
15
+ }>(response: StrapiListResponse<TAttributes>, transform: (id: number, attributes: TAttributes) => TResult): TResult[];
16
+ /**
17
+ * Transforma los atributos de un equipo de Strapi a formato normalizado
18
+ */
19
+ export declare function transformTeamAttributes(id: number, attributes: TeamAttributes): Team;
20
+ /**
21
+ * Normaliza la respuesta completa de equipos de Strapi
22
+ * Incluye datos normalizados y paginación
23
+ */
24
+ export declare function normalizeTeamsResponse(response: TeamsApiResponse): TeamsQueryResult;
25
+ /**
26
+ * Normaliza una respuesta genérica de Strapi con un transformador personalizado
27
+ */
28
+ export declare function createNormalizer<TAttributes extends StrapiAttributes, TResult extends {
29
+ id: number;
30
+ }>(transform: (id: number, attributes: TAttributes) => TResult): (response: StrapiListResponse<TAttributes>) => {
31
+ data: TResult[];
32
+ pagination: {
33
+ page: number;
34
+ pageSize: number;
35
+ pageCount: number;
36
+ total: number;
37
+ };
38
+ };
39
+ //# sourceMappingURL=normalizers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizers.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Table/queries/utils/normalizers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE9F;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,SAAS,gBAAgB,EACpC,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAE9B,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAC7B,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,KAAK,OAAO,GAC1D,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,SAAS,gBAAgB,EACpC,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAE9B,QAAQ,EAAE,kBAAkB,CAAC,WAAW,CAAC,EACzC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,KAAK,OAAO,GAC1D,OAAO,EAAE,CAEX;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CAQpF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAUnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,SAAS,gBAAgB,EACpC,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9B,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,KAAK,OAAO,IACnD,UAAU,kBAAkB,CAAC,WAAW,CAAC;;;;;;;;EASlD"}
@@ -51,7 +51,6 @@ export declare const ColumnasRedimensionables: StoryObj<typeof Table>;
51
51
  */
52
52
  export declare const ColumnasBloqueadasYRedimensionables: StoryObj<typeof Table>;
53
53
  export declare const WithExternalControl: StoryObj<typeof Table>;
54
- export declare const WithAdvancedFilters: StoryObj<typeof Table>;
55
54
  /**
56
55
  * ## Tabla con Datos Reales
57
56
  *
@@ -86,4 +85,12 @@ export declare const PersistConfigExample: StoryObj<typeof Table>;
86
85
  * La selección es INTERNA - no requiere estado externo
87
86
  */
88
87
  export declare const ExpandableWithSelection: StoryObj<typeof Table>;
88
+ /**
89
+ * Historia para probar los diferentes estados vacíos de la tabla
90
+ */
91
+ export declare const EmptyStates: Story;
92
+ /**
93
+ * Historia para probar el estado de carga (skeleton) con diferentes configuraciones
94
+ */
95
+ export declare const LoadingState: Story;
89
96
  //# sourceMappingURL=Table.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.stories.d.ts","sourceRoot":"","sources":["../../../../src/modules/Table/stories/Table.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AA6JhC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CAoB5B,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAA;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAgBzB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAY5B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAmC3B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAkDtB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAenB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAezB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAOnB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAiB5B,CAAA;AAgHD,eAAO,MAAM,kBAAkB,EAAE,KAkIhC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAyJ7B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,OAAO,KAAK,CAkJjD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,OAAO,KAAK,CAsTjD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAsJ3D,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CAAC,OAAO,KAAK,CAkItE,CAAA;AAuID,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAEtD,CAAA;AAwID,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAEtD,CAAA;AAggBD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,KAAK,CAyL3C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAoTnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAiJrD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,OAAO,KAAK,CAmiBhD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAyHvD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,OAAO,KAAK,CA+O1D,CAAA"}
1
+ {"version":3,"file":"Table.stories.d.ts","sourceRoot":"","sources":["../../../../src/modules/Table/stories/Table.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AA6JhC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CAoB5B,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAA;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAgBzB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAY5B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAmC3B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAkDtB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAenB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAezB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAOnB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAiB5B,CAAA;AAgHD,eAAO,MAAM,kBAAkB,EAAE,KAkIhC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAyJ7B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,OAAO,KAAK,CAkJjD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,OAAO,KAAK,CAsTjD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAuJ3D,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CAAC,OAAO,KAAK,CAkItE,CAAA;AAuID,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAEtD,CAAA;AAggBD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,KAAK,CAyL3C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAiTnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAiJrD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,OAAO,KAAK,CAmiBhD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,OAAO,KAAK,CAyHvD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,OAAO,KAAK,CA+O1D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAiGzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAiE1B,CAAA"}