@acvl/frontend-components 0.0.93 → 0.0.95

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/dist/index.d.ts CHANGED
@@ -2988,6 +2988,20 @@ interface DetailFormApi {
2988
2988
  args?: any;
2989
2989
  disable?: boolean;
2990
2990
  successMessage?: string | ((response: any) => string);
2991
+ /**
2992
+ * Intercepts a 400 before the engine turns it into field errors and the generic
2993
+ * "validation error" notification. Return `true` when the form has handled it.
2994
+ *
2995
+ * For the rejections that are **a question, not a failure** — the server refusing an
2996
+ * action and telling the user how to insist. The case that asked for it: committing a
2997
+ * trip segment over a colleague's soft hold answers 400 naming who holds it, and the
2998
+ * screen has to offer "take it from them"; swallowed into the generic notification, that
2999
+ * second step disappears and with it the whole point of the soft hold.
3000
+ *
3001
+ * `useMutationHandler` already had the hook — this only passes it through, which is what
3002
+ * kept a form that needs it from using this engine at all.
3003
+ */
3004
+ onInvalidParams?: (error: any) => boolean;
2991
3005
  postAction?: {
2992
3006
  after: "create" | "edit" | "both";
2993
3007
  type: string;
@@ -3384,6 +3398,142 @@ declare function PollingCountdownChip({ pollingInterval, isFetching, onRefresh,
3384
3398
  */
3385
3399
  declare function ServerGrid(props: ServerGridProps): react_jsx_runtime.JSX.Element;
3386
3400
 
3401
+ /** Lo que vale un estado en el filtro: el entero de un `choices` o su clave de texto. */
3402
+ type EstadoDeFiltro = string | number;
3403
+ interface EstadoTabConfig {
3404
+ value: string;
3405
+ label: string;
3406
+ /**
3407
+ * Estado —o estados— por los que filtra la pestaña. Si se omite, la pestaña muestra todo.
3408
+ *
3409
+ * Un arreglo agrupa varios en una sola pestaña ("En curso" = sin iniciar + en progreso). Lo
3410
+ * que tiene que corresponder es el `estadoField`: `estado` para uno solo, `estado__in`
3411
+ * cuando la pestaña es un grupo.
3412
+ */
3413
+ estado?: EstadoDeFiltro | EstadoDeFiltro[];
3414
+ /** Icono de la pestaña (p. ej. un contador). */
3415
+ icon?: ReactNode;
3416
+ /** Columnas específicas de esta pestaña (sobrescribe las columnas por defecto). */
3417
+ columns?: GridColDefPropsOverrides[];
3418
+ /**
3419
+ * Lo que esta pestaña le cambia al modo edición: casi siempre sus columnas, cuando la grilla
3420
+ * las sirve desde `api.edit` y no desde `dataGridProps`. Se mezcla sobre el `edit` de arriba;
3421
+ * sin ninguno de los dos no hay capa de edición.
3422
+ */
3423
+ edit?: Partial<ServerGridEditApi>;
3424
+ /** Habilita el borrado en esta pestaña (sobrescribe el valor por defecto). */
3425
+ withDelete?: boolean;
3426
+ /** Campo de ordenamiento de esta pestaña (sobrescribe el valor por defecto). */
3427
+ sortField?: string;
3428
+ /** Dirección de ordenamiento de esta pestaña (sobrescribe el valor por defecto). */
3429
+ sortDirection?: "asc" | "desc";
3430
+ /**
3431
+ * Habilita el botón de crear en esta pestaña, aunque no haya carga por CSV ni opciones
3432
+ * extra (sobrescribe el valor por defecto).
3433
+ */
3434
+ create?: boolean;
3435
+ /** Habilita la carga por CSV en esta pestaña (sobrescribe el valor por defecto). */
3436
+ csvUpload?: boolean;
3437
+ /** Opciones extra del menú de carga por CSV de esta pestaña. */
3438
+ csvUploadOptions?: CSVMenuOptionProps[];
3439
+ /** Opciones extra del botón de crear de esta pestaña (sobrescribe el valor por defecto). */
3440
+ createExtraOptions?: ExtraCreateOptionProps[];
3441
+ /** Props adicionales del DataGrid, combinadas con las generadas (columnas, ordenamiento…). */
3442
+ dataGridProps?: Partial<MyDataGridProps>;
3443
+ /** `slotProps` del `<ServerGrid_v2>` de esta pestaña. */
3444
+ slotProps?: ServerGridProps["slotProps"];
3445
+ /** Filtros propios del panel de esta pestaña (sobrescribe el valor por defecto). */
3446
+ customFilters?: CustomFilterDef[];
3447
+ /** Elemento(s) renderizados junto al `<ServerGrid_v2>` dentro de la pestaña (p. ej. un drawer). */
3448
+ before?: ReactNode;
3449
+ }
3450
+ interface BuildEstadoTabsOptions {
3451
+ pathname: string;
3452
+ /** Configuración de cada pestaña. */
3453
+ tabs: EstadoTabConfig[];
3454
+ /** Hook lazy-query de RTK Query usado por todas las pestañas. */
3455
+ query: any;
3456
+ /**
3457
+ * El filtro con el que se le pide el estado al recurso. Es el nombre del parámetro tal como
3458
+ * lo declara el `FilterSet`, no el campo del modelo: `estado` para el `exact` de siempre,
3459
+ * `estado__in` cuando la pestaña agrupa estados — y cuando la columna de estado ya filtra por
3460
+ * ese mismo nombre, para que `protectFilters` cierre la misma llave que el panel escribiría.
3461
+ *
3462
+ * @default "estado"
3463
+ */
3464
+ estadoField?: string;
3465
+ /** Columnas por defecto cuando una pestaña no define las suyas. */
3466
+ columns?: GridColDefPropsOverrides[];
3467
+ /**
3468
+ * Modo edición por defecto, para las grillas que sirven sus columnas desde `api.edit`. Con
3469
+ * `disabled: true` es además la forma de tener las columnas ahí sin ofrecer la edición.
3470
+ */
3471
+ edit?: ServerGridEditApi;
3472
+ /** Campo de ordenamiento inicial por defecto. */
3473
+ sortField: string;
3474
+ /** Dirección de ordenamiento inicial por defecto. Por defecto "asc". */
3475
+ sortDirection?: "asc" | "desc";
3476
+ /** Mutación de borrado; se aplica a las pestañas con `withDelete`. */
3477
+ deleteMutation?: any;
3478
+ /** Valor por defecto de `withDelete` para las pestañas que no lo especifican. */
3479
+ withDelete?: boolean;
3480
+ /**
3481
+ * Valor por defecto del botón de crear para las pestañas que no lo especifican.
3482
+ * Úsalo cuando solo se quiere la opción "Manual", sin carga por CSV.
3483
+ */
3484
+ create?: boolean;
3485
+ /**
3486
+ * Valor por defecto de la carga por CSV para las pestañas que no lo especifican. Sólo surte
3487
+ * efecto con `importacion`: sin diálogo que abrir no se ofrece.
3488
+ */
3489
+ csvUpload?: boolean;
3490
+ /**
3491
+ * El diálogo de importación del listado, tal como lo arma la página (con el permiso del
3492
+ * modelo y lo demás que el diálogo necesita). Va aquí y no se arma adentro porque
3493
+ * `buildEstadoTabs` no es un hook: corre en el render, pero una llamada condicional —por
3494
+ * pestaña, según `csvUpload`— rompería el orden de los hooks.
3495
+ */
3496
+ importacion?: NonNullable<ServerGridCreateApi["csv_upload"]>;
3497
+ /** Opciones extra del menú de carga por CSV, por defecto para todas las pestañas. */
3498
+ csvUploadOptions?: CSVMenuOptionProps[];
3499
+ /** Opciones extra del botón de crear, por defecto para todas las pestañas. */
3500
+ createExtraOptions?: ExtraCreateOptionProps[];
3501
+ /**
3502
+ * Filtros que el panel de filtros no puede sacar de las columnas —"Mis órdenes de envío" y
3503
+ * demás—, por defecto para todas las pestañas.
3504
+ *
3505
+ * Tiene que ser un arreglo estable (memoizado): `<ServerGrid_v2>` lo tiene como dependencia
3506
+ * de un `useMemo`, igual que los `args`.
3507
+ */
3508
+ customFilters?: CustomFilterDef[];
3509
+ /**
3510
+ * Menú de exportar, el mismo en todas las pestañas. Se arma con `menuDeExportacion` cuando
3511
+ * el listado ofrece además las descargas de sus hijos (los bultos de estas transferencias).
3512
+ *
3513
+ * Va aquí y no pestaña por pestaña porque el juego de descargas es del recurso, no del
3514
+ * estado: repetirlo en cada pestaña es donde se cuela la que se quedó sin actualizar.
3515
+ */
3516
+ exportMenu?: Record<string, any>;
3517
+ }
3518
+
3519
+ /**
3520
+ * Construye las pestañas (`MyTab[]`) de un listado filtrado por estado, cada una renderizando un
3521
+ * `<ServerGrid_v2>` con el filtro de estado, el ordenamiento y las acciones (edición / borrado /
3522
+ * crear) ya cableados. Cada pestaña puede sobrescribir los valores por defecto del listado y
3523
+ * aportar props adicionales del DataGrid; qué decide cada llave está en `props.ts`.
3524
+ *
3525
+ * **El estado de la pestaña no se puede quitar desde el panel de filtros** (`protectFilters`): es
3526
+ * lo que la pestaña *es*, no un filtro que el usuario haya puesto. Por eso las pestañas de un
3527
+ * estado concreto suelen ir sin la columna de estado —dentro de "Nuevos" esa columna dice siempre
3528
+ * lo mismo— y la de "Todos" sí la lleva, que es donde el filtro vuelve a tener sentido.
3529
+ *
3530
+ * Cada pestaña recuerda por separado sus filtros, su orden y sus columnas: `Tabs` le inyecta a su
3531
+ * hijo el `slotProps.tab` de la pestaña y de ahí sale la llave de persistencia. Una pestaña con
3532
+ * `before` envuelve al grid en un fragmento, así que ahí la inyección no llega y la llave se pone
3533
+ * a mano (`slotProps: { tab }`).
3534
+ */
3535
+ declare function buildEstadoTabs(opciones: BuildEstadoTabsOptions): MyTab[];
3536
+
3387
3537
  interface ExportCSVProps {
3388
3538
  handleClick: () => void;
3389
3539
  filterModel: MyGridFilterModel;
@@ -4776,5 +4926,5 @@ declare const mutationParams: (arg: any) => {
4776
4926
  */
4777
4927
  declare const mutationId: (arg: any) => any;
4778
4928
 
4779
- export { APIContext, APIProvider, AccountMenuContent, ActiveCell, ActiveIcon, Base, ButtonWithDrawer, COLOR_SCHEME_SELECTOR, CSVUpload, CatalogoItem, CatalogoList, ChipCell, ConfirmDialog, ContentLayout, ControlledAddressAutocomplete, ControlledAmountWithCurrency, ControlledAutocomplete, ControlledColor, ControlledDate$1 as ControlledDate, ControlledDate as ControlledDate_v2, ControlledDropdown, ControlledFileField$1 as ControlledFileField, ControlledFileField as ControlledFileField_v2, FileUploadBox as ControlledFileUploadBox, ControlledNumber, ControlledPhoneNumber, ControlledSelect$1 as ControlledSelect, ControlledSelect as ControlledSelect_v2, ControlledSlider as ControlledSimpleSlider, ControlledSlider$1 as ControlledSlider, ControlledSwitch, ControlledText, ControlledTimePicker, ControlledToggleButtons, CoverPage, CreateButtonBase, CreateButtonWithMenuOptions, CrudDropdown, CustomNoRows, DEFAULT_FORM_BREAKPOINTS, DEFAULT_PAGINATION, DeleteButton, DeleteConfirmationDialog, DetailFormDialog as DetailFormDialog_v2, DetailFormDrawer as DetailFormDrawer_v2, DetailForm as DetailForm_v2, DetailPage$1 as DetailPage, DetailPage as DetailPage_v2, DrawerGrid as DrawerGrid_v2, EditButton, ExportCSV$1 as ExportCSV, ExportCSV as ExportCSV_v2, ExtraButtons, FORM_CONTAINER_NAME, GlobalSearch, GrillaHastaElFondo, HEADER_CONTAINER, HEADER_NARROW, HistorialDrawer, KpiCard, LAYER_ORDER, ListPage, Loadable, LoadingComponent, LocaleContext, LocaleProvider, Logo, MainDrawer, MainDrawer$1 as MainDrawer_v2, MainLayout, MenuItemWithLoading, ModuleCard, MoreOptions, MyGridEditSingleSelect, NavigationContext, NavigationProvider, NormalOrIcon, NotAllowed, NotFound, NotificationItem, NotificationsBell, ObjectProgressStack, PageActionsHostContext, PageBadgeHostContext, PageInfo, PageInfoHostContext, Panel, PollingCountdownChip, PulseDot, RESPONSIVE_ACTION_MODES, ResponsiveActions, SIDE_PANEL_WIDTH_VAR, SaveCancelButton, ServerGrid as ServerGrid_v2, SidePanelHostContext, StatusBadge, StickyPageHeaderContext, StyledMenu, TEXTOS, Tabs, Transitions, TrueFalse, UncontrolledText, aplicarLocaleDeDayjs, changeTitle, closeProgressSnack, columnasDeCatalogo, composeGridProps, crearFabricaDeCatalogos, deleteColumn$1 as deleteColumn, deleteColumn as deleteColumn_v2, editColumn, filterQuery, formContainerSx, formGridSx, formParser, headerContainerSx, _default as headerReducer, localeDeNumeros, localeTextDeMUI, localeTextDeToolpad, manualCacheRefresh, mergeSettings, mutationData, mutationId, mutationParams, openProgressSnack, pageSizeOptions, query, renderChipCell, renderEditCellWithErrorTooltip, resolveChipOption, resolveInitialState, resolveStatusColor, setErrors, singularizarPalabra, singularizarTitulo, _default$1 as snackProgressReducer, statusColors, tags, theme, togglableFields, updateProgressSnackData, useAPI, useColorMode, useDetailForm, useHasPermission, useHasPermission_v2, useKeyboardShortcut, useLocale, useMutationHandler, useNavigation, usePageActionsHost, usePageBadgeHost, usePageInfoHost, useServerGrid, useSidePanelHost, useStickyPageHeader, useStickyPageHeaderHost, useTextos, valueLabel };
4780
- export type { APIcontextProps, AccountMenuContentProps, AccountMenuItem, AddressValue, AppTheme, AutocompleteOption, CatalogoAPI, CatalogoItemProps, CatalogoListProps, ChipCellProps, ChipColor, ChipOption, ColorMode, ComoOpcionesProps, ConfirmDialogProps, ControlledAutocompleteProps, ControlledInput, CrearCatalogoAPI, CustomFilterDef, CustomToolbarProps, DefinicionDeCatalogo, DeleteGridColumnsProps$1 as DeleteGridColumnsProps, DetachedPage, DetailExtraButton, DetailFormApi, DetailFormConfig, DetailFormController, DetailFormDialogProps, DetailFormDrawerNavigation, DetailFormDrawerProps, DetailFormProps, DetailFormStatus, DetailPageV2Props, DetailRenderProps, DrawerGridDrawerConfig, DrawerGridEditConfig, DrawerGridProps, EditGridColumnsProps, EditReadOnlyFields, ExportCSVProps as ExportCSVProps_v2, FieldFilter, FieldProps$1 as FieldProps, FieldValidationProps, FilterInput, FormBreakpoint, FormGridSxOptions, GlobalSearchOption, GlobalSearchProps, GridArgs, GridColDefPropsOverrides, GridLayerContribution, GridLayerId, GridLayerMap, GrillaHastaElFondoProps, InsigniaDeCatalogo, JSONFormProps, JSONParserProps, KeyboardShortcut, KpiCardProps, Locale, LocaleContextProps, LocaleProviderProps, MainDrawerV2Props, MainLayoutFooterConfig, MainLayoutPageHeaderProps, MainLayoutProps, MainLayoutSidebarFooterProps, MutationArgs, MyDataGridProps, MyGridFilterModel, MyTab, MyTabProps, NotificationItemProps, NotificationsApi, NotificationsBellProps, PageActionsHost, PageBadgeHost, PageInfoHost, PageInfoProps, PageType, PanelProps, PollingCountdownChipProps, ProgressStatusProps, PulseDotProps, ResponsiveAction, ResponsiveActionsMode, ResponsiveActionsProps, RowsSnapshot, ServerGridArgs, ServerGridCreateApi, ServerGridDataApi, ServerGridDeleteApi, ServerGridEditApi, ServerGridEditToggleApi, ServerGridHandle, ServerGridProps, ServerGridSnapshot, ServerGridState, SidePanelHost, StatusColor, StickyPageHeaderHost, Textos, UseColorModeResult, UseServerGridOptions };
4929
+ export { APIContext, APIProvider, AccountMenuContent, ActiveCell, ActiveIcon, Base, ButtonWithDrawer, COLOR_SCHEME_SELECTOR, CSVUpload, CatalogoItem, CatalogoList, ChipCell, ConfirmDialog, ContentLayout, ControlledAddressAutocomplete, ControlledAmountWithCurrency, ControlledAutocomplete, ControlledColor, ControlledDate$1 as ControlledDate, ControlledDate as ControlledDate_v2, ControlledDropdown, ControlledFileField$1 as ControlledFileField, ControlledFileField as ControlledFileField_v2, FileUploadBox as ControlledFileUploadBox, ControlledNumber, ControlledPhoneNumber, ControlledSelect$1 as ControlledSelect, ControlledSelect as ControlledSelect_v2, ControlledSlider as ControlledSimpleSlider, ControlledSlider$1 as ControlledSlider, ControlledSwitch, ControlledText, ControlledTimePicker, ControlledToggleButtons, CoverPage, CreateButtonBase, CreateButtonWithMenuOptions, CrudDropdown, CustomNoRows, DEFAULT_FORM_BREAKPOINTS, DEFAULT_PAGINATION, DeleteButton, DeleteConfirmationDialog, DetailFormDialog as DetailFormDialog_v2, DetailFormDrawer as DetailFormDrawer_v2, DetailForm as DetailForm_v2, DetailPage$1 as DetailPage, DetailPage as DetailPage_v2, DrawerGrid as DrawerGrid_v2, EditButton, ExportCSV$1 as ExportCSV, ExportCSV as ExportCSV_v2, ExtraButtons, FORM_CONTAINER_NAME, GlobalSearch, GrillaHastaElFondo, HEADER_CONTAINER, HEADER_NARROW, HistorialDrawer, KpiCard, LAYER_ORDER, ListPage, Loadable, LoadingComponent, LocaleContext, LocaleProvider, Logo, MainDrawer, MainDrawer$1 as MainDrawer_v2, MainLayout, MenuItemWithLoading, ModuleCard, MoreOptions, MyGridEditSingleSelect, NavigationContext, NavigationProvider, NormalOrIcon, NotAllowed, NotFound, NotificationItem, NotificationsBell, ObjectProgressStack, PageActionsHostContext, PageBadgeHostContext, PageInfo, PageInfoHostContext, Panel, PollingCountdownChip, PulseDot, RESPONSIVE_ACTION_MODES, ResponsiveActions, SIDE_PANEL_WIDTH_VAR, SaveCancelButton, ServerGrid as ServerGrid_v2, SidePanelHostContext, StatusBadge, StickyPageHeaderContext, StyledMenu, TEXTOS, Tabs, Transitions, TrueFalse, UncontrolledText, aplicarLocaleDeDayjs, buildEstadoTabs, changeTitle, closeProgressSnack, columnasDeCatalogo, composeGridProps, crearFabricaDeCatalogos, deleteColumn$1 as deleteColumn, deleteColumn as deleteColumn_v2, editColumn, filterQuery, formContainerSx, formGridSx, formParser, headerContainerSx, _default as headerReducer, localeDeNumeros, localeTextDeMUI, localeTextDeToolpad, manualCacheRefresh, mergeSettings, mutationData, mutationId, mutationParams, openProgressSnack, pageSizeOptions, query, renderChipCell, renderEditCellWithErrorTooltip, resolveChipOption, resolveInitialState, resolveStatusColor, setErrors, singularizarPalabra, singularizarTitulo, _default$1 as snackProgressReducer, statusColors, tags, theme, togglableFields, updateProgressSnackData, useAPI, useColorMode, useDetailForm, useHasPermission, useHasPermission_v2, useKeyboardShortcut, useLocale, useMutationHandler, useNavigation, usePageActionsHost, usePageBadgeHost, usePageInfoHost, useServerGrid, useSidePanelHost, useStickyPageHeader, useStickyPageHeaderHost, useTextos, valueLabel };
4930
+ export type { APIcontextProps, AccountMenuContentProps, AccountMenuItem, AddressValue, AppTheme, AutocompleteOption, BuildEstadoTabsOptions, CSVMenuOptionProps, CatalogoAPI, CatalogoItemProps, CatalogoListProps, ChipCellProps, ChipColor, ChipOption, ColorMode, ComoOpcionesProps, ConfirmDialogProps, ControlledAutocompleteProps, ControlledInput, CrearCatalogoAPI, CustomFilterDef, CustomToolbarProps, DefinicionDeCatalogo, DeleteGridColumnsProps$1 as DeleteGridColumnsProps, DetachedPage, DetailExtraButton, DetailFormApi, DetailFormConfig, DetailFormController, DetailFormDialogProps, DetailFormDrawerNavigation, DetailFormDrawerProps, DetailFormProps, DetailFormStatus, DetailPageV2Props, DetailRenderProps, DrawerGridDrawerConfig, DrawerGridEditConfig, DrawerGridProps, EditGridColumnsProps, EditReadOnlyFields, EstadoDeFiltro, EstadoTabConfig, ExportCSVProps as ExportCSVProps_v2, ExtraCreateOptionProps, FieldFilter, FieldProps$1 as FieldProps, FieldValidationProps, FilterInput, FormBreakpoint, FormGridSxOptions, GlobalSearchOption, GlobalSearchProps, GridArgs, GridColDefPropsOverrides, GridLayerContribution, GridLayerId, GridLayerMap, GrillaHastaElFondoProps, InsigniaDeCatalogo, JSONFormProps, JSONParserProps, KeyboardShortcut, KpiCardProps, Locale, LocaleContextProps, LocaleProviderProps, MainDrawerV2Props, MainLayoutFooterConfig, MainLayoutPageHeaderProps, MainLayoutProps, MainLayoutSidebarFooterProps, MutationArgs, MyDataGridProps, MyGridFilterModel, MyTab, MyTabProps, NotificationItemProps, NotificationsApi, NotificationsBellProps, PageActionsHost, PageBadgeHost, PageInfoHost, PageInfoProps, PageType, PanelProps, PollingCountdownChipProps, ProgressStatusProps, PulseDotProps, ResponsiveAction, ResponsiveActionsMode, ResponsiveActionsProps, RowsSnapshot, ServerGridArgs, ServerGridCreateApi, ServerGridDataApi, ServerGridDeleteApi, ServerGridEditApi, ServerGridEditToggleApi, ServerGridHandle, ServerGridProps, ServerGridSnapshot, ServerGridState, SidePanelHost, StatusColor, StickyPageHeaderHost, Textos, UseColorModeResult, UseServerGridOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acvl/frontend-components",
3
- "version": "0.0.93",
3
+ "version": "0.0.95",
4
4
  "description": "Component library for ACV frontend projects.",
5
5
  "homepage": "https://github.com/ACV-Logistics/acv-frontend-components#readme",
6
6
  "access": "public",