@memberjunction/interactive-component-types 2.93.0 → 2.95.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/README.md CHANGED
@@ -224,6 +224,197 @@ async function loadDashboardData(props, events, data, metadata, runView) {
224
224
  }
225
225
  ```
226
226
 
227
+ ## Component Methods System
228
+
229
+ ### ComponentObject Interface
230
+
231
+ The `ComponentObject` interface defines the structure returned by compiled components, providing both the React component and method accessors:
232
+
233
+ ```typescript
234
+ interface ComponentObject {
235
+ // The React component function
236
+ component: Function;
237
+
238
+ // Standard methods (all optional)
239
+ print?: () => void;
240
+ refresh?: () => void;
241
+ getCurrentDataState?: () => any;
242
+ getDataStateHistory?: () => Array<{ timestamp: Date; state: any }>;
243
+ validate?: () => boolean | { valid: boolean; errors?: string[] };
244
+ isDirty?: () => boolean;
245
+ reset?: () => void;
246
+ scrollTo?: (target: string | HTMLElement | { top?: number; left?: number }) => void;
247
+ focus?: (target?: string | HTMLElement) => void;
248
+
249
+ // Dynamic method access
250
+ invokeMethod?: (methodName: string, ...args: any[]) => any;
251
+ hasMethod?: (methodName: string) => boolean;
252
+ }
253
+ ```
254
+
255
+ ### ComponentCallbacks Interface
256
+
257
+ Components receive callbacks that enable interaction with their container:
258
+
259
+ ```typescript
260
+ interface ComponentCallbacks {
261
+ // Open an entity record in the container
262
+ OpenEntityRecord: (entityName: string, key: CompositeKey) => void;
263
+
264
+ // Register a method that can be called by the container
265
+ RegisterMethod: (methodName: string, handler: Function) => void;
266
+ }
267
+ ```
268
+
269
+ ### How Method Registration Works
270
+
271
+ 1. **Component registers methods** during initialization using the `RegisterMethod` callback
272
+ 2. **Runtime stores methods** in an internal registry Map
273
+ 3. **ComponentObject exposes methods** with type-safe accessors for standard methods
274
+ 4. **Containers call methods** directly or via `invokeMethod()` for custom methods
275
+
276
+ ### Example: Component Registering Methods
277
+
278
+ ```typescript
279
+ function DataTableComponent({ callbacks, data, userState }) {
280
+ const [tableData, setTableData] = React.useState(data);
281
+ const [hasChanges, setHasChanges] = React.useState(false);
282
+ const [selectedRows, setSelectedRows] = React.useState([]);
283
+
284
+ React.useEffect(() => {
285
+ if (callbacks?.RegisterMethod) {
286
+ // Register standard methods
287
+ callbacks.RegisterMethod('getCurrentDataState', () => ({
288
+ data: tableData,
289
+ selectedRows: selectedRows,
290
+ totalCount: tableData.length
291
+ }));
292
+
293
+ callbacks.RegisterMethod('isDirty', () => hasChanges);
294
+
295
+ callbacks.RegisterMethod('validate', () => {
296
+ if (tableData.length === 0) {
297
+ return { valid: false, errors: ['Table cannot be empty'] };
298
+ }
299
+ return true;
300
+ });
301
+
302
+ callbacks.RegisterMethod('reset', () => {
303
+ setTableData(data);
304
+ setSelectedRows([]);
305
+ setHasChanges(false);
306
+ });
307
+
308
+ // Register custom business logic methods
309
+ callbacks.RegisterMethod('exportSelectedRows', () => {
310
+ return selectedRows.map(idx => tableData[idx]);
311
+ });
312
+
313
+ callbacks.RegisterMethod('deleteSelected', () => {
314
+ const newData = tableData.filter((_, idx) => !selectedRows.includes(idx));
315
+ setTableData(newData);
316
+ setHasChanges(true);
317
+ setSelectedRows([]);
318
+ });
319
+ }
320
+ }, [callbacks, tableData, selectedRows, hasChanges]);
321
+
322
+ return <div>{/* Table UI */}</div>;
323
+ }
324
+ ```
325
+
326
+ ### Example: Container Using Methods
327
+
328
+ ```typescript
329
+ // After component compilation
330
+ const componentObject = compiledComponent as ComponentObject;
331
+
332
+ // Use standard methods with type safety
333
+ if (componentObject.isDirty && componentObject.isDirty()) {
334
+ console.log('Component has unsaved changes');
335
+
336
+ const validation = componentObject.validate?.();
337
+ if (validation === true || validation?.valid) {
338
+ // Safe to proceed
339
+ const currentState = componentObject.getCurrentDataState?.();
340
+ await saveData(currentState);
341
+ } else {
342
+ console.error('Validation failed:', validation?.errors);
343
+ }
344
+ }
345
+
346
+ // Use custom methods via invokeMethod
347
+ if (componentObject.hasMethod?.('exportSelectedRows')) {
348
+ const selectedData = componentObject.invokeMethod('exportSelectedRows');
349
+ await exportToFile(selectedData);
350
+ }
351
+
352
+ // Reset the component
353
+ componentObject.reset?.();
354
+ ```
355
+
356
+ ### Method Declaration in ComponentSpec
357
+
358
+ Components can declare their supported methods in the spec for static discovery:
359
+
360
+ ```typescript
361
+ interface ComponentSpec {
362
+ name: string;
363
+ code: string;
364
+
365
+ // Optional method declarations for discovery/documentation
366
+ methods?: Array<{
367
+ name: string;
368
+ category?: 'standard' | 'custom';
369
+ description?: string;
370
+ parameters?: Array<{
371
+ name: string;
372
+ type: string; // Free-form type description
373
+ required?: boolean;
374
+ description?: string;
375
+ }>;
376
+ returnType?: string; // Free-form type description
377
+ }>;
378
+ }
379
+ ```
380
+
381
+ Example declaration:
382
+
383
+ ```typescript
384
+ const spec: ComponentSpec = {
385
+ name: 'DataTable',
386
+ code: '...',
387
+ methods: [
388
+ {
389
+ name: 'getCurrentDataState',
390
+ category: 'standard',
391
+ description: 'Returns current table data and selection state',
392
+ returnType: '{data: any[], selectedRows: number[], totalCount: number}'
393
+ },
394
+ {
395
+ name: 'exportSelectedRows',
396
+ category: 'custom',
397
+ description: 'Exports currently selected rows',
398
+ returnType: 'any[]'
399
+ },
400
+ {
401
+ name: 'deleteSelected',
402
+ category: 'custom',
403
+ description: 'Deletes selected rows from the table'
404
+ }
405
+ ]
406
+ };
407
+ ```
408
+
409
+ ### Benefits of the Method System
410
+
411
+ 1. **AI Agent Integration**: AI agents can introspect component state for analysis
412
+ 2. **Validation & State Management**: Containers can check dirty state and validate before saving
413
+ 3. **Custom Business Logic**: Components can expose domain-specific operations
414
+ 4. **Framework Agnostic**: Works across Angular, React, and other frameworks
415
+ 5. **Type Safety**: Standard methods have full TypeScript support
416
+ 6. **Discoverability**: Method declarations enable static analysis without runtime
417
+
227
418
  ## Component Specifications
228
419
 
229
420
  The package includes comprehensive types for component specifications:
@@ -12,20 +12,32 @@ export declare class ComponentSpec {
12
12
  */
13
13
  location: "embedded" | "registry";
14
14
  /**
15
- * Only used when location == "registry", a hierarchical namespace such as "crm/analytics/accounts". The combination of the
15
+ * Used when location === 'registry' - the unique name of a given registry without the @ sign
16
+ * for example MJ or Skip would be valid globally unique registry names (as registered with MemberJunction.org)
17
+ * You would not include @ here. Fully qualified component identifiers would be
18
+ * @Registry/Namespace/Name/Version but in the context of this field it is just the registry name.
19
+ */
20
+ registry?: string;
21
+ /**
22
+ * Used when location === "registry", a hierarchical namespace such as "crm/analytics/accounts". The combination of the
16
23
  * namespace and name are how a registry component is loaded. Registry components might have
17
24
  * a root level segment that starts with @ such as "@memberjunction/examples/entities" or if the root
18
25
  * segment doesn't have @ that means the component is local to that registry
19
26
  */
20
27
  namespace?: string;
21
28
  /**
22
- * Only used when location == "registry", a semantic versioning string such as
29
+ * Used when location === "registry", a semantic versioning string such as
23
30
  * "1.0.0"
24
31
  * "^1.0.0"
25
32
  * "~1.0.0"
26
33
  * Follows conventions documented here: https://semver.org/ and https://docs.npmjs.com/about-semantic-versioning
27
34
  */
28
35
  version?: string;
36
+ /**
37
+ * Only used when location === 'registry', logic explaining why this component is being selected
38
+ * to serve a specific use case or requirement
39
+ */
40
+ selectionReasoning?: string;
29
41
  /**
30
42
  * When an architect decides to use an existing component as a base for a new version,
31
43
  * they can set this flag to true. This indicates that the new version will be created
@@ -74,6 +86,10 @@ export declare class ComponentSpec {
74
86
  * Events that the component emits, if any
75
87
  */
76
88
  events?: ComponentEvent[];
89
+ /**
90
+ * Metadata about methods the component supports, if any
91
+ */
92
+ methods?: ComponentMethodInfo;
77
93
  /**
78
94
  * Example of the component being used in JSX format. This is used to provide a clear example on the properties and
79
95
  * event handling that the component supports.
@@ -90,7 +106,39 @@ export declare class ComponentSpec {
90
106
  /**
91
107
  * Relevant examples of components intended to inspire this component's creation
92
108
  */
93
- relevantExamples?: Array<ComponentExample[]>;
109
+ relevantExamples?: ComponentExample[];
110
+ }
111
+ /**
112
+ * Defines standard and custom methods a component implements
113
+ */
114
+ export interface ComponentMethodInfo {
115
+ standardMethodsSupported: {
116
+ print?: boolean;
117
+ refresh?: boolean;
118
+ getCurrentDataState?: boolean;
119
+ getDataStateHistory?: boolean;
120
+ validate?: boolean;
121
+ isDirty?: boolean;
122
+ reset?: boolean;
123
+ scrollTo?: boolean;
124
+ focus?: boolean;
125
+ invokeMethod?: boolean;
126
+ hasMethod?: boolean;
127
+ };
128
+ customMethods: CustomComponentMethod[];
129
+ }
130
+ /**
131
+ * Defines a single custom component method
132
+ */
133
+ export interface CustomComponentMethod {
134
+ name: string;
135
+ description: string;
136
+ parameters: Array<{
137
+ name: string;
138
+ type: string;
139
+ description?: string;
140
+ }>;
141
+ returnType: string;
94
142
  }
95
143
  /**
96
144
  * Type that defines an example component used to inspire the creation
@@ -103,14 +151,15 @@ export type ComponentExample = {
103
151
  name: string;
104
152
  namespace: string;
105
153
  version?: string;
106
- description: string;
107
- functionalRequirements: string;
108
- technicalDesign: string;
154
+ registry?: string;
155
+ description?: string;
156
+ functionalRequirements?: string;
157
+ technicalDesign?: string;
109
158
  /**
110
159
  * Tracks a 0-1 number that indicates the relevance of this example to the containing ComponentSpec, can be used
111
160
  * for ranking examples by importance/relevance
112
161
  */
113
- relevance: number;
162
+ relevance?: number;
114
163
  code?: string;
115
164
  /**
116
165
  * Optional runtime embedding vector calculated for description
@@ -1 +1 @@
1
- {"version":3,"file":"component-spec.d.ts","sourceRoot":"","sources":["../src/component-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE;;GAEG;AACH,qBAAa,aAAa;IACtB,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAElC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;IAE7F;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;OAQG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAE7C;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAE1B;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAEzC;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;CAChD;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;OAEG;IACH,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjC;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"component-spec.d.ts","sourceRoot":"","sources":["../src/component-spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component-spec.js","sourceRoot":"","sources":["../src/component-spec.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,MAAa,aAAa;CAwGzB;AAxGD,sCAwGC;AAAA,CAAC"}
1
+ {"version":3,"file":"component-spec.js","sourceRoot":"","sources":["../src/component-spec.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,MAAa,aAAa;CA2HzB;AA3HD,sCA2HC;AAAA,CAAC"}
@@ -11,6 +11,12 @@ export interface ComponentCallbacks {
11
11
  * @param key - this is an array of key/value pairs representing the primary key. The format of a Composite Key is an array of KeyValuePair objects and KeyValuePair objects simply have FieldName and Value properties. In most cases entities have single-valued primary keys but this structure is here for complex entity types that have composite primary keys
12
12
  */
13
13
  OpenEntityRecord: (entityName: string, key: CompositeKey) => void;
14
+ /**
15
+ * Allows a component to register methods that can be called by the container.
16
+ * @param methodName - Name of the method being registered
17
+ * @param handler - The method implementation
18
+ */
19
+ RegisterMethod: (methodName: string, handler: Function) => void;
14
20
  }
15
21
  /**
16
22
  * Defines styles for the component. Container can provide styles to a top level component. The top level component
@@ -130,9 +136,9 @@ export type ComponentRefreshFunction = () => void;
130
136
  */
131
137
  export interface ComponentObject {
132
138
  /**
133
- * This component receives props including data, userState, callbacks, utilities, and styles.
139
+ * The React component function that receives props including data, userState, callbacks, utilities, and styles.
134
140
  */
135
- component: any;
141
+ component: Function;
136
142
  /**
137
143
  * The optional print function that is called when the user clicks on the print button in the parent of the component. This function will never be called by the parent before the init function so the print function
138
144
  * can assume the component has been initialized;
@@ -142,6 +148,61 @@ export interface ComponentObject {
142
148
  * The optional refresh function that is called when the user clicks on the refresh button in the parent of the component. This function will never be called by the parent before the init function so the refresh function
143
149
  */
144
150
  refresh?: ComponentRefreshFunction;
151
+ /**
152
+ * Gets the current data state of the component.
153
+ * Used by AI agents to understand what data is currently displayed.
154
+ */
155
+ getCurrentDataState?: () => any;
156
+ /**
157
+ * Gets the history of data state changes in the component.
158
+ * Returns an array of timestamped state snapshots.
159
+ */
160
+ getDataStateHistory?: () => Array<{
161
+ timestamp: Date;
162
+ state: any;
163
+ }>;
164
+ /**
165
+ * Validates the current state of the component.
166
+ * Returns true if valid, false or validation errors otherwise.
167
+ */
168
+ validate?: () => boolean | {
169
+ valid: boolean;
170
+ errors?: string[];
171
+ };
172
+ /**
173
+ * Checks if the component has unsaved changes.
174
+ */
175
+ isDirty?: () => boolean;
176
+ /**
177
+ * Resets the component to its initial state.
178
+ */
179
+ reset?: () => void;
180
+ /**
181
+ * Scrolls to a specific element or position within the component.
182
+ * @param target - Element selector, element reference, or scroll options
183
+ */
184
+ scrollTo?: (target: string | HTMLElement | {
185
+ top?: number;
186
+ left?: number;
187
+ }) => void;
188
+ /**
189
+ * Sets focus to a specific element within the component.
190
+ * @param target - Element selector or element reference
191
+ */
192
+ focus?: (target?: string | HTMLElement) => void;
193
+ /**
194
+ * Generic method invoker for custom methods
195
+ * @param methodName - Name of the method to invoke
196
+ * @param args - Arguments to pass to the method
197
+ * @returns The result of the method call, or undefined if method doesn't exist
198
+ */
199
+ invokeMethod?: (methodName: string, ...args: any[]) => any;
200
+ /**
201
+ * Check if a method is registered on the component
202
+ * @param methodName - Name of the method to check
203
+ * @returns true if the method exists
204
+ */
205
+ hasMethod?: (methodName: string) => boolean;
145
206
  }
146
207
  /**
147
208
  * This interface defines the utilities that are available to the component at runtime. These utilities are used to interact with the host MJ system to
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../src/runtime-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../src/runtime-types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/interactive-component-types",
3
- "version": "2.93.0",
3
+ "version": "2.95.0",
4
4
  "description": "MemberJunction: Interactive Component - Type specifications for MJ Interactive UI Componentry",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,7 +19,7 @@
19
19
  "typescript": "^5.4.5"
20
20
  },
21
21
  "dependencies": {
22
- "@memberjunction/core": "2.93.0",
23
- "@memberjunction/ai-vectors-memory": "2.93.0"
22
+ "@memberjunction/core": "2.95.0",
23
+ "@memberjunction/ai-vectors-memory": "2.95.0"
24
24
  }
25
25
  }