@memberjunction/ng-skip-chat 2.69.0 → 2.70.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/dynamic-report/dynamic-ui-component.d.ts +42 -21
- package/dist/lib/dynamic-report/dynamic-ui-component.d.ts.map +1 -1
- package/dist/lib/dynamic-report/dynamic-ui-component.js +284 -245
- package/dist/lib/dynamic-report/dynamic-ui-component.js.map +1 -1
- package/dist/lib/module.d.ts +3 -2
- package/dist/lib/module.d.ts.map +1 -1
- package/dist/lib/module.js +5 -1
- package/dist/lib/module.js.map +1 -1
- package/dist/lib/skip-chat/skip-chat.component.d.ts +0 -15
- package/dist/lib/skip-chat/skip-chat.component.d.ts.map +1 -1
- package/dist/lib/skip-chat/skip-chat.component.js +27 -691
- package/dist/lib/skip-chat/skip-chat.component.js.map +1 -1
- package/package.json +14 -17
- package/dist/lib/dynamic-report/skip-react-component-host.d.ts +0 -237
- package/dist/lib/dynamic-report/skip-react-component-host.d.ts.map +0 -1
- package/dist/lib/dynamic-report/skip-react-component-host.js +0 -2012
- package/dist/lib/dynamic-report/skip-react-component-host.js.map +0 -1
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, ViewChildren, HostListener } from '@angular/core';
|
|
2
2
|
import { CompositeKey, LogError, Metadata, RunQuery, RunView } from '@memberjunction/core';
|
|
3
|
-
import { SkipReactComponentHost } from './skip-react-component-host';
|
|
4
3
|
import { MapEntityInfoToSkipEntityInfo, BuildSkipComponentCompleteCode } from '@memberjunction/skip-types';
|
|
5
4
|
import { DrillDownInfo } from '../drill-down-info';
|
|
6
5
|
import { marked } from 'marked';
|
|
6
|
+
import { MJReactComponent } from '@memberjunction/ng-react';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/platform-browser";
|
|
9
9
|
import * as i2 from "@angular/common";
|
|
10
10
|
import * as i3 from "@progress/kendo-angular-layout";
|
|
11
11
|
import * as i4 from "@progress/kendo-angular-buttons";
|
|
12
12
|
import * as i5 from "@memberjunction/ng-code-editor";
|
|
13
|
-
|
|
13
|
+
import * as i6 from "@memberjunction/ng-react";
|
|
14
|
+
const _c0 = () => ({});
|
|
14
15
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
-
i0.ɵɵelement(0, "i",
|
|
16
|
+
i0.ɵɵelement(0, "i", 6);
|
|
16
17
|
} }
|
|
17
18
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
-
i0.ɵɵtemplate(0, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Conditional_0_Template, 1, 0, "i",
|
|
19
|
+
i0.ɵɵtemplate(0, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Conditional_0_Template, 1, 0, "i", 6);
|
|
19
20
|
i0.ɵɵtext(1);
|
|
20
21
|
} if (rf & 2) {
|
|
21
22
|
const ɵ$index_4_r3 = i0.ɵɵnextContext().$index;
|
|
@@ -49,7 +50,7 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_butto
|
|
|
49
50
|
i0.ɵɵelementEnd()();
|
|
50
51
|
} }
|
|
51
52
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
52
|
-
i0.ɵɵelement(0, "i",
|
|
53
|
+
i0.ɵɵelement(0, "i", 10);
|
|
53
54
|
i0.ɵɵtext(1, " Functional Requirements ");
|
|
54
55
|
} }
|
|
55
56
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -63,14 +64,14 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
63
64
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedFunctionalRequirements(option_r6), i0.ɵɵsanitizeHtml);
|
|
64
65
|
} }
|
|
65
66
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
67
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_2_ng_template_1_Template, 2, 0, "ng-template",
|
|
67
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
68
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_2_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_2_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
68
69
|
i0.ɵɵelementEnd();
|
|
69
70
|
} if (rf & 2) {
|
|
70
71
|
i0.ɵɵproperty("selected", true);
|
|
71
72
|
} }
|
|
72
73
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
-
i0.ɵɵelement(0, "i",
|
|
74
|
+
i0.ɵɵelement(0, "i", 12);
|
|
74
75
|
i0.ɵɵtext(1, " Data Requirements ");
|
|
75
76
|
} }
|
|
76
77
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -84,15 +85,15 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
84
85
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedDataRequirements(option_r6), i0.ɵɵsanitizeHtml);
|
|
85
86
|
} }
|
|
86
87
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
87
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
88
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_3_ng_template_1_Template, 2, 0, "ng-template",
|
|
88
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
89
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_3_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_3_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
89
90
|
i0.ɵɵelementEnd();
|
|
90
91
|
} if (rf & 2) {
|
|
91
92
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
92
93
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements);
|
|
93
94
|
} }
|
|
94
95
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_4_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
-
i0.ɵɵelement(0, "i",
|
|
96
|
+
i0.ɵɵelement(0, "i", 14);
|
|
96
97
|
i0.ɵɵtext(1, " Technical Design ");
|
|
97
98
|
} }
|
|
98
99
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -106,15 +107,15 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
106
107
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedTechnicalDesign(option_r6), i0.ɵɵsanitizeHtml);
|
|
107
108
|
} }
|
|
108
109
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
110
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_4_ng_template_1_Template, 2, 0, "ng-template",
|
|
110
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
111
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_4_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_4_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
111
112
|
i0.ɵɵelementEnd();
|
|
112
113
|
} if (rf & 2) {
|
|
113
114
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
114
115
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements && !ctx_r1.showDataRequirements);
|
|
115
116
|
} }
|
|
116
117
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_5_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
117
|
-
i0.ɵɵelement(0, "i",
|
|
118
|
+
i0.ɵɵelement(0, "i", 16);
|
|
118
119
|
i0.ɵɵtext(1, " Code ");
|
|
119
120
|
} }
|
|
120
121
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -128,8 +129,8 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
128
129
|
i0.ɵɵproperty("value", ctx_r1.getComponentCode(option_r6))("language", "javascript")("autoFocus", false)("indentWithTab", true)("readonly", true);
|
|
129
130
|
} }
|
|
130
131
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
132
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_5_ng_template_1_Template, 2, 0, "ng-template",
|
|
132
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
133
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_5_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_5_ng_template_2_Template, 2, 5, "ng-template", 5);
|
|
133
134
|
i0.ɵɵelementEnd();
|
|
134
135
|
} if (rf & 2) {
|
|
135
136
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
@@ -138,7 +139,7 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
138
139
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
139
140
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
140
141
|
i0.ɵɵelementStart(0, "div", 28)(1, "kendo-tabstrip", 29);
|
|
141
|
-
i0.ɵɵtemplate(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_2_Template, 3, 1, "kendo-tabstrip-tab",
|
|
142
|
+
i0.ɵɵtemplate(2, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_2_Template, 3, 1, "kendo-tabstrip-tab", 3)(3, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_3_Template, 3, 1, "kendo-tabstrip-tab", 3)(4, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_4_Template, 3, 1, "kendo-tabstrip-tab", 3)(5, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Conditional_5_Template, 3, 1, "kendo-tabstrip-tab", 3);
|
|
142
143
|
i0.ɵɵelementEnd()();
|
|
143
144
|
i0.ɵɵelementStart(6, "div", 30);
|
|
144
145
|
i0.ɵɵlistener("mousedown", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Template_div_mousedown_6_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_23_Template_div_touchstart_6_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.startResize($event)); });
|
|
@@ -156,11 +157,21 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
156
157
|
i0.ɵɵadvance();
|
|
157
158
|
i0.ɵɵconditional(ctx_r1.showCode ? 5 : -1);
|
|
158
159
|
} }
|
|
160
|
+
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_25_Template(rf, ctx) { if (rf & 1) {
|
|
161
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
162
|
+
i0.ɵɵelementStart(0, "mj-react-component", 36);
|
|
163
|
+
i0.ɵɵlistener("stateChange", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_25_Template_mj_react_component_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r9); 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_25_Template_mj_react_component_componentEvent_0_listener($event) { i0.ɵɵrestoreView(_r9); 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_25_Template_mj_react_component_refreshData_0_listener() { i0.ɵɵrestoreView(_r9); 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_25_Template_mj_react_component_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); });
|
|
164
|
+
i0.ɵɵelementEnd();
|
|
165
|
+
} if (rf & 2) {
|
|
166
|
+
const ɵ$index_4_r3 = i0.ɵɵnextContext(2).$index;
|
|
167
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
168
|
+
i0.ɵɵproperty("component", ctx_r1.componentSpecs.get(ɵ$index_4_r3))("data", ctx_r1.getFlattenedDataContext())("state", ctx_r1.userStates.get(ɵ$index_4_r3) || i0.ɵɵpureFunction0(5, _c0))("utilities", ctx_r1.utilities)("styles", ctx_r1.componentStyles || undefined);
|
|
169
|
+
} }
|
|
159
170
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
-
i0.ɵɵelementStart(0, "details",
|
|
171
|
+
i0.ɵɵelementStart(0, "details", 45)(1, "summary", 51);
|
|
161
172
|
i0.ɵɵtext(2, "Technical Details (click to expand)");
|
|
162
173
|
i0.ɵɵelementEnd();
|
|
163
|
-
i0.ɵɵelementStart(3, "pre",
|
|
174
|
+
i0.ɵɵelementStart(3, "pre", 52);
|
|
164
175
|
i0.ɵɵtext(4);
|
|
165
176
|
i0.ɵɵelementEnd()();
|
|
166
177
|
} if (rf & 2) {
|
|
@@ -169,20 +180,20 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
169
180
|
i0.ɵɵtextInterpolate(ctx_r1.currentError.technicalDetails);
|
|
170
181
|
} }
|
|
171
182
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
172
|
-
const
|
|
173
|
-
i0.ɵɵelementStart(0, "div", 23)(1, "div",
|
|
174
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Template_button_click_3_listener() { i0.ɵɵrestoreView(
|
|
175
|
-
i0.ɵɵelement(4, "span",
|
|
183
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
184
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 37)(2, "div", 38)(3, "button", 39);
|
|
185
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.copyErrorToClipboard()); });
|
|
186
|
+
i0.ɵɵelement(4, "span", 40);
|
|
176
187
|
i0.ɵɵtext(5, " Copy Error Details ");
|
|
177
188
|
i0.ɵɵelementEnd();
|
|
178
|
-
i0.ɵɵelementStart(6, "h3",
|
|
179
|
-
i0.ɵɵelement(7, "span",
|
|
189
|
+
i0.ɵɵelementStart(6, "h3", 41);
|
|
190
|
+
i0.ɵɵelement(7, "span", 42);
|
|
180
191
|
i0.ɵɵtext(8, " Component Rendering Error ");
|
|
181
192
|
i0.ɵɵelementEnd()();
|
|
182
|
-
i0.ɵɵelementStart(9, "p",
|
|
193
|
+
i0.ɵɵelementStart(9, "p", 43);
|
|
183
194
|
i0.ɵɵtext(10, " The selected component option could not be rendered due to the following error: ");
|
|
184
195
|
i0.ɵɵelementEnd();
|
|
185
|
-
i0.ɵɵelementStart(11, "div",
|
|
196
|
+
i0.ɵɵelementStart(11, "div", 44)(12, "strong");
|
|
186
197
|
i0.ɵɵtext(13, "Error Type:");
|
|
187
198
|
i0.ɵɵelementEnd();
|
|
188
199
|
i0.ɵɵtext(14);
|
|
@@ -191,12 +202,12 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
191
202
|
i0.ɵɵtext(17, "Details:");
|
|
192
203
|
i0.ɵɵelementEnd();
|
|
193
204
|
i0.ɵɵtext(18);
|
|
194
|
-
i0.ɵɵtemplate(19, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Conditional_19_Template, 5, 1, "details",
|
|
205
|
+
i0.ɵɵtemplate(19, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Conditional_19_Template, 5, 1, "details", 45);
|
|
195
206
|
i0.ɵɵelementEnd();
|
|
196
|
-
i0.ɵɵelementStart(20, "div",
|
|
207
|
+
i0.ɵɵelementStart(20, "div", 46)(21, "strong", 47);
|
|
197
208
|
i0.ɵɵtext(22, "What to do:");
|
|
198
209
|
i0.ɵɵelementEnd();
|
|
199
|
-
i0.ɵɵelementStart(23, "ol",
|
|
210
|
+
i0.ɵɵelementStart(23, "ol", 48)(24, "li");
|
|
200
211
|
i0.ɵɵtext(25, "Try selecting a different report option from the tabs above");
|
|
201
212
|
i0.ɵɵelementEnd();
|
|
202
213
|
i0.ɵɵelementStart(26, "li");
|
|
@@ -205,9 +216,9 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
205
216
|
i0.ɵɵelementStart(28, "li");
|
|
206
217
|
i0.ɵɵtext(29, "Contact your IT department if the issue persists");
|
|
207
218
|
i0.ɵɵelementEnd()()();
|
|
208
|
-
i0.ɵɵelementStart(30, "button",
|
|
209
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Template_button_click_30_listener() { i0.ɵɵrestoreView(
|
|
210
|
-
i0.ɵɵelement(31, "span",
|
|
219
|
+
i0.ɵɵelementStart(30, "button", 49);
|
|
220
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.retryCurrentOption()); });
|
|
221
|
+
i0.ɵɵelement(31, "span", 50);
|
|
211
222
|
i0.ɵɵtext(32, " Retry ");
|
|
212
223
|
i0.ɵɵelementEnd()()();
|
|
213
224
|
} if (rf & 2) {
|
|
@@ -221,37 +232,37 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Condi
|
|
|
221
232
|
} }
|
|
222
233
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
223
234
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
224
|
-
i0.ɵɵelementStart(0, "div",
|
|
235
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 7)(2, "div", 8)(3, "button", 9);
|
|
225
236
|
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleShowFunctionalRequirements()); });
|
|
226
|
-
i0.ɵɵelement(4, "i",
|
|
237
|
+
i0.ɵɵelement(4, "i", 10);
|
|
227
238
|
i0.ɵɵelementStart(5, "span");
|
|
228
239
|
i0.ɵɵtext(6, "Functional");
|
|
229
240
|
i0.ɵɵelementEnd()();
|
|
230
|
-
i0.ɵɵelementStart(7, "button",
|
|
241
|
+
i0.ɵɵelementStart(7, "button", 11);
|
|
231
242
|
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleShowDataRequirements()); });
|
|
232
|
-
i0.ɵɵelement(8, "i",
|
|
243
|
+
i0.ɵɵelement(8, "i", 12);
|
|
233
244
|
i0.ɵɵelementStart(9, "span");
|
|
234
245
|
i0.ɵɵtext(10, "Data");
|
|
235
246
|
i0.ɵɵelementEnd()();
|
|
236
|
-
i0.ɵɵelementStart(11, "button",
|
|
247
|
+
i0.ɵɵelementStart(11, "button", 13);
|
|
237
248
|
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleShowTechnicalDesign()); });
|
|
238
|
-
i0.ɵɵelement(12, "i",
|
|
249
|
+
i0.ɵɵelement(12, "i", 14);
|
|
239
250
|
i0.ɵɵelementStart(13, "span");
|
|
240
251
|
i0.ɵɵtext(14, "Technical");
|
|
241
252
|
i0.ɵɵelementEnd()();
|
|
242
|
-
i0.ɵɵelementStart(15, "button",
|
|
253
|
+
i0.ɵɵelementStart(15, "button", 15);
|
|
243
254
|
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleShowCode()); });
|
|
244
|
-
i0.ɵɵelement(16, "i",
|
|
255
|
+
i0.ɵɵelement(16, "i", 16);
|
|
245
256
|
i0.ɵɵelementStart(17, "span");
|
|
246
257
|
i0.ɵɵtext(18, "Code");
|
|
247
258
|
i0.ɵɵelementEnd()()();
|
|
248
|
-
i0.ɵɵelementStart(19, "div",
|
|
249
|
-
i0.ɵɵtemplate(20, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_20_Template, 4, 2, "button",
|
|
259
|
+
i0.ɵɵelementStart(19, "div", 17);
|
|
260
|
+
i0.ɵɵtemplate(20, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_20_Template, 4, 2, "button", 18)(21, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_button_21_Template, 4, 0, "button", 19);
|
|
250
261
|
i0.ɵɵelementEnd()();
|
|
251
|
-
i0.ɵɵelementStart(22, "div",
|
|
262
|
+
i0.ɵɵelementStart(22, "div", 20);
|
|
252
263
|
i0.ɵɵtemplate(23, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_23_Template, 8, 6);
|
|
253
|
-
i0.ɵɵelementStart(24, "div",
|
|
254
|
-
i0.ɵɵtemplate(26, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Template, 33, 3, "div", 23);
|
|
264
|
+
i0.ɵɵelementStart(24, "div", 21);
|
|
265
|
+
i0.ɵɵtemplate(25, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_mj_react_component_25_Template, 1, 6, "mj-react-component", 22)(26, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Conditional_26_Template, 33, 3, "div", 23);
|
|
255
266
|
i0.ɵɵelementEnd()()();
|
|
256
267
|
} if (rf & 2) {
|
|
257
268
|
const ɵ$index_4_r3 = i0.ɵɵnextContext().$index;
|
|
@@ -272,12 +283,14 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_2_Templ
|
|
|
272
283
|
i0.ɵɵconditional(ctx_r1.showFunctionalRequirements || ctx_r1.showDataRequirements || ctx_r1.showTechnicalDesign || ctx_r1.showCode ? 23 : -1);
|
|
273
284
|
i0.ɵɵadvance();
|
|
274
285
|
i0.ɵɵattribute("data-tab-index", ɵ$index_4_r3);
|
|
275
|
-
i0.ɵɵadvance(
|
|
286
|
+
i0.ɵɵadvance();
|
|
287
|
+
i0.ɵɵproperty("ngIf", !ctx_r1.currentError && ctx_r1.componentSpecs.has(ɵ$index_4_r3));
|
|
288
|
+
i0.ɵɵadvance();
|
|
276
289
|
i0.ɵɵconditional(ctx_r1.currentError && ctx_r1.selectedReportOptionIndex === ɵ$index_4_r3 ? 26 : -1);
|
|
277
290
|
} }
|
|
278
291
|
function SkipDynamicUIComponentComponent_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
279
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
280
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_ng_template_1_Template, 2, 2, "ng-template",
|
|
292
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
293
|
+
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, 27, 14, "ng-template", 5);
|
|
281
294
|
i0.ɵɵelementEnd();
|
|
282
295
|
} if (rf & 2) {
|
|
283
296
|
const ɵ$index_4_r3 = ctx.$index;
|
|
@@ -286,9 +299,9 @@ function SkipDynamicUIComponentComponent_Conditional_0_For_2_Template(rf, ctx) {
|
|
|
286
299
|
} }
|
|
287
300
|
function SkipDynamicUIComponentComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
288
301
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
289
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip",
|
|
302
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip", 2);
|
|
290
303
|
i0.ɵɵlistener("tabSelect", function SkipDynamicUIComponentComponent_Conditional_0_Template_kendo_tabstrip_tabSelect_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onTabSelect($event)); });
|
|
291
|
-
i0.ɵɵrepeaterCreate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_Template, 3, 1, "kendo-tabstrip-tab",
|
|
304
|
+
i0.ɵɵrepeaterCreate(1, SkipDynamicUIComponentComponent_Conditional_0_For_2_Template, 3, 1, "kendo-tabstrip-tab", 3, i0.ɵɵrepeaterTrackByIdentity);
|
|
292
305
|
i0.ɵɵelementEnd();
|
|
293
306
|
} if (rf & 2) {
|
|
294
307
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -297,9 +310,9 @@ function SkipDynamicUIComponentComponent_Conditional_0_Template(rf, ctx) { if (r
|
|
|
297
310
|
i0.ɵɵrepeater(ctx_r1.reportOptions);
|
|
298
311
|
} }
|
|
299
312
|
function SkipDynamicUIComponentComponent_Conditional_1_button_20_Template(rf, ctx) { if (rf & 1) {
|
|
300
|
-
const
|
|
313
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
301
314
|
i0.ɵɵelementStart(0, "button", 24);
|
|
302
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_20_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
315
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_20_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createReportForOption(0)); });
|
|
303
316
|
i0.ɵɵelement(1, "i", 25);
|
|
304
317
|
i0.ɵɵelementStart(2, "span");
|
|
305
318
|
i0.ɵɵtext(3);
|
|
@@ -308,19 +321,19 @@ function SkipDynamicUIComponentComponent_Conditional_1_button_20_Template(rf, ct
|
|
|
308
321
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
309
322
|
i0.ɵɵproperty("disabled", ctx_r1.isCreatingReport);
|
|
310
323
|
i0.ɵɵadvance(3);
|
|
311
|
-
i0.ɵɵtextInterpolate1("Create ", ctx_r1.
|
|
324
|
+
i0.ɵɵtextInterpolate1("Create ", ctx_r1.firstOptionComponentTypeName, "");
|
|
312
325
|
} }
|
|
313
326
|
function SkipDynamicUIComponentComponent_Conditional_1_button_21_Template(rf, ctx) { if (rf & 1) {
|
|
314
|
-
const
|
|
327
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
315
328
|
i0.ɵɵelementStart(0, "button", 26);
|
|
316
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_21_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
329
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_button_21_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.PrintReport()); });
|
|
317
330
|
i0.ɵɵelement(1, "i", 27);
|
|
318
331
|
i0.ɵɵelementStart(2, "span");
|
|
319
332
|
i0.ɵɵtext(3, "Print Report");
|
|
320
333
|
i0.ɵɵelementEnd()();
|
|
321
334
|
} }
|
|
322
335
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
323
|
-
i0.ɵɵelement(0, "i",
|
|
336
|
+
i0.ɵɵelement(0, "i", 10);
|
|
324
337
|
i0.ɵɵtext(1, " Functional Requirements ");
|
|
325
338
|
} }
|
|
326
339
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -333,14 +346,14 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditiona
|
|
|
333
346
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedFunctionalRequirements(ctx_r1.reportOptions[0]), i0.ɵɵsanitizeHtml);
|
|
334
347
|
} }
|
|
335
348
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
336
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
337
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_2_ng_template_1_Template, 2, 0, "ng-template",
|
|
349
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
350
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_2_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_2_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
338
351
|
i0.ɵɵelementEnd();
|
|
339
352
|
} if (rf & 2) {
|
|
340
353
|
i0.ɵɵproperty("selected", true);
|
|
341
354
|
} }
|
|
342
355
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
343
|
-
i0.ɵɵelement(0, "i",
|
|
356
|
+
i0.ɵɵelement(0, "i", 12);
|
|
344
357
|
i0.ɵɵtext(1, " Data Requirements ");
|
|
345
358
|
} }
|
|
346
359
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -353,15 +366,15 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditiona
|
|
|
353
366
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedDataRequirements(ctx_r1.reportOptions[0]), i0.ɵɵsanitizeHtml);
|
|
354
367
|
} }
|
|
355
368
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
356
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
357
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_3_ng_template_1_Template, 2, 0, "ng-template",
|
|
369
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
370
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_3_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_3_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
358
371
|
i0.ɵɵelementEnd();
|
|
359
372
|
} if (rf & 2) {
|
|
360
373
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
361
374
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements);
|
|
362
375
|
} }
|
|
363
376
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_4_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
364
|
-
i0.ɵɵelement(0, "i",
|
|
377
|
+
i0.ɵɵelement(0, "i", 14);
|
|
365
378
|
i0.ɵɵtext(1, " Technical Design ");
|
|
366
379
|
} }
|
|
367
380
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -374,20 +387,20 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditiona
|
|
|
374
387
|
i0.ɵɵproperty("innerHTML", ctx_r1.getFormattedTechnicalDesign(ctx_r1.reportOptions[0]), i0.ɵɵsanitizeHtml);
|
|
375
388
|
} }
|
|
376
389
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
377
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
378
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_4_ng_template_1_Template, 2, 0, "ng-template",
|
|
390
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
391
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_4_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_4_ng_template_2_Template, 2, 1, "ng-template", 5);
|
|
379
392
|
i0.ɵɵelementEnd();
|
|
380
393
|
} if (rf & 2) {
|
|
381
394
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
382
395
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements && !ctx_r1.showDataRequirements);
|
|
383
396
|
} }
|
|
384
397
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_5_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
385
|
-
i0.ɵɵelement(0, "i",
|
|
398
|
+
i0.ɵɵelement(0, "i", 16);
|
|
386
399
|
i0.ɵɵtext(1, " Code ");
|
|
387
400
|
} }
|
|
388
401
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
389
402
|
i0.ɵɵelementStart(0, "div", 34);
|
|
390
|
-
i0.ɵɵelement(1, "mj-code-editor",
|
|
403
|
+
i0.ɵɵelement(1, "mj-code-editor", 54);
|
|
391
404
|
i0.ɵɵelementEnd();
|
|
392
405
|
} if (rf & 2) {
|
|
393
406
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -395,20 +408,20 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditiona
|
|
|
395
408
|
i0.ɵɵproperty("language", "javascript")("value", ctx_r1.getComponentCode(ctx_r1.reportOptions[0]))("autoFocus", false)("indentWithTab", true)("readonly", true);
|
|
396
409
|
} }
|
|
397
410
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
398
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab",
|
|
399
|
-
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_5_ng_template_1_Template, 2, 0, "ng-template",
|
|
411
|
+
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 3);
|
|
412
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_5_ng_template_1_Template, 2, 0, "ng-template", 4)(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_5_ng_template_2_Template, 2, 5, "ng-template", 5);
|
|
400
413
|
i0.ɵɵelementEnd();
|
|
401
414
|
} if (rf & 2) {
|
|
402
415
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
403
416
|
i0.ɵɵproperty("selected", !ctx_r1.showFunctionalRequirements && !ctx_r1.showDataRequirements && !ctx_r1.showTechnicalDesign);
|
|
404
417
|
} }
|
|
405
418
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
406
|
-
const
|
|
419
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
407
420
|
i0.ɵɵelementStart(0, "div", 28)(1, "kendo-tabstrip", 29);
|
|
408
|
-
i0.ɵɵtemplate(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_2_Template, 3, 1, "kendo-tabstrip-tab",
|
|
421
|
+
i0.ɵɵtemplate(2, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_2_Template, 3, 1, "kendo-tabstrip-tab", 3)(3, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_3_Template, 3, 1, "kendo-tabstrip-tab", 3)(4, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_4_Template, 3, 1, "kendo-tabstrip-tab", 3)(5, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Conditional_5_Template, 3, 1, "kendo-tabstrip-tab", 3);
|
|
409
422
|
i0.ɵɵelementEnd()();
|
|
410
423
|
i0.ɵɵelementStart(6, "div", 30);
|
|
411
|
-
i0.ɵɵlistener("mousedown", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Template_div_mousedown_6_listener($event) { i0.ɵɵrestoreView(
|
|
424
|
+
i0.ɵɵlistener("mousedown", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Template_div_mousedown_6_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.startResize($event)); })("touchstart", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Template_div_touchstart_6_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.startResize($event)); });
|
|
412
425
|
i0.ɵɵelement(7, "div", 31);
|
|
413
426
|
i0.ɵɵelementEnd();
|
|
414
427
|
} if (rf & 2) {
|
|
@@ -424,10 +437,10 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Template(r
|
|
|
424
437
|
i0.ɵɵconditional(ctx_r1.showCode && ctx_r1.reportOptions[0] ? 5 : -1);
|
|
425
438
|
} }
|
|
426
439
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
427
|
-
i0.ɵɵelementStart(0, "details",
|
|
440
|
+
i0.ɵɵelementStart(0, "details", 45)(1, "summary", 51);
|
|
428
441
|
i0.ɵɵtext(2, "Technical Details (click to expand)");
|
|
429
442
|
i0.ɵɵelementEnd();
|
|
430
|
-
i0.ɵɵelementStart(3, "pre",
|
|
443
|
+
i0.ɵɵelementStart(3, "pre", 52);
|
|
431
444
|
i0.ɵɵtext(4);
|
|
432
445
|
i0.ɵɵelementEnd()();
|
|
433
446
|
} if (rf & 2) {
|
|
@@ -436,20 +449,20 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Conditiona
|
|
|
436
449
|
i0.ɵɵtextInterpolate(ctx_r1.currentError.technicalDetails);
|
|
437
450
|
} }
|
|
438
451
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
439
|
-
const
|
|
440
|
-
i0.ɵɵelementStart(0, "div",
|
|
441
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template_button_click_3_listener() { i0.ɵɵrestoreView(
|
|
442
|
-
i0.ɵɵelement(4, "span",
|
|
452
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
453
|
+
i0.ɵɵelementStart(0, "div", 53)(1, "div", 55)(2, "div", 38)(3, "button", 39);
|
|
454
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.copyErrorToClipboard()); });
|
|
455
|
+
i0.ɵɵelement(4, "span", 40);
|
|
443
456
|
i0.ɵɵtext(5, " Copy Error Details ");
|
|
444
457
|
i0.ɵɵelementEnd();
|
|
445
|
-
i0.ɵɵelementStart(6, "h3",
|
|
446
|
-
i0.ɵɵelement(7, "span",
|
|
458
|
+
i0.ɵɵelementStart(6, "h3", 41);
|
|
459
|
+
i0.ɵɵelement(7, "span", 42);
|
|
447
460
|
i0.ɵɵtext(8, " Component Rendering Error ");
|
|
448
461
|
i0.ɵɵelementEnd()();
|
|
449
|
-
i0.ɵɵelementStart(9, "p",
|
|
462
|
+
i0.ɵɵelementStart(9, "p", 43);
|
|
450
463
|
i0.ɵɵtext(10, " The selected component option could not be rendered due to the following error: ");
|
|
451
464
|
i0.ɵɵelementEnd();
|
|
452
|
-
i0.ɵɵelementStart(11, "div",
|
|
465
|
+
i0.ɵɵelementStart(11, "div", 44)(12, "strong");
|
|
453
466
|
i0.ɵɵtext(13, "Error Type:");
|
|
454
467
|
i0.ɵɵelementEnd();
|
|
455
468
|
i0.ɵɵtext(14);
|
|
@@ -458,20 +471,20 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template(r
|
|
|
458
471
|
i0.ɵɵtext(17, "Details:");
|
|
459
472
|
i0.ɵɵelementEnd();
|
|
460
473
|
i0.ɵɵtext(18);
|
|
461
|
-
i0.ɵɵtemplate(19, SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Conditional_19_Template, 5, 1, "details",
|
|
474
|
+
i0.ɵɵtemplate(19, SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Conditional_19_Template, 5, 1, "details", 45);
|
|
462
475
|
i0.ɵɵelementEnd();
|
|
463
|
-
i0.ɵɵelementStart(20, "div",
|
|
476
|
+
i0.ɵɵelementStart(20, "div", 46)(21, "strong", 47);
|
|
464
477
|
i0.ɵɵtext(22, "What to do:");
|
|
465
478
|
i0.ɵɵelementEnd();
|
|
466
|
-
i0.ɵɵelementStart(23, "ol",
|
|
479
|
+
i0.ɵɵelementStart(23, "ol", 48)(24, "li");
|
|
467
480
|
i0.ɵɵtext(25, "Copy the error details and send them back to Skip in the chat to get a corrected version");
|
|
468
481
|
i0.ɵɵelementEnd();
|
|
469
482
|
i0.ɵɵelementStart(26, "li");
|
|
470
483
|
i0.ɵɵtext(27, "Contact your IT department if the issue persists");
|
|
471
484
|
i0.ɵɵelementEnd()()();
|
|
472
|
-
i0.ɵɵelementStart(28, "button",
|
|
473
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template_button_click_28_listener() { i0.ɵɵrestoreView(
|
|
474
|
-
i0.ɵɵelement(29, "span",
|
|
485
|
+
i0.ɵɵelementStart(28, "button", 49);
|
|
486
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.retryCurrentOption()); });
|
|
487
|
+
i0.ɵɵelement(29, "span", 50);
|
|
475
488
|
i0.ɵɵtext(30, " Retry ");
|
|
476
489
|
i0.ɵɵelementEnd()()();
|
|
477
490
|
} if (rf & 2) {
|
|
@@ -483,40 +496,55 @@ function SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template(r
|
|
|
483
496
|
i0.ɵɵadvance();
|
|
484
497
|
i0.ɵɵconditional(ctx_r1.currentError.technicalDetails ? 19 : -1);
|
|
485
498
|
} }
|
|
499
|
+
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_mj_react_component_1_Template(rf, ctx) { if (rf & 1) {
|
|
500
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
501
|
+
i0.ɵɵelementStart(0, "mj-react-component", 36);
|
|
502
|
+
i0.ɵɵlistener("stateChange", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_mj_react_component_1_Template_mj_react_component_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onStateChange(0, $event)); })("componentEvent", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_mj_react_component_1_Template_mj_react_component_componentEvent_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onComponentEvent(0, $event)); })("refreshData", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_mj_react_component_1_Template_mj_react_component_refreshData_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.handleRefreshData()); })("openEntityRecord", function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_mj_react_component_1_Template_mj_react_component_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); });
|
|
503
|
+
i0.ɵɵelementEnd();
|
|
504
|
+
} if (rf & 2) {
|
|
505
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
506
|
+
i0.ɵɵproperty("component", ctx_r1.componentSpecs.get(0))("data", ctx_r1.getFlattenedDataContext())("state", ctx_r1.userStates.get(0) || i0.ɵɵpureFunction0(5, _c0))("utilities", ctx_r1.utilities)("styles", ctx_r1.componentStyles || undefined);
|
|
507
|
+
} }
|
|
486
508
|
function SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
487
|
-
i0.ɵɵ
|
|
509
|
+
i0.ɵɵelementStart(0, "div", 21);
|
|
510
|
+
i0.ɵɵtemplate(1, SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_mj_react_component_1_Template, 1, 6, "mj-react-component", 22);
|
|
511
|
+
i0.ɵɵelementEnd();
|
|
512
|
+
} if (rf & 2) {
|
|
513
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
514
|
+
i0.ɵɵadvance();
|
|
515
|
+
i0.ɵɵproperty("ngIf", ctx_r1.componentSpecs.has(0));
|
|
488
516
|
} }
|
|
489
517
|
function SkipDynamicUIComponentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
490
|
-
const
|
|
491
|
-
i0.ɵɵelementStart(0, "div",
|
|
492
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_3_listener() { i0.ɵɵrestoreView(
|
|
493
|
-
i0.ɵɵelement(4, "i",
|
|
518
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
519
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 7)(2, "div", 8)(3, "button", 9);
|
|
520
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowFunctionalRequirements()); });
|
|
521
|
+
i0.ɵɵelement(4, "i", 10);
|
|
494
522
|
i0.ɵɵelementStart(5, "span");
|
|
495
523
|
i0.ɵɵtext(6, "Functional");
|
|
496
524
|
i0.ɵɵelementEnd()();
|
|
497
|
-
i0.ɵɵelementStart(7, "button",
|
|
498
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_7_listener() { i0.ɵɵrestoreView(
|
|
499
|
-
i0.ɵɵelement(8, "i",
|
|
525
|
+
i0.ɵɵelementStart(7, "button", 11);
|
|
526
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowDataRequirements()); });
|
|
527
|
+
i0.ɵɵelement(8, "i", 12);
|
|
500
528
|
i0.ɵɵelementStart(9, "span");
|
|
501
529
|
i0.ɵɵtext(10, "Data");
|
|
502
530
|
i0.ɵɵelementEnd()();
|
|
503
|
-
i0.ɵɵelementStart(11, "button",
|
|
504
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_11_listener() { i0.ɵɵrestoreView(
|
|
505
|
-
i0.ɵɵelement(12, "i",
|
|
531
|
+
i0.ɵɵelementStart(11, "button", 13);
|
|
532
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowTechnicalDesign()); });
|
|
533
|
+
i0.ɵɵelement(12, "i", 14);
|
|
506
534
|
i0.ɵɵelementStart(13, "span");
|
|
507
535
|
i0.ɵɵtext(14, "Technical");
|
|
508
536
|
i0.ɵɵelementEnd()();
|
|
509
|
-
i0.ɵɵelementStart(15, "button",
|
|
510
|
-
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_15_listener() { i0.ɵɵrestoreView(
|
|
511
|
-
i0.ɵɵelement(16, "i",
|
|
537
|
+
i0.ɵɵelementStart(15, "button", 15);
|
|
538
|
+
i0.ɵɵlistener("click", function SkipDynamicUIComponentComponent_Conditional_1_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShowCode()); });
|
|
539
|
+
i0.ɵɵelement(16, "i", 16);
|
|
512
540
|
i0.ɵɵelementStart(17, "span");
|
|
513
541
|
i0.ɵɵtext(18, "Code");
|
|
514
542
|
i0.ɵɵelementEnd()()();
|
|
515
|
-
i0.ɵɵelementStart(19, "div",
|
|
516
|
-
i0.ɵɵtemplate(20, SkipDynamicUIComponentComponent_Conditional_1_button_20_Template, 4, 2, "button",
|
|
543
|
+
i0.ɵɵelementStart(19, "div", 17);
|
|
544
|
+
i0.ɵɵtemplate(20, SkipDynamicUIComponentComponent_Conditional_1_button_20_Template, 4, 2, "button", 18)(21, SkipDynamicUIComponentComponent_Conditional_1_button_21_Template, 4, 0, "button", 19);
|
|
517
545
|
i0.ɵɵelementEnd()();
|
|
518
|
-
i0.ɵɵelementStart(22, "div",
|
|
519
|
-
i0.ɵɵtemplate(23, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Template, 8, 6)(24, SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template, 31, 3, "div",
|
|
546
|
+
i0.ɵɵelementStart(22, "div", 20);
|
|
547
|
+
i0.ɵɵtemplate(23, SkipDynamicUIComponentComponent_Conditional_1_Conditional_23_Template, 8, 6)(24, SkipDynamicUIComponentComponent_Conditional_1_Conditional_24_Template, 31, 3, "div", 53)(25, SkipDynamicUIComponentComponent_Conditional_1_Conditional_25_Template, 2, 1, "div", 21);
|
|
520
548
|
i0.ɵɵelementEnd()();
|
|
521
549
|
} if (rf & 2) {
|
|
522
550
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -549,11 +577,13 @@ export class SkipDynamicUIComponentComponent {
|
|
|
549
577
|
matchingReportID = null;
|
|
550
578
|
DrillDownEvent = new EventEmitter();
|
|
551
579
|
CreateReportRequested = new EventEmitter();
|
|
552
|
-
|
|
580
|
+
reactComponents;
|
|
553
581
|
// Properties for handling multiple report options
|
|
554
582
|
reportOptions = [];
|
|
555
583
|
selectedReportOptionIndex = 0;
|
|
556
584
|
currentError = null;
|
|
585
|
+
// Cached component type name to avoid expression change errors
|
|
586
|
+
_cachedComponentTypeName = 'Component';
|
|
557
587
|
isCreatingReport = false;
|
|
558
588
|
// Toggle states for showing/hiding component details
|
|
559
589
|
showFunctionalRequirements = false;
|
|
@@ -565,15 +595,12 @@ export class SkipDynamicUIComponentComponent {
|
|
|
565
595
|
isResizing = false;
|
|
566
596
|
startY = 0;
|
|
567
597
|
startHeight = 0;
|
|
568
|
-
// Cache for
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
UpdateUserState: (userState) => this.handleUpdateUserState(userState),
|
|
575
|
-
NotifyEvent: (eventName, eventData) => this.handleNotifyEvent(eventName, eventData)
|
|
576
|
-
};
|
|
598
|
+
// Cache for component specs and user states
|
|
599
|
+
componentSpecs = new Map();
|
|
600
|
+
userStates = new Map();
|
|
601
|
+
utilities = null;
|
|
602
|
+
componentStyles = null;
|
|
603
|
+
// Event handlers from React components
|
|
577
604
|
constructor(sanitizer, cdr, ngZone) {
|
|
578
605
|
this.sanitizer = sanitizer;
|
|
579
606
|
this.cdr = cdr;
|
|
@@ -633,13 +660,12 @@ export class SkipDynamicUIComponentComponent {
|
|
|
633
660
|
// Update the component info - this can fail if placeholders are missing
|
|
634
661
|
this.UIComponentCode = BuildSkipComponentCompleteCode(selectedOption.option);
|
|
635
662
|
this.ComponentObjectName = selectedOption.option.componentName;
|
|
636
|
-
//
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
//
|
|
640
|
-
this.
|
|
663
|
+
// Create or update the component spec for this option
|
|
664
|
+
if (!this.componentSpecs.has(this.selectedReportOptionIndex)) {
|
|
665
|
+
this.createComponentSpecForOption(this.selectedReportOptionIndex);
|
|
666
|
+
// Trigger change detection after modifying componentSpecs
|
|
667
|
+
this.cdr.detectChanges();
|
|
641
668
|
}
|
|
642
|
-
this.currentHostIndex = this.selectedReportOptionIndex;
|
|
643
669
|
}
|
|
644
670
|
catch (error) {
|
|
645
671
|
console.error('Failed to build component code:', error);
|
|
@@ -654,9 +680,10 @@ export class SkipDynamicUIComponentComponent {
|
|
|
654
680
|
}
|
|
655
681
|
}
|
|
656
682
|
async PrintReport() {
|
|
657
|
-
const
|
|
658
|
-
if (
|
|
659
|
-
|
|
683
|
+
const currentComponent = this.getCurrentReactComponent();
|
|
684
|
+
if (currentComponent) {
|
|
685
|
+
// React component handles printing internally
|
|
686
|
+
window.print();
|
|
660
687
|
}
|
|
661
688
|
else {
|
|
662
689
|
window.print();
|
|
@@ -682,20 +709,19 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
682
709
|
});
|
|
683
710
|
}
|
|
684
711
|
/**
|
|
685
|
-
* Get the
|
|
712
|
+
* Get the React component for a specific option index
|
|
686
713
|
*/
|
|
687
|
-
|
|
688
|
-
if (!this.
|
|
714
|
+
getReactComponentForOption(optionIndex) {
|
|
715
|
+
if (!this.reactComponents || this.reactComponents.length === 0) {
|
|
689
716
|
return null;
|
|
690
717
|
}
|
|
691
718
|
if (this.reportOptions.length === 1) {
|
|
692
|
-
// Single option - use the only
|
|
693
|
-
return this.
|
|
719
|
+
// Single option - use the only component
|
|
720
|
+
return this.reactComponents.first || null;
|
|
694
721
|
}
|
|
695
722
|
else {
|
|
696
|
-
// Multiple options - find
|
|
697
|
-
|
|
698
|
-
return container?.nativeElement || null;
|
|
723
|
+
// Multiple options - find by index
|
|
724
|
+
return this.reactComponents.toArray()[optionIndex] || null;
|
|
699
725
|
}
|
|
700
726
|
}
|
|
701
727
|
/**
|
|
@@ -704,16 +730,10 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
704
730
|
retryCurrentOption() {
|
|
705
731
|
// Clear the error
|
|
706
732
|
this.currentError = null;
|
|
707
|
-
//
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
host.destroy();
|
|
712
|
-
}
|
|
713
|
-
this.reactHostCache.delete(this.selectedReportOptionIndex);
|
|
714
|
-
}
|
|
715
|
-
// Try creating it again
|
|
716
|
-
this.createReactHostForOption(this.selectedReportOptionIndex);
|
|
733
|
+
// Re-create the component spec
|
|
734
|
+
this.createComponentSpecForOption(this.selectedReportOptionIndex);
|
|
735
|
+
// Trigger change detection
|
|
736
|
+
this.cdr.detectChanges();
|
|
717
737
|
}
|
|
718
738
|
/**
|
|
719
739
|
* Handle create report request for a specific option
|
|
@@ -730,6 +750,12 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
730
750
|
const type = option.option.componentType || 'report';
|
|
731
751
|
return type.charAt(0).toUpperCase() + type.slice(1);
|
|
732
752
|
}
|
|
753
|
+
/**
|
|
754
|
+
* Get the cached component type name for the first option to avoid change detection errors
|
|
755
|
+
*/
|
|
756
|
+
get firstOptionComponentTypeName() {
|
|
757
|
+
return this._cachedComponentTypeName;
|
|
758
|
+
}
|
|
733
759
|
/**
|
|
734
760
|
* Toggle methods for showing/hiding component details
|
|
735
761
|
*/
|
|
@@ -879,51 +905,40 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
879
905
|
if (this.SkipData) {
|
|
880
906
|
this.setupReportOptions(this.SkipData);
|
|
881
907
|
}
|
|
882
|
-
//
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
908
|
+
// Initialize utilities and styles once
|
|
909
|
+
const md = new Metadata();
|
|
910
|
+
this.utilities = this.SetupUtilities(md);
|
|
911
|
+
this.componentStyles = this.SetupStyles();
|
|
912
|
+
// Create component specs for all options
|
|
913
|
+
// Use Promise.resolve to avoid ExpressionChangedAfterItHasBeenCheckedError
|
|
914
|
+
if (this.reportOptions.length > 0) {
|
|
915
|
+
Promise.resolve().then(() => {
|
|
916
|
+
this.reportOptions.forEach((_, index) => {
|
|
917
|
+
this.createComponentSpecForOption(index);
|
|
918
|
+
});
|
|
919
|
+
this.cdr.detectChanges();
|
|
920
|
+
});
|
|
921
|
+
}
|
|
889
922
|
}
|
|
890
923
|
ngOnDestroy() {
|
|
891
|
-
// Clean up
|
|
892
|
-
this.
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
}
|
|
896
|
-
catch (e) {
|
|
897
|
-
console.error('Error destroying React host:', e);
|
|
898
|
-
}
|
|
899
|
-
});
|
|
900
|
-
this.reactHostCache.clear();
|
|
901
|
-
// Clean up registered components from the GlobalComponentRegistry
|
|
902
|
-
// Note: We don't remove them as they might be used by other instances
|
|
903
|
-
// The registry is designed to be a singleton that persists across component instances
|
|
924
|
+
// Clean up component specs and states
|
|
925
|
+
this.componentSpecs.clear();
|
|
926
|
+
this.userStates.clear();
|
|
927
|
+
// The MJReactComponent handles its own cleanup
|
|
904
928
|
}
|
|
905
929
|
ngOnChanges(changes) {
|
|
906
|
-
if (changes['SkipData']
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
host.updateState('data', newData);
|
|
912
|
-
}
|
|
913
|
-
catch (e) {
|
|
914
|
-
console.error('Error updating React host data:', e);
|
|
915
|
-
}
|
|
916
|
-
});
|
|
930
|
+
if (changes['SkipData']) {
|
|
931
|
+
const skipData = changes['SkipData'].currentValue;
|
|
932
|
+
if (skipData) {
|
|
933
|
+
this.setupReportOptions(skipData);
|
|
934
|
+
}
|
|
917
935
|
}
|
|
918
936
|
}
|
|
919
937
|
/**
|
|
920
|
-
* Get the currently active React
|
|
938
|
+
* Get the currently active React component
|
|
921
939
|
*/
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
return this.reactHostCache.get(this.currentHostIndex) || null;
|
|
925
|
-
}
|
|
926
|
-
return null;
|
|
940
|
+
getCurrentReactComponent() {
|
|
941
|
+
return this.getReactComponentForOption(this.selectedReportOptionIndex);
|
|
927
942
|
}
|
|
928
943
|
_skipData;
|
|
929
944
|
get SkipData() {
|
|
@@ -969,65 +984,35 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
969
984
|
const bestOption = this.reportOptions[0];
|
|
970
985
|
this.UIComponentCode = BuildSkipComponentCompleteCode(bestOption.option);
|
|
971
986
|
this.ComponentObjectName = bestOption.option.componentName;
|
|
987
|
+
// Update cached component type name after current change detection cycle
|
|
988
|
+
Promise.resolve().then(() => {
|
|
989
|
+
this._cachedComponentTypeName = this.getComponentTypeName(bestOption);
|
|
990
|
+
this.cdr.detectChanges();
|
|
991
|
+
});
|
|
972
992
|
}
|
|
973
993
|
}
|
|
974
994
|
/**
|
|
975
|
-
* Create a
|
|
995
|
+
* Create a component spec for a specific option index
|
|
976
996
|
*/
|
|
977
|
-
|
|
997
|
+
createComponentSpecForOption(optionIndex) {
|
|
978
998
|
const option = this.reportOptions[optionIndex];
|
|
979
999
|
if (!option)
|
|
980
1000
|
return;
|
|
981
|
-
const container = this.getContainerForOption(optionIndex);
|
|
982
|
-
if (!container)
|
|
983
|
-
return;
|
|
984
1001
|
try {
|
|
985
1002
|
const component = option.option;
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
//
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
component,
|
|
992
|
-
container: container,
|
|
993
|
-
callbacks: this.callbacks,
|
|
994
|
-
data: data,
|
|
995
|
-
utilities: this.SetupUtilities(md),
|
|
996
|
-
styles: this.SetupStyles()
|
|
997
|
-
// metadata will be auto-populated from component.childComponents
|
|
998
|
-
});
|
|
999
|
-
// Initialize and render the React component
|
|
1000
|
-
await reactHost.initialize();
|
|
1001
|
-
// Cache the host
|
|
1002
|
-
this.reactHostCache.set(optionIndex, reactHost);
|
|
1003
|
-
// Update current index if this is the selected option
|
|
1004
|
-
if (optionIndex === this.selectedReportOptionIndex) {
|
|
1005
|
-
this.currentHostIndex = optionIndex;
|
|
1003
|
+
// Store the component spec
|
|
1004
|
+
this.componentSpecs.set(optionIndex, component);
|
|
1005
|
+
// Initialize user state if not exists
|
|
1006
|
+
if (!this.userStates.has(optionIndex)) {
|
|
1007
|
+
this.userStates.set(optionIndex, {});
|
|
1006
1008
|
}
|
|
1007
1009
|
}
|
|
1008
1010
|
catch (e) {
|
|
1009
|
-
console.error('Error creating
|
|
1011
|
+
console.error('Error creating component spec:', e);
|
|
1010
1012
|
// Determine the type of error and create a user-friendly message
|
|
1011
|
-
let errorType = 'Component
|
|
1012
|
-
let errorMessage = 'Failed to
|
|
1013
|
+
let errorType = 'Component Specification Error';
|
|
1014
|
+
let errorMessage = 'Failed to create component specification.';
|
|
1013
1015
|
let technicalDetails = e.toString();
|
|
1014
|
-
if (e.message?.includes('JSX transpilation failed')) {
|
|
1015
|
-
errorType = 'Code Compilation Error';
|
|
1016
|
-
errorMessage = 'The component code could not be compiled. This usually indicates a syntax error in the generated code.';
|
|
1017
|
-
technicalDetails = e.message;
|
|
1018
|
-
}
|
|
1019
|
-
else if (e.message?.includes('is not defined')) {
|
|
1020
|
-
errorType = 'Missing Dependency';
|
|
1021
|
-
errorMessage = 'The component is trying to use a feature or library that is not available.';
|
|
1022
|
-
}
|
|
1023
|
-
else if (e.message?.includes('Missing required child components')) {
|
|
1024
|
-
errorType = 'Incomplete Component Specification';
|
|
1025
|
-
errorMessage = e.message;
|
|
1026
|
-
}
|
|
1027
|
-
else if (e.message?.includes('Cannot read properties')) {
|
|
1028
|
-
errorType = 'Property Access Error';
|
|
1029
|
-
errorMessage = 'The component is trying to access data that doesn\'t exist. This often happens when property names don\'t match the data structure.';
|
|
1030
|
-
}
|
|
1031
1016
|
this.currentError = {
|
|
1032
1017
|
type: errorType,
|
|
1033
1018
|
message: errorMessage,
|
|
@@ -1036,6 +1021,40 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
1036
1021
|
LogError(e);
|
|
1037
1022
|
}
|
|
1038
1023
|
}
|
|
1024
|
+
/**
|
|
1025
|
+
* Handle state change events from React components
|
|
1026
|
+
*/
|
|
1027
|
+
onStateChange(optionIndex, event) {
|
|
1028
|
+
const currentState = this.userStates.get(optionIndex) || {};
|
|
1029
|
+
this.userStates.set(optionIndex, {
|
|
1030
|
+
...currentState,
|
|
1031
|
+
[event.path]: event.value
|
|
1032
|
+
});
|
|
1033
|
+
// Handle any additional state change logic
|
|
1034
|
+
this.handleUpdateUserState({ [event.path]: event.value });
|
|
1035
|
+
}
|
|
1036
|
+
/**
|
|
1037
|
+
* Handle component events from React components
|
|
1038
|
+
*/
|
|
1039
|
+
onComponentEvent(optionIndex, event) {
|
|
1040
|
+
if (event.type === 'error') {
|
|
1041
|
+
this.currentError = {
|
|
1042
|
+
type: event.payload.source || 'React Component Error',
|
|
1043
|
+
message: event.payload.error || 'An unknown error occurred',
|
|
1044
|
+
technicalDetails: event.payload.errorInfo || ''
|
|
1045
|
+
};
|
|
1046
|
+
}
|
|
1047
|
+
else {
|
|
1048
|
+
this.handleNotifyEvent(event.type, event.payload);
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
/**
|
|
1052
|
+
* Handle open entity record events
|
|
1053
|
+
*/
|
|
1054
|
+
onOpenEntityRecord(event) {
|
|
1055
|
+
const key = new CompositeKey([{ FieldName: 'ID', Value: event.recordId }]);
|
|
1056
|
+
this.handleOpenEntityRecord(event.entityName, key);
|
|
1057
|
+
}
|
|
1039
1058
|
getFlattenedDataContext() {
|
|
1040
1059
|
const flattenedDataContext = {};
|
|
1041
1060
|
if (this.SkipData?.dataContext) {
|
|
@@ -1282,28 +1301,24 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
1282
1301
|
return cb;
|
|
1283
1302
|
}
|
|
1284
1303
|
async refreshReport(data) {
|
|
1285
|
-
const
|
|
1286
|
-
if (
|
|
1287
|
-
|
|
1288
|
-
}
|
|
1289
|
-
else {
|
|
1290
|
-
// If no React host is available, create one for the current option
|
|
1291
|
-
this.createReactHostForOption(this.selectedReportOptionIndex);
|
|
1304
|
+
const currentComponent = this.getCurrentReactComponent();
|
|
1305
|
+
if (currentComponent) {
|
|
1306
|
+
currentComponent.refresh(data);
|
|
1292
1307
|
}
|
|
1293
1308
|
}
|
|
1294
1309
|
static ɵfac = function SkipDynamicUIComponentComponent_Factory(t) { return new (t || SkipDynamicUIComponentComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
|
|
1295
1310
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkipDynamicUIComponentComponent, selectors: [["skip-dynamic-ui-component"]], viewQuery: function SkipDynamicUIComponentComponent_Query(rf, ctx) { if (rf & 1) {
|
|
1296
|
-
i0.ɵɵviewQuery(
|
|
1311
|
+
i0.ɵɵviewQuery(MJReactComponent, 5);
|
|
1297
1312
|
} if (rf & 2) {
|
|
1298
1313
|
let _t;
|
|
1299
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
1314
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reactComponents = _t);
|
|
1300
1315
|
} }, hostBindings: function SkipDynamicUIComponentComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
1301
1316
|
i0.ɵɵlistener("resize", function SkipDynamicUIComponentComponent_resize_HostBindingHandler() { return ctx.onWindowResize(); }, false, i0.ɵɵresolveWindow);
|
|
1302
|
-
} }, 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: [[
|
|
1303
|
-
i0.ɵɵtemplate(0, SkipDynamicUIComponentComponent_Conditional_0_Template, 3, 1, "kendo-tabstrip",
|
|
1317
|
+
} }, 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"], [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", "data", "state", "utilities", "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-plus"], ["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, "value", "language", "autoFocus", "indentWithTab", "readonly"], [2, "width", "100%", "height", "100%", 3, "stateChange", "componentEvent", "refreshData", "openEntityRecord", "component", "data", "state", "utilities", "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"], [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, "language", "value", "autoFocus", "indentWithTab", "readonly"], [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) {
|
|
1318
|
+
i0.ɵɵtemplate(0, SkipDynamicUIComponentComponent_Conditional_0_Template, 3, 1, "kendo-tabstrip", 0)(1, SkipDynamicUIComponentComponent_Conditional_1_Template, 26, 12, "div", 1);
|
|
1304
1319
|
} if (rf & 2) {
|
|
1305
1320
|
i0.ɵɵconditional(ctx.reportOptions.length > 1 ? 0 : 1);
|
|
1306
|
-
} }, dependencies: [i2.NgIf, i3.TabStripComponent, i3.TabStripTabComponent, i3.TabContentDirective, i3.TabTitleDirective, i4.ButtonComponent, i5.CodeEditorComponent], 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 }"] });
|
|
1321
|
+
} }, dependencies: [i2.NgIf, i3.TabStripComponent, i3.TabStripTabComponent, i3.TabContentDirective, i3.TabTitleDirective, i4.ButtonComponent, i5.CodeEditorComponent, i6.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 }"] });
|
|
1307
1322
|
}
|
|
1308
1323
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SkipDynamicUIComponentComponent, [{
|
|
1309
1324
|
type: Component,
|
|
@@ -1447,9 +1462,21 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
1447
1462
|
}
|
|
1448
1463
|
|
|
1449
1464
|
<!-- React component container -->
|
|
1450
|
-
<div
|
|
1465
|
+
<div [attr.data-tab-index]="i"
|
|
1451
1466
|
style="flex: 1; position: relative; min-height: 0; overflow: auto;">
|
|
1452
|
-
|
|
1467
|
+
<mj-react-component
|
|
1468
|
+
*ngIf="!currentError && componentSpecs.has(i)"
|
|
1469
|
+
[component]="componentSpecs.get(i)!"
|
|
1470
|
+
[data]="getFlattenedDataContext()"
|
|
1471
|
+
[state]="userStates.get(i) || {}"
|
|
1472
|
+
[utilities]="utilities"
|
|
1473
|
+
[styles]="componentStyles || undefined"
|
|
1474
|
+
(stateChange)="onStateChange(i, $event)"
|
|
1475
|
+
(componentEvent)="onComponentEvent(i, $event)"
|
|
1476
|
+
(refreshData)="handleRefreshData()"
|
|
1477
|
+
(openEntityRecord)="onOpenEntityRecord($event)"
|
|
1478
|
+
style="width: 100%; height: 100%;">
|
|
1479
|
+
</mj-react-component>
|
|
1453
1480
|
|
|
1454
1481
|
<!-- Error overlay for this tab (shown on top of content when needed) -->
|
|
1455
1482
|
@if (currentError && selectedReportOptionIndex === i) {
|
|
@@ -1563,7 +1590,7 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
1563
1590
|
(click)="createReportForOption(0)"
|
|
1564
1591
|
[disabled]="isCreatingReport">
|
|
1565
1592
|
<i class="fa-solid fa-plus"></i>
|
|
1566
|
-
<span>Create {{
|
|
1593
|
+
<span>Create {{ firstOptionComponentTypeName }}</span>
|
|
1567
1594
|
</button>
|
|
1568
1595
|
<button class="tab-action-button print-button"
|
|
1569
1596
|
*ngIf="ShowPrintReport"
|
|
@@ -1702,8 +1729,20 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
1702
1729
|
</div>
|
|
1703
1730
|
} @else {
|
|
1704
1731
|
<!-- React component container (only shown when no error) -->
|
|
1705
|
-
<div
|
|
1706
|
-
|
|
1732
|
+
<div style="flex: 1; position: relative; min-height: 0; overflow: auto;">
|
|
1733
|
+
<mj-react-component
|
|
1734
|
+
*ngIf="componentSpecs.has(0)"
|
|
1735
|
+
[component]="componentSpecs.get(0)!"
|
|
1736
|
+
[data]="getFlattenedDataContext()"
|
|
1737
|
+
[state]="userStates.get(0) || {}"
|
|
1738
|
+
[utilities]="utilities"
|
|
1739
|
+
[styles]="componentStyles || undefined"
|
|
1740
|
+
(stateChange)="onStateChange(0, $event)"
|
|
1741
|
+
(componentEvent)="onComponentEvent(0, $event)"
|
|
1742
|
+
(refreshData)="handleRefreshData()"
|
|
1743
|
+
(openEntityRecord)="onOpenEntityRecord($event)"
|
|
1744
|
+
style="width: 100%; height: 100%;">
|
|
1745
|
+
</mj-react-component>
|
|
1707
1746
|
</div>
|
|
1708
1747
|
}
|
|
1709
1748
|
</div>
|
|
@@ -1727,14 +1766,14 @@ Component Name: ${this.ComponentObjectName || 'Unknown'}`;
|
|
|
1727
1766
|
type: Output
|
|
1728
1767
|
}], CreateReportRequested: [{
|
|
1729
1768
|
type: Output
|
|
1730
|
-
}],
|
|
1769
|
+
}], reactComponents: [{
|
|
1731
1770
|
type: ViewChildren,
|
|
1732
|
-
args: [
|
|
1771
|
+
args: [MJReactComponent]
|
|
1733
1772
|
}], onWindowResize: [{
|
|
1734
1773
|
type: HostListener,
|
|
1735
1774
|
args: ['window:resize']
|
|
1736
1775
|
}], SkipData: [{
|
|
1737
1776
|
type: Input
|
|
1738
1777
|
}] }); })();
|
|
1739
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipDynamicUIComponentComponent, { className: "SkipDynamicUIComponentComponent", filePath: "src/lib/dynamic-report/dynamic-ui-component.ts", lineNumber:
|
|
1778
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipDynamicUIComponentComponent, { className: "SkipDynamicUIComponentComponent", filePath: "src/lib/dynamic-report/dynamic-ui-component.ts", lineNumber: 718 }); })();
|
|
1740
1779
|
//# sourceMappingURL=dynamic-ui-component.js.map
|