@memberjunction/ng-entity-relationship-diagram 0.0.1 → 2.130.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 +754 -27
- package/dist/lib/components/entity-details/entity-details.component.d.ts +70 -0
- package/dist/lib/components/entity-details/entity-details.component.d.ts.map +1 -0
- package/dist/lib/components/entity-details/entity-details.component.js +694 -0
- package/dist/lib/components/entity-details/entity-details.component.js.map +1 -0
- package/dist/lib/components/entity-filter-panel/entity-filter-panel.component.d.ts +48 -0
- package/dist/lib/components/entity-filter-panel/entity-filter-panel.component.d.ts.map +1 -0
- package/dist/lib/components/entity-filter-panel/entity-filter-panel.component.js +179 -0
- package/dist/lib/components/entity-filter-panel/entity-filter-panel.component.js.map +1 -0
- package/dist/lib/components/erd-composite/erd-composite.component.d.ts +170 -0
- package/dist/lib/components/erd-composite/erd-composite.component.d.ts.map +1 -0
- package/dist/lib/components/erd-composite/erd-composite.component.js +391 -0
- package/dist/lib/components/erd-composite/erd-composite.component.js.map +1 -0
- package/dist/lib/components/erd-diagram.component.d.ts +486 -0
- package/dist/lib/components/erd-diagram.component.d.ts.map +1 -0
- package/dist/lib/components/erd-diagram.component.js +1936 -0
- package/dist/lib/components/erd-diagram.component.js.map +1 -0
- package/dist/lib/components/mj-entity-erd.component.d.ts +261 -0
- package/dist/lib/components/mj-entity-erd.component.d.ts.map +1 -0
- package/dist/lib/components/mj-entity-erd.component.js +416 -0
- package/dist/lib/components/mj-entity-erd.component.js.map +1 -0
- package/dist/lib/entity-relationship-diagram.module.d.ts +83 -0
- package/dist/lib/entity-relationship-diagram.module.d.ts.map +1 -0
- package/dist/lib/entity-relationship-diagram.module.js +121 -0
- package/dist/lib/entity-relationship-diagram.module.js.map +1 -0
- package/dist/lib/interfaces/erd-types.d.ts +491 -0
- package/dist/lib/interfaces/erd-types.d.ts.map +1 -0
- package/dist/lib/interfaces/erd-types.js +6 -0
- package/dist/lib/interfaces/erd-types.js.map +1 -0
- package/dist/lib/utils/entity-to-erd-adapter.d.ts +64 -0
- package/dist/lib/utils/entity-to-erd-adapter.d.ts.map +1 -0
- package/dist/lib/utils/entity-to-erd-adapter.js +231 -0
- package/dist/lib/utils/entity-to-erd-adapter.js.map +1 -0
- package/dist/public-api.d.ts +9 -0
- package/dist/public-api.d.ts.map +1 -0
- package/dist/public-api.js +16 -0
- package/dist/public-api.js.map +1 -0
- package/package.json +45 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-details.component.js","sourceRoot":"","sources":["../../../../src/lib/components/entity-details/entity-details.component.ts","../../../../src/lib/components/entity-details/entity-details.component.html"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { EntityInfo } from '@memberjunction/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Filter configuration for entity filtering.
|
|
6
|
+
*/
|
|
7
|
+
export interface EntityFilter {
|
|
8
|
+
schemaName: string | null;
|
|
9
|
+
entityName: string;
|
|
10
|
+
entityStatus: string | null;
|
|
11
|
+
baseTable: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Entity filter panel component that provides filtering controls for entities.
|
|
15
|
+
* Supports filtering by schema, entity name, base table, and status.
|
|
16
|
+
*
|
|
17
|
+
* This component is designed to be used alongside the ERD diagram to filter
|
|
18
|
+
* which entities are displayed.
|
|
19
|
+
*/
|
|
20
|
+
export declare class EntityFilterPanelComponent implements OnInit, OnChanges {
|
|
21
|
+
/** All entities available for filtering */
|
|
22
|
+
entities: EntityInfo[];
|
|
23
|
+
/** Currently filtered entities (for display count) */
|
|
24
|
+
filteredEntities: EntityInfo[];
|
|
25
|
+
/** Current filter values */
|
|
26
|
+
filters: EntityFilter;
|
|
27
|
+
/** Emitted when any filter value changes */
|
|
28
|
+
filtersChange: EventEmitter<EntityFilter>;
|
|
29
|
+
/** Emitted when filter is applied (for debouncing) */
|
|
30
|
+
filterChange: EventEmitter<void>;
|
|
31
|
+
/** Emitted when reset button is clicked */
|
|
32
|
+
resetFilters: EventEmitter<void>;
|
|
33
|
+
/** Emitted when close button is clicked */
|
|
34
|
+
closePanel: EventEmitter<void>;
|
|
35
|
+
distinctSchemas: Array<{
|
|
36
|
+
text: string;
|
|
37
|
+
value: string;
|
|
38
|
+
}>;
|
|
39
|
+
ngOnInit(): void;
|
|
40
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
41
|
+
onFilterChange(): void;
|
|
42
|
+
resetAllFilters(): void;
|
|
43
|
+
toggleFilterPanel(): void;
|
|
44
|
+
private updateDistinctSchemas;
|
|
45
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EntityFilterPanelComponent, never>;
|
|
46
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EntityFilterPanelComponent, "mj-entity-filter-panel", never, { "entities": { "alias": "entities"; "required": false; }; "filteredEntities": { "alias": "filteredEntities"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, { "filtersChange": "filtersChange"; "filterChange": "filterChange"; "resetFilters": "resetFilters"; "closePanel": "closePanel"; }, never, never, false, never>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=entity-filter-panel.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-filter-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/entity-filter-panel/entity-filter-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;;AAElD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBAKa,0BAA2B,YAAW,MAAM,EAAE,SAAS;IAClE,2CAA2C;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAM;IAErC,sDAAsD;IAC7C,gBAAgB,EAAE,UAAU,EAAE,CAAM;IAE7C,4BAA4B;IACnB,OAAO,EAAE,YAAY,CAK5B;IAEF,4CAA4C;IAClC,aAAa,6BAAoC;IAE3D,sDAAsD;IAC5C,YAAY,qBAA4B;IAElD,2CAA2C;IACjC,YAAY,qBAA4B;IAElD,2CAA2C;IACjC,UAAU,qBAA4B;IAEzC,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IAEpE,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMlC,cAAc,IAAI,IAAI;IAKtB,eAAe,IAAI,IAAI;IAIvB,iBAAiB,IAAI,IAAI;IAIhC,OAAO,CAAC,qBAAqB;yCApDlB,0BAA0B;2CAA1B,0BAA0B;CAgEtC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/forms";
|
|
5
|
+
function EntityFilterPanelComponent_option_19_Template(rf, ctx) { if (rf & 1) {
|
|
6
|
+
i0.ɵɵelementStart(0, "option", 12);
|
|
7
|
+
i0.ɵɵtext(1);
|
|
8
|
+
i0.ɵɵelementEnd();
|
|
9
|
+
} if (rf & 2) {
|
|
10
|
+
const schema_r1 = ctx.$implicit;
|
|
11
|
+
i0.ɵɵproperty("ngValue", schema_r1.value);
|
|
12
|
+
i0.ɵɵadvance();
|
|
13
|
+
i0.ɵɵtextInterpolate1(" ", schema_r1.text, " ");
|
|
14
|
+
} }
|
|
15
|
+
/**
|
|
16
|
+
* Entity filter panel component that provides filtering controls for entities.
|
|
17
|
+
* Supports filtering by schema, entity name, base table, and status.
|
|
18
|
+
*
|
|
19
|
+
* This component is designed to be used alongside the ERD diagram to filter
|
|
20
|
+
* which entities are displayed.
|
|
21
|
+
*/
|
|
22
|
+
export class EntityFilterPanelComponent {
|
|
23
|
+
/** All entities available for filtering */
|
|
24
|
+
entities = [];
|
|
25
|
+
/** Currently filtered entities (for display count) */
|
|
26
|
+
filteredEntities = [];
|
|
27
|
+
/** Current filter values */
|
|
28
|
+
filters = {
|
|
29
|
+
schemaName: null,
|
|
30
|
+
entityName: '',
|
|
31
|
+
entityStatus: null,
|
|
32
|
+
baseTable: '',
|
|
33
|
+
};
|
|
34
|
+
/** Emitted when any filter value changes */
|
|
35
|
+
filtersChange = new EventEmitter();
|
|
36
|
+
/** Emitted when filter is applied (for debouncing) */
|
|
37
|
+
filterChange = new EventEmitter();
|
|
38
|
+
/** Emitted when reset button is clicked */
|
|
39
|
+
resetFilters = new EventEmitter();
|
|
40
|
+
/** Emitted when close button is clicked */
|
|
41
|
+
closePanel = new EventEmitter();
|
|
42
|
+
distinctSchemas = [];
|
|
43
|
+
ngOnInit() {
|
|
44
|
+
this.updateDistinctSchemas();
|
|
45
|
+
}
|
|
46
|
+
ngOnChanges(changes) {
|
|
47
|
+
if (changes['entities']) {
|
|
48
|
+
this.updateDistinctSchemas();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
onFilterChange() {
|
|
52
|
+
this.filtersChange.emit(this.filters);
|
|
53
|
+
this.filterChange.emit();
|
|
54
|
+
}
|
|
55
|
+
resetAllFilters() {
|
|
56
|
+
this.resetFilters.emit();
|
|
57
|
+
}
|
|
58
|
+
toggleFilterPanel() {
|
|
59
|
+
this.closePanel.emit();
|
|
60
|
+
}
|
|
61
|
+
updateDistinctSchemas() {
|
|
62
|
+
const schemas = new Set();
|
|
63
|
+
this.entities.forEach(entity => {
|
|
64
|
+
if (entity.SchemaName) {
|
|
65
|
+
schemas.add(entity.SchemaName);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
this.distinctSchemas = Array.from(schemas)
|
|
69
|
+
.sort()
|
|
70
|
+
.map(schema => ({ text: schema, value: schema }));
|
|
71
|
+
}
|
|
72
|
+
static ɵfac = function EntityFilterPanelComponent_Factory(t) { return new (t || EntityFilterPanelComponent)(); };
|
|
73
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityFilterPanelComponent, selectors: [["mj-entity-filter-panel"]], inputs: { entities: "entities", filteredEntities: "filteredEntities", filters: "filters" }, outputs: { filtersChange: "filtersChange", filterChange: "filterChange", resetFilters: "resetFilters", closePanel: "closePanel" }, features: [i0.ɵɵNgOnChangesFeature], decls: 47, vars: 9, consts: [[1, "filter-panel"], [1, "filter-panel-header"], [1, "filter-summary-inline"], [1, "summary-value"], [1, "summary-label"], [1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "filter-content"], [1, "filter-group"], [1, "filter-label"], [1, "fa-solid", "fa-database"], [1, "filter-select", 3, "ngModelChange", "ngModel"], [3, "ngValue"], [3, "ngValue", 4, "ngFor", "ngForOf"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search entities...", 1, "filter-input", 3, "ngModelChange", "input", "ngModel"], [1, "fa-solid", "fa-table"], ["type", "text", "placeholder", "Search tables...", 1, "filter-input", 3, "ngModelChange", "input", "ngModel"], [1, "fa-solid", "fa-check-circle"], ["value", "Active"], ["value", "Deprecated"], ["value", "Disabled"], [1, "filter-actions"], ["title", "Reset all filters", 1, "reset-btn", 3, "click"], [1, "fa-solid", "fa-undo"]], template: function EntityFilterPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h3");
|
|
75
|
+
i0.ɵɵtext(3, "Entity Filters");
|
|
76
|
+
i0.ɵɵelementEnd();
|
|
77
|
+
i0.ɵɵelementStart(4, "div", 2)(5, "span", 3);
|
|
78
|
+
i0.ɵɵtext(6);
|
|
79
|
+
i0.ɵɵelementEnd();
|
|
80
|
+
i0.ɵɵelementStart(7, "span", 4);
|
|
81
|
+
i0.ɵɵtext(8);
|
|
82
|
+
i0.ɵɵelementEnd()();
|
|
83
|
+
i0.ɵɵelementStart(9, "button", 5);
|
|
84
|
+
i0.ɵɵlistener("click", function EntityFilterPanelComponent_Template_button_click_9_listener() { return ctx.toggleFilterPanel(); });
|
|
85
|
+
i0.ɵɵelement(10, "span", 6);
|
|
86
|
+
i0.ɵɵelementEnd()();
|
|
87
|
+
i0.ɵɵelementStart(11, "div", 7)(12, "div", 8)(13, "label", 9);
|
|
88
|
+
i0.ɵɵelement(14, "span", 10);
|
|
89
|
+
i0.ɵɵtext(15, " Schema ");
|
|
90
|
+
i0.ɵɵelementEnd();
|
|
91
|
+
i0.ɵɵelementStart(16, "select", 11);
|
|
92
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EntityFilterPanelComponent_Template_select_ngModelChange_16_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.filters.schemaName, $event) || (ctx.filters.schemaName = $event); return $event; });
|
|
93
|
+
i0.ɵɵlistener("ngModelChange", function EntityFilterPanelComponent_Template_select_ngModelChange_16_listener() { return ctx.onFilterChange(); });
|
|
94
|
+
i0.ɵɵelementStart(17, "option", 12);
|
|
95
|
+
i0.ɵɵtext(18, "All Schemas");
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
i0.ɵɵtemplate(19, EntityFilterPanelComponent_option_19_Template, 2, 2, "option", 13);
|
|
98
|
+
i0.ɵɵelementEnd()();
|
|
99
|
+
i0.ɵɵelementStart(20, "div", 8)(21, "label", 9);
|
|
100
|
+
i0.ɵɵelement(22, "span", 14);
|
|
101
|
+
i0.ɵɵtext(23, " Entity Name ");
|
|
102
|
+
i0.ɵɵelementEnd();
|
|
103
|
+
i0.ɵɵelementStart(24, "input", 15);
|
|
104
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EntityFilterPanelComponent_Template_input_ngModelChange_24_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.filters.entityName, $event) || (ctx.filters.entityName = $event); return $event; });
|
|
105
|
+
i0.ɵɵlistener("ngModelChange", function EntityFilterPanelComponent_Template_input_ngModelChange_24_listener() { return ctx.onFilterChange(); })("input", function EntityFilterPanelComponent_Template_input_input_24_listener() { return ctx.onFilterChange(); });
|
|
106
|
+
i0.ɵɵelementEnd()();
|
|
107
|
+
i0.ɵɵelementStart(25, "div", 8)(26, "label", 9);
|
|
108
|
+
i0.ɵɵelement(27, "span", 16);
|
|
109
|
+
i0.ɵɵtext(28, " Base Table ");
|
|
110
|
+
i0.ɵɵelementEnd();
|
|
111
|
+
i0.ɵɵelementStart(29, "input", 17);
|
|
112
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EntityFilterPanelComponent_Template_input_ngModelChange_29_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.filters.baseTable, $event) || (ctx.filters.baseTable = $event); return $event; });
|
|
113
|
+
i0.ɵɵlistener("ngModelChange", function EntityFilterPanelComponent_Template_input_ngModelChange_29_listener() { return ctx.onFilterChange(); })("input", function EntityFilterPanelComponent_Template_input_input_29_listener() { return ctx.onFilterChange(); });
|
|
114
|
+
i0.ɵɵelementEnd()();
|
|
115
|
+
i0.ɵɵelementStart(30, "div", 8)(31, "label", 9);
|
|
116
|
+
i0.ɵɵelement(32, "span", 18);
|
|
117
|
+
i0.ɵɵtext(33, " Status ");
|
|
118
|
+
i0.ɵɵelementEnd();
|
|
119
|
+
i0.ɵɵelementStart(34, "select", 11);
|
|
120
|
+
i0.ɵɵtwoWayListener("ngModelChange", function EntityFilterPanelComponent_Template_select_ngModelChange_34_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.filters.entityStatus, $event) || (ctx.filters.entityStatus = $event); return $event; });
|
|
121
|
+
i0.ɵɵlistener("ngModelChange", function EntityFilterPanelComponent_Template_select_ngModelChange_34_listener() { return ctx.onFilterChange(); });
|
|
122
|
+
i0.ɵɵelementStart(35, "option", 12);
|
|
123
|
+
i0.ɵɵtext(36, "All Statuses");
|
|
124
|
+
i0.ɵɵelementEnd();
|
|
125
|
+
i0.ɵɵelementStart(37, "option", 19);
|
|
126
|
+
i0.ɵɵtext(38, "Active");
|
|
127
|
+
i0.ɵɵelementEnd();
|
|
128
|
+
i0.ɵɵelementStart(39, "option", 20);
|
|
129
|
+
i0.ɵɵtext(40, "Deprecated");
|
|
130
|
+
i0.ɵɵelementEnd();
|
|
131
|
+
i0.ɵɵelementStart(41, "option", 21);
|
|
132
|
+
i0.ɵɵtext(42, "Disabled");
|
|
133
|
+
i0.ɵɵelementEnd()()();
|
|
134
|
+
i0.ɵɵelementStart(43, "div", 22)(44, "button", 23);
|
|
135
|
+
i0.ɵɵlistener("click", function EntityFilterPanelComponent_Template_button_click_44_listener() { return ctx.resetAllFilters(); });
|
|
136
|
+
i0.ɵɵelement(45, "span", 24);
|
|
137
|
+
i0.ɵɵtext(46, " Reset Filters ");
|
|
138
|
+
i0.ɵɵelementEnd()()()();
|
|
139
|
+
} if (rf & 2) {
|
|
140
|
+
i0.ɵɵadvance(6);
|
|
141
|
+
i0.ɵɵtextInterpolate(ctx.filteredEntities.length);
|
|
142
|
+
i0.ɵɵadvance(2);
|
|
143
|
+
i0.ɵɵtextInterpolate1("of ", ctx.entities.length, "");
|
|
144
|
+
i0.ɵɵadvance(8);
|
|
145
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx.filters.schemaName);
|
|
146
|
+
i0.ɵɵadvance();
|
|
147
|
+
i0.ɵɵproperty("ngValue", null);
|
|
148
|
+
i0.ɵɵadvance(2);
|
|
149
|
+
i0.ɵɵproperty("ngForOf", ctx.distinctSchemas);
|
|
150
|
+
i0.ɵɵadvance(5);
|
|
151
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx.filters.entityName);
|
|
152
|
+
i0.ɵɵadvance(5);
|
|
153
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx.filters.baseTable);
|
|
154
|
+
i0.ɵɵadvance(5);
|
|
155
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx.filters.entityStatus);
|
|
156
|
+
i0.ɵɵadvance();
|
|
157
|
+
i0.ɵɵproperty("ngValue", null);
|
|
158
|
+
} }, dependencies: [i1.NgForOf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgModel], styles: [".filter-panel[_ngcontent-%COMP%] {\n height: 100%;\n background: white;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-width: 0;\n}\n\n.filter-panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px;\n background-color: #f5f5f5;\n border-bottom: 1px solid #e0e0e0;\n min-width: 0;\n}\n.filter-panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n}\n.filter-panel-header[_ngcontent-%COMP%] .filter-summary-inline[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.filter-panel-header[_ngcontent-%COMP%] .filter-summary-inline[_ngcontent-%COMP%] .summary-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 700;\n color: #2196f3;\n}\n.filter-panel-header[_ngcontent-%COMP%] .filter-summary-inline[_ngcontent-%COMP%] .summary-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #666;\n}\n.filter-panel-header[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n padding: 4px;\n border: none;\n background: none;\n cursor: pointer;\n color: #666;\n}\n.filter-panel-header[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n color: #333;\n}\n\n.filter-content[_ngcontent-%COMP%] {\n padding: 12px;\n overflow-y: auto;\n overflow-x: hidden;\n flex: 1;\n}\n\n.filter-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n.filter-group[_ngcontent-%COMP%] .filter-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n font-size: 13px;\n font-weight: 600;\n color: #2c3e50;\n}\n.filter-group[_ngcontent-%COMP%] .filter-label[_ngcontent-%COMP%] .fa-solid[_ngcontent-%COMP%] {\n color: #3498db;\n width: 16px;\n}\n.filter-group[_ngcontent-%COMP%] .filter-input[_ngcontent-%COMP%], \n.filter-group[_ngcontent-%COMP%] .filter-select[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 100%;\n padding: 8px 10px;\n border: 2px solid #e9ecef;\n border-radius: 6px;\n font-size: 13px;\n background: white;\n transition: all 0.2s ease;\n box-sizing: border-box;\n}\n.filter-group[_ngcontent-%COMP%] .filter-input[_ngcontent-%COMP%]:focus, \n.filter-group[_ngcontent-%COMP%] .filter-select[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n.filter-group[_ngcontent-%COMP%] .filter-input[_ngcontent-%COMP%]::placeholder, \n.filter-group[_ngcontent-%COMP%] .filter-select[_ngcontent-%COMP%]::placeholder {\n color: #95a5a6;\n font-style: italic;\n}\n.filter-group[_ngcontent-%COMP%] .filter-select[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n.filter-group[_ngcontent-%COMP%] .filter-select[_ngcontent-%COMP%] option[_ngcontent-%COMP%] {\n padding: 8px;\n}\n\n.filter-actions[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n.filter-actions[_ngcontent-%COMP%] .reset-btn[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 100%;\n padding: 8px 12px;\n border: 2px solid #6c757d;\n border-radius: 6px;\n background: white;\n color: #6c757d;\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.2s ease;\n box-sizing: border-box;\n}\n.filter-actions[_ngcontent-%COMP%] .reset-btn[_ngcontent-%COMP%]:hover {\n background-color: #6c757d;\n color: white;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(108, 117, 125, 0.3);\n}\n.filter-actions[_ngcontent-%COMP%] .reset-btn[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n box-shadow: 0 1px 4px rgba(108, 117, 125, 0.3);\n}\n.filter-actions[_ngcontent-%COMP%] .reset-btn[_ngcontent-%COMP%] .fa-solid[_ngcontent-%COMP%] {\n font-size: 12px;\n}"] });
|
|
159
|
+
}
|
|
160
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityFilterPanelComponent, [{
|
|
161
|
+
type: Component,
|
|
162
|
+
args: [{ selector: 'mj-entity-filter-panel', template: "<div class=\"filter-panel\">\n <div class=\"filter-panel-header\">\n <h3>Entity Filters</h3>\n <div class=\"filter-summary-inline\">\n <span class=\"summary-value\">{{ filteredEntities.length }}</span>\n <span class=\"summary-label\">of {{ entities.length }}</span>\n </div>\n <button class=\"close-btn\" (click)=\"toggleFilterPanel()\">\n <span class=\"fa-solid fa-times\"></span>\n </button>\n </div>\n\n <div class=\"filter-content\">\n <!-- Schema Filter -->\n <div class=\"filter-group\">\n <label class=\"filter-label\">\n <span class=\"fa-solid fa-database\"></span>\n Schema\n </label>\n <select\n class=\"filter-select\"\n [(ngModel)]=\"filters.schemaName\"\n (ngModelChange)=\"onFilterChange()\">\n <option [ngValue]=\"null\">All Schemas</option>\n <option *ngFor=\"let schema of distinctSchemas\" [ngValue]=\"schema.value\">\n {{ schema.text }}\n </option>\n </select>\n </div>\n\n <!-- Entity Name Filter -->\n <div class=\"filter-group\">\n <label class=\"filter-label\">\n <span class=\"fa-solid fa-search\"></span>\n Entity Name\n </label>\n <input\n type=\"text\"\n class=\"filter-input\"\n [(ngModel)]=\"filters.entityName\"\n (ngModelChange)=\"onFilterChange()\"\n (input)=\"onFilterChange()\"\n placeholder=\"Search entities...\">\n </div>\n\n <!-- Base Table Filter -->\n <div class=\"filter-group\">\n <label class=\"filter-label\">\n <span class=\"fa-solid fa-table\"></span>\n Base Table\n </label>\n <input\n type=\"text\"\n class=\"filter-input\"\n [(ngModel)]=\"filters.baseTable\"\n (ngModelChange)=\"onFilterChange()\"\n (input)=\"onFilterChange()\"\n placeholder=\"Search tables...\">\n </div>\n\n <!-- Entity Status Filter -->\n <div class=\"filter-group\">\n <label class=\"filter-label\">\n <span class=\"fa-solid fa-check-circle\"></span>\n Status\n </label>\n <select\n class=\"filter-select\"\n [(ngModel)]=\"filters.entityStatus\"\n (ngModelChange)=\"onFilterChange()\">\n <option [ngValue]=\"null\">All Statuses</option>\n <option value=\"Active\">Active</option>\n <option value=\"Deprecated\">Deprecated</option>\n <option value=\"Disabled\">Disabled</option>\n </select>\n </div>\n\n <!-- Reset Button -->\n <div class=\"filter-actions\">\n <button class=\"reset-btn\" (click)=\"resetAllFilters()\" title=\"Reset all filters\">\n <span class=\"fa-solid fa-undo\"></span>\n Reset Filters\n </button>\n </div>\n </div>\n</div>\n", styles: [".filter-panel {\n height: 100%;\n background: white;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-width: 0;\n}\n\n.filter-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px;\n background-color: #f5f5f5;\n border-bottom: 1px solid #e0e0e0;\n min-width: 0;\n}\n.filter-panel-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n}\n.filter-panel-header .filter-summary-inline {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.filter-panel-header .filter-summary-inline .summary-value {\n font-size: 14px;\n font-weight: 700;\n color: #2196f3;\n}\n.filter-panel-header .filter-summary-inline .summary-label {\n font-size: 11px;\n color: #666;\n}\n.filter-panel-header .close-btn {\n padding: 4px;\n border: none;\n background: none;\n cursor: pointer;\n color: #666;\n}\n.filter-panel-header .close-btn:hover {\n color: #333;\n}\n\n.filter-content {\n padding: 12px;\n overflow-y: auto;\n overflow-x: hidden;\n flex: 1;\n}\n\n.filter-group {\n margin-bottom: 20px;\n}\n.filter-group .filter-label {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n font-size: 13px;\n font-weight: 600;\n color: #2c3e50;\n}\n.filter-group .filter-label .fa-solid {\n color: #3498db;\n width: 16px;\n}\n.filter-group .filter-input,\n.filter-group .filter-select {\n width: 100%;\n max-width: 100%;\n padding: 8px 10px;\n border: 2px solid #e9ecef;\n border-radius: 6px;\n font-size: 13px;\n background: white;\n transition: all 0.2s ease;\n box-sizing: border-box;\n}\n.filter-group .filter-input:focus,\n.filter-group .filter-select:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n.filter-group .filter-input::placeholder,\n.filter-group .filter-select::placeholder {\n color: #95a5a6;\n font-style: italic;\n}\n.filter-group .filter-select {\n cursor: pointer;\n}\n.filter-group .filter-select option {\n padding: 8px;\n}\n\n.filter-actions {\n margin-top: 20px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n.filter-actions .reset-btn {\n width: 100%;\n max-width: 100%;\n padding: 8px 12px;\n border: 2px solid #6c757d;\n border-radius: 6px;\n background: white;\n color: #6c757d;\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.2s ease;\n box-sizing: border-box;\n}\n.filter-actions .reset-btn:hover {\n background-color: #6c757d;\n color: white;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(108, 117, 125, 0.3);\n}\n.filter-actions .reset-btn:active {\n transform: translateY(0);\n box-shadow: 0 1px 4px rgba(108, 117, 125, 0.3);\n}\n.filter-actions .reset-btn .fa-solid {\n font-size: 12px;\n}\n"] }]
|
|
163
|
+
}], null, { entities: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], filteredEntities: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], filters: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], filtersChange: [{
|
|
170
|
+
type: Output
|
|
171
|
+
}], filterChange: [{
|
|
172
|
+
type: Output
|
|
173
|
+
}], resetFilters: [{
|
|
174
|
+
type: Output
|
|
175
|
+
}], closePanel: [{
|
|
176
|
+
type: Output
|
|
177
|
+
}] }); })();
|
|
178
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EntityFilterPanelComponent, { className: "EntityFilterPanelComponent", filePath: "src/lib/components/entity-filter-panel/entity-filter-panel.component.ts", lineNumber: 26 }); })();
|
|
179
|
+
//# sourceMappingURL=entity-filter-panel.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-filter-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/entity-filter-panel/entity-filter-panel.component.ts","../../../../src/lib/components/entity-filter-panel/entity-filter-panel.component.html"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { EntityInfo, EntityFieldInfo } from '@memberjunction/core';
|
|
3
|
+
import { MJEntityERDComponent } from '../mj-entity-erd.component';
|
|
4
|
+
import { EntitySelectedEvent, OpenEntityRecordEvent } from '../mj-entity-erd.component';
|
|
5
|
+
import { ERDConfig, ERDState } from '../../interfaces/erd-types';
|
|
6
|
+
import { EntityFilter } from '../entity-filter-panel/entity-filter-panel.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* State object for the ERD composite component.
|
|
10
|
+
* Used for state persistence and restoration.
|
|
11
|
+
*/
|
|
12
|
+
export interface ERDCompositeState {
|
|
13
|
+
filterPanelVisible: boolean;
|
|
14
|
+
filterPanelWidth: number;
|
|
15
|
+
filters: EntityFilter;
|
|
16
|
+
selectedEntityId: string | null;
|
|
17
|
+
zoomLevel: number;
|
|
18
|
+
panPosition: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
};
|
|
22
|
+
fieldsSectionExpanded: boolean;
|
|
23
|
+
relationshipsSectionExpanded: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* ERD Composite component that combines the ERD diagram with filter and details panels.
|
|
27
|
+
*
|
|
28
|
+
* This is a complete, ready-to-use ERD exploration interface that includes:
|
|
29
|
+
* - Left panel: Entity filter controls (schema, name, status, etc.)
|
|
30
|
+
* - Center: Interactive ERD diagram
|
|
31
|
+
* - Right panel: Entity details (shown when an entity is selected)
|
|
32
|
+
*
|
|
33
|
+
* The component handles all internal state but emits events for:
|
|
34
|
+
* - State changes (for parent to persist user preferences)
|
|
35
|
+
* - Open record requests (for parent to handle navigation)
|
|
36
|
+
*
|
|
37
|
+
* ## Usage
|
|
38
|
+
*
|
|
39
|
+
* ```html
|
|
40
|
+
* <mj-erd-composite
|
|
41
|
+
* (stateChange)="onStateChange($event)"
|
|
42
|
+
* (userStateChange)="saveUserPreferences($event)"
|
|
43
|
+
* (openRecord)="navigateToRecord($event)">
|
|
44
|
+
* </mj-erd-composite>
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* ## State Persistence
|
|
48
|
+
*
|
|
49
|
+
* The component emits `userStateChange` events (debounced 1s) when user changes
|
|
50
|
+
* any settings. The parent should save this state and restore it using `loadUserState()`:
|
|
51
|
+
*
|
|
52
|
+
* ```typescript
|
|
53
|
+
* @ViewChild(ERDCompositeComponent) erdComposite!: ERDCompositeComponent;
|
|
54
|
+
*
|
|
55
|
+
* ngAfterViewInit() {
|
|
56
|
+
* const savedState = await this.loadSavedState();
|
|
57
|
+
* if (savedState) {
|
|
58
|
+
* this.erdComposite.loadUserState(savedState);
|
|
59
|
+
* }
|
|
60
|
+
* }
|
|
61
|
+
*
|
|
62
|
+
* onUserStateChange(state: ERDCompositeState) {
|
|
63
|
+
* await this.saveState(state);
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare class ERDCompositeComponent implements OnInit, OnDestroy {
|
|
68
|
+
mjEntityErd: MJEntityERDComponent;
|
|
69
|
+
/** Whether the ERD is in a refreshing state */
|
|
70
|
+
isRefreshingERD: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Optional: Focus entities to display in the ERD.
|
|
73
|
+
* When provided, only these entities will be shown (useful for single-entity views).
|
|
74
|
+
* When not provided, all entities from metadata are loaded.
|
|
75
|
+
*/
|
|
76
|
+
focusEntities: EntityInfo[] | null;
|
|
77
|
+
/**
|
|
78
|
+
* Whether to show the filter panel on the left.
|
|
79
|
+
* Set to false for focused/single-entity views.
|
|
80
|
+
*/
|
|
81
|
+
showFilterPanel: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Depth of relationships to display.
|
|
84
|
+
* 1 = only direct relationships, 2 = relationships of relationships, etc.
|
|
85
|
+
*/
|
|
86
|
+
depth: number;
|
|
87
|
+
/**
|
|
88
|
+
* Whether to show the ERD header bar.
|
|
89
|
+
*/
|
|
90
|
+
showHeader: boolean;
|
|
91
|
+
/** All entities loaded from metadata */
|
|
92
|
+
entities: EntityInfo[];
|
|
93
|
+
/** All entity fields (flattened from all entities) */
|
|
94
|
+
allEntityFields: EntityFieldInfo[];
|
|
95
|
+
/** Emitted on any state change (debounced 50ms) */
|
|
96
|
+
stateChange: EventEmitter<ERDCompositeState>;
|
|
97
|
+
/** Emitted on user-initiated state changes (debounced 1s) for persistence */
|
|
98
|
+
userStateChange: EventEmitter<ERDCompositeState>;
|
|
99
|
+
/** Emitted when an entity is opened (e.g., double-clicked in details panel) */
|
|
100
|
+
entityOpened: EventEmitter<EntityInfo>;
|
|
101
|
+
/** Emitted when requesting to open an entity record (for navigation) */
|
|
102
|
+
openRecord: EventEmitter<{
|
|
103
|
+
EntityName: string;
|
|
104
|
+
RecordID: string;
|
|
105
|
+
}>;
|
|
106
|
+
filterPanelVisible: boolean;
|
|
107
|
+
fieldsSectionExpanded: boolean;
|
|
108
|
+
relationshipsSectionExpanded: boolean;
|
|
109
|
+
/** ERD configuration - skip animation for faster rendering */
|
|
110
|
+
erdConfig: ERDConfig;
|
|
111
|
+
selectedEntity: EntityInfo | null;
|
|
112
|
+
filteredEntities: EntityInfo[];
|
|
113
|
+
isDataLoaded: boolean;
|
|
114
|
+
filters: EntityFilter;
|
|
115
|
+
private stateChangeSubject;
|
|
116
|
+
private userStateChangeSubject;
|
|
117
|
+
private filterChangeSubject;
|
|
118
|
+
ngOnInit(): Promise<void>;
|
|
119
|
+
ngOnDestroy(): void;
|
|
120
|
+
private loadData;
|
|
121
|
+
private setupStateManagement;
|
|
122
|
+
onFilterChange(): void;
|
|
123
|
+
onFiltersChange(newFilters: EntityFilter): void;
|
|
124
|
+
onResetFilters(): void;
|
|
125
|
+
onToggleFilterPanel(): void;
|
|
126
|
+
onEntityDeselected(): void;
|
|
127
|
+
onEntitySelected(entity: EntityInfo): void;
|
|
128
|
+
/**
|
|
129
|
+
* Handle entity selection from the mj-entity-erd wrapper.
|
|
130
|
+
* Updates internal state.
|
|
131
|
+
*/
|
|
132
|
+
onERDEntitySelected(event: EntitySelectedEvent): void;
|
|
133
|
+
/**
|
|
134
|
+
* Handle open record from the mj-entity-erd wrapper (double-click).
|
|
135
|
+
* Opens the entity record using the entity form.
|
|
136
|
+
*/
|
|
137
|
+
onERDOpenRecord(event: OpenEntityRecordEvent): void;
|
|
138
|
+
/**
|
|
139
|
+
* Handle state changes from the ERD component.
|
|
140
|
+
*/
|
|
141
|
+
onERDStateChange(_state: ERDState): void;
|
|
142
|
+
onEntityOpened(entity: EntityInfo): void;
|
|
143
|
+
onFieldsSectionToggle(): void;
|
|
144
|
+
onRelationshipsSectionToggle(): void;
|
|
145
|
+
onOpenRecord(event: {
|
|
146
|
+
EntityName: string;
|
|
147
|
+
RecordID: string;
|
|
148
|
+
}): void;
|
|
149
|
+
onSplitterLayoutChange(_event: unknown): void;
|
|
150
|
+
private applyFilters;
|
|
151
|
+
private emitStateChange;
|
|
152
|
+
private emitUserStateChange;
|
|
153
|
+
private buildState;
|
|
154
|
+
/**
|
|
155
|
+
* Load user state from a previously saved state object.
|
|
156
|
+
* Call this after the component is initialized to restore user preferences.
|
|
157
|
+
*/
|
|
158
|
+
loadUserState(state: Partial<ERDCompositeState>): void;
|
|
159
|
+
/**
|
|
160
|
+
* Refresh the ERD diagram.
|
|
161
|
+
*/
|
|
162
|
+
refreshERD(): void;
|
|
163
|
+
/**
|
|
164
|
+
* Get the current state for external use.
|
|
165
|
+
*/
|
|
166
|
+
getState(): ERDCompositeState;
|
|
167
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ERDCompositeComponent, never>;
|
|
168
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ERDCompositeComponent, "mj-erd-composite", never, { "isRefreshingERD": { "alias": "isRefreshingERD"; "required": false; }; "focusEntities": { "alias": "focusEntities"; "required": false; }; "showFilterPanel": { "alias": "showFilterPanel"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; }, { "stateChange": "stateChange"; "userStateChange": "userStateChange"; "entityOpened": "entityOpened"; "openRecord": "openRecord"; }, never, never, false, never>;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=erd-composite.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erd-composite.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/erd-composite/erd-composite.component.ts"],"names":[],"mappings":"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"}
|