@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.
Files changed (97) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/action-modal-dispatcher.d.ts +33 -3
  3. package/dist/action-modal-dispatcher.d.ts.map +1 -1
  4. package/dist/action-modal-dispatcher.js +84 -11
  5. package/dist/action-priority.d.ts +34 -0
  6. package/dist/action-priority.d.ts.map +1 -0
  7. package/dist/action-priority.js +60 -0
  8. package/dist/business/catalog-product-search.d.ts +7 -0
  9. package/dist/business/catalog-product-search.d.ts.map +1 -1
  10. package/dist/business/catalog-product-search.js +14 -0
  11. package/dist/business/document-editor-model.d.ts +14 -2
  12. package/dist/business/document-editor-model.d.ts.map +1 -1
  13. package/dist/business/document-editor-model.js +42 -4
  14. package/dist/business/document-editor.d.ts.map +1 -1
  15. package/dist/business/document-editor.js +68 -19
  16. package/dist/business/line-items.d.ts +9 -1
  17. package/dist/business/line-items.d.ts.map +1 -1
  18. package/dist/business/line-items.js +8 -1
  19. package/dist/calendar-date.d.ts +12 -0
  20. package/dist/calendar-date.d.ts.map +1 -1
  21. package/dist/calendar-date.js +36 -0
  22. package/dist/document/document-page.d.ts.map +1 -1
  23. package/dist/document/document-page.js +8 -1
  24. package/dist/document/evaluate.d.ts.map +1 -1
  25. package/dist/document/evaluate.js +17 -1
  26. package/dist/document/index.d.ts +1 -0
  27. package/dist/document/index.d.ts.map +1 -1
  28. package/dist/document/index.js +1 -0
  29. package/dist/document/secondary-bar.d.ts +20 -0
  30. package/dist/document/secondary-bar.d.ts.map +1 -0
  31. package/dist/document/secondary-bar.js +44 -0
  32. package/dist/document/types.d.ts +8 -0
  33. package/dist/document/types.d.ts.map +1 -1
  34. package/dist/document-form-dialog.d.ts +23 -2
  35. package/dist/document-form-dialog.d.ts.map +1 -1
  36. package/dist/document-form-dialog.js +48 -9
  37. package/dist/dynamic-columns.d.ts +1 -11
  38. package/dist/dynamic-columns.d.ts.map +1 -1
  39. package/dist/dynamic-columns.js +7 -17
  40. package/dist/dynamic-crud-page.d.ts +19 -0
  41. package/dist/dynamic-crud-page.d.ts.map +1 -1
  42. package/dist/dynamic-crud-page.js +6 -5
  43. package/dist/dynamic-row-actions.d.ts +8 -0
  44. package/dist/dynamic-row-actions.d.ts.map +1 -1
  45. package/dist/dynamic-row-actions.js +12 -2
  46. package/dist/dynamic-table.d.ts.map +1 -1
  47. package/dist/dynamic-table.js +64 -63
  48. package/dist/index.d.ts +5 -2
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +9 -2
  51. package/dist/primitives/contributions.d.ts +14 -3
  52. package/dist/primitives/contributions.d.ts.map +1 -1
  53. package/dist/primitives/contributions.js +50 -13
  54. package/dist/record-actions.d.ts +21 -0
  55. package/dist/record-actions.d.ts.map +1 -0
  56. package/dist/record-actions.js +76 -0
  57. package/dist/row-actions-menu.d.ts +32 -0
  58. package/dist/row-actions-menu.d.ts.map +1 -0
  59. package/dist/row-actions-menu.js +59 -0
  60. package/dist/slot.d.ts +4 -21
  61. package/dist/slot.d.ts.map +1 -1
  62. package/dist/slot.js +14 -36
  63. package/dist/types.d.ts +39 -0
  64. package/dist/types.d.ts.map +1 -1
  65. package/package.json +3 -3
  66. package/src/__tests__/document-editor-model.test.ts +55 -1
  67. package/src/__tests__/document-editor.test.tsx +80 -1
  68. package/src/__tests__/document-form-create-model.test.tsx +143 -0
  69. package/src/__tests__/document-form-dialog.test.tsx +40 -0
  70. package/src/__tests__/field-default-today.test.tsx +116 -0
  71. package/src/__tests__/prefill-scalar-from-record.test.ts +52 -1
  72. package/src/__tests__/row-action-link-navigation.test.ts +17 -0
  73. package/src/__tests__/secondary-actions.test.tsx +261 -0
  74. package/src/action-modal-dispatcher.tsx +97 -17
  75. package/src/action-priority.ts +82 -0
  76. package/src/business/business.test.ts +1 -1
  77. package/src/business/catalog-product-search.ts +18 -0
  78. package/src/business/document-editor-model.ts +48 -6
  79. package/src/business/document-editor.tsx +75 -20
  80. package/src/business/line-items.ts +16 -1
  81. package/src/calendar-date.ts +36 -0
  82. package/src/document/document-page.tsx +15 -0
  83. package/src/document/evaluate.ts +17 -1
  84. package/src/document/index.ts +1 -0
  85. package/src/document/secondary-bar.tsx +92 -0
  86. package/src/document/types.ts +8 -0
  87. package/src/document-form-dialog.tsx +67 -8
  88. package/src/dynamic-columns.tsx +13 -57
  89. package/src/dynamic-crud-page.tsx +31 -4
  90. package/src/dynamic-row-actions.tsx +12 -2
  91. package/src/dynamic-table.tsx +3 -0
  92. package/src/index.ts +31 -0
  93. package/src/primitives/contributions.ts +59 -12
  94. package/src/record-actions.ts +101 -0
  95. package/src/row-actions-menu.tsx +159 -0
  96. package/src/slot.tsx +18 -53
  97. package/src/types.ts +35 -0
