@acvl/frontend-components 0.0.89 → 0.0.90

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
@@ -2243,11 +2243,8 @@ interface FieldProps {
2243
2243
  *
2244
2244
  * **La unicidad de `codigo` la garantiza el backend, no la grilla.** Un choque vuelve como un
2245
2245
  * 400 con el error en `codigo`, y la edición en línea lo pinta sobre la celda
2246
- * (`renderEditCellWithErrorTooltip` con `mutationErrors`); la ficha, sobre el campo. El
2247
- * `extra.queryArgs.endpoint` que lleva la columna `codigo` no valida nada: es lo que hace que el
2248
- * panel de filtros la ofrezca como selector múltiple, con las opciones que sirve el
2249
- * `como_opciones` de ese mismo endpoint, y filtre por `codigo__in`. Por eso el recurso también
2250
- * tiene que servir `como_opciones`.
2246
+ * (`renderEditCellWithErrorTooltip` con `mutationErrors`); la ficha, sobre el campo. La columna
2247
+ * `codigo` del listado no es filtrable, así que el backend no tiene que atender `codigo__in`.
2251
2248
  *
2252
2249
  * Y lo que ya pide cualquier pantalla de la librería:
2253
2250
  *
@@ -2259,6 +2256,14 @@ interface FieldProps {
2259
2256
  * borrado que el servidor va a rechazar.
2260
2257
  * - Guardar (POST o PATCH) contesta `{ detail, list }`: `manualCacheRefresh` copia `detail` en la
2261
2258
  * caché del detalle y `list` en el renglón del listado, sin volver a pedirlos.
2259
+ *
2260
+ * Y lo que necesita quien lo referencie, aunque ni el listado ni la ficha lo consultan:
2261
+ *
2262
+ * - `como_opciones`, con `{ value, label }`. De ahí saca sus opciones cualquier selector que
2263
+ * liste el catálogo (`ControlledAutocomplete` con `queryArgs: { endpoint }`): el campo con el
2264
+ * que el formulario de otro modelo lo elige, o la columna que apunta a él en el panel de
2265
+ * filtros de otra grilla. Sin esto el catálogo se administra, pero no se puede elegir desde
2266
+ * ningún lado.
2262
2267
  */
2263
2268
  interface DefinicionDeCatalogo {
2264
2269
  /**
@@ -2363,10 +2368,11 @@ declare const crearFabricaDeCatalogos: <BaseQuery extends BaseQueryFn<string | F
2363
2368
  * Un catálogo puede omitir alguna de las de la base con `ocultarColumnas` — quitar, nunca cambiar
2364
2369
  * lo que hacen; ver `DefinicionDeCatalogo`.
2365
2370
  *
2366
- * `codigo` lleva `extra.queryArgs.endpoint`, que es lo que hace que el panel de filtros la
2367
- * ofrezca como selector múltiple con las opciones del propio recurso (`como_opciones`). **No
2368
- * valida la unicidad**: eso lo hace el backend al guardar, y el choque vuelve como el error que
2369
- * `renderEditCellWithErrorTooltip` pinta sobre la celda.
2371
+ * `codigo` **no es filtrable**. En el panel de filtros una columna de texto es un selector
2372
+ * múltiple que filtra por `<campo>__in`, y el contrato no le pide al backend `codigo__in`: donde
2373
+ * no lo atiende —django-filter ignora en silencio el parámetro que no conoce— el filtro se
2374
+ * ofrecía y no hacía nada. Tampoco valida la unicidad: eso lo hace el backend al guardar, y el
2375
+ * choque vuelve como el error que `renderEditCellWithErrorTooltip` pinta sobre la celda.
2370
2376
  */
2371
2377
  declare const columnasDeCatalogo: (definicion: DefinicionDeCatalogo) => (props?: EditGridColumnsProps) => GridColDefPropsOverrides[];
2372
2378
 
@@ -2672,6 +2678,9 @@ interface CatalogoListProps {
2672
2678
  * una pestaña hay que pasarla explícitamente: ahí `useLocation()` devuelve la ruta de la
2673
2679
  * página contenedora, así que sin esto los renglones navegarían al detalle de la página que
2674
2680
  * contiene las pestañas y todas ellas compartirían una sola llave de persistencia.
2681
+ *
2682
+ * No decide contra qué recurso se exporta: eso es siempre `definicion.endpoint` (ver
2683
+ * `CatalogoList`).
2675
2684
  */
2676
2685
  pathname?: string;
2677
2686
  /**
@@ -2700,6 +2709,14 @@ interface CatalogoListProps {
2700
2709
  *
2701
2710
  * El alta siempre está —sujeta al permiso de agregar—; la importación CSV sólo si se pasa
2702
2711
  * `csvUpload`.
2712
+ *
2713
+ * **La exportación CSV va siempre contra `definicion.endpoint`.** `ExportCSV` exporta contra el
2714
+ * `csvProps.endpoint` que reciba y, sin él, contra la ruta de la página (`useLocation()`) —a
2715
+ * propósito no contra el `pathname` de la grilla, que también es llave de persistencia y no tiene
2716
+ * por qué ser una URL—. Pero la ruta es de la página, no del recurso: dentro de una pestaña es la
2717
+ * de la página que contiene las pestañas, y la descarga pedía algo que no es el catálogo. El
2718
+ * endpoint es el recurso esté donde esté montado el listado, así que se pasa siempre, igual como
2719
+ * página propia que como pestaña. Lo arma `dataGridPropsDeCatalogo`.
2703
2720
  */
2704
2721
  declare const CatalogoList: ({ definicion, api, pathname, csvUpload }: CatalogoListProps) => react_jsx_runtime.JSX.Element;
2705
2722
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acvl/frontend-components",
3
- "version": "0.0.89",
3
+ "version": "0.0.90",
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",