@memberjunction/ng-clustering 5.39.0 → 5.40.1

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 (49) hide show
  1. package/dist/__tests__/cluster-view-type.test.d.ts +2 -0
  2. package/dist/__tests__/cluster-view-type.test.d.ts.map +1 -0
  3. package/dist/__tests__/cluster-view-type.test.js +63 -0
  4. package/dist/__tests__/cluster-view-type.test.js.map +1 -0
  5. package/dist/lib/cluster-config-panel.component.d.ts +39 -1
  6. package/dist/lib/cluster-config-panel.component.d.ts.map +1 -1
  7. package/dist/lib/cluster-config-panel.component.js +287 -88
  8. package/dist/lib/cluster-config-panel.component.js.map +1 -1
  9. package/dist/lib/cluster-scatter.component.d.ts +53 -1
  10. package/dist/lib/cluster-scatter.component.d.ts.map +1 -1
  11. package/dist/lib/cluster-scatter.component.js +385 -135
  12. package/dist/lib/cluster-scatter.component.js.map +1 -1
  13. package/dist/lib/clustering.module.d.ts +7 -4
  14. package/dist/lib/clustering.module.d.ts.map +1 -1
  15. package/dist/lib/clustering.module.js +20 -3
  16. package/dist/lib/clustering.module.js.map +1 -1
  17. package/dist/lib/clustering.service.d.ts +63 -3
  18. package/dist/lib/clustering.service.d.ts.map +1 -1
  19. package/dist/lib/clustering.service.js +169 -48
  20. package/dist/lib/clustering.service.js.map +1 -1
  21. package/dist/lib/clustering.types.d.ts +17 -2
  22. package/dist/lib/clustering.types.d.ts.map +1 -1
  23. package/dist/lib/clustering.types.js +3 -0
  24. package/dist/lib/clustering.types.js.map +1 -1
  25. package/dist/lib/view-type/cluster-view-prop-sheet.component.d.ts +31 -0
  26. package/dist/lib/view-type/cluster-view-prop-sheet.component.d.ts.map +1 -0
  27. package/dist/lib/view-type/cluster-view-prop-sheet.component.js +185 -0
  28. package/dist/lib/view-type/cluster-view-prop-sheet.component.js.map +1 -0
  29. package/dist/lib/view-type/cluster-view-renderer.component.d.ts +143 -0
  30. package/dist/lib/view-type/cluster-view-renderer.component.d.ts.map +1 -0
  31. package/dist/lib/view-type/cluster-view-renderer.component.js +508 -0
  32. package/dist/lib/view-type/cluster-view-renderer.component.js.map +1 -0
  33. package/dist/lib/view-type/cluster-view-type.d.ts +35 -0
  34. package/dist/lib/view-type/cluster-view-type.d.ts.map +1 -0
  35. package/dist/lib/view-type/cluster-view-type.js +51 -0
  36. package/dist/lib/view-type/cluster-view-type.js.map +1 -0
  37. package/dist/lib/view-type/cluster-view.types.d.ts +31 -0
  38. package/dist/lib/view-type/cluster-view.types.d.ts.map +1 -0
  39. package/dist/lib/view-type/cluster-view.types.js +29 -0
  40. package/dist/lib/view-type/cluster-view.types.js.map +1 -0
  41. package/dist/lib/view-type/entity-document-availability.engine.d.ts +80 -0
  42. package/dist/lib/view-type/entity-document-availability.engine.d.ts.map +1 -0
  43. package/dist/lib/view-type/entity-document-availability.engine.js +149 -0
  44. package/dist/lib/view-type/entity-document-availability.engine.js.map +1 -0
  45. package/dist/public-api.d.ts +5 -0
  46. package/dist/public-api.d.ts.map +1 -1
  47. package/dist/public-api.js +6 -0
  48. package/dist/public-api.js.map +1 -1
  49. package/package.json +11 -3
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cluster-view-type.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster-view-type.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/cluster-view-type.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ import { describe, it, expect, beforeEach } from 'vitest';
2
+ import { NormalizeUUID } from '@memberjunction/global';
3
+ import { DEFAULT_CLUSTER_VIEW_CONFIG, toClusterViewConfig, } from '../lib/view-type/cluster-view.types';
4
+ import { EntityDocumentAvailabilityEngine } from '../lib/view-type/entity-document-availability.engine';
5
+ // NOTE: We intentionally do NOT import ClusterViewType / the renderer here — those pull the
6
+ // Angular component graph (ng-entity-viewer) which needs the JIT compiler in a unit-test env.
7
+ // The Cluster descriptor's IsAvailableFor simply delegates to the availability engine tested
8
+ // below, and the renderer/prop-sheet are exercised via the live Playwright pass.
9
+ // Minimal EntityInfo stand-in — only the fields the code under test reads.
10
+ function entity(id) {
11
+ return { ID: id, Name: `Entity ${id}` };
12
+ }
13
+ /**
14
+ * Seed the engine's vector-presence cache (the set of entity IDs that have populated vectors)
15
+ * without hitting the database. Mirrors what `loadVectorPresence` produces.
16
+ */
17
+ function seedEntitiesWithVectors(entityIds) {
18
+ EntityDocumentAvailabilityEngine.Instance._entityIDsWithVectors =
19
+ new Set(entityIds.map(id => NormalizeUUID(id)));
20
+ }
21
+ describe('toClusterViewConfig', () => {
22
+ it('returns the full defaults for empty / null input', () => {
23
+ expect(toClusterViewConfig(null)).toEqual(DEFAULT_CLUSTER_VIEW_CONFIG);
24
+ expect(toClusterViewConfig(undefined)).toEqual(DEFAULT_CLUSTER_VIEW_CONFIG);
25
+ expect(toClusterViewConfig({})).toEqual(DEFAULT_CLUSTER_VIEW_CONFIG);
26
+ });
27
+ it('preserves valid provided values', () => {
28
+ const cfg = toClusterViewConfig({ algorithm: 'dbscan', k: 8, dimensions: 3, colorBy: 'entity', maxRecords: 1000, nameClusters: false });
29
+ expect(cfg).toEqual({ algorithm: 'dbscan', k: 8, dimensions: 3, colorBy: 'entity', maxRecords: 1000, nameClusters: false });
30
+ });
31
+ it('coerces invalid enum-ish values to safe defaults', () => {
32
+ const cfg = toClusterViewConfig({ algorithm: 'bogus', dimensions: 5, colorBy: 'rainbow' });
33
+ expect(cfg.algorithm).toBe('kmeans');
34
+ expect(cfg.dimensions).toBe(2);
35
+ expect(cfg.colorBy).toBe('cluster');
36
+ });
37
+ it('falls back to defaults for wrong-typed numerics/booleans', () => {
38
+ const cfg = toClusterViewConfig({ k: 'lots', maxRecords: null, nameClusters: 'yes' });
39
+ expect(cfg.k).toBe(DEFAULT_CLUSTER_VIEW_CONFIG.k);
40
+ expect(cfg.maxRecords).toBe(DEFAULT_CLUSTER_VIEW_CONFIG.maxRecords);
41
+ expect(cfg.nameClusters).toBe(DEFAULT_CLUSTER_VIEW_CONFIG.nameClusters);
42
+ });
43
+ });
44
+ describe('EntityDocumentAvailabilityEngine.HasVectorsForEntity', () => {
45
+ beforeEach(() => seedEntitiesWithVectors([]));
46
+ it('returns false when no entity is supplied', () => {
47
+ expect(EntityDocumentAvailabilityEngine.Instance.HasVectorsForEntity(null)).toBe(false);
48
+ });
49
+ it('returns false when the entity has no populated vectors', () => {
50
+ seedEntitiesWithVectors(['AAAAAAAA-0000-0000-0000-000000000001']);
51
+ expect(EntityDocumentAvailabilityEngine.Instance.HasVectorsForEntity(entity('BBBBBBBB-0000-0000-0000-000000000002'))).toBe(false);
52
+ });
53
+ it('returns true when the entity has populated vectors', () => {
54
+ const id = 'AAAAAAAA-0000-0000-0000-000000000001';
55
+ seedEntitiesWithVectors([id]);
56
+ expect(EntityDocumentAvailabilityEngine.Instance.HasVectorsForEntity(entity(id))).toBe(true);
57
+ });
58
+ it('matches UUIDs case-insensitively (SQL Server vs PostgreSQL casing)', () => {
59
+ seedEntitiesWithVectors(['aaaaaaaa-0000-0000-0000-000000000001']);
60
+ expect(EntityDocumentAvailabilityEngine.Instance.HasVectorsForEntity(entity('AAAAAAAA-0000-0000-0000-000000000001'))).toBe(true);
61
+ });
62
+ });
63
+ //# sourceMappingURL=cluster-view-type.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster-view-type.test.js","sourceRoot":"","sources":["../../src/__tests__/cluster-view-type.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect, beforeEach } from 'vitest';\nimport type { EntityInfo } from '@memberjunction/core';\nimport { NormalizeUUID } from '@memberjunction/global';\nimport {\n DEFAULT_CLUSTER_VIEW_CONFIG,\n toClusterViewConfig,\n} from '../lib/view-type/cluster-view.types';\nimport { EntityDocumentAvailabilityEngine } from '../lib/view-type/entity-document-availability.engine';\n\n// NOTE: We intentionally do NOT import ClusterViewType / the renderer here — those pull the\n// Angular component graph (ng-entity-viewer) which needs the JIT compiler in a unit-test env.\n// The Cluster descriptor's IsAvailableFor simply delegates to the availability engine tested\n// below, and the renderer/prop-sheet are exercised via the live Playwright pass.\n\n// Minimal EntityInfo stand-in — only the fields the code under test reads.\nfunction entity(id: string): EntityInfo {\n return { ID: id, Name: `Entity ${id}` } as unknown as EntityInfo;\n}\n\n/**\n * Seed the engine's vector-presence cache (the set of entity IDs that have populated vectors)\n * without hitting the database. Mirrors what `loadVectorPresence` produces.\n */\nfunction seedEntitiesWithVectors(entityIds: string[]): void {\n (EntityDocumentAvailabilityEngine.Instance as unknown as { _entityIDsWithVectors: Set<string> })._entityIDsWithVectors =\n new Set(entityIds.map(id => NormalizeUUID(id)));\n}\n\ndescribe('toClusterViewConfig', () => {\n it('returns the full defaults for empty / null input', () => {\n expect(toClusterViewConfig(null)).toEqual(DEFAULT_CLUSTER_VIEW_CONFIG);\n expect(toClusterViewConfig(undefined)).toEqual(DEFAULT_CLUSTER_VIEW_CONFIG);\n expect(toClusterViewConfig({})).toEqual(DEFAULT_CLUSTER_VIEW_CONFIG);\n });\n\n it('preserves valid provided values', () => {\n const cfg = toClusterViewConfig({ algorithm: 'dbscan', k: 8, dimensions: 3, colorBy: 'entity', maxRecords: 1000, nameClusters: false });\n expect(cfg).toEqual({ algorithm: 'dbscan', k: 8, dimensions: 3, colorBy: 'entity', maxRecords: 1000, nameClusters: false });\n });\n\n it('coerces invalid enum-ish values to safe defaults', () => {\n const cfg = toClusterViewConfig({ algorithm: 'bogus', dimensions: 5, colorBy: 'rainbow' });\n expect(cfg.algorithm).toBe('kmeans');\n expect(cfg.dimensions).toBe(2);\n expect(cfg.colorBy).toBe('cluster');\n });\n\n it('falls back to defaults for wrong-typed numerics/booleans', () => {\n const cfg = toClusterViewConfig({ k: 'lots', maxRecords: null, nameClusters: 'yes' });\n expect(cfg.k).toBe(DEFAULT_CLUSTER_VIEW_CONFIG.k);\n expect(cfg.maxRecords).toBe(DEFAULT_CLUSTER_VIEW_CONFIG.maxRecords);\n expect(cfg.nameClusters).toBe(DEFAULT_CLUSTER_VIEW_CONFIG.nameClusters);\n });\n});\n\ndescribe('EntityDocumentAvailabilityEngine.HasVectorsForEntity', () => {\n beforeEach(() => seedEntitiesWithVectors([]));\n\n it('returns false when no entity is supplied', () => {\n expect(EntityDocumentAvailabilityEngine.Instance.HasVectorsForEntity(null)).toBe(false);\n });\n\n it('returns false when the entity has no populated vectors', () => {\n seedEntitiesWithVectors(['AAAAAAAA-0000-0000-0000-000000000001']);\n expect(EntityDocumentAvailabilityEngine.Instance.HasVectorsForEntity(entity('BBBBBBBB-0000-0000-0000-000000000002'))).toBe(false);\n });\n\n it('returns true when the entity has populated vectors', () => {\n const id = 'AAAAAAAA-0000-0000-0000-000000000001';\n seedEntitiesWithVectors([id]);\n expect(EntityDocumentAvailabilityEngine.Instance.HasVectorsForEntity(entity(id))).toBe(true);\n });\n\n it('matches UUIDs case-insensitively (SQL Server vs PostgreSQL casing)', () => {\n seedEntitiesWithVectors(['aaaaaaaa-0000-0000-0000-000000000001']);\n expect(EntityDocumentAvailabilityEngine.Instance.HasVectorsForEntity(entity('AAAAAAAA-0000-0000-0000-000000000001'))).toBe(true);\n });\n});\n"]}
@@ -56,6 +56,16 @@ export declare class ClusterConfigPanelComponent implements OnInit, OnDestroy {
56
56
  get EntityOptions(): ClusterConfigPanelEntityOption[];
57
57
  /** Entity Document options for the selected entity. Only shown when 2+ docs exist. */
58
58
  EntityDocOptions: ClusterConfigPanelEntityDocOption[];
59
+ /**
60
+ * All Entity Documents across entities (each with `EntityName`), used to power
61
+ * the optional multi-entity source selector. When two or more are selected the
62
+ * run becomes a multi-entity analysis (their vectors are merged server-side).
63
+ */
64
+ AllEntityDocOptions: ClusterConfigPanelEntityDocOption[];
65
+ /** Whether to show the 2D/3D projection toggle. @default true */
66
+ ShowDimensionToggle: boolean;
67
+ /** Whether to show the multi-entity source selector. @default true */
68
+ ShowMultiEntity: boolean;
59
69
  /**
60
70
  * Whether to display the "Save this visualization" link.
61
71
  *
@@ -151,12 +161,20 @@ export declare class ClusterConfigPanelComponent implements OnInit, OnDestroy {
151
161
  * Useful for showing/hiding algorithm-specific UI in the parent.
152
162
  */
153
163
  AlgorithmChanged: EventEmitter<ClusterAlgorithm>;
164
+ /**
165
+ * Fires when the 2D/3D projection toggle changes. Hosts should re-run (or
166
+ * re-project) so the change is reflected immediately — a 3D projection needs
167
+ * a Z coordinate that only a fresh run produces.
168
+ */
169
+ DimensionsChanged: EventEmitter<2 | 3>;
154
170
  /** The working configuration object. */
155
171
  Config: ClusterConfig;
156
172
  /** Filtered entity list for display (filtered by AvailableEntities). */
157
173
  FilteredEntityOptions: ClusterConfigPanelEntityOption[];
158
174
  /** Whether the panel body is currently visible. */
159
175
  IsExpanded: boolean;
176
+ /** Whether the multi-entity source selector is expanded. */
177
+ ShowMultiSource: boolean;
160
178
  /** Algorithm options for the dropdown. */
161
179
  AlgorithmOptions: Array<{
162
180
  Value: ClusterAlgorithm;
@@ -209,6 +227,26 @@ export declare class ClusterConfigPanelComponent implements OnInit, OnDestroy {
209
227
  * MinPoints, MaxRecords, Filter).
210
228
  */
211
229
  OnFieldChanged(): void;
230
+ /** The currently selected entity-document IDs for multi-entity clustering. */
231
+ get SelectedDocIDs(): string[];
232
+ /** True when two or more source documents are selected (multi-entity mode). */
233
+ get IsMultiEntity(): boolean;
234
+ /** Whether there are enough documents to offer multi-entity selection. */
235
+ get HasMultiSourceOptions(): boolean;
236
+ /** Whether a given document is currently selected. */
237
+ IsDocSelected(id: string): boolean;
238
+ /** Toggle a document in/out of the multi-entity selection. */
239
+ ToggleDoc(id: string): void;
240
+ /** Toggle the multi-source expander. */
241
+ ToggleMultiSource(): void;
242
+ /** Set the projection dimensionality (2 or 3). */
243
+ SetDimensions(d: 2 | 3): void;
244
+ /** Set the legend/color mode. */
245
+ SetColorBy(mode: 'cluster' | 'entity'): void;
246
+ /** Whether the Run button can be clicked. */
247
+ get CanRun(): boolean;
248
+ /** Whether the Save button should be offered (there are results to save). */
249
+ get CanSave(): boolean;
212
250
  /**
213
251
  * Handle Run button click. Fires `BeforeRunClustering`, and if not
214
252
  * canceled, emits `RunClustering`.
@@ -269,6 +307,6 @@ export declare class ClusterConfigPanelComponent implements OnInit, OnDestroy {
269
307
  private onMouseMove;
270
308
  private onMouseUp;
271
309
  static ɵfac: i0.ɵɵFactoryDeclaration<ClusterConfigPanelComponent, never>;
272
- static ɵcmp: i0.ɵɵComponentDeclaration<ClusterConfigPanelComponent, "mj-cluster-config-panel", never, { "IsRunning": { "alias": "IsRunning"; "required": false; }; "Metrics": { "alias": "Metrics"; "required": false; }; "EntityOptions": { "alias": "EntityOptions"; "required": false; }; "EntityDocOptions": { "alias": "EntityDocOptions"; "required": false; }; "ShowSaveButton": { "alias": "ShowSaveButton"; "required": false; }; "ShowAlgorithmPicker": { "alias": "ShowAlgorithmPicker"; "required": false; }; "ShowMetricPicker": { "alias": "ShowMetricPicker"; "required": false; }; "DefaultAlgorithm": { "alias": "DefaultAlgorithm"; "required": false; }; "AvailableEntities": { "alias": "AvailableEntities"; "required": false; }; "Collapsed": { "alias": "Collapsed"; "required": false; }; }, { "RunClustering": "RunClustering"; "SaveVisualization": "SaveVisualization"; "BeforeRunClustering": "BeforeRunClustering"; "BeforeSave": "BeforeSave"; "ConfigChanged": "ConfigChanged"; "AlgorithmChanged": "AlgorithmChanged"; }, never, never, false, never>;
310
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClusterConfigPanelComponent, "mj-cluster-config-panel", never, { "IsRunning": { "alias": "IsRunning"; "required": false; }; "Metrics": { "alias": "Metrics"; "required": false; }; "EntityOptions": { "alias": "EntityOptions"; "required": false; }; "EntityDocOptions": { "alias": "EntityDocOptions"; "required": false; }; "AllEntityDocOptions": { "alias": "AllEntityDocOptions"; "required": false; }; "ShowDimensionToggle": { "alias": "ShowDimensionToggle"; "required": false; }; "ShowMultiEntity": { "alias": "ShowMultiEntity"; "required": false; }; "ShowSaveButton": { "alias": "ShowSaveButton"; "required": false; }; "ShowAlgorithmPicker": { "alias": "ShowAlgorithmPicker"; "required": false; }; "ShowMetricPicker": { "alias": "ShowMetricPicker"; "required": false; }; "DefaultAlgorithm": { "alias": "DefaultAlgorithm"; "required": false; }; "AvailableEntities": { "alias": "AvailableEntities"; "required": false; }; "Collapsed": { "alias": "Collapsed"; "required": false; }; }, { "RunClustering": "RunClustering"; "SaveVisualization": "SaveVisualization"; "BeforeRunClustering": "BeforeRunClustering"; "BeforeSave": "BeforeSave"; "ConfigChanged": "ConfigChanged"; "AlgorithmChanged": "AlgorithmChanged"; "DimensionsChanged": "DimensionsChanged"; }, never, never, false, never>;
273
311
  }
274
312
  //# sourceMappingURL=cluster-config-panel.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cluster-config-panel.component.d.ts","sourceRoot":"","sources":["../../src/lib/cluster-config-panel.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cluster-config-panel.component.d.ts","sourceRoot":"","sources":["../../src/lib/cluster-config-panel.component.ts"],"names":[],"mappings":"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"}