@@ -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
- /** null si el modal no está registrado o su addon no está instalado. Nunca espera. */
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 `React.lazy` del modal resuelto, memoizado por registro (no se
77
- * re-crea en cada render). Quien lo pinta lo envuelve en `<Suspense>`.
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":"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"}
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
- const modals = new Map();
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
- modals.set(m.key, m);
94
- notify();
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
- if (modals.get(m.key) === m) {
97
- modals.delete(m.key);
98
- notify();
99
- }
113
+ aliasDisposers.delete(dispose);
114
+ dispose();
100
115
  };
101
116
  }
102
- /** null si el modal no está registrado o su addon no está instalado. Nunca espera. */
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 = modals.get(key);
105
- return m && isInstalled(m.addon) ? m : null;
136
+ const m = getModalComponent(key);
137
+ return m && (!m.owner || isInstalled(m.owner)) ? viewOf(m) : null;
106
138
  }
107
139
  /**
108
- * Componente `React.lazy` del modal resuelto, memoizado por registro (no se
109
- * re-crea en cada render). Quien lo pinta lo envuelve en `<Suspense>`.
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
- modals.clear();
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
- export type SlotComponent<P = any> = React.ComponentType<P>;
3
- interface SlotEntry {
4
- id: string;
5
- component: SlotComponent;
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
@@ -1 +1 @@
1
- {"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../src/slot.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAEnD,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;AAE3D,UAAU,SAAS;IACf,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAE1B,cAAM,gBAAgB;IAClB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,SAAS,CAAsB;IAEvC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,IAAI;IAoB7G,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;IAIhC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAKzC,OAAO,CAAC,IAAI;CACf;AAED,eAAO,MAAM,YAAY,kBAAyB,CAAA;AAElD,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,qBAe/D"}
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 / SlotRegistry — named extension points the host renders and addons
3
- // contribute to at register() time. Keyed by a slot id (e.g. "dashboard.widgets",
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
- class SlotRegistryImpl {
7
- slots = new Map();
8
- listeners = new Set();
9
- register(slotId, component, opts) {
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 entries = useSyncExternalStore((cb) => slotRegistry.subscribe(cb), () => slotRegistry.get(name), () => slotRegistry.get(name));
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