@asteby/metacore-runtime-react 28.6.0 → 28.8.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 +32 -0
- package/dist/dialogs/import.d.ts.map +1 -1
- package/dist/dialogs/import.js +17 -6
- package/dist/dynamic-columns.d.ts.map +1 -1
- package/dist/dynamic-columns.js +13 -1
- package/dist/dynamic-table.d.ts +10 -1
- package/dist/dynamic-table.d.ts.map +1 -1
- package/dist/dynamic-table.js +10 -3
- package/dist/entity-select.d.ts +43 -0
- package/dist/entity-select.d.ts.map +1 -0
- package/dist/entity-select.js +124 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/print-document-button.d.ts +21 -0
- package/dist/print-document-button.d.ts.map +1 -0
- package/dist/print-document-button.js +32 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/use-print-document.d.ts +25 -0
- package/dist/use-print-document.d.ts.map +1 -0
- package/dist/use-print-document.js +79 -0
- package/package.json +1 -1
- package/src/dialogs/import.tsx +48 -18
- package/src/dynamic-columns.tsx +14 -1
- package/src/dynamic-table.tsx +24 -4
- package/src/entity-select.tsx +316 -0
- package/src/index.ts +4 -0
- package/src/print-document-button.tsx +75 -0
- package/src/types.ts +31 -0
- package/src/use-print-document.ts +112 -0
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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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface PrintDocumentArgs {
|
|
2
|
+
/** The model KEY the document is declared against (e.g. "SalesOrder"). */
|
|
3
|
+
model: string;
|
|
4
|
+
/** The record id. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** The document key from contributions.documents[].key (e.g. "sale_ticket"). */
|
|
7
|
+
key: string;
|
|
8
|
+
/**
|
|
9
|
+
* print → open the PDF in a hidden iframe and fire the browser print dialog
|
|
10
|
+
* (default; best for thermal tickets — one click to the printer).
|
|
11
|
+
* download → save the PDF to disk.
|
|
12
|
+
* open → open the PDF in a new tab (user prints from the viewer).
|
|
13
|
+
*/
|
|
14
|
+
mode?: 'print' | 'download' | 'open';
|
|
15
|
+
/** Filename for the download mode (defaults to "<key>.pdf"). */
|
|
16
|
+
filename?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Returns a `printDocument(args)` callback. Resolves once the PDF has been
|
|
20
|
+
* fetched and the browser action (print/download/open) has been kicked off;
|
|
21
|
+
* rejects if the fetch fails (surface the error to a toast). Returns the blob
|
|
22
|
+
* URL created, revoked automatically after a minute.
|
|
23
|
+
*/
|
|
24
|
+
export declare function usePrintDocument(): ({ model, id, key, mode, filename, }: PrintDocumentArgs) => Promise<string>;
|
|
25
|
+
//# sourceMappingURL=use-print-document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-print-document.d.ts","sourceRoot":"","sources":["../src/use-print-document.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,iBAAiB;IAC9B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAA;IACX;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;IACpC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,0CASrB,iBAAiB,KAAG,OAAO,CAAC,MAAM,CAAC,CAyD7C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// usePrintDocument — THE standard primitive for printing/downloading a
|
|
2
|
+
// server-rendered document (ticket, receipt, order) from any federated addon or
|
|
3
|
+
// host surface, without each addon reimplementing PDF fetching.
|
|
4
|
+
//
|
|
5
|
+
// The host (ops) renders documents declared in an addon's
|
|
6
|
+
// `contributions.documents[]` via a country/business-agnostic engine
|
|
7
|
+
// (pdf_chrome + document_render + org branding) and serves them at:
|
|
8
|
+
//
|
|
9
|
+
// GET /api/data/:model/:id/documents/:key.pdf → application/pdf
|
|
10
|
+
//
|
|
11
|
+
// The endpoint is auth-gated (Bearer), so we CANNOT just window.open the URL —
|
|
12
|
+
// that request carries no Authorization header and 401s. Instead we fetch the
|
|
13
|
+
// PDF through the injected ApiClient (which carries the token), turn the bytes
|
|
14
|
+
// into a blob URL, and print/download/open that. Re-printing is just calling
|
|
15
|
+
// this again — the render is an idempotent GET.
|
|
16
|
+
//
|
|
17
|
+
// The ApiClient is a PEER via <ApiProvider> (same one useAddonSettings uses), so
|
|
18
|
+
// this hook constructs no client of its own.
|
|
19
|
+
import { useCallback } from 'react';
|
|
20
|
+
import { useApi } from './api-context';
|
|
21
|
+
/**
|
|
22
|
+
* Returns a `printDocument(args)` callback. Resolves once the PDF has been
|
|
23
|
+
* fetched and the browser action (print/download/open) has been kicked off;
|
|
24
|
+
* rejects if the fetch fails (surface the error to a toast). Returns the blob
|
|
25
|
+
* URL created, revoked automatically after a minute.
|
|
26
|
+
*/
|
|
27
|
+
export function usePrintDocument() {
|
|
28
|
+
const api = useApi();
|
|
29
|
+
return useCallback(async ({ model, id, key, mode = 'print', filename, }) => {
|
|
30
|
+
const url = `/data/${encodeURIComponent(model)}/${encodeURIComponent(id)}/documents/${encodeURIComponent(key)}.pdf`;
|
|
31
|
+
const res = await api.get(url, { responseType: 'blob' });
|
|
32
|
+
const blob = res.data instanceof Blob
|
|
33
|
+
? res.data
|
|
34
|
+
: new Blob([res.data], { type: 'application/pdf' });
|
|
35
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
36
|
+
const cleanup = () => setTimeout(() => URL.revokeObjectURL(blobUrl), 60_000);
|
|
37
|
+
if (mode === 'download') {
|
|
38
|
+
const a = document.createElement('a');
|
|
39
|
+
a.href = blobUrl;
|
|
40
|
+
a.download = filename || `${key}.pdf`;
|
|
41
|
+
document.body.appendChild(a);
|
|
42
|
+
a.click();
|
|
43
|
+
a.remove();
|
|
44
|
+
cleanup();
|
|
45
|
+
return blobUrl;
|
|
46
|
+
}
|
|
47
|
+
if (mode === 'open') {
|
|
48
|
+
window.open(blobUrl, '_blank');
|
|
49
|
+
cleanup();
|
|
50
|
+
return blobUrl;
|
|
51
|
+
}
|
|
52
|
+
// mode === 'print': hidden iframe + contentWindow.print(). This is the
|
|
53
|
+
// reliable cross-browser way to auto-open the print dialog for a PDF
|
|
54
|
+
// blob (window.open + print() is blocked by the PDF viewer in Chrome).
|
|
55
|
+
const iframe = document.createElement('iframe');
|
|
56
|
+
iframe.style.position = 'fixed';
|
|
57
|
+
iframe.style.right = '0';
|
|
58
|
+
iframe.style.bottom = '0';
|
|
59
|
+
iframe.style.width = '0';
|
|
60
|
+
iframe.style.height = '0';
|
|
61
|
+
iframe.style.border = '0';
|
|
62
|
+
iframe.src = blobUrl;
|
|
63
|
+
iframe.onload = () => {
|
|
64
|
+
try {
|
|
65
|
+
iframe.contentWindow?.focus();
|
|
66
|
+
iframe.contentWindow?.print();
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Popup/print blocked — fall back to opening the PDF.
|
|
70
|
+
window.open(blobUrl, '_blank');
|
|
71
|
+
}
|
|
72
|
+
// Keep the iframe around long enough for the print dialog to read it.
|
|
73
|
+
setTimeout(() => iframe.remove(), 60_000);
|
|
74
|
+
cleanup();
|
|
75
|
+
};
|
|
76
|
+
document.body.appendChild(iframe);
|
|
77
|
+
return blobUrl;
|
|
78
|
+
}, [api]);
|
|
79
|
+
}
|
package/package.json
CHANGED
package/src/dialogs/import.tsx
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
// ImportDialog — three-step CSV/JSON import flow (upload → validate →
|
|
2
|
-
// with per-row error report).
|
|
1
|
+
// ImportDialog — three-step XLSX/CSV/JSON import flow (upload → validate →
|
|
2
|
+
// import with per-row error report). The template, the accepted columns and
|
|
3
|
+
// the validation rules all come from the model's ImportSpec served by the
|
|
4
|
+
// kernel, so this dialog carries no per-model knowledge. Axios-like client is
|
|
5
|
+
// provided by <ApiProvider>.
|
|
3
6
|
import { useState, useEffect, useRef } from 'react'
|
|
4
7
|
import {
|
|
5
8
|
Dialog,
|
|
@@ -32,20 +35,37 @@ interface ImportDialogProps {
|
|
|
32
35
|
onImported?: () => void
|
|
33
36
|
}
|
|
34
37
|
|
|
35
|
-
|
|
38
|
+
// RowError is one problem the backend reports against one spreadsheet row.
|
|
39
|
+
// The kernel returns `{row, column, message}` on validate and
|
|
40
|
+
// `{row, column, error}` on import; older backends returned `{row, field,
|
|
41
|
+
// message}`. Normalising here keeps the dialog working against every one of
|
|
42
|
+
// them instead of rendering blank cells.
|
|
43
|
+
interface RowError {
|
|
36
44
|
row: number
|
|
37
|
-
|
|
38
|
-
|
|
45
|
+
column?: string
|
|
46
|
+
field?: string
|
|
47
|
+
message?: string
|
|
48
|
+
error?: string
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function errorColumn(e: RowError): string {
|
|
52
|
+
return e.column ?? e.field ?? ''
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function errorMessage(e: RowError): string {
|
|
56
|
+
return e.message ?? e.error ?? ''
|
|
39
57
|
}
|
|
40
58
|
|
|
41
59
|
interface ValidationResult {
|
|
42
60
|
valid: number
|
|
43
|
-
|
|
61
|
+
skipped: number
|
|
62
|
+
errors: RowError[]
|
|
44
63
|
}
|
|
45
64
|
|
|
46
65
|
interface ImportResult {
|
|
47
66
|
created: number
|
|
48
|
-
|
|
67
|
+
skipped: number
|
|
68
|
+
errors: RowError[]
|
|
49
69
|
}
|
|
50
70
|
|
|
51
71
|
type Step = 'upload' | 'validation' | 'results'
|
|
@@ -93,7 +113,7 @@ export function ImportDialog({
|
|
|
93
113
|
const url = window.URL.createObjectURL(response.data)
|
|
94
114
|
const link = document.createElement('a')
|
|
95
115
|
link.href = url
|
|
96
|
-
link.download = `${model}-plantilla.
|
|
116
|
+
link.download = `${model}-plantilla.xlsx`
|
|
97
117
|
document.body.appendChild(link)
|
|
98
118
|
link.click()
|
|
99
119
|
document.body.removeChild(link)
|
|
@@ -120,7 +140,8 @@ export function ImportDialog({
|
|
|
120
140
|
|
|
121
141
|
const data = res.data?.data ?? res.data
|
|
122
142
|
setValidationResult({
|
|
123
|
-
valid: data.valid ?? 0,
|
|
143
|
+
valid: data.rowCount ?? data.valid ?? 0,
|
|
144
|
+
skipped: data.skipped ?? 0,
|
|
124
145
|
errors: data.errors ?? [],
|
|
125
146
|
})
|
|
126
147
|
setStep('validation')
|
|
@@ -157,7 +178,8 @@ export function ImportDialog({
|
|
|
157
178
|
const data = res.data?.data ?? res.data
|
|
158
179
|
setImportResult({
|
|
159
180
|
created: data.created ?? 0,
|
|
160
|
-
|
|
181
|
+
skipped: data.skipped ?? 0,
|
|
182
|
+
errors: data.failures ?? data.errors ?? [],
|
|
161
183
|
})
|
|
162
184
|
setStep('results')
|
|
163
185
|
|
|
@@ -206,10 +228,11 @@ export function ImportDialog({
|
|
|
206
228
|
onClick={handleDownloadTemplate}
|
|
207
229
|
>
|
|
208
230
|
<FileDown className="h-4 w-4 mr-1" />
|
|
209
|
-
Descargar plantilla
|
|
231
|
+
Descargar plantilla
|
|
210
232
|
</Button>
|
|
211
233
|
<p className="text-xs text-muted-foreground mt-1">
|
|
212
|
-
|
|
234
|
+
La plantilla trae las columnas, un ejemplo y las
|
|
235
|
+
instrucciones. Borra la fila de ejemplo antes de subir.
|
|
213
236
|
</p>
|
|
214
237
|
</div>
|
|
215
238
|
|
|
@@ -221,12 +244,12 @@ export function ImportDialog({
|
|
|
221
244
|
ref={fileInputRef}
|
|
222
245
|
id="import-file"
|
|
223
246
|
type="file"
|
|
224
|
-
accept=".csv,.json"
|
|
247
|
+
accept=".xlsx,.xls,.csv,.json"
|
|
225
248
|
onChange={handleFileChange}
|
|
226
249
|
className="cursor-pointer"
|
|
227
250
|
/>
|
|
228
251
|
<p className="text-xs text-muted-foreground">
|
|
229
|
-
Formatos aceptados: CSV, JSON
|
|
252
|
+
Formatos aceptados: Excel, CSV, JSON
|
|
230
253
|
</p>
|
|
231
254
|
</div>
|
|
232
255
|
</div>
|
|
@@ -251,6 +274,13 @@ export function ImportDialog({
|
|
|
251
274
|
)}
|
|
252
275
|
</div>
|
|
253
276
|
|
|
277
|
+
{validationResult.skipped > 0 && (
|
|
278
|
+
<p className="text-xs text-muted-foreground">
|
|
279
|
+
Se ignoraron {validationResult.skipped} fila(s) de ejemplo
|
|
280
|
+
de la plantilla.
|
|
281
|
+
</p>
|
|
282
|
+
)}
|
|
283
|
+
|
|
254
284
|
{validationResult.errors.length > 0 && (
|
|
255
285
|
<div className="border rounded-md max-h-60 overflow-auto">
|
|
256
286
|
<Table>
|
|
@@ -268,10 +298,10 @@ export function ImportDialog({
|
|
|
268
298
|
{error.row}
|
|
269
299
|
</TableCell>
|
|
270
300
|
<TableCell className="text-sm">
|
|
271
|
-
{error
|
|
301
|
+
{errorColumn(error)}
|
|
272
302
|
</TableCell>
|
|
273
303
|
<TableCell className="text-sm text-destructive">
|
|
274
|
-
{error
|
|
304
|
+
{errorMessage(error)}
|
|
275
305
|
</TableCell>
|
|
276
306
|
</TableRow>
|
|
277
307
|
))}
|
|
@@ -336,10 +366,10 @@ export function ImportDialog({
|
|
|
336
366
|
{error.row}
|
|
337
367
|
</TableCell>
|
|
338
368
|
<TableCell className="text-sm">
|
|
339
|
-
{error
|
|
369
|
+
{errorColumn(error)}
|
|
340
370
|
</TableCell>
|
|
341
371
|
<TableCell className="text-sm text-destructive">
|
|
342
|
-
{error
|
|
372
|
+
{errorMessage(error)}
|
|
343
373
|
</TableCell>
|
|
344
374
|
</TableRow>
|
|
345
375
|
))}
|
package/src/dynamic-columns.tsx
CHANGED
|
@@ -899,7 +899,20 @@ export function makeDefaultGetDynamicColumns(
|
|
|
899
899
|
col.tooltip ||
|
|
900
900
|
col.displayField ||
|
|
901
901
|
col.key
|
|
902
|
-
|
|
902
|
+
// A `creator` cell with no resolved actor means the
|
|
903
|
+
// record was created by the SYSTEM (e.g. an owner /
|
|
904
|
+
// seed row whose `created_by` is null), not a missing
|
|
905
|
+
// value — show "Sistema" rather than "N/A". Matches
|
|
906
|
+
// the record-history actor fallback. `user`/`avatar`/
|
|
907
|
+
// `search` keep "N/A" (empty there means unassigned).
|
|
908
|
+
const resolvedName = getNestedValue(row.original, namePath)
|
|
909
|
+
const name =
|
|
910
|
+
resolvedName ||
|
|
911
|
+
(renderAs === 'creator'
|
|
912
|
+
? t
|
|
913
|
+
? t('common.system', { defaultValue: 'Sistema' })
|
|
914
|
+
: 'Sistema'
|
|
915
|
+
: 'N/A')
|
|
903
916
|
const desc = getNestedValue(row.original, col.description || '')
|
|
904
917
|
|
|
905
918
|
const avatarSrc = resolveAvatarSrc(col, row.original, value, apiBaseUrl)
|
package/src/dynamic-table.tsx
CHANGED
|
@@ -165,6 +165,15 @@ export interface DynamicTableProps {
|
|
|
165
165
|
*/
|
|
166
166
|
mutationEndpoint?: string
|
|
167
167
|
enableUrlSync?: boolean
|
|
168
|
+
/**
|
|
169
|
+
* Hide the import action on THIS view even when the model supports it.
|
|
170
|
+
* A role-scoped view (e.g. a rep seeing only their own records) usually
|
|
171
|
+
* wants the table without a bulk-import entry point, while the same model
|
|
172
|
+
* keeps it on the admin view. Absent → the model's metadata decides.
|
|
173
|
+
*/
|
|
174
|
+
hideImport?: boolean
|
|
175
|
+
/** Hide the export action on this view. See `hideImport`. */
|
|
176
|
+
hideExport?: boolean
|
|
168
177
|
hiddenColumns?: string[]
|
|
169
178
|
onAction?: (action: string, row: any) => void
|
|
170
179
|
/**
|
|
@@ -225,6 +234,8 @@ export function DynamicTable({
|
|
|
225
234
|
endpoint,
|
|
226
235
|
mutationEndpoint,
|
|
227
236
|
enableUrlSync = true,
|
|
237
|
+
hideImport,
|
|
238
|
+
hideExport,
|
|
228
239
|
hiddenColumns = [],
|
|
229
240
|
onAction,
|
|
230
241
|
onRowClick,
|
|
@@ -644,6 +655,15 @@ export function DynamicTable({
|
|
|
644
655
|
return gateTableMetadata(metadata, model, can, (key, fallback) => t(key, { defaultValue: fallback }))
|
|
645
656
|
}, [metadata, permissionsActive, can, model, t])
|
|
646
657
|
|
|
658
|
+
// Importing is offered when the host opts in explicitly (`canImport`) or,
|
|
659
|
+
// when it says nothing, whenever the kernel served an import spec for the
|
|
660
|
+
// model — which it does for every model with at least one importable form
|
|
661
|
+
// field. That makes the flow work out of the box instead of requiring each
|
|
662
|
+
// host to flip a flag per view.
|
|
663
|
+
const importEnabled =
|
|
664
|
+
!hideImport && (viewMetadata?.canImport ?? Boolean(viewMetadata?.import?.columns?.length))
|
|
665
|
+
const exportEnabled = !hideExport && Boolean(viewMetadata?.canExport)
|
|
666
|
+
|
|
647
667
|
const buildFilterParams = useCallback(() => {
|
|
648
668
|
const params: Record<string, any> = {}
|
|
649
669
|
if (sorting.length > 0) {
|
|
@@ -1202,12 +1222,12 @@ export function DynamicTable({
|
|
|
1202
1222
|
onBulkDelete={() => setShowBulkDeleteConfirm(true)}
|
|
1203
1223
|
extraActions={
|
|
1204
1224
|
<>
|
|
1205
|
-
{
|
|
1225
|
+
{exportEnabled && (
|
|
1206
1226
|
<Button variant="outline" size="sm" className="h-8" onClick={() => setExportOpen(true)}>
|
|
1207
1227
|
<Download className="h-4 w-4 mr-1" /> Exportar
|
|
1208
1228
|
</Button>
|
|
1209
1229
|
)}
|
|
1210
|
-
{
|
|
1230
|
+
{importEnabled && (
|
|
1211
1231
|
<Button variant="outline" size="sm" className="h-8" onClick={() => setImportOpen(true)}>
|
|
1212
1232
|
<Upload className="h-4 w-4 mr-1" /> Importar
|
|
1213
1233
|
</Button>
|
|
@@ -1478,10 +1498,10 @@ export function DynamicTable({
|
|
|
1478
1498
|
</AlertDialogContent>
|
|
1479
1499
|
</AlertDialog>
|
|
1480
1500
|
|
|
1481
|
-
{
|
|
1501
|
+
{exportEnabled && (
|
|
1482
1502
|
<ExportDialog open={exportOpen} onOpenChange={setExportOpen} model={model} metadata={metadata} currentFilters={buildFilterParams()} hasActiveFilters={hasActiveFilters} />
|
|
1483
1503
|
)}
|
|
1484
|
-
{
|
|
1504
|
+
{importEnabled && (
|
|
1485
1505
|
<ImportDialog open={importOpen} onOpenChange={setImportOpen} model={model} metadata={metadata} onImported={handleRefresh} />
|
|
1486
1506
|
)}
|
|
1487
1507
|
<DataTableBulkActions table={table} entityName="registro">
|