@imj_media/tareas 1.5.41 → 1.5.42

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 (33) hide show
  1. package/dist/src/components/organisms/Task.d.ts +1 -1
  2. package/dist/src/infraestructure/interfaces/tasks-campania-response.d.ts +6 -0
  3. package/dist/src/infraestructure/interfaces/tasks-kanban-general.d.ts +7 -1
  4. package/dist/src/infraestructure/interfaces/tasks-reponse.d.ts +6 -0
  5. package/dist/src/infraestructure/mappers/campaign-tasks.d.ts +1 -1
  6. package/dist/src/modules/teams/hooks/index.d.ts +1 -0
  7. package/dist/src/modules/teams/hooks/useFiltersTeams.d.ts +6 -0
  8. package/dist/src/modules/teams/infrastructure/interfaces/team.d.ts +3 -0
  9. package/dist/src/modules/teams/ui/atoms/Header.d.ts +1 -0
  10. package/dist/src/modules/teams/ui/atoms/TeamModalHeader.d.ts +4 -3
  11. package/dist/src/modules/teams/ui/atoms/index.d.ts +1 -0
  12. package/dist/src/modules/teams/ui/organisms/TeamsToolbar.d.ts +4 -0
  13. package/dist/src/modules/teams/ui/organisms/TeamsUiContainer.d.ts +4 -0
  14. package/dist/src/modules/teams/ui/organisms/index.d.ts +1 -0
  15. package/dist/src/modules/teams/utils/teams.utils.d.ts +12 -0
  16. package/dist/src/modules/templates/components/atoms/CardOptions.d.ts +2 -1
  17. package/dist/src/modules/templates/components/organisms/TemplatesToolbar.d.ts +5 -0
  18. package/dist/src/modules/templates/components/organisms/index.d.ts +1 -0
  19. package/dist/src/modules/templates/config/teamsInputsFilters.d.ts +2 -0
  20. package/dist/src/modules/templates/hooks/filters/useGetInputFiltersByPath.d.ts +23 -1
  21. package/dist/src/modules/templates/hooks/filters/useStaticFilters.d.ts +1 -1
  22. package/dist/src/modules/templates/infraestructure/interfaces/filter.types.d.ts +6 -0
  23. package/dist/src/modules/templates/types/template_graph.d.ts +2 -0
  24. package/dist/src/shared/modules/layout/components/atoms/LayoutSearch.d.ts +10 -0
  25. package/dist/src/shared/modules/layout/components/atoms/index.d.ts +1 -0
  26. package/dist/src/shared/modules/layout/components/organisms/Layout.d.ts +1 -1
  27. package/dist/src/shared/modules/layout/components/organisms/LayoutToolbar.d.ts +10 -0
  28. package/dist/src/shared/modules/layout/config/toolbarRegistry.d.ts +7 -0
  29. package/dist/tareas.cjs +25 -53
  30. package/dist/tareas.css +1 -1
  31. package/dist/tareas.es.js +6011 -6521
  32. package/package.json +6 -3
  33. package/dist/src/modules/templates/params_template.d.ts +0 -27
@@ -1,3 +1,3 @@
1
1
  import { TasksKanbanGeneral } from '../../infraestructure/interfaces/tasks-kanban-general';
2
- declare const Task: ({ id, task, endDate, users, willBePaused, nameProject, comments, priority, difficulty, responsible, nameRequiredTask, nameRequiredTaskResponsible, statusRequiredTask, status, repeatsToDo, repeats, medioName, paused, idProject, atraso, categoria, }: TasksKanbanGeneral) => import("react/jsx-runtime").JSX.Element;
2
+ declare const Task: ({ id, task, endDate, users, willBePaused, nameProject, comments, priority, difficulty, responsible, nameRequiredTask, nameRequiredTaskResponsible, statusRequiredTask, status, repeatsToDo, repeats, medioName, paused, idProject, atraso, categoria, cambio_arte }: TasksKanbanGeneral) => import("react/jsx-runtime").JSX.Element;
3
3
  export default Task;
