@memberjunction/ng-dashboards 2.87.0 → 2.88.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.
@@ -30,6 +30,7 @@ export declare class ComponentStudioDashboardComponent extends BaseDashboard imp
30
30
  private filterComponents;
31
31
  toggleComponentExpansion(component: ComponentEntity): void;
32
32
  runComponent(component: ComponentEntity): void;
33
+ private startComponent;
33
34
  stopComponent(): void;
34
35
  /**
35
36
  * Handle component events from React components
@@ -1 +1 @@
1
- {"version":3,"file":"component-studio-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,SAAS,EAAyB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAW,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;;AAG/D,qBAMa,iCAAkC,SAAQ,aAAc,YAAW,aAAa,EAAE,SAAS;IAiB1F,OAAO,CAAC,GAAG;IAdhB,UAAU,EAAE,eAAe,EAAE,CAAM;IACnC,kBAAkB,EAAE,eAAe,EAAE,CAAM;IAC3C,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAQ;IACjD,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAQ;IACjD,aAAa,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC3C,SAAS,UAAS;IAClB,WAAW,SAAM;IACjB,SAAS,UAAS;IAGlB,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAE7F,OAAO,CAAC,QAAQ,CAAuB;gBAEnB,GAAG,EAAE,iBAAiB;IAI1C,eAAe,IAAI,IAAI;IAKvB,WAAW,IAAI,IAAI;IAKnB,SAAS,CAAC,aAAa,IAAI,IAAI;cAIf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BlC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,OAAO,CAAC,gBAAgB;IAajB,wBAAwB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAU1D,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAS9C,aAAa,IAAI,IAAI;IAQ5B;;OAEG;IACI,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAWzD;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI;IAKjF;;OAEG;IACI,cAAc,IAAI,IAAI;IAY7B;;OAEG;IACU,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBlD;;OAEG;IACI,sBAAsB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM;IAOtC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAejD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;yCAnM9C,iCAAiC;2CAAjC,iCAAiC;CAiN7C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,SAE3C"}
1
+ {"version":3,"file":"component-studio-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,SAAS,EAAyB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAW,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;;AAG/D,qBAMa,iCAAkC,SAAQ,aAAc,YAAW,aAAa,EAAE,SAAS;IAiB1F,OAAO,CAAC,GAAG;IAdhB,UAAU,EAAE,eAAe,EAAE,CAAM;IACnC,kBAAkB,EAAE,eAAe,EAAE,CAAM;IAC3C,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAQ;IACjD,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAQ;IACjD,aAAa,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC3C,SAAS,UAAS;IAClB,WAAW,SAAM;IACjB,SAAS,UAAS;IAGlB,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAE7F,OAAO,CAAC,QAAQ,CAAuB;gBAEnB,GAAG,EAAE,iBAAiB;IAI1C,eAAe,IAAI,IAAI;IAKvB,WAAW,IAAI,IAAI;IAKnB,SAAS,CAAC,aAAa,IAAI,IAAI;cAIf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BlC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,OAAO,CAAC,gBAAgB;IAcjB,wBAAwB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAU1D,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAWrD,OAAO,CAAC,cAAc;IAaf,aAAa,IAAI,IAAI;IAa5B;;OAEG;IACI,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAWzD;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI;IAKjF;;OAEG;IACI,cAAc,IAAI,IAAI;IAY7B;;OAEG;IACU,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBlD;;OAEG;IACI,sBAAsB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM;IAOtC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAejD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;yCAxN9C,iCAAiC;2CAAjC,iCAAiC;CAsO7C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,SAE3C"}
@@ -17,38 +17,42 @@ import * as i3 from "@progress/kendo-angular-layout";
17
17
  import * as i4 from "@progress/kendo-angular-buttons";
18
18
  import * as i5 from "@memberjunction/ng-react";
19
19
  const _forTrack0 = ($index, $item) => $item.ID;
20
- function ComponentStudioDashboardComponent_ng_template_16_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelement(0, "i", 18);
20
+ function ComponentStudioDashboardComponent_ng_template_20_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelement(0, "i", 20);
22
22
  } }
23
- function ComponentStudioDashboardComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵelementStart(0, "div", 13);
25
- i0.ɵɵelement(1, "i", 19);
23
+ function ComponentStudioDashboardComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelementStart(0, "div", 15);
25
+ i0.ɵɵelement(1, "i", 21);
26
26
  i0.ɵɵtext(2, " Loading components... ");
27
27
  i0.ɵɵelementEnd();
28
28
  } }
29
- function ComponentStudioDashboardComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
30
- i0.ɵɵelementStart(0, "div", 14);
31
- i0.ɵɵtext(1, " No components found ");
32
- i0.ɵɵelementEnd();
29
+ function ComponentStudioDashboardComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "div", 16);
31
+ i0.ɵɵelement(1, "i", 22);
32
+ i0.ɵɵtext(2, " No components found without custom properties. ");
33
+ i0.ɵɵelement(3, "br");
34
+ i0.ɵɵelementStart(4, "small");
35
+ i0.ɵɵtext(5, "Only components that don't require custom props can be tested here.");
36
+ i0.ɵɵelementEnd()();
33
37
  } }
34
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelementStart(0, "span", 30);
38
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelementStart(0, "span", 33);
36
40
  i0.ɵɵtext(1, "Published");
37
41
  i0.ɵɵelementEnd();
38
42
  } }
39
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_13_Template(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵelementStart(0, "span", 31);
43
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_13_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelementStart(0, "span", 34);
41
45
  i0.ɵɵtext(1, "Draft");
42
46
  i0.ɵɵelementEnd();
43
47
  } }
44
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_15_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelement(0, "i", 33);
48
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_15_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelement(0, "i", 36);
46
50
  } }
47
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelement(0, "i", 34);
51
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
52
+ i0.ɵɵelement(0, "i", 37);
49
53
  } }
50
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵelementStart(0, "div", 36)(1, "label");
54
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelementStart(0, "div", 39)(1, "label");
52
56
  i0.ɵɵtext(2, "Description");
53
57
  i0.ɵɵelementEnd();
54
58
  i0.ɵɵelementStart(3, "p");
@@ -59,11 +63,11 @@ function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_C
59
63
  i0.ɵɵadvance(4);
60
64
  i0.ɵɵtextInterpolate(component_r2.Description);
61
65
  } }
62
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_21_Template(rf, ctx) { if (rf & 1) {
63
- i0.ɵɵelementStart(0, "div", 38)(1, "span", 39);
66
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_21_Template(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵelementStart(0, "div", 41)(1, "span", 42);
64
68
  i0.ɵɵtext(2, "Updated:");
65
69
  i0.ɵɵelementEnd();
66
- i0.ɵɵelementStart(3, "span", 40);
70
+ i0.ɵɵelementStart(3, "span", 43);
67
71
  i0.ɵɵtext(4);
68
72
  i0.ɵɵpipe(5, "date");
69
73
  i0.ɵɵelementEnd()();
@@ -72,52 +76,64 @@ function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_C
72
76
  i0.ɵɵadvance(4);
73
77
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, component_r2.__mj_UpdatedAt, "short"));
74
78
  } }
75
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_23_Template(rf, ctx) { if (rf & 1) {
79
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_23_Template(rf, ctx) { if (rf & 1) {
76
80
  const _r4 = i0.ɵɵgetCurrentView();
77
- i0.ɵɵelementStart(0, "button", 43);
78
- i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_23_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(4); ctx_r2.stopComponent(); return i0.ɵɵresetView($event.stopPropagation()); });
79
- i0.ɵɵtext(1, " Stop Component ");
81
+ i0.ɵɵelementStart(0, "button", 47);
82
+ i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_23_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(4); ctx_r2.stopComponent(); return i0.ɵɵresetView($event.stopPropagation()); });
83
+ i0.ɵɵelement(1, "span", 48);
84
+ i0.ɵɵtext(2, " Stop Component ");
80
85
  i0.ɵɵelementEnd();
81
86
  } if (rf & 2) {
82
- i0.ɵɵproperty("icon", "fa-solid fa-stop")("themeColor", "error");
87
+ i0.ɵɵproperty("themeColor", "error");
83
88
  } }
84
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_24_Template(rf, ctx) { if (rf & 1) {
89
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_24_Template(rf, ctx) { if (rf & 1) {
85
90
  const _r5 = i0.ɵɵgetCurrentView();
86
- i0.ɵɵelementStart(0, "button", 43);
87
- i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_24_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const component_r2 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.runComponent(component_r2); return i0.ɵɵresetView($event.stopPropagation()); });
88
- i0.ɵɵtext(1, " Run Component ");
91
+ i0.ɵɵelementStart(0, "button", 49);
92
+ i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_24_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const component_r2 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.runComponent(component_r2); return i0.ɵɵresetView($event.stopPropagation()); });
93
+ i0.ɵɵelement(1, "span", 50);
94
+ i0.ɵɵtext(2, " Switch to This Component ");
95
+ i0.ɵɵelementEnd();
96
+ } if (rf & 2) {
97
+ i0.ɵɵproperty("themeColor", "base");
98
+ } }
99
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_25_Template(rf, ctx) { if (rf & 1) {
100
+ const _r6 = i0.ɵɵgetCurrentView();
101
+ i0.ɵɵelementStart(0, "button", 47);
102
+ i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_25_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const component_r2 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.runComponent(component_r2); return i0.ɵɵresetView($event.stopPropagation()); });
103
+ i0.ɵɵelement(1, "span", 50);
104
+ i0.ɵɵtext(2, " Run Component ");
89
105
  i0.ɵɵelementEnd();
90
106
  } if (rf & 2) {
91
- i0.ɵɵproperty("icon", "fa-solid fa-play")("themeColor", "primary");
107
+ i0.ɵɵproperty("themeColor", "primary");
92
108
  } }
93
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
94
- i0.ɵɵelementStart(0, "div", 35);
95
- i0.ɵɵtemplate(1, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_1_Template, 5, 1, "div", 36);
96
- i0.ɵɵelementStart(2, "div", 36)(3, "label");
109
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
110
+ i0.ɵɵelementStart(0, "div", 38);
111
+ i0.ɵɵtemplate(1, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_1_Template, 5, 1, "div", 39);
112
+ i0.ɵɵelementStart(2, "div", 39)(3, "label");
97
113
  i0.ɵɵtext(4, "Component Info");
98
114
  i0.ɵɵelementEnd();
99
- i0.ɵɵelementStart(5, "div", 37)(6, "div", 38)(7, "span", 39);
115
+ i0.ɵɵelementStart(5, "div", 40)(6, "div", 41)(7, "span", 42);
100
116
  i0.ɵɵtext(8, "Type:");
101
117
  i0.ɵɵelementEnd();
102
- i0.ɵɵelementStart(9, "span", 40);
118
+ i0.ɵɵelementStart(9, "span", 43);
103
119
  i0.ɵɵtext(10);
104
120
  i0.ɵɵelementEnd()();
105
- i0.ɵɵelementStart(11, "div", 38)(12, "span", 39);
121
+ i0.ɵɵelementStart(11, "div", 41)(12, "span", 42);
106
122
  i0.ɵɵtext(13, "Version:");
107
123
  i0.ɵɵelementEnd();
108
- i0.ɵɵelementStart(14, "span", 40);
124
+ i0.ɵɵelementStart(14, "span", 43);
109
125
  i0.ɵɵtext(15);
110
126
  i0.ɵɵelementEnd()();
111
- i0.ɵɵelementStart(16, "div", 38)(17, "span", 39);
127
+ i0.ɵɵelementStart(16, "div", 41)(17, "span", 42);
112
128
  i0.ɵɵtext(18, "Status:");
113
129
  i0.ɵɵelementEnd();
114
- i0.ɵɵelementStart(19, "span", 40);
130
+ i0.ɵɵelementStart(19, "span", 43);
115
131
  i0.ɵɵtext(20);
116
132
  i0.ɵɵelementEnd()();
117
- i0.ɵɵtemplate(21, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_21_Template, 6, 4, "div", 38);
133
+ i0.ɵɵtemplate(21, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_21_Template, 6, 4, "div", 41);
118
134
  i0.ɵɵelementEnd()();
119
- i0.ɵɵelementStart(22, "div", 41);
120
- i0.ɵɵtemplate(23, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_23_Template, 2, 2, "button", 42)(24, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Conditional_24_Template, 2, 2, "button", 42);
135
+ i0.ɵɵelementStart(22, "div", 44);
136
+ i0.ɵɵtemplate(23, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_23_Template, 3, 1, "button", 45)(24, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_24_Template, 3, 1, "button", 46)(25, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Conditional_25_Template, 3, 1, "button", 45);
121
137
  i0.ɵɵelementEnd()();
122
138
  } if (rf & 2) {
123
139
  const component_r2 = i0.ɵɵnextContext().$implicit;
@@ -133,30 +149,30 @@ function ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_T
133
149
  i0.ɵɵadvance();
134
150
  i0.ɵɵconditional(component_r2.__mj_UpdatedAt ? 21 : -1);
135
151
  i0.ɵɵadvance(2);
136
- i0.ɵɵconditional((ctx_r2.selectedComponent == null ? null : ctx_r2.selectedComponent.ID) === component_r2.ID && ctx_r2.isRunning ? 23 : 24);
152
+ i0.ɵɵconditional((ctx_r2.selectedComponent == null ? null : ctx_r2.selectedComponent.ID) === component_r2.ID && ctx_r2.isRunning ? 23 : ctx_r2.isRunning && (ctx_r2.selectedComponent == null ? null : ctx_r2.selectedComponent.ID) !== component_r2.ID ? 24 : 25);
137
153
  } }
138
- function ComponentStudioDashboardComponent_Conditional_20_For_1_Template(rf, ctx) { if (rf & 1) {
154
+ function ComponentStudioDashboardComponent_Conditional_24_For_1_Template(rf, ctx) { if (rf & 1) {
139
155
  const _r1 = i0.ɵɵgetCurrentView();
140
- i0.ɵɵelementStart(0, "div", 21)(1, "div", 22);
141
- i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_20_For_1_Template_div_click_1_listener() { const component_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleComponentExpansion(component_r2)); });
142
- i0.ɵɵelementStart(2, "div", 23);
143
- i0.ɵɵelement(3, "i", 24);
156
+ i0.ɵɵelementStart(0, "div", 24)(1, "div", 25);
157
+ i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_24_For_1_Template_div_click_1_listener() { const component_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleComponentExpansion(component_r2)); });
158
+ i0.ɵɵelementStart(2, "div", 26);
159
+ i0.ɵɵelement(3, "i", 27);
144
160
  i0.ɵɵelementEnd();
145
- i0.ɵɵelementStart(4, "div", 25)(5, "div", 26);
161
+ i0.ɵɵelementStart(4, "div", 28)(5, "div", 29);
146
162
  i0.ɵɵtext(6);
147
163
  i0.ɵɵelementEnd();
148
- i0.ɵɵelementStart(7, "div", 27)(8, "span", 28);
164
+ i0.ɵɵelementStart(7, "div", 30)(8, "span", 31);
149
165
  i0.ɵɵtext(9);
150
166
  i0.ɵɵelementEnd();
151
- i0.ɵɵelementStart(10, "span", 29);
167
+ i0.ɵɵelementStart(10, "span", 32);
152
168
  i0.ɵɵtext(11);
153
169
  i0.ɵɵelementEnd();
154
- i0.ɵɵtemplate(12, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_12_Template, 2, 0, "span", 30)(13, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_13_Template, 2, 0, "span", 31);
170
+ i0.ɵɵtemplate(12, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_12_Template, 2, 0, "span", 33)(13, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_13_Template, 2, 0, "span", 34);
155
171
  i0.ɵɵelementEnd()();
156
- i0.ɵɵelementStart(14, "div", 32);
157
- i0.ɵɵtemplate(15, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_15_Template, 1, 0, "i", 33)(16, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_16_Template, 1, 0, "i", 34);
172
+ i0.ɵɵelementStart(14, "div", 35);
173
+ i0.ɵɵtemplate(15, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_15_Template, 1, 0, "i", 36)(16, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_16_Template, 1, 0, "i", 37);
158
174
  i0.ɵɵelementEnd()();
159
- i0.ɵɵtemplate(17, ComponentStudioDashboardComponent_Conditional_20_For_1_Conditional_17_Template, 25, 6, "div", 35);
175
+ i0.ɵɵtemplate(17, ComponentStudioDashboardComponent_Conditional_24_For_1_Conditional_17_Template, 26, 6, "div", 38);
160
176
  i0.ɵɵelementEnd();
161
177
  } if (rf & 2) {
162
178
  const component_r2 = ctx.$implicit;
@@ -179,14 +195,14 @@ function ComponentStudioDashboardComponent_Conditional_20_For_1_Template(rf, ctx
179
195
  i0.ɵɵadvance(2);
180
196
  i0.ɵɵconditional((ctx_r2.expandedComponent == null ? null : ctx_r2.expandedComponent.ID) === component_r2.ID ? 17 : -1);
181
197
  } }
182
- function ComponentStudioDashboardComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
183
- i0.ɵɵrepeaterCreate(0, ComponentStudioDashboardComponent_Conditional_20_For_1_Template, 18, 13, "div", 20, _forTrack0);
198
+ function ComponentStudioDashboardComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
199
+ i0.ɵɵrepeaterCreate(0, ComponentStudioDashboardComponent_Conditional_24_For_1_Template, 18, 13, "div", 23, _forTrack0);
184
200
  } if (rf & 2) {
185
201
  const ctx_r2 = i0.ɵɵnextContext();
186
202
  i0.ɵɵrepeater(ctx_r2.filteredComponents);
187
203
  } }
188
- function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
189
- i0.ɵɵelementStart(0, "details", 53)(1, "summary");
204
+ function ComponentStudioDashboardComponent_Conditional_27_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
205
+ i0.ɵɵelementStart(0, "details", 60)(1, "summary");
190
206
  i0.ɵɵtext(2, "Technical Details (click to expand)");
191
207
  i0.ɵɵelementEnd();
192
208
  i0.ɵɵelementStart(3, "pre");
@@ -197,21 +213,21 @@ function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Conditio
197
213
  i0.ɵɵadvance(4);
198
214
  i0.ɵɵtextInterpolate(ctx_r2.formatTechnicalDetails(ctx_r2.currentError.technicalDetails));
199
215
  } }
200
- function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Template(rf, ctx) { if (rf & 1) {
201
- const _r6 = i0.ɵɵgetCurrentView();
202
- i0.ɵɵelementStart(0, "div", 44)(1, "div", 46)(2, "div", 47);
203
- i0.ɵɵelement(3, "i", 48);
216
+ function ComponentStudioDashboardComponent_Conditional_27_Conditional_0_Template(rf, ctx) { if (rf & 1) {
217
+ const _r7 = i0.ɵɵgetCurrentView();
218
+ i0.ɵɵelementStart(0, "div", 51)(1, "div", 53)(2, "div", 54);
219
+ i0.ɵɵelement(3, "i", 55);
204
220
  i0.ɵɵelementStart(4, "h3");
205
221
  i0.ɵɵtext(5, "Component Error");
206
222
  i0.ɵɵelementEnd();
207
- i0.ɵɵelementStart(6, "button", 49);
208
- i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.copyErrorToClipboard()); });
209
- i0.ɵɵelement(7, "i", 50);
223
+ i0.ɵɵelementStart(6, "button", 56);
224
+ i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_27_Conditional_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.copyErrorToClipboard()); });
225
+ i0.ɵɵelement(7, "i", 57);
210
226
  i0.ɵɵelementEnd()();
211
- i0.ɵɵelementStart(8, "p", 51);
227
+ i0.ɵɵelementStart(8, "p", 58);
212
228
  i0.ɵɵtext(9, " The component could not be rendered due to the following error: ");
213
229
  i0.ɵɵelementEnd();
214
- i0.ɵɵelementStart(10, "div", 52)(11, "strong");
230
+ i0.ɵɵelementStart(10, "div", 59)(11, "strong");
215
231
  i0.ɵɵtext(12, "Error Type:");
216
232
  i0.ɵɵelementEnd();
217
233
  i0.ɵɵtext(13);
@@ -220,9 +236,9 @@ function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Template
220
236
  i0.ɵɵtext(16, "Message:");
221
237
  i0.ɵɵelementEnd();
222
238
  i0.ɵɵtext(17);
223
- i0.ɵɵtemplate(18, ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Conditional_18_Template, 5, 1, "details", 53);
239
+ i0.ɵɵtemplate(18, ComponentStudioDashboardComponent_Conditional_27_Conditional_0_Conditional_18_Template, 5, 1, "details", 60);
224
240
  i0.ɵɵelementEnd();
225
- i0.ɵɵelementStart(19, "div", 54)(20, "strong");
241
+ i0.ɵɵelementStart(19, "div", 61)(20, "strong");
226
242
  i0.ɵɵtext(21, "What to do:");
227
243
  i0.ɵɵelementEnd();
228
244
  i0.ɵɵelementStart(22, "ol")(23, "li");
@@ -237,13 +253,15 @@ function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Template
237
253
  i0.ɵɵelementStart(29, "li");
238
254
  i0.ɵɵtext(30, "Contact your system administrator if the issue persists");
239
255
  i0.ɵɵelementEnd()()();
240
- i0.ɵɵelementStart(31, "div", 55)(32, "button", 56);
241
- i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.retryComponent()); });
242
- i0.ɵɵtext(33, " Retry ");
256
+ i0.ɵɵelementStart(31, "div", 62)(32, "button", 63);
257
+ i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_27_Conditional_0_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.retryComponent()); });
258
+ i0.ɵɵelement(33, "span", 64);
259
+ i0.ɵɵtext(34, " Retry ");
243
260
  i0.ɵɵelementEnd();
244
- i0.ɵɵelementStart(34, "button", 43);
245
- i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.stopComponent()); });
246
- i0.ɵɵtext(35, " Stop ");
261
+ i0.ɵɵelementStart(35, "button", 47);
262
+ i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Conditional_27_Conditional_0_Template_button_click_35_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.stopComponent()); });
263
+ i0.ɵɵelement(36, "span", 48);
264
+ i0.ɵɵtext(37, " Stop ");
247
265
  i0.ɵɵelementEnd()()()();
248
266
  } if (rf & 2) {
249
267
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -253,29 +271,27 @@ function ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Template
253
271
  i0.ɵɵtextInterpolate1(" ", ctx_r2.currentError.message, " ");
254
272
  i0.ɵɵadvance();
255
273
  i0.ɵɵconditional(ctx_r2.currentError.technicalDetails ? 18 : -1);
256
- i0.ɵɵadvance(14);
257
- i0.ɵɵproperty("icon", "fa-solid fa-rotate");
258
- i0.ɵɵadvance(2);
259
- i0.ɵɵproperty("icon", "fa-solid fa-stop")("themeColor", "error");
274
+ i0.ɵɵadvance(17);
275
+ i0.ɵɵproperty("themeColor", "error");
260
276
  } }
261
- function ComponentStudioDashboardComponent_Conditional_23_Conditional_1_Template(rf, ctx) { if (rf & 1) {
262
- const _r7 = i0.ɵɵgetCurrentView();
263
- i0.ɵɵelementStart(0, "mj-react-component", 57);
264
- i0.ɵɵlistener("componentEvent", function ComponentStudioDashboardComponent_Conditional_23_Conditional_1_Template_mj_react_component_componentEvent_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onComponentEvent($event)); })("openEntityRecord", function ComponentStudioDashboardComponent_Conditional_23_Conditional_1_Template_mj_react_component_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onOpenEntityRecord($event)); });
277
+ function ComponentStudioDashboardComponent_Conditional_27_Conditional_1_Template(rf, ctx) { if (rf & 1) {
278
+ const _r8 = i0.ɵɵgetCurrentView();
279
+ i0.ɵɵelementStart(0, "mj-react-component", 65);
280
+ i0.ɵɵlistener("componentEvent", function ComponentStudioDashboardComponent_Conditional_27_Conditional_1_Template_mj_react_component_componentEvent_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onComponentEvent($event)); })("openEntityRecord", function ComponentStudioDashboardComponent_Conditional_27_Conditional_1_Template_mj_react_component_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onOpenEntityRecord($event)); });
265
281
  i0.ɵɵelementEnd();
266
282
  } if (rf & 2) {
267
283
  const ctx_r2 = i0.ɵɵnextContext(2);
268
284
  i0.ɵɵproperty("component", ctx_r2.componentSpec);
269
285
  } }
270
- function ComponentStudioDashboardComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
271
- i0.ɵɵtemplate(0, ComponentStudioDashboardComponent_Conditional_23_Conditional_0_Template, 36, 6, "div", 44)(1, ComponentStudioDashboardComponent_Conditional_23_Conditional_1_Template, 1, 1, "mj-react-component", 45);
286
+ function ComponentStudioDashboardComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
287
+ i0.ɵɵtemplate(0, ComponentStudioDashboardComponent_Conditional_27_Conditional_0_Template, 38, 4, "div", 51)(1, ComponentStudioDashboardComponent_Conditional_27_Conditional_1_Template, 1, 1, "mj-react-component", 52);
272
288
  } if (rf & 2) {
273
289
  const ctx_r2 = i0.ɵɵnextContext();
274
290
  i0.ɵɵconditional(ctx_r2.currentError ? 0 : 1);
275
291
  } }
276
- function ComponentStudioDashboardComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
277
- i0.ɵɵelementStart(0, "div", 17);
278
- i0.ɵɵelement(1, "i", 58);
292
+ function ComponentStudioDashboardComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
293
+ i0.ɵɵelementStart(0, "div", 19);
294
+ i0.ɵɵelement(1, "i", 66);
279
295
  i0.ɵɵelementStart(2, "h2");
280
296
  i0.ɵɵtext(3, "Ready to Test Components");
281
297
  i0.ɵɵelementEnd();
@@ -318,7 +334,7 @@ let ComponentStudioDashboardComponent = class ComponentStudioDashboardComponent
318
334
  const rv = new RunView();
319
335
  const result = await rv.RunView({
320
336
  EntityName: 'MJ: Components',
321
- ExtraFilter: '',
337
+ ExtraFilter: 'HasCustomProps = 0', // Only load components without custom props
322
338
  OrderBy: 'Name',
323
339
  MaxRows: 1000,
324
340
  ResultType: 'entity_object'
@@ -343,6 +359,7 @@ let ComponentStudioDashboardComponent = class ComponentStudioDashboardComponent
343
359
  this.filterComponents();
344
360
  }
345
361
  filterComponents() {
362
+ // Note: this.components already filtered to HasCustomProps = 0 in loadData
346
363
  if (!this.searchQuery) {
347
364
  this.filteredComponents = [...this.components];
348
365
  }
@@ -364,19 +381,39 @@ let ComponentStudioDashboardComponent = class ComponentStudioDashboardComponent
364
381
  this.cdr.detectChanges();
365
382
  }
366
383
  runComponent(component) {
384
+ // If another component is running, stop it first then start the new one
385
+ if (this.isRunning && this.selectedComponent?.ID !== component.ID) {
386
+ this.stopComponent();
387
+ this.startComponent(component);
388
+ }
389
+ else {
390
+ this.startComponent(component);
391
+ }
392
+ }
393
+ startComponent(component) {
367
394
  this.selectedComponent = component;
368
395
  this.componentSpec = JSON.parse(component.Specification);
369
396
  this.isRunning = true;
370
397
  this.currentError = null; // Clear any previous errors
371
398
  console.log('Running component:', component.Name);
372
- this.cdr.detectChanges();
399
+ try {
400
+ this.cdr.detectChanges();
401
+ }
402
+ catch (error) {
403
+ console.error('Error with cdr.detectChanges():', error);
404
+ }
373
405
  }
374
406
  stopComponent() {
375
407
  this.isRunning = false;
376
408
  this.selectedComponent = null;
377
409
  this.componentSpec = null;
378
410
  this.currentError = null;
379
- this.cdr.detectChanges();
411
+ try {
412
+ this.cdr.detectChanges();
413
+ }
414
+ catch (error) {
415
+ console.error('Error with cdr.detectChanges():', error);
416
+ }
380
417
  }
381
418
  /**
382
419
  * Handle component events from React components
@@ -475,42 +512,46 @@ ${this.currentError.technicalDetails ? '\nTechnical Details:\n' + JSON.stringify
475
512
  return colors[type || ''] || '#9CA3AF';
476
513
  }
477
514
  static ɵfac = function ComponentStudioDashboardComponent_Factory(t) { return new (t || ComponentStudioDashboardComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
478
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ComponentStudioDashboardComponent, selectors: [["mj-component-studio-dashboard"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 25, vars: 10, consts: [[1, "component-studio"], [1, "dashboard-header"], [1, "header-content"], [1, "fa-solid", "fa-puzzle-piece"], ["kendoButton", "", 3, "click", "icon", "disabled"], ["orientation", "horizontal", 2, "flex", "1", "height", "auto"], [3, "min", "max", "size"], [1, "components-panel"], [1, "panel-header"], [1, "search-box"], ["placeholder", "Search components...", 3, "valueChange", "value", "clearButton"], ["kendoTextBoxPrefixTemplate", ""], [1, "components-list"], [1, "loading-message"], [1, "empty-message"], [3, "min"], [1, "component-display"], [1, "empty-state"], [1, "fa-solid", "fa-search"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "component-card", 3, "expanded", "running"], [1, "component-card"], [1, "card-header", 3, "click"], [1, "card-icon"], [1, "fa-solid", 3, "ngClass"], [1, "card-info"], [1, "card-name"], [1, "card-meta"], [1, "card-type"], [1, "card-version"], [1, "status-badge", "published"], [1, "status-badge", "draft"], [1, "card-chevron"], [1, "fa-solid", "fa-chevron-up"], [1, "fa-solid", "fa-chevron-down"], [1, "card-details"], [1, "detail-section"], [1, "info-grid"], [1, "info-item"], [1, "info-label"], [1, "info-value"], [1, "card-actions"], ["kendoButton", "", 3, "icon", "themeColor"], ["kendoButton", "", 3, "click", "icon", "themeColor"], [1, "error-display"], [3, "component"], [1, "error-container"], [1, "error-header"], [1, "fa-solid", "fa-exclamation-triangle"], ["title", "Copy error details", 1, "copy-button", 3, "click"], [1, "fa-solid", "fa-copy"], [1, "error-intro"], [1, "error-details"], [1, "technical-details"], [1, "error-help"], [1, "error-actions"], ["kendoButton", "", 3, "click", "icon"], [3, "componentEvent", "openEntityRecord", "component"], [1, "fa-solid", "fa-rocket", "fa-3x"]], template: function ComponentStudioDashboardComponent_Template(rf, ctx) { if (rf & 1) {
479
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h1");
480
- i0.ɵɵelement(4, "i", 3);
481
- i0.ɵɵtext(5, " Component Studio");
515
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ComponentStudioDashboardComponent, selectors: [["mj-component-studio-dashboard"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 9, consts: [[1, "component-studio"], [1, "dashboard-header"], [1, "header-content"], [1, "fa-solid", "fa-puzzle-piece"], [1, "header-subtitle"], ["kendoButton", "", 3, "click", "disabled"], [1, "fa-solid", "fa-sync"], ["orientation", "horizontal", 2, "flex", "1", "height", "auto"], [3, "min", "max", "size"], [1, "components-panel"], [1, "panel-header"], [1, "search-box"], ["placeholder", "Search components...", 3, "valueChange", "value", "clearButton"], ["kendoTextBoxPrefixTemplate", ""], [1, "components-list"], [1, "loading-message"], [1, "empty-message"], [3, "min"], [1, "component-display"], [1, "empty-state"], [1, "fa-solid", "fa-search"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-info-circle"], [1, "component-card", 3, "expanded", "running"], [1, "component-card"], [1, "card-header", 3, "click"], [1, "card-icon"], [1, "fa-solid", 3, "ngClass"], [1, "card-info"], [1, "card-name"], [1, "card-meta"], [1, "card-type"], [1, "card-version"], [1, "status-badge", "published"], [1, "status-badge", "draft"], [1, "card-chevron"], [1, "fa-solid", "fa-chevron-up"], [1, "fa-solid", "fa-chevron-down"], [1, "card-details"], [1, "detail-section"], [1, "info-grid"], [1, "info-item"], [1, "info-label"], [1, "info-value"], [1, "card-actions"], ["kendoButton", "", 3, "themeColor"], ["kendoButton", "", "title", "Stop current component and run this one", 3, "themeColor"], ["kendoButton", "", 3, "click", "themeColor"], [1, "fa-solid", "fa-stop"], ["kendoButton", "", "title", "Stop current component and run this one", 3, "click", "themeColor"], [1, "fa-solid", "fa-play"], [1, "error-display"], [3, "component"], [1, "error-container"], [1, "error-header"], [1, "fa-solid", "fa-exclamation-triangle"], ["title", "Copy error details", 1, "copy-button", 3, "click"], [1, "fa-solid", "fa-copy"], [1, "error-intro"], [1, "error-details"], [1, "technical-details"], [1, "error-help"], [1, "error-actions"], ["kendoButton", "", 3, "click"], [1, "fa-solid", "fa-rotate"], [3, "componentEvent", "openEntityRecord", "component"], [1, "fa-solid", "fa-rocket", "fa-3x"]], template: function ComponentStudioDashboardComponent_Template(rf, ctx) { if (rf & 1) {
516
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div")(4, "h1");
517
+ i0.ɵɵelement(5, "i", 3);
518
+ i0.ɵɵtext(6, " Component Studio");
482
519
  i0.ɵɵelementEnd();
483
- i0.ɵɵelementStart(6, "button", 4);
484
- i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Template_button_click_6_listener() { return ctx.refreshData(); });
485
- i0.ɵɵtext(7, " Refresh ");
520
+ i0.ɵɵelementStart(7, "p", 4);
521
+ i0.ɵɵtext(8, "Testing components without custom properties");
522
+ i0.ɵɵelementEnd()();
523
+ i0.ɵɵelementStart(9, "button", 5);
524
+ i0.ɵɵlistener("click", function ComponentStudioDashboardComponent_Template_button_click_9_listener() { return ctx.refreshData(); });
525
+ i0.ɵɵelement(10, "span", 6);
526
+ i0.ɵɵtext(11, " Refresh ");
486
527
  i0.ɵɵelementEnd()()();
487
- i0.ɵɵelementStart(8, "kendo-splitter", 5)(9, "kendo-splitter-pane", 6)(10, "div", 7)(11, "div", 8)(12, "h3");
488
- i0.ɵɵtext(13, "Components");
528
+ i0.ɵɵelementStart(12, "kendo-splitter", 7)(13, "kendo-splitter-pane", 8)(14, "div", 9)(15, "div", 10)(16, "h3");
529
+ i0.ɵɵtext(17, "Components");
489
530
  i0.ɵɵelementEnd();
490
- i0.ɵɵelementStart(14, "div", 9)(15, "kendo-textbox", 10);
491
- i0.ɵɵlistener("valueChange", function ComponentStudioDashboardComponent_Template_kendo_textbox_valueChange_15_listener($event) { return ctx.onSearchChange($event); });
492
- i0.ɵɵtemplate(16, ComponentStudioDashboardComponent_ng_template_16_Template, 1, 0, "ng-template", 11);
531
+ i0.ɵɵelementStart(18, "div", 11)(19, "kendo-textbox", 12);
532
+ i0.ɵɵlistener("valueChange", function ComponentStudioDashboardComponent_Template_kendo_textbox_valueChange_19_listener($event) { return ctx.onSearchChange($event); });
533
+ i0.ɵɵtemplate(20, ComponentStudioDashboardComponent_ng_template_20_Template, 1, 0, "ng-template", 13);
493
534
  i0.ɵɵelementEnd()()();
494
- i0.ɵɵelementStart(17, "div", 12);
495
- i0.ɵɵtemplate(18, ComponentStudioDashboardComponent_Conditional_18_Template, 3, 0, "div", 13)(19, ComponentStudioDashboardComponent_Conditional_19_Template, 2, 0, "div", 14)(20, ComponentStudioDashboardComponent_Conditional_20_Template, 2, 0);
535
+ i0.ɵɵelementStart(21, "div", 14);
536
+ i0.ɵɵtemplate(22, ComponentStudioDashboardComponent_Conditional_22_Template, 3, 0, "div", 15)(23, ComponentStudioDashboardComponent_Conditional_23_Template, 6, 0, "div", 16)(24, ComponentStudioDashboardComponent_Conditional_24_Template, 2, 0);
496
537
  i0.ɵɵelementEnd()()();
497
- i0.ɵɵelementStart(21, "kendo-splitter-pane", 15)(22, "div", 16);
498
- i0.ɵɵtemplate(23, ComponentStudioDashboardComponent_Conditional_23_Template, 2, 1)(24, ComponentStudioDashboardComponent_Conditional_24_Template, 6, 0, "div", 17);
538
+ i0.ɵɵelementStart(25, "kendo-splitter-pane", 17)(26, "div", 18);
539
+ i0.ɵɵtemplate(27, ComponentStudioDashboardComponent_Conditional_27_Template, 2, 1)(28, ComponentStudioDashboardComponent_Conditional_28_Template, 6, 0, "div", 19);
499
540
  i0.ɵɵelementEnd()()()();
500
541
  } if (rf & 2) {
501
- i0.ɵɵadvance(6);
502
- i0.ɵɵproperty("icon", "fa-solid fa-sync")("disabled", ctx.isLoading);
503
- i0.ɵɵadvance(3);
542
+ i0.ɵɵadvance(9);
543
+ i0.ɵɵproperty("disabled", ctx.isLoading);
544
+ i0.ɵɵadvance(4);
504
545
  i0.ɵɵproperty("min", "350px")("max", "600px")("size", "400px");
505
546
  i0.ɵɵadvance(6);
506
547
  i0.ɵɵproperty("value", ctx.searchQuery)("clearButton", true);
507
548
  i0.ɵɵadvance(3);
508
- i0.ɵɵconditional(ctx.isLoading ? 18 : ctx.filteredComponents.length === 0 ? 19 : 20);
549
+ i0.ɵɵconditional(ctx.isLoading ? 22 : ctx.filteredComponents.length === 0 ? 23 : 24);
509
550
  i0.ɵɵadvance(3);
510
551
  i0.ɵɵproperty("min", "400px");
511
552
  i0.ɵɵadvance(2);
512
- i0.ɵɵconditional(ctx.isRunning && ctx.selectedComponent && ctx.componentSpec ? 23 : 24);
513
- } }, dependencies: [i1.NgClass, i2.TextBoxComponent, i2.TextBoxPrefixTemplateDirective, i3.SplitterComponent, i3.SplitterPaneComponent, i4.ButtonComponent, i5.MJReactComponent, i1.DatePipe], styles: ["[_nghost-%COMP%] {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.component-studio[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n overflow: hidden;\n\n .dashboard-header {\n background: white;\n border-bottom: 1px solid #dee2e6;\n padding: 16px 24px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n \n .header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n h1 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #212529;\n display: flex;\n align-items: center;\n gap: 12px;\n \n i {\n color: #6366f1;\n }\n }\n }\n }\n\n kendo-splitter {\n flex: 1;\n background: white;\n display: flex;\n height: 100%;\n min-height: 0;\n }\n\n .components-panel {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n \n .panel-header {\n padding: 20px;\n background: white;\n border-bottom: 1px solid #dee2e6;\n \n h3 {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 600;\n color: #212529;\n }\n \n .search-box {\n kendo-textbox {\n width: 100%;\n }\n }\n }\n \n .components-list {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n \n .loading-message,\n .empty-message {\n padding: 48px 24px;\n text-align: center;\n color: #6c757d;\n font-size: 14px;\n \n i {\n margin-right: 8px;\n }\n }\n \n .component-card {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n margin-bottom: 12px;\n transition: all 0.2s ease;\n \n &:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n }\n \n &.expanded {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n border-color: #6366f1;\n }\n \n &.running {\n border-color: #10b981;\n box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n }\n \n .card-header {\n display: flex;\n align-items: center;\n padding: 16px;\n cursor: pointer;\n user-select: none;\n \n &:hover {\n background: #f8f9fa;\n }\n \n .card-icon {\n font-size: 24px;\n margin-right: 16px;\n width: 32px;\n text-align: center;\n flex-shrink: 0;\n }\n \n .card-info {\n flex: 1;\n min-width: 0;\n \n .card-name {\n font-size: 15px;\n font-weight: 600;\n color: #212529;\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .card-meta {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: #6c757d;\n \n .card-type {\n font-weight: 500;\n }\n \n .card-version {\n color: #868e96;\n }\n \n .status-badge {\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n \n &.published {\n background: #d1fae5;\n color: #065f46;\n }\n \n &.draft {\n background: #fef3c7;\n color: #92400e;\n }\n }\n }\n }\n \n .card-chevron {\n color: #6c757d;\n font-size: 12px;\n margin-left: 12px;\n transition: transform 0.2s ease;\n }\n }\n \n .card-details {\n padding: 0 16px 16px 16px;\n border-top: 1px solid #e9ecef;\n animation: _ngcontent-%COMP%_slideDown 0.2s ease;\n \n .detail-section {\n margin-top: 16px;\n \n label {\n display: block;\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 8px;\n }\n \n p {\n margin: 0;\n font-size: 13px;\n color: #495057;\n line-height: 1.5;\n }\n \n .info-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n \n .info-item {\n display: flex;\n align-items: baseline;\n gap: 6px;\n font-size: 13px;\n \n .info-label {\n font-weight: 500;\n color: #6c757d;\n min-width: 50px;\n }\n \n .info-value {\n color: #212529;\n }\n }\n }\n }\n \n .card-actions {\n margin-top: 16px;\n display: flex;\n gap: 8px;\n \n button {\n flex: 1;\n }\n }\n }\n }\n }\n }\n\n .component-display {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n position: relative;\n \n .empty-state {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: #868e96;\n padding: 48px;\n text-align: center;\n \n i {\n color: #dee2e6;\n margin-bottom: 24px;\n }\n \n h2 {\n margin: 0 0 12px 0;\n font-size: 24px;\n font-weight: 600;\n color: #495057;\n }\n \n p {\n margin: 0;\n font-size: 14px;\n max-width: 400px;\n }\n }\n \n .error-display {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n background: #f8f9fa;\n \n .error-container {\n width: 100%;\n max-width: 600px;\n background: white;\n border: 2px solid #dc3545;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15);\n \n .error-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 20px;\n color: #dc3545;\n position: relative;\n \n i {\n font-size: 24px;\n }\n \n h3 {\n margin: 0;\n font-size: 20px;\n flex: 1;\n }\n \n .copy-button {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n padding: 6px 10px;\n cursor: pointer;\n color: #6c757d;\n transition: all 0.2s;\n \n &:hover {\n background: #e9ecef;\n color: #495057;\n }\n \n i {\n font-size: 14px;\n }\n }\n }\n \n .error-intro {\n color: #495057;\n margin-bottom: 20px;\n font-size: 14px;\n }\n \n .error-details {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 20px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 13px;\n \n .technical-details {\n margin-top: 12px;\n \n summary {\n cursor: pointer;\n color: #0066cc;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n \n &:hover {\n text-decoration: underline;\n }\n }\n \n pre {\n margin-top: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n font-size: 11px;\n color: #495057;\n max-height: 200px;\n overflow-y: auto;\n }\n }\n }\n \n .error-help {\n background: #e7f3ff;\n border: 1px solid #b3d9ff;\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 20px;\n font-size: 13px;\n \n strong {\n display: block;\n margin-bottom: 8px;\n font-size: 14px;\n color: #0066cc;\n }\n \n ol {\n margin: 0;\n padding-left: 20px;\n \n li {\n margin-bottom: 4px;\n color: #495057;\n }\n }\n }\n \n .error-actions {\n display: flex;\n gap: 12px;\n \n button {\n min-width: 100px;\n }\n }\n }\n }\n \n mj-react-component {\n flex: 1;\n width: 100%;\n height: 100%;\n }\n }\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}"] });
553
+ i0.ɵɵconditional(ctx.isRunning && ctx.selectedComponent && ctx.componentSpec ? 27 : 28);
554
+ } }, dependencies: [i1.NgClass, i2.TextBoxComponent, i2.TextBoxPrefixTemplateDirective, i3.SplitterComponent, i3.SplitterPaneComponent, i4.ButtonComponent, i5.MJReactComponent, i1.DatePipe], styles: ["[_nghost-%COMP%] {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.component-studio[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n overflow: hidden;\n\n .dashboard-header {\n background: white;\n border-bottom: 1px solid #dee2e6;\n padding: 16px 24px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n \n .header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n h1 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #212529;\n display: flex;\n align-items: center;\n gap: 12px;\n \n i {\n color: #6366f1;\n }\n }\n \n .header-subtitle {\n margin: 4px 0 0 0;\n font-size: 13px;\n color: #6c757d;\n font-weight: normal;\n }\n }\n }\n\n kendo-splitter {\n flex: 1;\n background: white;\n display: flex;\n height: 100%;\n min-height: 0;\n }\n\n .components-panel {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n \n .panel-header {\n padding: 20px;\n background: white;\n border-bottom: 1px solid #dee2e6;\n \n h3 {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 600;\n color: #212529;\n }\n \n .search-box {\n kendo-textbox {\n width: 100%;\n }\n }\n }\n \n .components-list {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n \n .loading-message,\n .empty-message {\n padding: 48px 24px;\n text-align: center;\n color: #6c757d;\n font-size: 14px;\n \n i {\n margin-right: 8px;\n }\n }\n \n .component-card {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n margin-bottom: 12px;\n transition: all 0.2s ease;\n \n &:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n }\n \n &.expanded {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n border-color: #6366f1;\n }\n \n &.running {\n border-color: #10b981;\n box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n background: linear-gradient(to right, rgba(16, 185, 129, 0.03) 0%, white 100%);\n \n .card-header {\n &::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 4px;\n background: #10b981;\n }\n }\n }\n \n .card-header {\n display: flex;\n align-items: center;\n padding: 16px;\n cursor: pointer;\n user-select: none;\n position: relative;\n \n &:hover {\n background: #f8f9fa;\n }\n \n .card-icon {\n font-size: 24px;\n margin-right: 16px;\n width: 32px;\n text-align: center;\n flex-shrink: 0;\n }\n \n .card-info {\n flex: 1;\n min-width: 0;\n \n .card-name {\n font-size: 15px;\n font-weight: 600;\n color: #212529;\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .card-meta {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: #6c757d;\n \n .card-type {\n font-weight: 500;\n }\n \n .card-version {\n color: #868e96;\n }\n \n .status-badge {\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n \n &.published {\n background: #d1fae5;\n color: #065f46;\n }\n \n &.draft {\n background: #fef3c7;\n color: #92400e;\n }\n }\n }\n }\n \n .card-chevron {\n color: #6c757d;\n font-size: 12px;\n margin-left: 12px;\n transition: transform 0.2s ease;\n }\n }\n \n .card-details {\n padding: 0 16px 16px 16px;\n border-top: 1px solid #e9ecef;\n animation: _ngcontent-%COMP%_slideDown 0.2s ease;\n \n .detail-section {\n margin-top: 16px;\n \n label {\n display: block;\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 8px;\n }\n \n p {\n margin: 0;\n font-size: 13px;\n color: #495057;\n line-height: 1.5;\n }\n \n .info-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n \n .info-item {\n display: flex;\n align-items: baseline;\n gap: 6px;\n font-size: 13px;\n \n .info-label {\n font-weight: 500;\n color: #6c757d;\n min-width: 50px;\n }\n \n .info-value {\n color: #212529;\n }\n }\n }\n }\n \n .card-actions {\n margin-top: 16px;\n display: flex;\n gap: 8px;\n \n button {\n flex: 1;\n }\n }\n }\n }\n }\n }\n\n .component-display {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n position: relative;\n \n .empty-state {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: #868e96;\n padding: 48px;\n text-align: center;\n \n i {\n color: #dee2e6;\n margin-bottom: 24px;\n }\n \n h2 {\n margin: 0 0 12px 0;\n font-size: 24px;\n font-weight: 600;\n color: #495057;\n }\n \n p {\n margin: 0;\n font-size: 14px;\n max-width: 400px;\n }\n }\n \n .error-display {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n background: #f8f9fa;\n \n .error-container {\n width: 100%;\n max-width: 600px;\n background: white;\n border: 2px solid #dc3545;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15);\n \n .error-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 20px;\n color: #dc3545;\n position: relative;\n \n i {\n font-size: 24px;\n }\n \n h3 {\n margin: 0;\n font-size: 20px;\n flex: 1;\n }\n \n .copy-button {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n padding: 6px 10px;\n cursor: pointer;\n color: #6c757d;\n transition: all 0.2s;\n \n &:hover {\n background: #e9ecef;\n color: #495057;\n }\n \n i {\n font-size: 14px;\n }\n }\n }\n \n .error-intro {\n color: #495057;\n margin-bottom: 20px;\n font-size: 14px;\n }\n \n .error-details {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 20px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 13px;\n \n .technical-details {\n margin-top: 12px;\n \n summary {\n cursor: pointer;\n color: #0066cc;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n \n &:hover {\n text-decoration: underline;\n }\n }\n \n pre {\n margin-top: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n font-size: 11px;\n color: #495057;\n max-height: 200px;\n overflow-y: auto;\n }\n }\n }\n \n .error-help {\n background: #e7f3ff;\n border: 1px solid #b3d9ff;\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 20px;\n font-size: 13px;\n \n strong {\n display: block;\n margin-bottom: 8px;\n font-size: 14px;\n color: #0066cc;\n }\n \n ol {\n margin: 0;\n padding-left: 20px;\n \n li {\n margin-bottom: 4px;\n color: #495057;\n }\n }\n }\n \n .error-actions {\n display: flex;\n gap: 12px;\n \n button {\n min-width: 100px;\n }\n }\n }\n }\n \n mj-react-component {\n flex: 1;\n width: 100%;\n height: 100%;\n }\n }\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}"] });
514
555
  };
515
556
  ComponentStudioDashboardComponent = __decorate([
516
557
  RegisterClass(BaseDashboard, 'ComponentStudioDashboard')
@@ -518,7 +559,7 @@ ComponentStudioDashboardComponent = __decorate([
518
559
  export { ComponentStudioDashboardComponent };
519
560
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ComponentStudioDashboardComponent, [{
520
561
  type: Component,
521
- args: [{ selector: 'mj-component-studio-dashboard', template: "<div class=\"component-studio\">\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-content\">\n <h1><i class=\"fa-solid fa-puzzle-piece\"></i> Component Studio</h1>\n <button kendoButton [icon]=\"'fa-solid fa-sync'\" (click)=\"refreshData()\" [disabled]=\"isLoading\">\n Refresh\n </button>\n </div>\n </div>\n\n <!-- Main Content with Splitter -->\n <kendo-splitter orientation=\"horizontal\" style=\"flex: 1; height: auto;\">\n <!-- Left Panel - Component List -->\n <kendo-splitter-pane [min]=\"'350px'\" [max]=\"'600px'\" [size]=\"'400px'\">\n <div class=\"components-panel\">\n <div class=\"panel-header\">\n <h3>Components</h3>\n <div class=\"search-box\">\n <kendo-textbox \n [value]=\"searchQuery\"\n (valueChange)=\"onSearchChange($event)\"\n placeholder=\"Search components...\"\n [clearButton]=\"true\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fa-solid fa-search\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n </div>\n \n <div class=\"components-list\">\n @if (isLoading) {\n <div class=\"loading-message\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Loading components...\n </div>\n } @else if (filteredComponents.length === 0) {\n <div class=\"empty-message\">\n No components found\n </div>\n } @else {\n @for (component of filteredComponents; track component.ID) {\n <div class=\"component-card\" \n [class.expanded]=\"expandedComponent?.ID === component.ID\"\n [class.running]=\"selectedComponent?.ID === component.ID && isRunning\">\n \n <!-- Card Header - Always visible -->\n <div class=\"card-header\" (click)=\"toggleComponentExpansion(component)\">\n <div class=\"card-icon\" [style.color]=\"getComponentTypeColor(component.Type)\">\n <i class=\"fa-solid\" [ngClass]=\"getComponentTypeIcon(component.Type)\"></i>\n </div>\n <div class=\"card-info\">\n <div class=\"card-name\">{{ component.Name }}</div>\n <div class=\"card-meta\">\n <span class=\"card-type\">{{ component.Type || 'Component' }}</span>\n <span class=\"card-version\">v{{ component.Version || '1.0.0' }}</span>\n @if (component.Status === 'Published') {\n <span class=\"status-badge published\">Published</span>\n } @else {\n <span class=\"status-badge draft\">Draft</span>\n }\n </div>\n </div>\n <div class=\"card-chevron\">\n @if (expandedComponent?.ID === component.ID) {\n <i class=\"fa-solid fa-chevron-up\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-down\"></i>\n }\n </div>\n </div>\n \n <!-- Card Details - Only visible when expanded -->\n @if (expandedComponent?.ID === component.ID) {\n <div class=\"card-details\">\n @if (component.Description) {\n <div class=\"detail-section\">\n <label>Description</label>\n <p>{{ component.Description }}</p>\n </div>\n }\n \n <div class=\"detail-section\">\n <label>Component Info</label>\n <div class=\"info-grid\">\n <div class=\"info-item\">\n <span class=\"info-label\">Type:</span>\n <span class=\"info-value\">{{ component.Type || 'Unknown' }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Version:</span>\n <span class=\"info-value\">{{ component.Version || '1.0.0' }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Status:</span>\n <span class=\"info-value\">{{ component.Status || 'Draft' }}</span>\n </div>\n @if (component.__mj_UpdatedAt) {\n <div class=\"info-item\">\n <span class=\"info-label\">Updated:</span>\n <span class=\"info-value\">{{ component.__mj_UpdatedAt | date:'short' }}</span>\n </div>\n }\n </div>\n </div>\n \n <div class=\"card-actions\">\n @if (selectedComponent?.ID === component.ID && isRunning) {\n <button kendoButton \n [icon]=\"'fa-solid fa-stop'\" \n [themeColor]=\"'error'\"\n (click)=\"stopComponent(); $event.stopPropagation()\">\n Stop Component\n </button>\n } @else {\n <button kendoButton \n [icon]=\"'fa-solid fa-play'\" \n [themeColor]=\"'primary'\"\n (click)=\"runComponent(component); $event.stopPropagation()\">\n Run Component\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n </div>\n </kendo-splitter-pane>\n\n <!-- Right Panel - Component Display -->\n <kendo-splitter-pane [min]=\"'400px'\">\n <div class=\"component-display\">\n @if (isRunning && selectedComponent && componentSpec) {\n @if (currentError) {\n <!-- Error Display -->\n <div class=\"error-display\">\n <div class=\"error-container\">\n <div class=\"error-header\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <h3>Component Error</h3>\n <button class=\"copy-button\" (click)=\"copyErrorToClipboard()\" title=\"Copy error details\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n </div>\n \n <p class=\"error-intro\">\n The component could not be rendered due to the following error:\n </p>\n \n <div class=\"error-details\">\n <strong>Error Type:</strong> {{ currentError.type }}<br>\n <strong>Message:</strong> {{ currentError.message }}\n @if (currentError.technicalDetails) {\n <details class=\"technical-details\">\n <summary>Technical Details (click to expand)</summary>\n <pre>{{ formatTechnicalDetails(currentError.technicalDetails) }}</pre>\n </details>\n }\n </div>\n \n <div class=\"error-help\">\n <strong>What to do:</strong>\n <ol>\n <li>Check that the component code is valid JavaScript/React</li>\n <li>Ensure all required dependencies are available</li>\n <li>Review the technical details for specific error information</li>\n <li>Contact your system administrator if the issue persists</li>\n </ol>\n </div>\n \n <div class=\"error-actions\">\n <button kendoButton (click)=\"retryComponent()\" [icon]=\"'fa-solid fa-rotate'\">\n Retry\n </button>\n <button kendoButton (click)=\"stopComponent()\" [icon]=\"'fa-solid fa-stop'\" [themeColor]=\"'error'\">\n Stop\n </button>\n </div>\n </div>\n </div>\n } @else {\n <!-- React Component -->\n <mj-react-component \n [component]=\"componentSpec\"\n (componentEvent)=\"onComponentEvent($event)\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\">\n </mj-react-component>\n }\n } @else {\n <!-- Empty State -->\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-rocket fa-3x\"></i>\n <h2>Ready to Test Components</h2>\n <p>Select a component from the list and click \"Run Component\" to see it in action</p>\n </div>\n }\n </div>\n </kendo-splitter-pane>\n </kendo-splitter>\n</div>", styles: [":host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.component-studio {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n overflow: hidden;\n\n .dashboard-header {\n background: white;\n border-bottom: 1px solid #dee2e6;\n padding: 16px 24px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n \n .header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n h1 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #212529;\n display: flex;\n align-items: center;\n gap: 12px;\n \n i {\n color: #6366f1;\n }\n }\n }\n }\n\n kendo-splitter {\n flex: 1;\n background: white;\n display: flex;\n height: 100%;\n min-height: 0;\n }\n\n .components-panel {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n \n .panel-header {\n padding: 20px;\n background: white;\n border-bottom: 1px solid #dee2e6;\n \n h3 {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 600;\n color: #212529;\n }\n \n .search-box {\n kendo-textbox {\n width: 100%;\n }\n }\n }\n \n .components-list {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n \n .loading-message,\n .empty-message {\n padding: 48px 24px;\n text-align: center;\n color: #6c757d;\n font-size: 14px;\n \n i {\n margin-right: 8px;\n }\n }\n \n .component-card {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n margin-bottom: 12px;\n transition: all 0.2s ease;\n \n &:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n }\n \n &.expanded {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n border-color: #6366f1;\n }\n \n &.running {\n border-color: #10b981;\n box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n }\n \n .card-header {\n display: flex;\n align-items: center;\n padding: 16px;\n cursor: pointer;\n user-select: none;\n \n &:hover {\n background: #f8f9fa;\n }\n \n .card-icon {\n font-size: 24px;\n margin-right: 16px;\n width: 32px;\n text-align: center;\n flex-shrink: 0;\n }\n \n .card-info {\n flex: 1;\n min-width: 0;\n \n .card-name {\n font-size: 15px;\n font-weight: 600;\n color: #212529;\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .card-meta {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: #6c757d;\n \n .card-type {\n font-weight: 500;\n }\n \n .card-version {\n color: #868e96;\n }\n \n .status-badge {\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n \n &.published {\n background: #d1fae5;\n color: #065f46;\n }\n \n &.draft {\n background: #fef3c7;\n color: #92400e;\n }\n }\n }\n }\n \n .card-chevron {\n color: #6c757d;\n font-size: 12px;\n margin-left: 12px;\n transition: transform 0.2s ease;\n }\n }\n \n .card-details {\n padding: 0 16px 16px 16px;\n border-top: 1px solid #e9ecef;\n animation: slideDown 0.2s ease;\n \n .detail-section {\n margin-top: 16px;\n \n label {\n display: block;\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 8px;\n }\n \n p {\n margin: 0;\n font-size: 13px;\n color: #495057;\n line-height: 1.5;\n }\n \n .info-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n \n .info-item {\n display: flex;\n align-items: baseline;\n gap: 6px;\n font-size: 13px;\n \n .info-label {\n font-weight: 500;\n color: #6c757d;\n min-width: 50px;\n }\n \n .info-value {\n color: #212529;\n }\n }\n }\n }\n \n .card-actions {\n margin-top: 16px;\n display: flex;\n gap: 8px;\n \n button {\n flex: 1;\n }\n }\n }\n }\n }\n }\n\n .component-display {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n position: relative;\n \n .empty-state {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: #868e96;\n padding: 48px;\n text-align: center;\n \n i {\n color: #dee2e6;\n margin-bottom: 24px;\n }\n \n h2 {\n margin: 0 0 12px 0;\n font-size: 24px;\n font-weight: 600;\n color: #495057;\n }\n \n p {\n margin: 0;\n font-size: 14px;\n max-width: 400px;\n }\n }\n \n .error-display {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n background: #f8f9fa;\n \n .error-container {\n width: 100%;\n max-width: 600px;\n background: white;\n border: 2px solid #dc3545;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15);\n \n .error-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 20px;\n color: #dc3545;\n position: relative;\n \n i {\n font-size: 24px;\n }\n \n h3 {\n margin: 0;\n font-size: 20px;\n flex: 1;\n }\n \n .copy-button {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n padding: 6px 10px;\n cursor: pointer;\n color: #6c757d;\n transition: all 0.2s;\n \n &:hover {\n background: #e9ecef;\n color: #495057;\n }\n \n i {\n font-size: 14px;\n }\n }\n }\n \n .error-intro {\n color: #495057;\n margin-bottom: 20px;\n font-size: 14px;\n }\n \n .error-details {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 20px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 13px;\n \n .technical-details {\n margin-top: 12px;\n \n summary {\n cursor: pointer;\n color: #0066cc;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n \n &:hover {\n text-decoration: underline;\n }\n }\n \n pre {\n margin-top: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n font-size: 11px;\n color: #495057;\n max-height: 200px;\n overflow-y: auto;\n }\n }\n }\n \n .error-help {\n background: #e7f3ff;\n border: 1px solid #b3d9ff;\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 20px;\n font-size: 13px;\n \n strong {\n display: block;\n margin-bottom: 8px;\n font-size: 14px;\n color: #0066cc;\n }\n \n ol {\n margin: 0;\n padding-left: 20px;\n \n li {\n margin-bottom: 4px;\n color: #495057;\n }\n }\n }\n \n .error-actions {\n display: flex;\n gap: 12px;\n \n button {\n min-width: 100px;\n }\n }\n }\n }\n \n mj-react-component {\n flex: 1;\n width: 100%;\n height: 100%;\n }\n }\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}"] }]
562
+ args: [{ selector: 'mj-component-studio-dashboard', template: "<div class=\"component-studio\">\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-content\">\n <div>\n <h1><i class=\"fa-solid fa-puzzle-piece\"></i> Component Studio</h1>\n <p class=\"header-subtitle\">Testing components without custom properties</p>\n </div>\n <button kendoButton (click)=\"refreshData()\" [disabled]=\"isLoading\">\n <span class=\"fa-solid fa-sync\"></span> Refresh\n </button>\n </div>\n </div>\n\n <!-- Main Content with Splitter -->\n <kendo-splitter orientation=\"horizontal\" style=\"flex: 1; height: auto;\">\n <!-- Left Panel - Component List -->\n <kendo-splitter-pane [min]=\"'350px'\" [max]=\"'600px'\" [size]=\"'400px'\">\n <div class=\"components-panel\">\n <div class=\"panel-header\">\n <h3>Components</h3>\n <div class=\"search-box\">\n <kendo-textbox \n [value]=\"searchQuery\"\n (valueChange)=\"onSearchChange($event)\"\n placeholder=\"Search components...\"\n [clearButton]=\"true\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fa-solid fa-search\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n </div>\n \n <div class=\"components-list\">\n @if (isLoading) {\n <div class=\"loading-message\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Loading components...\n </div>\n } @else if (filteredComponents.length === 0) {\n <div class=\"empty-message\">\n <i class=\"fa-solid fa-info-circle\"></i> No components found without custom properties.\n <br>\n <small>Only components that don't require custom props can be tested here.</small>\n </div>\n } @else {\n @for (component of filteredComponents; track component.ID) {\n <div class=\"component-card\" \n [class.expanded]=\"expandedComponent?.ID === component.ID\"\n [class.running]=\"selectedComponent?.ID === component.ID && isRunning\">\n \n <!-- Card Header - Always visible -->\n <div class=\"card-header\" (click)=\"toggleComponentExpansion(component)\">\n <div class=\"card-icon\" [style.color]=\"getComponentTypeColor(component.Type)\">\n <i class=\"fa-solid\" [ngClass]=\"getComponentTypeIcon(component.Type)\"></i>\n </div>\n <div class=\"card-info\">\n <div class=\"card-name\">{{ component.Name }}</div>\n <div class=\"card-meta\">\n <span class=\"card-type\">{{ component.Type || 'Component' }}</span>\n <span class=\"card-version\">v{{ component.Version || '1.0.0' }}</span>\n @if (component.Status === 'Published') {\n <span class=\"status-badge published\">Published</span>\n } @else {\n <span class=\"status-badge draft\">Draft</span>\n }\n </div>\n </div>\n <div class=\"card-chevron\">\n @if (expandedComponent?.ID === component.ID) {\n <i class=\"fa-solid fa-chevron-up\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-down\"></i>\n }\n </div>\n </div>\n \n <!-- Card Details - Only visible when expanded -->\n @if (expandedComponent?.ID === component.ID) {\n <div class=\"card-details\">\n @if (component.Description) {\n <div class=\"detail-section\">\n <label>Description</label>\n <p>{{ component.Description }}</p>\n </div>\n }\n \n <div class=\"detail-section\">\n <label>Component Info</label>\n <div class=\"info-grid\">\n <div class=\"info-item\">\n <span class=\"info-label\">Type:</span>\n <span class=\"info-value\">{{ component.Type || 'Unknown' }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Version:</span>\n <span class=\"info-value\">{{ component.Version || '1.0.0' }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Status:</span>\n <span class=\"info-value\">{{ component.Status || 'Draft' }}</span>\n </div>\n @if (component.__mj_UpdatedAt) {\n <div class=\"info-item\">\n <span class=\"info-label\">Updated:</span>\n <span class=\"info-value\">{{ component.__mj_UpdatedAt | date:'short' }}</span>\n </div>\n }\n </div>\n </div>\n \n <div class=\"card-actions\">\n @if (selectedComponent?.ID === component.ID && isRunning) {\n <button kendoButton \n [themeColor]=\"'error'\"\n (click)=\"stopComponent(); $event.stopPropagation()\">\n <span class=\"fa-solid fa-stop\"></span> Stop Component\n </button>\n } @else if (isRunning && selectedComponent?.ID !== component.ID) {\n <button kendoButton \n [themeColor]=\"'base'\"\n title=\"Stop current component and run this one\"\n (click)=\"runComponent(component); $event.stopPropagation()\">\n <span class=\"fa-solid fa-play\"></span> Switch to This Component\n </button>\n } @else {\n <button kendoButton \n [themeColor]=\"'primary'\"\n (click)=\"runComponent(component); $event.stopPropagation()\">\n <span class=\"fa-solid fa-play\"></span> Run Component\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n </div>\n </kendo-splitter-pane>\n\n <!-- Right Panel - Component Display -->\n <kendo-splitter-pane [min]=\"'400px'\">\n <div class=\"component-display\">\n @if (isRunning && selectedComponent && componentSpec) {\n @if (currentError) {\n <!-- Error Display -->\n <div class=\"error-display\">\n <div class=\"error-container\">\n <div class=\"error-header\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <h3>Component Error</h3>\n <button class=\"copy-button\" (click)=\"copyErrorToClipboard()\" title=\"Copy error details\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n </div>\n \n <p class=\"error-intro\">\n The component could not be rendered due to the following error:\n </p>\n \n <div class=\"error-details\">\n <strong>Error Type:</strong> {{ currentError.type }}<br>\n <strong>Message:</strong> {{ currentError.message }}\n @if (currentError.technicalDetails) {\n <details class=\"technical-details\">\n <summary>Technical Details (click to expand)</summary>\n <pre>{{ formatTechnicalDetails(currentError.technicalDetails) }}</pre>\n </details>\n }\n </div>\n \n <div class=\"error-help\">\n <strong>What to do:</strong>\n <ol>\n <li>Check that the component code is valid JavaScript/React</li>\n <li>Ensure all required dependencies are available</li>\n <li>Review the technical details for specific error information</li>\n <li>Contact your system administrator if the issue persists</li>\n </ol>\n </div>\n \n <div class=\"error-actions\">\n <button kendoButton (click)=\"retryComponent()\">\n <span class=\"fa-solid fa-rotate\"></span> Retry\n </button>\n <button kendoButton (click)=\"stopComponent()\" [themeColor]=\"'error'\">\n <span class=\"fa-solid fa-stop\"></span> Stop\n </button>\n </div>\n </div>\n </div>\n } @else {\n <!-- React Component -->\n <mj-react-component \n [component]=\"componentSpec\"\n (componentEvent)=\"onComponentEvent($event)\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\">\n </mj-react-component>\n }\n } @else {\n <!-- Empty State -->\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-rocket fa-3x\"></i>\n <h2>Ready to Test Components</h2>\n <p>Select a component from the list and click \"Run Component\" to see it in action</p>\n </div>\n }\n </div>\n </kendo-splitter-pane>\n </kendo-splitter>\n</div>", styles: [":host {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.component-studio {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n overflow: hidden;\n\n .dashboard-header {\n background: white;\n border-bottom: 1px solid #dee2e6;\n padding: 16px 24px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);\n \n .header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n h1 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #212529;\n display: flex;\n align-items: center;\n gap: 12px;\n \n i {\n color: #6366f1;\n }\n }\n \n .header-subtitle {\n margin: 4px 0 0 0;\n font-size: 13px;\n color: #6c757d;\n font-weight: normal;\n }\n }\n }\n\n kendo-splitter {\n flex: 1;\n background: white;\n display: flex;\n height: 100%;\n min-height: 0;\n }\n\n .components-panel {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n \n .panel-header {\n padding: 20px;\n background: white;\n border-bottom: 1px solid #dee2e6;\n \n h3 {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 600;\n color: #212529;\n }\n \n .search-box {\n kendo-textbox {\n width: 100%;\n }\n }\n }\n \n .components-list {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n \n .loading-message,\n .empty-message {\n padding: 48px 24px;\n text-align: center;\n color: #6c757d;\n font-size: 14px;\n \n i {\n margin-right: 8px;\n }\n }\n \n .component-card {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n margin-bottom: 12px;\n transition: all 0.2s ease;\n \n &:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n }\n \n &.expanded {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n border-color: #6366f1;\n }\n \n &.running {\n border-color: #10b981;\n box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n background: linear-gradient(to right, rgba(16, 185, 129, 0.03) 0%, white 100%);\n \n .card-header {\n &::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 4px;\n background: #10b981;\n }\n }\n }\n \n .card-header {\n display: flex;\n align-items: center;\n padding: 16px;\n cursor: pointer;\n user-select: none;\n position: relative;\n \n &:hover {\n background: #f8f9fa;\n }\n \n .card-icon {\n font-size: 24px;\n margin-right: 16px;\n width: 32px;\n text-align: center;\n flex-shrink: 0;\n }\n \n .card-info {\n flex: 1;\n min-width: 0;\n \n .card-name {\n font-size: 15px;\n font-weight: 600;\n color: #212529;\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .card-meta {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: #6c757d;\n \n .card-type {\n font-weight: 500;\n }\n \n .card-version {\n color: #868e96;\n }\n \n .status-badge {\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n \n &.published {\n background: #d1fae5;\n color: #065f46;\n }\n \n &.draft {\n background: #fef3c7;\n color: #92400e;\n }\n }\n }\n }\n \n .card-chevron {\n color: #6c757d;\n font-size: 12px;\n margin-left: 12px;\n transition: transform 0.2s ease;\n }\n }\n \n .card-details {\n padding: 0 16px 16px 16px;\n border-top: 1px solid #e9ecef;\n animation: slideDown 0.2s ease;\n \n .detail-section {\n margin-top: 16px;\n \n label {\n display: block;\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 8px;\n }\n \n p {\n margin: 0;\n font-size: 13px;\n color: #495057;\n line-height: 1.5;\n }\n \n .info-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n \n .info-item {\n display: flex;\n align-items: baseline;\n gap: 6px;\n font-size: 13px;\n \n .info-label {\n font-weight: 500;\n color: #6c757d;\n min-width: 50px;\n }\n \n .info-value {\n color: #212529;\n }\n }\n }\n }\n \n .card-actions {\n margin-top: 16px;\n display: flex;\n gap: 8px;\n \n button {\n flex: 1;\n }\n }\n }\n }\n }\n }\n\n .component-display {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n position: relative;\n \n .empty-state {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: #868e96;\n padding: 48px;\n text-align: center;\n \n i {\n color: #dee2e6;\n margin-bottom: 24px;\n }\n \n h2 {\n margin: 0 0 12px 0;\n font-size: 24px;\n font-weight: 600;\n color: #495057;\n }\n \n p {\n margin: 0;\n font-size: 14px;\n max-width: 400px;\n }\n }\n \n .error-display {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n background: #f8f9fa;\n \n .error-container {\n width: 100%;\n max-width: 600px;\n background: white;\n border: 2px solid #dc3545;\n border-radius: 8px;\n padding: 24px;\n box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15);\n \n .error-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 20px;\n color: #dc3545;\n position: relative;\n \n i {\n font-size: 24px;\n }\n \n h3 {\n margin: 0;\n font-size: 20px;\n flex: 1;\n }\n \n .copy-button {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n padding: 6px 10px;\n cursor: pointer;\n color: #6c757d;\n transition: all 0.2s;\n \n &:hover {\n background: #e9ecef;\n color: #495057;\n }\n \n i {\n font-size: 14px;\n }\n }\n }\n \n .error-intro {\n color: #495057;\n margin-bottom: 20px;\n font-size: 14px;\n }\n \n .error-details {\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 20px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 13px;\n \n .technical-details {\n margin-top: 12px;\n \n summary {\n cursor: pointer;\n color: #0066cc;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n \n &:hover {\n text-decoration: underline;\n }\n }\n \n pre {\n margin-top: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n font-size: 11px;\n color: #495057;\n max-height: 200px;\n overflow-y: auto;\n }\n }\n }\n \n .error-help {\n background: #e7f3ff;\n border: 1px solid #b3d9ff;\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 20px;\n font-size: 13px;\n \n strong {\n display: block;\n margin-bottom: 8px;\n font-size: 14px;\n color: #0066cc;\n }\n \n ol {\n margin: 0;\n padding-left: 20px;\n \n li {\n margin-bottom: 4px;\n color: #495057;\n }\n }\n }\n \n .error-actions {\n display: flex;\n gap: 12px;\n \n button {\n min-width: 100px;\n }\n }\n }\n }\n \n mj-react-component {\n flex: 1;\n width: 100%;\n height: 100%;\n }\n }\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}"] }]
522
563
  }], () => [{ type: i0.ChangeDetectorRef }], null); })();
523
564
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ComponentStudioDashboardComponent, { className: "ComponentStudioDashboardComponent", filePath: "src/ComponentStudio/component-studio-dashboard.component.ts", lineNumber: 18 }); })();
524
565
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"component-studio-dashboard.component.js","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts","../../src/ComponentStudio/component-studio-dashboard.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component-studio-dashboard.component.js","sourceRoot":"","sources":["../../src/ComponentStudio/component-studio-dashboard.component.ts","../../src/ComponentStudio/component-studio-dashboard.component.html"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-dashboards",
3
- "version": "2.87.0",
3
+ "version": "2.88.0",
4
4
  "description": "MemberJunction Dashboards",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -25,15 +25,15 @@
25
25
  "@angular/forms": "18.0.2"
26
26
  },
27
27
  "dependencies": {
28
- "@memberjunction/core": "2.87.0",
29
- "@memberjunction/core-entities": "2.87.0",
30
- "@memberjunction/templates-base-types": "2.87.0",
31
- "@memberjunction/ng-container-directives": "2.87.0",
32
- "@memberjunction/ng-core-entity-forms": "2.87.0",
33
- "@memberjunction/ng-notifications": "2.87.0",
34
- "@memberjunction/ng-shared": "2.87.0",
35
- "@memberjunction/ng-ai-test-harness": "2.87.0",
36
- "@memberjunction/ng-action-gallery": "2.87.0",
28
+ "@memberjunction/core": "2.88.0",
29
+ "@memberjunction/core-entities": "2.88.0",
30
+ "@memberjunction/templates-base-types": "2.88.0",
31
+ "@memberjunction/ng-container-directives": "2.88.0",
32
+ "@memberjunction/ng-core-entity-forms": "2.88.0",
33
+ "@memberjunction/ng-notifications": "2.88.0",
34
+ "@memberjunction/ng-shared": "2.88.0",
35
+ "@memberjunction/ng-ai-test-harness": "2.88.0",
36
+ "@memberjunction/ng-action-gallery": "2.88.0",
37
37
  "@progress/kendo-angular-buttons": "16.2.0",
38
38
  "@progress/kendo-angular-dropdowns": "16.2.0",
39
39
  "@progress/kendo-angular-treeview": "16.2.0",