@memberjunction/ng-entity-relationship-diagram 0.0.1 → 2.129.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 (38) hide show
  1. package/README.md +754 -27
  2. package/dist/lib/components/entity-details/entity-details.component.d.ts +70 -0
  3. package/dist/lib/components/entity-details/entity-details.component.d.ts.map +1 -0
  4. package/dist/lib/components/entity-details/entity-details.component.js +694 -0
  5. package/dist/lib/components/entity-details/entity-details.component.js.map +1 -0
  6. package/dist/lib/components/entity-filter-panel/entity-filter-panel.component.d.ts +48 -0
  7. package/dist/lib/components/entity-filter-panel/entity-filter-panel.component.d.ts.map +1 -0
  8. package/dist/lib/components/entity-filter-panel/entity-filter-panel.component.js +179 -0
  9. package/dist/lib/components/entity-filter-panel/entity-filter-panel.component.js.map +1 -0
  10. package/dist/lib/components/erd-composite/erd-composite.component.d.ts +170 -0
  11. package/dist/lib/components/erd-composite/erd-composite.component.d.ts.map +1 -0
  12. package/dist/lib/components/erd-composite/erd-composite.component.js +391 -0
  13. package/dist/lib/components/erd-composite/erd-composite.component.js.map +1 -0
  14. package/dist/lib/components/erd-diagram.component.d.ts +486 -0
  15. package/dist/lib/components/erd-diagram.component.d.ts.map +1 -0
  16. package/dist/lib/components/erd-diagram.component.js +1936 -0
  17. package/dist/lib/components/erd-diagram.component.js.map +1 -0
  18. package/dist/lib/components/mj-entity-erd.component.d.ts +261 -0
  19. package/dist/lib/components/mj-entity-erd.component.d.ts.map +1 -0
  20. package/dist/lib/components/mj-entity-erd.component.js +416 -0
  21. package/dist/lib/components/mj-entity-erd.component.js.map +1 -0
  22. package/dist/lib/entity-relationship-diagram.module.d.ts +83 -0
  23. package/dist/lib/entity-relationship-diagram.module.d.ts.map +1 -0
  24. package/dist/lib/entity-relationship-diagram.module.js +121 -0
  25. package/dist/lib/entity-relationship-diagram.module.js.map +1 -0
  26. package/dist/lib/interfaces/erd-types.d.ts +491 -0
  27. package/dist/lib/interfaces/erd-types.d.ts.map +1 -0
  28. package/dist/lib/interfaces/erd-types.js +6 -0
  29. package/dist/lib/interfaces/erd-types.js.map +1 -0
  30. package/dist/lib/utils/entity-to-erd-adapter.d.ts +64 -0
  31. package/dist/lib/utils/entity-to-erd-adapter.d.ts.map +1 -0
  32. package/dist/lib/utils/entity-to-erd-adapter.js +231 -0
  33. package/dist/lib/utils/entity-to-erd-adapter.js.map +1 -0
  34. package/dist/public-api.d.ts +9 -0
  35. package/dist/public-api.d.ts.map +1 -0
  36. package/dist/public-api.js +16 -0
  37. package/dist/public-api.js.map +1 -0
  38. package/package.json +45 -6
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Converts MemberJunction EntityFieldInfo to generic ERDField format.
3
+ */
4
+ export function entityFieldToERDField(field) {
5
+ const erdField = {
6
+ id: field.ID,
7
+ name: field.Name,
8
+ type: field.Type,
9
+ isPrimaryKey: field.IsPrimaryKey,
10
+ description: field.Description,
11
+ allowsNull: field.AllowsNull,
12
+ defaultValue: field.DefaultValue,
13
+ length: field.Length,
14
+ precision: field.Precision,
15
+ scale: field.Scale,
16
+ isVirtual: field.IsVirtual,
17
+ autoIncrement: field.AutoIncrement
18
+ };
19
+ // Add related entity info for foreign keys
20
+ if (field.RelatedEntityID) {
21
+ erdField.relatedNodeId = field.RelatedEntityID;
22
+ erdField.relatedNodeName = field.RelatedEntity;
23
+ erdField.relatedFieldName = field.RelatedEntityFieldName;
24
+ }
25
+ // Add possible values if they exist
26
+ if (field.EntityFieldValues && field.EntityFieldValues.length > 0) {
27
+ erdField.possibleValues = field.EntityFieldValues.map(v => ({
28
+ id: v.ID,
29
+ value: v.Value,
30
+ code: v.Code,
31
+ description: v.Description,
32
+ sequence: v.Sequence
33
+ }));
34
+ }
35
+ return erdField;
36
+ }
37
+ /**
38
+ * Converts MemberJunction EntityInfo to generic ERDNode format.
39
+ */
40
+ export function entityInfoToERDNode(entity) {
41
+ return {
42
+ id: entity.ID,
43
+ name: entity.Name,
44
+ schemaName: entity.SchemaName,
45
+ description: entity.Description,
46
+ status: entity.Status,
47
+ baseTable: entity.BaseTable,
48
+ fields: entity.Fields.map(f => entityFieldToERDField(f)),
49
+ customData: {
50
+ // Store original entity for reverse lookup if needed
51
+ originalEntity: entity
52
+ }
53
+ };
54
+ }
55
+ /**
56
+ * Converts an array of MemberJunction EntityInfo objects to ERDNode format.
57
+ */
58
+ export function entitiesToERDNodes(entities) {
59
+ return entities.map(e => entityInfoToERDNode(e));
60
+ }
61
+ /**
62
+ * Extracts the original EntityInfo from an ERDNode's customData.
63
+ * Returns null if not found.
64
+ */
65
+ export function getOriginalEntityFromERDNode(node) {
66
+ if (node.customData && node.customData['originalEntity']) {
67
+ return node.customData['originalEntity'];
68
+ }
69
+ return null;
70
+ }
71
+ /**
72
+ * Finds an EntityInfo by node ID from an array.
73
+ */
74
+ export function findEntityByNodeId(nodeId, entities) {
75
+ return entities.find(e => e.ID === nodeId);
76
+ }
77
+ /**
78
+ * Builds ERD nodes and links from an array of EntityInfo objects.
79
+ * This handles the transformation and automatic relationship discovery.
80
+ *
81
+ * @param entities - The primary entities to display
82
+ * @param options - Options for relationship discovery
83
+ * @returns Object containing nodes and links arrays
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * // Single entity with all related entities
88
+ * const result = buildERDDataFromEntities([myEntity], {
89
+ * allEntities: metadata.Entities,
90
+ * includeIncoming: true,
91
+ * includeOutgoing: true,
92
+ * depth: 1
93
+ * });
94
+ * ```
95
+ */
96
+ export function buildERDDataFromEntities(entities, options = {}) {
97
+ const { includeIncoming = true, includeOutgoing = true, allEntities = [], depth = 1 } = options;
98
+ const nodes = [];
99
+ const links = [];
100
+ const addedNodeIds = new Set();
101
+ const addedLinkKeys = new Set();
102
+ // Helper to add a node if not already added
103
+ const addNode = (entity) => {
104
+ if (!addedNodeIds.has(entity.ID)) {
105
+ nodes.push(entityInfoToERDNode(entity));
106
+ addedNodeIds.add(entity.ID);
107
+ }
108
+ };
109
+ // Helper to add a link if not already added
110
+ const addLink = (link) => {
111
+ const key = `${link.sourceNodeId}->${link.targetNodeId}:${link.sourceField.id}`;
112
+ if (!addedLinkKeys.has(key)) {
113
+ links.push(link);
114
+ addedLinkKeys.add(key);
115
+ }
116
+ };
117
+ // First, add all primary entities
118
+ for (const entity of entities) {
119
+ addNode(entity);
120
+ }
121
+ // Process relationships for each primary entity
122
+ for (const entity of entities) {
123
+ // Outgoing relationships (this entity references others via FK)
124
+ if (includeOutgoing) {
125
+ for (const field of entity.Fields) {
126
+ if (field.RelatedEntityID) {
127
+ const relatedEntity = allEntities.find(e => e.ID === field.RelatedEntityID);
128
+ if (relatedEntity) {
129
+ addNode(relatedEntity);
130
+ const pkField = relatedEntity.Fields.find(f => f.IsPrimaryKey);
131
+ addLink({
132
+ sourceNodeId: entity.ID,
133
+ targetNodeId: field.RelatedEntityID,
134
+ sourceField: entityFieldToERDField(field),
135
+ targetField: pkField ? entityFieldToERDField(pkField) : undefined,
136
+ isSelfReference: entity.ID === field.RelatedEntityID,
137
+ relationshipType: 'many-to-one'
138
+ });
139
+ }
140
+ }
141
+ }
142
+ }
143
+ // Incoming relationships (other entities reference this one)
144
+ if (includeIncoming) {
145
+ for (const rel of entity.RelatedEntities) {
146
+ // rel.RelatedEntity is the entity that has the FK pointing to this entity
147
+ const relEntity = allEntities.find(e => e.Name === rel.RelatedEntity);
148
+ if (relEntity) {
149
+ addNode(relEntity);
150
+ const fkField = relEntity.Fields.find(f => f.Name === rel.RelatedEntityJoinField);
151
+ const pkField = entity.Fields.find(f => f.IsPrimaryKey);
152
+ if (fkField) {
153
+ addLink({
154
+ sourceNodeId: relEntity.ID,
155
+ targetNodeId: entity.ID,
156
+ sourceField: entityFieldToERDField(fkField),
157
+ targetField: pkField ? entityFieldToERDField(pkField) : undefined,
158
+ isSelfReference: relEntity.ID === entity.ID,
159
+ relationshipType: 'many-to-one'
160
+ });
161
+ }
162
+ }
163
+ }
164
+ }
165
+ }
166
+ // If depth > 1, recursively expand relationships
167
+ if (depth > 1) {
168
+ const processedIds = new Set(entities.map(e => e.ID));
169
+ let currentDepthEntities = [...nodes]
170
+ .map(n => getOriginalEntityFromERDNode(n))
171
+ .filter((e) => e !== null && !processedIds.has(e.ID));
172
+ console.log(`[buildERDDataFromEntities] depth=${depth}, starting expansion. Initial nodes=${nodes.length}, currentDepthEntities=${currentDepthEntities.length}`);
173
+ for (let d = 1; d < depth; d++) {
174
+ const nextDepthEntities = [];
175
+ for (const entity of currentDepthEntities) {
176
+ if (processedIds.has(entity.ID))
177
+ continue;
178
+ processedIds.add(entity.ID);
179
+ // Outgoing
180
+ if (includeOutgoing) {
181
+ for (const field of entity.Fields) {
182
+ if (field.RelatedEntityID && !addedNodeIds.has(field.RelatedEntityID)) {
183
+ const relatedEntity = allEntities.find(e => e.ID === field.RelatedEntityID);
184
+ if (relatedEntity) {
185
+ addNode(relatedEntity);
186
+ nextDepthEntities.push(relatedEntity);
187
+ const pkField = relatedEntity.Fields.find(f => f.IsPrimaryKey);
188
+ addLink({
189
+ sourceNodeId: entity.ID,
190
+ targetNodeId: field.RelatedEntityID,
191
+ sourceField: entityFieldToERDField(field),
192
+ targetField: pkField ? entityFieldToERDField(pkField) : undefined,
193
+ isSelfReference: entity.ID === field.RelatedEntityID,
194
+ relationshipType: 'many-to-one'
195
+ });
196
+ }
197
+ }
198
+ }
199
+ }
200
+ // Incoming
201
+ if (includeIncoming) {
202
+ for (const rel of entity.RelatedEntities) {
203
+ // rel.RelatedEntity is the entity that has the FK pointing to this entity
204
+ const relEntity = allEntities.find(e => e.Name === rel.RelatedEntity);
205
+ if (relEntity && !addedNodeIds.has(relEntity.ID)) {
206
+ addNode(relEntity);
207
+ nextDepthEntities.push(relEntity);
208
+ const fkField = relEntity.Fields.find(f => f.Name === rel.RelatedEntityJoinField);
209
+ const pkField = entity.Fields.find(f => f.IsPrimaryKey);
210
+ if (fkField) {
211
+ addLink({
212
+ sourceNodeId: relEntity.ID,
213
+ targetNodeId: entity.ID,
214
+ sourceField: entityFieldToERDField(fkField),
215
+ targetField: pkField ? entityFieldToERDField(pkField) : undefined,
216
+ isSelfReference: relEntity.ID === entity.ID,
217
+ relationshipType: 'many-to-one'
218
+ });
219
+ }
220
+ }
221
+ }
222
+ }
223
+ }
224
+ console.log(`[buildERDDataFromEntities] d=${d}, processed entities, nextDepthEntities=${nextDepthEntities.length}, total nodes now=${nodes.length}`);
225
+ currentDepthEntities = nextDepthEntities;
226
+ }
227
+ }
228
+ console.log(`[buildERDDataFromEntities] FINAL: nodes=${nodes.length}, links=${links.length}`);
229
+ return { nodes, links };
230
+ }
231
+ //# sourceMappingURL=entity-to-erd-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-to-erd-adapter.js","sourceRoot":"","sources":["../../../src/lib/utils/entity-to-erd-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from './lib/entity-relationship-diagram.module';
2
+ export * from './lib/interfaces/erd-types';
3
+ export * from './lib/components/erd-diagram.component';
4
+ export * from './lib/components/mj-entity-erd.component';
5
+ export * from './lib/components/entity-details/entity-details.component';
6
+ export * from './lib/components/entity-filter-panel/entity-filter-panel.component';
7
+ export * from './lib/components/erd-composite/erd-composite.component';
8
+ export * from './lib/utils/entity-to-erd-adapter';
9
+ //# sourceMappingURL=public-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAKA,cAAc,0CAA0C,CAAC;AAGzD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,0DAA0D,CAAC;AACzE,cAAc,oEAAoE,CAAC;AACnF,cAAc,wDAAwD,CAAC;AAGvE,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Public API Surface of @memberjunction/ng-entity-relationship-diagram
3
+ */
4
+ // Module
5
+ export * from './lib/entity-relationship-diagram.module';
6
+ // Interfaces and types
7
+ export * from './lib/interfaces/erd-types';
8
+ // Components
9
+ export * from './lib/components/erd-diagram.component';
10
+ export * from './lib/components/mj-entity-erd.component';
11
+ export * from './lib/components/entity-details/entity-details.component';
12
+ export * from './lib/components/entity-filter-panel/entity-filter-panel.component';
13
+ export * from './lib/components/erd-composite/erd-composite.component';
14
+ // Utilities for MJ entity transformation
15
+ export * from './lib/utils/entity-to-erd-adapter';
16
+ //# sourceMappingURL=public-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,cAAc,0CAA0C,CAAC;AAEzD,uBAAuB;AACvB,cAAc,4BAA4B,CAAC;AAE3C,aAAa;AACb,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,0DAA0D,CAAC;AACzE,cAAc,oEAAoE,CAAC;AACnF,cAAc,wDAAwD,CAAC;AAEvE,yCAAyC;AACzC,cAAc,mCAAmC,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,49 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-entity-relationship-diagram",
3
- "version": "0.0.1",
4
- "description": "OIDC trusted publishing setup package for @memberjunction/ng-entity-relationship-diagram",
3
+ "version": "2.129.0",
4
+ "description": "MemberJunction: Entity Relationship Diagram (ERD) component for visualizing entity relationships using D3.js force-directed graphs",
5
+ "main": "./dist/public-api.js",
6
+ "typings": "./dist/public-api.d.ts",
7
+ "files": [
8
+ "/dist"
9
+ ],
10
+ "scripts": {
11
+ "test": "echo \"Error: no test specified\" && exit 1",
12
+ "build": "ngc"
13
+ },
5
14
  "keywords": [
6
- "oidc",
7
- "trusted-publishing",
8
- "setup"
9
- ]
15
+ "angular",
16
+ "erd",
17
+ "entity-relationship-diagram",
18
+ "d3",
19
+ "visualization",
20
+ "memberjunction"
21
+ ],
22
+ "author": "",
23
+ "license": "ISC",
24
+ "devDependencies": {
25
+ "@angular/compiler": "18.0.2",
26
+ "@angular/compiler-cli": "18.0.2",
27
+ "sass": "^1.77.2"
28
+ },
29
+ "peerDependencies": {
30
+ "@angular/common": "18.0.2",
31
+ "@angular/core": "18.0.2",
32
+ "@angular/platform-browser": "18.0.2"
33
+ },
34
+ "dependencies": {
35
+ "@angular/forms": "18.0.2",
36
+ "@dagrejs/dagre": "^1.1.8",
37
+ "@memberjunction/core": "2.129.0",
38
+ "@progress/kendo-angular-layout": "^16.2.0",
39
+ "@types/d3": "^7.4.3",
40
+ "d3": "^7.9.0",
41
+ "rxjs": "^7.8.1",
42
+ "tslib": "^2.3.0"
43
+ },
44
+ "sideEffects": false,
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "https://github.com/MemberJunction/MJ"
48
+ }
10
49
  }