@@ -36,6 +36,12 @@ export interface ITasksCampaignResponse {
36
36
  pausada: boolean;
37
37
  atraso: IAtrasoReason | null;
38
38
  categoria: ICategory | null;
39
+ cambio_arte: {
40
+ id: number;
41
+ nombre: string;
42
+ finicio: Date;
43
+ ffin: Date;
44
+ } | null;
39
45
  }
40
46
  export interface Comentario {
41
47
  id: number;
@@ -1,5 +1,5 @@
1
+ import { IAtrasoReason, ICategory } from '../../types';
1
2
  import { IUsers } from './users';
2
- import { ICategory, IAtrasoReason } from '../../types';
3
3
  export interface TasksKanbanGeneral {
4
4
  id: number;
5
5
  task: string;
@@ -22,4 +22,10 @@ export interface TasksKanbanGeneral {
22
22
  medioName?: string | null;
23
23
  atraso?: IAtrasoReason | null;
24
24
  categoria?: ICategory | null;
25
+ cambio_arte?: {
26
+ id: number;
27
+ nombre: string;
28
+ finicio: Date;
29
+ ffin: Date;
30
+ };
25
31
  }
@@ -31,6 +31,12 @@ export interface ITasksResponse {
31
31
  pausada: boolean;
32
32
  atraso: IAtrasoReason | null;
33
33
  categoria: ICategory | null;
34
+ cambio_arte: {
35
+ id: number;
36
+ nombre: string;
37
+ finicio: Date;
38
+ ffin: Date;
39
+ } | null;
34
40
  }
35
41
  export interface Equipo {
36
42
  id: number;
@@ -1,5 +1,5 @@
1
- import { ITasksCampaignResponse } from '../interfaces/tasks-campania-response';
2
1
  import { ITasksCampaign } from '../interfaces/tasks-campania';
2
+ import { ITasksCampaignResponse } from '../interfaces/tasks-campania-response';
3
3
  export declare class CampaignTasksMapper {
4
4
  static toCampaignTasks(task: ITasksCampaignResponse): ITasksCampaign;
5
5
  }
@@ -1,2 +1,3 @@
1
1
  export * from './useTeams';
2
2
  export * from './useTeamMutations';
3
+ export * from './useFiltersTeams';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Hook personalizado para manejar el filtrado de equipos
3
+ */
4
+ export declare function useFiltersTeams(): {
5
+ handleApplyFilters: (newFilters: any) => void;
6
+ };
@@ -59,4 +59,7 @@ export type MemberList = (Member | EmptyMember)[];
59
59
  export type MemberObject = Member | EmptyMember;
60
60
  export interface TeamFilters {
61
61
  nombre?: string;
62
+ createdAt?: string;
63
+ integrantes_min?: number;
64
+ integrantes_max?: number;
62
65
  }
@@ -0,0 +1 @@
1
+ export declare const Header: () => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,8 @@
1
- import { Icons } from '@imj_media/tasks-modules';
1
+ import { IconType } from 'ui-ds';
2
2
  interface TeamModalHeaderProps {
3
3
  title: string;
4
- icon: Parameters<typeof Icons>[0]['icon'];
4
+ color?: IconType;
5
+ icon: any;
5
6
  }
6
- export declare function TeamModalHeader({ title, icon }: TeamModalHeaderProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function TeamModalHeader({ title, color, icon }: TeamModalHeaderProps): import("react/jsx-runtime").JSX.Element;
7
8
  export {};
@@ -2,3 +2,4 @@ export { TeamModalFooter } from './TeamModalFooter';
2
2
  export { TeamModalHeader } from './TeamModalHeader';
3
3
  export { TeamNameInput } from './TeamNameInput';
4
4
  export { TeamNode } from './TeamNode';
5
+ export { Header } from './Header';
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Toolbar de equipos: solo búsqueda.
3
+ */
4
+ export declare function TeamsToolbar(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export declare const teamsContainer: () => {
2
+ header: import("react/jsx-runtime").JSX.Element;
3
+ body: import("react/jsx-runtime").JSX.Element;
4
+ };
@@ -1,3 +1,4 @@
1
1
  export { default as TeamsContainer } from './TeamsContainer';
2
2
  export { TeamsGrid } from './TeamsGrid';
3
3
  export { TeamsGridSkeleton } from './TeamsGridSkeleton';
4
+ export { TeamsToolbar } from './TeamsToolbar';
@@ -1,3 +1,15 @@
1
1
  import { generatePopulateStructure } from './populate.utils';
2
+ import { TeamFilters } from '../infrastructure/interfaces/team';
2
3
  export declare const randomColor: () => string;
4
+ /**
5
+ * Construye el objeto filters para la API de equipos (Strapi).
6
+ * Usa operadores correctos: $containsi para nombre, $eq para fecha.
7
+ * Nota: integrantes_min/integrantes_max no se envían a la API porque "integrantes"
8
+ * es un campo calculado en el front (miembros.length), no un atributo del modelo en Strapi.
9
+ * El filtro por integrantes se aplica en cliente después de mapear (ver useTeams + filtrado en cliente si se requiere).
10
+ */
11
+ export declare const formatTeamQueryFilters: ({ search, filters, }: {
12
+ search: string;
13
+ filters: TeamFilters;
14
+ }) => Record<string, unknown>;
3
15
  export { generatePopulateStructure };
@@ -3,9 +3,10 @@ interface CardOptionsProps {
3
3
  template: Template;
4
4
  openModalPublishTemplate: () => void;
5
5
  onHadleClickEditTemplateParams: (template: Template) => void;
6
+ onEditTasks?: (template: Template) => void;
6
7
  canDuplicateAndDeleteTemplates: boolean;
7
8
  onHandleClickDuplicateTemplate: (template: Template) => void;
8
9
  openModalDeleteTemplate: () => void;
9
10
  }
10
- export declare const CardOptions: ({ template, openModalPublishTemplate, onHadleClickEditTemplateParams, canDuplicateAndDeleteTemplates, onHandleClickDuplicateTemplate, openModalDeleteTemplate }: CardOptionsProps) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const CardOptions: ({ template, openModalPublishTemplate, onHadleClickEditTemplateParams, onEditTasks, canDuplicateAndDeleteTemplates, onHandleClickDuplicateTemplate, openModalDeleteTemplate }: CardOptionsProps) => import("react/jsx-runtime").JSX.Element;
11
12
  export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Toolbar de plantillas: búsqueda, filtros y cambio de vista.
3
+ * Solo se muestra en modo grid (quien usa el componente puede no renderizarlo en list).
4
+ */
5
+ export declare function TemplatesToolbar(): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,3 @@
1
1
  export * from './TemplatesContainer';
2
2
  export * from './Templates';
3
+ export * from './TemplatesToolbar';
@@ -0,0 +1,2 @@
1
+ import { TeamsFiltersConfig } from '../infraestructure/interfaces/filter.types';
2
+ export declare const configFiltersTeams: TeamsFiltersConfig;
@@ -29,5 +29,27 @@
29
29
  * ```
30
30
  */
31
31
  export declare const useGetInputFiltersByPath: (currentPath: string) => {
32
- inputFilters: any[];
32
+ inputFilters: ({
33
+ icon?: import('ui-ds').VisualSlotType;
34
+ label: string;
35
+ keyName?: string;
36
+ value?: string;
37
+ onValueChange?: (value: import('ui-ds').FilterChangeValue) => void;
38
+ options?: import('ui-ds').DropdownOption[];
39
+ placeholder?: string;
40
+ clearText?: string;
41
+ type?: "date" | "input" | "group" | "textarea" | "multiple" | "dropdown" | "dateRange";
42
+ title?: string;
43
+ } | {
44
+ options: any;
45
+ icon?: import('ui-ds').VisualSlotType;
46
+ label: string;
47
+ keyName?: string;
48
+ value?: string;
49
+ onValueChange?: (value: import('ui-ds').FilterChangeValue) => void;
50
+ placeholder?: string;
51
+ clearText?: string;
52
+ type?: "date" | "input" | "group" | "textarea" | "multiple" | "dropdown" | "dateRange";
53
+ title?: string;
54
+ })[];
33
55
  };
@@ -19,5 +19,5 @@
19
19
  * ```
20
20
  */
21
21
  export declare const useStaticFilters: (currentPath: string) => {
22
- inputFilters: any;
22
+ inputFilters: import('../../infraestructure/interfaces/filter.types').KanbanGeneralFiltersConfig;
23
23
  };
@@ -7,11 +7,17 @@ export type TemplateFiltersConfig = {
7
7
  updated_by: Filter;
8
8
  params_plantillas: Filter;
9
9
  };
10
+ export type TeamsFiltersConfig = {
11
+ createdAt: Filter;
12
+ integrantes_min: Filter;
13
+ integrantes_max: Filter;
14
+ };
10
15
  export type KanbanGeneralFiltersConfig = {};
11
16
  export type KanbanCampaniaFiltersConfig = {};
12
17
  export type ListaCampaniasFiltersConfig = {};
13
18
  export type InputFiltersByPathType = {
14
19
  'templates-container': TemplateFiltersConfig;
20
+ 'teams-container': TeamsFiltersConfig;
15
21
  'kanban-general': KanbanGeneralFiltersConfig;
16
22
  'kanban-campania': KanbanCampaniaFiltersConfig;
17
23
  'lista-campanias': ListaCampaniasFiltersConfig;
@@ -3,10 +3,12 @@ export interface ParamsTipo {
3
3
  id: number;
4
4
  key: string;
5
5
  label: string;
6
+ order: number;
6
7
  }
7
8
  export interface TemplateParameters {
8
9
  id: number;
9
10
  name: string;
11
+ order: number;
10
12
  params_tipo: ParamsTipo;
11
13
  }
12
14
  export interface TemplateGraph {
@@ -0,0 +1,10 @@
1
+ import { TPaths } from '../../../../../types/layout.types';
2
+ interface LayoutSearchProps {
3
+ path: TPaths;
4
+ }
5
+ /**
6
+ * Input de búsqueda unificado para los toolbars del layout.
7
+ * Usa el store de filtros del path indicado (igual que Filters).
8
+ */
9
+ export declare function LayoutSearch({ path }: LayoutSearchProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -1 +1,2 @@
1
1
  export * from './Header';
2
+ export * from './LayoutSearch';
@@ -3,5 +3,5 @@ interface LayoutProps {
3
3
  startPath: TPaths;
4
4
  children?: React.ReactNode;
5
5
  }
6
- export declare const Layout: ({ startPath, children }: LayoutProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const Layout: ({ startPath }: LayoutProps) => import("react/jsx-runtime").JSX.Element;
7
7
  export {};
@@ -0,0 +1,10 @@
1
+ import { TPaths } from '../../../../../types/layout.types';
2
+ interface LayoutToolbarProps {
3
+ path: TPaths | null;
4
+ }
5
+ /**
6
+ * Renderiza el toolbar del path actual desde el registro.
7
+ * Sin condicionales: cada path tiene su propio componente.
8
+ */
9
+ export declare function LayoutToolbar({ path }: LayoutToolbarProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ComponentType } from 'react';
2
+ import { TPaths } from '../../../../types/layout.types';
3
+ /**
4
+ * Registro de componentes de toolbar por path.
5
+ * Añadir un path nuevo = crear el componente en su módulo y registrarlo aquí.
6
+ */
7
+ export declare const LAYOUT_TOOLBAR_REGISTRY: Partial<Record<TPaths, ComponentType>>;