@memberjunction/ng-artifacts 3.4.0 → 4.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.
- package/README.md +190 -0
- package/dist/lib/components/artifact-message-card.component.d.ts +1 -1
- package/dist/lib/components/artifact-message-card.component.d.ts.map +1 -1
- package/dist/lib/components/artifact-message-card.component.js +5 -5
- package/dist/lib/components/artifact-message-card.component.js.map +1 -1
- package/dist/lib/components/artifact-type-plugin-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/artifact-type-plugin-viewer.component.js +7 -6
- package/dist/lib/components/artifact-type-plugin-viewer.component.js.map +1 -1
- package/dist/lib/components/artifact-version-history.component.d.ts.map +1 -1
- package/dist/lib/components/artifact-version-history.component.js +89 -83
- package/dist/lib/components/artifact-version-history.component.js.map +1 -1
- package/dist/lib/components/artifact-viewer-panel.component.d.ts +7 -6
- package/dist/lib/components/artifact-viewer-panel.component.d.ts.map +1 -1
- package/dist/lib/components/artifact-viewer-panel.component.js +43 -32
- package/dist/lib/components/artifact-viewer-panel.component.js.map +1 -1
- package/dist/lib/components/base-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/base-artifact-viewer.component.js +3 -2
- package/dist/lib/components/base-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/code-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/code-artifact-viewer.component.js +3 -3
- package/dist/lib/components/plugins/code-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/component-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/component-artifact-viewer.component.js +6 -6
- package/dist/lib/components/plugins/component-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/data-requirements-viewer/data-requirements-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/data-requirements-viewer/data-requirements-viewer.component.js +112 -104
- package/dist/lib/components/plugins/data-requirements-viewer/data-requirements-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/html-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/html-artifact-viewer.component.js +4 -4
- package/dist/lib/components/plugins/html-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/json-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/json-artifact-viewer.component.js +5 -5
- package/dist/lib/components/plugins/json-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/markdown-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/markdown-artifact-viewer.component.js +4 -4
- package/dist/lib/components/plugins/markdown-artifact-viewer.component.js.map +1 -1
- package/dist/lib/components/plugins/svg-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/plugins/svg-artifact-viewer.component.js +4 -4
- package/dist/lib/components/plugins/svg-artifact-viewer.component.js.map +1 -1
- package/package.json +22 -22
package/dist/lib/components/plugins/data-requirements-viewer/data-requirements-viewer.component.js
CHANGED
|
@@ -14,11 +14,11 @@ function DataRequirementsViewerComponent_Conditional_1_Template(rf, ctx) { if (r
|
|
|
14
14
|
i0.ɵɵtext(5, "This component doesn't have any data requirements defined.");
|
|
15
15
|
i0.ɵɵelementEnd()();
|
|
16
16
|
} }
|
|
17
|
-
function
|
|
18
|
-
i0.ɵɵelementStart(0, "div",
|
|
17
|
+
function DataRequirementsViewerComponent_Conditional_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelementStart(0, "div", 7)(1, "span", 8);
|
|
19
19
|
i0.ɵɵtext(2);
|
|
20
20
|
i0.ɵɵelementEnd();
|
|
21
|
-
i0.ɵɵelementStart(3, "span",
|
|
21
|
+
i0.ɵɵelementStart(3, "span", 9);
|
|
22
22
|
i0.ɵɵtext(4);
|
|
23
23
|
i0.ɵɵelementEnd()();
|
|
24
24
|
} if (rf & 2) {
|
|
@@ -28,11 +28,11 @@ function DataRequirementsViewerComponent_Conditional_2_div_6_Template(rf, ctx) {
|
|
|
28
28
|
i0.ɵɵadvance(2);
|
|
29
29
|
i0.ɵɵtextInterpolate(ctx_r0.entities.length === 1 ? "Entity" : "Entities");
|
|
30
30
|
} }
|
|
31
|
-
function
|
|
32
|
-
i0.ɵɵelementStart(0, "div",
|
|
31
|
+
function DataRequirementsViewerComponent_Conditional_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelementStart(0, "div", 7)(1, "span", 8);
|
|
33
33
|
i0.ɵɵtext(2);
|
|
34
34
|
i0.ɵɵelementEnd();
|
|
35
|
-
i0.ɵɵelementStart(3, "span",
|
|
35
|
+
i0.ɵɵelementStart(3, "span", 9);
|
|
36
36
|
i0.ɵɵtext(4);
|
|
37
37
|
i0.ɵɵelementEnd()();
|
|
38
38
|
} if (rf & 2) {
|
|
@@ -43,12 +43,12 @@ function DataRequirementsViewerComponent_Conditional_2_div_7_Template(rf, ctx) {
|
|
|
43
43
|
i0.ɵɵtextInterpolate(ctx_r0.queries.length === 1 ? "Query" : "Queries");
|
|
44
44
|
} }
|
|
45
45
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
-
i0.ɵɵelementStart(0, "div",
|
|
47
|
-
i0.ɵɵelement(2, "i",
|
|
46
|
+
i0.ɵɵelementStart(0, "div", 10)(1, "h4", 13);
|
|
47
|
+
i0.ɵɵelement(2, "i", 14);
|
|
48
48
|
i0.ɵɵtext(3, " Overview ");
|
|
49
49
|
i0.ɵɵelementEnd();
|
|
50
|
-
i0.ɵɵelementStart(4, "div",
|
|
51
|
-
i0.ɵɵelement(5, "mj-markdown",
|
|
50
|
+
i0.ɵɵelementStart(4, "div", 15);
|
|
51
|
+
i0.ɵɵelement(5, "mj-markdown", 16);
|
|
52
52
|
i0.ɵɵelementEnd()();
|
|
53
53
|
} if (rf & 2) {
|
|
54
54
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
@@ -56,7 +56,7 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_13_Template(r
|
|
|
56
56
|
i0.ɵɵproperty("data", ctx_r0.description)("enableCollapsibleHeadings", false)("enableLineNumbers", false)("enableSmartypants", true)("enableHtml", true);
|
|
57
57
|
} }
|
|
58
58
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
59
|
-
i0.ɵɵelementStart(0, "p",
|
|
59
|
+
i0.ɵɵelementStart(0, "p", 27);
|
|
60
60
|
i0.ɵɵtext(1);
|
|
61
61
|
i0.ɵɵelementEnd();
|
|
62
62
|
} if (rf & 2) {
|
|
@@ -65,7 +65,7 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Cond
|
|
|
65
65
|
i0.ɵɵtextInterpolate(entity_r3.description);
|
|
66
66
|
} }
|
|
67
67
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_For_14_Template(rf, ctx) { if (rf & 1) {
|
|
68
|
-
i0.ɵɵelementStart(0, "span",
|
|
68
|
+
i0.ɵɵelementStart(0, "span", 34);
|
|
69
69
|
i0.ɵɵelement(1, "i", 5);
|
|
70
70
|
i0.ɵɵtext(2);
|
|
71
71
|
i0.ɵɵelementEnd();
|
|
@@ -79,8 +79,8 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_For_
|
|
|
79
79
|
i0.ɵɵtextInterpolate1(" ", perm_r4, " ");
|
|
80
80
|
} }
|
|
81
81
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
-
i0.ɵɵelementStart(0, "div",
|
|
83
|
-
i0.ɵɵelement(1, "i",
|
|
82
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
83
|
+
i0.ɵɵelement(1, "i", 14);
|
|
84
84
|
i0.ɵɵelementStart(2, "span");
|
|
85
85
|
i0.ɵɵtext(3);
|
|
86
86
|
i0.ɵɵelementEnd()();
|
|
@@ -90,12 +90,12 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Cond
|
|
|
90
90
|
i0.ɵɵtextInterpolate(entity_r3.usageContext);
|
|
91
91
|
} }
|
|
92
92
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_For_14_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
93
|
-
i0.ɵɵelementStart(0, "span",
|
|
93
|
+
i0.ɵɵelementStart(0, "span", 46);
|
|
94
94
|
i0.ɵɵtext(1, "*");
|
|
95
95
|
i0.ɵɵelementEnd();
|
|
96
96
|
} }
|
|
97
97
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_For_14_For_11_Template(rf, ctx) { if (rf & 1) {
|
|
98
|
-
i0.ɵɵelementStart(0, "span",
|
|
98
|
+
i0.ɵɵelementStart(0, "span", 49);
|
|
99
99
|
i0.ɵɵtext(1);
|
|
100
100
|
i0.ɵɵelementEnd();
|
|
101
101
|
} if (rf & 2) {
|
|
@@ -106,20 +106,20 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Cond
|
|
|
106
106
|
i0.ɵɵtextInterpolate(tag_r5);
|
|
107
107
|
} }
|
|
108
108
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_For_14_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
-
i0.ɵɵelementStart(0, "div",
|
|
109
|
+
i0.ɵɵelementStart(0, "div", 44)(1, "span", 40);
|
|
110
110
|
i0.ɵɵelement(2, "i", 5);
|
|
111
|
-
i0.ɵɵelementStart(3, "span",
|
|
111
|
+
i0.ɵɵelementStart(3, "span", 45);
|
|
112
112
|
i0.ɵɵtext(4);
|
|
113
113
|
i0.ɵɵelementEnd();
|
|
114
|
-
i0.ɵɵ
|
|
114
|
+
i0.ɵɵconditionalCreate(5, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_For_14_Conditional_5_Template, 2, 0, "span", 46);
|
|
115
115
|
i0.ɵɵelementEnd();
|
|
116
|
-
i0.ɵɵelementStart(6, "span",
|
|
116
|
+
i0.ɵɵelementStart(6, "span", 41)(7, "code", 47);
|
|
117
117
|
i0.ɵɵtext(8);
|
|
118
118
|
i0.ɵɵelementEnd()();
|
|
119
|
-
i0.ɵɵelementStart(9, "span",
|
|
120
|
-
i0.ɵɵrepeaterCreate(10, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_For_14_For_11_Template, 2, 3, "span",
|
|
119
|
+
i0.ɵɵelementStart(9, "span", 42);
|
|
120
|
+
i0.ɵɵrepeaterCreate(10, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_For_14_For_11_Template, 2, 3, "span", 48, i0.ɵɵrepeaterTrackByIdentity);
|
|
121
121
|
i0.ɵɵelementEnd();
|
|
122
|
-
i0.ɵɵelementStart(12, "span",
|
|
122
|
+
i0.ɵɵelementStart(12, "span", 43);
|
|
123
123
|
i0.ɵɵtext(13);
|
|
124
124
|
i0.ɵɵelementEnd()();
|
|
125
125
|
} if (rf & 2) {
|
|
@@ -141,22 +141,22 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Cond
|
|
|
141
141
|
i0.ɵɵtextInterpolate1(" ", field_r6.description || "\u2014", " ");
|
|
142
142
|
} }
|
|
143
143
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
144
|
-
i0.ɵɵelementStart(0, "div",
|
|
144
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "h5", 37);
|
|
145
145
|
i0.ɵɵtext(2, "Fields");
|
|
146
146
|
i0.ɵɵelementEnd();
|
|
147
|
-
i0.ɵɵelementStart(3, "div",
|
|
147
|
+
i0.ɵɵelementStart(3, "div", 38)(4, "div", 39)(5, "span", 40);
|
|
148
148
|
i0.ɵɵtext(6, "Name");
|
|
149
149
|
i0.ɵɵelementEnd();
|
|
150
|
-
i0.ɵɵelementStart(7, "span",
|
|
150
|
+
i0.ɵɵelementStart(7, "span", 41);
|
|
151
151
|
i0.ɵɵtext(8, "Type");
|
|
152
152
|
i0.ɵɵelementEnd();
|
|
153
|
-
i0.ɵɵelementStart(9, "span",
|
|
153
|
+
i0.ɵɵelementStart(9, "span", 42);
|
|
154
154
|
i0.ɵɵtext(10, "Usage");
|
|
155
155
|
i0.ɵɵelementEnd();
|
|
156
|
-
i0.ɵɵelementStart(11, "span",
|
|
156
|
+
i0.ɵɵelementStart(11, "span", 43);
|
|
157
157
|
i0.ɵɵtext(12, "Description");
|
|
158
158
|
i0.ɵɵelementEnd()();
|
|
159
|
-
i0.ɵɵrepeaterCreate(13, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_For_14_Template, 14, 7, "div",
|
|
159
|
+
i0.ɵɵrepeaterCreate(13, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_For_14_Template, 14, 7, "div", 44, _forTrack0);
|
|
160
160
|
i0.ɵɵelementEnd()();
|
|
161
161
|
} if (rf & 2) {
|
|
162
162
|
const entity_r3 = i0.ɵɵnextContext(2).$implicit;
|
|
@@ -164,8 +164,9 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Cond
|
|
|
164
164
|
i0.ɵɵrepeater(entity_r3.fieldMetadata);
|
|
165
165
|
} }
|
|
166
166
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
167
|
-
i0.ɵɵelementStart(0, "div",
|
|
168
|
-
i0.ɵɵ
|
|
167
|
+
i0.ɵɵelementStart(0, "div", 33);
|
|
168
|
+
i0.ɵɵconditionalCreate(1, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_1_Template, 4, 1, "div", 35);
|
|
169
|
+
i0.ɵɵconditionalCreate(2, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Conditional_2_Template, 15, 0, "div", 36);
|
|
169
170
|
i0.ɵɵelementEnd();
|
|
170
171
|
} if (rf & 2) {
|
|
171
172
|
const entity_r3 = i0.ɵɵnextContext().$implicit;
|
|
@@ -176,26 +177,26 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Cond
|
|
|
176
177
|
} }
|
|
177
178
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
178
179
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
179
|
-
i0.ɵɵelementStart(0, "div",
|
|
180
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "div", 22);
|
|
180
181
|
i0.ɵɵlistener("click", function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Template_div_click_1_listener() { const entity_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.toggleEntity(entity_r3.name)); });
|
|
181
|
-
i0.ɵɵelementStart(2, "div",
|
|
182
|
-
i0.ɵɵelement(4, "i",
|
|
182
|
+
i0.ɵɵelementStart(2, "div", 23)(3, "div", 24);
|
|
183
|
+
i0.ɵɵelement(4, "i", 18);
|
|
183
184
|
i0.ɵɵelementEnd();
|
|
184
|
-
i0.ɵɵelementStart(5, "div",
|
|
185
|
+
i0.ɵɵelementStart(5, "div", 25)(6, "h4", 26);
|
|
185
186
|
i0.ɵɵtext(7);
|
|
186
187
|
i0.ɵɵelementEnd();
|
|
187
|
-
i0.ɵɵ
|
|
188
|
+
i0.ɵɵconditionalCreate(8, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_8_Template, 2, 1, "p", 27);
|
|
188
189
|
i0.ɵɵelementEnd();
|
|
189
|
-
i0.ɵɵelementStart(9, "div",
|
|
190
|
+
i0.ɵɵelementStart(9, "div", 28);
|
|
190
191
|
i0.ɵɵelement(10, "i", 5);
|
|
191
192
|
i0.ɵɵelementEnd()();
|
|
192
|
-
i0.ɵɵelementStart(11, "div",
|
|
193
|
-
i0.ɵɵrepeaterCreate(13, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_For_14_Template, 3, 4, "span",
|
|
193
|
+
i0.ɵɵelementStart(11, "div", 29)(12, "div", 30);
|
|
194
|
+
i0.ɵɵrepeaterCreate(13, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_For_14_Template, 3, 4, "span", 31, i0.ɵɵrepeaterTrackByIdentity);
|
|
194
195
|
i0.ɵɵelementEnd();
|
|
195
|
-
i0.ɵɵelementStart(15, "span",
|
|
196
|
+
i0.ɵɵelementStart(15, "span", 32);
|
|
196
197
|
i0.ɵɵtext(16);
|
|
197
198
|
i0.ɵɵelementEnd()()();
|
|
198
|
-
i0.ɵɵ
|
|
199
|
+
i0.ɵɵconditionalCreate(17, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Conditional_17_Template, 3, 2, "div", 33);
|
|
199
200
|
i0.ɵɵelementEnd();
|
|
200
201
|
} if (rf & 2) {
|
|
201
202
|
const entity_r3 = ctx.$implicit;
|
|
@@ -215,12 +216,12 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Temp
|
|
|
215
216
|
i0.ɵɵconditional(ctx_r0.isEntityExpanded(entity_r3.name) ? 17 : -1);
|
|
216
217
|
} }
|
|
217
218
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
218
|
-
i0.ɵɵelementStart(0, "div",
|
|
219
|
-
i0.ɵɵelement(2, "i",
|
|
219
|
+
i0.ɵɵelementStart(0, "div", 11)(1, "h3", 17);
|
|
220
|
+
i0.ɵɵelement(2, "i", 18);
|
|
220
221
|
i0.ɵɵtext(3, " Entities ");
|
|
221
222
|
i0.ɵɵelementEnd();
|
|
222
|
-
i0.ɵɵelementStart(4, "div",
|
|
223
|
-
i0.ɵɵrepeaterCreate(5, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Template, 18, 7, "div",
|
|
223
|
+
i0.ɵɵelementStart(4, "div", 19);
|
|
224
|
+
i0.ɵɵrepeaterCreate(5, DataRequirementsViewerComponent_Conditional_2_Conditional_14_For_6_Template, 18, 7, "div", 20, _forTrack0);
|
|
224
225
|
i0.ɵɵelementEnd()();
|
|
225
226
|
} if (rf & 2) {
|
|
226
227
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
@@ -228,13 +229,13 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_14_Template(r
|
|
|
228
229
|
i0.ɵɵrepeater(ctx_r0.entities);
|
|
229
230
|
} }
|
|
230
231
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
231
|
-
i0.ɵɵelementStart(0, "span",
|
|
232
|
-
i0.ɵɵelement(1, "i",
|
|
232
|
+
i0.ɵɵelementStart(0, "span", 55);
|
|
233
|
+
i0.ɵɵelement(1, "i", 58);
|
|
233
234
|
i0.ɵɵtext(2, " NEW ");
|
|
234
235
|
i0.ɵɵelementEnd();
|
|
235
236
|
} }
|
|
236
237
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
237
|
-
i0.ɵɵelementStart(0, "p",
|
|
238
|
+
i0.ɵɵelementStart(0, "p", 27);
|
|
238
239
|
i0.ɵɵtext(1);
|
|
239
240
|
i0.ɵɵelementEnd();
|
|
240
241
|
} if (rf & 2) {
|
|
@@ -243,8 +244,8 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
243
244
|
i0.ɵɵtextInterpolate(query_r8.description);
|
|
244
245
|
} }
|
|
245
246
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
246
|
-
i0.ɵɵelementStart(0, "span",
|
|
247
|
-
i0.ɵɵelement(1, "i",
|
|
247
|
+
i0.ɵɵelementStart(0, "span", 59);
|
|
248
|
+
i0.ɵɵelement(1, "i", 18);
|
|
248
249
|
i0.ɵɵtext(2);
|
|
249
250
|
i0.ɵɵelementEnd();
|
|
250
251
|
} if (rf & 2) {
|
|
@@ -253,8 +254,8 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
253
254
|
i0.ɵɵtextInterpolate1(" ", entityName_r9, " ");
|
|
254
255
|
} }
|
|
255
256
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
256
|
-
i0.ɵɵelementStart(0, "div",
|
|
257
|
-
i0.ɵɵrepeaterCreate(1, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_16_For_2_Template, 3, 1, "span",
|
|
257
|
+
i0.ɵɵelementStart(0, "div", 57);
|
|
258
|
+
i0.ɵɵrepeaterCreate(1, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_16_For_2_Template, 3, 1, "span", 59, i0.ɵɵrepeaterTrackByIdentity);
|
|
258
259
|
i0.ɵɵelementEnd();
|
|
259
260
|
} if (rf & 2) {
|
|
260
261
|
const query_r8 = i0.ɵɵnextContext().$implicit;
|
|
@@ -262,17 +263,17 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
262
263
|
i0.ɵɵrepeater(query_r8.entityNames);
|
|
263
264
|
} }
|
|
264
265
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
265
|
-
i0.ɵɵelementStart(0, "span",
|
|
266
|
+
i0.ɵɵelementStart(0, "span", 68);
|
|
266
267
|
i0.ɵɵtext(1, "Required");
|
|
267
268
|
i0.ɵɵelementEnd();
|
|
268
269
|
} }
|
|
269
270
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
270
|
-
i0.ɵɵelementStart(0, "span",
|
|
271
|
+
i0.ɵɵelementStart(0, "span", 69);
|
|
271
272
|
i0.ɵɵtext(1, "Optional");
|
|
272
273
|
i0.ɵɵelementEnd();
|
|
273
274
|
} }
|
|
274
275
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
275
|
-
i0.ɵɵelementStart(0, "code",
|
|
276
|
+
i0.ɵɵelementStart(0, "code", 70);
|
|
276
277
|
i0.ɵɵtext(1);
|
|
277
278
|
i0.ɵɵelementEnd();
|
|
278
279
|
} if (rf & 2) {
|
|
@@ -281,7 +282,7 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
281
282
|
i0.ɵɵtextInterpolate(param_r10.type);
|
|
282
283
|
} }
|
|
283
284
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
284
|
-
i0.ɵɵelementStart(0, "p",
|
|
285
|
+
i0.ɵɵelementStart(0, "p", 71);
|
|
285
286
|
i0.ɵɵtext(1);
|
|
286
287
|
i0.ɵɵelementEnd();
|
|
287
288
|
} if (rf & 2) {
|
|
@@ -290,7 +291,7 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
290
291
|
i0.ɵɵtextInterpolate(param_r10.description);
|
|
291
292
|
} }
|
|
292
293
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
293
|
-
i0.ɵɵelementStart(0, "div",
|
|
294
|
+
i0.ɵɵelementStart(0, "div", 72)(1, "span", 73);
|
|
294
295
|
i0.ɵɵtext(2, "Sample:");
|
|
295
296
|
i0.ɵɵelementEnd();
|
|
296
297
|
i0.ɵɵelementStart(3, "code");
|
|
@@ -302,12 +303,14 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
302
303
|
i0.ɵɵtextInterpolate(param_r10.sampleValue || param_r10.testValue);
|
|
303
304
|
} }
|
|
304
305
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
305
|
-
i0.ɵɵelementStart(0, "div",
|
|
306
|
+
i0.ɵɵelementStart(0, "div", 65)(1, "div", 66)(2, "span", 67);
|
|
306
307
|
i0.ɵɵtext(3);
|
|
307
308
|
i0.ɵɵelementEnd();
|
|
308
|
-
i0.ɵɵ
|
|
309
|
+
i0.ɵɵconditionalCreate(4, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_4_Template, 2, 0, "span", 68)(5, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_5_Template, 2, 0, "span", 69);
|
|
310
|
+
i0.ɵɵconditionalCreate(6, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_6_Template, 2, 1, "code", 70);
|
|
309
311
|
i0.ɵɵelementEnd();
|
|
310
|
-
i0.ɵɵ
|
|
312
|
+
i0.ɵɵconditionalCreate(7, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_7_Template, 2, 1, "p", 71);
|
|
313
|
+
i0.ɵɵconditionalCreate(8, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Conditional_8_Template, 5, 1, "div", 72);
|
|
311
314
|
i0.ɵɵelementEnd();
|
|
312
315
|
} if (rf & 2) {
|
|
313
316
|
const param_r10 = ctx.$implicit;
|
|
@@ -323,12 +326,12 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
323
326
|
i0.ɵɵconditional(param_r10.sampleValue || param_r10.testValue ? 8 : -1);
|
|
324
327
|
} }
|
|
325
328
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
326
|
-
i0.ɵɵelementStart(0, "div",
|
|
327
|
-
i0.ɵɵelement(2, "i",
|
|
329
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "h5", 62);
|
|
330
|
+
i0.ɵɵelement(2, "i", 63);
|
|
328
331
|
i0.ɵɵtext(3, " Parameters ");
|
|
329
332
|
i0.ɵɵelementEnd();
|
|
330
|
-
i0.ɵɵelementStart(4, "div",
|
|
331
|
-
i0.ɵɵrepeaterCreate(5, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Template, 9, 5, "div",
|
|
333
|
+
i0.ɵɵelementStart(4, "div", 64);
|
|
334
|
+
i0.ɵɵrepeaterCreate(5, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_For_6_Template, 9, 5, "div", 65, _forTrack0);
|
|
332
335
|
i0.ɵɵelementEnd()();
|
|
333
336
|
} if (rf & 2) {
|
|
334
337
|
const query_r8 = i0.ɵɵnextContext(2).$implicit;
|
|
@@ -336,15 +339,15 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
336
339
|
i0.ɵɵrepeater(query_r8.parameters);
|
|
337
340
|
} }
|
|
338
341
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_2_For_12_Template(rf, ctx) { if (rf & 1) {
|
|
339
|
-
i0.ɵɵelementStart(0, "div",
|
|
342
|
+
i0.ɵɵelementStart(0, "div", 44)(1, "span", 40);
|
|
340
343
|
i0.ɵɵelement(2, "i", 5);
|
|
341
|
-
i0.ɵɵelementStart(3, "span",
|
|
344
|
+
i0.ɵɵelementStart(3, "span", 45);
|
|
342
345
|
i0.ɵɵtext(4);
|
|
343
346
|
i0.ɵɵelementEnd()();
|
|
344
|
-
i0.ɵɵelementStart(5, "span",
|
|
347
|
+
i0.ɵɵelementStart(5, "span", 41)(6, "code", 47);
|
|
345
348
|
i0.ɵɵtext(7);
|
|
346
349
|
i0.ɵɵelementEnd()();
|
|
347
|
-
i0.ɵɵelementStart(8, "span",
|
|
350
|
+
i0.ɵɵelementStart(8, "span", 43);
|
|
348
351
|
i0.ɵɵtext(9);
|
|
349
352
|
i0.ɵɵelementEnd()();
|
|
350
353
|
} if (rf & 2) {
|
|
@@ -361,19 +364,19 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
361
364
|
i0.ɵɵtextInterpolate1(" ", field_r11.description || "\u2014", " ");
|
|
362
365
|
} }
|
|
363
366
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
364
|
-
i0.ɵɵelementStart(0, "div",
|
|
367
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "h5", 37);
|
|
365
368
|
i0.ɵɵtext(2, "Output Fields");
|
|
366
369
|
i0.ɵɵelementEnd();
|
|
367
|
-
i0.ɵɵelementStart(3, "div",
|
|
370
|
+
i0.ɵɵelementStart(3, "div", 38)(4, "div", 39)(5, "span", 40);
|
|
368
371
|
i0.ɵɵtext(6, "Name");
|
|
369
372
|
i0.ɵɵelementEnd();
|
|
370
|
-
i0.ɵɵelementStart(7, "span",
|
|
373
|
+
i0.ɵɵelementStart(7, "span", 41);
|
|
371
374
|
i0.ɵɵtext(8, "Type");
|
|
372
375
|
i0.ɵɵelementEnd();
|
|
373
|
-
i0.ɵɵelementStart(9, "span",
|
|
376
|
+
i0.ɵɵelementStart(9, "span", 43);
|
|
374
377
|
i0.ɵɵtext(10, "Description");
|
|
375
378
|
i0.ɵɵelementEnd()();
|
|
376
|
-
i0.ɵɵrepeaterCreate(11, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_2_For_12_Template, 10, 6, "div",
|
|
379
|
+
i0.ɵɵrepeaterCreate(11, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_2_For_12_Template, 10, 6, "div", 44, _forTrack0);
|
|
377
380
|
i0.ɵɵelementEnd()();
|
|
378
381
|
} if (rf & 2) {
|
|
379
382
|
const query_r8 = i0.ɵɵnextContext(2).$implicit;
|
|
@@ -381,11 +384,11 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
381
384
|
i0.ɵɵrepeater(query_r8.fields);
|
|
382
385
|
} }
|
|
383
386
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
384
|
-
i0.ɵɵelementStart(0, "div",
|
|
385
|
-
i0.ɵɵelement(2, "i",
|
|
387
|
+
i0.ɵɵelementStart(0, "div", 61)(1, "h5", 74);
|
|
388
|
+
i0.ɵɵelement(2, "i", 75);
|
|
386
389
|
i0.ɵɵtext(3, " Query SQL ");
|
|
387
390
|
i0.ɵɵelementEnd();
|
|
388
|
-
i0.ɵɵelementStart(4, "pre",
|
|
391
|
+
i0.ɵɵelementStart(4, "pre", 76);
|
|
389
392
|
i0.ɵɵtext(5);
|
|
390
393
|
i0.ɵɵelementEnd()();
|
|
391
394
|
} if (rf & 2) {
|
|
@@ -394,8 +397,10 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
394
397
|
i0.ɵɵtextInterpolate(query_r8.newQuerySQL);
|
|
395
398
|
} }
|
|
396
399
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
397
|
-
i0.ɵɵelementStart(0, "div",
|
|
398
|
-
i0.ɵɵ
|
|
400
|
+
i0.ɵɵelementStart(0, "div", 33);
|
|
401
|
+
i0.ɵɵconditionalCreate(1, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_1_Template, 7, 0, "div", 60);
|
|
402
|
+
i0.ɵɵconditionalCreate(2, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_2_Template, 13, 0, "div", 36);
|
|
403
|
+
i0.ɵɵconditionalCreate(3, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Conditional_3_Template, 6, 1, "div", 61);
|
|
399
404
|
i0.ɵɵelementEnd();
|
|
400
405
|
} if (rf & 2) {
|
|
401
406
|
const query_r8 = i0.ɵɵnextContext().$implicit;
|
|
@@ -408,30 +413,30 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Cond
|
|
|
408
413
|
} }
|
|
409
414
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
410
415
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
411
|
-
i0.ɵɵelementStart(0, "div",
|
|
416
|
+
i0.ɵɵelementStart(0, "div", 51)(1, "div", 22);
|
|
412
417
|
i0.ɵɵlistener("click", function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Template_div_click_1_listener() { const query_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.toggleQuery(ctx_r0.getQueryKey(query_r8))); });
|
|
413
|
-
i0.ɵɵelementStart(2, "div",
|
|
414
|
-
i0.ɵɵelement(4, "i",
|
|
418
|
+
i0.ɵɵelementStart(2, "div", 23)(3, "div", 52);
|
|
419
|
+
i0.ɵɵelement(4, "i", 53);
|
|
415
420
|
i0.ɵɵelementEnd();
|
|
416
|
-
i0.ɵɵelementStart(5, "div",
|
|
421
|
+
i0.ɵɵelementStart(5, "div", 25)(6, "div", 54)(7, "h4", 26);
|
|
417
422
|
i0.ɵɵtext(8);
|
|
418
423
|
i0.ɵɵelementEnd();
|
|
419
|
-
i0.ɵɵ
|
|
424
|
+
i0.ɵɵconditionalCreate(9, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_9_Template, 3, 0, "span", 55);
|
|
420
425
|
i0.ɵɵelementEnd();
|
|
421
|
-
i0.ɵɵelementStart(10, "p",
|
|
426
|
+
i0.ɵɵelementStart(10, "p", 56);
|
|
422
427
|
i0.ɵɵtext(11);
|
|
423
428
|
i0.ɵɵelementEnd();
|
|
424
|
-
i0.ɵɵ
|
|
429
|
+
i0.ɵɵconditionalCreate(12, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_12_Template, 2, 1, "p", 27);
|
|
425
430
|
i0.ɵɵelementEnd();
|
|
426
|
-
i0.ɵɵelementStart(13, "div",
|
|
431
|
+
i0.ɵɵelementStart(13, "div", 28);
|
|
427
432
|
i0.ɵɵelement(14, "i", 5);
|
|
428
433
|
i0.ɵɵelementEnd()();
|
|
429
|
-
i0.ɵɵelementStart(15, "div",
|
|
430
|
-
i0.ɵɵ
|
|
431
|
-
i0.ɵɵelementStart(17, "span",
|
|
434
|
+
i0.ɵɵelementStart(15, "div", 29);
|
|
435
|
+
i0.ɵɵconditionalCreate(16, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_16_Template, 3, 0, "div", 57);
|
|
436
|
+
i0.ɵɵelementStart(17, "span", 32);
|
|
432
437
|
i0.ɵɵtext(18);
|
|
433
438
|
i0.ɵɵelementEnd()()();
|
|
434
|
-
i0.ɵɵ
|
|
439
|
+
i0.ɵɵconditionalCreate(19, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Conditional_19_Template, 4, 3, "div", 33);
|
|
435
440
|
i0.ɵɵelementEnd();
|
|
436
441
|
} if (rf & 2) {
|
|
437
442
|
const query_r8 = ctx.$implicit;
|
|
@@ -455,12 +460,12 @@ function DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Temp
|
|
|
455
460
|
i0.ɵɵconditional(ctx_r0.isQueryExpanded(ctx_r0.getQueryKey(query_r8)) ? 19 : -1);
|
|
456
461
|
} }
|
|
457
462
|
function DataRequirementsViewerComponent_Conditional_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
458
|
-
i0.ɵɵelementStart(0, "div",
|
|
463
|
+
i0.ɵɵelementStart(0, "div", 12)(1, "h3", 17);
|
|
459
464
|
i0.ɵɵelement(2, "i", 2);
|
|
460
465
|
i0.ɵɵtext(3, " Queries ");
|
|
461
466
|
i0.ɵɵelementEnd();
|
|
462
|
-
i0.ɵɵelementStart(4, "div",
|
|
463
|
-
i0.ɵɵrepeaterCreate(5, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Template, 20, 10, "div",
|
|
467
|
+
i0.ɵɵelementStart(4, "div", 19);
|
|
468
|
+
i0.ɵɵrepeaterCreate(5, DataRequirementsViewerComponent_Conditional_2_Conditional_15_For_6_Template, 20, 10, "div", 50, _forTrack1, true);
|
|
464
469
|
i0.ɵɵelementEnd()();
|
|
465
470
|
} if (rf & 2) {
|
|
466
471
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
@@ -474,14 +479,17 @@ function DataRequirementsViewerComponent_Conditional_2_Template(rf, ctx) { if (r
|
|
|
474
479
|
i0.ɵɵtext(4);
|
|
475
480
|
i0.ɵɵelementEnd()();
|
|
476
481
|
i0.ɵɵelementStart(5, "div", 6);
|
|
477
|
-
i0.ɵɵ
|
|
478
|
-
i0.ɵɵ
|
|
482
|
+
i0.ɵɵconditionalCreate(6, DataRequirementsViewerComponent_Conditional_2_Conditional_6_Template, 5, 2, "div", 7);
|
|
483
|
+
i0.ɵɵconditionalCreate(7, DataRequirementsViewerComponent_Conditional_2_Conditional_7_Template, 5, 2, "div", 7);
|
|
484
|
+
i0.ɵɵelementStart(8, "div", 7)(9, "span", 8);
|
|
479
485
|
i0.ɵɵtext(10);
|
|
480
486
|
i0.ɵɵelementEnd();
|
|
481
|
-
i0.ɵɵelementStart(11, "span",
|
|
487
|
+
i0.ɵɵelementStart(11, "span", 9);
|
|
482
488
|
i0.ɵɵtext(12);
|
|
483
489
|
i0.ɵɵelementEnd()()()();
|
|
484
|
-
i0.ɵɵ
|
|
490
|
+
i0.ɵɵconditionalCreate(13, DataRequirementsViewerComponent_Conditional_2_Conditional_13_Template, 6, 5, "div", 10);
|
|
491
|
+
i0.ɵɵconditionalCreate(14, DataRequirementsViewerComponent_Conditional_2_Conditional_14_Template, 7, 0, "div", 11);
|
|
492
|
+
i0.ɵɵconditionalCreate(15, DataRequirementsViewerComponent_Conditional_2_Conditional_15_Template, 7, 0, "div", 12);
|
|
485
493
|
} if (rf & 2) {
|
|
486
494
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
487
495
|
i0.ɵɵadvance(2);
|
|
@@ -489,9 +497,9 @@ function DataRequirementsViewerComponent_Conditional_2_Template(rf, ctx) { if (r
|
|
|
489
497
|
i0.ɵɵadvance(2);
|
|
490
498
|
i0.ɵɵtextInterpolate(ctx_r0.modeLabel);
|
|
491
499
|
i0.ɵɵadvance(2);
|
|
492
|
-
i0.ɵɵ
|
|
500
|
+
i0.ɵɵconditional(ctx_r0.entities.length > 0 ? 6 : -1);
|
|
493
501
|
i0.ɵɵadvance();
|
|
494
|
-
i0.ɵɵ
|
|
502
|
+
i0.ɵɵconditional(ctx_r0.queries.length > 0 ? 7 : -1);
|
|
495
503
|
i0.ɵɵadvance(3);
|
|
496
504
|
i0.ɵɵtextInterpolate(ctx_r0.totalFieldCount);
|
|
497
505
|
i0.ɵɵadvance(2);
|
|
@@ -666,20 +674,20 @@ export class DataRequirementsViewerComponent {
|
|
|
666
674
|
}
|
|
667
675
|
}
|
|
668
676
|
static ɵfac = function DataRequirementsViewerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DataRequirementsViewerComponent)(); };
|
|
669
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataRequirementsViewerComponent, selectors: [["mj-data-requirements-viewer"]], inputs: { dataRequirements: "dataRequirements" }, decls: 3, vars: 1, consts: [[1, "data-requirements-viewer"], [1, "empty-state"], [1, "fas", "fa-database"], [1, "summary-header"], [1, "mode-badge"], [1, "fas", 3, "ngClass"], [1, "stats"], [
|
|
677
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataRequirementsViewerComponent, selectors: [["mj-data-requirements-viewer"]], inputs: { dataRequirements: "dataRequirements" }, standalone: false, decls: 3, vars: 1, consts: [[1, "data-requirements-viewer"], [1, "empty-state"], [1, "fas", "fa-database"], [1, "summary-header"], [1, "mode-badge"], [1, "fas", 3, "ngClass"], [1, "stats"], [1, "stat-item"], [1, "stat-value"], [1, "stat-label"], [1, "description-section"], [1, "section", "entities-section"], [1, "section", "queries-section"], [1, "description-title"], [1, "fas", "fa-info-circle"], [1, "description-content"], [3, "data", "enableCollapsibleHeadings", "enableLineNumbers", "enableSmartypants", "enableHtml"], [1, "section-title"], [1, "fas", "fa-table"], [1, "cards-container"], [1, "data-card", "entity-card", 3, "expanded"], [1, "data-card", "entity-card"], [1, "card-header", 3, "click"], [1, "card-title-row"], [1, "card-icon"], [1, "card-title-info"], [1, "card-title"], [1, "card-description"], [1, "expand-icon"], [1, "card-meta"], [1, "permissions-row"], [1, "permission-badge", 3, "background-color"], [1, "field-count"], [1, "card-body"], [1, "permission-badge"], [1, "usage-context"], [1, "fields-section"], [1, "fields-title"], [1, "fields-table"], [1, "fields-header"], [1, "field-col", "name-col"], [1, "field-col", "type-col"], [1, "field-col", "tags-col"], [1, "field-col", "desc-col"], [1, "field-row"], [1, "field-name"], ["title", "Required", 1, "required-indicator"], [1, "field-type"], [1, "usage-tag", 3, "background-color"], [1, "usage-tag"], [1, "data-card", "query-card", 3, "expanded"], [1, "data-card", "query-card"], [1, "card-icon", "query-icon"], [1, "fas", "fa-code"], [1, "title-with-badge"], ["title", "This query was newly created for this component", 1, "new-query-badge"], [1, "card-path"], [1, "entity-badges"], [1, "fas", "fa-sparkles"], [1, "entity-badge"], [1, "parameters-section"], [1, "sql-section"], [1, "parameters-title"], [1, "fas", "fa-sliders-h"], [1, "parameters-list"], [1, "parameter-item"], [1, "param-header"], [1, "param-name"], [1, "required-badge"], [1, "optional-badge"], [1, "param-type"], [1, "param-description"], [1, "param-sample"], [1, "sample-label"], [1, "sql-title"], [1, "fas", "fa-terminal"], [1, "sql-code"]], template: function DataRequirementsViewerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
670
678
|
i0.ɵɵelementStart(0, "div", 0);
|
|
671
|
-
i0.ɵɵ
|
|
679
|
+
i0.ɵɵconditionalCreate(1, DataRequirementsViewerComponent_Conditional_1_Template, 6, 0, "div", 1)(2, DataRequirementsViewerComponent_Conditional_2_Template, 16, 9);
|
|
672
680
|
i0.ɵɵelementEnd();
|
|
673
681
|
} if (rf & 2) {
|
|
674
682
|
i0.ɵɵadvance();
|
|
675
683
|
i0.ɵɵconditional(!ctx.hasData ? 1 : 2);
|
|
676
|
-
} }, dependencies: [i1.NgClass, i1.NgIf, i2.MarkdownComponent], styles: [".data-requirements-viewer[_ngcontent-%COMP%] {\n padding: 0;\n height: 100%;\n overflow-y: auto;\n background: #fafbfc;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n color: #dee2e6;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: #495057;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: #6c757d;\n}\n\n\n\n.summary-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: linear-gradient(135deg, #033ba3 0%, #5cb6f6 100%);\n color: white;\n border-radius: 0;\n}\n\n.mode-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 600;\n}\n\n.mode-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n opacity: 0.9;\n}\n\n.stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n line-height: 1;\n}\n\n.stat-label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n opacity: 0.85;\n}\n\n\n\n.description-section[_ngcontent-%COMP%] {\n padding: 20px;\n background: white;\n border-bottom: 1px solid #e9ecef;\n}\n\n.description-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.description-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5B4FE9;\n}\n\n.description-content[_ngcontent-%COMP%] {\n font-size: 14px;\n line-height: 1.6;\n color: #495057;\n}\n\n.description-content[_ngcontent-%COMP%] p {\n margin: 0 0 12px 0;\n}\n\n.description-content[_ngcontent-%COMP%] p:last-child {\n margin-bottom: 0;\n}\n\n.description-content[_ngcontent-%COMP%] pre {\n background: #f8f9fa;\n padding: 12px;\n border-radius: 6px;\n overflow-x: auto;\n}\n\n.description-content[_ngcontent-%COMP%] code {\n background: #f1f3f4;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 13px;\n}\n\n\n\n.section[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 600;\n color: #343a40;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5B4FE9;\n font-size: 18px;\n}\n\n\n\n.cards-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n\n\n.data-card[_ngcontent-%COMP%] {\n background: white;\n border-radius: 8px;\n border: 1px solid #e9ecef;\n overflow: hidden;\n transition: box-shadow 0.2s ease, border-color 0.2s ease;\n}\n\n.data-card[_ngcontent-%COMP%]:hover {\n border-color: #dee2e6;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n}\n\n.data-card.expanded[_ngcontent-%COMP%] {\n border-color: #5B4FE9;\n box-shadow: 0 4px 12px rgba(91, 79, 233, 0.12);\n}\n\n\n\n.card-header[_ngcontent-%COMP%] {\n padding: 16px;\n cursor: pointer;\n user-select: none;\n}\n\n.card-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%);\n color: #4CAF50;\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.card-icon.query-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 100%);\n color: #2196F3;\n}\n\n.card-title-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.title-with-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 4px;\n}\n\n.card-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: #212529;\n}\n\n.new-query-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 700;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);\n animation: _ngcontent-%COMP%_subtle-pulse 2s ease-in-out infinite;\n}\n\n.new-query-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n@keyframes _ngcontent-%COMP%_subtle-pulse {\n 0%, 100% {\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);\n }\n 50% {\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);\n }\n}\n\n.card-path[_ngcontent-%COMP%] {\n margin: 0 0 4px 0;\n font-size: 12px;\n color: #6c757d;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.card-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n color: #adb5bd;\n font-size: 12px;\n padding: 4px;\n}\n\n.data-card.expanded[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: #5B4FE9;\n}\n\n\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid #f1f3f4;\n}\n\n.permissions-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.permission-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n color: white;\n text-transform: capitalize;\n}\n\n.permission-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.field-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n}\n\n.entity-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.entity-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n background: #f1f3f4;\n color: #495057;\n}\n\n.entity-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: #6c757d;\n}\n\n\n\n.card-body[_ngcontent-%COMP%] {\n padding: 0 16px 16px 16px;\n border-top: 1px solid #f1f3f4;\n}\n\n\n\n.usage-context[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 12px;\n margin-top: 12px;\n background: #FFF8E1;\n border-radius: 6px;\n font-size: 13px;\n color: #6d4c00;\n}\n\n.usage-context[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #FFA000;\n margin-top: 2px;\n}\n\n\n\n.fields-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.fields-title[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.fields-table[_ngcontent-%COMP%] {\n border: 1px solid #e9ecef;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.fields-header[_ngcontent-%COMP%] {\n display: flex;\n padding: 10px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e9ecef;\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.field-row[_ngcontent-%COMP%] {\n display: flex;\n padding: 10px 12px;\n border-bottom: 1px solid #f1f3f4;\n font-size: 13px;\n align-items: center;\n}\n\n.field-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.field-row[_ngcontent-%COMP%]:hover {\n background: #fafbfc;\n}\n\n.field-col[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.name-col[_ngcontent-%COMP%] {\n flex: 0 0 200px;\n min-width: 0;\n}\n\n.type-col[_ngcontent-%COMP%] {\n flex: 0 0 120px;\n}\n\n.tags-col[_ngcontent-%COMP%] {\n flex: 0 0 160px;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n.desc-col[_ngcontent-%COMP%] {\n flex: 1;\n color: #6c757d;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.field-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #212529;\n}\n\n.required-indicator[_ngcontent-%COMP%] {\n color: #dc3545;\n font-weight: bold;\n}\n\n.field-type[_ngcontent-%COMP%] {\n padding: 2px 6px;\n background: #f1f3f4;\n border-radius: 4px;\n font-size: 11px;\n color: #495057;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.usage-tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n\n\n.parameters-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.parameters-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.parameters-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5B4FE9;\n}\n\n.parameters-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.parameter-item[_ngcontent-%COMP%] {\n padding: 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border-left: 3px solid #5B4FE9;\n}\n\n.param-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.param-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #212529;\n font-size: 14px;\n}\n\n.required-badge[_ngcontent-%COMP%] {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n background: #dc3545;\n color: white;\n text-transform: uppercase;\n}\n\n.optional-badge[_ngcontent-%COMP%] {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n background: #6c757d;\n color: white;\n text-transform: uppercase;\n}\n\n.param-type[_ngcontent-%COMP%] {\n padding: 2px 6px;\n background: #e9ecef;\n border-radius: 4px;\n font-size: 11px;\n color: #495057;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.param-description[_ngcontent-%COMP%] {\n margin: 8px 0 0 0;\n font-size: 13px;\n color: #495057;\n line-height: 1.4;\n}\n\n.param-sample[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 12px;\n}\n\n.sample-label[_ngcontent-%COMP%] {\n color: #6c757d;\n margin-right: 4px;\n}\n\n.param-sample[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n padding: 2px 6px;\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 4px;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n color: #e83e8c;\n}\n\n\n\n.sql-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.sql-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.sql-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5B4FE9;\n}\n\n.sql-code[_ngcontent-%COMP%] {\n margin: 0;\n padding: 16px;\n background: #1e1e1e;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.5;\n color: #d4d4d4;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n\n\n@media (max-width: 768px) {\n .summary-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n align-items: flex-start;\n }\n\n .stats[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: space-around;\n }\n\n .name-col[_ngcontent-%COMP%] {\n flex: 0 0 140px;\n }\n\n .type-col[_ngcontent-%COMP%] {\n flex: 0 0 90px;\n }\n\n .tags-col[_ngcontent-%COMP%] {\n flex: 0 0 120px;\n }\n\n .card-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n }\n}"] });
|
|
684
|
+
} }, dependencies: [i1.NgClass, i2.MarkdownComponent], styles: [".data-requirements-viewer[_ngcontent-%COMP%] {\n padding: 0;\n height: 100%;\n overflow-y: auto;\n background: #fafbfc;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n color: #dee2e6;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: #495057;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: #6c757d;\n}\n\n\n\n.summary-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: linear-gradient(135deg, #033ba3 0%, #5cb6f6 100%);\n color: white;\n border-radius: 0;\n}\n\n.mode-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 600;\n}\n\n.mode-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n opacity: 0.9;\n}\n\n.stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n line-height: 1;\n}\n\n.stat-label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n opacity: 0.85;\n}\n\n\n\n.description-section[_ngcontent-%COMP%] {\n padding: 20px;\n background: white;\n border-bottom: 1px solid #e9ecef;\n}\n\n.description-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.description-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5B4FE9;\n}\n\n.description-content[_ngcontent-%COMP%] {\n font-size: 14px;\n line-height: 1.6;\n color: #495057;\n}\n\n.description-content[_ngcontent-%COMP%] p {\n margin: 0 0 12px 0;\n}\n\n.description-content[_ngcontent-%COMP%] p:last-child {\n margin-bottom: 0;\n}\n\n.description-content[_ngcontent-%COMP%] pre {\n background: #f8f9fa;\n padding: 12px;\n border-radius: 6px;\n overflow-x: auto;\n}\n\n.description-content[_ngcontent-%COMP%] code {\n background: #f1f3f4;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 13px;\n}\n\n\n\n.section[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 600;\n color: #343a40;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5B4FE9;\n font-size: 18px;\n}\n\n\n\n.cards-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n\n\n.data-card[_ngcontent-%COMP%] {\n background: white;\n border-radius: 8px;\n border: 1px solid #e9ecef;\n overflow: hidden;\n transition: box-shadow 0.2s ease, border-color 0.2s ease;\n}\n\n.data-card[_ngcontent-%COMP%]:hover {\n border-color: #dee2e6;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n}\n\n.data-card.expanded[_ngcontent-%COMP%] {\n border-color: #5B4FE9;\n box-shadow: 0 4px 12px rgba(91, 79, 233, 0.12);\n}\n\n\n\n.card-header[_ngcontent-%COMP%] {\n padding: 16px;\n cursor: pointer;\n user-select: none;\n}\n\n.card-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%);\n color: #4CAF50;\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.card-icon.query-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 100%);\n color: #2196F3;\n}\n\n.card-title-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.title-with-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 4px;\n}\n\n.card-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: #212529;\n}\n\n.new-query-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 700;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);\n animation: _ngcontent-%COMP%_subtle-pulse 2s ease-in-out infinite;\n}\n\n.new-query-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n@keyframes _ngcontent-%COMP%_subtle-pulse {\n 0%, 100% {\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);\n }\n 50% {\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);\n }\n}\n\n.card-path[_ngcontent-%COMP%] {\n margin: 0 0 4px 0;\n font-size: 12px;\n color: #6c757d;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.card-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n color: #adb5bd;\n font-size: 12px;\n padding: 4px;\n}\n\n.data-card.expanded[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: #5B4FE9;\n}\n\n\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid #f1f3f4;\n}\n\n.permissions-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.permission-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n color: white;\n text-transform: capitalize;\n}\n\n.permission-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.field-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n}\n\n.entity-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.entity-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n background: #f1f3f4;\n color: #495057;\n}\n\n.entity-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: #6c757d;\n}\n\n\n\n.card-body[_ngcontent-%COMP%] {\n padding: 0 16px 16px 16px;\n border-top: 1px solid #f1f3f4;\n}\n\n\n\n.usage-context[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 12px;\n margin-top: 12px;\n background: #FFF8E1;\n border-radius: 6px;\n font-size: 13px;\n color: #6d4c00;\n}\n\n.usage-context[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #FFA000;\n margin-top: 2px;\n}\n\n\n\n.fields-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.fields-title[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.fields-table[_ngcontent-%COMP%] {\n border: 1px solid #e9ecef;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.fields-header[_ngcontent-%COMP%] {\n display: flex;\n padding: 10px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e9ecef;\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.field-row[_ngcontent-%COMP%] {\n display: flex;\n padding: 10px 12px;\n border-bottom: 1px solid #f1f3f4;\n font-size: 13px;\n align-items: center;\n}\n\n.field-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.field-row[_ngcontent-%COMP%]:hover {\n background: #fafbfc;\n}\n\n.field-col[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.name-col[_ngcontent-%COMP%] {\n flex: 0 0 200px;\n min-width: 0;\n}\n\n.type-col[_ngcontent-%COMP%] {\n flex: 0 0 120px;\n}\n\n.tags-col[_ngcontent-%COMP%] {\n flex: 0 0 160px;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n.desc-col[_ngcontent-%COMP%] {\n flex: 1;\n color: #6c757d;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.field-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #212529;\n}\n\n.required-indicator[_ngcontent-%COMP%] {\n color: #dc3545;\n font-weight: bold;\n}\n\n.field-type[_ngcontent-%COMP%] {\n padding: 2px 6px;\n background: #f1f3f4;\n border-radius: 4px;\n font-size: 11px;\n color: #495057;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.usage-tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n\n\n.parameters-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.parameters-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.parameters-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5B4FE9;\n}\n\n.parameters-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.parameter-item[_ngcontent-%COMP%] {\n padding: 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border-left: 3px solid #5B4FE9;\n}\n\n.param-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.param-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #212529;\n font-size: 14px;\n}\n\n.required-badge[_ngcontent-%COMP%] {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n background: #dc3545;\n color: white;\n text-transform: uppercase;\n}\n\n.optional-badge[_ngcontent-%COMP%] {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n background: #6c757d;\n color: white;\n text-transform: uppercase;\n}\n\n.param-type[_ngcontent-%COMP%] {\n padding: 2px 6px;\n background: #e9ecef;\n border-radius: 4px;\n font-size: 11px;\n color: #495057;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.param-description[_ngcontent-%COMP%] {\n margin: 8px 0 0 0;\n font-size: 13px;\n color: #495057;\n line-height: 1.4;\n}\n\n.param-sample[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 12px;\n}\n\n.sample-label[_ngcontent-%COMP%] {\n color: #6c757d;\n margin-right: 4px;\n}\n\n.param-sample[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n padding: 2px 6px;\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 4px;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n color: #e83e8c;\n}\n\n\n\n.sql-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.sql-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.sql-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #5B4FE9;\n}\n\n.sql-code[_ngcontent-%COMP%] {\n margin: 0;\n padding: 16px;\n background: #1e1e1e;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.5;\n color: #d4d4d4;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n\n\n@media (max-width: 768px) {\n .summary-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n align-items: flex-start;\n }\n\n .stats[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: space-around;\n }\n\n .name-col[_ngcontent-%COMP%] {\n flex: 0 0 140px;\n }\n\n .type-col[_ngcontent-%COMP%] {\n flex: 0 0 90px;\n }\n\n .tags-col[_ngcontent-%COMP%] {\n flex: 0 0 120px;\n }\n\n .card-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n }\n}"] });
|
|
677
685
|
}
|
|
678
686
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataRequirementsViewerComponent, [{
|
|
679
687
|
type: Component,
|
|
680
|
-
args: [{ selector: 'mj-data-requirements-viewer', template: "<div class=\"data-requirements-viewer\">\n @if (!hasData) {\n <div class=\"empty-state\">\n <i class=\"fas fa-database\"></i>\n <h3>No Data Requirements</h3>\n <p>This component doesn't have any data requirements defined.</p>\n </div>\n } @else {\n <!-- Header Summary -->\n <div class=\"summary-header\">\n <div class=\"mode-badge\">\n <i class=\"fas\" [ngClass]=\"modeIcon\"></i>\n <span>{{ modeLabel }}</span>\n </div>\n <div class=\"stats\">\n <div class=\"stat-item\" *ngIf=\"entities.length > 0\">\n <span class=\"stat-value\">{{ entities.length }}</span>\n <span class=\"stat-label\">{{ entities.length === 1 ? 'Entity' : 'Entities' }}</span>\n </div>\n <div class=\"stat-item\" *ngIf=\"queries.length > 0\">\n <span class=\"stat-value\">{{ queries.length }}</span>\n <span class=\"stat-label\">{{ queries.length === 1 ? 'Query' : 'Queries' }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ totalFieldCount }}</span>\n <span class=\"stat-label\">{{ totalFieldCount === 1 ? 'Field' : 'Fields' }}</span>\n </div>\n </div>\n </div>\n\n <!-- Description / Overview (supports markdown including mermaid diagrams) -->\n @if (description) {\n <div class=\"description-section\">\n <h4 class=\"description-title\">\n <i class=\"fas fa-info-circle\"></i>\n Overview\n </h4>\n <div class=\"description-content\">\n <mj-markdown [data]=\"description\"\n [enableCollapsibleHeadings]=\"false\"\n [enableLineNumbers]=\"false\"\n [enableSmartypants]=\"true\"\n [enableHtml]=\"true\"></mj-markdown>\n </div>\n </div>\n }\n\n <!-- Entities Section -->\n @if (entities.length > 0) {\n <div class=\"section entities-section\">\n <h3 class=\"section-title\">\n <i class=\"fas fa-table\"></i>\n Entities\n </h3>\n <div class=\"cards-container\">\n @for (entity of entities; track entity.name) {\n <div class=\"data-card entity-card\" [class.expanded]=\"isEntityExpanded(entity.name)\">\n <div class=\"card-header\" (click)=\"toggleEntity(entity.name)\">\n <div class=\"card-title-row\">\n <div class=\"card-icon\">\n <i class=\"fas fa-table\"></i>\n </div>\n <div class=\"card-title-info\">\n <h4 class=\"card-title\">{{ entity.name }}</h4>\n @if (entity.description) {\n <p class=\"card-description\">{{ entity.description }}</p>\n }\n </div>\n <div class=\"expand-icon\">\n <i class=\"fas\" [ngClass]=\"isEntityExpanded(entity.name) ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </div>\n </div>\n <div class=\"card-meta\">\n <div class=\"permissions-row\">\n @for (perm of entity.permissionLevelNeeded; track perm) {\n <span class=\"permission-badge\" [style.background-color]=\"getPermissionColor(perm)\">\n <i class=\"fas\" [ngClass]=\"getPermissionIcon(perm)\"></i>\n {{ perm }}\n </span>\n }\n </div>\n <span class=\"field-count\">{{ entity.fieldMetadata.length || 0 }} fields</span>\n </div>\n </div>\n\n @if (isEntityExpanded(entity.name)) {\n <div class=\"card-body\">\n @if (entity.usageContext) {\n <div class=\"usage-context\">\n <i class=\"fas fa-info-circle\"></i>\n <span>{{ entity.usageContext }}</span>\n </div>\n }\n\n <!-- Fields Table -->\n @if (entity.fieldMetadata && entity.fieldMetadata.length > 0) {\n <div class=\"fields-section\">\n <h5 class=\"fields-title\">Fields</h5>\n <div class=\"fields-table\">\n <div class=\"fields-header\">\n <span class=\"field-col name-col\">Name</span>\n <span class=\"field-col type-col\">Type</span>\n <span class=\"field-col tags-col\">Usage</span>\n <span class=\"field-col desc-col\">Description</span>\n </div>\n @for (field of entity.fieldMetadata; track field.name) {\n <div class=\"field-row\">\n <span class=\"field-col name-col\">\n <i class=\"fas\" [ngClass]=\"getFieldTypeIcon(field.type)\" [style.color]=\"getFieldTypeColor(field.type)\"></i>\n <span class=\"field-name\">{{ field.name }}</span>\n @if (!field.allowsNull) {\n <span class=\"required-indicator\" title=\"Required\">*</span>\n }\n </span>\n <span class=\"field-col type-col\">\n <code class=\"field-type\">{{ formatFieldType(field.type) }}</code>\n </span>\n <span class=\"field-col tags-col\">\n @for (tag of getFieldUsageTags(field, entity); track tag) {\n <span class=\"usage-tag\" [style.background-color]=\"getTagColor(tag)\">{{ tag }}</span>\n }\n </span>\n <span class=\"field-col desc-col\">\n {{ field.description || '\u2014' }}\n </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Queries Section -->\n @if (queries.length > 0) {\n <div class=\"section queries-section\">\n <h3 class=\"section-title\">\n <i class=\"fas fa-database\"></i>\n Queries\n </h3>\n <div class=\"cards-container\">\n @for (query of queries; track getQueryKey(query)) {\n <div class=\"data-card query-card\" [class.expanded]=\"isQueryExpanded(getQueryKey(query))\">\n <div class=\"card-header\" (click)=\"toggleQuery(getQueryKey(query))\">\n <div class=\"card-title-row\">\n <div class=\"card-icon query-icon\">\n <i class=\"fas fa-code\"></i>\n </div>\n <div class=\"card-title-info\">\n <div class=\"title-with-badge\">\n <h4 class=\"card-title\">{{ query.name }}</h4>\n @if (query.isNew) {\n <span class=\"new-query-badge\" title=\"This query was newly created for this component\">\n <i class=\"fas fa-sparkles\"></i>\n NEW\n </span>\n }\n </div>\n <p class=\"card-path\">{{ query.categoryPath }}</p>\n @if (query.description) {\n <p class=\"card-description\">{{ query.description }}</p>\n }\n </div>\n <div class=\"expand-icon\">\n <i class=\"fas\" [ngClass]=\"isQueryExpanded(getQueryKey(query)) ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </div>\n </div>\n <div class=\"card-meta\">\n @if (query.entityNames && query.entityNames.length > 0) {\n <div class=\"entity-badges\">\n @for (entityName of query.entityNames; track entityName) {\n <span class=\"entity-badge\">\n <i class=\"fas fa-table\"></i>\n {{ entityName }}\n </span>\n }\n </div>\n }\n <span class=\"field-count\">{{ query.fields.length || 0 }} fields</span>\n </div>\n </div>\n\n @if (isQueryExpanded(getQueryKey(query))) {\n <div class=\"card-body\">\n <!-- Parameters -->\n @if (query.parameters && query.parameters.length > 0) {\n <div class=\"parameters-section\">\n <h5 class=\"parameters-title\">\n <i class=\"fas fa-sliders-h\"></i>\n Parameters\n </h5>\n <div class=\"parameters-list\">\n @for (param of query.parameters; track param.name) {\n <div class=\"parameter-item\">\n <div class=\"param-header\">\n <span class=\"param-name\">{{ param.name }}</span>\n @if (param.isRequired) {\n <span class=\"required-badge\">Required</span>\n } @else {\n <span class=\"optional-badge\">Optional</span>\n }\n @if (param.type) {\n <code class=\"param-type\">{{ param.type }}</code>\n }\n </div>\n @if (param.description) {\n <p class=\"param-description\">{{ param.description }}</p>\n }\n @if (param.sampleValue || param.testValue) {\n <div class=\"param-sample\">\n <span class=\"sample-label\">Sample:</span>\n <code>{{ param.sampleValue || param.testValue }}</code>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Fields Table -->\n @if (query.fields && query.fields.length > 0) {\n <div class=\"fields-section\">\n <h5 class=\"fields-title\">Output Fields</h5>\n <div class=\"fields-table\">\n <div class=\"fields-header\">\n <span class=\"field-col name-col\">Name</span>\n <span class=\"field-col type-col\">Type</span>\n <span class=\"field-col desc-col\">Description</span>\n </div>\n @for (field of query.fields; track field.name) {\n <div class=\"field-row\">\n <span class=\"field-col name-col\">\n <i class=\"fas\" [ngClass]=\"getFieldTypeIcon(field.type)\" [style.color]=\"getFieldTypeColor(field.type)\"></i>\n <span class=\"field-name\">{{ field.name }}</span>\n </span>\n <span class=\"field-col type-col\">\n <code class=\"field-type\">{{ formatFieldType(field.type) }}</code>\n </span>\n <span class=\"field-col desc-col\">\n {{ field.description || '\u2014' }}\n </span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- New Query SQL -->\n @if (query.newQuerySQL) {\n <div class=\"sql-section\">\n <h5 class=\"sql-title\">\n <i class=\"fas fa-terminal\"></i>\n Query SQL\n </h5>\n <pre class=\"sql-code\">{{ query.newQuerySQL }}</pre>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: [".data-requirements-viewer {\n padding: 0;\n height: 100%;\n overflow-y: auto;\n background: #fafbfc;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n color: #6c757d;\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n color: #dee2e6;\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: #495057;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n color: #6c757d;\n}\n\n/* Summary Header */\n.summary-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: linear-gradient(135deg, #033ba3 0%, #5cb6f6 100%);\n color: white;\n border-radius: 0;\n}\n\n.mode-badge {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 600;\n}\n\n.mode-badge i {\n font-size: 20px;\n opacity: 0.9;\n}\n\n.stats {\n display: flex;\n gap: 24px;\n}\n\n.stat-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n}\n\n.stat-value {\n font-size: 24px;\n font-weight: 700;\n line-height: 1;\n}\n\n.stat-label {\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n opacity: 0.85;\n}\n\n/* Description Section */\n.description-section {\n padding: 20px;\n background: white;\n border-bottom: 1px solid #e9ecef;\n}\n\n.description-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.description-title i {\n color: #5B4FE9;\n}\n\n.description-content {\n font-size: 14px;\n line-height: 1.6;\n color: #495057;\n}\n\n.description-content ::ng-deep p {\n margin: 0 0 12px 0;\n}\n\n.description-content ::ng-deep p:last-child {\n margin-bottom: 0;\n}\n\n.description-content ::ng-deep pre {\n background: #f8f9fa;\n padding: 12px;\n border-radius: 6px;\n overflow-x: auto;\n}\n\n.description-content ::ng-deep code {\n background: #f1f3f4;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 13px;\n}\n\n/* Section Styling */\n.section {\n padding: 20px;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 600;\n color: #343a40;\n}\n\n.section-title i {\n color: #5B4FE9;\n font-size: 18px;\n}\n\n/* Cards Container */\n.cards-container {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n/* Data Card */\n.data-card {\n background: white;\n border-radius: 8px;\n border: 1px solid #e9ecef;\n overflow: hidden;\n transition: box-shadow 0.2s ease, border-color 0.2s ease;\n}\n\n.data-card:hover {\n border-color: #dee2e6;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n}\n\n.data-card.expanded {\n border-color: #5B4FE9;\n box-shadow: 0 4px 12px rgba(91, 79, 233, 0.12);\n}\n\n/* Card Header */\n.card-header {\n padding: 16px;\n cursor: pointer;\n user-select: none;\n}\n\n.card-title-row {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n}\n\n.card-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%);\n color: #4CAF50;\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.card-icon.query-icon {\n background: linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 100%);\n color: #2196F3;\n}\n\n.card-title-info {\n flex: 1;\n min-width: 0;\n}\n\n.title-with-badge {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 4px;\n}\n\n.card-title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: #212529;\n}\n\n.new-query-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 700;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);\n animation: subtle-pulse 2s ease-in-out infinite;\n}\n\n.new-query-badge i {\n font-size: 9px;\n}\n\n@keyframes subtle-pulse {\n 0%, 100% {\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);\n }\n 50% {\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);\n }\n}\n\n.card-path {\n margin: 0 0 4px 0;\n font-size: 12px;\n color: #6c757d;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.card-description {\n margin: 0;\n font-size: 13px;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.expand-icon {\n color: #adb5bd;\n font-size: 12px;\n padding: 4px;\n}\n\n.data-card.expanded .expand-icon {\n color: #5B4FE9;\n}\n\n/* Card Meta */\n.card-meta {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid #f1f3f4;\n}\n\n.permissions-row {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.permission-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n color: white;\n text-transform: capitalize;\n}\n\n.permission-badge i {\n font-size: 10px;\n}\n\n.field-count {\n font-size: 12px;\n color: #6c757d;\n}\n\n.entity-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.entity-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n background: #f1f3f4;\n color: #495057;\n}\n\n.entity-badge i {\n font-size: 10px;\n color: #6c757d;\n}\n\n/* Card Body */\n.card-body {\n padding: 0 16px 16px 16px;\n border-top: 1px solid #f1f3f4;\n}\n\n/* Usage Context */\n.usage-context {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 12px;\n margin-top: 12px;\n background: #FFF8E1;\n border-radius: 6px;\n font-size: 13px;\n color: #6d4c00;\n}\n\n.usage-context i {\n color: #FFA000;\n margin-top: 2px;\n}\n\n/* Fields Section */\n.fields-section {\n margin-top: 16px;\n}\n\n.fields-title {\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Fields Table */\n.fields-table {\n border: 1px solid #e9ecef;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.fields-header {\n display: flex;\n padding: 10px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e9ecef;\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.field-row {\n display: flex;\n padding: 10px 12px;\n border-bottom: 1px solid #f1f3f4;\n font-size: 13px;\n align-items: center;\n}\n\n.field-row:last-child {\n border-bottom: none;\n}\n\n.field-row:hover {\n background: #fafbfc;\n}\n\n.field-col {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.name-col {\n flex: 0 0 200px;\n min-width: 0;\n}\n\n.type-col {\n flex: 0 0 120px;\n}\n\n.tags-col {\n flex: 0 0 160px;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n.desc-col {\n flex: 1;\n color: #6c757d;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.field-name {\n font-weight: 500;\n color: #212529;\n}\n\n.required-indicator {\n color: #dc3545;\n font-weight: bold;\n}\n\n.field-type {\n padding: 2px 6px;\n background: #f1f3f4;\n border-radius: 4px;\n font-size: 11px;\n color: #495057;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.usage-tag {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n/* Parameters Section */\n.parameters-section {\n margin-top: 16px;\n}\n\n.parameters-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.parameters-title i {\n color: #5B4FE9;\n}\n\n.parameters-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.parameter-item {\n padding: 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border-left: 3px solid #5B4FE9;\n}\n\n.param-header {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.param-name {\n font-weight: 600;\n color: #212529;\n font-size: 14px;\n}\n\n.required-badge {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n background: #dc3545;\n color: white;\n text-transform: uppercase;\n}\n\n.optional-badge {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n background: #6c757d;\n color: white;\n text-transform: uppercase;\n}\n\n.param-type {\n padding: 2px 6px;\n background: #e9ecef;\n border-radius: 4px;\n font-size: 11px;\n color: #495057;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.param-description {\n margin: 8px 0 0 0;\n font-size: 13px;\n color: #495057;\n line-height: 1.4;\n}\n\n.param-sample {\n margin-top: 8px;\n font-size: 12px;\n}\n\n.sample-label {\n color: #6c757d;\n margin-right: 4px;\n}\n\n.param-sample code {\n padding: 2px 6px;\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 4px;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n color: #e83e8c;\n}\n\n/* SQL Section */\n.sql-section {\n margin-top: 16px;\n}\n\n.sql-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.sql-title i {\n color: #5B4FE9;\n}\n\n.sql-code {\n margin: 0;\n padding: 16px;\n background: #1e1e1e;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.5;\n color: #d4d4d4;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .summary-header {\n flex-direction: column;\n gap: 16px;\n align-items: flex-start;\n }\n\n .stats {\n width: 100%;\n justify-content: space-around;\n }\n\n .name-col {\n flex: 0 0 140px;\n }\n\n .type-col {\n flex: 0 0 90px;\n }\n\n .tags-col {\n flex: 0 0 120px;\n }\n\n .card-meta {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n }\n}\n"] }]
|
|
688
|
+
args: [{ standalone: false, selector: 'mj-data-requirements-viewer', template: "<div class=\"data-requirements-viewer\">\n @if (!hasData) {\n <div class=\"empty-state\">\n <i class=\"fas fa-database\"></i>\n <h3>No Data Requirements</h3>\n <p>This component doesn't have any data requirements defined.</p>\n </div>\n } @else {\n <!-- Header Summary -->\n <div class=\"summary-header\">\n <div class=\"mode-badge\">\n <i class=\"fas\" [ngClass]=\"modeIcon\"></i>\n <span>{{ modeLabel }}</span>\n </div>\n <div class=\"stats\">\n @if (entities.length > 0) {\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ entities.length }}</span>\n <span class=\"stat-label\">{{ entities.length === 1 ? 'Entity' : 'Entities' }}</span>\n </div>\n }\n @if (queries.length > 0) {\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ queries.length }}</span>\n <span class=\"stat-label\">{{ queries.length === 1 ? 'Query' : 'Queries' }}</span>\n </div>\n }\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ totalFieldCount }}</span>\n <span class=\"stat-label\">{{ totalFieldCount === 1 ? 'Field' : 'Fields' }}</span>\n </div>\n </div>\n </div>\n\n <!-- Description / Overview (supports markdown including mermaid diagrams) -->\n @if (description) {\n <div class=\"description-section\">\n <h4 class=\"description-title\">\n <i class=\"fas fa-info-circle\"></i>\n Overview\n </h4>\n <div class=\"description-content\">\n <mj-markdown [data]=\"description\"\n [enableCollapsibleHeadings]=\"false\"\n [enableLineNumbers]=\"false\"\n [enableSmartypants]=\"true\"\n [enableHtml]=\"true\"></mj-markdown>\n </div>\n </div>\n }\n\n <!-- Entities Section -->\n @if (entities.length > 0) {\n <div class=\"section entities-section\">\n <h3 class=\"section-title\">\n <i class=\"fas fa-table\"></i>\n Entities\n </h3>\n <div class=\"cards-container\">\n @for (entity of entities; track entity.name) {\n <div class=\"data-card entity-card\" [class.expanded]=\"isEntityExpanded(entity.name)\">\n <div class=\"card-header\" (click)=\"toggleEntity(entity.name)\">\n <div class=\"card-title-row\">\n <div class=\"card-icon\">\n <i class=\"fas fa-table\"></i>\n </div>\n <div class=\"card-title-info\">\n <h4 class=\"card-title\">{{ entity.name }}</h4>\n @if (entity.description) {\n <p class=\"card-description\">{{ entity.description }}</p>\n }\n </div>\n <div class=\"expand-icon\">\n <i class=\"fas\" [ngClass]=\"isEntityExpanded(entity.name) ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </div>\n </div>\n <div class=\"card-meta\">\n <div class=\"permissions-row\">\n @for (perm of entity.permissionLevelNeeded; track perm) {\n <span class=\"permission-badge\" [style.background-color]=\"getPermissionColor(perm)\">\n <i class=\"fas\" [ngClass]=\"getPermissionIcon(perm)\"></i>\n {{ perm }}\n </span>\n }\n </div>\n <span class=\"field-count\">{{ entity.fieldMetadata.length || 0 }} fields</span>\n </div>\n </div>\n\n @if (isEntityExpanded(entity.name)) {\n <div class=\"card-body\">\n @if (entity.usageContext) {\n <div class=\"usage-context\">\n <i class=\"fas fa-info-circle\"></i>\n <span>{{ entity.usageContext }}</span>\n </div>\n }\n\n <!-- Fields Table -->\n @if (entity.fieldMetadata && entity.fieldMetadata.length > 0) {\n <div class=\"fields-section\">\n <h5 class=\"fields-title\">Fields</h5>\n <div class=\"fields-table\">\n <div class=\"fields-header\">\n <span class=\"field-col name-col\">Name</span>\n <span class=\"field-col type-col\">Type</span>\n <span class=\"field-col tags-col\">Usage</span>\n <span class=\"field-col desc-col\">Description</span>\n </div>\n @for (field of entity.fieldMetadata; track field.name) {\n <div class=\"field-row\">\n <span class=\"field-col name-col\">\n <i class=\"fas\" [ngClass]=\"getFieldTypeIcon(field.type)\" [style.color]=\"getFieldTypeColor(field.type)\"></i>\n <span class=\"field-name\">{{ field.name }}</span>\n @if (!field.allowsNull) {\n <span class=\"required-indicator\" title=\"Required\">*</span>\n }\n </span>\n <span class=\"field-col type-col\">\n <code class=\"field-type\">{{ formatFieldType(field.type) }}</code>\n </span>\n <span class=\"field-col tags-col\">\n @for (tag of getFieldUsageTags(field, entity); track tag) {\n <span class=\"usage-tag\" [style.background-color]=\"getTagColor(tag)\">{{ tag }}</span>\n }\n </span>\n <span class=\"field-col desc-col\">\n {{ field.description || '\u2014' }}\n </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Queries Section -->\n @if (queries.length > 0) {\n <div class=\"section queries-section\">\n <h3 class=\"section-title\">\n <i class=\"fas fa-database\"></i>\n Queries\n </h3>\n <div class=\"cards-container\">\n @for (query of queries; track getQueryKey(query)) {\n <div class=\"data-card query-card\" [class.expanded]=\"isQueryExpanded(getQueryKey(query))\">\n <div class=\"card-header\" (click)=\"toggleQuery(getQueryKey(query))\">\n <div class=\"card-title-row\">\n <div class=\"card-icon query-icon\">\n <i class=\"fas fa-code\"></i>\n </div>\n <div class=\"card-title-info\">\n <div class=\"title-with-badge\">\n <h4 class=\"card-title\">{{ query.name }}</h4>\n @if (query.isNew) {\n <span class=\"new-query-badge\" title=\"This query was newly created for this component\">\n <i class=\"fas fa-sparkles\"></i>\n NEW\n </span>\n }\n </div>\n <p class=\"card-path\">{{ query.categoryPath }}</p>\n @if (query.description) {\n <p class=\"card-description\">{{ query.description }}</p>\n }\n </div>\n <div class=\"expand-icon\">\n <i class=\"fas\" [ngClass]=\"isQueryExpanded(getQueryKey(query)) ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </div>\n </div>\n <div class=\"card-meta\">\n @if (query.entityNames && query.entityNames.length > 0) {\n <div class=\"entity-badges\">\n @for (entityName of query.entityNames; track entityName) {\n <span class=\"entity-badge\">\n <i class=\"fas fa-table\"></i>\n {{ entityName }}\n </span>\n }\n </div>\n }\n <span class=\"field-count\">{{ query.fields.length || 0 }} fields</span>\n </div>\n </div>\n\n @if (isQueryExpanded(getQueryKey(query))) {\n <div class=\"card-body\">\n <!-- Parameters -->\n @if (query.parameters && query.parameters.length > 0) {\n <div class=\"parameters-section\">\n <h5 class=\"parameters-title\">\n <i class=\"fas fa-sliders-h\"></i>\n Parameters\n </h5>\n <div class=\"parameters-list\">\n @for (param of query.parameters; track param.name) {\n <div class=\"parameter-item\">\n <div class=\"param-header\">\n <span class=\"param-name\">{{ param.name }}</span>\n @if (param.isRequired) {\n <span class=\"required-badge\">Required</span>\n } @else {\n <span class=\"optional-badge\">Optional</span>\n }\n @if (param.type) {\n <code class=\"param-type\">{{ param.type }}</code>\n }\n </div>\n @if (param.description) {\n <p class=\"param-description\">{{ param.description }}</p>\n }\n @if (param.sampleValue || param.testValue) {\n <div class=\"param-sample\">\n <span class=\"sample-label\">Sample:</span>\n <code>{{ param.sampleValue || param.testValue }}</code>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Fields Table -->\n @if (query.fields && query.fields.length > 0) {\n <div class=\"fields-section\">\n <h5 class=\"fields-title\">Output Fields</h5>\n <div class=\"fields-table\">\n <div class=\"fields-header\">\n <span class=\"field-col name-col\">Name</span>\n <span class=\"field-col type-col\">Type</span>\n <span class=\"field-col desc-col\">Description</span>\n </div>\n @for (field of query.fields; track field.name) {\n <div class=\"field-row\">\n <span class=\"field-col name-col\">\n <i class=\"fas\" [ngClass]=\"getFieldTypeIcon(field.type)\" [style.color]=\"getFieldTypeColor(field.type)\"></i>\n <span class=\"field-name\">{{ field.name }}</span>\n </span>\n <span class=\"field-col type-col\">\n <code class=\"field-type\">{{ formatFieldType(field.type) }}</code>\n </span>\n <span class=\"field-col desc-col\">\n {{ field.description || '\u2014' }}\n </span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- New Query SQL -->\n @if (query.newQuerySQL) {\n <div class=\"sql-section\">\n <h5 class=\"sql-title\">\n <i class=\"fas fa-terminal\"></i>\n Query SQL\n </h5>\n <pre class=\"sql-code\">{{ query.newQuerySQL }}</pre>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: [".data-requirements-viewer {\n padding: 0;\n height: 100%;\n overflow-y: auto;\n background: #fafbfc;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n color: #6c757d;\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n color: #dee2e6;\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: #495057;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n color: #6c757d;\n}\n\n/* Summary Header */\n.summary-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: linear-gradient(135deg, #033ba3 0%, #5cb6f6 100%);\n color: white;\n border-radius: 0;\n}\n\n.mode-badge {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 600;\n}\n\n.mode-badge i {\n font-size: 20px;\n opacity: 0.9;\n}\n\n.stats {\n display: flex;\n gap: 24px;\n}\n\n.stat-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n}\n\n.stat-value {\n font-size: 24px;\n font-weight: 700;\n line-height: 1;\n}\n\n.stat-label {\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n opacity: 0.85;\n}\n\n/* Description Section */\n.description-section {\n padding: 20px;\n background: white;\n border-bottom: 1px solid #e9ecef;\n}\n\n.description-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.description-title i {\n color: #5B4FE9;\n}\n\n.description-content {\n font-size: 14px;\n line-height: 1.6;\n color: #495057;\n}\n\n.description-content ::ng-deep p {\n margin: 0 0 12px 0;\n}\n\n.description-content ::ng-deep p:last-child {\n margin-bottom: 0;\n}\n\n.description-content ::ng-deep pre {\n background: #f8f9fa;\n padding: 12px;\n border-radius: 6px;\n overflow-x: auto;\n}\n\n.description-content ::ng-deep code {\n background: #f1f3f4;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 13px;\n}\n\n/* Section Styling */\n.section {\n padding: 20px;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 600;\n color: #343a40;\n}\n\n.section-title i {\n color: #5B4FE9;\n font-size: 18px;\n}\n\n/* Cards Container */\n.cards-container {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n/* Data Card */\n.data-card {\n background: white;\n border-radius: 8px;\n border: 1px solid #e9ecef;\n overflow: hidden;\n transition: box-shadow 0.2s ease, border-color 0.2s ease;\n}\n\n.data-card:hover {\n border-color: #dee2e6;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n}\n\n.data-card.expanded {\n border-color: #5B4FE9;\n box-shadow: 0 4px 12px rgba(91, 79, 233, 0.12);\n}\n\n/* Card Header */\n.card-header {\n padding: 16px;\n cursor: pointer;\n user-select: none;\n}\n\n.card-title-row {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n}\n\n.card-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%);\n color: #4CAF50;\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.card-icon.query-icon {\n background: linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 100%);\n color: #2196F3;\n}\n\n.card-title-info {\n flex: 1;\n min-width: 0;\n}\n\n.title-with-badge {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 4px;\n}\n\n.card-title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: #212529;\n}\n\n.new-query-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 700;\n background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);\n animation: subtle-pulse 2s ease-in-out infinite;\n}\n\n.new-query-badge i {\n font-size: 9px;\n}\n\n@keyframes subtle-pulse {\n 0%, 100% {\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2);\n }\n 50% {\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);\n }\n}\n\n.card-path {\n margin: 0 0 4px 0;\n font-size: 12px;\n color: #6c757d;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.card-description {\n margin: 0;\n font-size: 13px;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.expand-icon {\n color: #adb5bd;\n font-size: 12px;\n padding: 4px;\n}\n\n.data-card.expanded .expand-icon {\n color: #5B4FE9;\n}\n\n/* Card Meta */\n.card-meta {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid #f1f3f4;\n}\n\n.permissions-row {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.permission-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n color: white;\n text-transform: capitalize;\n}\n\n.permission-badge i {\n font-size: 10px;\n}\n\n.field-count {\n font-size: 12px;\n color: #6c757d;\n}\n\n.entity-badges {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.entity-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n background: #f1f3f4;\n color: #495057;\n}\n\n.entity-badge i {\n font-size: 10px;\n color: #6c757d;\n}\n\n/* Card Body */\n.card-body {\n padding: 0 16px 16px 16px;\n border-top: 1px solid #f1f3f4;\n}\n\n/* Usage Context */\n.usage-context {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 12px;\n margin-top: 12px;\n background: #FFF8E1;\n border-radius: 6px;\n font-size: 13px;\n color: #6d4c00;\n}\n\n.usage-context i {\n color: #FFA000;\n margin-top: 2px;\n}\n\n/* Fields Section */\n.fields-section {\n margin-top: 16px;\n}\n\n.fields-title {\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Fields Table */\n.fields-table {\n border: 1px solid #e9ecef;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.fields-header {\n display: flex;\n padding: 10px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e9ecef;\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.field-row {\n display: flex;\n padding: 10px 12px;\n border-bottom: 1px solid #f1f3f4;\n font-size: 13px;\n align-items: center;\n}\n\n.field-row:last-child {\n border-bottom: none;\n}\n\n.field-row:hover {\n background: #fafbfc;\n}\n\n.field-col {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.name-col {\n flex: 0 0 200px;\n min-width: 0;\n}\n\n.type-col {\n flex: 0 0 120px;\n}\n\n.tags-col {\n flex: 0 0 160px;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n.desc-col {\n flex: 1;\n color: #6c757d;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.field-name {\n font-weight: 500;\n color: #212529;\n}\n\n.required-indicator {\n color: #dc3545;\n font-weight: bold;\n}\n\n.field-type {\n padding: 2px 6px;\n background: #f1f3f4;\n border-radius: 4px;\n font-size: 11px;\n color: #495057;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.usage-tag {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n/* Parameters Section */\n.parameters-section {\n margin-top: 16px;\n}\n\n.parameters-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.parameters-title i {\n color: #5B4FE9;\n}\n\n.parameters-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.parameter-item {\n padding: 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border-left: 3px solid #5B4FE9;\n}\n\n.param-header {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.param-name {\n font-weight: 600;\n color: #212529;\n font-size: 14px;\n}\n\n.required-badge {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n background: #dc3545;\n color: white;\n text-transform: uppercase;\n}\n\n.optional-badge {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n background: #6c757d;\n color: white;\n text-transform: uppercase;\n}\n\n.param-type {\n padding: 2px 6px;\n background: #e9ecef;\n border-radius: 4px;\n font-size: 11px;\n color: #495057;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n}\n\n.param-description {\n margin: 8px 0 0 0;\n font-size: 13px;\n color: #495057;\n line-height: 1.4;\n}\n\n.param-sample {\n margin-top: 8px;\n font-size: 12px;\n}\n\n.sample-label {\n color: #6c757d;\n margin-right: 4px;\n}\n\n.param-sample code {\n padding: 2px 6px;\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 4px;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n color: #e83e8c;\n}\n\n/* SQL Section */\n.sql-section {\n margin-top: 16px;\n}\n\n.sql-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.sql-title i {\n color: #5B4FE9;\n}\n\n.sql-code {\n margin: 0;\n padding: 16px;\n background: #1e1e1e;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.5;\n color: #d4d4d4;\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .summary-header {\n flex-direction: column;\n gap: 16px;\n align-items: flex-start;\n }\n\n .stats {\n width: 100%;\n justify-content: space-around;\n }\n\n .name-col {\n flex: 0 0 140px;\n }\n\n .type-col {\n flex: 0 0 90px;\n }\n\n .tags-col {\n flex: 0 0 120px;\n }\n\n .card-meta {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n }\n}\n"] }]
|
|
681
689
|
}], null, { dataRequirements: [{
|
|
682
690
|
type: Input
|
|
683
691
|
}] }); })();
|
|
684
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataRequirementsViewerComponent, { className: "DataRequirementsViewerComponent", filePath: "src/lib/components/plugins/data-requirements-viewer/data-requirements-viewer.component.ts", lineNumber:
|
|
692
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataRequirementsViewerComponent, { className: "DataRequirementsViewerComponent", filePath: "src/lib/components/plugins/data-requirements-viewer/data-requirements-viewer.component.ts", lineNumber: 14 }); })();
|
|
685
693
|
//# sourceMappingURL=data-requirements-viewer.component.js.map
|