@memberjunction/ng-query-viewer 5.42.0 → 5.44.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/dist/lib/query-data-grid/query-data-grid.component.js +7 -13
- package/dist/lib/query-data-grid/query-data-grid.component.js.map +1 -1
- package/dist/lib/query-info-panel/query-info-panel.component.js +188 -236
- package/dist/lib/query-info-panel/query-info-panel.component.js.map +1 -1
- package/dist/lib/query-viewer.module.d.ts +2 -1
- package/dist/lib/query-viewer.module.d.ts.map +1 -1
- package/dist/lib/query-viewer.module.js +10 -3
- package/dist/lib/query-viewer.module.js.map +1 -1
- package/package.json +14 -12
- package/dist/__tests__/exports.test.d.ts +0 -2
- package/dist/__tests__/exports.test.d.ts.map +0 -1
- package/dist/__tests__/exports.test.js +0 -17
- package/dist/__tests__/exports.test.js.map +0 -1
- package/dist/__tests__/index.test.d.ts +0 -2
- package/dist/__tests__/index.test.d.ts.map +0 -1
- package/dist/__tests__/index.test.js +0 -7
- package/dist/__tests__/index.test.js.map +0 -1
|
@@ -8,6 +8,7 @@ import { UserInfoEngine } from '@memberjunction/core-entities';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@memberjunction/ng-markdown";
|
|
10
10
|
import * as i2 from "@memberjunction/ng-code-editor";
|
|
11
|
+
import * as i3 from "@memberjunction/ng-ui-components";
|
|
11
12
|
const _forTrack0 = ($index, $item) => $item.ID;
|
|
12
13
|
function QueryInfoPanelComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
13
14
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -26,101 +27,83 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_8_Template(rf, ctx) {
|
|
|
26
27
|
i0.ɵɵadvance();
|
|
27
28
|
i0.ɵɵtextInterpolate(ctx_r1.QueryInfo.Name);
|
|
28
29
|
} }
|
|
29
|
-
function
|
|
30
|
-
i0.ɵɵelementStart(0, "
|
|
30
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
+
i0.ɵɵelementStart(0, "span", 30);
|
|
32
|
+
i0.ɵɵtext(1, "Overview");
|
|
33
|
+
i0.ɵɵelementEnd();
|
|
34
|
+
} }
|
|
35
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "span", 21);
|
|
31
37
|
i0.ɵɵtext(2, "Description");
|
|
32
38
|
i0.ɵɵelementEnd();
|
|
33
|
-
i0.ɵɵelementStart(3, "span",
|
|
39
|
+
i0.ɵɵelementStart(3, "span", 31);
|
|
34
40
|
i0.ɵɵtext(4);
|
|
35
41
|
i0.ɵɵelementEnd()();
|
|
36
42
|
} if (rf & 2) {
|
|
37
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
43
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
38
44
|
i0.ɵɵadvance(4);
|
|
39
45
|
i0.ɵɵtextInterpolate(ctx_r1.QueryInfo.Description);
|
|
40
46
|
} }
|
|
41
|
-
function
|
|
42
|
-
i0.ɵɵelementStart(0, "div",
|
|
47
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "span", 21);
|
|
43
49
|
i0.ɵɵtext(2, "Category");
|
|
44
50
|
i0.ɵɵelementEnd();
|
|
45
|
-
i0.ɵɵelementStart(3, "span",
|
|
46
|
-
i0.ɵɵelement(4, "i",
|
|
51
|
+
i0.ɵɵelementStart(3, "span", 22);
|
|
52
|
+
i0.ɵɵelement(4, "i", 32);
|
|
47
53
|
i0.ɵɵtext(5);
|
|
48
54
|
i0.ɵɵelementEnd()();
|
|
49
55
|
} if (rf & 2) {
|
|
50
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
56
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
51
57
|
i0.ɵɵadvance(5);
|
|
52
58
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.QueryInfo.Category, " ");
|
|
53
59
|
} }
|
|
54
|
-
function
|
|
55
|
-
i0.ɵɵelementStart(0, "div",
|
|
60
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
61
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "span", 21);
|
|
56
62
|
i0.ɵɵtext(2, "Has SQL");
|
|
57
63
|
i0.ɵɵelementEnd();
|
|
58
|
-
i0.ɵɵelementStart(3, "span",
|
|
59
|
-
i0.ɵɵelement(4, "i",
|
|
64
|
+
i0.ɵɵelementStart(3, "span", 22);
|
|
65
|
+
i0.ɵɵelement(4, "i", 33);
|
|
60
66
|
i0.ɵɵtext(5, " Yes ");
|
|
61
67
|
i0.ɵɵelementEnd()();
|
|
62
68
|
} }
|
|
63
|
-
function
|
|
64
|
-
i0.ɵɵelementStart(0, "
|
|
65
|
-
i0.ɵɵtext(
|
|
66
|
-
i0.ɵɵelementEnd();
|
|
67
|
-
i0.ɵɵelementStart(4, "span", 27);
|
|
68
|
-
i0.ɵɵtext(5);
|
|
69
|
-
i0.ɵɵelementEnd()();
|
|
70
|
-
i0.ɵɵconditionalCreate(6, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_6_Conditional_6_Template, 5, 1, "div", 25);
|
|
71
|
-
i0.ɵɵconditionalCreate(7, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_6_Conditional_7_Template, 6, 1, "div", 25);
|
|
72
|
-
i0.ɵɵelementStart(8, "div", 25)(9, "span", 26);
|
|
73
|
-
i0.ɵɵtext(10, "Status");
|
|
74
|
-
i0.ɵɵelementEnd();
|
|
75
|
-
i0.ɵɵelementStart(11, "span", 27)(12, "span", 28);
|
|
76
|
-
i0.ɵɵtext(13);
|
|
77
|
-
i0.ɵɵelementEnd()()();
|
|
78
|
-
i0.ɵɵconditionalCreate(14, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_6_Conditional_14_Template, 6, 0, "div", 25);
|
|
69
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_17_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
+
i0.ɵɵelementStart(0, "span", 30);
|
|
71
|
+
i0.ɵɵtext(1, "Technical Description");
|
|
79
72
|
i0.ɵɵelementEnd();
|
|
80
|
-
} if (rf & 2) {
|
|
81
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
82
|
-
i0.ɵɵadvance(5);
|
|
83
|
-
i0.ɵɵtextInterpolate(ctx_r1.QueryInfo.Name);
|
|
84
|
-
i0.ɵɵadvance();
|
|
85
|
-
i0.ɵɵconditional(ctx_r1.QueryInfo.Description ? 6 : -1);
|
|
86
|
-
i0.ɵɵadvance();
|
|
87
|
-
i0.ɵɵconditional(ctx_r1.QueryInfo.Category ? 7 : -1);
|
|
88
|
-
i0.ɵɵadvance(5);
|
|
89
|
-
i0.ɵɵclassProp("approved", ctx_r1.QueryInfo.Status === "Approved");
|
|
90
|
-
i0.ɵɵadvance();
|
|
91
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.QueryInfo.Status, " ");
|
|
92
|
-
i0.ɵɵadvance();
|
|
93
|
-
i0.ɵɵconditional(ctx_r1.QueryInfo.OriginalSQL ? 14 : -1);
|
|
94
73
|
} }
|
|
95
|
-
function
|
|
96
|
-
i0.ɵɵelementStart(0, "div",
|
|
97
|
-
i0.ɵɵelement(1, "mj-markdown",
|
|
74
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_17_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
75
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
76
|
+
i0.ɵɵelement(1, "mj-markdown", 35);
|
|
98
77
|
i0.ɵɵelementEnd();
|
|
99
78
|
} if (rf & 2) {
|
|
100
79
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
101
80
|
i0.ɵɵadvance();
|
|
102
81
|
i0.ɵɵproperty("data", ctx_r1.QueryInfo.TechnicalDescription || "")("enableMermaid", true)("enableHighlight", true)("enableCollapsibleHeadings", false)("enableSmartypants", true);
|
|
103
82
|
} }
|
|
104
|
-
function
|
|
83
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
105
84
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
106
|
-
i0.ɵɵelementStart(0, "
|
|
107
|
-
i0.ɵɵlistener("
|
|
108
|
-
i0.ɵɵ
|
|
109
|
-
i0.ɵɵ
|
|
110
|
-
|
|
111
|
-
i0.ɵɵ
|
|
112
|
-
i0.ɵɵ
|
|
85
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 18);
|
|
86
|
+
i0.ɵɵlistener("ExpandedChange", function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_17_Template_mj_accordion_panel_ExpandedChange_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ToggleSection("technical")); });
|
|
87
|
+
i0.ɵɵtemplate(1, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_17_ng_template_1_Template, 2, 0, "ng-template", 19)(2, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_17_ng_template_2_Template, 2, 5, "ng-template", 29);
|
|
88
|
+
i0.ɵɵelementEnd();
|
|
89
|
+
} if (rf & 2) {
|
|
90
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
91
|
+
i0.ɵɵproperty("Expanded", ctx_r1.IsSectionExpanded("technical"));
|
|
92
|
+
} }
|
|
93
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_19_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵelementStart(0, "span", 30);
|
|
95
|
+
i0.ɵɵtext(1, "Fields");
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
i0.ɵɵelementStart(2, "span", 36);
|
|
98
|
+
i0.ɵɵtext(3);
|
|
113
99
|
i0.ɵɵelementEnd();
|
|
114
100
|
} if (rf & 2) {
|
|
115
101
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
116
|
-
i0.ɵɵclassProp("expanded", ctx_r1.IsSectionExpanded("technical"));
|
|
117
|
-
i0.ɵɵadvance(2);
|
|
118
|
-
i0.ɵɵclassProp("fa-chevron-down", ctx_r1.IsSectionExpanded("technical"))("fa-chevron-right", !ctx_r1.IsSectionExpanded("technical"));
|
|
119
102
|
i0.ɵɵadvance(3);
|
|
120
|
-
i0.ɵɵ
|
|
103
|
+
i0.ɵɵtextInterpolate1("(", ctx_r1.QueryInfo.QueryFields.length || 0, ")");
|
|
121
104
|
} }
|
|
122
|
-
function
|
|
123
|
-
i0.ɵɵelementStart(0, "span",
|
|
105
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_For_2_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
106
|
+
i0.ɵɵelementStart(0, "span", 42);
|
|
124
107
|
i0.ɵɵtext(1);
|
|
125
108
|
i0.ɵɵelementEnd();
|
|
126
109
|
} if (rf & 2) {
|
|
@@ -128,9 +111,9 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_15_Con
|
|
|
128
111
|
i0.ɵɵadvance();
|
|
129
112
|
i0.ɵɵtextInterpolate1(" ", field_r6.Description, " ");
|
|
130
113
|
} }
|
|
131
|
-
function
|
|
132
|
-
i0.ɵɵelementStart(0, "span",
|
|
133
|
-
i0.ɵɵelement(1, "i",
|
|
114
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_For_2_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
+
i0.ɵɵelementStart(0, "span", 43);
|
|
116
|
+
i0.ɵɵelement(1, "i", 44);
|
|
134
117
|
i0.ɵɵtext(2);
|
|
135
118
|
i0.ɵɵelementEnd();
|
|
136
119
|
} if (rf & 2) {
|
|
@@ -138,10 +121,10 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_15_Con
|
|
|
138
121
|
i0.ɵɵadvance(2);
|
|
139
122
|
i0.ɵɵtextInterpolate2(" ", field_r6.SourceEntity, ".", field_r6.SourceFieldName, " ");
|
|
140
123
|
} }
|
|
141
|
-
function
|
|
142
|
-
i0.ɵɵelementStart(0, "div",
|
|
143
|
-
i0.ɵɵconditionalCreate(1,
|
|
144
|
-
i0.ɵɵconditionalCreate(2,
|
|
124
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
+
i0.ɵɵelementStart(0, "div", 41);
|
|
126
|
+
i0.ɵɵconditionalCreate(1, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_For_2_Conditional_6_Conditional_1_Template, 2, 1, "span", 42);
|
|
127
|
+
i0.ɵɵconditionalCreate(2, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_For_2_Conditional_6_Conditional_2_Template, 3, 2, "span", 43);
|
|
145
128
|
i0.ɵɵelementEnd();
|
|
146
129
|
} if (rf & 2) {
|
|
147
130
|
const field_r6 = i0.ɵɵnextContext().$implicit;
|
|
@@ -150,18 +133,18 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_15_Con
|
|
|
150
133
|
i0.ɵɵadvance();
|
|
151
134
|
i0.ɵɵconditional(field_r6.SourceEntity ? 2 : -1);
|
|
152
135
|
} }
|
|
153
|
-
function
|
|
154
|
-
i0.ɵɵelementStart(0, "div",
|
|
136
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
137
|
+
i0.ɵɵelementStart(0, "div", 37)(1, "div", 38)(2, "span", 39);
|
|
155
138
|
i0.ɵɵtext(3);
|
|
156
139
|
i0.ɵɵelementEnd();
|
|
157
|
-
i0.ɵɵelementStart(4, "span",
|
|
140
|
+
i0.ɵɵelementStart(4, "span", 40);
|
|
158
141
|
i0.ɵɵtext(5);
|
|
159
142
|
i0.ɵɵelementEnd()();
|
|
160
|
-
i0.ɵɵconditionalCreate(6,
|
|
143
|
+
i0.ɵɵconditionalCreate(6, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_For_2_Conditional_6_Template, 3, 2, "div", 41);
|
|
161
144
|
i0.ɵɵelementEnd();
|
|
162
145
|
} if (rf & 2) {
|
|
163
146
|
const field_r6 = ctx.$implicit;
|
|
164
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
147
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
165
148
|
i0.ɵɵadvance(3);
|
|
166
149
|
i0.ɵɵtextInterpolate(field_r6.Name);
|
|
167
150
|
i0.ɵɵadvance(2);
|
|
@@ -169,38 +152,37 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_15_Con
|
|
|
169
152
|
i0.ɵɵadvance();
|
|
170
153
|
i0.ɵɵconditional(field_r6.Description || field_r6.SourceEntity ? 6 : -1);
|
|
171
154
|
} }
|
|
172
|
-
function
|
|
173
|
-
i0.ɵɵelementStart(0, "div",
|
|
174
|
-
i0.ɵɵrepeaterCreate(1,
|
|
155
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
156
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
157
|
+
i0.ɵɵrepeaterCreate(1, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_For_2_Template, 7, 3, "div", 37, i0.ɵɵcomponentInstance().TrackByField, true);
|
|
175
158
|
i0.ɵɵelementEnd();
|
|
176
159
|
} if (rf & 2) {
|
|
177
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
160
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
178
161
|
i0.ɵɵadvance();
|
|
179
162
|
i0.ɵɵrepeater(ctx_r1.QueryInfo.QueryFields);
|
|
180
163
|
} }
|
|
181
|
-
function
|
|
182
|
-
i0.ɵɵ
|
|
183
|
-
i0.ɵɵelement(1, "i", 44);
|
|
184
|
-
i0.ɵɵelementStart(2, "span");
|
|
185
|
-
i0.ɵɵtext(3, "No fields defined");
|
|
186
|
-
i0.ɵɵelementEnd()();
|
|
164
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
165
|
+
i0.ɵɵelement(0, "mj-empty-state", 26);
|
|
187
166
|
} }
|
|
188
|
-
function
|
|
189
|
-
i0.ɵɵelementStart(0, "
|
|
190
|
-
i0.ɵɵ
|
|
167
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_23_Template(rf, ctx) { if (rf & 1) {
|
|
168
|
+
i0.ɵɵelementStart(0, "span", 30);
|
|
169
|
+
i0.ɵɵtext(1, "Parameters");
|
|
170
|
+
i0.ɵɵelementEnd();
|
|
171
|
+
i0.ɵɵelementStart(2, "span", 36);
|
|
172
|
+
i0.ɵɵtext(3);
|
|
191
173
|
i0.ɵɵelementEnd();
|
|
192
174
|
} if (rf & 2) {
|
|
193
175
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
194
|
-
i0.ɵɵadvance();
|
|
195
|
-
i0.ɵɵ
|
|
176
|
+
i0.ɵɵadvance(3);
|
|
177
|
+
i0.ɵɵtextInterpolate1("(", ctx_r1.QueryInfo.QueryParameters.length || 0, ")");
|
|
196
178
|
} }
|
|
197
|
-
function
|
|
198
|
-
i0.ɵɵelementStart(0, "span",
|
|
179
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
180
|
+
i0.ɵɵelementStart(0, "span", 48);
|
|
199
181
|
i0.ɵɵtext(1, "Required");
|
|
200
182
|
i0.ɵɵelementEnd();
|
|
201
183
|
} }
|
|
202
|
-
function
|
|
203
|
-
i0.ɵɵelementStart(0, "span",
|
|
184
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Conditional_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
185
|
+
i0.ɵɵelementStart(0, "span", 51);
|
|
204
186
|
i0.ɵɵtext(1);
|
|
205
187
|
i0.ɵɵelementEnd();
|
|
206
188
|
} if (rf & 2) {
|
|
@@ -208,8 +190,8 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_23_Con
|
|
|
208
190
|
i0.ɵɵadvance();
|
|
209
191
|
i0.ɵɵtextInterpolate1(" ", param_r7.Description, " ");
|
|
210
192
|
} }
|
|
211
|
-
function
|
|
212
|
-
i0.ɵɵelementStart(0, "span",
|
|
193
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
194
|
+
i0.ɵɵelementStart(0, "span", 52);
|
|
213
195
|
i0.ɵɵtext(1);
|
|
214
196
|
i0.ɵɵelementEnd();
|
|
215
197
|
} if (rf & 2) {
|
|
@@ -217,10 +199,10 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_23_Con
|
|
|
217
199
|
i0.ɵɵadvance();
|
|
218
200
|
i0.ɵɵtextInterpolate1(" Default: ", param_r7.DefaultValue, " ");
|
|
219
201
|
} }
|
|
220
|
-
function
|
|
221
|
-
i0.ɵɵelementStart(0, "div",
|
|
222
|
-
i0.ɵɵconditionalCreate(1,
|
|
223
|
-
i0.ɵɵconditionalCreate(2,
|
|
202
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
203
|
+
i0.ɵɵelementStart(0, "div", 50);
|
|
204
|
+
i0.ɵɵconditionalCreate(1, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Conditional_7_Conditional_1_Template, 2, 1, "span", 51);
|
|
205
|
+
i0.ɵɵconditionalCreate(2, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Conditional_7_Conditional_2_Template, 2, 1, "span", 52);
|
|
224
206
|
i0.ɵɵelementEnd();
|
|
225
207
|
} if (rf & 2) {
|
|
226
208
|
const param_r7 = i0.ɵɵnextContext().$implicit;
|
|
@@ -229,19 +211,19 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_23_Con
|
|
|
229
211
|
i0.ɵɵadvance();
|
|
230
212
|
i0.ɵɵconditional(param_r7.DefaultValue ? 2 : -1);
|
|
231
213
|
} }
|
|
232
|
-
function
|
|
233
|
-
i0.ɵɵelementStart(0, "div",
|
|
214
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
215
|
+
i0.ɵɵelementStart(0, "div", 45)(1, "div", 46)(2, "span", 47);
|
|
234
216
|
i0.ɵɵtext(3);
|
|
235
|
-
i0.ɵɵconditionalCreate(4,
|
|
217
|
+
i0.ɵɵconditionalCreate(4, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Conditional_4_Template, 2, 0, "span", 48);
|
|
236
218
|
i0.ɵɵelementEnd();
|
|
237
|
-
i0.ɵɵelementStart(5, "span",
|
|
219
|
+
i0.ɵɵelementStart(5, "span", 49);
|
|
238
220
|
i0.ɵɵtext(6);
|
|
239
221
|
i0.ɵɵelementEnd()();
|
|
240
|
-
i0.ɵɵconditionalCreate(7,
|
|
222
|
+
i0.ɵɵconditionalCreate(7, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Conditional_7_Template, 3, 2, "div", 50);
|
|
241
223
|
i0.ɵɵelementEnd();
|
|
242
224
|
} if (rf & 2) {
|
|
243
225
|
const param_r7 = ctx.$implicit;
|
|
244
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
226
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
245
227
|
i0.ɵɵadvance(3);
|
|
246
228
|
i0.ɵɵtextInterpolate1(" ", param_r7.Name, " ");
|
|
247
229
|
i0.ɵɵadvance();
|
|
@@ -251,59 +233,56 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_23_Con
|
|
|
251
233
|
i0.ɵɵadvance();
|
|
252
234
|
i0.ɵɵconditional(param_r7.Description || param_r7.DefaultValue ? 7 : -1);
|
|
253
235
|
} }
|
|
254
|
-
function
|
|
255
|
-
i0.ɵɵelementStart(0, "div",
|
|
256
|
-
i0.ɵɵrepeaterCreate(1,
|
|
236
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
237
|
+
i0.ɵɵelementStart(0, "div", 27);
|
|
238
|
+
i0.ɵɵrepeaterCreate(1, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_For_2_Template, 8, 4, "div", 45, i0.ɵɵcomponentInstance().TrackByParam, true);
|
|
257
239
|
i0.ɵɵelementEnd();
|
|
258
240
|
} if (rf & 2) {
|
|
259
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
241
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
260
242
|
i0.ɵɵadvance();
|
|
261
243
|
i0.ɵɵrepeater(ctx_r1.QueryInfo.QueryParameters);
|
|
262
244
|
} }
|
|
263
|
-
function
|
|
264
|
-
i0.ɵɵ
|
|
265
|
-
i0.ɵɵelement(1, "i", 54);
|
|
266
|
-
i0.ɵɵelementStart(2, "span");
|
|
267
|
-
i0.ɵɵtext(3, "No parameters required");
|
|
268
|
-
i0.ɵɵelementEnd()();
|
|
245
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
246
|
+
i0.ɵɵelement(0, "mj-empty-state", 28);
|
|
269
247
|
} }
|
|
270
|
-
function
|
|
271
|
-
i0.ɵɵelementStart(0, "
|
|
272
|
-
i0.ɵɵ
|
|
248
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_27_Template(rf, ctx) { if (rf & 1) {
|
|
249
|
+
i0.ɵɵelementStart(0, "span", 30);
|
|
250
|
+
i0.ɵɵtext(1, "SQL Query");
|
|
273
251
|
i0.ɵɵelementEnd();
|
|
274
|
-
} if (rf & 2) {
|
|
275
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
276
|
-
i0.ɵɵadvance();
|
|
277
|
-
i0.ɵɵconditional(ctx_r1.QueryInfo.QueryParameters.length ? 1 : 2);
|
|
278
252
|
} }
|
|
279
|
-
function
|
|
253
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_28_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
280
254
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
281
|
-
i0.ɵɵelementStart(0, "div",
|
|
282
|
-
i0.ɵɵlistener("CompositionTokenClick", function
|
|
255
|
+
i0.ɵɵelementStart(0, "div", 53)(1, "mj-code-editor", 55);
|
|
256
|
+
i0.ɵɵlistener("CompositionTokenClick", function QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_28_Conditional_0_Template_mj_code_editor_CompositionTokenClick_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnCompositionTokenClick($event)); });
|
|
283
257
|
i0.ɵɵelementEnd()();
|
|
284
258
|
} if (rf & 2) {
|
|
285
259
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
286
260
|
i0.ɵɵadvance();
|
|
287
261
|
i0.ɵɵproperty("value", ctx_r1.QueryInfo.SQL)("readonly", true)("language", "sql");
|
|
288
262
|
} }
|
|
289
|
-
function
|
|
290
|
-
i0.ɵɵ
|
|
291
|
-
i0.ɵɵelement(1, "i", 57);
|
|
292
|
-
i0.ɵɵelementStart(2, "span");
|
|
293
|
-
i0.ɵɵtext(3, "SQL not available");
|
|
294
|
-
i0.ɵɵelementEnd()();
|
|
263
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_28_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
264
|
+
i0.ɵɵelement(0, "mj-empty-state", 54);
|
|
295
265
|
} }
|
|
296
|
-
function
|
|
297
|
-
i0.ɵɵ
|
|
298
|
-
i0.ɵɵconditionalCreate(1, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_Conditional_1_Template, 2, 3, "div", 55)(2, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_Conditional_2_Template, 4, 0, "div", 35);
|
|
299
|
-
i0.ɵɵelementEnd();
|
|
266
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_28_Template(rf, ctx) { if (rf & 1) {
|
|
267
|
+
i0.ɵɵconditionalCreate(0, QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_28_Conditional_0_Template, 2, 3, "div", 53)(1, QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_28_Conditional_1_Template, 1, 0, "mj-empty-state", 54);
|
|
300
268
|
} if (rf & 2) {
|
|
301
269
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
302
|
-
i0.ɵɵ
|
|
303
|
-
|
|
270
|
+
i0.ɵɵconditional(ctx_r1.QueryInfo.SQL ? 0 : 1);
|
|
271
|
+
} }
|
|
272
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
273
|
+
i0.ɵɵelementStart(0, "span", 30);
|
|
274
|
+
i0.ɵɵtext(1, "Dependent Queries");
|
|
275
|
+
i0.ɵɵelementEnd();
|
|
276
|
+
i0.ɵɵelementStart(2, "span", 36);
|
|
277
|
+
i0.ɵɵtext(3);
|
|
278
|
+
i0.ɵɵelementEnd();
|
|
279
|
+
} if (rf & 2) {
|
|
280
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
281
|
+
i0.ɵɵadvance(3);
|
|
282
|
+
i0.ɵɵtextInterpolate1("(", ctx_r1.QueryInfo.QueryDependents.length, ")");
|
|
304
283
|
} }
|
|
305
|
-
function
|
|
306
|
-
i0.ɵɵelementStart(0, "span",
|
|
284
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_For_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
285
|
+
i0.ɵɵelementStart(0, "span", 64);
|
|
307
286
|
i0.ɵɵtext(1);
|
|
308
287
|
i0.ɵɵelementEnd();
|
|
309
288
|
} if (rf & 2) {
|
|
@@ -311,16 +290,16 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_30_Con
|
|
|
311
290
|
i0.ɵɵadvance();
|
|
312
291
|
i0.ɵɵtextInterpolate1(" via ", dep_r11.ReferencePath, " ");
|
|
313
292
|
} }
|
|
314
|
-
function
|
|
293
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
315
294
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
316
|
-
i0.ɵɵelementStart(0, "div",
|
|
317
|
-
i0.ɵɵlistener("click", function
|
|
318
|
-
i0.ɵɵelementStart(1, "div",
|
|
319
|
-
i0.ɵɵelement(2, "i",
|
|
320
|
-
i0.ɵɵelementStart(3, "span",
|
|
295
|
+
i0.ɵɵelementStart(0, "div", 60);
|
|
296
|
+
i0.ɵɵlistener("click", function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_For_4_Template_div_click_0_listener() { const dep_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnDependentQueryClick(dep_r11)); });
|
|
297
|
+
i0.ɵɵelementStart(1, "div", 61);
|
|
298
|
+
i0.ɵɵelement(2, "i", 62);
|
|
299
|
+
i0.ɵɵelementStart(3, "span", 63);
|
|
321
300
|
i0.ɵɵtext(4);
|
|
322
301
|
i0.ɵɵelementEnd()();
|
|
323
|
-
i0.ɵɵconditionalCreate(5,
|
|
302
|
+
i0.ɵɵconditionalCreate(5, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_For_4_Conditional_5_Template, 2, 1, "span", 64);
|
|
324
303
|
i0.ɵɵelementEnd();
|
|
325
304
|
} if (rf & 2) {
|
|
326
305
|
const dep_r11 = ctx.$implicit;
|
|
@@ -329,119 +308,92 @@ function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_30_Con
|
|
|
329
308
|
i0.ɵɵadvance();
|
|
330
309
|
i0.ɵɵconditional(dep_r11.ReferencePath ? 5 : -1);
|
|
331
310
|
} }
|
|
332
|
-
function
|
|
333
|
-
i0.ɵɵelementStart(0, "div", 22)(1, "div", 58);
|
|
334
|
-
i0.ɵɵrepeaterCreate(2, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_30_Conditional_7_For_3_Template, 6, 2, "div", 59, _forTrack0);
|
|
335
|
-
i0.ɵɵelementEnd();
|
|
336
|
-
i0.ɵɵelementStart(4, "div", 60);
|
|
337
|
-
i0.ɵɵelement(5, "i", 61);
|
|
338
|
-
i0.ɵɵtext(6, " These queries reference this query via composition ");
|
|
339
|
-
i0.ɵɵelementEnd()();
|
|
340
|
-
} if (rf & 2) {
|
|
341
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
342
|
-
i0.ɵɵadvance(2);
|
|
343
|
-
i0.ɵɵrepeater(ctx_r1.QueryInfo.QueryDependents);
|
|
344
|
-
} }
|
|
345
|
-
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
311
|
+
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_Template(rf, ctx) { if (rf & 1) {
|
|
346
312
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
347
|
-
i0.ɵɵelementStart(0, "
|
|
348
|
-
i0.ɵɵlistener("
|
|
349
|
-
i0.ɵɵ
|
|
350
|
-
i0.ɵɵelementStart(
|
|
351
|
-
i0.ɵɵ
|
|
352
|
-
i0.ɵɵelementEnd();
|
|
353
|
-
i0.ɵɵelementStart(5, "
|
|
354
|
-
i0.ɵɵ
|
|
313
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 18);
|
|
314
|
+
i0.ɵɵlistener("ExpandedChange", function QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_Template_mj_accordion_panel_ExpandedChange_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ToggleSection("dependents")); });
|
|
315
|
+
i0.ɵɵtemplate(1, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_ng_template_1_Template, 4, 1, "ng-template", 19);
|
|
316
|
+
i0.ɵɵelementStart(2, "div", 56);
|
|
317
|
+
i0.ɵɵrepeaterCreate(3, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_For_4_Template, 6, 2, "div", 57, _forTrack0);
|
|
318
|
+
i0.ɵɵelementEnd();
|
|
319
|
+
i0.ɵɵelementStart(5, "div", 58);
|
|
320
|
+
i0.ɵɵelement(6, "i", 59);
|
|
321
|
+
i0.ɵɵtext(7, " These queries reference this query via composition ");
|
|
355
322
|
i0.ɵɵelementEnd()();
|
|
356
|
-
i0.ɵɵconditionalCreate(7, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_30_Conditional_7_Template, 7, 0, "div", 22);
|
|
357
|
-
i0.ɵɵelementEnd();
|
|
358
323
|
} if (rf & 2) {
|
|
359
324
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
360
|
-
i0.ɵɵ
|
|
361
|
-
i0.ɵɵadvance(
|
|
362
|
-
i0.ɵɵ
|
|
363
|
-
i0.ɵɵadvance(4);
|
|
364
|
-
i0.ɵɵtextInterpolate1("(", ctx_r1.QueryInfo.QueryDependents.length, ")");
|
|
365
|
-
i0.ɵɵadvance();
|
|
366
|
-
i0.ɵɵconditional(ctx_r1.IsSectionExpanded("dependents") ? 7 : -1);
|
|
325
|
+
i0.ɵɵproperty("Expanded", ctx_r1.IsSectionExpanded("dependents"));
|
|
326
|
+
i0.ɵɵadvance(3);
|
|
327
|
+
i0.ɵɵrepeater(ctx_r1.QueryInfo.QueryDependents);
|
|
367
328
|
} }
|
|
368
329
|
function QueryInfoPanelComponent_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
369
330
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
370
|
-
i0.ɵɵelementStart(0, "div", 13)(1, "
|
|
371
|
-
i0.ɵɵlistener("
|
|
372
|
-
i0.ɵɵ
|
|
373
|
-
i0.ɵɵelementStart(4, "span", 21);
|
|
374
|
-
i0.ɵɵtext(5, "
|
|
331
|
+
i0.ɵɵelementStart(0, "div", 13)(1, "mj-accordion-panel", 18);
|
|
332
|
+
i0.ɵɵlistener("ExpandedChange", function QueryInfoPanelComponent_Conditional_1_Conditional_11_Template_mj_accordion_panel_ExpandedChange_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleSection("overview")); });
|
|
333
|
+
i0.ɵɵtemplate(2, QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_2_Template, 2, 0, "ng-template", 19);
|
|
334
|
+
i0.ɵɵelementStart(3, "div", 20)(4, "span", 21);
|
|
335
|
+
i0.ɵɵtext(5, "Name");
|
|
336
|
+
i0.ɵɵelementEnd();
|
|
337
|
+
i0.ɵɵelementStart(6, "span", 22);
|
|
338
|
+
i0.ɵɵtext(7);
|
|
375
339
|
i0.ɵɵelementEnd()();
|
|
376
|
-
i0.ɵɵconditionalCreate(
|
|
377
|
-
i0.ɵɵ
|
|
378
|
-
i0.ɵɵ
|
|
379
|
-
i0.ɵɵ
|
|
380
|
-
i0.ɵɵlistener("click", function QueryInfoPanelComponent_Conditional_1_Conditional_11_Template_div_click_9_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleSection("fields")); });
|
|
381
|
-
i0.ɵɵelement(10, "i", 20);
|
|
382
|
-
i0.ɵɵelementStart(11, "span", 21);
|
|
383
|
-
i0.ɵɵtext(12, "Fields");
|
|
340
|
+
i0.ɵɵconditionalCreate(8, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_8_Template, 5, 1, "div", 20);
|
|
341
|
+
i0.ɵɵconditionalCreate(9, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_9_Template, 6, 1, "div", 20);
|
|
342
|
+
i0.ɵɵelementStart(10, "div", 20)(11, "span", 21);
|
|
343
|
+
i0.ɵɵtext(12, "Status");
|
|
384
344
|
i0.ɵɵelementEnd();
|
|
385
|
-
i0.ɵɵelementStart(13, "span",
|
|
386
|
-
i0.ɵɵtext(
|
|
387
|
-
i0.ɵɵelementEnd()();
|
|
388
|
-
i0.ɵɵconditionalCreate(
|
|
345
|
+
i0.ɵɵelementStart(13, "span", 22)(14, "span", 23);
|
|
346
|
+
i0.ɵɵtext(15);
|
|
347
|
+
i0.ɵɵelementEnd()()();
|
|
348
|
+
i0.ɵɵconditionalCreate(16, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_16_Template, 6, 0, "div", 20);
|
|
389
349
|
i0.ɵɵelementEnd();
|
|
390
|
-
i0.ɵɵ
|
|
391
|
-
i0.ɵɵ
|
|
392
|
-
i0.ɵɵ
|
|
393
|
-
i0.ɵɵ
|
|
394
|
-
i0.ɵɵ
|
|
350
|
+
i0.ɵɵconditionalCreate(17, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_17_Template, 3, 1, "mj-accordion-panel", 24);
|
|
351
|
+
i0.ɵɵelementStart(18, "mj-accordion-panel", 18);
|
|
352
|
+
i0.ɵɵlistener("ExpandedChange", function QueryInfoPanelComponent_Conditional_1_Conditional_11_Template_mj_accordion_panel_ExpandedChange_18_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleSection("fields")); });
|
|
353
|
+
i0.ɵɵtemplate(19, QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_19_Template, 4, 1, "ng-template", 19);
|
|
354
|
+
i0.ɵɵconditionalCreate(20, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_20_Template, 3, 0, "div", 25)(21, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_21_Template, 1, 0, "mj-empty-state", 26);
|
|
395
355
|
i0.ɵɵelementEnd();
|
|
396
|
-
i0.ɵɵelementStart(
|
|
397
|
-
i0.ɵɵ
|
|
398
|
-
i0.ɵɵ
|
|
399
|
-
i0.ɵɵconditionalCreate(
|
|
356
|
+
i0.ɵɵelementStart(22, "mj-accordion-panel", 18);
|
|
357
|
+
i0.ɵɵlistener("ExpandedChange", function QueryInfoPanelComponent_Conditional_1_Conditional_11_Template_mj_accordion_panel_ExpandedChange_22_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleSection("parameters")); });
|
|
358
|
+
i0.ɵɵtemplate(23, QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_23_Template, 4, 1, "ng-template", 19);
|
|
359
|
+
i0.ɵɵconditionalCreate(24, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_24_Template, 3, 0, "div", 27)(25, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_25_Template, 1, 0, "mj-empty-state", 28);
|
|
400
360
|
i0.ɵɵelementEnd();
|
|
401
|
-
i0.ɵɵelementStart(
|
|
402
|
-
i0.ɵɵlistener("
|
|
403
|
-
i0.ɵɵ
|
|
404
|
-
i0.ɵɵelementStart(27, "span", 21);
|
|
405
|
-
i0.ɵɵtext(28, "SQL Query");
|
|
406
|
-
i0.ɵɵelementEnd()();
|
|
407
|
-
i0.ɵɵconditionalCreate(29, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_Template, 3, 1, "div", 22);
|
|
361
|
+
i0.ɵɵelementStart(26, "mj-accordion-panel", 18);
|
|
362
|
+
i0.ɵɵlistener("ExpandedChange", function QueryInfoPanelComponent_Conditional_1_Conditional_11_Template_mj_accordion_panel_ExpandedChange_26_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleSection("sql")); });
|
|
363
|
+
i0.ɵɵtemplate(27, QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_27_Template, 2, 0, "ng-template", 19)(28, QueryInfoPanelComponent_Conditional_1_Conditional_11_ng_template_28_Template, 2, 1, "ng-template", 29);
|
|
408
364
|
i0.ɵɵelementEnd();
|
|
409
|
-
i0.ɵɵconditionalCreate(
|
|
365
|
+
i0.ɵɵconditionalCreate(29, QueryInfoPanelComponent_Conditional_1_Conditional_11_Conditional_29_Template, 8, 1, "mj-accordion-panel", 24);
|
|
410
366
|
i0.ɵɵelementEnd();
|
|
411
367
|
} if (rf & 2) {
|
|
412
368
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
413
369
|
i0.ɵɵadvance();
|
|
414
|
-
i0.ɵɵ
|
|
415
|
-
i0.ɵɵadvance(
|
|
416
|
-
i0.ɵɵ
|
|
417
|
-
i0.ɵɵadvance(3);
|
|
418
|
-
i0.ɵɵconditional(ctx_r1.IsSectionExpanded("overview") ? 6 : -1);
|
|
370
|
+
i0.ɵɵproperty("Expanded", ctx_r1.IsSectionExpanded("overview"));
|
|
371
|
+
i0.ɵɵadvance(6);
|
|
372
|
+
i0.ɵɵtextInterpolate(ctx_r1.QueryInfo.Name);
|
|
419
373
|
i0.ɵɵadvance();
|
|
420
|
-
i0.ɵɵconditional(ctx_r1.QueryInfo.
|
|
374
|
+
i0.ɵɵconditional(ctx_r1.QueryInfo.Description ? 8 : -1);
|
|
421
375
|
i0.ɵɵadvance();
|
|
422
|
-
i0.ɵɵ
|
|
423
|
-
i0.ɵɵadvance(
|
|
424
|
-
i0.ɵɵclassProp("
|
|
425
|
-
i0.ɵɵadvance(4);
|
|
426
|
-
i0.ɵɵtextInterpolate1("(", ctx_r1.QueryInfo.QueryFields.length || 0, ")");
|
|
376
|
+
i0.ɵɵconditional(ctx_r1.QueryInfo.Category ? 9 : -1);
|
|
377
|
+
i0.ɵɵadvance(5);
|
|
378
|
+
i0.ɵɵclassProp("approved", ctx_r1.QueryInfo.Status === "Approved");
|
|
427
379
|
i0.ɵɵadvance();
|
|
428
|
-
i0.ɵɵ
|
|
380
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.QueryInfo.Status, " ");
|
|
429
381
|
i0.ɵɵadvance();
|
|
430
|
-
i0.ɵɵ
|
|
431
|
-
i0.ɵɵadvance(2);
|
|
432
|
-
i0.ɵɵclassProp("fa-chevron-down", ctx_r1.IsSectionExpanded("parameters"))("fa-chevron-right", !ctx_r1.IsSectionExpanded("parameters"));
|
|
433
|
-
i0.ɵɵadvance(4);
|
|
434
|
-
i0.ɵɵtextInterpolate1("(", ctx_r1.QueryInfo.QueryParameters.length || 0, ")");
|
|
382
|
+
i0.ɵɵconditional(ctx_r1.QueryInfo.OriginalSQL ? 16 : -1);
|
|
435
383
|
i0.ɵɵadvance();
|
|
436
|
-
i0.ɵɵconditional(ctx_r1.
|
|
384
|
+
i0.ɵɵconditional(ctx_r1.QueryInfo.TechnicalDescription ? 17 : -1);
|
|
437
385
|
i0.ɵɵadvance();
|
|
438
|
-
i0.ɵɵ
|
|
386
|
+
i0.ɵɵproperty("Expanded", ctx_r1.IsSectionExpanded("fields"));
|
|
387
|
+
i0.ɵɵadvance(2);
|
|
388
|
+
i0.ɵɵconditional(ctx_r1.QueryInfo.QueryFields.length ? 20 : 21);
|
|
439
389
|
i0.ɵɵadvance(2);
|
|
440
|
-
i0.ɵɵ
|
|
390
|
+
i0.ɵɵproperty("Expanded", ctx_r1.IsSectionExpanded("parameters"));
|
|
391
|
+
i0.ɵɵadvance(2);
|
|
392
|
+
i0.ɵɵconditional(ctx_r1.QueryInfo.QueryParameters.length ? 24 : 25);
|
|
393
|
+
i0.ɵɵadvance(2);
|
|
394
|
+
i0.ɵɵproperty("Expanded", ctx_r1.IsSectionExpanded("sql"));
|
|
441
395
|
i0.ɵɵadvance(3);
|
|
442
|
-
i0.ɵɵconditional(ctx_r1.
|
|
443
|
-
i0.ɵɵadvance();
|
|
444
|
-
i0.ɵɵconditional(ctx_r1.QueryInfo.QueryDependents.length > 0 ? 30 : -1);
|
|
396
|
+
i0.ɵɵconditional(ctx_r1.QueryInfo.QueryDependents.length > 0 ? 29 : -1);
|
|
445
397
|
} }
|
|
446
398
|
function QueryInfoPanelComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
447
399
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
@@ -459,7 +411,7 @@ function QueryInfoPanelComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
459
411
|
i0.ɵɵlistener("click", function QueryInfoPanelComponent_Conditional_1_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnClose()); });
|
|
460
412
|
i0.ɵɵelement(10, "i", 12);
|
|
461
413
|
i0.ɵɵelementEnd()();
|
|
462
|
-
i0.ɵɵconditionalCreate(11, QueryInfoPanelComponent_Conditional_1_Conditional_11_Template,
|
|
414
|
+
i0.ɵɵconditionalCreate(11, QueryInfoPanelComponent_Conditional_1_Conditional_11_Template, 30, 15, "div", 13);
|
|
463
415
|
i0.ɵɵelementStart(12, "div", 14)(13, "button", 15);
|
|
464
416
|
i0.ɵɵlistener("click", function QueryInfoPanelComponent_Conditional_1_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnOpenRecord()); });
|
|
465
417
|
i0.ɵɵelement(14, "i", 16);
|
|
@@ -628,14 +580,14 @@ export class QueryInfoPanelComponent {
|
|
|
628
580
|
static ɵfac = function QueryInfoPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryInfoPanelComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
629
581
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryInfoPanelComponent, selectors: [["mj-query-info-panel"]], hostBindings: function QueryInfoPanelComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
630
582
|
i0.ɵɵlistener("mousemove", function QueryInfoPanelComponent_mousemove_HostBindingHandler($event) { return ctx.OnMouseMove($event); }, i0.ɵɵresolveDocument)("mouseup", function QueryInfoPanelComponent_mouseup_HostBindingHandler() { return ctx.OnMouseUp(); }, i0.ɵɵresolveDocument);
|
|
631
|
-
} }, inputs: { QueryInfo: "QueryInfo", Visible: "Visible", ShowOverlay: "ShowOverlay" }, outputs: { Close: "Close", OpenRecord: "OpenRecord", CompositionTokenClick: "CompositionTokenClick" }, standalone: false, decls: 2, vars: 2, consts: [[1, "info-panel-overlay"], [1, "info-panel", 3, "width"], [1, "info-panel-overlay", 3, "click"], [1, "info-panel"], [1, "resize-handle", 3, "mousedown"], [1, "panel-header"], [1, "header-content"], [1, "fa-solid", "fa-circle-info", "header-icon"], [1, "header-text"], [1, "header-title"], [1, "header-subtitle"], ["title", "Close", 1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "panel-content"], [1, "panel-footer"], [1, "btn", "btn-primary", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "btn", "btn-secondary", 3, "click"], [1, "info-section"
|
|
583
|
+
} }, inputs: { QueryInfo: "QueryInfo", Visible: "Visible", ShowOverlay: "ShowOverlay" }, outputs: { Close: "Close", OpenRecord: "OpenRecord", CompositionTokenClick: "CompositionTokenClick" }, standalone: false, decls: 2, vars: 2, consts: [[1, "info-panel-overlay"], [1, "info-panel", 3, "width"], [1, "info-panel-overlay", 3, "click"], [1, "info-panel"], [1, "resize-handle", 3, "mousedown"], [1, "panel-header"], [1, "header-content"], [1, "fa-solid", "fa-circle-info", "header-icon"], [1, "header-text"], [1, "header-title"], [1, "header-subtitle"], ["title", "Close", 1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "panel-content"], [1, "panel-footer"], [1, "btn", "btn-primary", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "btn", "btn-secondary", 3, "click"], [1, "info-section", 3, "ExpandedChange", "Expanded"], ["mjAccordionTitle", ""], [1, "info-row"], [1, "info-label"], [1, "info-value"], [1, "status-badge"], [1, "info-section", 3, "Expanded"], [1, "fields-list"], ["Size", "compact", "Icon", "fa-solid fa-table-columns", "Title", "No fields defined"], [1, "params-list"], ["Size", "compact", "Icon", "fa-solid fa-sliders", "Title", "No parameters required"], ["mjAccordionBody", ""], [1, "section-title"], [1, "info-value", "description"], [1, "fa-solid", "fa-folder", "category-icon"], [1, "fa-solid", "fa-check", "text-success"], [1, "technical-description-content"], [3, "data", "enableMermaid", "enableHighlight", "enableCollapsibleHeadings", "enableSmartypants"], [1, "mj-accordion-badge", "mj-accordion-badge--muted"], [1, "field-item"], [1, "field-header"], [1, "field-name"], [1, "field-type"], [1, "field-details"], [1, "field-description"], [1, "field-source"], [1, "fa-solid", "fa-link"], [1, "param-item"], [1, "param-header"], [1, "param-name"], [1, "required-badge"], [1, "param-type"], [1, "param-details"], [1, "param-description"], [1, "param-default"], [1, "sql-container"], ["Size", "compact", "Icon", "fa-solid fa-code", "Title", "SQL not available"], [3, "CompositionTokenClick", "value", "readonly", "language"], [1, "dependents-list"], [1, "dependent-item"], [1, "dependents-hint"], [1, "fa-solid", "fa-info-circle"], [1, "dependent-item", 3, "click"], [1, "dependent-header"], [1, "fa-solid", "fa-arrow-left", "dependent-icon"], [1, "dependent-name"], [1, "dependent-ref-path"]], template: function QueryInfoPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
632
584
|
i0.ɵɵconditionalCreate(0, QueryInfoPanelComponent_Conditional_0_Template, 1, 1, "div", 0);
|
|
633
585
|
i0.ɵɵconditionalCreate(1, QueryInfoPanelComponent_Conditional_1_Template, 18, 5, "div", 1);
|
|
634
586
|
} if (rf & 2) {
|
|
635
587
|
i0.ɵɵconditional(ctx.Visible && ctx.ShowOverlay ? 0 : -1);
|
|
636
588
|
i0.ɵɵadvance();
|
|
637
589
|
i0.ɵɵconditional(ctx.Visible ? 1 : -1);
|
|
638
|
-
} }, dependencies: [i1.MarkdownComponent, i2.CodeEditorComponent], styles: ["\n\n\n\n\n.info-panel-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n}\n\n\n\n.info-panel[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n background: var(--mj-bg-surface);\n box-shadow: -4px 0 20px var(--mj-bg-overlay);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 350px;\n max-width: 800px;\n}\n\n\n\n.resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n background: transparent;\n transition: background 0.15s ease;\n z-index: 10;\n}\n\n.resize-handle[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.resize-handle[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n}\n\n\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.header-icon[_ngcontent-%COMP%] {\n font-size: 24px;\n opacity: 0.9;\n}\n\n.header-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.header-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n}\n\n.header-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n opacity: 0.85;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: rgba(255, 255, 255, 0.15);\n color: var(--mj-text-inverse);\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n\n\n.panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n\n\n.info-section[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.info-section.expanded[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-border-default));\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n transition: background 0.15s ease;\n user-select: none;\n}\n\n.section-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.info-section.expanded[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-border-default));\n}\n\n.section-icon[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-secondary);\n width: 12px;\n text-align: center;\n}\n\n.section-title[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.section-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.section-content[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n\n\n.technical-description-content[_ngcontent-%COMP%] {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.technical-description-content [_nghost-%COMP%] .mj-markdown-container {\n font-size: 13px;\n line-height: 1.5;\n}\n\n\n\n.technical-description-content[_ngcontent-%COMP%] {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.technical-description-content [_nghost-%COMP%] .mj-markdown-container {\n font-size: 13px;\n line-height: 1.5;\n}\n\n\n\n.info-row[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.info-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.info-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.info-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-primary);\n line-height: 1.4;\n}\n\n.info-value.description[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-style: italic;\n}\n\n.category-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n margin-right: 4px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.approved[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.text-success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n\n\n.fields-list[_ngcontent-%COMP%], \n.params-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item[_ngcontent-%COMP%], \n.param-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.field-header[_ngcontent-%COMP%], \n.param-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n}\n\n.field-name[_ngcontent-%COMP%], \n.param-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.field-type[_ngcontent-%COMP%], \n.param-type[_ngcontent-%COMP%] {\n font-size: 11px;\n font-family: 'Consolas', 'Monaco', monospace;\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.field-details[_ngcontent-%COMP%], \n.param-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: 6px;\n}\n\n.field-description[_ngcontent-%COMP%], \n.param-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-style: italic;\n}\n\n.field-source[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n.field-source[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 4px;\n}\n\n.required-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 500;\n padding: 2px 6px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n border-radius: 4px;\n text-transform: uppercase;\n}\n\n.param-default[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n\n\n.sql-container[_ngcontent-%COMP%] {\n background: #1e1e1e;\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.sql-container[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n display: block;\n max-height: 400px;\n overflow: auto;\n}\n\n\n\n.empty-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.empty-section[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n opacity: 0.6;\n}\n\n\n\n.panel-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-default);\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n}\n\n\n\n.panel-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n}\n\n.panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-card);\n}\n\n.panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 3px;\n}\n\n.panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n\n\n.dependents-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.dependent-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border-left: 3px solid var(--mj-status-warning);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.dependent-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left-color: var(--mj-status-warning-text);\n}\n\n.dependent-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.dependent-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 11px;\n}\n\n.dependent-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.dependent-ref-path[_ngcontent-%COMP%] {\n display: block;\n margin-top: 4px;\n margin-left: 19px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.dependents-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n}\n\n.dependents-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}"], data: { animation: [
|
|
590
|
+
} }, dependencies: [i1.MarkdownComponent, i2.CodeEditorComponent, i3.MJEmptyStateComponent, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i3.MJAccordionBodyDirective], styles: ["\n\n\n\n\n.info-panel-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n}\n\n\n\n.info-panel[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n background: var(--mj-bg-surface);\n box-shadow: -4px 0 20px var(--mj-bg-overlay);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 350px;\n max-width: 800px;\n}\n\n\n\n.resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n background: transparent;\n transition: background 0.15s ease;\n z-index: 10;\n}\n\n.resize-handle[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.resize-handle[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n}\n\n\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.header-icon[_ngcontent-%COMP%] {\n font-size: 24px;\n opacity: 0.9;\n}\n\n.header-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.header-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n}\n\n.header-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n opacity: 0.85;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: rgba(255, 255, 255, 0.15);\n color: var(--mj-text-inverse);\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n\n\n.panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n\n\n.info-section[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n}\n\n\n\n\n.technical-description-content[_ngcontent-%COMP%] {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.technical-description-content [_nghost-%COMP%] .mj-markdown-container {\n font-size: 13px;\n line-height: 1.5;\n}\n\n\n\n.info-row[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.info-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.info-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.info-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-primary);\n line-height: 1.4;\n}\n\n.info-value.description[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-style: italic;\n}\n\n.category-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n margin-right: 4px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.approved[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.text-success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n\n\n.fields-list[_ngcontent-%COMP%], \n.params-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item[_ngcontent-%COMP%], \n.param-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.field-header[_ngcontent-%COMP%], \n.param-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n}\n\n.field-name[_ngcontent-%COMP%], \n.param-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.field-type[_ngcontent-%COMP%], \n.param-type[_ngcontent-%COMP%] {\n font-size: 11px;\n font-family: 'Consolas', 'Monaco', monospace;\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.field-details[_ngcontent-%COMP%], \n.param-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: 6px;\n}\n\n.field-description[_ngcontent-%COMP%], \n.param-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-style: italic;\n}\n\n.field-source[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n.field-source[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 4px;\n}\n\n.required-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 500;\n padding: 2px 6px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n border-radius: 4px;\n text-transform: uppercase;\n}\n\n.param-default[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n\n\n.sql-container[_ngcontent-%COMP%] {\n background: #1e1e1e;\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.sql-container[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n display: block;\n max-height: 400px;\n overflow: auto;\n}\n\n\n\n.panel-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-default);\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n}\n\n\n\n.panel-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n}\n\n.panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-card);\n}\n\n.panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 3px;\n}\n\n.panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n\n\n.dependents-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.dependent-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border-left: 3px solid var(--mj-status-warning);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.dependent-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left-color: var(--mj-status-warning-text);\n}\n\n.dependent-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.dependent-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 11px;\n}\n\n.dependent-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.dependent-ref-path[_ngcontent-%COMP%] {\n display: block;\n margin-top: 4px;\n margin-left: 19px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.dependents-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n}\n\n.dependents-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}"], data: { animation: [
|
|
639
591
|
trigger('slideIn', [
|
|
640
592
|
transition(':enter', [
|
|
641
593
|
style({ transform: 'translateX(100%)' }),
|
|
@@ -677,7 +629,7 @@ export class QueryInfoPanelComponent {
|
|
|
677
629
|
animate('150ms ease-in', style({ opacity: 0 }))
|
|
678
630
|
])
|
|
679
631
|
])
|
|
680
|
-
], template: "<!-- Query Info Panel - Slide-in Panel -->\n@if (Visible && ShowOverlay) {\n <div class=\"info-panel-overlay\"\n @fadeIn\n (click)=\"OnClose()\">\n </div>\n}\n\n@if (Visible) {\n <div class=\"info-panel\"\n @slideIn\n [style.width.px]=\"PanelWidth\">\n <!-- Resize handle -->\n <div class=\"resize-handle\" (mousedown)=\"OnResizeStart($event)\"></div>\n <!-- Header -->\n <div class=\"panel-header\">\n <div class=\"header-content\">\n <i class=\"fa-solid fa-circle-info header-icon\"></i>\n <div class=\"header-text\">\n <h3 class=\"header-title\">Query Information</h3>\n @if (QueryInfo) {\n <span class=\"header-subtitle\">{{ QueryInfo.Name }}</span>\n }\n </div>\n </div>\n <button class=\"close-btn\" (click)=\"OnClose()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Content -->\n @if (QueryInfo) {\n <div class=\"panel-content\">\n <!-- Overview Section -->\n <div class=\"info-section\" [class.expanded]=\"IsSectionExpanded('overview')\">\n <div class=\"section-header\" (click)=\"ToggleSection('overview')\">\n <i class=\"fa-solid section-icon\"\n [class.fa-chevron-down]=\"IsSectionExpanded('overview')\"\n [class.fa-chevron-right]=\"!IsSectionExpanded('overview')\"></i>\n <span class=\"section-title\">Overview</span>\n </div>\n @if (IsSectionExpanded('overview')) {\n <div class=\"section-content\">\n <div class=\"info-row\">\n <span class=\"info-label\">Name</span>\n <span class=\"info-value\">{{ QueryInfo.Name }}</span>\n </div>\n @if (QueryInfo.Description) {\n <div class=\"info-row\">\n <span class=\"info-label\">Description</span>\n <span class=\"info-value description\">{{ QueryInfo.Description }}</span>\n </div>\n }\n @if (QueryInfo.Category) {\n <div class=\"info-row\">\n <span class=\"info-label\">Category</span>\n <span class=\"info-value\">\n <i class=\"fa-solid fa-folder category-icon\"></i>\n {{ QueryInfo.Category }}\n </span>\n </div>\n }\n <div class=\"info-row\">\n <span class=\"info-label\">Status</span>\n <span class=\"info-value\">\n <span class=\"status-badge\" [class.approved]=\"QueryInfo.Status === 'Approved'\">\n {{ QueryInfo.Status }}\n </span>\n </span>\n </div>\n @if (QueryInfo.OriginalSQL) {\n <div class=\"info-row\">\n <span class=\"info-label\">Has SQL</span>\n <span class=\"info-value\">\n <i class=\"fa-solid fa-check text-success\"></i> Yes\n </span>\n </div>\n }\n </div>\n }\n </div>\n <!-- Technical Description Section -->\n @if (QueryInfo.TechnicalDescription) {\n <div class=\"info-section\" [class.expanded]=\"IsSectionExpanded('technical')\">\n <div class=\"section-header\" (click)=\"ToggleSection('technical')\">\n <i class=\"fa-solid section-icon\"\n [class.fa-chevron-down]=\"IsSectionExpanded('technical')\"\n [class.fa-chevron-right]=\"!IsSectionExpanded('technical')\"></i>\n <span class=\"section-title\">Technical Description</span>\n </div>\n @if (IsSectionExpanded('technical')) {\n <div class=\"section-content technical-description-content\">\n <mj-markdown\n [data]=\"QueryInfo.TechnicalDescription || ''\"\n [enableMermaid]=\"true\"\n [enableHighlight]=\"true\"\n [enableCollapsibleHeadings]=\"false\"\n [enableSmartypants]=\"true\">\n </mj-markdown>\n </div>\n }\n </div>\n }\n <!-- Fields Section -->\n <div class=\"info-section\" [class.expanded]=\"IsSectionExpanded('fields')\">\n <div class=\"section-header\" (click)=\"ToggleSection('fields')\">\n <i class=\"fa-solid section-icon\"\n [class.fa-chevron-down]=\"IsSectionExpanded('fields')\"\n [class.fa-chevron-right]=\"!IsSectionExpanded('fields')\"></i>\n <span class=\"section-title\">Fields</span>\n <span class=\"section-count\">({{ QueryInfo.QueryFields.length || 0 }})</span>\n </div>\n @if (IsSectionExpanded('fields')) {\n <div class=\"section-content\">\n @if (QueryInfo.QueryFields.length) {\n <div class=\"fields-list\">\n @for (field of QueryInfo.QueryFields; track TrackByField($index, field)) {\n <div class=\"field-item\">\n <div class=\"field-header\">\n <span class=\"field-name\">{{ field.Name }}</span>\n <span class=\"field-type\">{{ GetFieldTypeDisplay(field) }}</span>\n </div>\n @if (field.Description || field.SourceEntity) {\n <div class=\"field-details\">\n @if (field.Description) {\n <span class=\"field-description\">\n {{ field.Description }}\n </span>\n }\n @if (field.SourceEntity) {\n <span class=\"field-source\">\n <i class=\"fa-solid fa-link\"></i>\n {{ field.SourceEntity }}.{{ field.SourceFieldName }}\n </span>\n }\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"empty-section\">\n <i class=\"fa-solid fa-table-columns\"></i>\n <span>No fields defined</span>\n </div>\n }\n </div>\n }\n </div>\n <!-- Parameters Section -->\n <div class=\"info-section\" [class.expanded]=\"IsSectionExpanded('parameters')\">\n <div class=\"section-header\" (click)=\"ToggleSection('parameters')\">\n <i class=\"fa-solid section-icon\"\n [class.fa-chevron-down]=\"IsSectionExpanded('parameters')\"\n [class.fa-chevron-right]=\"!IsSectionExpanded('parameters')\"></i>\n <span class=\"section-title\">Parameters</span>\n <span class=\"section-count\">({{ QueryInfo.QueryParameters.length || 0 }})</span>\n </div>\n @if (IsSectionExpanded('parameters')) {\n <div class=\"section-content\">\n @if (QueryInfo.QueryParameters.length) {\n <div class=\"params-list\">\n @for (param of QueryInfo.QueryParameters; track TrackByParam($index, param)) {\n <div class=\"param-item\">\n <div class=\"param-header\">\n <span class=\"param-name\">\n {{ param.Name }}\n @if (param.IsRequired) {\n <span class=\"required-badge\">Required</span>\n }\n </span>\n <span class=\"param-type\">{{ GetParamTypeDisplay(param) }}</span>\n </div>\n @if (param.Description || param.DefaultValue) {\n <div class=\"param-details\">\n @if (param.Description) {\n <span class=\"param-description\">\n {{ param.Description }}\n </span>\n }\n @if (param.DefaultValue) {\n <span class=\"param-default\">\n Default: {{ param.DefaultValue }}\n </span>\n }\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"empty-section\">\n <i class=\"fa-solid fa-sliders\"></i>\n <span>No parameters required</span>\n </div>\n }\n </div>\n }\n </div>\n <!-- SQL Section -->\n <div class=\"info-section\" [class.expanded]=\"IsSectionExpanded('sql')\">\n <div class=\"section-header\" (click)=\"ToggleSection('sql')\">\n <i class=\"fa-solid section-icon\"\n [class.fa-chevron-down]=\"IsSectionExpanded('sql')\"\n [class.fa-chevron-right]=\"!IsSectionExpanded('sql')\"></i>\n <span class=\"section-title\">SQL Query</span>\n </div>\n @if (IsSectionExpanded('sql')) {\n <div class=\"section-content\">\n @if (QueryInfo.SQL) {\n <div class=\"sql-container\">\n <mj-code-editor\n [value]=\"QueryInfo.SQL\"\n [readonly]=\"true\"\n [language]=\"'sql'\"\n (CompositionTokenClick)=\"OnCompositionTokenClick($event)\">\n </mj-code-editor>\n </div>\n } @else {\n <div class=\"empty-section\">\n <i class=\"fa-solid fa-code\"></i>\n <span>SQL not available</span>\n </div>\n }\n </div>\n }\n </div>\n <!-- Dependent Queries Section -->\n @if (QueryInfo.QueryDependents.length > 0) {\n <div class=\"info-section\" [class.expanded]=\"IsSectionExpanded('dependents')\">\n <div class=\"section-header\" (click)=\"ToggleSection('dependents')\">\n <i class=\"fa-solid section-icon\"\n [class.fa-chevron-down]=\"IsSectionExpanded('dependents')\"\n [class.fa-chevron-right]=\"!IsSectionExpanded('dependents')\"></i>\n <span class=\"section-title\">Dependent Queries</span>\n <span class=\"section-count\">({{ QueryInfo.QueryDependents.length }})</span>\n </div>\n @if (IsSectionExpanded('dependents')) {\n <div class=\"section-content\">\n <div class=\"dependents-list\">\n @for (dep of QueryInfo.QueryDependents; track dep.ID) {\n <div class=\"dependent-item\" (click)=\"OnDependentQueryClick(dep)\">\n <div class=\"dependent-header\">\n <i class=\"fa-solid fa-arrow-left dependent-icon\"></i>\n <span class=\"dependent-name\">{{ dep.Query }}</span>\n </div>\n @if (dep.ReferencePath) {\n <span class=\"dependent-ref-path\">\n via {{ dep.ReferencePath }}\n </span>\n }\n </div>\n }\n </div>\n <div class=\"dependents-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n These queries reference this query via composition\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- Footer -->\n <div class=\"panel-footer\">\n <button class=\"btn btn-primary\" (click)=\"OnOpenRecord()\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n Open Full Record\n </button>\n <button class=\"btn btn-secondary\" (click)=\"OnClose()\">\n Close\n </button>\n </div>\n </div>\n}\n", styles: ["/* Query Info Panel Styles */\n\n/* Overlay */\n.info-panel-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n}\n\n/* Panel Container */\n.info-panel {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n background: var(--mj-bg-surface);\n box-shadow: -4px 0 20px var(--mj-bg-overlay);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 350px;\n max-width: 800px;\n}\n\n/* Resize Handle */\n.resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n background: transparent;\n transition: background 0.15s ease;\n z-index: 10;\n}\n\n.resize-handle:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.resize-handle:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n}\n\n/* Header */\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.header-content {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.header-icon {\n font-size: 24px;\n opacity: 0.9;\n}\n\n.header-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.header-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n}\n\n.header-subtitle {\n font-size: 13px;\n opacity: 0.85;\n}\n\n.close-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: rgba(255, 255, 255, 0.15);\n color: var(--mj-text-inverse);\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.close-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n/* Content */\n.panel-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n/* Sections */\n.info-section {\n margin-bottom: 8px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.info-section.expanded {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-border-default));\n}\n\n.section-header {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n transition: background 0.15s ease;\n user-select: none;\n}\n\n.section-header:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.info-section.expanded .section-header {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-border-default));\n}\n\n.section-icon {\n font-size: 10px;\n color: var(--mj-text-secondary);\n width: 12px;\n text-align: center;\n}\n\n.section-title {\n flex: 1;\n font-weight: 600;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.section-count {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.section-content {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n/* Technical Description Markdown */\n.technical-description-content {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.technical-description-content :host ::ng-deep .mj-markdown-container {\n font-size: 13px;\n line-height: 1.5;\n}\n\n/* Technical Description Markdown */\n.technical-description-content {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.technical-description-content :host ::ng-deep .mj-markdown-container {\n font-size: 13px;\n line-height: 1.5;\n}\n\n/* Info Rows */\n.info-row {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.info-row:last-child {\n border-bottom: none;\n}\n\n.info-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.info-value {\n font-size: 14px;\n color: var(--mj-text-primary);\n line-height: 1.4;\n}\n\n.info-value.description {\n color: var(--mj-text-secondary);\n font-style: italic;\n}\n\n.category-icon {\n color: var(--mj-status-warning);\n margin-right: 4px;\n}\n\n.status-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.approved {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.text-success {\n color: var(--mj-status-success);\n}\n\n/* Fields List */\n.fields-list,\n.params-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item,\n.param-item {\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.field-header,\n.param-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n}\n\n.field-name,\n.param-name {\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.field-type,\n.param-type {\n font-size: 11px;\n font-family: 'Consolas', 'Monaco', monospace;\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.field-details,\n.param-details {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: 6px;\n}\n\n.field-description,\n.param-description {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-style: italic;\n}\n\n.field-source {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n.field-source i {\n margin-right: 4px;\n}\n\n.required-badge {\n font-size: 10px;\n font-weight: 500;\n padding: 2px 6px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n border-radius: 4px;\n text-transform: uppercase;\n}\n\n.param-default {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n/* SQL Section */\n.sql-container {\n background: #1e1e1e;\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.sql-container mj-code-editor {\n display: block;\n max-height: 400px;\n overflow: auto;\n}\n\n/* Empty State */\n.empty-section {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n.empty-section i {\n font-size: 16px;\n opacity: 0.6;\n}\n\n/* Footer */\n.panel-footer {\n display: flex;\n justify-content: flex-start;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.btn {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n.btn-secondary {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-default);\n}\n\n.btn-secondary:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n}\n\n/* Scrollbar */\n.panel-content::-webkit-scrollbar {\n width: 6px;\n}\n\n.panel-content::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-card);\n}\n\n.panel-content::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 3px;\n}\n\n.panel-content::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n/* Dependent Queries */\n.dependents-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.dependent-item {\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border-left: 3px solid var(--mj-status-warning);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.dependent-item:hover {\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left-color: var(--mj-status-warning-text);\n}\n\n.dependent-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.dependent-icon {\n color: var(--mj-status-warning);\n font-size: 11px;\n}\n\n.dependent-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.dependent-ref-path {\n display: block;\n margin-top: 4px;\n margin-left: 19px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.dependents-hint {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n}\n\n.dependents-hint i {\n font-size: 10px;\n}\n"] }]
|
|
632
|
+
], template: "<!-- Query Info Panel - Slide-in Panel -->\n@if (Visible && ShowOverlay) {\n <div class=\"info-panel-overlay\"\n @fadeIn\n (click)=\"OnClose()\">\n </div>\n}\n\n@if (Visible) {\n <div class=\"info-panel\"\n @slideIn\n [style.width.px]=\"PanelWidth\">\n <!-- Resize handle -->\n <div class=\"resize-handle\" (mousedown)=\"OnResizeStart($event)\"></div>\n <!-- Header -->\n <div class=\"panel-header\">\n <div class=\"header-content\">\n <i class=\"fa-solid fa-circle-info header-icon\"></i>\n <div class=\"header-text\">\n <h3 class=\"header-title\">Query Information</h3>\n @if (QueryInfo) {\n <span class=\"header-subtitle\">{{ QueryInfo.Name }}</span>\n }\n </div>\n </div>\n <button class=\"close-btn\" (click)=\"OnClose()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Content -->\n @if (QueryInfo) {\n <div class=\"panel-content\">\n <!-- Overview Section -->\n <mj-accordion-panel class=\"info-section\" [Expanded]=\"IsSectionExpanded('overview')\" (ExpandedChange)=\"ToggleSection('overview')\">\n <ng-template mjAccordionTitle>\n <span class=\"section-title\">Overview</span>\n </ng-template>\n <div class=\"info-row\">\n <span class=\"info-label\">Name</span>\n <span class=\"info-value\">{{ QueryInfo.Name }}</span>\n </div>\n @if (QueryInfo.Description) {\n <div class=\"info-row\">\n <span class=\"info-label\">Description</span>\n <span class=\"info-value description\">{{ QueryInfo.Description }}</span>\n </div>\n }\n @if (QueryInfo.Category) {\n <div class=\"info-row\">\n <span class=\"info-label\">Category</span>\n <span class=\"info-value\">\n <i class=\"fa-solid fa-folder category-icon\"></i>\n {{ QueryInfo.Category }}\n </span>\n </div>\n }\n <div class=\"info-row\">\n <span class=\"info-label\">Status</span>\n <span class=\"info-value\">\n <span class=\"status-badge\" [class.approved]=\"QueryInfo.Status === 'Approved'\">\n {{ QueryInfo.Status }}\n </span>\n </span>\n </div>\n @if (QueryInfo.OriginalSQL) {\n <div class=\"info-row\">\n <span class=\"info-label\">Has SQL</span>\n <span class=\"info-value\">\n <i class=\"fa-solid fa-check text-success\"></i> Yes\n </span>\n </div>\n }\n </mj-accordion-panel>\n <!-- Technical Description Section -->\n @if (QueryInfo.TechnicalDescription) {\n <mj-accordion-panel class=\"info-section\" [Expanded]=\"IsSectionExpanded('technical')\" (ExpandedChange)=\"ToggleSection('technical')\">\n <ng-template mjAccordionTitle>\n <span class=\"section-title\">Technical Description</span>\n </ng-template>\n <ng-template mjAccordionBody>\n <div class=\"technical-description-content\">\n <mj-markdown\n [data]=\"QueryInfo.TechnicalDescription || ''\"\n [enableMermaid]=\"true\"\n [enableHighlight]=\"true\"\n [enableCollapsibleHeadings]=\"false\"\n [enableSmartypants]=\"true\">\n </mj-markdown>\n </div>\n </ng-template>\n </mj-accordion-panel>\n }\n <!-- Fields Section -->\n <mj-accordion-panel class=\"info-section\" [Expanded]=\"IsSectionExpanded('fields')\" (ExpandedChange)=\"ToggleSection('fields')\">\n <ng-template mjAccordionTitle>\n <span class=\"section-title\">Fields</span>\n <span class=\"mj-accordion-badge mj-accordion-badge--muted\">({{ QueryInfo.QueryFields.length || 0 }})</span>\n </ng-template>\n @if (QueryInfo.QueryFields.length) {\n <div class=\"fields-list\">\n @for (field of QueryInfo.QueryFields; track TrackByField($index, field)) {\n <div class=\"field-item\">\n <div class=\"field-header\">\n <span class=\"field-name\">{{ field.Name }}</span>\n <span class=\"field-type\">{{ GetFieldTypeDisplay(field) }}</span>\n </div>\n @if (field.Description || field.SourceEntity) {\n <div class=\"field-details\">\n @if (field.Description) {\n <span class=\"field-description\">\n {{ field.Description }}\n </span>\n }\n @if (field.SourceEntity) {\n <span class=\"field-source\">\n <i class=\"fa-solid fa-link\"></i>\n {{ field.SourceEntity }}.{{ field.SourceFieldName }}\n </span>\n }\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-table-columns\"\n Title=\"No fields defined\" />\n }\n </mj-accordion-panel>\n <!-- Parameters Section -->\n <mj-accordion-panel class=\"info-section\" [Expanded]=\"IsSectionExpanded('parameters')\" (ExpandedChange)=\"ToggleSection('parameters')\">\n <ng-template mjAccordionTitle>\n <span class=\"section-title\">Parameters</span>\n <span class=\"mj-accordion-badge mj-accordion-badge--muted\">({{ QueryInfo.QueryParameters.length || 0 }})</span>\n </ng-template>\n @if (QueryInfo.QueryParameters.length) {\n <div class=\"params-list\">\n @for (param of QueryInfo.QueryParameters; track TrackByParam($index, param)) {\n <div class=\"param-item\">\n <div class=\"param-header\">\n <span class=\"param-name\">\n {{ param.Name }}\n @if (param.IsRequired) {\n <span class=\"required-badge\">Required</span>\n }\n </span>\n <span class=\"param-type\">{{ GetParamTypeDisplay(param) }}</span>\n </div>\n @if (param.Description || param.DefaultValue) {\n <div class=\"param-details\">\n @if (param.Description) {\n <span class=\"param-description\">\n {{ param.Description }}\n </span>\n }\n @if (param.DefaultValue) {\n <span class=\"param-default\">\n Default: {{ param.DefaultValue }}\n </span>\n }\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-sliders\"\n Title=\"No parameters required\" />\n }\n </mj-accordion-panel>\n <!-- SQL Section -->\n <mj-accordion-panel class=\"info-section\" [Expanded]=\"IsSectionExpanded('sql')\" (ExpandedChange)=\"ToggleSection('sql')\">\n <ng-template mjAccordionTitle>\n <span class=\"section-title\">SQL Query</span>\n </ng-template>\n <ng-template mjAccordionBody>\n @if (QueryInfo.SQL) {\n <div class=\"sql-container\">\n <mj-code-editor\n [value]=\"QueryInfo.SQL\"\n [readonly]=\"true\"\n [language]=\"'sql'\"\n (CompositionTokenClick)=\"OnCompositionTokenClick($event)\">\n </mj-code-editor>\n </div>\n } @else {\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-code\"\n Title=\"SQL not available\" />\n }\n </ng-template>\n </mj-accordion-panel>\n <!-- Dependent Queries Section -->\n @if (QueryInfo.QueryDependents.length > 0) {\n <mj-accordion-panel class=\"info-section\" [Expanded]=\"IsSectionExpanded('dependents')\" (ExpandedChange)=\"ToggleSection('dependents')\">\n <ng-template mjAccordionTitle>\n <span class=\"section-title\">Dependent Queries</span>\n <span class=\"mj-accordion-badge mj-accordion-badge--muted\">({{ QueryInfo.QueryDependents.length }})</span>\n </ng-template>\n <div class=\"dependents-list\">\n @for (dep of QueryInfo.QueryDependents; track dep.ID) {\n <div class=\"dependent-item\" (click)=\"OnDependentQueryClick(dep)\">\n <div class=\"dependent-header\">\n <i class=\"fa-solid fa-arrow-left dependent-icon\"></i>\n <span class=\"dependent-name\">{{ dep.Query }}</span>\n </div>\n @if (dep.ReferencePath) {\n <span class=\"dependent-ref-path\">\n via {{ dep.ReferencePath }}\n </span>\n }\n </div>\n }\n </div>\n <div class=\"dependents-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n These queries reference this query via composition\n </div>\n </mj-accordion-panel>\n }\n </div>\n }\n <!-- Footer -->\n <div class=\"panel-footer\">\n <button class=\"btn btn-primary\" (click)=\"OnOpenRecord()\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n Open Full Record\n </button>\n <button class=\"btn btn-secondary\" (click)=\"OnClose()\">\n Close\n </button>\n </div>\n </div>\n}\n", styles: ["/* Query Info Panel Styles */\n\n/* Overlay */\n.info-panel-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n}\n\n/* Panel Container */\n.info-panel {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n background: var(--mj-bg-surface);\n box-shadow: -4px 0 20px var(--mj-bg-overlay);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 350px;\n max-width: 800px;\n}\n\n/* Resize Handle */\n.resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n background: transparent;\n transition: background 0.15s ease;\n z-index: 10;\n}\n\n.resize-handle:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.resize-handle:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n}\n\n/* Header */\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.header-content {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.header-icon {\n font-size: 24px;\n opacity: 0.9;\n}\n\n.header-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.header-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n}\n\n.header-subtitle {\n font-size: 13px;\n opacity: 0.85;\n}\n\n.close-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: rgba(255, 255, 255, 0.15);\n color: var(--mj-text-inverse);\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.close-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n/* Content */\n.panel-content {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n}\n\n/* Sections */\n.info-section {\n display: block;\n margin-bottom: 8px;\n}\n\n\n/* Technical Description Markdown */\n.technical-description-content {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.technical-description-content :host ::ng-deep .mj-markdown-container {\n font-size: 13px;\n line-height: 1.5;\n}\n\n/* Info Rows */\n.info-row {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.info-row:last-child {\n border-bottom: none;\n}\n\n.info-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.info-value {\n font-size: 14px;\n color: var(--mj-text-primary);\n line-height: 1.4;\n}\n\n.info-value.description {\n color: var(--mj-text-secondary);\n font-style: italic;\n}\n\n.category-icon {\n color: var(--mj-status-warning);\n margin-right: 4px;\n}\n\n.status-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.approved {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.text-success {\n color: var(--mj-status-success);\n}\n\n/* Fields List */\n.fields-list,\n.params-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.field-item,\n.param-item {\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.field-header,\n.param-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 4px;\n}\n\n.field-name,\n.param-name {\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.field-type,\n.param-type {\n font-size: 11px;\n font-family: 'Consolas', 'Monaco', monospace;\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.field-details,\n.param-details {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: 6px;\n}\n\n.field-description,\n.param-description {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-style: italic;\n}\n\n.field-source {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n.field-source i {\n margin-right: 4px;\n}\n\n.required-badge {\n font-size: 10px;\n font-weight: 500;\n padding: 2px 6px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n border-radius: 4px;\n text-transform: uppercase;\n}\n\n.param-default {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n/* SQL Section */\n.sql-container {\n background: #1e1e1e;\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.sql-container mj-code-editor {\n display: block;\n max-height: 400px;\n overflow: auto;\n}\n\n/* Footer */\n.panel-footer {\n display: flex;\n justify-content: flex-start;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.btn {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n.btn-secondary {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-default);\n}\n\n.btn-secondary:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n}\n\n/* Scrollbar */\n.panel-content::-webkit-scrollbar {\n width: 6px;\n}\n\n.panel-content::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-card);\n}\n\n.panel-content::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 3px;\n}\n\n.panel-content::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n/* Dependent Queries */\n.dependents-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.dependent-item {\n padding: 10px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border-left: 3px solid var(--mj-status-warning);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.dependent-item:hover {\n background: color-mix(in srgb, var(--mj-status-warning) 10%, var(--mj-bg-surface));\n border-left-color: var(--mj-status-warning-text);\n}\n\n.dependent-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.dependent-icon {\n color: var(--mj-status-warning);\n font-size: 11px;\n}\n\n.dependent-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.dependent-ref-path {\n display: block;\n margin-top: 4px;\n margin-left: 19px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.dependents-hint {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n}\n\n.dependents-hint i {\n font-size: 10px;\n}\n"] }]
|
|
681
633
|
}], () => [{ type: i0.ChangeDetectorRef }], { QueryInfo: [{
|
|
682
634
|
type: Input
|
|
683
635
|
}], Visible: [{
|