@asteby/metacore-runtime-react 48.0.0 → 49.1.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 +41 -0
- package/dist/action-modal-dispatcher.d.ts +33 -3
- package/dist/action-modal-dispatcher.d.ts.map +1 -1
- package/dist/action-modal-dispatcher.js +84 -11
- 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 +7 -0
- package/dist/business/catalog-product-search.d.ts.map +1 -1
- package/dist/business/catalog-product-search.js +14 -0
- package/dist/business/document-editor-model.d.ts +14 -2
- package/dist/business/document-editor-model.d.ts.map +1 -1
- package/dist/business/document-editor-model.js +42 -4
- package/dist/business/document-editor.d.ts.map +1 -1
- package/dist/business/document-editor.js +68 -19
- package/dist/business/line-items.d.ts +9 -1
- package/dist/business/line-items.d.ts.map +1 -1
- package/dist/business/line-items.js +8 -1
- package/dist/calendar-date.d.ts +12 -0
- package/dist/calendar-date.d.ts.map +1 -1
- package/dist/calendar-date.js +36 -0
- 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 +23 -2
- package/dist/document-form-dialog.d.ts.map +1 -1
- package/dist/document-form-dialog.js +48 -9
- package/dist/dynamic-columns.d.ts +1 -11
- package/dist/dynamic-columns.d.ts.map +1 -1
- package/dist/dynamic-columns.js +7 -17
- package/dist/dynamic-crud-page.d.ts +19 -0
- package/dist/dynamic-crud-page.d.ts.map +1 -1
- package/dist/dynamic-crud-page.js +6 -5
- 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 +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/primitives/contributions.d.ts +14 -3
- package/dist/primitives/contributions.d.ts.map +1 -1
- package/dist/primitives/contributions.js +50 -13
- 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/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 +39 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/document-editor-model.test.ts +55 -1
- package/src/__tests__/document-editor.test.tsx +80 -1
- package/src/__tests__/document-form-create-model.test.tsx +143 -0
- package/src/__tests__/document-form-dialog.test.tsx +40 -0
- package/src/__tests__/field-default-today.test.tsx +116 -0
- package/src/__tests__/prefill-scalar-from-record.test.ts +52 -1
- 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 -17
- package/src/action-priority.ts +82 -0
- package/src/business/business.test.ts +1 -1
- package/src/business/catalog-product-search.ts +18 -0
- package/src/business/document-editor-model.ts +48 -6
- package/src/business/document-editor.tsx +75 -20
- package/src/business/line-items.ts +16 -1
- package/src/calendar-date.ts +36 -0
- 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 +67 -8
- package/src/dynamic-columns.tsx +13 -57
- package/src/dynamic-crud-page.tsx +31 -4
- package/src/dynamic-row-actions.tsx +12 -2
- package/src/dynamic-table.tsx +3 -0
- package/src/index.ts +31 -0
- package/src/primitives/contributions.ts +59 -12
- package/src/record-actions.ts +101 -0
- package/src/row-actions-menu.tsx +159 -0
- package/src/slot.tsx +18 -53
- package/src/types.ts +35 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -32,12 +32,13 @@ export * from './barcode-scanner';
|
|
|
32
32
|
export * from './form-layout';
|
|
33
33
|
export * from './form-layout-ui';
|
|
34
34
|
export { FieldGrid, FieldCell, FieldLabel } from './field-grid';
|
|
35
|
-
export { ActionModalDispatcher, FEDERATED_ACTION_MODAL_TIMEOUT_MS, } from './action-modal-dispatcher';
|
|
35
|
+
export { ActionModalDispatcher, FEDERATED_ACTION_MODAL_TIMEOUT_MS, resolveFieldDefault, } from './action-modal-dispatcher';
|
|
36
|
+
export { todayInZone, isTodayToken } from './calendar-date';
|
|
36
37
|
export { setFederatedActionLoader } from './federated-action-loader';
|
|
37
38
|
export { ModelActionToolbar, useModelActions, } from './model-action-toolbar';
|
|
38
39
|
export { resolveListPrimaryAction, actionReplacesCreate, } from './list-primary-action';
|
|
39
40
|
export { emitRecordMutation, subscribeRecordMutations, RECORD_MUTATION_EVENT, } from './record-mutation-events';
|
|
40
|
-
export { DocumentFormDialog, resolveDocumentForms, scopeDocumentFormsToFilter, } from './document-form-dialog';
|
|
41
|
+
export { DocumentFormDialog, resolveDocumentForms, scopeDocumentFormsToFilter, delegatedCreate, withoutDelegatedTypes, } from './document-form-dialog';
|
|
41
42
|
export { modelFromNavUrl, capabilityForNavItem, isNavItemAllowed, useNavItemVisible, } from './nav-permissions';
|
|
42
43
|
export { CfdiStampPanel, CfdiStampResultDialog, extractStampResult, } from './cfdi-stamp-panel';
|
|
43
44
|
export { useRecordMutationTick } from './use-record-mutation-tick';
|
|
@@ -127,3 +128,9 @@ export { InstalledAddonsProvider, useAddonInstalled, useCapabilityProvided, useI
|
|
|
127
128
|
// Ayudantes de captura (registerRecordPrefill de @asteby/metacore-sdk) arriba
|
|
128
129
|
// del formulario genérico de un modelo; DynamicRecordDialog ya lo monta.
|
|
129
130
|
export { RecordPrefillBar } from './record-prefill-bar';
|
|
131
|
+
// Acciones primarias / secundarias de un registro: una sola primaria
|
|
132
|
+
// destacada; compartir/imprimir/correo/chat al «Más…» de la fila y al pie del
|
|
133
|
+
// documento. Las aportadas por addons (registerRecordAction del SDK) sólo con
|
|
134
|
+
// su proveedor instalado y activo.
|
|
135
|
+
export { RowActionsMenu, RowActionMenuItem, RowActionsModelContext, } from './row-actions-menu';
|
|
136
|
+
export { classifyActionPriority, isActionProviderActive, isRecordActionProviderActive, resolveRecordActions, splitActionsByPriority, useRecordActions, } from './record-actions';
|
|
@@ -68,13 +68,24 @@ export interface FederatedModal<P = any> {
|
|
|
68
68
|
load: () => Promise<{
|
|
69
69
|
default: ComponentType<P>;
|
|
70
70
|
}>;
|
|
71
|
+
/** Presente cuando el modal se registró ya cargado (`api.registry.registerModal`). */
|
|
72
|
+
component?: ComponentType<P>;
|
|
71
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated Usa `registerModalComponent({ slug, load, owner })` de
|
|
76
|
+
* `@asteby/metacore-sdk` o `api.registry.registerModal` desde el plugin. Se
|
|
77
|
+
* mantiene como alias compatible: escribe en el mismo store.
|
|
78
|
+
*/
|
|
72
79
|
export declare function registerFederatedModal(m: FederatedModal): () => void;
|
|
73
|
-
/**
|
|
80
|
+
/**
|
|
81
|
+
* Modal del slug en el store canónico, o null si no está registrado o su addon
|
|
82
|
+
* dueño no está instalado. Nunca espera.
|
|
83
|
+
*/
|
|
74
84
|
export declare function resolveFederatedModal(key: string, isInstalled: IsAddonInstalled): FederatedModal | null;
|
|
75
85
|
/**
|
|
76
|
-
* Componente
|
|
77
|
-
* re-crea en cada render
|
|
86
|
+
* Componente del modal resuelto: el ya cargado si lo hay; si no, un
|
|
87
|
+
* `React.lazy` memoizado por registro (no se re-crea en cada render; quien lo
|
|
88
|
+
* pinta lo envuelve en `<Suspense>`).
|
|
78
89
|
*/
|
|
79
90
|
export declare function federatedModalComponent<P = any>(m: FederatedModal<P>): ComponentType<P>;
|
|
80
91
|
/** Solo para tests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contributions.d.ts","sourceRoot":"","sources":["../../src/primitives/contributions.ts"],"names":[],"mappings":"AAaA,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"contributions.d.ts","sourceRoot":"","sources":["../../src/primitives/contributions.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
// `register*` devuelve un disposer; el AddonLoader lo llama al desmontar o
|
|
13
13
|
// recargar el remote y la contribución desaparece sin recargar la página.
|
|
14
14
|
import { createElement, lazy, Suspense } from 'react';
|
|
15
|
+
import { getModalComponent, registerModalComponent, subscribeActionComponents, } from '@asteby/metacore-sdk';
|
|
15
16
|
import { slotRegistry } from '../slot';
|
|
16
17
|
const contribs = new Map();
|
|
17
18
|
const listeners = new Set();
|
|
@@ -21,6 +22,10 @@ function notify() {
|
|
|
21
22
|
for (const l of [...listeners])
|
|
22
23
|
l();
|
|
23
24
|
}
|
|
25
|
+
// Los modales viven en el store canónico del SDK (action-registry): cualquier
|
|
26
|
+
// cambio ahí (Registry.registerModal, registerModalComponent, unbind) también
|
|
27
|
+
// re-pinta a quien escucha contribuciones.
|
|
28
|
+
subscribeActionComponents(notify);
|
|
24
29
|
/** Suscripción para useSyncExternalStore (contribuciones y modales). */
|
|
25
30
|
export function subscribeContributions(listener) {
|
|
26
31
|
listeners.add(listener);
|
|
@@ -55,6 +60,7 @@ export function registerDocumentContribution(c, source) {
|
|
|
55
60
|
const slotDisposers = kinds.map(k => slotRegistry.register(slotIdFor(k, c.region), resolved.component, {
|
|
56
61
|
priority: c.priority ?? 0,
|
|
57
62
|
source: source ?? c.requiresAddon ?? c.id,
|
|
63
|
+
owner: c.requiresAddon,
|
|
58
64
|
}));
|
|
59
65
|
let disposed = false;
|
|
60
66
|
const entry = {
|
|
@@ -87,28 +93,57 @@ export function resolveContributions(ctx, region, isInstalled) {
|
|
|
87
93
|
.filter(c => !c.when || c.when(ctx))
|
|
88
94
|
.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0) || a.id.localeCompare(b.id));
|
|
89
95
|
}
|
|
90
|
-
|
|
96
|
+
/** Vista FederatedModal de cada entrada del store (identidad estable por entrada). */
|
|
97
|
+
const views = new WeakMap();
|
|
91
98
|
const modalComponents = new WeakMap();
|
|
99
|
+
/** Disposers de lo registrado por este alias (sólo __resetContributions los usa). */
|
|
100
|
+
const aliasDisposers = new Set();
|
|
101
|
+
/**
|
|
102
|
+
* @deprecated Usa `registerModalComponent({ slug, load, owner })` de
|
|
103
|
+
* `@asteby/metacore-sdk` o `api.registry.registerModal` desde el plugin. Se
|
|
104
|
+
* mantiene como alias compatible: escribe en el mismo store.
|
|
105
|
+
*/
|
|
92
106
|
export function registerFederatedModal(m) {
|
|
93
|
-
|
|
94
|
-
|
|
107
|
+
const dispose = registerModalComponent({ slug: m.key, owner: m.addon, load: m.load, component: m.component });
|
|
108
|
+
const stored = getModalComponent(m.key);
|
|
109
|
+
if (stored)
|
|
110
|
+
views.set(stored, m);
|
|
111
|
+
aliasDisposers.add(dispose);
|
|
95
112
|
return () => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
notify();
|
|
99
|
-
}
|
|
113
|
+
aliasDisposers.delete(dispose);
|
|
114
|
+
dispose();
|
|
100
115
|
};
|
|
101
116
|
}
|
|
102
|
-
|
|
117
|
+
function viewOf(e) {
|
|
118
|
+
let v = views.get(e);
|
|
119
|
+
if (!v) {
|
|
120
|
+
const component = e.component;
|
|
121
|
+
v = {
|
|
122
|
+
key: e.slug,
|
|
123
|
+
addon: e.owner ?? '',
|
|
124
|
+
load: e.load ?? (async () => ({ default: component })),
|
|
125
|
+
component,
|
|
126
|
+
};
|
|
127
|
+
views.set(e, v);
|
|
128
|
+
}
|
|
129
|
+
return v;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Modal del slug en el store canónico, o null si no está registrado o su addon
|
|
133
|
+
* dueño no está instalado. Nunca espera.
|
|
134
|
+
*/
|
|
103
135
|
export function resolveFederatedModal(key, isInstalled) {
|
|
104
|
-
const m =
|
|
105
|
-
return m && isInstalled(m.
|
|
136
|
+
const m = getModalComponent(key);
|
|
137
|
+
return m && (!m.owner || isInstalled(m.owner)) ? viewOf(m) : null;
|
|
106
138
|
}
|
|
107
139
|
/**
|
|
108
|
-
* Componente
|
|
109
|
-
* re-crea en cada render
|
|
140
|
+
* Componente del modal resuelto: el ya cargado si lo hay; si no, un
|
|
141
|
+
* `React.lazy` memoizado por registro (no se re-crea en cada render; quien lo
|
|
142
|
+
* pinta lo envuelve en `<Suspense>`).
|
|
110
143
|
*/
|
|
111
144
|
export function federatedModalComponent(m) {
|
|
145
|
+
if (m.component)
|
|
146
|
+
return m.component;
|
|
112
147
|
let C = modalComponents.get(m);
|
|
113
148
|
if (!C) {
|
|
114
149
|
C = lazy(m.load);
|
|
@@ -121,6 +156,8 @@ export function __resetContributions() {
|
|
|
121
156
|
for (const e of [...contribs.values()])
|
|
122
157
|
e.dispose();
|
|
123
158
|
contribs.clear();
|
|
124
|
-
|
|
159
|
+
for (const d of [...aliasDisposers])
|
|
160
|
+
d();
|
|
161
|
+
aliasDisposers.clear();
|
|
125
162
|
notify();
|
|
126
163
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ActionPriority, type OwnedRecordAction, type RecordActionContext, type RecordActionContribution } from '@asteby/metacore-sdk';
|
|
2
|
+
import { type InstalledAddonsValue } from './installed-addons-context';
|
|
3
|
+
export * from './action-priority';
|
|
4
|
+
export type { RecordActionContext, RecordActionContribution };
|
|
5
|
+
export interface ResolvedRecordAction {
|
|
6
|
+
/** Id de la contribución (o `<id>:<item>` si viene de `expand`). */
|
|
7
|
+
key: string;
|
|
8
|
+
label: string;
|
|
9
|
+
icon?: string;
|
|
10
|
+
priority: ActionPriority;
|
|
11
|
+
owner?: string;
|
|
12
|
+
run?: () => unknown;
|
|
13
|
+
render?: RecordActionContribution['render'];
|
|
14
|
+
}
|
|
15
|
+
/** ¿El proveedor de la contribución está instalado y activo? Sin provider: sí. */
|
|
16
|
+
export declare function isRecordActionProviderActive(row: OwnedRecordAction, installed: InstalledAddonsValue | null): boolean;
|
|
17
|
+
/** Contribuciones aplicables al registro, filtradas por proveedor y ordenadas. Pura. */
|
|
18
|
+
export declare function resolveRecordActions(rows: readonly OwnedRecordAction[], ctx: RecordActionContext, installed: InstalledAddonsValue | null): ResolvedRecordAction[];
|
|
19
|
+
/** Acciones aportadas al registro (`model`, `record`), reactivas a register/unbind. */
|
|
20
|
+
export declare function useRecordActions(model: string, record: Record<string, unknown> | null | undefined): ResolvedRecordAction[];
|
|
21
|
+
//# sourceMappingURL=record-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-actions.d.ts","sourceRoot":"","sources":["../src/record-actions.ts"],"names":[],"mappings":"AAcA,OAAO,EAGH,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAChC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAE1F,cAAc,mBAAmB,CAAA;AACjC,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,CAAA;AAE7D,MAAM,WAAW,oBAAoB;IACjC,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAA;CAC9C;AAWD,kFAAkF;AAClF,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,GAAG,IAAI,GAAG,OAAO,CAOpH;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAChC,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAClC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,oBAAoB,GAAG,IAAI,GACvC,oBAAoB,EAAE,CA4BxB;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,oBAAoB,EAAE,CAO1H"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Acciones primarias / secundarias de un registro.
|
|
2
|
+
//
|
|
3
|
+
// Una pantalla de registro tiene UNA acción destacada (la primaria) y el resto
|
|
4
|
+
// en su lugar: lo de compartir, imprimir, correo, chat, descargar PDF/XML es
|
|
5
|
+
// secundario — va al pie del documento (DocumentSecondaryBar) y al «Más…» del
|
|
6
|
+
// menú de fila, nunca compitiendo con la primaria.
|
|
7
|
+
//
|
|
8
|
+
// Dos fuentes, una misma clasificación:
|
|
9
|
+
// - acciones del modelo (metadata `actions[]`): manifest v3 `priority`, o la
|
|
10
|
+
// convención por clave si no la declara;
|
|
11
|
+
// - acciones aportadas por addons o por el host (registerRecordAction del
|
|
12
|
+
// store canónico de @asteby/metacore-sdk), filtradas por su proveedor
|
|
13
|
+
// instalado y activo (InstalledAddonsProvider).
|
|
14
|
+
import { useMemo, useSyncExternalStore } from 'react';
|
|
15
|
+
import { listRecordActions, subscribeActionComponents, } from '@asteby/metacore-sdk';
|
|
16
|
+
import { useInstalledAddons } from './installed-addons-context';
|
|
17
|
+
export * from './action-priority';
|
|
18
|
+
function modelMatches(models, model) {
|
|
19
|
+
if (!models || models === '*')
|
|
20
|
+
return true;
|
|
21
|
+
const m = model.toLowerCase();
|
|
22
|
+
return models.some((x) => {
|
|
23
|
+
const k = x.toLowerCase();
|
|
24
|
+
return k === m || k.endsWith(`.${m}`) || m.endsWith(`.${k}`);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** ¿El proveedor de la contribución está instalado y activo? Sin provider: sí. */
|
|
28
|
+
export function isRecordActionProviderActive(row, installed) {
|
|
29
|
+
if (!installed)
|
|
30
|
+
return true;
|
|
31
|
+
const req = row.contribution.requires;
|
|
32
|
+
if (req?.addon && !installed.addons.has(req.addon))
|
|
33
|
+
return false;
|
|
34
|
+
if (req?.capability && !installed.capabilities.has(req.capability))
|
|
35
|
+
return false;
|
|
36
|
+
if (!req?.addon && !req?.capability && row.owner && !installed.addons.has(row.owner))
|
|
37
|
+
return false;
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
/** Contribuciones aplicables al registro, filtradas por proveedor y ordenadas. Pura. */
|
|
41
|
+
export function resolveRecordActions(rows, ctx, installed) {
|
|
42
|
+
const out = [];
|
|
43
|
+
const sorted = [...rows].sort((a, b) => (a.contribution.order ?? 0) - (b.contribution.order ?? 0) || a.contribution.id.localeCompare(b.contribution.id));
|
|
44
|
+
for (const row of sorted) {
|
|
45
|
+
const c = row.contribution;
|
|
46
|
+
if (!modelMatches(c.models, ctx.model))
|
|
47
|
+
continue;
|
|
48
|
+
if (!isRecordActionProviderActive(row, installed))
|
|
49
|
+
continue;
|
|
50
|
+
if (c.when && !c.when(ctx))
|
|
51
|
+
continue;
|
|
52
|
+
const priority = c.priority ?? 'secondary';
|
|
53
|
+
if (c.expand) {
|
|
54
|
+
for (const item of c.expand(ctx)) {
|
|
55
|
+
out.push({ key: `${c.id}:${item.key}`, label: item.label, icon: item.icon ?? c.icon, priority, owner: row.owner, run: item.run });
|
|
56
|
+
}
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
out.push({
|
|
60
|
+
key: c.id,
|
|
61
|
+
label: c.label ?? c.id,
|
|
62
|
+
icon: c.icon,
|
|
63
|
+
priority,
|
|
64
|
+
owner: row.owner,
|
|
65
|
+
run: c.run ? () => c.run(ctx) : undefined,
|
|
66
|
+
render: c.render,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
/** Acciones aportadas al registro (`model`, `record`), reactivas a register/unbind. */
|
|
72
|
+
export function useRecordActions(model, record) {
|
|
73
|
+
const rows = useSyncExternalStore(subscribeActionComponents, listRecordActions, listRecordActions);
|
|
74
|
+
const installed = useInstalledAddons();
|
|
75
|
+
return useMemo(() => (record ? resolveRecordActions(rows, { model, record }, installed) : []), [rows, model, record, installed]);
|
|
76
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* One entry of the row "…" menu. An action gated by a missing optional addon
|
|
4
|
+
* (`requiresAddon`) stays listed with a lock + tooltip; the click still goes to
|
|
5
|
+
* `onAction`, whose shared handler (useDynamicRowActions) opens the
|
|
6
|
+
* requires-addon dialog instead of executing.
|
|
7
|
+
*/
|
|
8
|
+
export declare function RowActionMenuItem({ action, label, onSelect, className, }: {
|
|
9
|
+
action: any;
|
|
10
|
+
label: React.ReactNode;
|
|
11
|
+
onSelect: (e: React.MouseEvent) => void;
|
|
12
|
+
className?: string;
|
|
13
|
+
}): React.JSX.Element;
|
|
14
|
+
export interface RowActionsMenuProps {
|
|
15
|
+
/** Acciones de metadata ya filtradas por estado/condición de la fila. */
|
|
16
|
+
actions: any[];
|
|
17
|
+
row: Record<string, any>;
|
|
18
|
+
/** Modelo de la fila: resuelve las acciones aportadas por addons. */
|
|
19
|
+
model?: string;
|
|
20
|
+
onAction?: (actionKey: string, row: any) => void;
|
|
21
|
+
/** Sustituye el ícono del disparador (p. ej. un spinner mientras imprime). */
|
|
22
|
+
triggerIcon?: React.ReactNode;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Modelo de las filas que pinta la tabla. DynamicTable lo provee: la factoría
|
|
27
|
+
* de columnas (getDynamicColumns) no recibe el modelo y el menú lo necesita
|
|
28
|
+
* para resolver las acciones aportadas por addons.
|
|
29
|
+
*/
|
|
30
|
+
export declare const RowActionsModelContext: React.Context<string | undefined>;
|
|
31
|
+
export declare function RowActionsMenu({ actions, row, model, onAction, triggerIcon, disabled }: RowActionsMenuProps): React.JSX.Element | null;
|
|
32
|
+
//# sourceMappingURL=row-actions-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-actions-menu.d.ts","sourceRoot":"","sources":["../src/row-actions-menu.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAqB9B;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,GACZ,EAAE;IACC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,qBAgBA;AAED,MAAM,WAAW,mBAAmB;IAChC,yEAAyE;IACzE,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACxB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAChD,8EAA8E;IAC9E,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,mCAAqD,CAAA;AAMxF,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,mBAAmB,4BAwE3G"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
// RowActionsMenu — el «…» de una fila: la acción primaria (si hay) arriba y
|
|
3
|
+
// destacada, las principales debajo y las secundarias (compartir, imprimir,
|
|
4
|
+
// correo, chat, PDF/XML y lo que aporten addons vía registerRecordAction)
|
|
5
|
+
// agrupadas en un «Más…» discreto. Una acción por capacidad sin proveedor
|
|
6
|
+
// activo, o una contribución cuyo addon no está instalado, no aparece.
|
|
7
|
+
//
|
|
8
|
+
// DynamicTable lo usa por defecto (getDynamicColumns) y los hosts que arman su
|
|
9
|
+
// propia columna de acciones lo reutilizan en vez de duplicar el menú.
|
|
10
|
+
import * as React from 'react';
|
|
11
|
+
import { useTranslation } from 'react-i18next';
|
|
12
|
+
import { MoreHorizontal } from 'lucide-react';
|
|
13
|
+
// Root entry on purpose (not '/primitives'): see dropdown-menu-entry.test.ts.
|
|
14
|
+
import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from '@asteby/metacore-ui';
|
|
15
|
+
import { DynamicIcon } from './dynamic-icon';
|
|
16
|
+
import { translateMetadataLabel } from './dynamic-columns-helpers';
|
|
17
|
+
import { RequiresAddonLock, resolveRequiresAddon, useRequiresAddonLabel } from './requires-addon';
|
|
18
|
+
import { useInstalledAddons } from './installed-addons-context';
|
|
19
|
+
import { isActionProviderActive, splitActionsByPriority, useRecordActions } from './record-actions';
|
|
20
|
+
/**
|
|
21
|
+
* One entry of the row "…" menu. An action gated by a missing optional addon
|
|
22
|
+
* (`requiresAddon`) stays listed with a lock + tooltip; the click still goes to
|
|
23
|
+
* `onAction`, whose shared handler (useDynamicRowActions) opens the
|
|
24
|
+
* requires-addon dialog instead of executing.
|
|
25
|
+
*/
|
|
26
|
+
export function RowActionMenuItem({ action, label, onSelect, className, }) {
|
|
27
|
+
const requirement = resolveRequiresAddon(action);
|
|
28
|
+
const requiresAddonLabel = useRequiresAddonLabel();
|
|
29
|
+
return (_jsxs(DropdownMenuItem, { onClick: onSelect, title: requirement ? requiresAddonLabel(requirement) : undefined, "data-requires-addon": requirement?.key, "data-action": action.key, className: className, children: [_jsx(DynamicIcon, { name: action.icon || 'Zap', className: "mr-2 h-4 w-4" }), label, requirement && _jsx(RequiresAddonLock, { requirement: requirement })] }));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Modelo de las filas que pinta la tabla. DynamicTable lo provee: la factoría
|
|
33
|
+
* de columnas (getDynamicColumns) no recibe el modelo y el menú lo necesita
|
|
34
|
+
* para resolver las acciones aportadas por addons.
|
|
35
|
+
*/
|
|
36
|
+
export const RowActionsModelContext = React.createContext(undefined);
|
|
37
|
+
export function RowActionsMenu({ actions, row, model, onAction, triggerIcon, disabled }) {
|
|
38
|
+
const { t } = useTranslation();
|
|
39
|
+
const installed = useInstalledAddons();
|
|
40
|
+
const ctxModel = React.useContext(RowActionsModelContext);
|
|
41
|
+
const recordModel = model ?? ctxModel;
|
|
42
|
+
const contributed = useRecordActions(recordModel ?? '', recordModel ? row : null).filter((c) => !!c.run);
|
|
43
|
+
const available = actions.filter((a) => isActionProviderActive(a, installed));
|
|
44
|
+
const { primary, main, secondary } = splitActionsByPriority(available);
|
|
45
|
+
const mainEntries = main.map((action) => ({ kind: 'action', action }));
|
|
46
|
+
const secondaryEntries = secondary.map((action) => ({ kind: 'action', action }));
|
|
47
|
+
for (const item of contributed) {
|
|
48
|
+
;
|
|
49
|
+
(item.priority === 'primary' ? mainEntries : secondaryEntries).push({ kind: 'contribution', item });
|
|
50
|
+
}
|
|
51
|
+
if (!primary && mainEntries.length === 0 && secondaryEntries.length === 0)
|
|
52
|
+
return null;
|
|
53
|
+
const renderEntry = (e) => e.kind === 'action' ? (_jsx(RowActionMenuItem, { action: e.action, label: translateMetadataLabel(e.action.label, t), onSelect: () => onAction?.(e.action.key, row) }, e.action.key)) : (_jsxs(DropdownMenuItem, { "data-action": e.item.key, onClick: () => void e.item.run?.(), children: [_jsx(DynamicIcon, { name: e.item.icon || 'Share2', className: "mr-2 h-4 w-4" }), t(e.item.label, { defaultValue: e.item.label })] }, e.item.key));
|
|
54
|
+
const hasMain = !!primary || mainEntries.length > 0;
|
|
55
|
+
const moreLabel = t('datatable.more_actions', { defaultValue: 'Más…' });
|
|
56
|
+
return (_jsx("div", { className: "flex items-center justify-end", children: _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-8 w-8 p-0", disabled: disabled, onClick: (e) => e.stopPropagation(), children: [_jsx("span", { className: "sr-only", children: t('datatable.open_menu', { defaultValue: 'Abrir menú' }) }), triggerIcon ?? _jsx(MoreHorizontal, { className: "h-4 w-4" })] }) }), _jsxs(DropdownMenuContent, { align: "end", onClick: (e) => e.stopPropagation(), children: [primary ? (_jsx(RowActionMenuItem, { action: primary, label: translateMetadataLabel(primary.label, t), onSelect: () => onAction?.(primary.key, row), className: "font-semibold" })) : null, mainEntries.map(renderEntry), secondaryEntries.length > 0 && hasMain ? (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuSub, { children: [_jsx(DropdownMenuSubTrigger, { "data-row-more": "", className: "text-muted-foreground", children: moreLabel }), _jsx(DropdownMenuSubContent, { "data-row-secondary": "", children: secondaryEntries.map(renderEntry) })] })] })) : (
|
|
57
|
+
// Sin principales no hay con qué competir: lista plana.
|
|
58
|
+
secondaryEntries.map(renderEntry))] })] }) }));
|
|
59
|
+
}
|
package/dist/slot.d.ts
CHANGED
|
@@ -1,24 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
priority: number;
|
|
7
|
-
source?: string;
|
|
8
|
-
}
|
|
9
|
-
type Listener = () => void;
|
|
10
|
-
declare class SlotRegistryImpl {
|
|
11
|
-
private slots;
|
|
12
|
-
private listeners;
|
|
13
|
-
register(slotId: string, component: SlotComponent, opts?: {
|
|
14
|
-
priority?: number;
|
|
15
|
-
source?: string;
|
|
16
|
-
}): () => void;
|
|
17
|
-
get(slotId: string): SlotEntry[];
|
|
18
|
-
subscribe(listener: Listener): () => void;
|
|
19
|
-
private emit;
|
|
20
|
-
}
|
|
21
|
-
export declare const slotRegistry: SlotRegistryImpl;
|
|
2
|
+
import { type SlotComponent, type SlotEntry } from '@asteby/metacore-sdk';
|
|
3
|
+
export type { SlotComponent, SlotEntry };
|
|
4
|
+
/** Alias histórico del store canónico (`slotRegistry.register/get/subscribe`). */
|
|
5
|
+
export declare const slotRegistry: import("@asteby/metacore-sdk").SlotStore;
|
|
22
6
|
export interface SlotProps {
|
|
23
7
|
/** Slot id. */
|
|
24
8
|
name: string;
|
|
@@ -28,5 +12,4 @@ export interface SlotProps {
|
|
|
28
12
|
fallback?: React.ReactNode;
|
|
29
13
|
}
|
|
30
14
|
export declare function Slot({ name, props, fallback }: SlotProps): React.JSX.Element;
|
|
31
|
-
export {};
|
|
32
15
|
//# sourceMappingURL=slot.d.ts.map
|
package/dist/slot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../src/slot.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../src/slot.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA+B,MAAM,OAAO,CAAA;AACnD,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGpF,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA;AAExC,kFAAkF;AAClF,eAAO,MAAM,YAAY,0CAAY,CAAA;AAErC,MAAM,WAAW,SAAS;IACtB,eAAe;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7B;AAED,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAe,EAAE,EAAE,SAAS,qBAiB/D"}
|
package/dist/slot.js
CHANGED
|
@@ -1,43 +1,21 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
// Slot
|
|
3
|
-
//
|
|
2
|
+
// Slot — named extension points the host renders and addons contribute to at
|
|
3
|
+
// register() time. Keyed by a slot id (e.g. "dashboard.widgets",
|
|
4
4
|
// "invoice.footer"). Each contribution is an arbitrary React element factory.
|
|
5
|
+
//
|
|
6
|
+
// El store es `slotStore` de @asteby/metacore-sdk: el mismo donde escribe
|
|
7
|
+
// `api.registry.registerSlot` (AddonAPI) y `registerDocumentContribution`, así
|
|
8
|
+
// que hay una sola lista por slot. Una entrada con addon dueño (`owner`) que
|
|
9
|
+
// consta como NO instalado (InstalledAddonsProvider) no se pinta.
|
|
5
10
|
import { useSyncExternalStore } from 'react';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const entry = { id: slotId, component, priority: opts?.priority ?? 0, source: opts?.source };
|
|
11
|
-
const list = this.slots.get(slotId) ?? [];
|
|
12
|
-
list.push(entry);
|
|
13
|
-
// Higher priority renders first — canonical across SDK and runtime-react.
|
|
14
|
-
// See docs/slot-priority.md.
|
|
15
|
-
list.sort((a, b) => b.priority - a.priority);
|
|
16
|
-
this.slots.set(slotId, list);
|
|
17
|
-
this.emit();
|
|
18
|
-
return () => {
|
|
19
|
-
const arr = this.slots.get(slotId);
|
|
20
|
-
if (!arr)
|
|
21
|
-
return;
|
|
22
|
-
const idx = arr.indexOf(entry);
|
|
23
|
-
if (idx >= 0) {
|
|
24
|
-
arr.splice(idx, 1);
|
|
25
|
-
this.emit();
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
get(slotId) {
|
|
30
|
-
return this.slots.get(slotId) ?? [];
|
|
31
|
-
}
|
|
32
|
-
subscribe(listener) {
|
|
33
|
-
this.listeners.add(listener);
|
|
34
|
-
return () => { this.listeners.delete(listener); };
|
|
35
|
-
}
|
|
36
|
-
emit() { this.listeners.forEach(l => l()); }
|
|
37
|
-
}
|
|
38
|
-
export const slotRegistry = new SlotRegistryImpl();
|
|
11
|
+
import { slotStore } from '@asteby/metacore-sdk';
|
|
12
|
+
import { useInstalledAddons } from './installed-addons-context';
|
|
13
|
+
/** Alias histórico del store canónico (`slotRegistry.register/get/subscribe`). */
|
|
14
|
+
export const slotRegistry = slotStore;
|
|
39
15
|
export function Slot({ name, props, fallback = null }) {
|
|
40
|
-
const
|
|
16
|
+
const all = useSyncExternalStore((cb) => slotStore.subscribe(cb), () => slotStore.get(name), () => slotStore.get(name));
|
|
17
|
+
const installed = useInstalledAddons();
|
|
18
|
+
const entries = installed ? all.filter((e) => !e.owner || installed.addons.has(e.owner)) : all;
|
|
41
19
|
if (entries.length === 0)
|
|
42
20
|
return _jsx(_Fragment, { children: fallback });
|
|
43
21
|
return (_jsx(_Fragment, { children: entries.map((entry, i) => {
|
package/dist/types.d.ts
CHANGED
|
@@ -100,6 +100,13 @@ export interface DocumentFormType {
|
|
|
100
100
|
* reparte el pago en PaymentAllocation dentro de una transacción.
|
|
101
101
|
*/
|
|
102
102
|
submit_action?: string;
|
|
103
|
+
/**
|
|
104
|
+
* El alta de este tipo vive en OTRO modelo (`customers.Invoice`): «Crear»
|
|
105
|
+
* no pinta formulario, el host abre la página de ese modelo con su alta
|
|
106
|
+
* abierta (`onDelegateCreate`). P. ej. Documentos fiscales → Facturas: la
|
|
107
|
+
* factura nace en customers y se timbra después. Sin campos ni renglones.
|
|
108
|
+
*/
|
|
109
|
+
create_model?: string;
|
|
103
110
|
}
|
|
104
111
|
/** Contraparte: qué campo del encabezado la elige y qué muestra su tarjeta. */
|
|
105
112
|
export interface DocumentFormParty {
|
|
@@ -137,6 +144,20 @@ export interface DocumentFormSource {
|
|
|
137
144
|
option_filter?: unknown;
|
|
138
145
|
/** Addon requerido (gating de UI; el servidor revalida). */
|
|
139
146
|
requires_addon?: string;
|
|
147
|
+
/** Columna de cantidad del renglón origen (default `quantity`). */
|
|
148
|
+
qty_field?: string;
|
|
149
|
+
/**
|
|
150
|
+
* Columna del renglón de ESTE documento que guarda el id del renglón origen
|
|
151
|
+
* (p. ej. `sales_order_item_id`). Con ella el host sirve lo pendiente por
|
|
152
|
+
* renglón (`<endpoint>/source-lines`) y rechaza al guardar si se excede.
|
|
153
|
+
*/
|
|
154
|
+
line_link_field?: string;
|
|
155
|
+
/** Columna del renglón origen que ya trae lo pendiente (la mantiene su addon). */
|
|
156
|
+
remaining_qty_field?: string;
|
|
157
|
+
/** Endpoint del addon que sirve los renglones con `remaining_quantity` (`?id=`). */
|
|
158
|
+
remaining_endpoint?: string;
|
|
159
|
+
/** Estados de este documento que no consumen el origen (cancelada…). */
|
|
160
|
+
exclude_states?: string[];
|
|
140
161
|
}
|
|
141
162
|
/** Vista previa: acción de fila sobre el borrador, llamada con `analyze: true`. */
|
|
142
163
|
export interface DocumentFormPreview {
|
|
@@ -846,6 +867,22 @@ export interface ActionDefinition {
|
|
|
846
867
|
*/
|
|
847
868
|
replaces_create?: boolean;
|
|
848
869
|
replacesCreate?: boolean;
|
|
870
|
+
/**
|
|
871
|
+
* Manifest v3 `priority`. "primary": la única acción destacada del menú de
|
|
872
|
+
* fila / cabecera. "secondary": compartir, imprimir, correo, chat → pie del
|
|
873
|
+
* documento y «Más…» del menú de fila. Sin valor: convención por clave
|
|
874
|
+
* (ver classifyActionPriority).
|
|
875
|
+
*/
|
|
876
|
+
priority?: 'primary' | 'secondary';
|
|
877
|
+
/**
|
|
878
|
+
* Cómo despacha (served `trigger`). `type: "capability"` necesita un addon
|
|
879
|
+
* que provea `capability`; sin proveedor activo la acción no se ofrece.
|
|
880
|
+
*/
|
|
881
|
+
trigger?: {
|
|
882
|
+
type: string;
|
|
883
|
+
capability?: string;
|
|
884
|
+
connector?: string;
|
|
885
|
+
};
|
|
849
886
|
/**
|
|
850
887
|
* Optional addon this action depends on, stamped by the host only while it
|
|
851
888
|
* is NOT installed (served as `requires_addon`; read through
|
|
@@ -890,6 +927,8 @@ export interface ActionMetadata {
|
|
|
890
927
|
/** Federated modal slug "<addon_key>.<action_key>"; see ActionModalDispatcher. */
|
|
891
928
|
modal?: string;
|
|
892
929
|
placement?: 'row' | 'table' | 'create';
|
|
930
|
+
/** Manifest v3 `priority`; ver ActionDefinition.priority. */
|
|
931
|
+
priority?: 'primary' | 'secondary';
|
|
893
932
|
/**
|
|
894
933
|
* Optional addon this action depends on, stamped by the host only while it
|
|
895
934
|
* is NOT installed (served as `requires_addon`; read through
|