@memberjunction/ng-skip-chat 2.92.0 → 2.94.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/artifacts/skip-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/artifacts/skip-artifact-viewer.component.js +1 -0
- package/dist/lib/artifacts/skip-artifact-viewer.component.js.map +1 -1
- package/dist/lib/dynamic-report/base-report.d.ts +2 -1
- package/dist/lib/dynamic-report/base-report.d.ts.map +1 -1
- package/dist/lib/dynamic-report/base-report.js +4 -1
- package/dist/lib/dynamic-report/base-report.js.map +1 -1
- package/dist/lib/dynamic-report/dynamic-ui-component.d.ts +4 -1
- package/dist/lib/dynamic-report/dynamic-ui-component.d.ts.map +1 -1
- package/dist/lib/dynamic-report/dynamic-ui-component.js +205 -179
- package/dist/lib/dynamic-report/dynamic-ui-component.js.map +1 -1
- package/dist/lib/dynamic-report/linear-report.d.ts +1 -1
- package/dist/lib/dynamic-report/linear-report.d.ts.map +1 -1
- package/dist/lib/dynamic-report/linear-report.js +8 -7
- package/dist/lib/dynamic-report/linear-report.js.map +1 -1
- package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.d.ts +2 -1
- package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.d.ts.map +1 -1
- package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.js +7 -3
- package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.js.map +1 -1
- package/package.json +15 -15
|
@@ -29,144 +29,150 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Templ
|
|
|
29
29
|
} }
|
|
30
30
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_24_Template(rf, ctx) { if (rf & 1) {
|
|
31
31
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
32
|
-
i0.ɵɵelementStart(0, "button",
|
|
32
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
33
33
|
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_24_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ɵ$index_4_r3 = i0.ɵɵnextContext(2).$index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createReportForOption(ɵ$index_4_r3)); });
|
|
34
|
-
i0.ɵɵelement(1, "i",
|
|
34
|
+
i0.ɵɵelement(1, "i", 27);
|
|
35
35
|
i0.ɵɵelementStart(2, "span");
|
|
36
|
-
i0.ɵɵtext(3);
|
|
36
|
+
i0.ɵɵtext(3, "Save Report");
|
|
37
37
|
i0.ɵɵelementEnd()();
|
|
38
38
|
} if (rf & 2) {
|
|
39
|
-
const
|
|
40
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
39
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
41
40
|
i0.ɵɵproperty("disabled", ctx_r1.isCreatingReport);
|
|
42
|
-
i0.ɵɵadvance(3);
|
|
43
|
-
i0.ɵɵtextInterpolate1("Create ", ctx_r1.getComponentTypeName(option_r6), "");
|
|
44
41
|
} }
|
|
45
42
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_25_Template(rf, ctx) { if (rf & 1) {
|
|
43
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
44
|
+
i0.ɵɵelementStart(0, "button", 28);
|
|
45
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_25_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ɵ$index_4_r3 = i0.ɵɵnextContext(2).$index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openReportForOption(ɵ$index_4_r3)); });
|
|
46
|
+
i0.ɵɵelement(1, "i", 29);
|
|
47
|
+
i0.ɵɵelementStart(2, "span");
|
|
48
|
+
i0.ɵɵtext(3, "Open Saved Report");
|
|
49
|
+
i0.ɵɵelementEnd()();
|
|
50
|
+
} }
|
|
51
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_26_Template(rf, ctx) { if (rf & 1) {
|
|
46
52
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
47
|
-
i0.ɵɵelementStart(0, "button",
|
|
48
|
-
i0.ɵɵlistener("click", function
|
|
49
|
-
i0.ɵɵelement(1, "i",
|
|
53
|
+
i0.ɵɵelementStart(0, "button", 30);
|
|
54
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_26_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.PrintReport()); });
|
|
55
|
+
i0.ɵɵelement(1, "i", 31);
|
|
50
56
|
i0.ɵɵelementStart(2, "span");
|
|
51
57
|
i0.ɵɵtext(3, "Print Report");
|
|
52
58
|
i0.ɵɵelementEnd()();
|
|
53
59
|
} }
|
|
54
|
-
function
|
|
60
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
55
61
|
i0.ɵɵelement(0, "i", 10);
|
|
56
62
|
i0.ɵɵtext(1, " Functional Requirements ");
|
|
57
63
|
} }
|
|
58
|
-
function
|
|
59
|
-
i0.ɵɵelementStart(0, "div",
|
|
60
|
-
i0.ɵɵelement(1, "div",
|
|
64
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
66
|
+
i0.ɵɵelement(1, "div", 37);
|
|
61
67
|
i0.ɵɵelementEnd();
|
|
62
68
|
} if (rf & 2) {
|
|
63
|
-
const
|
|
69
|
+
const option_r9 = i0.ɵɵnextContext(4).$implicit;
|
|
64
70
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
65
71
|
i0.ɵɵadvance();
|
|
66
|
-
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedFunctionalRequirements(
|
|
72
|
+
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedFunctionalRequirements(option_r9), i0.ɵɵsanitizeHtml);
|
|
67
73
|
} }
|
|
68
|
-
function
|
|
74
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
69
75
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
70
|
-
i0.ɵɵtemplate(1,
|
|
76
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_2_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_2_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
71
77
|
i0.ɵɵelementEnd();
|
|
72
78
|
} if (rf & 2) {
|
|
73
79
|
i0.ɵɵproperty("selected", true);
|
|
74
80
|
} }
|
|
75
|
-
function
|
|
81
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
76
82
|
i0.ɵɵelement(0, "i", 12);
|
|
77
83
|
i0.ɵɵtext(1, " Data Requirements ");
|
|
78
84
|
} }
|
|
79
|
-
function
|
|
80
|
-
i0.ɵɵelementStart(0, "div",
|
|
81
|
-
i0.ɵɵelement(1, "div",
|
|
85
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
87
|
+
i0.ɵɵelement(1, "div", 37);
|
|
82
88
|
i0.ɵɵelementEnd();
|
|
83
89
|
} if (rf & 2) {
|
|
84
|
-
const
|
|
90
|
+
const option_r9 = i0.ɵɵnextContext(4).$implicit;
|
|
85
91
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
86
92
|
i0.ɵɵadvance();
|
|
87
|
-
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedDataRequirements(
|
|
93
|
+
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedDataRequirements(option_r9), i0.ɵɵsanitizeHtml);
|
|
88
94
|
} }
|
|
89
|
-
function
|
|
95
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
90
96
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
91
|
-
i0.ɵɵtemplate(1,
|
|
97
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_3_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_3_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
92
98
|
i0.ɵɵelementEnd();
|
|
93
99
|
} if (rf & 2) {
|
|
94
100
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
95
101
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements);
|
|
96
102
|
} }
|
|
97
|
-
function
|
|
103
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_4_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
98
104
|
i0.ɵɵelement(0, "i", 14);
|
|
99
105
|
i0.ɵɵtext(1, " Technical Design ");
|
|
100
106
|
} }
|
|
101
|
-
function
|
|
102
|
-
i0.ɵɵelementStart(0, "div",
|
|
103
|
-
i0.ɵɵelement(1, "div",
|
|
107
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
109
|
+
i0.ɵɵelement(1, "div", 37);
|
|
104
110
|
i0.ɵɵelementEnd();
|
|
105
111
|
} if (rf & 2) {
|
|
106
|
-
const
|
|
112
|
+
const option_r9 = i0.ɵɵnextContext(4).$implicit;
|
|
107
113
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
108
114
|
i0.ɵɵadvance();
|
|
109
|
-
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedTechnicalDesign(
|
|
115
|
+
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedTechnicalDesign(option_r9), i0.ɵɵsanitizeHtml);
|
|
110
116
|
} }
|
|
111
|
-
function
|
|
117
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
112
118
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
113
|
-
i0.ɵɵtemplate(1,
|
|
119
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_4_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_4_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
114
120
|
i0.ɵɵelementEnd();
|
|
115
121
|
} if (rf & 2) {
|
|
116
122
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
117
123
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements && !ctx_r1.showDataRequirements);
|
|
118
124
|
} }
|
|
119
|
-
function
|
|
125
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_5_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
120
126
|
i0.ɵɵelement(0, "i", 16);
|
|
121
127
|
i0.ɵɵtext(1, " Code ");
|
|
122
128
|
} }
|
|
123
|
-
function
|
|
124
|
-
const
|
|
125
|
-
i0.ɵɵelementStart(0, "div",
|
|
126
|
-
i0.ɵɵlistener("toolbarAction", function
|
|
129
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
130
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
131
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mj-code-editor", 39);
|
|
132
|
+
i0.ɵɵlistener("toolbarAction", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_5_ng_template_2_Template_mj_code_editor_toolbarAction_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.handleCodeToolbarAction($event)); });
|
|
127
133
|
i0.ɵɵelementEnd()();
|
|
128
134
|
} if (rf & 2) {
|
|
129
|
-
const
|
|
135
|
+
const option_r9 = i0.ɵɵnextContext(4).$implicit;
|
|
130
136
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
131
137
|
i0.ɵɵadvance();
|
|
132
|
-
i0.ɵɵproperty("value", ctx_r1.getComponentCode(
|
|
138
|
+
i0.ɵɵproperty("value", ctx_r1.getComponentCode(option_r9))("language", "javascript")("autoFocus", false)("indentWithTab", true)("readonly", true)("toolbar", ctx_r1.codeToolbarConfig);
|
|
133
139
|
} }
|
|
134
|
-
function
|
|
140
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
135
141
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
136
|
-
i0.ɵɵtemplate(1,
|
|
142
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_5_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_5_ng_template_2_Template, 2, 6, "ng-template", 5);
|
|
137
143
|
i0.ɵɵelementEnd();
|
|
138
144
|
} if (rf & 2) {
|
|
139
145
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
140
146
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements && !ctx_r1.showDataRequirements && !ctx_r1.showTechnicalDesign);
|
|
141
147
|
} }
|
|
142
|
-
function
|
|
148
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_6_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
143
149
|
i0.ɵɵelement(0, "i", 16);
|
|
144
150
|
i0.ɵɵtext(1, " Spec ");
|
|
145
151
|
} }
|
|
146
|
-
function
|
|
147
|
-
const
|
|
148
|
-
i0.ɵɵelementStart(0, "div",
|
|
149
|
-
i0.ɵɵlistener("toolbarAction", function
|
|
152
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_6_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
153
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
154
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mj-code-editor", 39);
|
|
155
|
+
i0.ɵɵlistener("toolbarAction", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_6_ng_template_2_Template_mj_code_editor_toolbarAction_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.handleCodeToolbarAction($event)); });
|
|
150
156
|
i0.ɵɵelementEnd()();
|
|
151
157
|
} if (rf & 2) {
|
|
152
|
-
const
|
|
158
|
+
const option_r9 = i0.ɵɵnextContext(4).$implicit;
|
|
153
159
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
154
160
|
i0.ɵɵadvance();
|
|
155
|
-
i0.ɵɵproperty("value", ctx_r1.getComponentSpec(
|
|
161
|
+
i0.ɵɵproperty("value", ctx_r1.getComponentSpec(option_r9))("language", "json")("autoFocus", false)("indentWithTab", true)("readonly", true)("toolbar", ctx_r1.codeToolbarConfig);
|
|
156
162
|
} }
|
|
157
|
-
function
|
|
163
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
158
164
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab");
|
|
159
|
-
i0.ɵɵtemplate(1,
|
|
165
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_6_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_6_ng_template_2_Template, 2, 6, "ng-template", 5);
|
|
160
166
|
i0.ɵɵelementEnd();
|
|
161
167
|
} }
|
|
162
|
-
function
|
|
168
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
163
169
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
164
|
-
i0.ɵɵelementStart(0, "div",
|
|
165
|
-
i0.ɵɵtemplate(2,
|
|
170
|
+
i0.ɵɵelementStart(0, "div", 32)(1, "kendo-tabstrip", 33);
|
|
171
|
+
i0.ɵɵtemplate(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_2_Template, 3, 1, "kendo-tabstrip-tab", 3)(3, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_3_Template, 3, 1, "kendo-tabstrip-tab", 3)(4, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_4_Template, 3, 1, "kendo-tabstrip-tab", 3)(5, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_5_Template, 3, 1, "kendo-tabstrip-tab", 3)(6, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Conditional_6_Template, 3, 0, "kendo-tabstrip-tab");
|
|
166
172
|
i0.ɵɵelementEnd()();
|
|
167
|
-
i0.ɵɵelementStart(7, "div",
|
|
168
|
-
i0.ɵɵlistener("mousedown", function
|
|
169
|
-
i0.ɵɵelement(8, "div",
|
|
173
|
+
i0.ɵɵelementStart(7, "div", 34);
|
|
174
|
+
i0.ɵɵlistener("mousedown", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Template_div_mousedown_7_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.startResize($event)); })("touchstart", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Template_div_touchstart_7_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.startResize($event)); });
|
|
175
|
+
i0.ɵɵelement(8, "div", 35);
|
|
170
176
|
i0.ɵɵelementEnd();
|
|
171
177
|
} if (rf & 2) {
|
|
172
178
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -182,21 +188,21 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
182
188
|
i0.ɵɵadvance();
|
|
183
189
|
i0.ɵɵconditional(ctx_r1.showSpec ? 6 : -1);
|
|
184
190
|
} }
|
|
185
|
-
function
|
|
186
|
-
const
|
|
187
|
-
i0.ɵɵelementStart(0, "mj-react-component",
|
|
188
|
-
i0.ɵɵlistener("stateChange", function
|
|
191
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_30_Template(rf, ctx) { if (rf & 1) {
|
|
192
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
193
|
+
i0.ɵɵelementStart(0, "mj-react-component", 40);
|
|
194
|
+
i0.ɵɵlistener("stateChange", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_30_Template_mj_react_component_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r12); const ɵ$index_4_r3 = i0.ɵɵnextContext(2).$index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onStateChange(ɵ$index_4_r3, $event)); })("componentEvent", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_30_Template_mj_react_component_componentEvent_0_listener($event) { i0.ɵɵrestoreView(_r12); const ɵ$index_4_r3 = i0.ɵɵnextContext(2).$index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onComponentEvent(ɵ$index_4_r3, $event)); })("refreshData", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_30_Template_mj_react_component_refreshData_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.handleRefreshData()); })("openEntityRecord", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_30_Template_mj_react_component_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); });
|
|
189
195
|
i0.ɵɵelementEnd();
|
|
190
196
|
} if (rf & 2) {
|
|
191
197
|
const ɵ$index_4_r3 = i0.ɵɵnextContext(2).$index;
|
|
192
198
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
193
199
|
i0.ɵɵproperty("component", ctx_r1.componentOptions[ɵ$index_4_r3].option)("styles", ctx_r1.componentStyles || undefined);
|
|
194
200
|
} }
|
|
195
|
-
function
|
|
196
|
-
i0.ɵɵelementStart(0, "details",
|
|
201
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_31_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
202
|
+
i0.ɵɵelementStart(0, "details", 49)(1, "summary", 55);
|
|
197
203
|
i0.ɵɵtext(2, "Technical Details (click to expand)");
|
|
198
204
|
i0.ɵɵelementEnd();
|
|
199
|
-
i0.ɵɵelementStart(3, "pre",
|
|
205
|
+
i0.ɵɵelementStart(3, "pre", 56);
|
|
200
206
|
i0.ɵɵtext(4);
|
|
201
207
|
i0.ɵɵelementEnd()();
|
|
202
208
|
} if (rf & 2) {
|
|
@@ -204,21 +210,21 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
204
210
|
i0.ɵɵadvance(4);
|
|
205
211
|
i0.ɵɵtextInterpolate(ctx_r1.formatTechnicalDetails(ctx_r1.currentError.technicalDetails));
|
|
206
212
|
} }
|
|
207
|
-
function
|
|
208
|
-
const
|
|
209
|
-
i0.ɵɵelementStart(0, "div",
|
|
210
|
-
i0.ɵɵlistener("click", function
|
|
211
|
-
i0.ɵɵelement(4, "span",
|
|
213
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
214
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
215
|
+
i0.ɵɵelementStart(0, "div", 25)(1, "div", 41)(2, "div", 42)(3, "button", 43);
|
|
216
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_31_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.copyErrorToClipboard()); });
|
|
217
|
+
i0.ɵɵelement(4, "span", 44);
|
|
212
218
|
i0.ɵɵtext(5, " Copy Error Details ");
|
|
213
219
|
i0.ɵɵelementEnd();
|
|
214
|
-
i0.ɵɵelementStart(6, "h3",
|
|
215
|
-
i0.ɵɵelement(7, "span",
|
|
220
|
+
i0.ɵɵelementStart(6, "h3", 45);
|
|
221
|
+
i0.ɵɵelement(7, "span", 46);
|
|
216
222
|
i0.ɵɵtext(8, " Component Rendering Error ");
|
|
217
223
|
i0.ɵɵelementEnd()();
|
|
218
|
-
i0.ɵɵelementStart(9, "p",
|
|
224
|
+
i0.ɵɵelementStart(9, "p", 47);
|
|
219
225
|
i0.ɵɵtext(10, " The selected component option could not be rendered due to the following error: ");
|
|
220
226
|
i0.ɵɵelementEnd();
|
|
221
|
-
i0.ɵɵelementStart(11, "div",
|
|
227
|
+
i0.ɵɵelementStart(11, "div", 48)(12, "strong");
|
|
222
228
|
i0.ɵɵtext(13, "Error Type:");
|
|
223
229
|
i0.ɵɵelementEnd();
|
|
224
230
|
i0.ɵɵtext(14);
|
|
@@ -227,12 +233,12 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
227
233
|
i0.ɵɵtext(17, "Details:");
|
|
228
234
|
i0.ɵɵelementEnd();
|
|
229
235
|
i0.ɵɵtext(18);
|
|
230
|
-
i0.ɵɵtemplate(19,
|
|
236
|
+
i0.ɵɵtemplate(19, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_31_Conditional_19_Template, 5, 1, "details", 49);
|
|
231
237
|
i0.ɵɵelementEnd();
|
|
232
|
-
i0.ɵɵelementStart(20, "div",
|
|
238
|
+
i0.ɵɵelementStart(20, "div", 50)(21, "strong", 51);
|
|
233
239
|
i0.ɵɵtext(22, "What to do:");
|
|
234
240
|
i0.ɵɵelementEnd();
|
|
235
|
-
i0.ɵɵelementStart(23, "ol",
|
|
241
|
+
i0.ɵɵelementStart(23, "ol", 52)(24, "li");
|
|
236
242
|
i0.ɵɵtext(25, "Try selecting a different report option from the tabs above");
|
|
237
243
|
i0.ɵɵelementEnd();
|
|
238
244
|
i0.ɵɵelementStart(26, "li");
|
|
@@ -241,9 +247,9 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
241
247
|
i0.ɵɵelementStart(28, "li");
|
|
242
248
|
i0.ɵɵtext(29, "Contact your IT department if the issue persists");
|
|
243
249
|
i0.ɵɵelementEnd()()();
|
|
244
|
-
i0.ɵɵelementStart(30, "button",
|
|
245
|
-
i0.ɵɵlistener("click", function
|
|
246
|
-
i0.ɵɵelement(31, "span",
|
|
250
|
+
i0.ɵɵelementStart(30, "button", 53);
|
|
251
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_31_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.retryCurrentOption()); });
|
|
252
|
+
i0.ɵɵelement(31, "span", 54);
|
|
247
253
|
i0.ɵɵtext(32, " Retry ");
|
|
248
254
|
i0.ɵɵelementEnd()()();
|
|
249
255
|
} if (rf & 2) {
|
|
@@ -288,12 +294,12 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Templ
|
|
|
288
294
|
i0.ɵɵtext(22, "Spec");
|
|
289
295
|
i0.ɵɵelementEnd()()();
|
|
290
296
|
i0.ɵɵelementStart(23, "div", 18);
|
|
291
|
-
i0.ɵɵtemplate(24, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_24_Template, 4,
|
|
297
|
+
i0.ɵɵtemplate(24, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_24_Template, 4, 1, "button", 19)(25, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_25_Template, 4, 0, "button", 20)(26, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_26_Template, 4, 0, "button", 21);
|
|
292
298
|
i0.ɵɵelementEnd()();
|
|
293
|
-
i0.ɵɵelementStart(
|
|
294
|
-
i0.ɵɵtemplate(
|
|
295
|
-
i0.ɵɵelementStart(
|
|
296
|
-
i0.ɵɵtemplate(
|
|
299
|
+
i0.ɵɵelementStart(27, "div", 22);
|
|
300
|
+
i0.ɵɵtemplate(28, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_28_Template, 9, 7);
|
|
301
|
+
i0.ɵɵelementStart(29, "div", 23);
|
|
302
|
+
i0.ɵɵtemplate(30, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_30_Template, 1, 2, "mj-react-component", 24)(31, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_31_Template, 33, 3, "div", 25);
|
|
297
303
|
i0.ɵɵelementEnd()()();
|
|
298
304
|
} if (rf & 2) {
|
|
299
305
|
const ɵ$index_4_r3 = i0.ɵɵnextContext().$index;
|
|
@@ -311,19 +317,21 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Templ
|
|
|
311
317
|
i0.ɵɵadvance(5);
|
|
312
318
|
i0.ɵɵproperty("ngIf", ctx_r1.ShowCreateReportButton && !ctx_r1.matchingReportID);
|
|
313
319
|
i0.ɵɵadvance();
|
|
320
|
+
i0.ɵɵproperty("ngIf", ctx_r1.ShowOpenSavedReportButton && ctx_r1.matchingReportID);
|
|
321
|
+
i0.ɵɵadvance();
|
|
314
322
|
i0.ɵɵproperty("ngIf", ctx_r1.ShowPrintReport);
|
|
315
323
|
i0.ɵɵadvance(2);
|
|
316
|
-
i0.ɵɵconditional(ctx_r1.showFunctionalRequirements || ctx_r1.showDataRequirements || ctx_r1.showTechnicalDesign || ctx_r1.showCode ?
|
|
324
|
+
i0.ɵɵconditional(ctx_r1.showFunctionalRequirements || ctx_r1.showDataRequirements || ctx_r1.showTechnicalDesign || ctx_r1.showCode ? 28 : -1);
|
|
317
325
|
i0.ɵɵadvance();
|
|
318
326
|
i0.ɵɵattribute("data-tab-index", ɵ$index_4_r3);
|
|
319
327
|
i0.ɵɵadvance();
|
|
320
328
|
i0.ɵɵproperty("ngIf", !ctx_r1.currentError && ctx_r1.componentOptions[ɵ$index_4_r3] && ɵ$index_4_r3 === ctx_r1.selectedReportOptionIndex);
|
|
321
329
|
i0.ɵɵadvance();
|
|
322
|
-
i0.ɵɵconditional(ctx_r1.currentError && ctx_r1.selectedReportOptionIndex === ɵ$index_4_r3 ?
|
|
330
|
+
i0.ɵɵconditional(ctx_r1.currentError && ctx_r1.selectedReportOptionIndex === ɵ$index_4_r3 ? 31 : -1);
|
|
323
331
|
} }
|
|
324
332
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
325
333
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
326
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Template, 2, 2, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Template,
|
|
334
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Template, 2, 2, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Template, 32, 17, "ng-template", 5);
|
|
327
335
|
i0.ɵɵelementEnd();
|
|
328
336
|
} if (rf & 2) {
|
|
329
337
|
const ɵ$index_4_r3 = ctx.$index;
|
|
@@ -343,142 +351,149 @@ function SkipDynamicUIComponentComponent_Conditional_0_Template(rf, ctx) { if (r
|
|
|
343
351
|
i0.ɵɵrepeater(ctx_r1.componentOptions);
|
|
344
352
|
} }
|
|
345
353
|
function SkipDynamicUIComponentComponent_Conditional_1_button_24_Template(rf, ctx) { if (rf & 1) {
|
|
346
|
-
const
|
|
347
|
-
i0.ɵɵelementStart(0, "button",
|
|
348
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_24_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
349
|
-
i0.ɵɵelement(1, "i",
|
|
354
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
355
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
356
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_24_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createReportForOption(0)); });
|
|
357
|
+
i0.ɵɵelement(1, "i", 27);
|
|
350
358
|
i0.ɵɵelementStart(2, "span");
|
|
351
|
-
i0.ɵɵtext(3);
|
|
359
|
+
i0.ɵɵtext(3, "Create Report");
|
|
352
360
|
i0.ɵɵelementEnd()();
|
|
353
361
|
} if (rf & 2) {
|
|
354
362
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
355
363
|
i0.ɵɵproperty("disabled", ctx_r1.isCreatingReport);
|
|
356
|
-
i0.ɵɵadvance(3);
|
|
357
|
-
i0.ɵɵtextInterpolate1("Create ", ctx_r1.firstOptionComponentTypeName, "");
|
|
358
364
|
} }
|
|
359
365
|
function SkipDynamicUIComponentComponent_Conditional_1_button_25_Template(rf, ctx) { if (rf & 1) {
|
|
360
|
-
const
|
|
361
|
-
i0.ɵɵelementStart(0, "button",
|
|
362
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_25_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
363
|
-
i0.ɵɵelement(1, "i",
|
|
366
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
367
|
+
i0.ɵɵelementStart(0, "button", 28);
|
|
368
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_25_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openReportForOption(0)); });
|
|
369
|
+
i0.ɵɵelement(1, "i", 29);
|
|
370
|
+
i0.ɵɵelementStart(2, "span");
|
|
371
|
+
i0.ɵɵtext(3, "Open Saved Report");
|
|
372
|
+
i0.ɵɵelementEnd()();
|
|
373
|
+
} }
|
|
374
|
+
function SkipDynamicUIComponentComponent_Conditional_1_button_26_Template(rf, ctx) { if (rf & 1) {
|
|
375
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
376
|
+
i0.ɵɵelementStart(0, "button", 30);
|
|
377
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_26_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.PrintReport()); });
|
|
378
|
+
i0.ɵɵelement(1, "i", 31);
|
|
364
379
|
i0.ɵɵelementStart(2, "span");
|
|
365
380
|
i0.ɵɵtext(3, "Print Report");
|
|
366
381
|
i0.ɵɵelementEnd()();
|
|
367
382
|
} }
|
|
368
|
-
function
|
|
383
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
369
384
|
i0.ɵɵelement(0, "i", 10);
|
|
370
385
|
i0.ɵɵtext(1, " Functional Requirements ");
|
|
371
386
|
} }
|
|
372
|
-
function
|
|
373
|
-
i0.ɵɵelementStart(0, "div",
|
|
374
|
-
i0.ɵɵelement(1, "div",
|
|
387
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
388
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
389
|
+
i0.ɵɵelement(1, "div", 37);
|
|
375
390
|
i0.ɵɵelementEnd();
|
|
376
391
|
} if (rf & 2) {
|
|
377
392
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
378
393
|
i0.ɵɵadvance();
|
|
379
394
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedFunctionalRequirements(ctx_r1.componentOptions[0]), i0.ɵɵsanitizeHtml);
|
|
380
395
|
} }
|
|
381
|
-
function
|
|
396
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
382
397
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
383
|
-
i0.ɵɵtemplate(1,
|
|
398
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_2_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_2_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
384
399
|
i0.ɵɵelementEnd();
|
|
385
400
|
} if (rf & 2) {
|
|
386
401
|
i0.ɵɵproperty("selected", true);
|
|
387
402
|
} }
|
|
388
|
-
function
|
|
403
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
389
404
|
i0.ɵɵelement(0, "i", 12);
|
|
390
405
|
i0.ɵɵtext(1, " Data Requirements ");
|
|
391
406
|
} }
|
|
392
|
-
function
|
|
393
|
-
i0.ɵɵelementStart(0, "div",
|
|
394
|
-
i0.ɵɵelement(1, "div",
|
|
407
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
408
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
409
|
+
i0.ɵɵelement(1, "div", 37);
|
|
395
410
|
i0.ɵɵelementEnd();
|
|
396
411
|
} if (rf & 2) {
|
|
397
412
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
398
413
|
i0.ɵɵadvance();
|
|
399
414
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedDataRequirements(ctx_r1.componentOptions[0]), i0.ɵɵsanitizeHtml);
|
|
400
415
|
} }
|
|
401
|
-
function
|
|
416
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
402
417
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
403
|
-
i0.ɵɵtemplate(1,
|
|
418
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_3_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_3_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
404
419
|
i0.ɵɵelementEnd();
|
|
405
420
|
} if (rf & 2) {
|
|
406
421
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
407
422
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements);
|
|
408
423
|
} }
|
|
409
|
-
function
|
|
424
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_4_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
410
425
|
i0.ɵɵelement(0, "i", 14);
|
|
411
426
|
i0.ɵɵtext(1, " Technical Design ");
|
|
412
427
|
} }
|
|
413
|
-
function
|
|
414
|
-
i0.ɵɵelementStart(0, "div",
|
|
415
|
-
i0.ɵɵelement(1, "div",
|
|
428
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
429
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
430
|
+
i0.ɵɵelement(1, "div", 37);
|
|
416
431
|
i0.ɵɵelementEnd();
|
|
417
432
|
} if (rf & 2) {
|
|
418
433
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
419
434
|
i0.ɵɵadvance();
|
|
420
435
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedTechnicalDesign(ctx_r1.componentOptions[0]), i0.ɵɵsanitizeHtml);
|
|
421
436
|
} }
|
|
422
|
-
function
|
|
437
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
423
438
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
424
|
-
i0.ɵɵtemplate(1,
|
|
439
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_4_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_4_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
425
440
|
i0.ɵɵelementEnd();
|
|
426
441
|
} if (rf & 2) {
|
|
427
442
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
428
443
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements && !ctx_r1.showDataRequirements);
|
|
429
444
|
} }
|
|
430
|
-
function
|
|
445
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_5_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
431
446
|
i0.ɵɵelement(0, "i", 16);
|
|
432
447
|
i0.ɵɵtext(1, " Code ");
|
|
433
448
|
} }
|
|
434
|
-
function
|
|
435
|
-
const
|
|
436
|
-
i0.ɵɵelementStart(0, "div",
|
|
437
|
-
i0.ɵɵlistener("toolbarAction", function
|
|
449
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
450
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
451
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mj-code-editor", 59);
|
|
452
|
+
i0.ɵɵlistener("toolbarAction", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_5_ng_template_2_Template_mj_code_editor_toolbarAction_1_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.handleCodeToolbarAction($event)); });
|
|
438
453
|
i0.ɵɵelementEnd()();
|
|
439
454
|
} if (rf & 2) {
|
|
440
455
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
441
456
|
i0.ɵɵadvance();
|
|
442
457
|
i0.ɵɵproperty("language", "javascript")("value", ctx_r1.getComponentCode(ctx_r1.componentOptions[0]))("autoFocus", false)("indentWithTab", true)("readonly", true)("toolbar", ctx_r1.codeToolbarConfig);
|
|
443
458
|
} }
|
|
444
|
-
function
|
|
459
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
445
460
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
446
|
-
i0.ɵɵtemplate(1,
|
|
461
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_5_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_5_ng_template_2_Template, 2, 6, "ng-template", 5);
|
|
447
462
|
i0.ɵɵelementEnd();
|
|
448
463
|
} if (rf & 2) {
|
|
449
464
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
450
465
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements && !ctx_r1.showDataRequirements && !ctx_r1.showTechnicalDesign);
|
|
451
466
|
} }
|
|
452
|
-
function
|
|
453
|
-
i0.ɵɵelement(0, "i",
|
|
467
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_6_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
468
|
+
i0.ɵɵelement(0, "i", 57);
|
|
454
469
|
i0.ɵɵtext(1, " Spec ");
|
|
455
470
|
} }
|
|
456
|
-
function
|
|
457
|
-
const
|
|
458
|
-
i0.ɵɵelementStart(0, "div",
|
|
459
|
-
i0.ɵɵlistener("toolbarAction", function
|
|
471
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_6_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
472
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
473
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mj-code-editor", 39);
|
|
474
|
+
i0.ɵɵlistener("toolbarAction", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_6_ng_template_2_Template_mj_code_editor_toolbarAction_1_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.handleCodeToolbarAction($event)); });
|
|
460
475
|
i0.ɵɵelementEnd()();
|
|
461
476
|
} if (rf & 2) {
|
|
462
477
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
463
478
|
i0.ɵɵadvance();
|
|
464
479
|
i0.ɵɵproperty("value", ctx_r1.getComponentSpec(ctx_r1.componentOptions[0]))("language", "json")("autoFocus", false)("indentWithTab", true)("readonly", true)("toolbar", ctx_r1.codeToolbarConfig);
|
|
465
480
|
} }
|
|
466
|
-
function
|
|
481
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
467
482
|
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
468
|
-
i0.ɵɵtemplate(1,
|
|
483
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_6_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_6_ng_template_2_Template, 2, 6, "ng-template", 5);
|
|
469
484
|
i0.ɵɵelementEnd();
|
|
470
485
|
} if (rf & 2) {
|
|
471
486
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
472
487
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements && !ctx_r1.showDataRequirements && !ctx_r1.showTechnicalDesign && !ctx_r1.showCode);
|
|
473
488
|
} }
|
|
474
|
-
function
|
|
475
|
-
const
|
|
476
|
-
i0.ɵɵelementStart(0, "div",
|
|
477
|
-
i0.ɵɵtemplate(2,
|
|
489
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
490
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
491
|
+
i0.ɵɵelementStart(0, "div", 32)(1, "kendo-tabstrip", 33);
|
|
492
|
+
i0.ɵɵtemplate(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_2_Template, 3, 1, "kendo-tabstrip-tab", 3)(3, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_3_Template, 3, 1, "kendo-tabstrip-tab", 3)(4, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_4_Template, 3, 1, "kendo-tabstrip-tab", 3)(5, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_5_Template, 3, 1, "kendo-tabstrip-tab", 3)(6, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditional_6_Template, 3, 1, "kendo-tabstrip-tab", 3);
|
|
478
493
|
i0.ɵɵelementEnd()();
|
|
479
|
-
i0.ɵɵelementStart(7, "div",
|
|
480
|
-
i0.ɵɵlistener("mousedown", function
|
|
481
|
-
i0.ɵɵelement(8, "div",
|
|
494
|
+
i0.ɵɵelementStart(7, "div", 34);
|
|
495
|
+
i0.ɵɵlistener("mousedown", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Template_div_mousedown_7_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.startResize($event)); })("touchstart", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Template_div_touchstart_7_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.startResize($event)); });
|
|
496
|
+
i0.ɵɵelement(8, "div", 35);
|
|
482
497
|
i0.ɵɵelementEnd();
|
|
483
498
|
} if (rf & 2) {
|
|
484
499
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -494,11 +509,11 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_27_Template(r
|
|
|
494
509
|
i0.ɵɵadvance();
|
|
495
510
|
i0.ɵɵconditional(ctx_r1.showSpec && ctx_r1.componentOptions[0] ? 6 : -1);
|
|
496
511
|
} }
|
|
497
|
-
function
|
|
498
|
-
i0.ɵɵelementStart(0, "details",
|
|
512
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_29_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
513
|
+
i0.ɵɵelementStart(0, "details", 49)(1, "summary", 55);
|
|
499
514
|
i0.ɵɵtext(2, "Technical Details (click to expand)");
|
|
500
515
|
i0.ɵɵelementEnd();
|
|
501
|
-
i0.ɵɵelementStart(3, "pre",
|
|
516
|
+
i0.ɵɵelementStart(3, "pre", 56);
|
|
502
517
|
i0.ɵɵtext(4);
|
|
503
518
|
i0.ɵɵelementEnd()();
|
|
504
519
|
} if (rf & 2) {
|
|
@@ -506,21 +521,21 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Conditiona
|
|
|
506
521
|
i0.ɵɵadvance(4);
|
|
507
522
|
i0.ɵɵtextInterpolate(ctx_r1.formatTechnicalDetails(ctx_r1.currentError.technicalDetails));
|
|
508
523
|
} }
|
|
509
|
-
function
|
|
510
|
-
const
|
|
511
|
-
i0.ɵɵelementStart(0, "div",
|
|
512
|
-
i0.ɵɵlistener("click", function
|
|
513
|
-
i0.ɵɵelement(4, "span",
|
|
524
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_29_Template(rf, ctx) { if (rf & 1) {
|
|
525
|
+
const _r21 = i0.ɵɵgetCurrentView();
|
|
526
|
+
i0.ɵɵelementStart(0, "div", 58)(1, "div", 60)(2, "div", 42)(3, "button", 43);
|
|
527
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_29_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.copyErrorToClipboard()); });
|
|
528
|
+
i0.ɵɵelement(4, "span", 44);
|
|
514
529
|
i0.ɵɵtext(5, " Copy Error Details ");
|
|
515
530
|
i0.ɵɵelementEnd();
|
|
516
|
-
i0.ɵɵelementStart(6, "h3",
|
|
517
|
-
i0.ɵɵelement(7, "span",
|
|
531
|
+
i0.ɵɵelementStart(6, "h3", 45);
|
|
532
|
+
i0.ɵɵelement(7, "span", 46);
|
|
518
533
|
i0.ɵɵtext(8, " Component Rendering Error ");
|
|
519
534
|
i0.ɵɵelementEnd()();
|
|
520
|
-
i0.ɵɵelementStart(9, "p",
|
|
535
|
+
i0.ɵɵelementStart(9, "p", 47);
|
|
521
536
|
i0.ɵɵtext(10, " The selected component option could not be rendered due to the following error: ");
|
|
522
537
|
i0.ɵɵelementEnd();
|
|
523
|
-
i0.ɵɵelementStart(11, "div",
|
|
538
|
+
i0.ɵɵelementStart(11, "div", 48)(12, "strong");
|
|
524
539
|
i0.ɵɵtext(13, "Error Type:");
|
|
525
540
|
i0.ɵɵelementEnd();
|
|
526
541
|
i0.ɵɵtext(14);
|
|
@@ -529,20 +544,20 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Template(r
|
|
|
529
544
|
i0.ɵɵtext(17, "Details:");
|
|
530
545
|
i0.ɵɵelementEnd();
|
|
531
546
|
i0.ɵɵtext(18);
|
|
532
|
-
i0.ɵɵtemplate(19,
|
|
547
|
+
i0.ɵɵtemplate(19, SkipDynamicUIComponentComponent_Conditional_1_Conditional_29_Conditional_19_Template, 5, 1, "details", 49);
|
|
533
548
|
i0.ɵɵelementEnd();
|
|
534
|
-
i0.ɵɵelementStart(20, "div",
|
|
549
|
+
i0.ɵɵelementStart(20, "div", 50)(21, "strong", 51);
|
|
535
550
|
i0.ɵɵtext(22, "What to do:");
|
|
536
551
|
i0.ɵɵelementEnd();
|
|
537
|
-
i0.ɵɵelementStart(23, "ol",
|
|
552
|
+
i0.ɵɵelementStart(23, "ol", 52)(24, "li");
|
|
538
553
|
i0.ɵɵtext(25, "Copy the error details and send them back to Skip in the chat to get a corrected version");
|
|
539
554
|
i0.ɵɵelementEnd();
|
|
540
555
|
i0.ɵɵelementStart(26, "li");
|
|
541
556
|
i0.ɵɵtext(27, "Contact your IT department if the issue persists");
|
|
542
557
|
i0.ɵɵelementEnd()()();
|
|
543
|
-
i0.ɵɵelementStart(28, "button",
|
|
544
|
-
i0.ɵɵlistener("click", function
|
|
545
|
-
i0.ɵɵelement(29, "span",
|
|
558
|
+
i0.ɵɵelementStart(28, "button", 53);
|
|
559
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_29_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.retryCurrentOption()); });
|
|
560
|
+
i0.ɵɵelement(29, "span", 54);
|
|
546
561
|
i0.ɵɵtext(30, " Retry ");
|
|
547
562
|
i0.ɵɵelementEnd()()();
|
|
548
563
|
} if (rf & 2) {
|
|
@@ -554,18 +569,18 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Template(r
|
|
|
554
569
|
i0.ɵɵadvance();
|
|
555
570
|
i0.ɵɵconditional(ctx_r1.currentError.technicalDetails ? 19 : -1);
|
|
556
571
|
} }
|
|
557
|
-
function
|
|
558
|
-
const
|
|
559
|
-
i0.ɵɵelementStart(0, "mj-react-component",
|
|
560
|
-
i0.ɵɵlistener("stateChange", function
|
|
572
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_30_mj_react_component_1_Template(rf, ctx) { if (rf & 1) {
|
|
573
|
+
const _r22 = i0.ɵɵgetCurrentView();
|
|
574
|
+
i0.ɵɵelementStart(0, "mj-react-component", 40);
|
|
575
|
+
i0.ɵɵlistener("stateChange", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_30_mj_react_component_1_Template_mj_react_component_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onStateChange(0, $event)); })("componentEvent", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_30_mj_react_component_1_Template_mj_react_component_componentEvent_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onComponentEvent(0, $event)); })("refreshData", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_30_mj_react_component_1_Template_mj_react_component_refreshData_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handleRefreshData()); })("openEntityRecord", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_30_mj_react_component_1_Template_mj_react_component_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); });
|
|
561
576
|
i0.ɵɵelementEnd();
|
|
562
577
|
} if (rf & 2) {
|
|
563
578
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
564
579
|
i0.ɵɵproperty("component", ctx_r1.componentOptions[0].option)("styles", ctx_r1.componentStyles || undefined);
|
|
565
580
|
} }
|
|
566
|
-
function
|
|
567
|
-
i0.ɵɵelementStart(0, "div",
|
|
568
|
-
i0.ɵɵtemplate(1,
|
|
581
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
582
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
583
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_30_mj_react_component_1_Template, 1, 2, "mj-react-component", 24);
|
|
569
584
|
i0.ɵɵelementEnd();
|
|
570
585
|
} if (rf & 2) {
|
|
571
586
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -573,42 +588,42 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_29_Template(r
|
|
|
573
588
|
i0.ɵɵproperty("ngIf", ctx_r1.componentOptions[0]);
|
|
574
589
|
} }
|
|
575
590
|
function SkipDynamicUIComponentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
576
|
-
const
|
|
591
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
577
592
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 7)(2, "div", 8)(3, "button", 9);
|
|
578
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_3_listener() { i0.ɵɵrestoreView(
|
|
593
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowFunctionalRequirements()); });
|
|
579
594
|
i0.ɵɵelement(4, "i", 10);
|
|
580
595
|
i0.ɵɵelementStart(5, "span");
|
|
581
596
|
i0.ɵɵtext(6, "Functional");
|
|
582
597
|
i0.ɵɵelementEnd()();
|
|
583
598
|
i0.ɵɵelementStart(7, "button", 11);
|
|
584
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_7_listener() { i0.ɵɵrestoreView(
|
|
599
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowDataRequirements()); });
|
|
585
600
|
i0.ɵɵelement(8, "i", 12);
|
|
586
601
|
i0.ɵɵelementStart(9, "span");
|
|
587
602
|
i0.ɵɵtext(10, "Data");
|
|
588
603
|
i0.ɵɵelementEnd()();
|
|
589
604
|
i0.ɵɵelementStart(11, "button", 13);
|
|
590
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_11_listener() { i0.ɵɵrestoreView(
|
|
605
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowTechnicalDesign()); });
|
|
591
606
|
i0.ɵɵelement(12, "i", 14);
|
|
592
607
|
i0.ɵɵelementStart(13, "span");
|
|
593
608
|
i0.ɵɵtext(14, "Technical");
|
|
594
609
|
i0.ɵɵelementEnd()();
|
|
595
610
|
i0.ɵɵelementStart(15, "button", 15);
|
|
596
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_15_listener() { i0.ɵɵrestoreView(
|
|
611
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowCode()); });
|
|
597
612
|
i0.ɵɵelement(16, "i", 16);
|
|
598
613
|
i0.ɵɵelementStart(17, "span");
|
|
599
614
|
i0.ɵɵtext(18, "Code");
|
|
600
615
|
i0.ɵɵelementEnd()();
|
|
601
616
|
i0.ɵɵelementStart(19, "button", 17);
|
|
602
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_19_listener() { i0.ɵɵrestoreView(
|
|
603
|
-
i0.ɵɵelement(20, "i",
|
|
617
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowSpec()); });
|
|
618
|
+
i0.ɵɵelement(20, "i", 57);
|
|
604
619
|
i0.ɵɵelementStart(21, "span");
|
|
605
620
|
i0.ɵɵtext(22, "Spec");
|
|
606
621
|
i0.ɵɵelementEnd()()();
|
|
607
622
|
i0.ɵɵelementStart(23, "div", 18);
|
|
608
|
-
i0.ɵɵtemplate(24, SkipDynamicUIComponentComponent_Conditional_1_button_24_Template, 4,
|
|
623
|
+
i0.ɵɵtemplate(24, SkipDynamicUIComponentComponent_Conditional_1_button_24_Template, 4, 1, "button", 19)(25, SkipDynamicUIComponentComponent_Conditional_1_button_25_Template, 4, 0, "button", 20)(26, SkipDynamicUIComponentComponent_Conditional_1_button_26_Template, 4, 0, "button", 21);
|
|
609
624
|
i0.ɵɵelementEnd()();
|
|
610
|
-
i0.ɵɵelementStart(
|
|
611
|
-
i0.ɵɵtemplate(
|
|
625
|
+
i0.ɵɵelementStart(27, "div", 22);
|
|
626
|
+
i0.ɵɵtemplate(28, SkipDynamicUIComponentComponent_Conditional_1_Conditional_28_Template, 9, 7)(29, SkipDynamicUIComponentComponent_Conditional_1_Conditional_29_Template, 31, 3, "div", 58)(30, SkipDynamicUIComponentComponent_Conditional_1_Conditional_30_Template, 2, 1, "div", 23);
|
|
612
627
|
i0.ɵɵelementEnd()();
|
|
613
628
|
} if (rf & 2) {
|
|
614
629
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -625,11 +640,13 @@ function SkipDynamicUIComponentComponent_Conditional_1_Template(rf, ctx) { if (r
|
|
|
625
640
|
i0.ɵɵadvance(5);
|
|
626
641
|
i0.ɵɵproperty("ngIf", ctx_r1.ShowCreateReportButton && !ctx_r1.matchingReportID);
|
|
627
642
|
i0.ɵɵadvance();
|
|
643
|
+
i0.ɵɵproperty("ngIf", ctx_r1.ShowOpenSavedReportButton && ctx_r1.matchingReportID);
|
|
644
|
+
i0.ɵɵadvance();
|
|
628
645
|
i0.ɵɵproperty("ngIf", ctx_r1.ShowPrintReport);
|
|
629
646
|
i0.ɵɵadvance(2);
|
|
630
|
-
i0.ɵɵconditional(ctx_r1.showFunctionalRequirements || ctx_r1.showDataRequirements || ctx_r1.showTechnicalDesign || ctx_r1.showCode || ctx_r1.showSpec ?
|
|
647
|
+
i0.ɵɵconditional(ctx_r1.showFunctionalRequirements || ctx_r1.showDataRequirements || ctx_r1.showTechnicalDesign || ctx_r1.showCode || ctx_r1.showSpec ? 28 : -1);
|
|
631
648
|
i0.ɵɵadvance();
|
|
632
|
-
i0.ɵɵconditional(ctx_r1.currentError ?
|
|
649
|
+
i0.ɵɵconditional(ctx_r1.currentError ? 29 : 30);
|
|
633
650
|
} }
|
|
634
651
|
export class SkipDynamicUIComponentComponent {
|
|
635
652
|
sanitizer;
|
|
@@ -641,9 +658,11 @@ export class SkipDynamicUIComponentComponent {
|
|
|
641
658
|
ShowPrintReport = true;
|
|
642
659
|
ShowReportOptionsToggle = true;
|
|
643
660
|
ShowCreateReportButton = false;
|
|
661
|
+
ShowOpenSavedReportButton = true;
|
|
644
662
|
matchingReportID = null;
|
|
645
663
|
DrillDownEvent = new EventEmitter();
|
|
646
664
|
CreateReportRequested = new EventEmitter();
|
|
665
|
+
NavigateToMatchingReportRequested = new EventEmitter();
|
|
647
666
|
reactComponents;
|
|
648
667
|
// Properties for handling multiple report options
|
|
649
668
|
componentOptions = [];
|
|
@@ -835,6 +854,9 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
835
854
|
// Emit the event with the option index so the parent can handle it
|
|
836
855
|
this.CreateReportRequested.emit(optionIndex);
|
|
837
856
|
}
|
|
857
|
+
openReportForOption(optionIndex) {
|
|
858
|
+
this.NavigateToMatchingReportRequested.emit(optionIndex);
|
|
859
|
+
}
|
|
838
860
|
/**
|
|
839
861
|
* Get the component type name for display
|
|
840
862
|
*/
|
|
@@ -1271,15 +1293,15 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
1271
1293
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reactComponents = _t);
|
|
1272
1294
|
} }, hostBindings: function SkipDynamicUIComponentComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
1273
1295
|
i0.ɵɵlistener("resize", function SkipDynamicUIComponentComponent_resize_HostBindingHandler() { return ctx.onWindowResize(); }, false, i0.ɵɵresolveWindow);
|
|
1274
|
-
} }, inputs: { UIComponentCode: "UIComponentCode", ComponentObjectName: "ComponentObjectName", ShowPrintReport: "ShowPrintReport", ShowReportOptionsToggle: "ShowReportOptionsToggle", ShowCreateReportButton: "ShowCreateReportButton", matchingReportID: "matchingReportID", SkipData: "SkipData" }, outputs: { DrillDownEvent: "DrillDownEvent", CreateReportRequested: "CreateReportRequested" }, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 1, consts: [[2, "height", "100%", "display", "flex", "flex-direction", "column", 3, "keepTabContent"], [2, "height", "100%", "display", "flex", "flex-direction", "column"], [2, "height", "100%", "display", "flex", "flex-direction", "column", 3, "tabSelect", "keepTabContent"], [3, "selected"], ["kendoTabTitle", ""], ["kendoTabContent", ""], [1, "fa-solid", "fa-star", "star-icon"], [1, "tab-action-bar"], [1, "tab-actions-left"], ["title", "Toggle Functional Requirements", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "fa-solid", "fa-list-check"], ["title", "Toggle Data Requirements", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "fa-solid", "fa-database"], ["title", "Toggle Technical Design", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "fa-solid", "fa-cogs"], ["title", "Toggle Code View", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "fa-solid", "fa-code"], ["title", "Toggle Spec View", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "tab-actions-right"], ["class", "tab-action-button create-button", 3, "disabled", "click", 4, "ngIf"], ["class", "tab-action-button print-button", "title", "Print Report", 3, "click", 4, "ngIf"], [2, "flex", "1", "display", "flex", "flex-direction", "column", "min-height", "0", "overflow", "hidden"], [2, "flex", "1", "position", "relative", "min-height", "0", "overflow", "auto"], ["style", "width: 100%; height: 100%;", 3, "component", "styles", "stateChange", "componentEvent", "refreshData", "openEntityRecord", 4, "ngIf"], [2, "top", "0", "left", "0", "right", "0", "bottom", "0", "display", "flex", "align-items", "flex-start", "justify-content", "center", "padding-top", "20px", "background", "rgba(255, 255, 255, 0.95)", "z-index", "10"], [1, "tab-action-button", "create-button", 3, "click", "disabled"], [1, "fa-solid", "fa-
|
|
1275
|
-
i0.ɵɵtemplate(0, SkipDynamicUIComponentComponent_Conditional_0_Template, 3, 1, "kendo-tabstrip", 0)(1, SkipDynamicUIComponentComponent_Conditional_1_Template,
|
|
1296
|
+
} }, inputs: { UIComponentCode: "UIComponentCode", ComponentObjectName: "ComponentObjectName", ShowPrintReport: "ShowPrintReport", ShowReportOptionsToggle: "ShowReportOptionsToggle", ShowCreateReportButton: "ShowCreateReportButton", ShowOpenSavedReportButton: "ShowOpenSavedReportButton", matchingReportID: "matchingReportID", SkipData: "SkipData" }, outputs: { DrillDownEvent: "DrillDownEvent", CreateReportRequested: "CreateReportRequested", NavigateToMatchingReportRequested: "NavigateToMatchingReportRequested" }, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 1, consts: [[2, "height", "100%", "display", "flex", "flex-direction", "column", 3, "keepTabContent"], [2, "height", "100%", "display", "flex", "flex-direction", "column"], [2, "height", "100%", "display", "flex", "flex-direction", "column", 3, "tabSelect", "keepTabContent"], [3, "selected"], ["kendoTabTitle", ""], ["kendoTabContent", ""], [1, "fa-solid", "fa-star", "star-icon"], [1, "tab-action-bar"], [1, "tab-actions-left"], ["title", "Toggle Functional Requirements", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "fa-solid", "fa-list-check"], ["title", "Toggle Data Requirements", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "fa-solid", "fa-database"], ["title", "Toggle Technical Design", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "fa-solid", "fa-cogs"], ["title", "Toggle Code View", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "fa-solid", "fa-code"], ["title", "Toggle Spec View", 1, "tab-action-button", "toggle-button", 3, "click"], [1, "tab-actions-right"], ["class", "tab-action-button create-button", 3, "disabled", "click", 4, "ngIf"], ["class", "tab-action-button create-button", 3, "click", 4, "ngIf"], ["class", "tab-action-button print-button", "title", "Print Report", 3, "click", 4, "ngIf"], [2, "flex", "1", "display", "flex", "flex-direction", "column", "min-height", "0", "overflow", "hidden"], [2, "flex", "1", "position", "relative", "min-height", "0", "overflow", "auto"], ["style", "width: 100%; height: 100%;", 3, "component", "styles", "stateChange", "componentEvent", "refreshData", "openEntityRecord", 4, "ngIf"], [2, "top", "0", "left", "0", "right", "0", "bottom", "0", "display", "flex", "align-items", "flex-start", "justify-content", "center", "padding-top", "20px", "background", "rgba(255, 255, 255, 0.95)", "z-index", "10"], [1, "tab-action-button", "create-button", 3, "click", "disabled"], [1, "fa-solid", "fa-save"], [1, "tab-action-button", "create-button", 3, "click"], [1, "fa-solid", "fa-folder-open"], ["title", "Print Report", 1, "tab-action-button", "print-button", 3, "click"], [1, "fa-solid", "fa-print"], [1, "details-panel"], [2, "height", "100%"], [1, "panel-resizer", 3, "mousedown", "touchstart"], [1, "resizer-handle"], [1, "details-content"], [3, "innerHTML"], [1, "details-content", "code-content"], [2, "height", "100%", 3, "toolbarAction", "value", "language", "autoFocus", "indentWithTab", "readonly", "toolbar"], [2, "width", "100%", "height", "100%", 3, "stateChange", "componentEvent", "refreshData", "openEntityRecord", "component", "styles"], [2, "width", "90%", "max-width", "600px", "height", "500px", "background-color", "#f8f9fa", "border", "2px solid #dc3545", "border-radius", "8px", "padding", "20px", "overflow-y", "auto", "box-shadow", "0 4px 6px rgba(0, 0, 0, 0.1)"], [2, "position", "relative"], ["kendoButton", "", 2, "position", "absolute", "top", "0", "right", "0", "font-size", "12px", 3, "click"], [1, "fa-solid", "fa-copy"], [2, "color", "#dc3545", "margin-top", "0", "margin-right", "150px", "font-size", "18px"], [1, "fa-solid", "fa-exclamation-triangle"], [2, "margin-bottom", "10px", "font-size", "14px"], [2, "background-color", "#fff", "border", "1px solid #dee2e6", "border-radius", "4px", "padding", "12px", "margin-bottom", "12px", "font-family", "'Courier New', monospace", "font-size", "12px"], [2, "margin-top", "8px"], [2, "background-color", "#e7f3ff", "border", "1px solid #b3d9ff", "border-radius", "4px", "padding", "12px", "margin-bottom", "12px"], [2, "font-size", "14px"], [2, "margin", "8px 0 0 20px", "padding", "0", "font-size", "13px"], ["kendoButton", "", 2, "font-size", "13px", 3, "click"], [1, "fa-solid", "fa-rotate"], [2, "cursor", "pointer", "color", "#0056b3"], [2, "margin-top", "8px", "white-space", "pre-wrap", "word-break", "break-word", "font-size", "11px"], [1, "fa-solid", "fa-file-code"], [2, "flex", "1", "display", "flex", "align-items", "center", "justify-content", "center", "min-height", "400px", "padding", "20px", "background", "rgba(255, 255, 255, 0.95)"], [2, "height", "100%", 3, "toolbarAction", "language", "value", "autoFocus", "indentWithTab", "readonly", "toolbar"], [2, "width", "90%", "max-width", "600px", "max-height", "80vh", "background-color", "#f8f9fa", "border", "2px solid #dc3545", "border-radius", "8px", "padding", "20px", "overflow-y", "auto", "box-shadow", "0 4px 6px rgba(0, 0, 0, 0.1)"]], template: function SkipDynamicUIComponentComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1297
|
+
i0.ɵɵtemplate(0, SkipDynamicUIComponentComponent_Conditional_0_Template, 3, 1, "kendo-tabstrip", 0)(1, SkipDynamicUIComponentComponent_Conditional_1_Template, 31, 15, "div", 1);
|
|
1276
1298
|
} if (rf & 2) {
|
|
1277
1299
|
i0.ɵɵconditional(ctx.componentOptions.length > 1 ? 0 : 1);
|
|
1278
1300
|
} }, dependencies: [i3.NgIf, i4.TabStripComponent, i4.TabStripTabComponent, i4.TabContentDirective, i4.TabTitleDirective, i5.ButtonComponent, i6.CodeEditorComponent, i2.MJReactComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n position: relative;\n}\n\n\n\n.tab-action-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background-color: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.tab-actions-left[_ngcontent-%COMP%], \n.tab-actions-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n\n\n.tab-action-button[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background-color: transparent;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n color: #333;\n transition: all 0.15s ease;\n white-space: nowrap;\n}\n\n.tab-action-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n}\n\n.tab-action-button[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.tab-action-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.tab-action-button.create-button[_ngcontent-%COMP%], \n.tab-action-button.print-button[_ngcontent-%COMP%] {\n background-color: white;\n color: #333;\n border-color: #e0e0e0;\n}\n\n.tab-action-button.create-button[_ngcontent-%COMP%]:hover:not(:disabled), \n.tab-action-button.print-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n}\n\n\n\n.tab-action-button.toggle-button[_ngcontent-%COMP%] {\n background-color: white;\n color: #666;\n border-color: #e0e0e0;\n}\n\n.tab-action-button.toggle-button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n color: #333;\n}\n\n.tab-action-button.toggle-button.active[_ngcontent-%COMP%] {\n background-color: #5B4FE9;\n color: white;\n border-color: #5B4FE9;\n}\n\n.tab-action-button.toggle-button.active[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #4940D4;\n border-color: #4940D4;\n}\n\n\n\n.details-panel[_ngcontent-%COMP%] {\n border-bottom: 1px solid #e0e0e0;\n background-color: #fafafa;\n overflow: hidden;\n transition: height 0.3s ease;\n}\n\n.details-content[_ngcontent-%COMP%] {\n padding: 16px;\n overflow-y: auto;\n height: 100%;\n font-size: 14px;\n line-height: 1.6;\n}\n\n.details-content.code-content[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n\n\n.panel-resizer[_ngcontent-%COMP%] {\n height: 4px;\n background-color: #e0e0e0;\n cursor: ns-resize;\n position: relative;\n transition: background-color 0.2s ease;\n}\n\n.panel-resizer[_ngcontent-%COMP%]:hover {\n background-color: #d0d0d0;\n}\n\n.resizer-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n height: 2px;\n background-color: #999;\n border-radius: 1px;\n}\n\n\n\n.details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h1) { font-size: 1.5em; margin-top: 0; margin-bottom: 0.5em; }\n.details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h2) { font-size: 1.3em; margin-top: 1em; margin-bottom: 0.5em; }\n.details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(h3) { font-size: 1.1em; margin-top: 1em; margin-bottom: 0.5em; }\n.details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(ul), .details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(ol) { margin-left: 1.5em; }\n.details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(code) { \n background-color: #f4f4f4; \n padding: 2px 4px; \n border-radius: 3px; \n font-family: 'Courier New', monospace; \n font-size: 0.9em;\n}\n.details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(pre) { \n background-color: #f4f4f4; \n padding: 12px; \n border-radius: 4px; \n overflow-x: auto; \n}\n.details-content[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(blockquote) { \n border-left: 4px solid #e0e0e0; \n padding-left: 16px; \n margin-left: 0; \n color: #666; \n}\n\n\n\n .k-tabstrip {\n border: none;\n height: 100%;\n display: flex;\n flex-direction: column;\n margin: 10px 5px 5px 5px;\n}\n\n .k-tabstrip-items {\n background: #f8f9fa;\n border: none;\n border-radius: 8px 8px 0 0;\n flex: 0 0 auto;\n padding: 8px 12px 0 12px;\n gap: 4px;\n display: flex;\n}\n\n .k-tabstrip-items-wrapper {\n height: 100%;\n}\n\n .k-content {\n flex: 1;\n overflow: hidden;\n padding: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-top: none;\n border-radius: 0 0 8px 8px;\n}\n\n .k-tabstrip .k-item {\n margin-right: 2px;\n border: none;\n background: transparent;\n border-radius: 6px 6px 0 0;\n padding: 2px;\n transition: all 0.2s ease;\n}\n\n .k-tabstrip .k-item.k-selected {\n background: white;\n border: 1px solid #e0e0e0;\n border-bottom: 1px solid white;\n margin-bottom: -1px;\n z-index: 1;\n}\n\n .k-tabstrip .k-link {\n padding: 8px 16px;\n font-weight: 500;\n font-size: 13px;\n color: #666;\n transition: all 0.15s ease;\n border-radius: 4px 4px 0 0;\n background: transparent;\n border: none;\n text-transform: lowercase;\n}\n\n .k-tabstrip .k-link:first-letter {\n text-transform: uppercase;\n}\n\n .k-tabstrip .k-item:hover:not(.k-selected) .k-link {\n color: #333;\n background: rgba(0, 0, 0, 0.04);\n}\n\n .k-tabstrip .k-item.k-selected .k-link {\n color: #1976d2;\n font-weight: 600;\n background: white;\n}\n\n\n\n .k-tabstrip .k-link .star-icon {\n display: inline-block;\n margin-right: 4px;\n color: #ffd700;\n font-size: 12px;\n vertical-align: middle;\n}\n\n\n\n .k-tabstrip-items::before, \n .k-tabstrip-items::after {\n display: none;\n}\n\n .k-tabstrip .k-item::before, \n .k-tabstrip .k-item::after {\n display: none;\n}\n\n\n\n .k-tabstrip .k-link:focus {\n outline: none;\n box-shadow: none;\n}\n\n\n\n .k-tabstrip .k-content.k-state-active {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.react-host-container[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}"], changeDetection: 0 });
|
|
1279
1301
|
}
|
|
1280
1302
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SkipDynamicUIComponentComponent, [{
|
|
1281
1303
|
type: Component,
|
|
1282
|
-
args: [{ selector: 'skip-dynamic-ui-component', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (componentOptions.length > 1) {\n <!-- Multiple options: show tabs -->\n <kendo-tabstrip \n (tabSelect)=\"onTabSelect($event)\"\n [keepTabContent]=\"true\"\n style=\"height: 100%; display: flex; flex-direction: column;\">\n @for (option of componentOptions; track option; let i = $index) {\n <kendo-tabstrip-tab [selected]=\"i === selectedReportOptionIndex\">\n <ng-template kendoTabTitle>\n @if (isTopRanked(i)) {\n <i class=\"fa-solid fa-star star-icon\"></i>\n }\n {{ getTabTitle(i) }}\n </ng-template>\n <ng-template kendoTabContent>\n <div style=\"height: 100%; display: flex; flex-direction: column;\">\n <!-- Tab Action Bar -->\n <div class=\"tab-action-bar\">\n <div class=\"tab-actions-left\">\n <!-- Toggle buttons for showing/hiding component details -->\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowFunctionalRequirements()\"\n [class.active]=\"showFunctionalRequirements\"\n title=\"Toggle Functional Requirements\">\n <i class=\"fa-solid fa-list-check\"></i>\n <span>Functional</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowDataRequirements()\"\n [class.active]=\"showDataRequirements\"\n title=\"Toggle Data Requirements\">\n <i class=\"fa-solid fa-database\"></i>\n <span>Data</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowTechnicalDesign()\"\n [class.active]=\"showTechnicalDesign\"\n title=\"Toggle Technical Design\">\n <i class=\"fa-solid fa-cogs\"></i>\n <span>Technical</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowCode()\"\n [class.active]=\"showCode\"\n title=\"Toggle Code View\">\n <i class=\"fa-solid fa-code\"></i>\n <span>Code</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowSpec()\"\n [class.active]=\"showSpec\"\n title=\"Toggle Spec View\">\n <i class=\"fa-solid fa-code\"></i>\n <span>Spec</span>\n </button>\n </div>\n <div class=\"tab-actions-right\">\n <button class=\"tab-action-button create-button\" \n *ngIf=\"ShowCreateReportButton && !matchingReportID\"\n (click)=\"createReportForOption(i)\"\n [disabled]=\"isCreatingReport\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Create {{ getComponentTypeName(option) }}</span>\n </button>\n <button class=\"tab-action-button print-button\" \n *ngIf=\"ShowPrintReport\" \n (click)=\"PrintReport()\"\n title=\"Print Report\">\n <i class=\"fa-solid fa-print\"></i>\n <span>Print Report</span>\n </button>\n </div>\n </div>\n \n <!-- Main content area with optional details panels -->\n <div style=\"flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden;\">\n @if (showFunctionalRequirements || showDataRequirements || showTechnicalDesign || showCode) {\n <!-- Details panel -->\n <div class=\"details-panel\" [style.height]=\"detailsPanelHeight\">\n <kendo-tabstrip style=\"height: 100%;\">\n @if (showFunctionalRequirements) {\n <kendo-tabstrip-tab [selected]=\"true\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-list-check\"></i> Functional Requirements\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedFunctionalRequirements(option)\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showDataRequirements) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-database\"></i> Data Requirements\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedDataRequirements(option)\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showTechnicalDesign) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-cogs\"></i> Technical Design\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedTechnicalDesign(option)\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showCode) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements && !showTechnicalDesign\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-code\"></i> Code\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content code-content\">\n <mj-code-editor\n [value]=\"getComponentCode(option)\"\n [language]=\"'javascript'\"\n [autoFocus]=\"false\"\n [indentWithTab]=\"true\"\n [readonly]=\"true\"\n [toolbar]=\"codeToolbarConfig\"\n (toolbarAction)=\"handleCodeToolbarAction($event)\"\n style=\"height: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showSpec) {\n <kendo-tabstrip-tab >\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-code\"></i> Spec\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content code-content\">\n <mj-code-editor\n [value]=\"getComponentSpec(option)\"\n [language]=\"'json'\"\n [autoFocus]=\"false\"\n [indentWithTab]=\"true\"\n [readonly]=\"true\"\n [toolbar]=\"codeToolbarConfig\"\n (toolbarAction)=\"handleCodeToolbarAction($event)\"\n style=\"height: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n </kendo-tabstrip>\n </div>\n <!-- Resizer -->\n <div class=\"panel-resizer\" \n (mousedown)=\"startResize($event)\"\n (touchstart)=\"startResize($event)\">\n <div class=\"resizer-handle\"></div>\n </div>\n }\n \n <!-- React component container -->\n <div [attr.data-tab-index]=\"i\" \n style=\"flex: 1; position: relative; min-height: 0; overflow: auto;\">\n <mj-react-component\n *ngIf=\"!currentError && componentOptions[i] && i === selectedReportOptionIndex\"\n [component]=\"componentOptions[i].option\"\n [styles]=\"componentStyles || undefined\"\n (stateChange)=\"onStateChange(i, $event)\"\n (componentEvent)=\"onComponentEvent(i, $event)\"\n (refreshData)=\"handleRefreshData()\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n style=\"width: 100%; height: 100%;\">\n </mj-react-component>\n \n <!-- Error overlay for this tab (shown on top of content when needed) -->\n @if (currentError && selectedReportOptionIndex === i) {\n <div style=\"top: 0; \n left: 0; \n right: 0; \n bottom: 0; \n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding-top: 20px;\n background: rgba(255, 255, 255, 0.95);\n z-index: 10;\">\n <div style=\"width: 90%; \n max-width: 600px; \n height: 500px;\n background-color: #f8f9fa; \n border: 2px solid #dc3545; \n border-radius: 8px; \n padding: 20px;\n overflow-y: auto;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\">\n <div style=\"position: relative;\">\n <button kendoButton (click)=\"copyErrorToClipboard()\" \n style=\"position: absolute; top: 0; right: 0; font-size: 12px;\">\n <span class=\"fa-solid fa-copy\"></span>\n Copy Error Details\n </button>\n <h3 style=\"color: #dc3545; margin-top: 0; margin-right: 150px; font-size: 18px;\">\n <span class=\"fa-solid fa-exclamation-triangle\"></span>\n Component Rendering Error\n </h3>\n </div>\n <p style=\"margin-bottom: 10px; font-size: 14px;\">\n The selected component option could not be rendered due to the following error:\n </p>\n <div style=\"background-color: #fff; border: 1px solid #dee2e6; \n border-radius: 4px; padding: 12px; margin-bottom: 12px;\n font-family: 'Courier New', monospace; font-size: 12px;\">\n <strong>Error Type:</strong> {{ currentError.type }}<br>\n <strong>Details:</strong> {{ currentError.message }}\n @if (currentError.technicalDetails) {\n <details style=\"margin-top: 8px;\">\n <summary style=\"cursor: pointer; color: #0056b3;\">Technical Details (click to expand)</summary>\n <pre style=\"margin-top: 8px; white-space: pre-wrap; word-break: break-word; font-size: 11px;\">{{ formatTechnicalDetails(currentError.technicalDetails) }}</pre>\n </details>\n }\n </div>\n <div style=\"background-color: #e7f3ff; border: 1px solid #b3d9ff; \n border-radius: 4px; padding: 12px; margin-bottom: 12px;\">\n <strong style=\"font-size: 14px;\">What to do:</strong>\n <ol style=\"margin: 8px 0 0 20px; padding: 0; font-size: 13px;\">\n <li>Try selecting a different report option from the tabs above</li>\n <li>Copy the error details and send them back to Skip in the chat to get a corrected version</li>\n <li>Contact your IT department if the issue persists</li>\n </ol>\n </div>\n <button kendoButton (click)=\"retryCurrentOption()\" style=\"font-size: 13px;\">\n <span class=\"fa-solid fa-rotate\"></span>\n Retry\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n </kendo-tabstrip>\n} @else {\n <!-- Single option: no tabs needed -->\n <div style=\"height: 100%; display: flex; flex-direction: column;\">\n <!-- Tab Action Bar -->\n <div class=\"tab-action-bar\">\n <div class=\"tab-actions-left\">\n <!-- Toggle buttons for showing/hiding component details -->\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowFunctionalRequirements()\"\n [class.active]=\"showFunctionalRequirements\"\n title=\"Toggle Functional Requirements\">\n <i class=\"fa-solid fa-list-check\"></i>\n <span>Functional</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowDataRequirements()\"\n [class.active]=\"showDataRequirements\"\n title=\"Toggle Data Requirements\">\n <i class=\"fa-solid fa-database\"></i>\n <span>Data</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowTechnicalDesign()\"\n [class.active]=\"showTechnicalDesign\"\n title=\"Toggle Technical Design\">\n <i class=\"fa-solid fa-cogs\"></i>\n <span>Technical</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowCode()\"\n [class.active]=\"showCode\"\n title=\"Toggle Code View\">\n <i class=\"fa-solid fa-code\"></i>\n <span>Code</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowSpec()\"\n [class.active]=\"showSpec\"\n title=\"Toggle Spec View\">\n <i class=\"fa-solid fa-file-code\"></i>\n <span>Spec</span>\n </button>\n </div>\n <div class=\"tab-actions-right\">\n <button class=\"tab-action-button create-button\" \n *ngIf=\"ShowCreateReportButton && !matchingReportID\"\n (click)=\"createReportForOption(0)\"\n [disabled]=\"isCreatingReport\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Create {{ firstOptionComponentTypeName }}</span>\n </button>\n <button class=\"tab-action-button print-button\" \n *ngIf=\"ShowPrintReport\" \n (click)=\"PrintReport()\"\n title=\"Print Report\">\n <i class=\"fa-solid fa-print\"></i>\n <span>Print Report</span>\n </button>\n </div>\n </div>\n \n <!-- Main content area with optional details panels -->\n <div style=\"flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden;\">\n @if (showFunctionalRequirements || showDataRequirements || showTechnicalDesign || showCode || showSpec) {\n <!-- Details panel -->\n <div class=\"details-panel\" [style.height]=\"detailsPanelHeight\">\n <kendo-tabstrip style=\"height: 100%;\">\n @if (showFunctionalRequirements && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"true\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-list-check\"></i> Functional Requirements\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedFunctionalRequirements(componentOptions[0])\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showDataRequirements && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-database\"></i> Data Requirements\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedDataRequirements(componentOptions[0])\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showTechnicalDesign && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-cogs\"></i> Technical Design\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedTechnicalDesign(componentOptions[0])\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showCode && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements && !showTechnicalDesign\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-code\"></i> Code\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content code-content\">\n <mj-code-editor\n [language]=\"'javascript'\"\n [value]=\"getComponentCode(componentOptions[0])\"\n [autoFocus]=\"false\"\n [indentWithTab]=\"true\"\n [readonly]=\"true\"\n [toolbar]=\"codeToolbarConfig\"\n (toolbarAction)=\"handleCodeToolbarAction($event)\"\n style=\"height: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showSpec && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements && !showTechnicalDesign && !showCode\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-file-code\"></i> Spec\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content code-content\">\n <mj-code-editor\n [value]=\"getComponentSpec(componentOptions[0])\"\n [language]=\"'json'\"\n [autoFocus]=\"false\"\n [indentWithTab]=\"true\"\n [readonly]=\"true\"\n [toolbar]=\"codeToolbarConfig\"\n (toolbarAction)=\"handleCodeToolbarAction($event)\"\n style=\"height: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n </kendo-tabstrip>\n </div>\n <!-- Resizer -->\n <div class=\"panel-resizer\" \n (mousedown)=\"startResize($event)\"\n (touchstart)=\"startResize($event)\">\n <div class=\"resizer-handle\"></div>\n </div>\n }\n \n <!-- React component container or error display -->\n @if (currentError) {\n <!-- Error display container with proper height -->\n <div style=\"flex: 1; display: flex; align-items: center; justify-content: center; \n min-height: 400px; padding: 20px; background: rgba(255, 255, 255, 0.95);\">\n <div style=\"width: 90%; \n max-width: 600px; \n max-height: 80vh;\n background-color: #f8f9fa; \n border: 2px solid #dc3545; \n border-radius: 8px; \n padding: 20px;\n overflow-y: auto;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\">\n <div style=\"position: relative;\">\n <button kendoButton (click)=\"copyErrorToClipboard()\" \n style=\"position: absolute; top: 0; right: 0; font-size: 12px;\">\n <span class=\"fa-solid fa-copy\"></span>\n Copy Error Details\n </button>\n <h3 style=\"color: #dc3545; margin-top: 0; margin-right: 150px; font-size: 18px;\">\n <span class=\"fa-solid fa-exclamation-triangle\"></span>\n Component Rendering Error\n </h3>\n </div>\n <p style=\"margin-bottom: 10px; font-size: 14px;\">\n The selected component option could not be rendered due to the following error:\n </p>\n <div style=\"background-color: #fff; border: 1px solid #dee2e6; \n border-radius: 4px; padding: 12px; margin-bottom: 12px;\n font-family: 'Courier New', monospace; font-size: 12px;\">\n <strong>Error Type:</strong> {{ currentError.type }}<br>\n <strong>Details:</strong> {{ currentError.message }}\n @if (currentError.technicalDetails) {\n <details style=\"margin-top: 8px;\">\n <summary style=\"cursor: pointer; color: #0056b3;\">Technical Details (click to expand)</summary>\n <pre style=\"margin-top: 8px; white-space: pre-wrap; word-break: break-word; font-size: 11px;\">{{ formatTechnicalDetails(currentError.technicalDetails) }}</pre>\n </details>\n }\n </div>\n <div style=\"background-color: #e7f3ff; border: 1px solid #b3d9ff; \n border-radius: 4px; padding: 12px; margin-bottom: 12px;\">\n <strong style=\"font-size: 14px;\">What to do:</strong>\n <ol style=\"margin: 8px 0 0 20px; padding: 0; font-size: 13px;\">\n <li>Copy the error details and send them back to Skip in the chat to get a corrected version</li>\n <li>Contact your IT department if the issue persists</li>\n </ol>\n </div>\n <button kendoButton (click)=\"retryCurrentOption()\" style=\"font-size: 13px;\">\n <span class=\"fa-solid fa-rotate\"></span>\n Retry\n </button>\n </div>\n </div>\n } @else {\n <!-- React component container (only shown when no error) -->\n <div style=\"flex: 1; position: relative; min-height: 0; overflow: auto;\">\n <mj-react-component\n *ngIf=\"componentOptions[0]\"\n [component]=\"componentOptions[0].option\"\n [styles]=\"componentStyles || undefined\"\n (stateChange)=\"onStateChange(0, $event)\"\n (componentEvent)=\"onComponentEvent(0, $event)\"\n (refreshData)=\"handleRefreshData()\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n style=\"width: 100%; height: 100%;\">\n </mj-react-component>\n </div>\n }\n </div>\n </div>\n}", styles: [":host {\n display: block;\n height: 100%;\n position: relative;\n}\n\n/* Tab Action Bar */\n.tab-action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background-color: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.tab-actions-left,\n.tab-actions-right {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Tab Action Buttons */\n.tab-action-button {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background-color: transparent;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n color: #333;\n transition: all 0.15s ease;\n white-space: nowrap;\n}\n\n.tab-action-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n}\n\n.tab-action-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.tab-action-button i {\n font-size: 12px;\n}\n\n/* Both buttons use the same white/secondary style */\n.tab-action-button.create-button,\n.tab-action-button.print-button {\n background-color: white;\n color: #333;\n border-color: #e0e0e0;\n}\n\n.tab-action-button.create-button:hover:not(:disabled),\n.tab-action-button.print-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n}\n\n/* Toggle buttons styling */\n.tab-action-button.toggle-button {\n background-color: white;\n color: #666;\n border-color: #e0e0e0;\n}\n\n.tab-action-button.toggle-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n color: #333;\n}\n\n.tab-action-button.toggle-button.active {\n background-color: #5B4FE9;\n color: white;\n border-color: #5B4FE9;\n}\n\n.tab-action-button.toggle-button.active:hover:not(:disabled) {\n background-color: #4940D4;\n border-color: #4940D4;\n}\n\n/* Details panel styling */\n.details-panel {\n border-bottom: 1px solid #e0e0e0;\n background-color: #fafafa;\n overflow: hidden;\n transition: height 0.3s ease;\n}\n\n.details-content {\n padding: 16px;\n overflow-y: auto;\n height: 100%;\n font-size: 14px;\n line-height: 1.6;\n}\n\n.details-content.code-content {\n padding: 0;\n}\n\n/* Panel resizer */\n.panel-resizer {\n height: 4px;\n background-color: #e0e0e0;\n cursor: ns-resize;\n position: relative;\n transition: background-color 0.2s ease;\n}\n\n.panel-resizer:hover {\n background-color: #d0d0d0;\n}\n\n.resizer-handle {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n height: 2px;\n background-color: #999;\n border-radius: 1px;\n}\n\n/* Markdown content styling */\n.details-content :deep(h1) { font-size: 1.5em; margin-top: 0; margin-bottom: 0.5em; }\n.details-content :deep(h2) { font-size: 1.3em; margin-top: 1em; margin-bottom: 0.5em; }\n.details-content :deep(h3) { font-size: 1.1em; margin-top: 1em; margin-bottom: 0.5em; }\n.details-content :deep(ul), .details-content :deep(ol) { margin-left: 1.5em; }\n.details-content :deep(code) { \n background-color: #f4f4f4; \n padding: 2px 4px; \n border-radius: 3px; \n font-family: 'Courier New', monospace; \n font-size: 0.9em;\n}\n.details-content :deep(pre) { \n background-color: #f4f4f4; \n padding: 12px; \n border-radius: 4px; \n overflow-x: auto; \n}\n.details-content :deep(blockquote) { \n border-left: 4px solid #e0e0e0; \n padding-left: 16px; \n margin-left: 0; \n color: #666; \n}\n\n/* Tab styling */\n::ng-deep .k-tabstrip {\n border: none;\n height: 100%;\n display: flex;\n flex-direction: column;\n margin: 10px 5px 5px 5px;\n}\n\n::ng-deep .k-tabstrip-items {\n background: #f8f9fa;\n border: none;\n border-radius: 8px 8px 0 0;\n flex: 0 0 auto;\n padding: 8px 12px 0 12px;\n gap: 4px;\n display: flex;\n}\n\n::ng-deep .k-tabstrip-items-wrapper {\n height: 100%;\n}\n\n::ng-deep .k-content {\n flex: 1;\n overflow: hidden;\n padding: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-top: none;\n border-radius: 0 0 8px 8px;\n}\n\n::ng-deep .k-tabstrip .k-item {\n margin-right: 2px;\n border: none;\n background: transparent;\n border-radius: 6px 6px 0 0;\n padding: 2px;\n transition: all 0.2s ease;\n}\n\n::ng-deep .k-tabstrip .k-item.k-selected {\n background: white;\n border: 1px solid #e0e0e0;\n border-bottom: 1px solid white;\n margin-bottom: -1px;\n z-index: 1;\n}\n\n::ng-deep .k-tabstrip .k-link {\n padding: 8px 16px;\n font-weight: 500;\n font-size: 13px;\n color: #666;\n transition: all 0.15s ease;\n border-radius: 4px 4px 0 0;\n background: transparent;\n border: none;\n text-transform: lowercase;\n}\n\n::ng-deep .k-tabstrip .k-link:first-letter {\n text-transform: uppercase;\n}\n\n::ng-deep .k-tabstrip .k-item:hover:not(.k-selected) .k-link {\n color: #333;\n background: rgba(0, 0, 0, 0.04);\n}\n\n::ng-deep .k-tabstrip .k-item.k-selected .k-link {\n color: #1976d2;\n font-weight: 600;\n background: white;\n}\n\n/* Star icon styling */\n::ng-deep .k-tabstrip .k-link .star-icon {\n display: inline-block;\n margin-right: 4px;\n color: #ffd700;\n font-size: 12px;\n vertical-align: middle;\n}\n\n/* Hide default Kendo tab styling */\n::ng-deep .k-tabstrip-items::before,\n::ng-deep .k-tabstrip-items::after {\n display: none;\n}\n\n::ng-deep .k-tabstrip .k-item::before,\n::ng-deep .k-tabstrip .k-item::after {\n display: none;\n}\n\n/* Remove focus outline */\n::ng-deep .k-tabstrip .k-link:focus {\n outline: none;\n box-shadow: none;\n}\n\n/* Make sure tab content fills available space */\n::ng-deep .k-tabstrip .k-content.k-state-active {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* React host container */\n.react-host-container {\n width: 100%;\n height: 100%;\n}"] }]
|
|
1304
|
+
args: [{ selector: 'skip-dynamic-ui-component', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (componentOptions.length > 1) {\n <!-- Multiple options: show tabs -->\n <kendo-tabstrip \n (tabSelect)=\"onTabSelect($event)\"\n [keepTabContent]=\"true\"\n style=\"height: 100%; display: flex; flex-direction: column;\">\n @for (option of componentOptions; track option; let i = $index) {\n <kendo-tabstrip-tab [selected]=\"i === selectedReportOptionIndex\">\n <ng-template kendoTabTitle>\n @if (isTopRanked(i)) {\n <i class=\"fa-solid fa-star star-icon\"></i>\n }\n {{ getTabTitle(i) }}\n </ng-template>\n <ng-template kendoTabContent>\n <div style=\"height: 100%; display: flex; flex-direction: column;\">\n <!-- Tab Action Bar -->\n <div class=\"tab-action-bar\">\n <div class=\"tab-actions-left\">\n <!-- Toggle buttons for showing/hiding component details -->\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowFunctionalRequirements()\"\n [class.active]=\"showFunctionalRequirements\"\n title=\"Toggle Functional Requirements\">\n <i class=\"fa-solid fa-list-check\"></i>\n <span>Functional</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowDataRequirements()\"\n [class.active]=\"showDataRequirements\"\n title=\"Toggle Data Requirements\">\n <i class=\"fa-solid fa-database\"></i>\n <span>Data</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowTechnicalDesign()\"\n [class.active]=\"showTechnicalDesign\"\n title=\"Toggle Technical Design\">\n <i class=\"fa-solid fa-cogs\"></i>\n <span>Technical</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowCode()\"\n [class.active]=\"showCode\"\n title=\"Toggle Code View\">\n <i class=\"fa-solid fa-code\"></i>\n <span>Code</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowSpec()\"\n [class.active]=\"showSpec\"\n title=\"Toggle Spec View\">\n <i class=\"fa-solid fa-code\"></i>\n <span>Spec</span>\n </button>\n </div>\n <div class=\"tab-actions-right\">\n <button class=\"tab-action-button create-button\" \n *ngIf=\"ShowCreateReportButton && !matchingReportID\"\n (click)=\"createReportForOption(i)\"\n [disabled]=\"isCreatingReport\">\n <i class=\"fa-solid fa-save\"></i>\n <span>Save Report</span>\n </button>\n <button class=\"tab-action-button create-button\" \n *ngIf=\"ShowOpenSavedReportButton && matchingReportID\"\n (click)=\"openReportForOption(i)\">\n <i class=\"fa-solid fa-folder-open\"></i>\n <span>Open Saved Report</span>\n </button>\n <button class=\"tab-action-button print-button\" \n *ngIf=\"ShowPrintReport\" \n (click)=\"PrintReport()\"\n title=\"Print Report\">\n <i class=\"fa-solid fa-print\"></i>\n <span>Print Report</span>\n </button>\n </div>\n </div>\n \n <!-- Main content area with optional details panels -->\n <div style=\"flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden;\">\n @if (showFunctionalRequirements || showDataRequirements || showTechnicalDesign || showCode) {\n <!-- Details panel -->\n <div class=\"details-panel\" [style.height]=\"detailsPanelHeight\">\n <kendo-tabstrip style=\"height: 100%;\">\n @if (showFunctionalRequirements) {\n <kendo-tabstrip-tab [selected]=\"true\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-list-check\"></i> Functional Requirements\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedFunctionalRequirements(option)\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showDataRequirements) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-database\"></i> Data Requirements\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedDataRequirements(option)\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showTechnicalDesign) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-cogs\"></i> Technical Design\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedTechnicalDesign(option)\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showCode) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements && !showTechnicalDesign\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-code\"></i> Code\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content code-content\">\n <mj-code-editor\n [value]=\"getComponentCode(option)\"\n [language]=\"'javascript'\"\n [autoFocus]=\"false\"\n [indentWithTab]=\"true\"\n [readonly]=\"true\"\n [toolbar]=\"codeToolbarConfig\"\n (toolbarAction)=\"handleCodeToolbarAction($event)\"\n style=\"height: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showSpec) {\n <kendo-tabstrip-tab >\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-code\"></i> Spec\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content code-content\">\n <mj-code-editor\n [value]=\"getComponentSpec(option)\"\n [language]=\"'json'\"\n [autoFocus]=\"false\"\n [indentWithTab]=\"true\"\n [readonly]=\"true\"\n [toolbar]=\"codeToolbarConfig\"\n (toolbarAction)=\"handleCodeToolbarAction($event)\"\n style=\"height: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n </kendo-tabstrip>\n </div>\n <!-- Resizer -->\n <div class=\"panel-resizer\" \n (mousedown)=\"startResize($event)\"\n (touchstart)=\"startResize($event)\">\n <div class=\"resizer-handle\"></div>\n </div>\n }\n \n <!-- React component container -->\n <div [attr.data-tab-index]=\"i\" \n style=\"flex: 1; position: relative; min-height: 0; overflow: auto;\">\n <mj-react-component\n *ngIf=\"!currentError && componentOptions[i] && i === selectedReportOptionIndex\"\n [component]=\"componentOptions[i].option\"\n [styles]=\"componentStyles || undefined\"\n (stateChange)=\"onStateChange(i, $event)\"\n (componentEvent)=\"onComponentEvent(i, $event)\"\n (refreshData)=\"handleRefreshData()\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n style=\"width: 100%; height: 100%;\">\n </mj-react-component>\n \n <!-- Error overlay for this tab (shown on top of content when needed) -->\n @if (currentError && selectedReportOptionIndex === i) {\n <div style=\"top: 0; \n left: 0; \n right: 0; \n bottom: 0; \n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding-top: 20px;\n background: rgba(255, 255, 255, 0.95);\n z-index: 10;\">\n <div style=\"width: 90%; \n max-width: 600px; \n height: 500px;\n background-color: #f8f9fa; \n border: 2px solid #dc3545; \n border-radius: 8px; \n padding: 20px;\n overflow-y: auto;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\">\n <div style=\"position: relative;\">\n <button kendoButton (click)=\"copyErrorToClipboard()\" \n style=\"position: absolute; top: 0; right: 0; font-size: 12px;\">\n <span class=\"fa-solid fa-copy\"></span>\n Copy Error Details\n </button>\n <h3 style=\"color: #dc3545; margin-top: 0; margin-right: 150px; font-size: 18px;\">\n <span class=\"fa-solid fa-exclamation-triangle\"></span>\n Component Rendering Error\n </h3>\n </div>\n <p style=\"margin-bottom: 10px; font-size: 14px;\">\n The selected component option could not be rendered due to the following error:\n </p>\n <div style=\"background-color: #fff; border: 1px solid #dee2e6; \n border-radius: 4px; padding: 12px; margin-bottom: 12px;\n font-family: 'Courier New', monospace; font-size: 12px;\">\n <strong>Error Type:</strong> {{ currentError.type }}<br>\n <strong>Details:</strong> {{ currentError.message }}\n @if (currentError.technicalDetails) {\n <details style=\"margin-top: 8px;\">\n <summary style=\"cursor: pointer; color: #0056b3;\">Technical Details (click to expand)</summary>\n <pre style=\"margin-top: 8px; white-space: pre-wrap; word-break: break-word; font-size: 11px;\">{{ formatTechnicalDetails(currentError.technicalDetails) }}</pre>\n </details>\n }\n </div>\n <div style=\"background-color: #e7f3ff; border: 1px solid #b3d9ff; \n border-radius: 4px; padding: 12px; margin-bottom: 12px;\">\n <strong style=\"font-size: 14px;\">What to do:</strong>\n <ol style=\"margin: 8px 0 0 20px; padding: 0; font-size: 13px;\">\n <li>Try selecting a different report option from the tabs above</li>\n <li>Copy the error details and send them back to Skip in the chat to get a corrected version</li>\n <li>Contact your IT department if the issue persists</li>\n </ol>\n </div>\n <button kendoButton (click)=\"retryCurrentOption()\" style=\"font-size: 13px;\">\n <span class=\"fa-solid fa-rotate\"></span>\n Retry\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n </kendo-tabstrip>\n} @else {\n <!-- Single option: no tabs needed -->\n <div style=\"height: 100%; display: flex; flex-direction: column;\">\n <!-- Tab Action Bar -->\n <div class=\"tab-action-bar\">\n <div class=\"tab-actions-left\">\n <!-- Toggle buttons for showing/hiding component details -->\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowFunctionalRequirements()\"\n [class.active]=\"showFunctionalRequirements\"\n title=\"Toggle Functional Requirements\">\n <i class=\"fa-solid fa-list-check\"></i>\n <span>Functional</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowDataRequirements()\"\n [class.active]=\"showDataRequirements\"\n title=\"Toggle Data Requirements\">\n <i class=\"fa-solid fa-database\"></i>\n <span>Data</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowTechnicalDesign()\"\n [class.active]=\"showTechnicalDesign\"\n title=\"Toggle Technical Design\">\n <i class=\"fa-solid fa-cogs\"></i>\n <span>Technical</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowCode()\"\n [class.active]=\"showCode\"\n title=\"Toggle Code View\">\n <i class=\"fa-solid fa-code\"></i>\n <span>Code</span>\n </button>\n <button class=\"tab-action-button toggle-button\" \n (click)=\"toggleShowSpec()\"\n [class.active]=\"showSpec\"\n title=\"Toggle Spec View\">\n <i class=\"fa-solid fa-file-code\"></i>\n <span>Spec</span>\n </button>\n </div>\n <div class=\"tab-actions-right\">\n <button class=\"tab-action-button create-button\" \n *ngIf=\"ShowCreateReportButton && !matchingReportID\"\n (click)=\"createReportForOption(0)\"\n [disabled]=\"isCreatingReport\">\n <i class=\"fa-solid fa-save\"></i>\n <span>Create Report</span>\n </button>\n <button class=\"tab-action-button create-button\" \n *ngIf=\"ShowOpenSavedReportButton && matchingReportID\"\n (click)=\"openReportForOption(0)\">\n <i class=\"fa-solid fa-folder-open\"></i>\n <span>Open Saved Report</span>\n </button>\n <button class=\"tab-action-button print-button\" \n *ngIf=\"ShowPrintReport\" \n (click)=\"PrintReport()\"\n title=\"Print Report\">\n <i class=\"fa-solid fa-print\"></i>\n <span>Print Report</span>\n </button>\n </div>\n </div>\n \n <!-- Main content area with optional details panels -->\n <div style=\"flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden;\">\n @if (showFunctionalRequirements || showDataRequirements || showTechnicalDesign || showCode || showSpec) {\n <!-- Details panel -->\n <div class=\"details-panel\" [style.height]=\"detailsPanelHeight\">\n <kendo-tabstrip style=\"height: 100%;\">\n @if (showFunctionalRequirements && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"true\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-list-check\"></i> Functional Requirements\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedFunctionalRequirements(componentOptions[0])\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showDataRequirements && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-database\"></i> Data Requirements\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedDataRequirements(componentOptions[0])\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showTechnicalDesign && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-cogs\"></i> Technical Design\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content\">\n <div [innerHTML]=\"getFormattedTechnicalDesign(componentOptions[0])\"></div>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showCode && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements && !showTechnicalDesign\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-code\"></i> Code\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content code-content\">\n <mj-code-editor\n [language]=\"'javascript'\"\n [value]=\"getComponentCode(componentOptions[0])\"\n [autoFocus]=\"false\"\n [indentWithTab]=\"true\"\n [readonly]=\"true\"\n [toolbar]=\"codeToolbarConfig\"\n (toolbarAction)=\"handleCodeToolbarAction($event)\"\n style=\"height: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n @if (showSpec && componentOptions[0]) {\n <kendo-tabstrip-tab [selected]=\"!showFunctionalRequirements && !showDataRequirements && !showTechnicalDesign && !showCode\">\n <ng-template kendoTabTitle>\n <i class=\"fa-solid fa-file-code\"></i> Spec\n </ng-template>\n <ng-template kendoTabContent>\n <div class=\"details-content code-content\">\n <mj-code-editor\n [value]=\"getComponentSpec(componentOptions[0])\"\n [language]=\"'json'\"\n [autoFocus]=\"false\"\n [indentWithTab]=\"true\"\n [readonly]=\"true\"\n [toolbar]=\"codeToolbarConfig\"\n (toolbarAction)=\"handleCodeToolbarAction($event)\"\n style=\"height: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-tabstrip-tab>\n }\n </kendo-tabstrip>\n </div>\n <!-- Resizer -->\n <div class=\"panel-resizer\" \n (mousedown)=\"startResize($event)\"\n (touchstart)=\"startResize($event)\">\n <div class=\"resizer-handle\"></div>\n </div>\n }\n \n <!-- React component container or error display -->\n @if (currentError) {\n <!-- Error display container with proper height -->\n <div style=\"flex: 1; display: flex; align-items: center; justify-content: center; \n min-height: 400px; padding: 20px; background: rgba(255, 255, 255, 0.95);\">\n <div style=\"width: 90%; \n max-width: 600px; \n max-height: 80vh;\n background-color: #f8f9fa; \n border: 2px solid #dc3545; \n border-radius: 8px; \n padding: 20px;\n overflow-y: auto;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\">\n <div style=\"position: relative;\">\n <button kendoButton (click)=\"copyErrorToClipboard()\" \n style=\"position: absolute; top: 0; right: 0; font-size: 12px;\">\n <span class=\"fa-solid fa-copy\"></span>\n Copy Error Details\n </button>\n <h3 style=\"color: #dc3545; margin-top: 0; margin-right: 150px; font-size: 18px;\">\n <span class=\"fa-solid fa-exclamation-triangle\"></span>\n Component Rendering Error\n </h3>\n </div>\n <p style=\"margin-bottom: 10px; font-size: 14px;\">\n The selected component option could not be rendered due to the following error:\n </p>\n <div style=\"background-color: #fff; border: 1px solid #dee2e6; \n border-radius: 4px; padding: 12px; margin-bottom: 12px;\n font-family: 'Courier New', monospace; font-size: 12px;\">\n <strong>Error Type:</strong> {{ currentError.type }}<br>\n <strong>Details:</strong> {{ currentError.message }}\n @if (currentError.technicalDetails) {\n <details style=\"margin-top: 8px;\">\n <summary style=\"cursor: pointer; color: #0056b3;\">Technical Details (click to expand)</summary>\n <pre style=\"margin-top: 8px; white-space: pre-wrap; word-break: break-word; font-size: 11px;\">{{ formatTechnicalDetails(currentError.technicalDetails) }}</pre>\n </details>\n }\n </div>\n <div style=\"background-color: #e7f3ff; border: 1px solid #b3d9ff; \n border-radius: 4px; padding: 12px; margin-bottom: 12px;\">\n <strong style=\"font-size: 14px;\">What to do:</strong>\n <ol style=\"margin: 8px 0 0 20px; padding: 0; font-size: 13px;\">\n <li>Copy the error details and send them back to Skip in the chat to get a corrected version</li>\n <li>Contact your IT department if the issue persists</li>\n </ol>\n </div>\n <button kendoButton (click)=\"retryCurrentOption()\" style=\"font-size: 13px;\">\n <span class=\"fa-solid fa-rotate\"></span>\n Retry\n </button>\n </div>\n </div>\n } @else {\n <!-- React component container (only shown when no error) -->\n <div style=\"flex: 1; position: relative; min-height: 0; overflow: auto;\">\n <mj-react-component\n *ngIf=\"componentOptions[0]\"\n [component]=\"componentOptions[0].option\"\n [styles]=\"componentStyles || undefined\"\n (stateChange)=\"onStateChange(0, $event)\"\n (componentEvent)=\"onComponentEvent(0, $event)\"\n (refreshData)=\"handleRefreshData()\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n style=\"width: 100%; height: 100%;\">\n </mj-react-component>\n </div>\n }\n </div>\n </div>\n}", styles: [":host {\n display: block;\n height: 100%;\n position: relative;\n}\n\n/* Tab Action Bar */\n.tab-action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background-color: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.tab-actions-left,\n.tab-actions-right {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Tab Action Buttons */\n.tab-action-button {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n background-color: transparent;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n color: #333;\n transition: all 0.15s ease;\n white-space: nowrap;\n}\n\n.tab-action-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n}\n\n.tab-action-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.tab-action-button i {\n font-size: 12px;\n}\n\n/* Both buttons use the same white/secondary style */\n.tab-action-button.create-button,\n.tab-action-button.print-button {\n background-color: white;\n color: #333;\n border-color: #e0e0e0;\n}\n\n.tab-action-button.create-button:hover:not(:disabled),\n.tab-action-button.print-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n}\n\n/* Toggle buttons styling */\n.tab-action-button.toggle-button {\n background-color: white;\n color: #666;\n border-color: #e0e0e0;\n}\n\n.tab-action-button.toggle-button:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #d0d0d0;\n color: #333;\n}\n\n.tab-action-button.toggle-button.active {\n background-color: #5B4FE9;\n color: white;\n border-color: #5B4FE9;\n}\n\n.tab-action-button.toggle-button.active:hover:not(:disabled) {\n background-color: #4940D4;\n border-color: #4940D4;\n}\n\n/* Details panel styling */\n.details-panel {\n border-bottom: 1px solid #e0e0e0;\n background-color: #fafafa;\n overflow: hidden;\n transition: height 0.3s ease;\n}\n\n.details-content {\n padding: 16px;\n overflow-y: auto;\n height: 100%;\n font-size: 14px;\n line-height: 1.6;\n}\n\n.details-content.code-content {\n padding: 0;\n}\n\n/* Panel resizer */\n.panel-resizer {\n height: 4px;\n background-color: #e0e0e0;\n cursor: ns-resize;\n position: relative;\n transition: background-color 0.2s ease;\n}\n\n.panel-resizer:hover {\n background-color: #d0d0d0;\n}\n\n.resizer-handle {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n height: 2px;\n background-color: #999;\n border-radius: 1px;\n}\n\n/* Markdown content styling */\n.details-content :deep(h1) { font-size: 1.5em; margin-top: 0; margin-bottom: 0.5em; }\n.details-content :deep(h2) { font-size: 1.3em; margin-top: 1em; margin-bottom: 0.5em; }\n.details-content :deep(h3) { font-size: 1.1em; margin-top: 1em; margin-bottom: 0.5em; }\n.details-content :deep(ul), .details-content :deep(ol) { margin-left: 1.5em; }\n.details-content :deep(code) { \n background-color: #f4f4f4; \n padding: 2px 4px; \n border-radius: 3px; \n font-family: 'Courier New', monospace; \n font-size: 0.9em;\n}\n.details-content :deep(pre) { \n background-color: #f4f4f4; \n padding: 12px; \n border-radius: 4px; \n overflow-x: auto; \n}\n.details-content :deep(blockquote) { \n border-left: 4px solid #e0e0e0; \n padding-left: 16px; \n margin-left: 0; \n color: #666; \n}\n\n/* Tab styling */\n::ng-deep .k-tabstrip {\n border: none;\n height: 100%;\n display: flex;\n flex-direction: column;\n margin: 10px 5px 5px 5px;\n}\n\n::ng-deep .k-tabstrip-items {\n background: #f8f9fa;\n border: none;\n border-radius: 8px 8px 0 0;\n flex: 0 0 auto;\n padding: 8px 12px 0 12px;\n gap: 4px;\n display: flex;\n}\n\n::ng-deep .k-tabstrip-items-wrapper {\n height: 100%;\n}\n\n::ng-deep .k-content {\n flex: 1;\n overflow: hidden;\n padding: 0;\n background: white;\n border: 1px solid #e0e0e0;\n border-top: none;\n border-radius: 0 0 8px 8px;\n}\n\n::ng-deep .k-tabstrip .k-item {\n margin-right: 2px;\n border: none;\n background: transparent;\n border-radius: 6px 6px 0 0;\n padding: 2px;\n transition: all 0.2s ease;\n}\n\n::ng-deep .k-tabstrip .k-item.k-selected {\n background: white;\n border: 1px solid #e0e0e0;\n border-bottom: 1px solid white;\n margin-bottom: -1px;\n z-index: 1;\n}\n\n::ng-deep .k-tabstrip .k-link {\n padding: 8px 16px;\n font-weight: 500;\n font-size: 13px;\n color: #666;\n transition: all 0.15s ease;\n border-radius: 4px 4px 0 0;\n background: transparent;\n border: none;\n text-transform: lowercase;\n}\n\n::ng-deep .k-tabstrip .k-link:first-letter {\n text-transform: uppercase;\n}\n\n::ng-deep .k-tabstrip .k-item:hover:not(.k-selected) .k-link {\n color: #333;\n background: rgba(0, 0, 0, 0.04);\n}\n\n::ng-deep .k-tabstrip .k-item.k-selected .k-link {\n color: #1976d2;\n font-weight: 600;\n background: white;\n}\n\n/* Star icon styling */\n::ng-deep .k-tabstrip .k-link .star-icon {\n display: inline-block;\n margin-right: 4px;\n color: #ffd700;\n font-size: 12px;\n vertical-align: middle;\n}\n\n/* Hide default Kendo tab styling */\n::ng-deep .k-tabstrip-items::before,\n::ng-deep .k-tabstrip-items::after {\n display: none;\n}\n\n::ng-deep .k-tabstrip .k-item::before,\n::ng-deep .k-tabstrip .k-item::after {\n display: none;\n}\n\n/* Remove focus outline */\n::ng-deep .k-tabstrip .k-link:focus {\n outline: none;\n box-shadow: none;\n}\n\n/* Make sure tab content fills available space */\n::ng-deep .k-tabstrip .k-content.k-state-active {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* React host container */\n.react-host-container {\n width: 100%;\n height: 100%;\n}"] }]
|
|
1283
1305
|
}], () => [{ type: i1.DomSanitizer }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i2.AngularAdapterService }], { UIComponentCode: [{
|
|
1284
1306
|
type: Input
|
|
1285
1307
|
}], ComponentObjectName: [{
|
|
@@ -1290,12 +1312,16 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
1290
1312
|
type: Input
|
|
1291
1313
|
}], ShowCreateReportButton: [{
|
|
1292
1314
|
type: Input
|
|
1315
|
+
}], ShowOpenSavedReportButton: [{
|
|
1316
|
+
type: Input
|
|
1293
1317
|
}], matchingReportID: [{
|
|
1294
1318
|
type: Input
|
|
1295
1319
|
}], DrillDownEvent: [{
|
|
1296
1320
|
type: Output
|
|
1297
1321
|
}], CreateReportRequested: [{
|
|
1298
1322
|
type: Output
|
|
1323
|
+
}], NavigateToMatchingReportRequested: [{
|
|
1324
|
+
type: Output
|
|
1299
1325
|
}], reactComponents: [{
|
|
1300
1326
|
type: ViewChildren,
|
|
1301
1327
|
args: [MJReactComponent]
|