@asteby/metacore-runtime-react 47.1.0 → 49.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 +51 -0
- package/dist/action-modal-dispatcher.d.ts +17 -3
- package/dist/action-modal-dispatcher.d.ts.map +1 -1
- package/dist/action-modal-dispatcher.js +80 -13
- package/dist/action-priority.d.ts +34 -0
- package/dist/action-priority.d.ts.map +1 -0
- package/dist/action-priority.js +60 -0
- package/dist/business/catalog-product-search.d.ts +32 -0
- package/dist/business/catalog-product-search.d.ts.map +1 -0
- package/dist/business/catalog-product-search.js +71 -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 +119 -0
- package/dist/business/document-editor-model.d.ts.map +1 -0
- package/dist/business/document-editor-model.js +317 -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 +493 -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 +16 -1
- package/dist/business/line-items.d.ts.map +1 -1
- package/dist/business/line-items.js +14 -2
- 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 +14 -7
- package/dist/document/document-page.d.ts.map +1 -1
- package/dist/document/document-page.js +8 -1
- package/dist/document/evaluate.d.ts.map +1 -1
- package/dist/document/evaluate.js +17 -1
- package/dist/document/index.d.ts +1 -0
- package/dist/document/index.d.ts.map +1 -1
- package/dist/document/index.js +1 -0
- package/dist/document/secondary-bar.d.ts +20 -0
- package/dist/document/secondary-bar.d.ts.map +1 -0
- package/dist/document/secondary-bar.js +44 -0
- package/dist/document/types.d.ts +8 -0
- package/dist/document/types.d.ts.map +1 -1
- 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 +46 -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 +9 -13
- package/dist/dynamic-columns.d.ts.map +1 -1
- package/dist/dynamic-columns.js +27 -21
- package/dist/dynamic-crud-page.d.ts +18 -0
- package/dist/dynamic-crud-page.d.ts.map +1 -1
- package/dist/dynamic-crud-page.js +15 -6
- 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 +78 -20
- package/dist/dynamic-kanban.d.ts +9 -3
- package/dist/dynamic-kanban.d.ts.map +1 -1
- package/dist/dynamic-kanban.js +31 -12
- 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-row-actions.d.ts +8 -0
- package/dist/dynamic-row-actions.d.ts.map +1 -1
- package/dist/dynamic-row-actions.js +12 -2
- package/dist/dynamic-table.d.ts.map +1 -1
- package/dist/dynamic-table.js +64 -63
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -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/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 +93 -0
- package/dist/primitives/contributions.d.ts.map +1 -0
- package/dist/primitives/contributions.js +163 -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-actions.d.ts +21 -0
- package/dist/record-actions.d.ts.map +1 -0
- package/dist/record-actions.js +76 -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/row-actions-menu.d.ts +32 -0
- package/dist/row-actions-menu.d.ts.map +1 -0
- package/dist/row-actions-menu.js +59 -0
- package/dist/slot.d.ts +4 -21
- package/dist/slot.d.ts.map +1 -1
- package/dist/slot.js +14 -36
- package/dist/types.d.ts +134 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/catalog-product-search.test.ts +61 -0
- package/src/__tests__/document-editor-model.test.ts +221 -0
- package/src/__tests__/document-editor.test.tsx +340 -0
- package/src/__tests__/document-form-dialog.test.tsx +158 -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__/installed-addons-context.test.tsx +50 -0
- package/src/__tests__/line-item-totals.test.ts +28 -0
- package/src/__tests__/prefill-scalar-from-record.test.ts +52 -1
- 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__/row-action-link-navigation.test.ts +17 -0
- package/src/__tests__/secondary-actions.test.tsx +261 -0
- package/src/action-modal-dispatcher.tsx +97 -12
- package/src/action-priority.ts +82 -0
- package/src/business/business.test.ts +1 -1
- package/src/business/catalog-product-search.ts +105 -0
- package/src/business/catalog.ts +2 -0
- package/src/business/document-editor-model.ts +367 -0
- package/src/business/document-editor-panels.tsx +164 -0
- package/src/business/document-editor.tsx +781 -0
- package/src/business/document-lines.ts +5 -1
- package/src/business/index.ts +5 -0
- package/src/business/line-items.ts +31 -2
- package/src/business/payment-allocator.tsx +110 -0
- package/src/business/product-search.ts +4 -0
- package/src/dialogs/dynamic-record.tsx +29 -6
- package/src/document/document-page.tsx +15 -0
- package/src/document/evaluate.ts +17 -1
- package/src/document/index.ts +1 -0
- package/src/document/secondary-bar.tsx +92 -0
- package/src/document/types.ts +8 -0
- package/src/document-form-dialog.tsx +96 -12
- package/src/dynamic-columns-helpers.ts +22 -0
- package/src/dynamic-columns.tsx +35 -62
- package/src/dynamic-crud-page.tsx +33 -5
- package/src/dynamic-form-schema.ts +15 -2
- package/src/dynamic-form.tsx +117 -39
- package/src/dynamic-kanban.tsx +34 -7
- package/src/dynamic-relation-helpers.ts +9 -0
- package/src/dynamic-relation.tsx +7 -2
- package/src/dynamic-row-actions.tsx +12 -2
- package/src/dynamic-table.tsx +3 -0
- package/src/index.ts +46 -1
- package/src/installed-addons-context.tsx +58 -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 +255 -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-actions.ts +101 -0
- package/src/record-prefill-bar.tsx +62 -0
- package/src/row-action-stage-gate.test.ts +33 -0
- package/src/row-actions-menu.tsx +159 -0
- package/src/slot.tsx +18 -53
- package/src/types.ts +129 -0
package/src/types.ts
CHANGED
|
@@ -35,6 +35,40 @@ export interface DocumentFormLines {
|
|
|
35
35
|
required?: boolean
|
|
36
36
|
/** Título del paso. Default «Renglones». */
|
|
37
37
|
title?: string
|
|
38
|
+
/**
|
|
39
|
+
* Qué captura el grid (ver primitives/document-kinds LinesMode). Default `sale`.
|
|
40
|
+
* `allocation` cambia el grid por PaymentAllocator (documentos abiertos de la
|
|
41
|
+
* contraparte); `credit` limita cantidades a facturado − acreditado.
|
|
42
|
+
*/
|
|
43
|
+
kind?: 'sale' | 'purchase' | 'credit' | 'allocation' | 'workorder'
|
|
44
|
+
/** Solo `kind: allocation`: de dónde salen los documentos abiertos. */
|
|
45
|
+
open_documents?: DocumentFormOpenDocuments
|
|
46
|
+
/**
|
|
47
|
+
* Cómo se captura el descuento: `percent` (default del grid), `amount`
|
|
48
|
+
* (importe) o `both`. Debe coincidir con la fórmula del modelo de renglones:
|
|
49
|
+
* si el backend calcula `quantity * unit_price - discount`, declara `amount`
|
|
50
|
+
* (con `percent` un 10 % se restaría como $10).
|
|
51
|
+
*/
|
|
52
|
+
discount_mode?: 'percent' | 'amount' | 'both'
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Documentos con saldo de la contraparte para PaymentAllocator. */
|
|
56
|
+
export interface DocumentFormOpenDocuments {
|
|
57
|
+
/** Modelo (p. ej. `customers.Invoice`, `purchases.SupplierInvoice`). */
|
|
58
|
+
model: string
|
|
59
|
+
/** Campo del documento que apunta a la contraparte (`customer_id`). */
|
|
60
|
+
party_field: string
|
|
61
|
+
balance_field: string
|
|
62
|
+
number_field: string
|
|
63
|
+
total_field?: string
|
|
64
|
+
due_field?: string
|
|
65
|
+
issued_field?: string
|
|
66
|
+
/** Columna con el método (PUE/PPD…); el núcleo solo la muestra. */
|
|
67
|
+
method_field?: string
|
|
68
|
+
/** Campo del renglón de la acción donde va el id y el monto (`invoice_id`, `amount`). */
|
|
69
|
+
line_document_field: string
|
|
70
|
+
line_amount_field: string
|
|
71
|
+
option_filter?: unknown
|
|
38
72
|
}
|
|
39
73
|
|
|
40
74
|
/** Un tipo de documento (Factura, Nota de crédito, REP, Global, Traslado…). */
|
|
@@ -55,6 +89,81 @@ export interface DocumentFormType {
|
|
|
55
89
|
endpoint?: string
|
|
56
90
|
/** Texto del botón final. Default «Crear». */
|
|
57
91
|
submit_label?: string
|
|
92
|
+
/**
|
|
93
|
+
* `wizard` (default: Datos → Siguiente → Renglones) o `editor`: UNA pantalla
|
|
94
|
+
* por secciones (contraparte, origen, renglones o reparto, totales, «Opciones
|
|
95
|
+
* fiscales» plegadas, vista previa opcional). Ver DocumentEditor.
|
|
96
|
+
*/
|
|
97
|
+
layout?: 'wizard' | 'editor'
|
|
98
|
+
/** Contraparte del documento (cliente / proveedor). Solo `layout: editor`. */
|
|
99
|
+
party?: DocumentFormParty
|
|
100
|
+
/** «Cargar desde…»: documentos origen cuyos renglones se copian. */
|
|
101
|
+
sources?: DocumentFormSource[]
|
|
102
|
+
/** Vista previa / validación previa (acción del modelo con `analyze: true`). */
|
|
103
|
+
preview?: DocumentFormPreview
|
|
104
|
+
/**
|
|
105
|
+
* Guardar llamando a una acción del modelo (placement `create`) en vez del
|
|
106
|
+
* create genérico. P. ej. Payment → `collect_multi_payment_create`, que ya
|
|
107
|
+
* reparte el pago en PaymentAllocation dentro de una transacción.
|
|
108
|
+
*/
|
|
109
|
+
submit_action?: string
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** Contraparte: qué campo del encabezado la elige y qué muestra su tarjeta. */
|
|
113
|
+
export interface DocumentFormParty {
|
|
114
|
+
/** Campo del encabezado (dynamic_select) con el id. P. ej. `customer_id`. */
|
|
115
|
+
field: string
|
|
116
|
+
/** Modelo de la contraparte. P. ej. `customers.Customer`. */
|
|
117
|
+
model: string
|
|
118
|
+
/** Endpoint de lectura. Default `/data/<model>`. */
|
|
119
|
+
endpoint?: string
|
|
120
|
+
/** Columnas de la tarjeta; además se muestran las extensiones `fiscal_data.*`. */
|
|
121
|
+
summary?: string[]
|
|
122
|
+
/** Columnas de crédito/saldo (si existen en el modelo). */
|
|
123
|
+
credit?: { limit?: string; balance?: string; overdue?: string; hold_reason?: string }
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** Un documento origen para «Cargar desde…». */
|
|
127
|
+
export interface DocumentFormSource {
|
|
128
|
+
key: string
|
|
129
|
+
label: string
|
|
130
|
+
/** Modelo origen (p. ej. `quotes.Quote`). Si el addon no está, se oculta. */
|
|
131
|
+
model: string
|
|
132
|
+
/** Relación one_to_many con los renglones (p. ej. `items`). */
|
|
133
|
+
lines: string
|
|
134
|
+
/** Mapeo renglón origen → LineItem (`description: product_name`, `discount: discount_pct`…). */
|
|
135
|
+
map?: Record<string, string>
|
|
136
|
+
/** Campos del encabezado que se copian del origen (`customer_id: customer_id`). */
|
|
137
|
+
header?: Record<string, string>
|
|
138
|
+
/** Campo del documento que guarda el vínculo (p. ej. `sales_order_id`). */
|
|
139
|
+
link_field?: string
|
|
140
|
+
/** Filtro de opciones del selector del origen (mismo contrato que option_filter). */
|
|
141
|
+
option_filter?: unknown
|
|
142
|
+
/** Addon requerido (gating de UI; el servidor revalida). */
|
|
143
|
+
requires_addon?: string
|
|
144
|
+
/** Columna de cantidad del renglón origen (default `quantity`). */
|
|
145
|
+
qty_field?: string
|
|
146
|
+
/**
|
|
147
|
+
* Columna del renglón de ESTE documento que guarda el id del renglón origen
|
|
148
|
+
* (p. ej. `sales_order_item_id`). Con ella el host sirve lo pendiente por
|
|
149
|
+
* renglón (`<endpoint>/source-lines`) y rechaza al guardar si se excede.
|
|
150
|
+
*/
|
|
151
|
+
line_link_field?: string
|
|
152
|
+
/** Columna del renglón origen que ya trae lo pendiente (la mantiene su addon). */
|
|
153
|
+
remaining_qty_field?: string
|
|
154
|
+
/** Endpoint del addon que sirve los renglones con `remaining_quantity` (`?id=`). */
|
|
155
|
+
remaining_endpoint?: string
|
|
156
|
+
/** Estados de este documento que no consumen el origen (cancelada…). */
|
|
157
|
+
exclude_states?: string[]
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/** Vista previa: acción de fila sobre el borrador, llamada con `analyze: true`. */
|
|
161
|
+
export interface DocumentFormPreview {
|
|
162
|
+
/** Clave de la acción (p. ej. `preview_cfdi`, de fiscal_mexico). */
|
|
163
|
+
action: string
|
|
164
|
+
/** Addon que la aporta (si no está instalado, el panel muestra solo totales). */
|
|
165
|
+
requires_addon?: string
|
|
166
|
+
label?: string
|
|
58
167
|
}
|
|
59
168
|
|
|
60
169
|
export interface DocumentFormsManifest {
|
|
@@ -557,6 +666,12 @@ export interface ActionFieldDef {
|
|
|
557
666
|
label: string
|
|
558
667
|
type: string
|
|
559
668
|
required?: boolean
|
|
669
|
+
/**
|
|
670
|
+
* Campo de solo lectura (escrito por el servidor/sistema): `DynamicForm` lo
|
|
671
|
+
* oculta y lo excluye de defaults y submit. Acepta el alias `readOnly`.
|
|
672
|
+
*/
|
|
673
|
+
readonly?: boolean
|
|
674
|
+
readOnly?: boolean
|
|
560
675
|
/**
|
|
561
676
|
* Explicit nullability flag served by the kernel (v0.77.1+) from
|
|
562
677
|
* `modelbase.FieldDef.Nullable` (populated as `!Required`). An optional `ref`
|
|
@@ -806,6 +921,18 @@ export interface ActionDefinition {
|
|
|
806
921
|
*/
|
|
807
922
|
replaces_create?: boolean
|
|
808
923
|
replacesCreate?: boolean
|
|
924
|
+
/**
|
|
925
|
+
* Manifest v3 `priority`. "primary": la única acción destacada del menú de
|
|
926
|
+
* fila / cabecera. "secondary": compartir, imprimir, correo, chat → pie del
|
|
927
|
+
* documento y «Más…» del menú de fila. Sin valor: convención por clave
|
|
928
|
+
* (ver classifyActionPriority).
|
|
929
|
+
*/
|
|
930
|
+
priority?: 'primary' | 'secondary'
|
|
931
|
+
/**
|
|
932
|
+
* Cómo despacha (served `trigger`). `type: "capability"` necesita un addon
|
|
933
|
+
* que provea `capability`; sin proveedor activo la acción no se ofrece.
|
|
934
|
+
*/
|
|
935
|
+
trigger?: { type: string; capability?: string; connector?: string }
|
|
809
936
|
/**
|
|
810
937
|
* Optional addon this action depends on, stamped by the host only while it
|
|
811
938
|
* is NOT installed (served as `requires_addon`; read through
|
|
@@ -857,6 +984,8 @@ export interface ActionMetadata {
|
|
|
857
984
|
/** Federated modal slug "<addon_key>.<action_key>"; see ActionModalDispatcher. */
|
|
858
985
|
modal?: string
|
|
859
986
|
placement?: 'row' | 'table' | 'create'
|
|
987
|
+
/** Manifest v3 `priority`; ver ActionDefinition.priority. */
|
|
988
|
+
priority?: 'primary' | 'secondary'
|
|
860
989
|
/**
|
|
861
990
|
* Optional addon this action depends on, stamped by the host only while it
|
|
862
991
|
* is NOT installed (served as `requires_addon`; read through
|