@asteby/metacore-runtime-react 47.0.0 → 48.0.0
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/CHANGELOG.md +42 -0
- package/dist/action-modal-dispatcher.d.ts.map +1 -1
- package/dist/action-modal-dispatcher.js +24 -4
- package/dist/audit-info.d.ts +54 -0
- package/dist/audit-info.d.ts.map +1 -0
- package/dist/audit-info.js +142 -0
- package/dist/business/catalog-product-search.d.ts +25 -0
- package/dist/business/catalog-product-search.d.ts.map +1 -0
- package/dist/business/catalog-product-search.js +57 -0
- package/dist/business/catalog.d.ts.map +1 -1
- package/dist/business/catalog.js +2 -0
- package/dist/business/document-editor-model.d.ts +107 -0
- package/dist/business/document-editor-model.d.ts.map +1 -0
- package/dist/business/document-editor-model.js +279 -0
- package/dist/business/document-editor-panels.d.ts +64 -0
- package/dist/business/document-editor-panels.d.ts.map +1 -0
- package/dist/business/document-editor-panels.js +58 -0
- package/dist/business/document-editor.d.ts +27 -0
- package/dist/business/document-editor.d.ts.map +1 -0
- package/dist/business/document-editor.js +445 -0
- package/dist/business/document-lines.d.ts.map +1 -1
- package/dist/business/document-lines.js +5 -1
- package/dist/business/index.d.ts +5 -0
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business/index.js +5 -0
- package/dist/business/line-items.d.ts +7 -0
- package/dist/business/line-items.d.ts.map +1 -1
- package/dist/business/line-items.js +6 -1
- package/dist/business/payment-allocator.d.ts +19 -0
- package/dist/business/payment-allocator.d.ts.map +1 -0
- package/dist/business/payment-allocator.js +31 -0
- package/dist/business/product-search.d.ts +4 -0
- package/dist/business/product-search.d.ts.map +1 -1
- package/dist/dialogs/dynamic-record.d.ts.map +1 -1
- package/dist/dialogs/dynamic-record.js +19 -8
- package/dist/document-form-dialog.d.ts +31 -2
- package/dist/document-form-dialog.d.ts.map +1 -1
- package/dist/document-form-dialog.js +43 -11
- package/dist/dynamic-columns-helpers.d.ts +9 -0
- package/dist/dynamic-columns-helpers.d.ts.map +1 -1
- package/dist/dynamic-columns-helpers.js +19 -0
- package/dist/dynamic-columns.d.ts +8 -2
- package/dist/dynamic-columns.d.ts.map +1 -1
- package/dist/dynamic-columns.js +21 -5
- package/dist/dynamic-crud-page.d.ts +6 -0
- package/dist/dynamic-crud-page.d.ts.map +1 -1
- package/dist/dynamic-crud-page.js +14 -5
- package/dist/dynamic-form-schema.d.ts.map +1 -1
- package/dist/dynamic-form-schema.js +15 -3
- package/dist/dynamic-form.d.ts +16 -1
- package/dist/dynamic-form.d.ts.map +1 -1
- package/dist/dynamic-form.js +81 -20
- package/dist/dynamic-kanban.d.ts +9 -3
- package/dist/dynamic-kanban.d.ts.map +1 -1
- package/dist/dynamic-kanban.js +39 -13
- package/dist/dynamic-line-items.d.ts.map +1 -1
- package/dist/dynamic-line-items.js +3 -0
- package/dist/dynamic-multi-select-field.d.ts.map +1 -1
- package/dist/dynamic-multi-select-field.js +2 -0
- package/dist/dynamic-relation-helpers.d.ts.map +1 -1
- package/dist/dynamic-relation-helpers.js +8 -0
- package/dist/dynamic-relation.js +1 -1
- package/dist/dynamic-select-field.d.ts.map +1 -1
- package/dist/dynamic-select-field.js +4 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -2
- package/dist/installed-addons-context.d.ts +15 -0
- package/dist/installed-addons-context.d.ts.map +1 -0
- package/dist/installed-addons-context.js +39 -0
- package/dist/option-filter.d.ts +31 -0
- package/dist/option-filter.d.ts.map +1 -0
- package/dist/option-filter.js +49 -0
- package/dist/org-runtime-context.d.ts +8 -0
- package/dist/org-runtime-context.d.ts.map +1 -1
- package/dist/org-runtime-context.js +8 -0
- package/dist/org-runtime-provider.d.ts +3 -1
- package/dist/org-runtime-provider.d.ts.map +1 -1
- package/dist/org-runtime-provider.js +3 -3
- package/dist/primitives/aging.d.ts +34 -0
- package/dist/primitives/aging.d.ts.map +1 -0
- package/dist/primitives/aging.js +48 -0
- package/dist/primitives/allocation.d.ts +42 -0
- package/dist/primitives/allocation.d.ts.map +1 -0
- package/dist/primitives/allocation.js +59 -0
- package/dist/primitives/approvals.d.ts +71 -0
- package/dist/primitives/approvals.d.ts.map +1 -0
- package/dist/primitives/approvals.js +48 -0
- package/dist/primitives/contributions.d.ts +82 -0
- package/dist/primitives/contributions.d.ts.map +1 -0
- package/dist/primitives/contributions.js +126 -0
- package/dist/primitives/document-kinds.d.ts +25 -0
- package/dist/primitives/document-kinds.d.ts.map +1 -0
- package/dist/primitives/document-kinds.js +26 -0
- package/dist/primitives/index.d.ts +8 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +23 -0
- package/dist/primitives/panels.d.ts +68 -0
- package/dist/primitives/panels.d.ts.map +1 -0
- package/dist/primitives/panels.js +3 -0
- package/dist/primitives/use-contributions.d.ts +15 -0
- package/dist/primitives/use-contributions.d.ts.map +1 -0
- package/dist/primitives/use-contributions.js +30 -0
- package/dist/record-prefill-bar.d.ts +11 -0
- package/dist/record-prefill-bar.d.ts.map +1 -0
- package/dist/record-prefill-bar.js +33 -0
- package/dist/types.d.ts +142 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/use-options-resolver.d.ts +8 -0
- package/dist/use-options-resolver.d.ts.map +1 -1
- package/dist/use-options-resolver.js +8 -2
- package/package.json +5 -5
- package/src/__tests__/action-modal-grid-layout.test.tsx +1 -1
- package/src/__tests__/apply-sidebar-layout.test.ts +1 -1
- package/src/__tests__/audit-info.test.tsx +103 -0
- package/src/__tests__/catalog-product-search.test.ts +61 -0
- package/src/__tests__/dependent-options.test.tsx +12 -5
- package/src/__tests__/document-editor-model.test.ts +167 -0
- package/src/__tests__/document-editor.test.tsx +261 -0
- package/src/__tests__/document-form-dialog.test.tsx +118 -3
- package/src/__tests__/dynamic-form-select-edit.test.tsx +155 -0
- package/src/__tests__/dynamic-kanban.test.tsx +24 -3
- package/src/__tests__/dynamic-record-extension-label.test.tsx +88 -0
- package/src/__tests__/dynamic-table-infinite-scroll.test.tsx +4 -0
- package/src/__tests__/installed-addons-context.test.tsx +50 -0
- package/src/__tests__/line-item-totals.test.ts +28 -0
- package/src/__tests__/line-items-lock-rows.test.tsx +2 -1
- package/src/__tests__/option-filter.test.tsx +115 -0
- package/src/__tests__/primitives-federated.test.tsx +156 -0
- package/src/__tests__/primitives.test.ts +224 -0
- package/src/__tests__/record-prefill-bar.test.tsx +50 -0
- package/src/__tests__/structured-view-value.test.tsx +5 -1
- package/src/__tests__/wizard-action-modal.test.tsx +1 -1
- package/src/action-modal-dispatcher.tsx +47 -4
- package/src/audit-info.tsx +219 -0
- package/src/business/catalog-product-search.ts +87 -0
- package/src/business/catalog.ts +2 -0
- package/src/business/document-editor-model.ts +325 -0
- package/src/business/document-editor-panels.tsx +164 -0
- package/src/business/document-editor.tsx +727 -0
- package/src/business/document-lines.ts +5 -1
- package/src/business/index.ts +5 -0
- package/src/business/line-items.ts +15 -1
- package/src/business/payment-allocator.tsx +110 -0
- package/src/business/product-search.ts +4 -0
- package/src/dialogs/dynamic-record.tsx +42 -6
- package/src/document-form-dialog.tsx +92 -12
- package/src/dropdown-menu-entry.test.ts +23 -0
- package/src/dynamic-columns-helpers.ts +22 -0
- package/src/dynamic-columns.tsx +23 -6
- package/src/dynamic-crud-page.tsx +22 -3
- package/src/dynamic-form-schema.ts +15 -2
- package/src/dynamic-form.tsx +120 -39
- package/src/dynamic-kanban.tsx +41 -10
- package/src/dynamic-line-items.tsx +3 -0
- package/src/dynamic-multi-select-field.tsx +2 -0
- package/src/dynamic-relation-helpers.ts +9 -0
- package/src/dynamic-relation.tsx +7 -2
- package/src/dynamic-select-field.tsx +4 -0
- package/src/index.ts +34 -1
- package/src/installed-addons-context.tsx +58 -0
- package/src/option-filter.ts +88 -0
- package/src/org-runtime-context.ts +10 -0
- package/src/org-runtime-provider.tsx +7 -2
- package/src/primitives/aging.ts +76 -0
- package/src/primitives/allocation.ts +104 -0
- package/src/primitives/approvals.ts +103 -0
- package/src/primitives/contributions.ts +208 -0
- package/src/primitives/document-kinds.ts +62 -0
- package/src/primitives/index.ts +23 -0
- package/src/primitives/panels.ts +59 -0
- package/src/primitives/use-contributions.ts +42 -0
- package/src/record-prefill-bar.tsx +62 -0
- package/src/row-action-stage-gate.test.ts +33 -0
- package/src/types.ts +142 -0
- package/src/use-options-resolver.ts +19 -1
- package/vitest.config.ts +1 -0
- package/vitest.setup.ts +7 -0
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OptionFilter } from './option-filter';
|
|
1
2
|
/** One spreadsheet column of a model's import template. Mirrors the kernel's
|
|
2
3
|
* `modelbase.ImportColumn`. */
|
|
3
4
|
export interface ImportColumnMeta {
|
|
@@ -29,6 +30,39 @@ export interface DocumentFormLines {
|
|
|
29
30
|
required?: boolean;
|
|
30
31
|
/** Título del paso. Default «Renglones». */
|
|
31
32
|
title?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Qué captura el grid (ver primitives/document-kinds LinesMode). Default `sale`.
|
|
35
|
+
* `allocation` cambia el grid por PaymentAllocator (documentos abiertos de la
|
|
36
|
+
* contraparte); `credit` limita cantidades a facturado − acreditado.
|
|
37
|
+
*/
|
|
38
|
+
kind?: 'sale' | 'purchase' | 'credit' | 'allocation' | 'workorder';
|
|
39
|
+
/** Solo `kind: allocation`: de dónde salen los documentos abiertos. */
|
|
40
|
+
open_documents?: DocumentFormOpenDocuments;
|
|
41
|
+
/**
|
|
42
|
+
* Cómo se captura el descuento: `percent` (default del grid), `amount`
|
|
43
|
+
* (importe) o `both`. Debe coincidir con la fórmula del modelo de renglones:
|
|
44
|
+
* si el backend calcula `quantity * unit_price - discount`, declara `amount`
|
|
45
|
+
* (con `percent` un 10 % se restaría como $10).
|
|
46
|
+
*/
|
|
47
|
+
discount_mode?: 'percent' | 'amount' | 'both';
|
|
48
|
+
}
|
|
49
|
+
/** Documentos con saldo de la contraparte para PaymentAllocator. */
|
|
50
|
+
export interface DocumentFormOpenDocuments {
|
|
51
|
+
/** Modelo (p. ej. `customers.Invoice`, `purchases.SupplierInvoice`). */
|
|
52
|
+
model: string;
|
|
53
|
+
/** Campo del documento que apunta a la contraparte (`customer_id`). */
|
|
54
|
+
party_field: string;
|
|
55
|
+
balance_field: string;
|
|
56
|
+
number_field: string;
|
|
57
|
+
total_field?: string;
|
|
58
|
+
due_field?: string;
|
|
59
|
+
issued_field?: string;
|
|
60
|
+
/** Columna con el método (PUE/PPD…); el núcleo solo la muestra. */
|
|
61
|
+
method_field?: string;
|
|
62
|
+
/** Campo del renglón de la acción donde va el id y el monto (`invoice_id`, `amount`). */
|
|
63
|
+
line_document_field: string;
|
|
64
|
+
line_amount_field: string;
|
|
65
|
+
option_filter?: unknown;
|
|
32
66
|
}
|
|
33
67
|
/** Un tipo de documento (Factura, Nota de crédito, REP, Global, Traslado…). */
|
|
34
68
|
export interface DocumentFormType {
|
|
@@ -48,6 +82,69 @@ export interface DocumentFormType {
|
|
|
48
82
|
endpoint?: string;
|
|
49
83
|
/** Texto del botón final. Default «Crear». */
|
|
50
84
|
submit_label?: string;
|
|
85
|
+
/**
|
|
86
|
+
* `wizard` (default: Datos → Siguiente → Renglones) o `editor`: UNA pantalla
|
|
87
|
+
* por secciones (contraparte, origen, renglones o reparto, totales, «Opciones
|
|
88
|
+
* fiscales» plegadas, vista previa opcional). Ver DocumentEditor.
|
|
89
|
+
*/
|
|
90
|
+
layout?: 'wizard' | 'editor';
|
|
91
|
+
/** Contraparte del documento (cliente / proveedor). Solo `layout: editor`. */
|
|
92
|
+
party?: DocumentFormParty;
|
|
93
|
+
/** «Cargar desde…»: documentos origen cuyos renglones se copian. */
|
|
94
|
+
sources?: DocumentFormSource[];
|
|
95
|
+
/** Vista previa / validación previa (acción del modelo con `analyze: true`). */
|
|
96
|
+
preview?: DocumentFormPreview;
|
|
97
|
+
/**
|
|
98
|
+
* Guardar llamando a una acción del modelo (placement `create`) en vez del
|
|
99
|
+
* create genérico. P. ej. Payment → `collect_multi_payment_create`, que ya
|
|
100
|
+
* reparte el pago en PaymentAllocation dentro de una transacción.
|
|
101
|
+
*/
|
|
102
|
+
submit_action?: string;
|
|
103
|
+
}
|
|
104
|
+
/** Contraparte: qué campo del encabezado la elige y qué muestra su tarjeta. */
|
|
105
|
+
export interface DocumentFormParty {
|
|
106
|
+
/** Campo del encabezado (dynamic_select) con el id. P. ej. `customer_id`. */
|
|
107
|
+
field: string;
|
|
108
|
+
/** Modelo de la contraparte. P. ej. `customers.Customer`. */
|
|
109
|
+
model: string;
|
|
110
|
+
/** Endpoint de lectura. Default `/data/<model>`. */
|
|
111
|
+
endpoint?: string;
|
|
112
|
+
/** Columnas de la tarjeta; además se muestran las extensiones `fiscal_data.*`. */
|
|
113
|
+
summary?: string[];
|
|
114
|
+
/** Columnas de crédito/saldo (si existen en el modelo). */
|
|
115
|
+
credit?: {
|
|
116
|
+
limit?: string;
|
|
117
|
+
balance?: string;
|
|
118
|
+
overdue?: string;
|
|
119
|
+
hold_reason?: string;
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/** Un documento origen para «Cargar desde…». */
|
|
123
|
+
export interface DocumentFormSource {
|
|
124
|
+
key: string;
|
|
125
|
+
label: string;
|
|
126
|
+
/** Modelo origen (p. ej. `quotes.Quote`). Si el addon no está, se oculta. */
|
|
127
|
+
model: string;
|
|
128
|
+
/** Relación one_to_many con los renglones (p. ej. `items`). */
|
|
129
|
+
lines: string;
|
|
130
|
+
/** Mapeo renglón origen → LineItem (`description: product_name`, `discount: discount_pct`…). */
|
|
131
|
+
map?: Record<string, string>;
|
|
132
|
+
/** Campos del encabezado que se copian del origen (`customer_id: customer_id`). */
|
|
133
|
+
header?: Record<string, string>;
|
|
134
|
+
/** Campo del documento que guarda el vínculo (p. ej. `sales_order_id`). */
|
|
135
|
+
link_field?: string;
|
|
136
|
+
/** Filtro de opciones del selector del origen (mismo contrato que option_filter). */
|
|
137
|
+
option_filter?: unknown;
|
|
138
|
+
/** Addon requerido (gating de UI; el servidor revalida). */
|
|
139
|
+
requires_addon?: string;
|
|
140
|
+
}
|
|
141
|
+
/** Vista previa: acción de fila sobre el borrador, llamada con `analyze: true`. */
|
|
142
|
+
export interface DocumentFormPreview {
|
|
143
|
+
/** Clave de la acción (p. ej. `preview_cfdi`, de fiscal_mexico). */
|
|
144
|
+
action: string;
|
|
145
|
+
/** Addon que la aporta (si no está instalado, el panel muestra solo totales). */
|
|
146
|
+
requires_addon?: string;
|
|
147
|
+
label?: string;
|
|
51
148
|
}
|
|
52
149
|
export interface DocumentFormsManifest {
|
|
53
150
|
/** Columna discriminadora del modelo (p. ej. `"type"`). Sin ella no se escribe el tipo. */
|
|
@@ -56,6 +153,20 @@ export interface DocumentFormsManifest {
|
|
|
56
153
|
lines_field?: string;
|
|
57
154
|
types: DocumentFormType[];
|
|
58
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Audit columns of a model, served by the kernel (>= v0.188) on the table
|
|
158
|
+
* metadata. Each value is the COLUMN NAME (the key in the row), not a value;
|
|
159
|
+
* a key is omitted when the model lacks that column (append-only ledgers have
|
|
160
|
+
* only `created_*`). Purely additive — older kernels omit `audit` entirely.
|
|
161
|
+
*/
|
|
162
|
+
export interface AuditMeta {
|
|
163
|
+
created_at?: string;
|
|
164
|
+
created_by?: string;
|
|
165
|
+
updated_at?: string;
|
|
166
|
+
updated_by?: string;
|
|
167
|
+
deleted_at?: string;
|
|
168
|
+
deleted_by?: string;
|
|
169
|
+
}
|
|
59
170
|
export interface TableMetadata {
|
|
60
171
|
title: string;
|
|
61
172
|
endpoint: string;
|
|
@@ -70,6 +181,11 @@ export interface TableMetadata {
|
|
|
70
181
|
canExport?: boolean;
|
|
71
182
|
canImport?: boolean;
|
|
72
183
|
canCreate?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* Audit columns (when/who) of the model. Feeds `<AuditInfo>`; absent on
|
|
186
|
+
* older kernels or models without audit columns.
|
|
187
|
+
*/
|
|
188
|
+
audit?: AuditMeta;
|
|
73
189
|
/**
|
|
74
190
|
* Formularios de alta guiados por tipo de documento (FAC-12). Cuando trae
|
|
75
191
|
* al menos un tipo, `DynamicCRUDPage` abre `DocumentFormDialog` en lugar del
|
|
@@ -349,6 +465,16 @@ export interface ColumnDefinition {
|
|
|
349
465
|
* widgets — `searchEndpoint` stays as the legacy escape hatch.
|
|
350
466
|
*/
|
|
351
467
|
ref?: string;
|
|
468
|
+
/**
|
|
469
|
+
* Hides options of this relation/dynamic picker (e.g. cancelled invoices in
|
|
470
|
+
* the payments selector). One rule or a list (AND), tested client-side
|
|
471
|
+
* against the option's extra columns (`meta`): `{ field: 'status', not_in:
|
|
472
|
+
* ['cancelada'] }`. The options endpoint must return that column. Absent →
|
|
473
|
+
* the picker lists everything (retrocompat). See `option-filter.ts`.
|
|
474
|
+
*/
|
|
475
|
+
optionFilter?: OptionFilter;
|
|
476
|
+
/** snake_case alias served by the kernel manifest for `optionFilter`. */
|
|
477
|
+
option_filter?: OptionFilter;
|
|
352
478
|
/**
|
|
353
479
|
* Write-time rules the SDK also pre-flights. Object form `{regex,min,max,custom}`
|
|
354
480
|
* or a Laravel / go-playground string (`required|min:2|email`).
|
|
@@ -469,6 +595,12 @@ export interface ActionFieldDef {
|
|
|
469
595
|
label: string;
|
|
470
596
|
type: string;
|
|
471
597
|
required?: boolean;
|
|
598
|
+
/**
|
|
599
|
+
* Campo de solo lectura (escrito por el servidor/sistema): `DynamicForm` lo
|
|
600
|
+
* oculta y lo excluye de defaults y submit. Acepta el alias `readOnly`.
|
|
601
|
+
*/
|
|
602
|
+
readonly?: boolean;
|
|
603
|
+
readOnly?: boolean;
|
|
472
604
|
/**
|
|
473
605
|
* Explicit nullability flag served by the kernel (v0.77.1+) from
|
|
474
606
|
* `modelbase.FieldDef.Nullable` (populated as `!Required`). An optional `ref`
|
|
@@ -489,6 +621,16 @@ export interface ActionFieldDef {
|
|
|
489
621
|
* `useOptionsResolver` against `/api/options/<ref>?field=id`.
|
|
490
622
|
*/
|
|
491
623
|
ref?: string;
|
|
624
|
+
/**
|
|
625
|
+
* Hides options of this relation/dynamic picker (e.g. cancelled invoices in
|
|
626
|
+
* the payments selector). One rule or a list (AND), tested client-side
|
|
627
|
+
* against the option's extra columns (`meta`): `{ field: 'status', not_in:
|
|
628
|
+
* ['cancelada'] }`. The options endpoint must return that column. Absent →
|
|
629
|
+
* the picker lists everything (retrocompat). See `option-filter.ts`.
|
|
630
|
+
*/
|
|
631
|
+
optionFilter?: OptionFilter;
|
|
632
|
+
/** snake_case alias served by the kernel manifest for `optionFilter`. */
|
|
633
|
+
option_filter?: OptionFilter;
|
|
492
634
|
/**
|
|
493
635
|
* snake_case aliases the kernel manifest may serve for a belongs_to FK
|
|
494
636
|
* target instead of `ref`. Treated as equivalent to `ref` by the SDK so a
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type OptionFilterRule } from './option-filter';
|
|
1
2
|
export interface ResolvedOption {
|
|
2
3
|
/** Canonical id (server-side primary key). */
|
|
3
4
|
id: string | number;
|
|
@@ -72,6 +73,13 @@ export interface UseOptionsResolverArgs {
|
|
|
72
73
|
* `fieldKey` / `query` / `limit` exactly the same way.
|
|
73
74
|
*/
|
|
74
75
|
endpoint?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Client-side rules that hide fetched options (see `option-filter.ts`).
|
|
78
|
+
* Empty/undefined → no filtering (retrocompat).
|
|
79
|
+
*/
|
|
80
|
+
optionFilter?: OptionFilterRule[];
|
|
81
|
+
/** Current selection: never hidden by `optionFilter`, so its label survives. */
|
|
82
|
+
keepValue?: unknown;
|
|
75
83
|
}
|
|
76
84
|
export interface UseOptionsResolverResult {
|
|
77
85
|
options: ResolvedOption[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-options-resolver.d.ts","sourceRoot":"","sources":["../src/use-options-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-options-resolver.d.ts","sourceRoot":"","sources":["../src/use-options-resolver.ts"],"names":[],"mappings":"AAcA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAG1E,MAAM,WAAW,cAAc;IAC3B,8CAA8C;IAC9C,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,WAAW;IACxB,oEAAoE;IACpE,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;IACnC,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,sBAAsB;IACnC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACjC,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAA;CACtB;AAuBD;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAED,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,CAER;AA8BD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,wBAAwB,CAuKzF;AASD,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,CAqBtD"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
// free; legacy callers that still ship `searchEndpoint` keep working.
|
|
13
13
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
14
14
|
import { useApi } from './api-context';
|
|
15
|
+
import { applyOptionFilter } from './option-filter';
|
|
15
16
|
import { loadQueryPart, optionsBatchToken, optionsModelFromUrl } from './query-batch';
|
|
16
17
|
/**
|
|
17
18
|
* Resolves select options for a field via the canonical
|
|
@@ -72,7 +73,7 @@ function readOptionsEnvelope(body) {
|
|
|
72
73
|
};
|
|
73
74
|
}
|
|
74
75
|
export function useOptionsResolver(args) {
|
|
75
|
-
const { modelKey, fieldKey, ref, query, limit, enabled = true, endpoint, filterValue, } = args;
|
|
76
|
+
const { modelKey, fieldKey, ref, query, limit, enabled = true, endpoint, filterValue, optionFilter, keepValue, } = args;
|
|
76
77
|
const api = useApi();
|
|
77
78
|
const [options, setOptions] = useState([]);
|
|
78
79
|
const [meta, setMeta] = useState(null);
|
|
@@ -205,8 +206,13 @@ export function useOptionsResolver(args) {
|
|
|
205
206
|
cancelled = true;
|
|
206
207
|
};
|
|
207
208
|
}, [api, url, effectiveField, query, limit, enabled, filterValue, refreshKey]);
|
|
209
|
+
// Rules arrive as a fresh array each render; key on their content.
|
|
210
|
+
const filterKey = optionFilter && optionFilter.length > 0 ? JSON.stringify(optionFilter) : '';
|
|
211
|
+
const visibleOptions = useMemo(() => (filterKey ? applyOptionFilter(options, optionFilter ?? [], keepValue) : options),
|
|
212
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
213
|
+
[options, filterKey, keepValue]);
|
|
208
214
|
return {
|
|
209
|
-
options,
|
|
215
|
+
options: visibleOptions,
|
|
210
216
|
meta,
|
|
211
217
|
loading,
|
|
212
218
|
error,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@asteby/metacore-runtime-react",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "48.0.0",
|
|
4
4
|
"description": "React runtime for metacore hosts — renders addon contributions dynamically",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"zod": "^4.3.0"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@asteby/metacore-sdk": "^3.
|
|
30
|
-
"@asteby/metacore-ui": "^2.24.
|
|
29
|
+
"@asteby/metacore-sdk": "^3.13.0",
|
|
30
|
+
"@asteby/metacore-ui": "^2.24.1",
|
|
31
31
|
"@tanstack/react-query": ">=5",
|
|
32
32
|
"@tanstack/react-router": ">=1.100",
|
|
33
33
|
"@tanstack/react-table": ">=8",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@asteby/metacore-sdk": "3.
|
|
54
|
-
"@asteby/metacore-ui": "2.24.
|
|
53
|
+
"@asteby/metacore-sdk": "3.13.0",
|
|
54
|
+
"@asteby/metacore-ui": "2.24.1",
|
|
55
55
|
"@tanstack/react-query": "^5.95.0",
|
|
56
56
|
"@tanstack/react-router": "^1.168.0",
|
|
57
57
|
"@tanstack/react-table": "^8.20.0",
|
|
@@ -11,7 +11,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest'
|
|
|
11
11
|
import { cleanup, render, screen } from '@testing-library/react'
|
|
12
12
|
|
|
13
13
|
vi.mock('react-i18next', () => ({
|
|
14
|
-
useTranslation: () => ({ t: (k: string) => k }),
|
|
14
|
+
useTranslation: () => ({ t: (k: string) => k, i18n: { language: 'es' } }),
|
|
15
15
|
}))
|
|
16
16
|
|
|
17
17
|
import { ActionModalDispatcher } from '../action-modal-dispatcher'
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
import { afterEach, describe, expect, it, vi } from 'vitest'
|
|
3
|
+
import { cleanup, fireEvent, render, screen } from '@testing-library/react'
|
|
4
|
+
|
|
5
|
+
const lang = { current: 'es' }
|
|
6
|
+
vi.mock('react-i18next', () => {
|
|
7
|
+
const t = (k: string, o?: { defaultValue?: string; who?: string }) =>
|
|
8
|
+
(o?.defaultValue ?? k).replace('{{who}}', o?.who ?? '')
|
|
9
|
+
return { useTranslation: () => ({ t, i18n: { language: lang.current } }) }
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
import { AuditInfo, readAuditMeta, resolveAuditActor, SYSTEM_ACTOR_ID } from '../audit-info'
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
cleanup()
|
|
16
|
+
lang.current = 'es'
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
const audit = {
|
|
20
|
+
created_at: 'created_at',
|
|
21
|
+
created_by: 'created_by_id',
|
|
22
|
+
updated_at: 'updated_at',
|
|
23
|
+
updated_by: 'updated_by_id',
|
|
24
|
+
deleted_at: 'deleted_at',
|
|
25
|
+
deleted_by: 'deleted_by_id',
|
|
26
|
+
}
|
|
27
|
+
const U1 = '11111111-2222-3333-4444-555555555555'
|
|
28
|
+
|
|
29
|
+
describe('readAuditMeta', () => {
|
|
30
|
+
it('keeps known string keys and drops junk', () => {
|
|
31
|
+
expect(readAuditMeta({ created_at: 'created_at', foo: 'x', updated_at: 3 })).toEqual({ created_at: 'created_at' })
|
|
32
|
+
expect(readAuditMeta(undefined)).toBeUndefined()
|
|
33
|
+
expect(readAuditMeta([])).toBeUndefined()
|
|
34
|
+
expect(readAuditMeta({})).toBeUndefined()
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
describe('resolveAuditActor', () => {
|
|
39
|
+
const o = { systemLabel: 'Sistema' }
|
|
40
|
+
it('system actor, expanded sibling, host resolver, short id, empty', () => {
|
|
41
|
+
expect(resolveAuditActor({ c: SYSTEM_ACTOR_ID }, 'c', o)?.name).toBe('Sistema')
|
|
42
|
+
expect(resolveAuditActor({ created_by_id: U1, created_by: { name: 'Ana' } }, 'created_by_id', o)?.name).toBe('Ana')
|
|
43
|
+
expect(resolveAuditActor({ c: U1 }, 'c', { ...o, resolveActor: () => 'Luis' })?.name).toBe('Luis')
|
|
44
|
+
expect(resolveAuditActor({ c: U1 }, 'c', o)).toEqual({ name: '11111111', resolved: false })
|
|
45
|
+
expect(resolveAuditActor({ c: null }, 'c', o)).toBeNull()
|
|
46
|
+
expect(resolveAuditActor({ c: '00000000-0000-0000-0000-000000000000' }, 'c', o)).toBeNull()
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
describe('<AuditInfo>', () => {
|
|
51
|
+
const record = {
|
|
52
|
+
created_at: '2026-01-01T10:00:00Z',
|
|
53
|
+
created_by_id: U1,
|
|
54
|
+
created_by: { name: 'Ana' },
|
|
55
|
+
updated_at: '2026-02-01T10:00:00Z',
|
|
56
|
+
updated_by_id: SYSTEM_ACTOR_ID,
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
it('renders nothing without audit', () => {
|
|
60
|
+
const { container } = render(<AuditInfo record={record} audit={undefined} />)
|
|
61
|
+
expect(container.innerHTML).toBe('')
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
it('renders nothing when the record has no audit values', () => {
|
|
65
|
+
const { container } = render(<AuditInfo record={{ name: 'x' }} audit={audit} />)
|
|
66
|
+
expect(container.innerHTML).toBe('')
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
it('shows created and modified (system actor) when expanded', () => {
|
|
70
|
+
render(<AuditInfo record={record} audit={audit} timeZone="UTC" />)
|
|
71
|
+
expect(screen.queryByText('Creado por Ana')).toBeNull() // collapsed
|
|
72
|
+
fireEvent.click(screen.getByRole('button'))
|
|
73
|
+
expect(screen.getByText('Creado por Ana')).toBeTruthy()
|
|
74
|
+
expect(screen.getByText('Modificado por Sistema')).toBeTruthy()
|
|
75
|
+
expect(document.querySelector('[data-audit-line="deleted"]')).toBeNull()
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
it('shows deleted line and english copy', () => {
|
|
79
|
+
lang.current = 'en'
|
|
80
|
+
render(
|
|
81
|
+
<AuditInfo
|
|
82
|
+
record={{ ...record, deleted_at: '2026-03-01T10:00:00Z', deleted_by_id: U1 }}
|
|
83
|
+
audit={audit}
|
|
84
|
+
defaultOpen
|
|
85
|
+
resolveActor={() => 'Bob'}
|
|
86
|
+
/>,
|
|
87
|
+
)
|
|
88
|
+
expect(screen.getByText('Deleted by Bob')).toBeTruthy()
|
|
89
|
+
expect(screen.getByText('Created by Bob')).toBeTruthy()
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
it('hides modified when it equals creation, falls back to date-only label without actor col', () => {
|
|
93
|
+
render(
|
|
94
|
+
<AuditInfo
|
|
95
|
+
record={{ created_at: '2026-01-01T10:00:00Z', updated_at: '2026-01-01T10:00:00Z' }}
|
|
96
|
+
audit={{ created_at: 'created_at', updated_at: 'updated_at' }}
|
|
97
|
+
defaultOpen
|
|
98
|
+
/>,
|
|
99
|
+
)
|
|
100
|
+
expect(screen.getByText('Creado')).toBeTruthy()
|
|
101
|
+
expect(document.querySelector('[data-audit-line="updated"]')).toBeNull()
|
|
102
|
+
})
|
|
103
|
+
})
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
2
|
+
import { catalogRecordToProduct, createCatalogProductSearch } from '../business/catalog-product-search'
|
|
3
|
+
import { applyProductToLine } from '../business/document-lines'
|
|
4
|
+
import { makeLine, parseLineItems, serializeLineItems } from '../business/line-items'
|
|
5
|
+
|
|
6
|
+
describe('catalogRecordToProduct', () => {
|
|
7
|
+
it('proyecta precio de venta, costo, unidad, SKU y claves de extensión', () => {
|
|
8
|
+
const p = catalogRecordToProduct(
|
|
9
|
+
{ id: 'p1', name: 'Balanceo', sku: 'SRV-1', unit_price: '350.50', cost_price: 100, unit_of_measure: 'servicio', product_type: 'service', fiscal_data: '{"mx_clave_prod_serv":"78181500","vacio":""}' },
|
|
10
|
+
0.16,
|
|
11
|
+
)
|
|
12
|
+
expect(p).toEqual({
|
|
13
|
+
id: 'p1',
|
|
14
|
+
name: 'Balanceo',
|
|
15
|
+
sku: 'SRV-1',
|
|
16
|
+
barcode: undefined,
|
|
17
|
+
kind: 'service',
|
|
18
|
+
price: 350.5,
|
|
19
|
+
cost: 100,
|
|
20
|
+
tax_rate: 0.16,
|
|
21
|
+
unit: 'servicio',
|
|
22
|
+
extensions: { mx_clave_prod_serv: '78181500' },
|
|
23
|
+
})
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it('la tasa del producto gana sobre la de la org (acepta 16 o 0.16)', () => {
|
|
27
|
+
expect(catalogRecordToProduct({ id: 'a', name: 'A', tax_rate: 8 }, 0.16).tax_rate).toBe(0.08)
|
|
28
|
+
expect(catalogRecordToProduct({ id: 'a', name: 'A', tax_rate: '0' }, 0.16).tax_rate).toBe(0)
|
|
29
|
+
expect(catalogRecordToProduct({ id: 'a', name: 'A' }).tax_rate).toBeUndefined()
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
describe('createCatalogProductSearch', () => {
|
|
34
|
+
it('consulta /data/<model> con search y omite productos inactivos', async () => {
|
|
35
|
+
const get = vi.fn().mockResolvedValue({ data: { success: true, data: [{ id: '1', name: 'A', unit_price: 10 }, { id: '2', name: 'B', is_active: false }] } })
|
|
36
|
+
const search = createCatalogProductSearch({ get }, { model: 'inventory.Item', limit: 5 })
|
|
37
|
+
const signal = new AbortController().signal
|
|
38
|
+
const res = await search({ kind: 'text', raw: ' a ', text: 'a' }, signal)
|
|
39
|
+
expect(get).toHaveBeenCalledWith('/data/inventory.Item', { params: { search: 'a', per_page: 5 }, signal })
|
|
40
|
+
expect(res.map((r) => r.id)).toEqual(['1'])
|
|
41
|
+
})
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
describe('cantidad del renglón de producto', () => {
|
|
45
|
+
it('elegir un producto sobre un renglón con cantidad 0 o vacía deja cantidad 1', () => {
|
|
46
|
+
const product = { id: 'p', name: 'P', price: 100 }
|
|
47
|
+
expect(applyProductToLine(makeLine({ quantity: 0 }), product).quantity).toBe(1)
|
|
48
|
+
expect(applyProductToLine(makeLine({ quantity: '' as unknown as number }), product).quantity).toBe(1)
|
|
49
|
+
expect(applyProductToLine(makeLine({ quantity: 3 }), product).quantity).toBe(3)
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
it('parseLineItems trata cantidad vacía como 1', () => {
|
|
53
|
+
expect(parseLineItems([{ description: 'x', quantity: '' }])[0].quantity).toBe(1)
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
it('las extensiones viajan como fiscal_data y regresan al parsear', () => {
|
|
57
|
+
const [row] = serializeLineItems([makeLine({ description: 'x', extensions: { mx_clave_unidad: 'H87' } })])
|
|
58
|
+
expect(row.fiscal_data).toEqual({ mx_clave_unidad: 'H87' })
|
|
59
|
+
expect(parseLineItems([row])[0].extensions).toEqual({ mx_clave_unidad: 'H87' })
|
|
60
|
+
})
|
|
61
|
+
})
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// header field is empty, and once the header field has a value the options
|
|
10
10
|
// request carries that value as `filter_value` and re-fetches on change.
|
|
11
11
|
import { afterEach, describe, expect, it, vi } from 'vitest'
|
|
12
|
-
import { act, cleanup, render, screen, waitFor } from '@testing-library/react'
|
|
12
|
+
import { act, cleanup, render, screen, waitFor, within } from '@testing-library/react'
|
|
13
13
|
|
|
14
14
|
// Identity translator so any raw i18n keys surface verbatim.
|
|
15
15
|
vi.mock('react-i18next', () => ({
|
|
@@ -194,6 +194,10 @@ function LineItemsHost({ headerValue }: { headerValue: string }) {
|
|
|
194
194
|
)
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
+
// The editor renders a mobile card list AND a desktop table (CSS picks one), so
|
|
198
|
+
// scope queries to the table to hit a single picker.
|
|
199
|
+
const tableCombobox = () => within(document.querySelector('table') as HTMLElement).getByRole('combobox')
|
|
200
|
+
|
|
197
201
|
describe('DynamicLineItems cascading cell', () => {
|
|
198
202
|
it('disables the picker while the header field is empty', () => {
|
|
199
203
|
const get = vi.fn(async () => ({
|
|
@@ -206,7 +210,7 @@ describe('DynamicLineItems cascading cell', () => {
|
|
|
206
210
|
</ApiProvider>,
|
|
207
211
|
)
|
|
208
212
|
// The combobox trigger is disabled and shows the dependency hint.
|
|
209
|
-
const trigger =
|
|
213
|
+
const trigger = tableCombobox()
|
|
210
214
|
expect((trigger as HTMLButtonElement).disabled).toBe(true)
|
|
211
215
|
expect(trigger.getAttribute('data-depends-blocked')).toBe('')
|
|
212
216
|
// No options request fires while blocked.
|
|
@@ -230,7 +234,7 @@ describe('DynamicLineItems cascading cell', () => {
|
|
|
230
234
|
)
|
|
231
235
|
|
|
232
236
|
// Open the popover so the typeahead fetches.
|
|
233
|
-
const trigger =
|
|
237
|
+
const trigger = tableCombobox()
|
|
234
238
|
expect((trigger as HTMLButtonElement).disabled).toBe(false)
|
|
235
239
|
await act(async () => {
|
|
236
240
|
trigger.click()
|
|
@@ -300,7 +304,10 @@ describe('DynamicLineItems cell with optionsConfig.source', () => {
|
|
|
300
304
|
meta: { type: 'dynamic', count: 1 },
|
|
301
305
|
},
|
|
302
306
|
}))
|
|
303
|
-
|
|
307
|
+
// `/options/<model>` lookups try the batched `/q` endpoint first; a client
|
|
308
|
+
// whose batch endpoint is unavailable falls back to the plain GET asserted here.
|
|
309
|
+
const post = vi.fn(async () => ({ data: { success: false } }))
|
|
310
|
+
const client = { get, post } as unknown as ApiClient
|
|
304
311
|
|
|
305
312
|
const { rerender } = render(
|
|
306
313
|
<ApiProvider client={client}>
|
|
@@ -308,7 +315,7 @@ describe('DynamicLineItems cell with optionsConfig.source', () => {
|
|
|
308
315
|
</ApiProvider>,
|
|
309
316
|
)
|
|
310
317
|
|
|
311
|
-
const trigger =
|
|
318
|
+
const trigger = tableCombobox()
|
|
312
319
|
expect((trigger as HTMLButtonElement).disabled).toBe(false)
|
|
313
320
|
await act(async () => {
|
|
314
321
|
trigger.click()
|