@memberjunction/ng-dashboards 6.1.2 → 6.2.0-edge.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/AI/components/vectors/vector-management-resource.component.d.ts +6 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +99 -45
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +4 -0
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +16 -6
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +4 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +14 -4
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/services/explorer-state.service.js +2 -2
- package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
- package/dist/DevTools/graphql-console.component.d.ts.map +1 -1
- package/dist/DevTools/graphql-console.component.js +2 -0
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +2 -0
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts +4 -12
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +39 -78
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +3 -0
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +7 -6
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts +3 -0
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +7 -6
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/at-risk.view-models.d.ts +41 -3
- package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +1 -1
- package/dist/PredictiveStudio/at-risk.view-models.js +99 -6
- package/dist/PredictiveStudio/at-risk.view-models.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-catalog.component.d.ts +4 -1
- package/dist/PredictiveStudio/components/ps-catalog.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-catalog.component.js +61 -37
- package/dist/PredictiveStudio/components/ps-catalog.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +12 -0
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +426 -184
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +84 -0
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -0
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +1397 -0
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -0
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +66 -34
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.js +2456 -743
- package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +194 -0
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -0
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +1902 -0
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -0
- package/dist/PredictiveStudio/components/ps-production.component.d.ts +17 -1
- package/dist/PredictiveStudio/components/ps-production.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-production.component.js +653 -372
- package/dist/PredictiveStudio/components/ps-production.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-registry.component.d.ts +21 -61
- package/dist/PredictiveStudio/components/ps-registry.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-registry.component.js +214 -681
- package/dist/PredictiveStudio/components/ps-registry.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +49 -0
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +1 -0
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +658 -0
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +1 -0
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +42 -0
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -0
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js +90 -0
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -0
- package/dist/PredictiveStudio/predictive-studio.view-models.d.ts +14 -2
- package/dist/PredictiveStudio/predictive-studio.view-models.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio.view-models.js +41 -5
- package/dist/PredictiveStudio/predictive-studio.view-models.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-models-resource.component.d.ts +9 -1
- package/dist/PredictiveStudio/resources/ps-models-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-models-resource.component.js +178 -65
- package/dist/PredictiveStudio/resources/ps-models-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +9 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +307 -369
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-resource-base.js +1 -1
- package/dist/PredictiveStudio/resources/ps-resource-base.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.d.ts +17 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +309 -138
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.d.ts +1 -0
- package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +6 -5
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/predictive-studio-dashboards.module.d.ts +10 -8
- package/dist/predictive-studio-dashboards.module.d.ts.map +1 -1
- package/dist/predictive-studio-dashboards.module.js +13 -3
- package/dist/predictive-studio-dashboards.module.js.map +1 -1
- package/package.json +64 -63
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject } from '@angular/core';
|
|
8
8
|
import { NormalizeUUID, RegisterClass, UUIDsEqual } from '@memberjunction/global';
|
|
9
9
|
import { CompositeKey, LogError, RunView } from '@memberjunction/core';
|
|
10
|
-
import { MJEnvironmentEntityExtended } from '@memberjunction/core-entities';
|
|
10
|
+
import { MJEnvironmentEntityExtended, UserInfoEngine } from '@memberjunction/core-entities';
|
|
11
11
|
import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
12
12
|
import { trustDots, trustEvidenceLine } from '@memberjunction/predictive-studio-core';
|
|
13
13
|
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
@@ -22,11 +22,11 @@ import * as i0 from "@angular/core";
|
|
|
22
22
|
import * as i1 from "@memberjunction/ng-ui-components";
|
|
23
23
|
import * as i2 from "@memberjunction/ng-shared-generic";
|
|
24
24
|
import * as i3 from "@memberjunction/ng-conversations";
|
|
25
|
+
import * as i4 from "angular-split";
|
|
26
|
+
import * as i5 from "../components/ps-predictions-grid.component";
|
|
25
27
|
const _c0 = () => [1, 2, 3, 4, 5];
|
|
26
28
|
const _forTrack0 = ($index, $item) => $item.title;
|
|
27
29
|
const _forTrack1 = ($index, $item) => $item.modelId;
|
|
28
|
-
const _forTrack2 = ($index, $item) => $item.recordId;
|
|
29
|
-
const _forTrack3 = ($index, $item) => $item.label;
|
|
30
30
|
function PSPredictionsResourceComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
31
31
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
32
32
|
i0.ɵɵelementStart(0, "button", 8);
|
|
@@ -60,39 +60,39 @@ function PSPredictionsResourceComponent_Conditional_5_Template(rf, ctx) { if (rf
|
|
|
60
60
|
i0.ɵɵadvance(2);
|
|
61
61
|
i0.ɵɵtextInterpolate(ctx_r1.loadError);
|
|
62
62
|
} }
|
|
63
|
-
function
|
|
64
|
-
i0.ɵɵelementStart(0, "div",
|
|
63
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_0_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
64
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
65
65
|
i0.ɵɵelement(1, "i");
|
|
66
|
-
i0.ɵɵelementStart(2, "div",
|
|
66
|
+
i0.ɵɵelementStart(2, "div", 27);
|
|
67
67
|
i0.ɵɵtext(3);
|
|
68
68
|
i0.ɵɵelementEnd();
|
|
69
|
-
i0.ɵɵelementStart(4, "div",
|
|
69
|
+
i0.ɵɵelementStart(4, "div", 28);
|
|
70
70
|
i0.ɵɵtext(5);
|
|
71
71
|
i0.ɵɵelementEnd()();
|
|
72
72
|
} if (rf & 2) {
|
|
73
|
-
const
|
|
73
|
+
const cap_r6 = ctx.$implicit;
|
|
74
74
|
i0.ɵɵadvance();
|
|
75
|
-
i0.ɵɵclassMap(
|
|
75
|
+
i0.ɵɵclassMap(cap_r6.icon);
|
|
76
76
|
i0.ɵɵadvance(2);
|
|
77
|
-
i0.ɵɵtextInterpolate(
|
|
77
|
+
i0.ɵɵtextInterpolate(cap_r6.title);
|
|
78
78
|
i0.ɵɵadvance(2);
|
|
79
|
-
i0.ɵɵtextInterpolate(
|
|
79
|
+
i0.ɵɵtextInterpolate(cap_r6.blurb);
|
|
80
80
|
} }
|
|
81
|
-
function
|
|
82
|
-
const
|
|
83
|
-
i0.ɵɵelementStart(0, "div",
|
|
84
|
-
i0.ɵɵelement(2, "i",
|
|
81
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
83
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 22);
|
|
84
|
+
i0.ɵɵelement(2, "i", 23);
|
|
85
85
|
i0.ɵɵelementStart(3, "h2");
|
|
86
86
|
i0.ɵɵtext(4, "Predict what's next for your data");
|
|
87
87
|
i0.ɵɵelementEnd();
|
|
88
88
|
i0.ɵɵelementStart(5, "p");
|
|
89
89
|
i0.ɵɵtext(6, "Predictive Studio turns your records into plain-language predictions \u2014 describe what you want to know, and the agent builds and trains a model with you. Here's what you can do:");
|
|
90
90
|
i0.ɵɵelementEnd()();
|
|
91
|
-
i0.ɵɵelementStart(7, "div",
|
|
92
|
-
i0.ɵɵrepeaterCreate(8,
|
|
91
|
+
i0.ɵɵelementStart(7, "div", 24);
|
|
92
|
+
i0.ɵɵrepeaterCreate(8, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_0_For_9_Template, 6, 4, "div", 25, _forTrack0);
|
|
93
93
|
i0.ɵɵelementEnd();
|
|
94
|
-
i0.ɵɵelementStart(10, "button",
|
|
95
|
-
i0.ɵɵlistener("click", function
|
|
94
|
+
i0.ɵɵelementStart(10, "button", 26);
|
|
95
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_0_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.newPrediction()); });
|
|
96
96
|
i0.ɵɵelement(11, "i", 9);
|
|
97
97
|
i0.ɵɵtext(12, " Build your first prediction");
|
|
98
98
|
i0.ɵɵelementEnd()();
|
|
@@ -101,222 +101,123 @@ function PSPredictionsResourceComponent_Conditional_6_Conditional_2_Conditional_
|
|
|
101
101
|
i0.ɵɵadvance(8);
|
|
102
102
|
i0.ɵɵrepeater(ctx_r1.capabilityCards);
|
|
103
103
|
} }
|
|
104
|
-
function
|
|
105
|
-
const
|
|
106
|
-
i0.ɵɵelementStart(0, "button",
|
|
107
|
-
i0.ɵɵlistener("click", function
|
|
104
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
105
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
106
|
+
i0.ɵɵelementStart(0, "button", 39);
|
|
107
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_For_2_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const c_r8 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.open(c_r8)); });
|
|
108
108
|
i0.ɵɵtext(1, "Open ");
|
|
109
|
-
i0.ɵɵelement(2, "i",
|
|
109
|
+
i0.ɵɵelement(2, "i", 40);
|
|
110
110
|
i0.ɵɵelementEnd();
|
|
111
111
|
} }
|
|
112
|
-
function
|
|
113
|
-
const
|
|
114
|
-
i0.ɵɵelementStart(0, "button",
|
|
115
|
-
i0.ɵɵlistener("click", function
|
|
116
|
-
i0.ɵɵelement(1, "i",
|
|
112
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
113
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
114
|
+
i0.ɵɵelementStart(0, "button", 41);
|
|
115
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_For_2_Conditional_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const c_r8 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.improvePrediction(c_r8)); });
|
|
116
|
+
i0.ɵɵelement(1, "i", 23);
|
|
117
117
|
i0.ɵɵtext(2, " Improve this");
|
|
118
118
|
i0.ɵɵelementEnd();
|
|
119
119
|
} }
|
|
120
|
-
function
|
|
121
|
-
i0.ɵɵelementStart(0, "div",
|
|
122
|
-
i0.ɵɵelement(3, "i",
|
|
120
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
121
|
+
i0.ɵɵelementStart(0, "div", 30)(1, "div", 31)(2, "span", 32);
|
|
122
|
+
i0.ɵɵelement(3, "i", 33);
|
|
123
123
|
i0.ɵɵtext(4);
|
|
124
124
|
i0.ɵɵelementEnd()();
|
|
125
|
-
i0.ɵɵelementStart(5, "h3",
|
|
125
|
+
i0.ɵɵelementStart(5, "h3", 34);
|
|
126
126
|
i0.ɵɵtext(6);
|
|
127
127
|
i0.ɵɵelementEnd();
|
|
128
|
-
i0.ɵɵelementStart(7, "p",
|
|
128
|
+
i0.ɵɵelementStart(7, "p", 35);
|
|
129
129
|
i0.ɵɵtext(8);
|
|
130
130
|
i0.ɵɵelementEnd();
|
|
131
|
-
i0.ɵɵelementStart(9, "div",
|
|
132
|
-
i0.ɵɵconditionalCreate(10,
|
|
131
|
+
i0.ɵɵelementStart(9, "div", 36);
|
|
132
|
+
i0.ɵɵconditionalCreate(10, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_For_2_Conditional_10_Template, 3, 0, "button", 37)(11, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_For_2_Conditional_11_Template, 3, 0, "button", 38);
|
|
133
133
|
i0.ɵɵelementEnd()();
|
|
134
134
|
} if (rf & 2) {
|
|
135
|
-
const
|
|
136
|
-
i0.ɵɵclassProp("blocked", !
|
|
135
|
+
const c_r8 = ctx.$implicit;
|
|
136
|
+
i0.ɵɵclassProp("blocked", !c_r8.canOpen);
|
|
137
137
|
i0.ɵɵadvance(2);
|
|
138
|
-
i0.ɵɵclassMap("trust-" +
|
|
138
|
+
i0.ɵɵclassMap("trust-" + c_r8.trust.grade.toLowerCase());
|
|
139
139
|
i0.ɵɵadvance(2);
|
|
140
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
140
|
+
i0.ɵɵtextInterpolate1(" ", c_r8.canOpen ? c_r8.trust.grade : "Not ready", " ");
|
|
141
141
|
i0.ɵɵadvance(2);
|
|
142
|
-
i0.ɵɵtextInterpolate(
|
|
142
|
+
i0.ɵɵtextInterpolate(c_r8.title);
|
|
143
143
|
i0.ɵɵadvance(2);
|
|
144
|
-
i0.ɵɵtextInterpolate(
|
|
144
|
+
i0.ɵɵtextInterpolate(c_r8.canOpen ? c_r8.trust.oneLiner : c_r8.blockedReason);
|
|
145
145
|
i0.ɵɵadvance(2);
|
|
146
|
-
i0.ɵɵconditional(
|
|
146
|
+
i0.ɵɵconditional(c_r8.canOpen ? 10 : 11);
|
|
147
147
|
} }
|
|
148
|
-
function
|
|
149
|
-
i0.ɵɵelementStart(0, "div",
|
|
150
|
-
i0.ɵɵrepeaterCreate(1,
|
|
148
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
149
|
+
i0.ɵɵelementStart(0, "div", 21);
|
|
150
|
+
i0.ɵɵrepeaterCreate(1, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_For_2_Template, 12, 8, "div", 29, _forTrack1);
|
|
151
151
|
i0.ɵɵelementEnd();
|
|
152
152
|
} if (rf & 2) {
|
|
153
153
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
154
154
|
i0.ɵɵadvance();
|
|
155
155
|
i0.ɵɵrepeater(ctx_r1.cards);
|
|
156
156
|
} }
|
|
157
|
-
function
|
|
158
|
-
i0.ɵɵconditionalCreate(0,
|
|
157
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
+
i0.ɵɵconditionalCreate(0, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_0_Template, 13, 0, "div", 20)(1, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_1_Template, 3, 0, "div", 21);
|
|
159
159
|
} if (rf & 2) {
|
|
160
160
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
161
161
|
i0.ɵɵconditional(ctx_r1.cards.length === 0 ? 0 : 1);
|
|
162
162
|
} }
|
|
163
|
-
function
|
|
164
|
-
i0.ɵɵelement(0, "i",
|
|
163
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_5_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
164
|
+
i0.ɵɵelement(0, "i", 57);
|
|
165
165
|
} if (rf & 2) {
|
|
166
|
-
const
|
|
166
|
+
const d_r11 = ctx.$implicit;
|
|
167
167
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
168
|
-
i0.ɵɵclassProp("on",
|
|
168
|
+
i0.ɵɵclassProp("on", d_r11 <= ctx_r1.dots(ctx_r1.selected));
|
|
169
169
|
} }
|
|
170
|
-
function
|
|
171
|
-
i0.ɵɵelementStart(0, "span",
|
|
170
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_20_Conditional_0_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
171
|
+
i0.ɵɵelementStart(0, "span", 61);
|
|
172
172
|
i0.ɵɵtext(1);
|
|
173
173
|
i0.ɵɵelementEnd();
|
|
174
174
|
} if (rf & 2) {
|
|
175
|
-
const
|
|
175
|
+
const d_r12 = ctx.$implicit;
|
|
176
176
|
i0.ɵɵadvance();
|
|
177
|
-
i0.ɵɵtextInterpolate(
|
|
177
|
+
i0.ɵɵtextInterpolate(d_r12);
|
|
178
178
|
} }
|
|
179
|
-
function
|
|
180
|
-
i0.ɵɵelementStart(0, "div",
|
|
181
|
-
i0.ɵɵelement(1, "i",
|
|
179
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_20_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
180
|
+
i0.ɵɵelementStart(0, "div", 58);
|
|
181
|
+
i0.ɵɵelement(1, "i", 60);
|
|
182
182
|
i0.ɵɵelementStart(2, "strong");
|
|
183
183
|
i0.ɵɵtext(3, "What's driving this:");
|
|
184
184
|
i0.ɵɵelementEnd();
|
|
185
|
-
i0.ɵɵrepeaterCreate(4,
|
|
185
|
+
i0.ɵɵrepeaterCreate(4, PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_20_Conditional_0_For_5_Template, 2, 1, "span", 61, i0.ɵɵrepeaterTrackByIdentity);
|
|
186
186
|
i0.ɵɵelementEnd();
|
|
187
187
|
} if (rf & 2) {
|
|
188
188
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
189
189
|
i0.ɵɵadvance(4);
|
|
190
190
|
i0.ɵɵrepeater(ctx_r1.drivers);
|
|
191
191
|
} }
|
|
192
|
-
function
|
|
193
|
-
i0.ɵɵ
|
|
194
|
-
|
|
195
|
-
function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
196
|
-
const _r12 = i0.ɵɵgetCurrentView();
|
|
197
|
-
i0.ɵɵelementStart(0, "div", 58);
|
|
198
|
-
i0.ɵɵelement(1, "i", 10);
|
|
199
|
-
i0.ɵɵelementStart(2, "span", 63);
|
|
200
|
-
i0.ɵɵtext(3);
|
|
201
|
-
i0.ɵɵelementEnd();
|
|
202
|
-
i0.ɵɵelementStart(4, "button", 13);
|
|
203
|
-
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.retryAtRisk()); });
|
|
204
|
-
i0.ɵɵelement(5, "i", 14);
|
|
205
|
-
i0.ɵɵtext(6, " Try again");
|
|
206
|
-
i0.ɵɵelementEnd()();
|
|
207
|
-
} if (rf & 2) {
|
|
208
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
209
|
-
i0.ɵɵadvance(3);
|
|
210
|
-
i0.ɵɵtextInterpolate1("Couldn't load who's at risk: ", ctx_r1.atRiskError);
|
|
211
|
-
} }
|
|
212
|
-
function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_3_For_8_Conditional_4_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
213
|
-
i0.ɵɵelementStart(0, "span", 75);
|
|
214
|
-
i0.ɵɵelement(1, "i", 76);
|
|
215
|
-
i0.ɵɵtext(2);
|
|
216
|
-
i0.ɵɵelementEnd();
|
|
217
|
-
} if (rf & 2) {
|
|
218
|
-
const d_r13 = ctx.$implicit;
|
|
219
|
-
i0.ɵɵclassProp("up", d_r13.up)("down", !d_r13.up);
|
|
220
|
-
i0.ɵɵproperty("title", (d_r13.up ? "Increases risk: " : "Lowers risk: ") + d_r13.label);
|
|
221
|
-
i0.ɵɵadvance();
|
|
222
|
-
i0.ɵɵclassProp("fa-arrow-up", d_r13.up)("fa-arrow-down", !d_r13.up);
|
|
223
|
-
i0.ɵɵadvance();
|
|
224
|
-
i0.ɵɵtextInterpolate1(" ", d_r13.label, " ");
|
|
225
|
-
} }
|
|
226
|
-
function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_3_For_8_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
227
|
-
i0.ɵɵelementStart(0, "span", 70);
|
|
228
|
-
i0.ɵɵrepeaterCreate(1, PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_3_For_8_Conditional_4_For_2_Template, 3, 10, "span", 74, _forTrack3);
|
|
229
|
-
i0.ɵɵelementEnd();
|
|
230
|
-
} if (rf & 2) {
|
|
231
|
-
const r_r14 = i0.ɵɵnextContext().$implicit;
|
|
232
|
-
i0.ɵɵadvance();
|
|
233
|
-
i0.ɵɵrepeater(r_r14.drivers.slice(0, 2));
|
|
234
|
-
} }
|
|
235
|
-
function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_3_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
-
i0.ɵɵelementStart(0, "div", 66)(1, "div", 68)(2, "span", 69);
|
|
237
|
-
i0.ɵɵtext(3);
|
|
238
|
-
i0.ɵɵelementEnd();
|
|
239
|
-
i0.ɵɵconditionalCreate(4, PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_3_For_8_Conditional_4_Template, 3, 0, "span", 70);
|
|
240
|
-
i0.ɵɵelementEnd();
|
|
241
|
-
i0.ɵɵelementStart(5, "span", 71);
|
|
242
|
-
i0.ɵɵelement(6, "span", 72);
|
|
243
|
-
i0.ɵɵelementEnd();
|
|
244
|
-
i0.ɵɵelementStart(7, "span", 73);
|
|
245
|
-
i0.ɵɵtext(8);
|
|
246
|
-
i0.ɵɵelementEnd()();
|
|
247
|
-
} if (rf & 2) {
|
|
248
|
-
const r_r14 = ctx.$implicit;
|
|
249
|
-
i0.ɵɵadvance(2);
|
|
250
|
-
i0.ɵɵclassProp("mono", !r_r14.label);
|
|
251
|
-
i0.ɵɵproperty("title", r_r14.recordId);
|
|
252
|
-
i0.ɵɵadvance();
|
|
253
|
-
i0.ɵɵtextInterpolate(r_r14.label || r_r14.recordId);
|
|
254
|
-
i0.ɵɵadvance();
|
|
255
|
-
i0.ɵɵconditional(r_r14.drivers && r_r14.drivers.length > 0 ? 4 : -1);
|
|
256
|
-
i0.ɵɵadvance(2);
|
|
257
|
-
i0.ɵɵclassMap("risk-" + r_r14.band);
|
|
258
|
-
i0.ɵɵstyleProp("width", r_r14.riskPct, "%");
|
|
259
|
-
i0.ɵɵadvance();
|
|
260
|
-
i0.ɵɵclassMap("risk-" + r_r14.band);
|
|
261
|
-
i0.ɵɵadvance();
|
|
262
|
-
i0.ɵɵtextInterpolate1("", r_r14.riskPct, "%");
|
|
263
|
-
} }
|
|
264
|
-
function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
265
|
-
i0.ɵɵelementStart(0, "div", 59, 0)(2, "div", 64)(3, "span");
|
|
266
|
-
i0.ɵɵtext(4, "Member");
|
|
267
|
-
i0.ɵɵelementEnd();
|
|
268
|
-
i0.ɵɵelementStart(5, "span", 65);
|
|
269
|
-
i0.ɵɵtext(6, "Likelihood");
|
|
270
|
-
i0.ɵɵelementEnd()();
|
|
271
|
-
i0.ɵɵrepeaterCreate(7, PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_3_For_8_Template, 9, 12, "div", 66, _forTrack2);
|
|
272
|
-
i0.ɵɵelementStart(9, "div", 67);
|
|
273
|
-
i0.ɵɵtext(10);
|
|
274
|
-
i0.ɵɵelementEnd()();
|
|
275
|
-
} if (rf & 2) {
|
|
276
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
277
|
-
i0.ɵɵadvance(7);
|
|
278
|
-
i0.ɵɵrepeater(ctx_r1.atRiskRows.slice(0, 50));
|
|
279
|
-
i0.ɵɵadvance(3);
|
|
280
|
-
i0.ɵɵtextInterpolate1("", ctx_r1.atRiskRows.length > 50 ? "Showing top 50 of " + ctx_r1.atRiskRows.length : ctx_r1.atRiskRows.length + " members", " \u00B7 highest first");
|
|
281
|
-
} }
|
|
282
|
-
function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
283
|
-
i0.ɵɵelementStart(0, "div", 60);
|
|
284
|
-
i0.ɵɵtext(1, "No results yet \u2014 run this prediction from ");
|
|
285
|
-
i0.ɵɵelementStart(2, "strong");
|
|
286
|
-
i0.ɵɵtext(3, "Models in Production");
|
|
287
|
-
i0.ɵɵelementEnd();
|
|
288
|
-
i0.ɵɵtext(4, " to see who's at risk.");
|
|
289
|
-
i0.ɵɵelementEnd();
|
|
290
|
-
} }
|
|
291
|
-
function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
292
|
-
i0.ɵɵconditionalCreate(0, PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_0_Template, 6, 0, "div", 56);
|
|
293
|
-
i0.ɵɵconditionalCreate(1, PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_1_Template, 1, 0, "mj-loading", 57)(2, PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_2_Template, 7, 1, "div", 58)(3, PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_3_Template, 11, 1, "div", 59)(4, PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_20_Conditional_4_Template, 5, 0, "div", 60);
|
|
192
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
193
|
+
i0.ɵɵconditionalCreate(0, PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_20_Conditional_0_Template, 6, 0, "div", 58);
|
|
194
|
+
i0.ɵɵelement(1, "ps-predictions-grid", 59, 0);
|
|
294
195
|
} if (rf & 2) {
|
|
295
196
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
296
197
|
i0.ɵɵconditional(ctx_r1.drivers.length > 0 ? 0 : -1);
|
|
297
198
|
i0.ɵɵadvance();
|
|
298
|
-
i0.ɵɵ
|
|
199
|
+
i0.ɵɵproperty("modelId", ctx_r1.selected.modelId)("runId", ctx_r1.latestRunId)("title", ctx_r1.selected.title)("entityName", ctx_r1.selectedTargetEntityName)("problemType", ctx_r1.selectedProblemType);
|
|
299
200
|
} }
|
|
300
|
-
function
|
|
301
|
-
const
|
|
302
|
-
i0.ɵɵelementStart(0, "button",
|
|
303
|
-
i0.ɵɵlistener("click", function
|
|
304
|
-
i0.ɵɵelement(1, "i",
|
|
201
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
202
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
203
|
+
i0.ɵɵelementStart(0, "button", 62);
|
|
204
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_22_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.scrollToList()); });
|
|
205
|
+
i0.ɵɵelement(1, "i", 63);
|
|
305
206
|
i0.ɵɵtext(2, " Review the call list");
|
|
306
207
|
i0.ɵɵelementEnd();
|
|
307
|
-
i0.ɵɵelementStart(3, "button",
|
|
308
|
-
i0.ɵɵlistener("click", function
|
|
309
|
-
i0.ɵɵelement(4, "i",
|
|
208
|
+
i0.ɵɵelementStart(3, "button", 64);
|
|
209
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_22_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.askAgentTo("Save these prediction scores onto the records so my team can use them.")); });
|
|
210
|
+
i0.ɵɵelement(4, "i", 65);
|
|
310
211
|
i0.ɵɵtext(5, " Save scores to records");
|
|
311
212
|
i0.ɵɵelementEnd();
|
|
312
|
-
i0.ɵɵelementStart(6, "button",
|
|
313
|
-
i0.ɵɵlistener("click", function
|
|
314
|
-
i0.ɵɵelement(7, "i",
|
|
213
|
+
i0.ɵɵelementStart(6, "button", 66);
|
|
214
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_22_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sendToList()); });
|
|
215
|
+
i0.ɵɵelement(7, "i", 67);
|
|
315
216
|
i0.ɵɵtext(8, " Send to a list");
|
|
316
217
|
i0.ɵɵelementEnd();
|
|
317
|
-
i0.ɵɵelementStart(9, "button",
|
|
318
|
-
i0.ɵɵlistener("click", function
|
|
319
|
-
i0.ɵɵelement(10, "i",
|
|
218
|
+
i0.ɵɵelementStart(9, "button", 68);
|
|
219
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_22_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.exportList()); });
|
|
220
|
+
i0.ɵɵelement(10, "i", 69);
|
|
320
221
|
i0.ɵɵtext(11, " Share / export");
|
|
321
222
|
i0.ɵɵelementEnd();
|
|
322
223
|
} if (rf & 2) {
|
|
@@ -328,9 +229,9 @@ function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_
|
|
|
328
229
|
i0.ɵɵadvance(2);
|
|
329
230
|
i0.ɵɵproperty("disabled", ctx_r1.atRiskRows.length === 0);
|
|
330
231
|
} }
|
|
331
|
-
function
|
|
332
|
-
i0.ɵɵelementStart(0, "div",
|
|
333
|
-
i0.ɵɵelement(1, "i",
|
|
232
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
233
|
+
i0.ɵɵelementStart(0, "div", 55);
|
|
234
|
+
i0.ɵɵelement(1, "i", 70);
|
|
334
235
|
i0.ɵɵtext(2);
|
|
335
236
|
i0.ɵɵelementEnd();
|
|
336
237
|
} if (rf & 2) {
|
|
@@ -338,8 +239,8 @@ function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_
|
|
|
338
239
|
i0.ɵɵadvance(2);
|
|
339
240
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.selected.trust.gateReason);
|
|
340
241
|
} }
|
|
341
|
-
function
|
|
342
|
-
i0.ɵɵelementStart(0, "div",
|
|
242
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
243
|
+
i0.ɵɵelementStart(0, "div", 56);
|
|
343
244
|
i0.ɵɵtext(1);
|
|
344
245
|
i0.ɵɵelementEnd();
|
|
345
246
|
} if (rf & 2) {
|
|
@@ -347,37 +248,37 @@ function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Conditional_
|
|
|
347
248
|
i0.ɵɵadvance();
|
|
348
249
|
i0.ɵɵtextInterpolate(ctx_r1.listResult);
|
|
349
250
|
} }
|
|
350
|
-
function
|
|
351
|
-
const
|
|
352
|
-
i0.ɵɵelementStart(0, "nav",
|
|
353
|
-
i0.ɵɵlistener("click", function
|
|
251
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
252
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
253
|
+
i0.ɵɵelementStart(0, "nav", 42)(1, "a", 43);
|
|
254
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_5_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.backToCatalog()); });
|
|
354
255
|
i0.ɵɵtext(2, "Predictions");
|
|
355
256
|
i0.ɵɵelementEnd();
|
|
356
|
-
i0.ɵɵelement(3, "i",
|
|
257
|
+
i0.ɵɵelement(3, "i", 44);
|
|
357
258
|
i0.ɵɵelementStart(4, "span");
|
|
358
259
|
i0.ɵɵtext(5);
|
|
359
260
|
i0.ɵɵelementEnd()();
|
|
360
|
-
i0.ɵɵelementStart(6, "div",
|
|
361
|
-
i0.ɵɵrepeaterCreate(8,
|
|
261
|
+
i0.ɵɵelementStart(6, "div", 45)(7, "div", 46);
|
|
262
|
+
i0.ɵɵrepeaterCreate(8, PSPredictionsResourceComponent_Conditional_6_Conditional_5_For_9_Template, 1, 2, "i", 47, i0.ɵɵrepeaterTrackByIdentity);
|
|
362
263
|
i0.ɵɵelementEnd();
|
|
363
|
-
i0.ɵɵelementStart(10, "div",
|
|
264
|
+
i0.ɵɵelementStart(10, "div", 48)(11, "div", 49);
|
|
364
265
|
i0.ɵɵtext(12);
|
|
365
266
|
i0.ɵɵelementEnd();
|
|
366
|
-
i0.ɵɵelementStart(13, "div",
|
|
267
|
+
i0.ɵɵelementStart(13, "div", 50);
|
|
367
268
|
i0.ɵɵtext(14);
|
|
368
269
|
i0.ɵɵelementEnd();
|
|
369
|
-
i0.ɵɵelementStart(15, "div",
|
|
270
|
+
i0.ɵɵelementStart(15, "div", 51);
|
|
370
271
|
i0.ɵɵtext(16);
|
|
371
272
|
i0.ɵɵelementEnd();
|
|
372
|
-
i0.ɵɵelementStart(17, "div",
|
|
273
|
+
i0.ɵɵelementStart(17, "div", 52);
|
|
373
274
|
i0.ɵɵtext(18);
|
|
374
275
|
i0.ɵɵelementEnd()()();
|
|
375
|
-
i0.ɵɵelementStart(19, "div",
|
|
376
|
-
i0.ɵɵconditionalCreate(20,
|
|
377
|
-
i0.ɵɵelementStart(21, "div",
|
|
378
|
-
i0.ɵɵconditionalCreate(22,
|
|
276
|
+
i0.ɵɵelementStart(19, "div", 53);
|
|
277
|
+
i0.ɵɵconditionalCreate(20, PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_20_Template, 3, 6);
|
|
278
|
+
i0.ɵɵelementStart(21, "div", 54);
|
|
279
|
+
i0.ɵɵconditionalCreate(22, PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_22_Template, 12, 8)(23, PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_23_Template, 3, 1, "div", 55);
|
|
379
280
|
i0.ɵɵelementEnd();
|
|
380
|
-
i0.ɵɵconditionalCreate(24,
|
|
281
|
+
i0.ɵɵconditionalCreate(24, PSPredictionsResourceComponent_Conditional_6_Conditional_5_Conditional_24_Template, 2, 1, "div", 56);
|
|
381
282
|
i0.ɵɵelementEnd();
|
|
382
283
|
} if (rf & 2) {
|
|
383
284
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -404,54 +305,62 @@ function PSPredictionsResourceComponent_Conditional_6_Conditional_3_Template(rf,
|
|
|
404
305
|
i0.ɵɵadvance(2);
|
|
405
306
|
i0.ɵɵconditional(ctx_r1.listResult ? 24 : -1);
|
|
406
307
|
} }
|
|
407
|
-
function
|
|
408
|
-
const
|
|
409
|
-
i0.ɵɵelementStart(0, "mj-conversation-chat-area",
|
|
410
|
-
i0.ɵɵlistener("conversationCreated", function
|
|
308
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_6_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
309
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
310
|
+
i0.ɵɵelementStart(0, "mj-conversation-chat-area", 80);
|
|
311
|
+
i0.ɵɵlistener("conversationCreated", function PSPredictionsResourceComponent_Conditional_6_Conditional_6_Conditional_9_Template_mj_conversation_chat_area_conversationCreated_0_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onChatConversationCreated($event)); })("pendingMessageConsumed", function PSPredictionsResourceComponent_Conditional_6_Conditional_6_Conditional_9_Template_mj_conversation_chat_area_pendingMessageConsumed_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onChatPendingMessageConsumed()); });
|
|
411
312
|
i0.ɵɵelementEnd();
|
|
412
313
|
} if (rf & 2) {
|
|
413
314
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
414
315
|
i0.ɵɵproperty("Provider", ctx_r1.Provider)("environmentId", ctx_r1.chatEnvironmentId)("currentUser", ctx_r1.currentUser)("conversation", ctx_r1.chatConversation)("conversationId", ctx_r1.chatConversationId)("isNewConversation", ctx_r1.chatIsNewConversation)("suppressNewConversationEmptyState", true)("allowMentions", false)("overlayMode", true)("showExportButton", false)("showShareButton", false)("showArtifactIndicator", false)("showAgentPicker", false)("showAgentModePicker", false)("defaultAgentId", ctx_r1.modelDevAgentId)("pendingMessage", ctx_r1.pendingPrompt)("applicationScope", "Application")("applicationId", ctx_r1.applicationId)("appContext", ctx_r1.chatAppContext);
|
|
415
316
|
} }
|
|
416
|
-
function
|
|
417
|
-
i0.ɵɵelementStart(0, "div",
|
|
418
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
317
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_6_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
318
|
+
i0.ɵɵelementStart(0, "div", 79);
|
|
319
|
+
i0.ɵɵelement(1, "mj-loading", 81);
|
|
419
320
|
i0.ɵɵelementEnd();
|
|
420
321
|
} }
|
|
421
|
-
function
|
|
422
|
-
const
|
|
423
|
-
i0.ɵɵelementStart(0, "
|
|
424
|
-
i0.ɵɵelement(
|
|
425
|
-
i0.ɵɵtext(
|
|
322
|
+
function PSPredictionsResourceComponent_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
323
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
324
|
+
i0.ɵɵelementStart(0, "as-split-area", 19)(1, "aside", 71)(2, "div", 72)(3, "div", 73);
|
|
325
|
+
i0.ɵɵelement(4, "i", 74);
|
|
326
|
+
i0.ɵɵtext(5, " New prediction");
|
|
426
327
|
i0.ɵɵelementEnd();
|
|
427
|
-
i0.ɵɵelementStart(
|
|
428
|
-
i0.ɵɵlistener("click", function
|
|
429
|
-
i0.ɵɵelement(
|
|
430
|
-
i0.ɵɵelementEnd()();
|
|
431
|
-
i0.ɵɵelementStart(7, "div", 90);
|
|
432
|
-
i0.ɵɵconditionalCreate(8, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_8_Template, 1, 19, "mj-conversation-chat-area", 91)(9, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Conditional_9_Template, 2, 0, "div", 92);
|
|
328
|
+
i0.ɵɵelementStart(6, "button", 75);
|
|
329
|
+
i0.ɵɵlistener("click", function PSPredictionsResourceComponent_Conditional_6_Conditional_6_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closeChat()); });
|
|
330
|
+
i0.ɵɵelement(7, "i", 76);
|
|
433
331
|
i0.ɵɵelementEnd()();
|
|
332
|
+
i0.ɵɵelementStart(8, "div", 77);
|
|
333
|
+
i0.ɵɵconditionalCreate(9, PSPredictionsResourceComponent_Conditional_6_Conditional_6_Conditional_9_Template, 1, 19, "mj-conversation-chat-area", 78)(10, PSPredictionsResourceComponent_Conditional_6_Conditional_6_Conditional_10_Template, 2, 0, "div", 79);
|
|
334
|
+
i0.ɵɵelementEnd()()();
|
|
434
335
|
} if (rf & 2) {
|
|
435
336
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
436
|
-
i0.ɵɵ
|
|
437
|
-
i0.ɵɵ
|
|
337
|
+
i0.ɵɵproperty("size", ctx_r1.copilotSizePct)("minSize", 20)("maxSize", 65);
|
|
338
|
+
i0.ɵɵadvance(9);
|
|
339
|
+
i0.ɵɵconditional(ctx_r1.currentUser ? 9 : 10);
|
|
438
340
|
} }
|
|
439
341
|
function PSPredictionsResourceComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
440
|
-
i0.ɵɵ
|
|
441
|
-
i0.ɵɵ
|
|
442
|
-
i0.ɵɵ
|
|
443
|
-
i0.ɵɵ
|
|
444
|
-
i0.ɵɵconditionalCreate(4, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Template,
|
|
445
|
-
i0.ɵɵ
|
|
342
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
343
|
+
i0.ɵɵelementStart(0, "div", 15)(1, "as-split", 16);
|
|
344
|
+
i0.ɵɵlistener("dragEnd", function PSPredictionsResourceComponent_Conditional_6_Template_as_split_dragEnd_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCopilotSplitDragEnd($event.sizes)); });
|
|
345
|
+
i0.ɵɵelementStart(2, "as-split-area", 17)(3, "div", 18);
|
|
346
|
+
i0.ɵɵconditionalCreate(4, PSPredictionsResourceComponent_Conditional_6_Conditional_4_Template, 2, 1);
|
|
347
|
+
i0.ɵɵconditionalCreate(5, PSPredictionsResourceComponent_Conditional_6_Conditional_5_Template, 25, 13);
|
|
348
|
+
i0.ɵɵelementEnd()();
|
|
349
|
+
i0.ɵɵconditionalCreate(6, PSPredictionsResourceComponent_Conditional_6_Conditional_6_Template, 11, 4, "as-split-area", 19);
|
|
350
|
+
i0.ɵɵelementEnd()();
|
|
446
351
|
} if (rf & 2) {
|
|
447
352
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
448
353
|
i0.ɵɵclassProp("chat-open", ctx_r1.chatOpen);
|
|
354
|
+
i0.ɵɵadvance();
|
|
355
|
+
i0.ɵɵproperty("gutterSize", ctx_r1.chatOpen ? 6 : 0);
|
|
356
|
+
i0.ɵɵadvance();
|
|
357
|
+
i0.ɵɵproperty("size", ctx_r1.chatOpen ? ctx_r1.mainSizePct : 100)("minSize", 30);
|
|
449
358
|
i0.ɵɵadvance(2);
|
|
450
|
-
i0.ɵɵconditional(ctx_r1.view === "catalog" ?
|
|
359
|
+
i0.ɵɵconditional(ctx_r1.view === "catalog" ? 4 : -1);
|
|
451
360
|
i0.ɵɵadvance();
|
|
452
|
-
i0.ɵɵconditional(ctx_r1.view === "workspace" && ctx_r1.selected ?
|
|
361
|
+
i0.ɵɵconditional(ctx_r1.view === "workspace" && ctx_r1.selected ? 5 : -1);
|
|
453
362
|
i0.ɵɵadvance();
|
|
454
|
-
i0.ɵɵconditional(ctx_r1.chatOpen ?
|
|
363
|
+
i0.ɵɵconditional(ctx_r1.chatOpen ? 6 : -1);
|
|
455
364
|
} }
|
|
456
365
|
const PREDICTIVE_STUDIO_APP_ID = '299C9272-8D38-40CA-85D4-0980F2C9FAD1';
|
|
457
366
|
const MODEL_DEV_AGENT_NAME = 'Model Development Agent';
|
|
@@ -483,6 +392,39 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
483
392
|
chatConversation = null;
|
|
484
393
|
chatConversationId = null;
|
|
485
394
|
chatIsNewConversation = true;
|
|
395
|
+
mainSizePct = 68;
|
|
396
|
+
copilotSizePct = 32;
|
|
397
|
+
ngOnInit() {
|
|
398
|
+
super.ngOnInit();
|
|
399
|
+
this.loadLayoutPrefs();
|
|
400
|
+
}
|
|
401
|
+
onCopilotSplitDragEnd(sizes) {
|
|
402
|
+
if (Array.isArray(sizes) && sizes.length === 2 && typeof sizes[0] === 'number' && typeof sizes[1] === 'number') {
|
|
403
|
+
this.mainSizePct = Math.round(sizes[0]);
|
|
404
|
+
this.copilotSizePct = Math.round(sizes[1]);
|
|
405
|
+
this.saveLayoutPrefs();
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
loadLayoutPrefs() {
|
|
409
|
+
const saved = UserInfoEngine.Instance.GetSetting('mj.predictiveStudio.predictions.layout');
|
|
410
|
+
if (saved) {
|
|
411
|
+
try {
|
|
412
|
+
const parsed = JSON.parse(saved);
|
|
413
|
+
if (typeof parsed.copilotSizePct === 'number' && parsed.copilotSizePct >= 20 && parsed.copilotSizePct <= 60) {
|
|
414
|
+
this.copilotSizePct = parsed.copilotSizePct;
|
|
415
|
+
this.mainSizePct = 100 - this.copilotSizePct;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
catch { }
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
saveLayoutPrefs() {
|
|
422
|
+
const prefs = {
|
|
423
|
+
copilotSizePct: this.copilotSizePct,
|
|
424
|
+
mainSizePct: this.mainSizePct,
|
|
425
|
+
};
|
|
426
|
+
UserInfoEngine.Instance.SetSettingDebounced('mj.predictiveStudio.predictions.layout', JSON.stringify(prefs));
|
|
427
|
+
}
|
|
486
428
|
/** The ranked at-risk rows for the open prediction's latest run (empty until loaded / when no run yet). */
|
|
487
429
|
atRiskRows = [];
|
|
488
430
|
/** Plain-language "what's driving this" drivers for the open prediction (global feature importance). */
|
|
@@ -494,6 +436,7 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
494
436
|
/** "Send to a list" in-flight guard + last-result message (P1 #4). */
|
|
495
437
|
creatingList = false;
|
|
496
438
|
listResult = null;
|
|
439
|
+
latestRunId = null;
|
|
497
440
|
/** Capability cards for the first-run intro (what PS can do), shown when the catalog is empty. */
|
|
498
441
|
capabilityCards = PS_CAPABILITY_CARDS;
|
|
499
442
|
/** The business catalog cards, most-trustworthy first, derived from the engine's published models. */
|
|
@@ -508,7 +451,7 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
508
451
|
})));
|
|
509
452
|
}
|
|
510
453
|
dots(c) { return trustDots(c.trust.grade); }
|
|
511
|
-
evidence() { return trustEvidenceLine({ noun: '
|
|
454
|
+
evidence() { return trustEvidenceLine({ noun: 'records' }); }
|
|
512
455
|
/** Deep agent context for the Predictions door: catalog counts + names, and (in workspace) the selection + at-risk breakdown. */
|
|
513
456
|
extraAgentContext() {
|
|
514
457
|
const cards = this.cards;
|
|
@@ -629,6 +572,7 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
629
572
|
const user = provider.CurrentUser ?? undefined;
|
|
630
573
|
const runs = await this.engine.LoadRecentRunsForModel(c.modelId, provider, user, { maxRows: 1 });
|
|
631
574
|
const latest = runs[0];
|
|
575
|
+
this.latestRunId = latest?.ID ?? null;
|
|
632
576
|
if (latest?.ID) {
|
|
633
577
|
const res = await RunView.FromMetadataProvider(provider).RunView({ EntityName: 'MJ: Process Run Details', ExtraFilter: `ProcessRunID='${latest.ID}'`, MaxRows: 2137, ResultType: 'entity_object' }, user);
|
|
634
578
|
if (res.Success && this.selected?.modelId === c.modelId) {
|
|
@@ -657,7 +601,18 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
657
601
|
* model's target entity, so the list reads like a call sheet instead of a column of UUIDs. Resolves the
|
|
658
602
|
* top-risk rows (capped) to keep the lookup light; unresolved rows fall back to their id in the template.
|
|
659
603
|
*/
|
|
660
|
-
|
|
604
|
+
get selectedTargetEntityName() {
|
|
605
|
+
if (!this.selected)
|
|
606
|
+
return null;
|
|
607
|
+
const model = this.engine.PublishedModels.find((m) => UUIDsEqual(m.ID, this.selected?.modelId));
|
|
608
|
+
return this.targetEntityForModel(model)?.name ?? null;
|
|
609
|
+
}
|
|
610
|
+
get selectedProblemType() {
|
|
611
|
+
if (!this.selected)
|
|
612
|
+
return null;
|
|
613
|
+
const model = this.engine.PublishedModels.find((m) => UUIDsEqual(m.ID, this.selected?.modelId));
|
|
614
|
+
return model?.ProblemType ?? null;
|
|
615
|
+
}
|
|
661
616
|
targetEntityForModel(model) {
|
|
662
617
|
const pipeline = model ? this.engine.Pipelines.find((pp) => UUIDsEqual(pp.ID, model.PipelineID)) : undefined;
|
|
663
618
|
const id = pipeline?.TargetEntityID;
|
|
@@ -710,6 +665,7 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
710
665
|
backToCatalog() {
|
|
711
666
|
this.view = 'catalog';
|
|
712
667
|
this.selected = null;
|
|
668
|
+
this.latestRunId = null;
|
|
713
669
|
this.atRiskRows = [];
|
|
714
670
|
this.drivers = [];
|
|
715
671
|
this.atRiskError = null;
|
|
@@ -778,8 +734,8 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
778
734
|
const failed = members.length - added;
|
|
779
735
|
this.listResult =
|
|
780
736
|
failed === 0
|
|
781
|
-
? `Added ${added} at-risk
|
|
782
|
-
: `Added ${added} of ${members.length}
|
|
737
|
+
? `Added ${added} at-risk record${added === 1 ? '' : 's'} to “${list.Name}”.`
|
|
738
|
+
: `Added ${added} of ${members.length} records to “${list.Name}” — ${failed} failed to add (first error: ${firstFailure}).`;
|
|
783
739
|
if (failed > 0)
|
|
784
740
|
LogError(`PSPredictionsResource.sendToList: ${failed}/${members.length} adds failed. First: ${firstFailure}`);
|
|
785
741
|
}
|
|
@@ -806,7 +762,7 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
806
762
|
if (this.atRiskRows.length === 0)
|
|
807
763
|
return;
|
|
808
764
|
const csv = [
|
|
809
|
-
'
|
|
765
|
+
'Record,Likelihood %,Predicted',
|
|
810
766
|
...this.atRiskRows.map((r) => `${this.csvCell(r.label ?? r.recordId)},${r.riskPct},${this.csvCell(r.class ?? '')}`),
|
|
811
767
|
].join('\n');
|
|
812
768
|
const url = URL.createObjectURL(new Blob([csv], { type: 'text/csv' }));
|
|
@@ -896,22 +852,22 @@ let PSPredictionsResourceComponent = class PSPredictionsResourceComponent extend
|
|
|
896
852
|
}
|
|
897
853
|
}
|
|
898
854
|
static ɵfac = /*@__PURE__*/ (() => { let ɵPSPredictionsResourceComponent_BaseFactory; return function PSPredictionsResourceComponent_Factory(__ngFactoryType__) { return (ɵPSPredictionsResourceComponent_BaseFactory || (ɵPSPredictionsResourceComponent_BaseFactory = i0.ɵɵgetInheritedFactory(PSPredictionsResourceComponent)))(__ngFactoryType__ || PSPredictionsResourceComponent); }; })();
|
|
899
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PSPredictionsResourceComponent, selectors: [["mj-ps-predictions-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 6, consts: [["atriskList", ""], [3, "Title", "Subtitle"], ["actions", ""], ["mjButton", "", "variant", "primary", "size", "sm", "data-testid", "ps-new-prediction"], [3, "Flex", "Padding"], ["text", "Loading your predictions\u2026", "size", "medium"], ["data-testid", "ps-load-error", "role", "alert", 1, "ps-load-error"], [1, "ps-biz-host", 3, "chat-open"], ["mjButton", "", "variant", "primary", "size", "sm", "data-testid", "ps-new-prediction", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "ps-load-error-text"], [1, "ps-load-error-detail"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-rotate-right"], [1, "ps-biz-host"], [1, "
|
|
855
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PSPredictionsResourceComponent, selectors: [["mj-ps-predictions-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 6, consts: [["atriskList", ""], [3, "Title", "Subtitle"], ["actions", ""], ["mjButton", "", "variant", "primary", "size", "sm", "data-testid", "ps-new-prediction"], [3, "Flex", "Padding"], ["text", "Loading your predictions\u2026", "size", "medium"], ["data-testid", "ps-load-error", "role", "alert", 1, "ps-load-error"], [1, "ps-biz-host", 3, "chat-open"], ["mjButton", "", "variant", "primary", "size", "sm", "data-testid", "ps-new-prediction", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "ps-load-error-text"], [1, "ps-load-error-detail"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-rotate-right"], [1, "ps-biz-host"], ["direction", "horizontal", "unit", "percent", 1, "biz-copilot-splitter", 3, "dragEnd", "gutterSize"], [3, "size", "minSize"], [1, "ps-biz-main"], [3, "size", "minSize", "maxSize"], ["data-testid", "ps-predictions-empty", 1, "ps-biz-intro"], ["data-testid", "ps-predictions-grid", 1, "ps-biz-grid"], [1, "ps-biz-intro-head"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "ps-cap-grid"], [1, "ps-cap-card"], ["mjButton", "", "variant", "primary", "size", "md", "data-testid", "ps-intro-build", 3, "click"], [1, "ps-cap-title"], [1, "ps-cap-blurb"], ["data-testid", "ps-prediction-card", 1, "ps-biz-card", 3, "blocked"], ["data-testid", "ps-prediction-card", 1, "ps-biz-card"], [1, "ps-biz-card-top"], ["data-testid", "ps-trust-badge", 1, "ps-trust-badge"], [1, "fa-solid", "fa-shield-halved"], [1, "ps-biz-card-title"], [1, "ps-biz-card-line"], [1, "ps-biz-card-foot"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-open-prediction"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-improve-prediction"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-open-prediction", 3, "click"], [1, "fa-solid", "fa-arrow-right"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-improve-prediction", 3, "click"], [1, "ps-biz-crumb"], ["data-testid", "ps-crumb-home", 3, "click"], [1, "fa-solid", "fa-chevron-right"], ["data-testid", "ps-trust-banner", 1, "ps-trust-banner"], [1, "ps-trust-dots"], [1, "fa-solid", "fa-star", 3, "on"], [1, "ps-trust-text"], [1, "ps-trust-grade"], [1, "ps-trust-line"], [1, "ps-trust-explain", "muted"], [1, "ps-trust-evidence", "muted"], ["data-testid", "ps-workspace-body", 1, "ps-biz-workspace-body"], ["data-testid", "ps-action-bar", 1, "ps-action-bar"], [1, "ps-action-locked"], ["data-testid", "ps-list-result", 1, "ps-list-result", "muted"], [1, "fa-solid", "fa-star"], ["data-testid", "ps-drivers", 1, "ps-drivers"], ["data-testid", "ps-atrisk-list", "height", "580px", 3, "modelId", "runId", "title", "entityName", "problemType"], [1, "fa-solid", "fa-lightbulb"], [1, "ps-driver-chip"], ["mjButton", "", "variant", "primary", "size", "sm", "data-testid", "ps-act-review", 3, "click"], [1, "fa-solid", "fa-list-check"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-act-save", 3, "click"], [1, "fa-solid", "fa-floppy-disk"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-act-list", 3, "click", "disabled"], [1, "fa-solid"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-act-export", 3, "click", "disabled"], [1, "fa-solid", "fa-file-export"], [1, "fa-solid", "fa-lock"], ["data-testid", "ps-predictions-copilot", 1, "ps-biz-copilot"], [1, "ps-biz-copilot-head"], [1, "ps-biz-copilot-title"], [1, "fa-solid", "fa-robot"], ["aria-label", "Close", 1, "ps-biz-copilot-close", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "ps-biz-copilot-body"], [3, "Provider", "environmentId", "currentUser", "conversation", "conversationId", "isNewConversation", "suppressNewConversationEmptyState", "allowMentions", "overlayMode", "showExportButton", "showShareButton", "showArtifactIndicator", "showAgentPicker", "showAgentModePicker", "defaultAgentId", "pendingMessage", "applicationScope", "applicationId", "appContext"], [1, "ps-biz-copilot-empty"], [3, "conversationCreated", "pendingMessageConsumed", "Provider", "environmentId", "currentUser", "conversation", "conversationId", "isNewConversation", "suppressNewConversationEmptyState", "allowMentions", "overlayMode", "showExportButton", "showShareButton", "showArtifactIndicator", "showAgentPicker", "showAgentModePicker", "defaultAgentId", "pendingMessage", "applicationScope", "applicationId", "appContext"], ["text", "Connecting\u2026", "size", "small"]], template: function PSPredictionsResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
900
856
|
i0.ɵɵelementStart(0, "mj-page-header-interior", 1)(1, "div", 2);
|
|
901
857
|
i0.ɵɵconditionalCreate(2, PSPredictionsResourceComponent_Conditional_2_Template, 3, 0, "button", 3);
|
|
902
858
|
i0.ɵɵelementEnd()();
|
|
903
859
|
i0.ɵɵelementStart(3, "mj-page-body-interior", 4);
|
|
904
|
-
i0.ɵɵconditionalCreate(4, PSPredictionsResourceComponent_Conditional_4_Template, 1, 0, "mj-loading", 5)(5, PSPredictionsResourceComponent_Conditional_5_Template, 10, 2, "div", 6)(6, PSPredictionsResourceComponent_Conditional_6_Template,
|
|
860
|
+
i0.ɵɵconditionalCreate(4, PSPredictionsResourceComponent_Conditional_4_Template, 1, 0, "mj-loading", 5)(5, PSPredictionsResourceComponent_Conditional_5_Template, 10, 2, "div", 6)(6, PSPredictionsResourceComponent_Conditional_6_Template, 7, 8, "div", 7);
|
|
905
861
|
i0.ɵɵelementEnd();
|
|
906
862
|
} if (rf & 2) {
|
|
907
|
-
i0.ɵɵproperty("Title", ctx.view === "workspace" ? (ctx.selected == null ? null : ctx.selected.title) ?? "Prediction" : "Predictions")("Subtitle", ctx.view === "workspace" ? "Who to focus on, how much to trust it, and what to do next" : "Ready-to-use predictions for your
|
|
863
|
+
i0.ɵɵproperty("Title", ctx.view === "workspace" ? (ctx.selected == null ? null : ctx.selected.title) ?? "Prediction" : "Predictions")("Subtitle", ctx.view === "workspace" ? "Who to focus on, how much to trust it, and what to do next" : "Ready-to-use predictions for your records");
|
|
908
864
|
i0.ɵɵadvance(2);
|
|
909
865
|
i0.ɵɵconditional(ctx.view === "catalog" ? 2 : -1);
|
|
910
866
|
i0.ɵɵadvance();
|
|
911
867
|
i0.ɵɵproperty("Flex", true)("Padding", false);
|
|
912
868
|
i0.ɵɵadvance();
|
|
913
869
|
i0.ɵɵconditional(ctx.isLoading ? 4 : ctx.loadError ? 5 : 6);
|
|
914
|
-
} }, dependencies: [i1.MJButtonDirective, i1.MJPageHeaderInteriorComponent, i1.MJPageBodyInteriorComponent, i2.LoadingComponent, i3.ConversationChatAreaComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; }\n .ps-biz-host[_ngcontent-%COMP%] { display: flex; flex: 1; min-height: 0; overflow: hidden; }\n .ps-biz-main[_ngcontent-%COMP%] { flex: 1; min-width: 0; overflow-y: auto; padding: 16px 18px 28px; }\n .ps-biz-grid[_ngcontent-%COMP%] { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }\n .ps-biz-card[_ngcontent-%COMP%] { background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); padding: 18px; display: flex; flex-direction: column; gap: 10px; transition: border-color .12s, background .12s; }\n .ps-biz-card[_ngcontent-%COMP%]:hover { border-color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface)); }\n .ps-biz-card.blocked[_ngcontent-%COMP%] { opacity: .85; background: var(--mj-bg-surface-card); }\n .ps-biz-card-title[_ngcontent-%COMP%] { font-size: var(--mj-text-lg); font-weight: 600; color: var(--mj-text-primary); margin: 0; }\n .ps-biz-card-line[_ngcontent-%COMP%] { color: var(--mj-text-secondary); font-size: var(--mj-text-sm); margin: 0; flex: 1; }\n .ps-biz-card-foot[_ngcontent-%COMP%] { display: flex; justify-content: flex-end; }\n .ps-trust-badge[_ngcontent-%COMP%] { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: var(--mj-radius-full); font-size: var(--mj-text-xs); font-weight: 600; }\n .trust-good[_ngcontent-%COMP%], .trust-excellent[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n .trust-fair[_ngcontent-%COMP%] { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n .trust-poor[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n .ps-biz-intro[_ngcontent-%COMP%] { max-width: 820px; margin: 32px auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; }\n .ps-biz-intro-head[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 40px; color: var(--mj-brand-primary); }\n .ps-biz-intro-head[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] { margin: 12px 0 6px; color: var(--mj-text-primary); font-size: var(--mj-text-xl); }\n .ps-biz-intro-head[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { margin: 0 auto; max-width: 620px; color: var(--mj-text-secondary); font-size: var(--mj-text-sm); }\n .ps-cap-grid[_ngcontent-%COMP%] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; width: 100%; }\n .ps-cap-card[_ngcontent-%COMP%] { background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); padding: 18px 16px; text-align: left; display: flex; flex-direction: column; gap: 6px; }\n .ps-cap-card[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 20px; color: var(--mj-brand-primary); }\n .ps-cap-title[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary); font-size: var(--mj-text-sm); }\n .ps-cap-blurb[_ngcontent-%COMP%] { color: var(--mj-text-secondary); font-size: var(--mj-text-xs); line-height: 1.45; }\n .ps-biz-crumb[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; font-size: var(--mj-text-sm); color: var(--mj-text-muted); margin-bottom: 14px; }\n .ps-biz-crumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%] { color: var(--mj-text-link); cursor: pointer; }\n .ps-biz-crumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover { text-decoration: underline; }\n .ps-biz-crumb[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n .ps-trust-banner[_ngcontent-%COMP%] { display: flex; gap: 16px; align-items: center; padding: 18px 20px; border-radius: var(--mj-radius-md); border: 1px solid; margin-bottom: 18px; }\n .ps-trust-banner.trust-good[_ngcontent-%COMP%], .ps-trust-banner.trust-excellent[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); border-color: var(--mj-status-success-border); }\n .ps-trust-banner.trust-fair[_ngcontent-%COMP%] { background: var(--mj-status-warning-bg); border-color: var(--mj-status-warning-border); }\n .ps-trust-banner.trust-poor[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); border-color: var(--mj-status-error-border); }\n .ps-trust-dots[_ngcontent-%COMP%] { display: flex; gap: 3px; font-size: 18px; }\n .ps-trust-dots[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-border-strong); } .ps-trust-dots[_ngcontent-%COMP%] i.on[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .ps-trust-banner.trust-good[_ngcontent-%COMP%] .ps-trust-dots[_ngcontent-%COMP%] i.on[_ngcontent-%COMP%], .ps-trust-banner.trust-excellent[_ngcontent-%COMP%] .ps-trust-dots[_ngcontent-%COMP%] i.on[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .ps-trust-grade[_ngcontent-%COMP%] { font-weight: 700; font-size: var(--mj-text-lg); color: var(--mj-text-primary); }\n .ps-trust-line[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary); margin-top: 2px; }\n .ps-trust-explain[_ngcontent-%COMP%], .ps-trust-evidence[_ngcontent-%COMP%] { font-size: var(--mj-text-sm); margin-top: 4px; }\n .ps-action-bar[_ngcontent-%COMP%] { display: flex; gap: 10px; flex-wrap: wrap; padding: 14px 16px; border-radius: var(--mj-radius-md); background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-default); }\n .ps-action-bar.locked[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); border-color: var(--mj-status-error-border); }\n .ps-action-locked[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; color: var(--mj-status-error-text); font-weight: 600; font-size: var(--mj-text-sm); }\n .ps-drivers[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 0 0 16px; color: var(--mj-text-secondary); font-size: var(--mj-text-sm); }\n .ps-drivers[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .ps-driver-chip[_ngcontent-%COMP%] { background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-full); padding: 2px 10px; font-weight: 600; color: var(--mj-text-primary); }\n .ps-atrisk[_ngcontent-%COMP%] { border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); overflow: hidden; margin-bottom: 16px; background: var(--mj-bg-surface); }\n .ps-atrisk-head[_ngcontent-%COMP%] { display: grid; grid-template-columns: 1fr 140px 52px; gap: 12px; padding: 8px 14px; background: var(--mj-bg-surface-card); border-bottom: 1px solid var(--mj-border-default); font-size: var(--mj-text-xs); font-weight: 600; color: var(--mj-text-muted); text-transform: uppercase; letter-spacing: .03em; }\n .ps-atrisk-rcol[_ngcontent-%COMP%] { grid-column: 2 / span 2; text-align: right; }\n .ps-atrisk-row[_ngcontent-%COMP%] { display: grid; grid-template-columns: 1fr 140px 52px; gap: 12px; align-items: center; padding: 9px 14px; border-bottom: 1px solid var(--mj-border-subtle); }\n .ps-atrisk-row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .ps-atrisk-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); }\n .ps-atrisk-idcell[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n .ps-atrisk-id[_ngcontent-%COMP%] { font-size: var(--mj-text-xs); color: var(--mj-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .ps-atrisk-why[_ngcontent-%COMP%] { display: flex; gap: 6px; flex-wrap: wrap; }\n .ps-why-chip[_ngcontent-%COMP%] { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 600; padding: 1px 7px; border-radius: var(--mj-radius-full); max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .ps-why-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 8px; }\n .ps-why-chip.up[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n .ps-why-chip.down[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n .ps-atrisk-bar[_ngcontent-%COMP%] { height: 8px; border-radius: var(--mj-radius-full); background: var(--mj-bg-surface-sunken); overflow: hidden; }\n .ps-atrisk-fill[_ngcontent-%COMP%] { display: block; height: 100%; border-radius: var(--mj-radius-full); }\n .ps-atrisk-pct[_ngcontent-%COMP%] { text-align: right; font-weight: 700; font-size: var(--mj-text-sm); font-variant-numeric: tabular-nums; }\n .ps-atrisk-fill.risk-high[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .ps-atrisk-fill.risk-medium[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .ps-atrisk-fill.risk-low[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .ps-atrisk-pct.risk-high[_ngcontent-%COMP%] { color: var(--mj-status-error-text); }\n .ps-atrisk-pct.risk-medium[_ngcontent-%COMP%] { color: var(--mj-status-warning-text); }\n .ps-atrisk-pct.risk-low[_ngcontent-%COMP%] { color: var(--mj-status-success-text); }\n .ps-atrisk-foot[_ngcontent-%COMP%] { padding: 8px 14px; font-size: var(--mj-text-xs); }\n .ps-atrisk-empty[_ngcontent-%COMP%] { padding: 24px; text-align: center; border: 1px dashed var(--mj-border-default); border-radius: var(--mj-radius-md); margin-bottom: 16px; }\n .ps-atrisk-error[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border: 1px solid var(--mj-status-error-border); background: var(--mj-status-error-bg); border-radius: var(--mj-radius-md); margin-bottom: 16px; color: var(--mj-status-error-text); font-size: var(--mj-text-sm); }\n .ps-atrisk-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .ps-atrisk-error[_ngcontent-%COMP%] .ps-atrisk-error-msg[_ngcontent-%COMP%] { flex: 1; min-width: 0; word-break: break-word; }\n .mono[_ngcontent-%COMP%] { font-family: var(--mj-font-family-mono); }\n \n\n .ps-load-error[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 14px; max-width: 620px; margin: 32px auto; padding: 18px 20px; border: 1px solid var(--mj-status-error-border); background: var(--mj-status-error-bg); border-radius: var(--mj-radius-lg); }\n .ps-load-error[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { font-size: 24px; color: var(--mj-status-error); }\n .ps-load-error-text[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }\n .ps-load-error-text[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] { color: var(--mj-text-primary); }\n .ps-load-error-detail[_ngcontent-%COMP%] { color: var(--mj-text-secondary); font-size: var(--mj-text-sm); word-break: break-word; }\n .ps-biz-copilot[_ngcontent-%COMP%] { width: 560px; min-width: 380px; max-width: 60vw; flex: none; border-left: 1px solid var(--mj-border-default); background: var(--mj-bg-surface); display: flex; flex-direction: column; min-height: 0; }\n .ps-biz-copilot-head[_ngcontent-%COMP%] { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--mj-border-default); }\n .ps-biz-copilot-title[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--mj-text-primary); }\n .ps-biz-copilot-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .ps-biz-copilot-close[_ngcontent-%COMP%] { background: transparent; border: none; cursor: pointer; padding: 6px 8px; border-radius: 6px; color: var(--mj-text-muted); }\n .ps-biz-copilot-close[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-secondary); }\n .ps-biz-copilot-body[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }\n .ps-biz-copilot-body[_ngcontent-%COMP%] mj-conversation-chat-area[_ngcontent-%COMP%] { flex: 1; min-height: 0; display: block; }\n .ps-biz-copilot-empty[_ngcontent-%COMP%] { display: flex; align-items: center; justify-content: center; flex: 1; }\n @media (max-width: 1100px) { .ps-biz-host.chat-open[_ngcontent-%COMP%] .ps-biz-main[_ngcontent-%COMP%] { display: none; } .ps-biz-copilot[_ngcontent-%COMP%] { width: 100%; max-width: none; border-left: none; } }"], changeDetection: 0 });
|
|
870
|
+
} }, dependencies: [i1.MJButtonDirective, i1.MJPageHeaderInteriorComponent, i1.MJPageBodyInteriorComponent, i2.LoadingComponent, i3.ConversationChatAreaComponent, i4.SplitComponent, i4.SplitAreaComponent, i5.PSPredictionsGridComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; }\n .ps-biz-host[_ngcontent-%COMP%] { display: flex; flex: 1; min-height: 0; overflow: hidden; }\n .biz-copilot-splitter[_ngcontent-%COMP%] { flex: 1; width: 100%; height: 100%; min-height: 0; min-width: 0; }\n .biz-copilot-splitter[_ngcontent-%COMP%] .as-split-gutter[_ngcontent-%COMP%] { background: transparent; transition: background-color 0.15s ease; position: relative; }\n .biz-copilot-splitter[_ngcontent-%COMP%] .as-split-gutter[_ngcontent-%COMP%]:hover { background-color: var(--mj-brand-primary, #6366f1); }\n .biz-copilot-splitter[_ngcontent-%COMP%] .as-split-gutter[_ngcontent-%COMP%]::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 2px; height: 24px; border-radius: 1px; background: var(--mj-border-strong, #cbd5e1); }\n .ps-biz-main[_ngcontent-%COMP%] { width: 100%; height: 100%; flex: 1; min-width: 0; overflow-y: auto; padding: 16px 18px 28px; }\n .ps-biz-grid[_ngcontent-%COMP%] { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }\n .ps-biz-card[_ngcontent-%COMP%] { background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); padding: 18px; display: flex; flex-direction: column; gap: 10px; transition: border-color .12s, background .12s; }\n .ps-biz-card[_ngcontent-%COMP%]:hover { border-color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface)); }\n .ps-biz-card.blocked[_ngcontent-%COMP%] { opacity: .85; background: var(--mj-bg-surface-card); }\n .ps-biz-card-title[_ngcontent-%COMP%] { font-size: var(--mj-text-lg); font-weight: 600; color: var(--mj-text-primary); margin: 0; }\n .ps-biz-card-line[_ngcontent-%COMP%] { color: var(--mj-text-secondary); font-size: var(--mj-text-sm); margin: 0; flex: 1; }\n .ps-biz-card-foot[_ngcontent-%COMP%] { display: flex; justify-content: flex-end; }\n .ps-trust-badge[_ngcontent-%COMP%] { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: var(--mj-radius-full); font-size: var(--mj-text-xs); font-weight: 600; }\n .trust-good[_ngcontent-%COMP%], .trust-excellent[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n .trust-fair[_ngcontent-%COMP%] { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n .trust-poor[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n .ps-biz-intro[_ngcontent-%COMP%] { max-width: 820px; margin: 32px auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; }\n .ps-biz-intro-head[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 40px; color: var(--mj-brand-primary); }\n .ps-biz-intro-head[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] { margin: 12px 0 6px; color: var(--mj-text-primary); font-size: var(--mj-text-xl); }\n .ps-biz-intro-head[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { margin: 0 auto; max-width: 620px; color: var(--mj-text-secondary); font-size: var(--mj-text-sm); }\n .ps-cap-grid[_ngcontent-%COMP%] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; width: 100%; }\n .ps-cap-card[_ngcontent-%COMP%] { background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); padding: 18px 16px; text-align: left; display: flex; flex-direction: column; gap: 6px; }\n .ps-cap-card[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 20px; color: var(--mj-brand-primary); }\n .ps-cap-title[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary); font-size: var(--mj-text-sm); }\n .ps-cap-blurb[_ngcontent-%COMP%] { color: var(--mj-text-secondary); font-size: var(--mj-text-xs); line-height: 1.45; }\n .ps-biz-crumb[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; font-size: var(--mj-text-sm); color: var(--mj-text-muted); margin-bottom: 14px; }\n .ps-biz-crumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%] { color: var(--mj-text-link); cursor: pointer; }\n .ps-biz-crumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover { text-decoration: underline; }\n .ps-biz-crumb[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n .ps-trust-banner[_ngcontent-%COMP%] { display: flex; gap: 16px; align-items: center; padding: 18px 20px; border-radius: var(--mj-radius-md); border: 1px solid; margin-bottom: 18px; }\n .ps-trust-banner.trust-good[_ngcontent-%COMP%], .ps-trust-banner.trust-excellent[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); border-color: var(--mj-status-success-border); }\n .ps-trust-banner.trust-fair[_ngcontent-%COMP%] { background: var(--mj-status-warning-bg); border-color: var(--mj-status-warning-border); }\n .ps-trust-banner.trust-poor[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); border-color: var(--mj-status-error-border); }\n .ps-trust-dots[_ngcontent-%COMP%] { display: flex; gap: 3px; font-size: 18px; }\n .ps-trust-dots[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-border-strong); } .ps-trust-dots[_ngcontent-%COMP%] i.on[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .ps-trust-banner.trust-good[_ngcontent-%COMP%] .ps-trust-dots[_ngcontent-%COMP%] i.on[_ngcontent-%COMP%], .ps-trust-banner.trust-excellent[_ngcontent-%COMP%] .ps-trust-dots[_ngcontent-%COMP%] i.on[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .ps-trust-grade[_ngcontent-%COMP%] { font-weight: 700; font-size: var(--mj-text-lg); color: var(--mj-text-primary); }\n .ps-trust-line[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary); margin-top: 2px; }\n .ps-trust-explain[_ngcontent-%COMP%], .ps-trust-evidence[_ngcontent-%COMP%] { font-size: var(--mj-text-sm); margin-top: 4px; }\n .ps-action-bar[_ngcontent-%COMP%] { display: flex; gap: 10px; flex-wrap: wrap; padding: 14px 16px; border-radius: var(--mj-radius-md); background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-default); }\n .ps-action-bar.locked[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); border-color: var(--mj-status-error-border); }\n .ps-action-locked[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; color: var(--mj-status-error-text); font-weight: 600; font-size: var(--mj-text-sm); }\n .ps-drivers[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 0 0 16px; color: var(--mj-text-secondary); font-size: var(--mj-text-sm); }\n .ps-drivers[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .ps-driver-chip[_ngcontent-%COMP%] { background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-full); padding: 2px 10px; font-weight: 600; color: var(--mj-text-primary); }\n .ps-atrisk[_ngcontent-%COMP%] { border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); overflow: hidden; margin-bottom: 16px; background: var(--mj-bg-surface); }\n .ps-atrisk-head[_ngcontent-%COMP%] { display: grid; grid-template-columns: 1fr 140px 52px; gap: 12px; padding: 8px 14px; background: var(--mj-bg-surface-card); border-bottom: 1px solid var(--mj-border-default); font-size: var(--mj-text-xs); font-weight: 600; color: var(--mj-text-muted); text-transform: uppercase; letter-spacing: .03em; }\n .ps-atrisk-rcol[_ngcontent-%COMP%] { grid-column: 2 / span 2; text-align: right; }\n .ps-atrisk-row[_ngcontent-%COMP%] { display: grid; grid-template-columns: 1fr 140px 52px; gap: 12px; align-items: center; padding: 9px 14px; border-bottom: 1px solid var(--mj-border-subtle); }\n .ps-atrisk-row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .ps-atrisk-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); }\n .ps-atrisk-idcell[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n .ps-atrisk-id[_ngcontent-%COMP%] { font-size: var(--mj-text-xs); color: var(--mj-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .ps-atrisk-why[_ngcontent-%COMP%] { display: flex; gap: 6px; flex-wrap: wrap; }\n .ps-why-chip[_ngcontent-%COMP%] { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 600; padding: 1px 7px; border-radius: var(--mj-radius-full); max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .ps-why-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 8px; }\n .ps-why-chip.up[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n .ps-why-chip.down[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n .ps-atrisk-bar[_ngcontent-%COMP%] { height: 8px; border-radius: var(--mj-radius-full); background: var(--mj-bg-surface-sunken); overflow: hidden; }\n .ps-atrisk-fill[_ngcontent-%COMP%] { display: block; height: 100%; border-radius: var(--mj-radius-full); }\n .ps-atrisk-pct[_ngcontent-%COMP%] { text-align: right; font-weight: 700; font-size: var(--mj-text-sm); font-variant-numeric: tabular-nums; }\n .ps-atrisk-fill.risk-high[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .ps-atrisk-fill.risk-medium[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .ps-atrisk-fill.risk-low[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .ps-atrisk-pct.risk-high[_ngcontent-%COMP%] { color: var(--mj-status-error-text); }\n .ps-atrisk-pct.risk-medium[_ngcontent-%COMP%] { color: var(--mj-status-warning-text); }\n .ps-atrisk-pct.risk-low[_ngcontent-%COMP%] { color: var(--mj-status-success-text); }\n .ps-atrisk-foot[_ngcontent-%COMP%] { padding: 8px 14px; font-size: var(--mj-text-xs); }\n .ps-atrisk-empty[_ngcontent-%COMP%] { padding: 24px; text-align: center; border: 1px dashed var(--mj-border-default); border-radius: var(--mj-radius-md); margin-bottom: 16px; }\n .ps-atrisk-error[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border: 1px solid var(--mj-status-error-border); background: var(--mj-status-error-bg); border-radius: var(--mj-radius-md); margin-bottom: 16px; color: var(--mj-status-error-text); font-size: var(--mj-text-sm); }\n .ps-atrisk-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .ps-atrisk-error[_ngcontent-%COMP%] .ps-atrisk-error-msg[_ngcontent-%COMP%] { flex: 1; min-width: 0; word-break: break-word; }\n .mono[_ngcontent-%COMP%] { font-family: var(--mj-font-family-mono); }\n \n\n .ps-load-error[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 14px; max-width: 620px; margin: 32px auto; padding: 18px 20px; border: 1px solid var(--mj-status-error-border); background: var(--mj-status-error-bg); border-radius: var(--mj-radius-lg); }\n .ps-load-error[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { font-size: 24px; color: var(--mj-status-error); }\n .ps-load-error-text[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }\n .ps-load-error-text[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] { color: var(--mj-text-primary); }\n .ps-load-error-detail[_ngcontent-%COMP%] { color: var(--mj-text-secondary); font-size: var(--mj-text-sm); word-break: break-word; }\n .ps-biz-copilot[_ngcontent-%COMP%] { width: 100%; height: 100%; max-width: none; flex: 1; border-left: 1px solid var(--mj-border-default); background: var(--mj-bg-surface); display: flex; flex-direction: column; min-height: 0; }\n .ps-biz-copilot-head[_ngcontent-%COMP%] { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--mj-border-default); }\n .ps-biz-copilot-title[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--mj-text-primary); }\n .ps-biz-copilot-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .ps-biz-copilot-close[_ngcontent-%COMP%] { background: transparent; border: none; cursor: pointer; padding: 6px 8px; border-radius: 6px; color: var(--mj-text-muted); }\n .ps-biz-copilot-close[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-secondary); }\n .ps-biz-copilot-body[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }\n .ps-biz-copilot-body[_ngcontent-%COMP%] mj-conversation-chat-area[_ngcontent-%COMP%] { flex: 1; min-height: 0; display: block; }\n .ps-biz-copilot-empty[_ngcontent-%COMP%] { display: flex; align-items: center; justify-content: center; flex: 1; }\n @media (max-width: 1100px) { .ps-biz-host.chat-open[_ngcontent-%COMP%] .ps-biz-main[_ngcontent-%COMP%] { display: none; } .ps-biz-copilot[_ngcontent-%COMP%] { width: 100%; max-width: none; border-left: none; } }"], changeDetection: 0 });
|
|
915
871
|
};
|
|
916
872
|
PSPredictionsResourceComponent = __decorate([
|
|
917
873
|
RegisterClass(BaseResourceComponent, 'PredictiveStudioPredictionsResource')
|
|
@@ -922,7 +878,7 @@ export { PSPredictionsResourceComponent };
|
|
|
922
878
|
args: [{ standalone: false, selector: 'mj-ps-predictions-resource', template: `
|
|
923
879
|
<mj-page-header-interior
|
|
924
880
|
[Title]="view === 'workspace' ? (selected?.title ?? 'Prediction') : 'Predictions'"
|
|
925
|
-
[Subtitle]="view === 'workspace' ? 'Who to focus on, how much to trust it, and what to do next' : 'Ready-to-use predictions for your
|
|
881
|
+
[Subtitle]="view === 'workspace' ? 'Who to focus on, how much to trust it, and what to do next' : 'Ready-to-use predictions for your records'">
|
|
926
882
|
<div actions>
|
|
927
883
|
@if (view === 'catalog') {
|
|
928
884
|
<button mjButton variant="primary" size="sm" data-testid="ps-new-prediction" (click)="newPrediction()">
|
|
@@ -945,157 +901,139 @@ export { PSPredictionsResourceComponent };
|
|
|
945
901
|
</div>
|
|
946
902
|
} @else {
|
|
947
903
|
<div class="ps-biz-host" [class.chat-open]="chatOpen">
|
|
948
|
-
<
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
<
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
@for (cap of capabilityCards; track cap.title) {
|
|
960
|
-
<div class="ps-cap-card">
|
|
961
|
-
<i [class]="cap.icon"></i>
|
|
962
|
-
<div class="ps-cap-title">{{ cap.title }}</div>
|
|
963
|
-
<div class="ps-cap-blurb">{{ cap.blurb }}</div>
|
|
904
|
+
<as-split direction="horizontal" class="biz-copilot-splitter" unit="percent" [gutterSize]="chatOpen ? 6 : 0" (dragEnd)="onCopilotSplitDragEnd($event.sizes)">
|
|
905
|
+
<as-split-area [size]="chatOpen ? mainSizePct : 100" [minSize]="30">
|
|
906
|
+
<div class="ps-biz-main">
|
|
907
|
+
<!-- ───────── CATALOG ───────── -->
|
|
908
|
+
@if (view === 'catalog') {
|
|
909
|
+
@if (cards.length === 0) {
|
|
910
|
+
<div class="ps-biz-intro" data-testid="ps-predictions-empty">
|
|
911
|
+
<div class="ps-biz-intro-head">
|
|
912
|
+
<i class="fa-solid fa-wand-magic-sparkles"></i>
|
|
913
|
+
<h2>Predict what's next for your data</h2>
|
|
914
|
+
<p>Predictive Studio turns your records into plain-language predictions — describe what you want to know, and the agent builds and trains a model with you. Here's what you can do:</p>
|
|
964
915
|
</div>
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
<div class="ps-biz-card" [class.blocked]="!c.canOpen" data-testid="ps-prediction-card">
|
|
973
|
-
<div class="ps-biz-card-top">
|
|
974
|
-
<span class="ps-trust-badge" [class]="'trust-' + c.trust.grade.toLowerCase()" data-testid="ps-trust-badge">
|
|
975
|
-
<i class="fa-solid fa-shield-halved"></i> {{ c.canOpen ? c.trust.grade : 'Not ready' }}
|
|
976
|
-
</span>
|
|
977
|
-
</div>
|
|
978
|
-
<h3 class="ps-biz-card-title">{{ c.title }}</h3>
|
|
979
|
-
<p class="ps-biz-card-line">{{ c.canOpen ? c.trust.oneLiner : c.blockedReason }}</p>
|
|
980
|
-
<div class="ps-biz-card-foot">
|
|
981
|
-
@if (c.canOpen) {
|
|
982
|
-
<button mjButton variant="secondary" size="sm" data-testid="ps-open-prediction" (click)="open(c)">Open <i class="fa-solid fa-arrow-right"></i></button>
|
|
983
|
-
} @else {
|
|
984
|
-
<button mjButton variant="secondary" size="sm" data-testid="ps-improve-prediction" (click)="improvePrediction(c)"><i class="fa-solid fa-wand-magic-sparkles"></i> Improve this</button>
|
|
916
|
+
<div class="ps-cap-grid">
|
|
917
|
+
@for (cap of capabilityCards; track cap.title) {
|
|
918
|
+
<div class="ps-cap-card">
|
|
919
|
+
<i [class]="cap.icon"></i>
|
|
920
|
+
<div class="ps-cap-title">{{ cap.title }}</div>
|
|
921
|
+
<div class="ps-cap-blurb">{{ cap.blurb }}</div>
|
|
922
|
+
</div>
|
|
985
923
|
}
|
|
986
924
|
</div>
|
|
925
|
+
<button mjButton variant="primary" size="md" data-testid="ps-intro-build" (click)="newPrediction()"><i class="fa-solid fa-plus"></i> Build your first prediction</button>
|
|
926
|
+
</div>
|
|
927
|
+
} @else {
|
|
928
|
+
<div class="ps-biz-grid" data-testid="ps-predictions-grid">
|
|
929
|
+
@for (c of cards; track c.modelId) {
|
|
930
|
+
<div class="ps-biz-card" [class.blocked]="!c.canOpen" data-testid="ps-prediction-card">
|
|
931
|
+
<div class="ps-biz-card-top">
|
|
932
|
+
<span class="ps-trust-badge" [class]="'trust-' + c.trust.grade.toLowerCase()" data-testid="ps-trust-badge">
|
|
933
|
+
<i class="fa-solid fa-shield-halved"></i> {{ c.canOpen ? c.trust.grade : 'Not ready' }}
|
|
934
|
+
</span>
|
|
935
|
+
</div>
|
|
936
|
+
<h3 class="ps-biz-card-title">{{ c.title }}</h3>
|
|
937
|
+
<p class="ps-biz-card-line">{{ c.canOpen ? c.trust.oneLiner : c.blockedReason }}</p>
|
|
938
|
+
<div class="ps-biz-card-foot">
|
|
939
|
+
@if (c.canOpen) {
|
|
940
|
+
<button mjButton variant="secondary" size="sm" data-testid="ps-open-prediction" (click)="open(c)">Open <i class="fa-solid fa-arrow-right"></i></button>
|
|
941
|
+
} @else {
|
|
942
|
+
<button mjButton variant="secondary" size="sm" data-testid="ps-improve-prediction" (click)="improvePrediction(c)"><i class="fa-solid fa-wand-magic-sparkles"></i> Improve this</button>
|
|
943
|
+
}
|
|
944
|
+
</div>
|
|
945
|
+
</div>
|
|
946
|
+
}
|
|
987
947
|
</div>
|
|
988
948
|
}
|
|
989
|
-
|
|
990
|
-
}
|
|
991
|
-
}
|
|
992
|
-
|
|
993
|
-
<!-- ───────── WORKSPACE (trust gate) ───────── -->
|
|
994
|
-
@if (view === 'workspace' && selected) {
|
|
995
|
-
<nav class="ps-biz-crumb">
|
|
996
|
-
<a (click)="backToCatalog()" data-testid="ps-crumb-home">Predictions</a>
|
|
997
|
-
<i class="fa-solid fa-chevron-right"></i> <span>{{ selected.title }}</span>
|
|
998
|
-
</nav>
|
|
949
|
+
}
|
|
999
950
|
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
<div class="ps-trust-line">{{ selected.trust.oneLiner }}</div>
|
|
1007
|
-
<div class="ps-trust-explain muted">{{ selected.trust.explanation }}</div>
|
|
1008
|
-
<div class="ps-trust-evidence muted">{{ evidence() }}</div>
|
|
1009
|
-
</div>
|
|
1010
|
-
</div>
|
|
951
|
+
<!-- ───────── WORKSPACE (trust gate) ───────── -->
|
|
952
|
+
@if (view === 'workspace' && selected) {
|
|
953
|
+
<nav class="ps-biz-crumb">
|
|
954
|
+
<a (click)="backToCatalog()" data-testid="ps-crumb-home">Predictions</a>
|
|
955
|
+
<i class="fa-solid fa-chevron-right"></i> <span>{{ selected.title }}</span>
|
|
956
|
+
</nav>
|
|
1011
957
|
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
<div class="ps-drivers" data-testid="ps-drivers">
|
|
1016
|
-
<i class="fa-solid fa-lightbulb"></i> <strong>What's driving this:</strong>
|
|
1017
|
-
@for (d of drivers; track d) { <span class="ps-driver-chip">{{ d }}</span> }
|
|
958
|
+
<div class="ps-trust-banner" [class]="'trust-' + selected.trust.grade.toLowerCase()" data-testid="ps-trust-banner">
|
|
959
|
+
<div class="ps-trust-dots">
|
|
960
|
+
@for (d of [1,2,3,4,5]; track d) { <i class="fa-solid fa-star" [class.on]="d <= dots(selected)"></i> }
|
|
1018
961
|
</div>
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
<i class="fa-solid fa-triangle-exclamation"></i>
|
|
1025
|
-
<span class="ps-atrisk-error-msg">Couldn't load who's at risk: {{ atRiskError }}</span>
|
|
1026
|
-
<button mjButton variant="secondary" size="sm" (click)="retryAtRisk()"><i class="fa-solid fa-rotate-right"></i> Try again</button>
|
|
962
|
+
<div class="ps-trust-text">
|
|
963
|
+
<div class="ps-trust-grade">{{ selected.canOpen ? 'You can rely on this — ' + selected.trust.grade : 'Not reliable yet' }}</div>
|
|
964
|
+
<div class="ps-trust-line">{{ selected.trust.oneLiner }}</div>
|
|
965
|
+
<div class="ps-trust-explain muted">{{ selected.trust.explanation }}</div>
|
|
966
|
+
<div class="ps-trust-evidence muted">{{ evidence() }}</div>
|
|
1027
967
|
</div>
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
<span class="ps-atrisk-why" data-testid="ps-atrisk-why">
|
|
1037
|
-
@for (d of r.drivers.slice(0, 2); track d.label) {
|
|
1038
|
-
<span class="ps-why-chip" [class.up]="d.up" [class.down]="!d.up" [title]="(d.up ? 'Increases risk: ' : 'Lowers risk: ') + d.label">
|
|
1039
|
-
<i class="fa-solid" [class.fa-arrow-up]="d.up" [class.fa-arrow-down]="!d.up"></i> {{ d.label }}
|
|
1040
|
-
</span>
|
|
1041
|
-
}
|
|
1042
|
-
</span>
|
|
1043
|
-
}
|
|
1044
|
-
</div>
|
|
1045
|
-
<span class="ps-atrisk-bar"><span class="ps-atrisk-fill" [class]="'risk-' + r.band" [style.width.%]="r.riskPct"></span></span>
|
|
1046
|
-
<span class="ps-atrisk-pct" [class]="'risk-' + r.band">{{ r.riskPct }}%</span>
|
|
968
|
+
</div>
|
|
969
|
+
|
|
970
|
+
<div class="ps-biz-workspace-body" data-testid="ps-workspace-body">
|
|
971
|
+
@if (selected.canOpen) {
|
|
972
|
+
@if (drivers.length > 0) {
|
|
973
|
+
<div class="ps-drivers" data-testid="ps-drivers">
|
|
974
|
+
<i class="fa-solid fa-lightbulb"></i> <strong>What's driving this:</strong>
|
|
975
|
+
@for (d of drivers; track d) { <span class="ps-driver-chip">{{ d }}</span> }
|
|
1047
976
|
</div>
|
|
1048
977
|
}
|
|
1049
|
-
<
|
|
978
|
+
<ps-predictions-grid
|
|
979
|
+
data-testid="ps-atrisk-list"
|
|
980
|
+
#atriskList
|
|
981
|
+
[modelId]="selected.modelId"
|
|
982
|
+
[runId]="latestRunId"
|
|
983
|
+
[title]="selected.title"
|
|
984
|
+
[entityName]="selectedTargetEntityName"
|
|
985
|
+
[problemType]="selectedProblemType"
|
|
986
|
+
height="580px">
|
|
987
|
+
</ps-predictions-grid>
|
|
988
|
+
}
|
|
989
|
+
<div class="ps-action-bar" [class.locked]="!selected.canOpen" data-testid="ps-action-bar">
|
|
990
|
+
@if (selected.canOpen) {
|
|
991
|
+
<button mjButton variant="primary" size="sm" data-testid="ps-act-review" (click)="scrollToList()"><i class="fa-solid fa-list-check"></i> Review the call list</button>
|
|
992
|
+
<button mjButton variant="secondary" size="sm" data-testid="ps-act-save" (click)="askAgentTo('Save these prediction scores onto the records so my team can use them.')"><i class="fa-solid fa-floppy-disk"></i> Save scores to records</button>
|
|
993
|
+
<button mjButton variant="secondary" size="sm" data-testid="ps-act-list" [disabled]="creatingList || atRiskRows.length === 0" (click)="sendToList()"><i class="fa-solid" [class.fa-paper-plane]="!creatingList" [class.fa-spinner]="creatingList" [class.fa-spin]="creatingList"></i> Send to a list</button>
|
|
994
|
+
<button mjButton variant="secondary" size="sm" data-testid="ps-act-export" [disabled]="atRiskRows.length === 0" (click)="exportList()"><i class="fa-solid fa-file-export"></i> Share / export</button>
|
|
995
|
+
} @else {
|
|
996
|
+
<div class="ps-action-locked"><i class="fa-solid fa-lock"></i> {{ selected.trust.gateReason }}</div>
|
|
997
|
+
}
|
|
1050
998
|
</div>
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
}
|
|
999
|
+
@if (listResult) { <div class="ps-list-result muted" data-testid="ps-list-result">{{ listResult }}</div> }
|
|
1000
|
+
</div>
|
|
1054
1001
|
}
|
|
1055
|
-
<div class="ps-action-bar" [class.locked]="!selected.canOpen" data-testid="ps-action-bar">
|
|
1056
|
-
@if (selected.canOpen) {
|
|
1057
|
-
<button mjButton variant="primary" size="sm" data-testid="ps-act-review" (click)="scrollToList()"><i class="fa-solid fa-list-check"></i> Review the call list</button>
|
|
1058
|
-
<button mjButton variant="secondary" size="sm" data-testid="ps-act-save" (click)="askAgentTo('Save these renewal-risk scores onto the member records so my team can use them.')"><i class="fa-solid fa-floppy-disk"></i> Save scores to records</button>
|
|
1059
|
-
<button mjButton variant="secondary" size="sm" data-testid="ps-act-list" [disabled]="creatingList || atRiskRows.length === 0" (click)="sendToList()"><i class="fa-solid" [class.fa-paper-plane]="!creatingList" [class.fa-spinner]="creatingList" [class.fa-spin]="creatingList"></i> Send to a list</button>
|
|
1060
|
-
<button mjButton variant="secondary" size="sm" data-testid="ps-act-export" [disabled]="atRiskRows.length === 0" (click)="exportList()"><i class="fa-solid fa-file-export"></i> Share / export</button>
|
|
1061
|
-
} @else {
|
|
1062
|
-
<div class="ps-action-locked"><i class="fa-solid fa-lock"></i> {{ selected.trust.gateReason }}</div>
|
|
1063
|
-
}
|
|
1064
|
-
</div>
|
|
1065
|
-
@if (listResult) { <div class="ps-list-result muted" data-testid="ps-list-result">{{ listResult }}</div> }
|
|
1066
1002
|
</div>
|
|
1067
|
-
|
|
1068
|
-
</div>
|
|
1003
|
+
</as-split-area>
|
|
1069
1004
|
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1005
|
+
@if (chatOpen) {
|
|
1006
|
+
<as-split-area [size]="copilotSizePct" [minSize]="20" [maxSize]="65">
|
|
1007
|
+
<aside class="ps-biz-copilot" data-testid="ps-predictions-copilot">
|
|
1008
|
+
<div class="ps-biz-copilot-head">
|
|
1009
|
+
<div class="ps-biz-copilot-title"><i class="fa-solid fa-robot"></i> New prediction</div>
|
|
1010
|
+
<button class="ps-biz-copilot-close" (click)="closeChat()" aria-label="Close"><i class="fa-solid fa-xmark"></i></button>
|
|
1011
|
+
</div>
|
|
1012
|
+
<div class="ps-biz-copilot-body">
|
|
1013
|
+
@if (currentUser) {
|
|
1014
|
+
<mj-conversation-chat-area
|
|
1015
|
+
[Provider]="Provider" [environmentId]="chatEnvironmentId" [currentUser]="currentUser"
|
|
1016
|
+
[conversation]="chatConversation" [conversationId]="chatConversationId" [isNewConversation]="chatIsNewConversation"
|
|
1017
|
+
[suppressNewConversationEmptyState]="true" [allowMentions]="false" [overlayMode]="true"
|
|
1018
|
+
[showExportButton]="false" [showShareButton]="false" [showArtifactIndicator]="false"
|
|
1019
|
+
[showAgentPicker]="false" [showAgentModePicker]="false"
|
|
1020
|
+
[defaultAgentId]="modelDevAgentId" [pendingMessage]="pendingPrompt"
|
|
1021
|
+
[applicationScope]="'Application'" [applicationId]="applicationId" [appContext]="chatAppContext"
|
|
1022
|
+
(conversationCreated)="onChatConversationCreated($event)"
|
|
1023
|
+
(pendingMessageConsumed)="onChatPendingMessageConsumed()">
|
|
1024
|
+
</mj-conversation-chat-area>
|
|
1025
|
+
} @else { <div class="ps-biz-copilot-empty"><mj-loading text="Connecting…" size="small"></mj-loading></div> }
|
|
1026
|
+
</div>
|
|
1027
|
+
</aside>
|
|
1028
|
+
</as-split-area>
|
|
1029
|
+
}
|
|
1030
|
+
</as-split>
|
|
1093
1031
|
</div>
|
|
1094
1032
|
}
|
|
1095
1033
|
</mj-page-body-interior>
|
|
1096
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["\n :host { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; }\n .ps-biz-host { display: flex; flex: 1; min-height: 0; overflow: hidden; }\n .ps-biz-main { flex: 1; min-width: 0; overflow-y: auto; padding: 16px 18px 28px; }\n .ps-biz-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }\n .ps-biz-card { background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); padding: 18px; display: flex; flex-direction: column; gap: 10px; transition: border-color .12s, background .12s; }\n .ps-biz-card:hover { border-color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface)); }\n .ps-biz-card.blocked { opacity: .85; background: var(--mj-bg-surface-card); }\n .ps-biz-card-title { font-size: var(--mj-text-lg); font-weight: 600; color: var(--mj-text-primary); margin: 0; }\n .ps-biz-card-line { color: var(--mj-text-secondary); font-size: var(--mj-text-sm); margin: 0; flex: 1; }\n .ps-biz-card-foot { display: flex; justify-content: flex-end; }\n .ps-trust-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: var(--mj-radius-full); font-size: var(--mj-text-xs); font-weight: 600; }\n .trust-good, .trust-excellent { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n .trust-fair { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n .trust-poor { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n .ps-biz-intro { max-width: 820px; margin: 32px auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; }\n .ps-biz-intro-head i { font-size: 40px; color: var(--mj-brand-primary); }\n .ps-biz-intro-head h2 { margin: 12px 0 6px; color: var(--mj-text-primary); font-size: var(--mj-text-xl); }\n .ps-biz-intro-head p { margin: 0 auto; max-width: 620px; color: var(--mj-text-secondary); font-size: var(--mj-text-sm); }\n .ps-cap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; width: 100%; }\n .ps-cap-card { background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); padding: 18px 16px; text-align: left; display: flex; flex-direction: column; gap: 6px; }\n .ps-cap-card i { font-size: 20px; color: var(--mj-brand-primary); }\n .ps-cap-title { font-weight: 600; color: var(--mj-text-primary); font-size: var(--mj-text-sm); }\n .ps-cap-blurb { color: var(--mj-text-secondary); font-size: var(--mj-text-xs); line-height: 1.45; }\n .ps-biz-crumb { display: flex; align-items: center; gap: 8px; font-size: var(--mj-text-sm); color: var(--mj-text-muted); margin-bottom: 14px; }\n .ps-biz-crumb a { color: var(--mj-text-link); cursor: pointer; }\n .ps-biz-crumb a:hover { text-decoration: underline; }\n .ps-biz-crumb i { font-size: 10px; }\n .ps-trust-banner { display: flex; gap: 16px; align-items: center; padding: 18px 20px; border-radius: var(--mj-radius-md); border: 1px solid; margin-bottom: 18px; }\n .ps-trust-banner.trust-good, .ps-trust-banner.trust-excellent { background: var(--mj-status-success-bg); border-color: var(--mj-status-success-border); }\n .ps-trust-banner.trust-fair { background: var(--mj-status-warning-bg); border-color: var(--mj-status-warning-border); }\n .ps-trust-banner.trust-poor { background: var(--mj-status-error-bg); border-color: var(--mj-status-error-border); }\n .ps-trust-dots { display: flex; gap: 3px; font-size: 18px; }\n .ps-trust-dots i { color: var(--mj-border-strong); } .ps-trust-dots i.on { color: var(--mj-status-warning); }\n .ps-trust-banner.trust-good .ps-trust-dots i.on, .ps-trust-banner.trust-excellent .ps-trust-dots i.on { color: var(--mj-status-success); }\n .ps-trust-grade { font-weight: 700; font-size: var(--mj-text-lg); color: var(--mj-text-primary); }\n .ps-trust-line { font-weight: 600; color: var(--mj-text-primary); margin-top: 2px; }\n .ps-trust-explain, .ps-trust-evidence { font-size: var(--mj-text-sm); margin-top: 4px; }\n .ps-action-bar { display: flex; gap: 10px; flex-wrap: wrap; padding: 14px 16px; border-radius: var(--mj-radius-md); background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-default); }\n .ps-action-bar.locked { background: var(--mj-status-error-bg); border-color: var(--mj-status-error-border); }\n .ps-action-locked { display: flex; align-items: center; gap: 8px; color: var(--mj-status-error-text); font-weight: 600; font-size: var(--mj-text-sm); }\n .ps-drivers { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 0 0 16px; color: var(--mj-text-secondary); font-size: var(--mj-text-sm); }\n .ps-drivers i { color: var(--mj-status-warning); }\n .ps-driver-chip { background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-full); padding: 2px 10px; font-weight: 600; color: var(--mj-text-primary); }\n .ps-atrisk { border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); overflow: hidden; margin-bottom: 16px; background: var(--mj-bg-surface); }\n .ps-atrisk-head { display: grid; grid-template-columns: 1fr 140px 52px; gap: 12px; padding: 8px 14px; background: var(--mj-bg-surface-card); border-bottom: 1px solid var(--mj-border-default); font-size: var(--mj-text-xs); font-weight: 600; color: var(--mj-text-muted); text-transform: uppercase; letter-spacing: .03em; }\n .ps-atrisk-rcol { grid-column: 2 / span 2; text-align: right; }\n .ps-atrisk-row { display: grid; grid-template-columns: 1fr 140px 52px; gap: 12px; align-items: center; padding: 9px 14px; border-bottom: 1px solid var(--mj-border-subtle); }\n .ps-atrisk-row:last-child { border-bottom: none; }\n .ps-atrisk-row:hover { background: var(--mj-bg-surface-hover); }\n .ps-atrisk-idcell { display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n .ps-atrisk-id { font-size: var(--mj-text-xs); color: var(--mj-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .ps-atrisk-why { display: flex; gap: 6px; flex-wrap: wrap; }\n .ps-why-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 600; padding: 1px 7px; border-radius: var(--mj-radius-full); max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .ps-why-chip i { font-size: 8px; }\n .ps-why-chip.up { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n .ps-why-chip.down { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n .ps-atrisk-bar { height: 8px; border-radius: var(--mj-radius-full); background: var(--mj-bg-surface-sunken); overflow: hidden; }\n .ps-atrisk-fill { display: block; height: 100%; border-radius: var(--mj-radius-full); }\n .ps-atrisk-pct { text-align: right; font-weight: 700; font-size: var(--mj-text-sm); font-variant-numeric: tabular-nums; }\n .ps-atrisk-fill.risk-high { background: var(--mj-status-error); }\n .ps-atrisk-fill.risk-medium { background: var(--mj-status-warning); }\n .ps-atrisk-fill.risk-low { background: var(--mj-status-success); }\n .ps-atrisk-pct.risk-high { color: var(--mj-status-error-text); }\n .ps-atrisk-pct.risk-medium { color: var(--mj-status-warning-text); }\n .ps-atrisk-pct.risk-low { color: var(--mj-status-success-text); }\n .ps-atrisk-foot { padding: 8px 14px; font-size: var(--mj-text-xs); }\n .ps-atrisk-empty { padding: 24px; text-align: center; border: 1px dashed var(--mj-border-default); border-radius: var(--mj-radius-md); margin-bottom: 16px; }\n .ps-atrisk-error { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border: 1px solid var(--mj-status-error-border); background: var(--mj-status-error-bg); border-radius: var(--mj-radius-md); margin-bottom: 16px; color: var(--mj-status-error-text); font-size: var(--mj-text-sm); }\n .ps-atrisk-error i { color: var(--mj-status-error); }\n .ps-atrisk-error .ps-atrisk-error-msg { flex: 1; min-width: 0; word-break: break-word; }\n .mono { font-family: var(--mj-font-family-mono); }\n /* Kept local (not in the shared stylesheet) deliberately: shared styles are injected by the\n ViewEncapsulation.None PANEL components, and this banner renders precisely when panels DON'T. */\n .ps-load-error { display: flex; align-items: center; gap: 14px; max-width: 620px; margin: 32px auto; padding: 18px 20px; border: 1px solid var(--mj-status-error-border); background: var(--mj-status-error-bg); border-radius: var(--mj-radius-lg); }\n .ps-load-error > i { font-size: 24px; color: var(--mj-status-error); }\n .ps-load-error-text { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }\n .ps-load-error-text strong { color: var(--mj-text-primary); }\n .ps-load-error-detail { color: var(--mj-text-secondary); font-size: var(--mj-text-sm); word-break: break-word; }\n .ps-biz-copilot { width: 560px; min-width: 380px; max-width: 60vw; flex: none; border-left: 1px solid var(--mj-border-default); background: var(--mj-bg-surface); display: flex; flex-direction: column; min-height: 0; }\n .ps-biz-copilot-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--mj-border-default); }\n .ps-biz-copilot-title { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--mj-text-primary); }\n .ps-biz-copilot-title i { color: var(--mj-brand-primary); }\n .ps-biz-copilot-close { background: transparent; border: none; cursor: pointer; padding: 6px 8px; border-radius: 6px; color: var(--mj-text-muted); }\n .ps-biz-copilot-close:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-secondary); }\n .ps-biz-copilot-body { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }\n .ps-biz-copilot-body mj-conversation-chat-area { flex: 1; min-height: 0; display: block; }\n .ps-biz-copilot-empty { display: flex; align-items: center; justify-content: center; flex: 1; }\n @media (max-width: 1100px) { .ps-biz-host.chat-open .ps-biz-main { display: none; } .ps-biz-copilot { width: 100%; max-width: none; border-left: none; } }\n "] }]
|
|
1034
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["\n :host { display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; }\n .ps-biz-host { display: flex; flex: 1; min-height: 0; overflow: hidden; }\n .biz-copilot-splitter { flex: 1; width: 100%; height: 100%; min-height: 0; min-width: 0; }\n .biz-copilot-splitter .as-split-gutter { background: transparent; transition: background-color 0.15s ease; position: relative; }\n .biz-copilot-splitter .as-split-gutter:hover { background-color: var(--mj-brand-primary, #6366f1); }\n .biz-copilot-splitter .as-split-gutter::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 2px; height: 24px; border-radius: 1px; background: var(--mj-border-strong, #cbd5e1); }\n .ps-biz-main { width: 100%; height: 100%; flex: 1; min-width: 0; overflow-y: auto; padding: 16px 18px 28px; }\n .ps-biz-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }\n .ps-biz-card { background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); padding: 18px; display: flex; flex-direction: column; gap: 10px; transition: border-color .12s, background .12s; }\n .ps-biz-card:hover { border-color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface)); }\n .ps-biz-card.blocked { opacity: .85; background: var(--mj-bg-surface-card); }\n .ps-biz-card-title { font-size: var(--mj-text-lg); font-weight: 600; color: var(--mj-text-primary); margin: 0; }\n .ps-biz-card-line { color: var(--mj-text-secondary); font-size: var(--mj-text-sm); margin: 0; flex: 1; }\n .ps-biz-card-foot { display: flex; justify-content: flex-end; }\n .ps-trust-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: var(--mj-radius-full); font-size: var(--mj-text-xs); font-weight: 600; }\n .trust-good, .trust-excellent { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n .trust-fair { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n .trust-poor { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n .ps-biz-intro { max-width: 820px; margin: 32px auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; }\n .ps-biz-intro-head i { font-size: 40px; color: var(--mj-brand-primary); }\n .ps-biz-intro-head h2 { margin: 12px 0 6px; color: var(--mj-text-primary); font-size: var(--mj-text-xl); }\n .ps-biz-intro-head p { margin: 0 auto; max-width: 620px; color: var(--mj-text-secondary); font-size: var(--mj-text-sm); }\n .ps-cap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; width: 100%; }\n .ps-cap-card { background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); padding: 18px 16px; text-align: left; display: flex; flex-direction: column; gap: 6px; }\n .ps-cap-card i { font-size: 20px; color: var(--mj-brand-primary); }\n .ps-cap-title { font-weight: 600; color: var(--mj-text-primary); font-size: var(--mj-text-sm); }\n .ps-cap-blurb { color: var(--mj-text-secondary); font-size: var(--mj-text-xs); line-height: 1.45; }\n .ps-biz-crumb { display: flex; align-items: center; gap: 8px; font-size: var(--mj-text-sm); color: var(--mj-text-muted); margin-bottom: 14px; }\n .ps-biz-crumb a { color: var(--mj-text-link); cursor: pointer; }\n .ps-biz-crumb a:hover { text-decoration: underline; }\n .ps-biz-crumb i { font-size: 10px; }\n .ps-trust-banner { display: flex; gap: 16px; align-items: center; padding: 18px 20px; border-radius: var(--mj-radius-md); border: 1px solid; margin-bottom: 18px; }\n .ps-trust-banner.trust-good, .ps-trust-banner.trust-excellent { background: var(--mj-status-success-bg); border-color: var(--mj-status-success-border); }\n .ps-trust-banner.trust-fair { background: var(--mj-status-warning-bg); border-color: var(--mj-status-warning-border); }\n .ps-trust-banner.trust-poor { background: var(--mj-status-error-bg); border-color: var(--mj-status-error-border); }\n .ps-trust-dots { display: flex; gap: 3px; font-size: 18px; }\n .ps-trust-dots i { color: var(--mj-border-strong); } .ps-trust-dots i.on { color: var(--mj-status-warning); }\n .ps-trust-banner.trust-good .ps-trust-dots i.on, .ps-trust-banner.trust-excellent .ps-trust-dots i.on { color: var(--mj-status-success); }\n .ps-trust-grade { font-weight: 700; font-size: var(--mj-text-lg); color: var(--mj-text-primary); }\n .ps-trust-line { font-weight: 600; color: var(--mj-text-primary); margin-top: 2px; }\n .ps-trust-explain, .ps-trust-evidence { font-size: var(--mj-text-sm); margin-top: 4px; }\n .ps-action-bar { display: flex; gap: 10px; flex-wrap: wrap; padding: 14px 16px; border-radius: var(--mj-radius-md); background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-default); }\n .ps-action-bar.locked { background: var(--mj-status-error-bg); border-color: var(--mj-status-error-border); }\n .ps-action-locked { display: flex; align-items: center; gap: 8px; color: var(--mj-status-error-text); font-weight: 600; font-size: var(--mj-text-sm); }\n .ps-drivers { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 0 0 16px; color: var(--mj-text-secondary); font-size: var(--mj-text-sm); }\n .ps-drivers i { color: var(--mj-status-warning); }\n .ps-driver-chip { background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-full); padding: 2px 10px; font-weight: 600; color: var(--mj-text-primary); }\n .ps-atrisk { border: 1px solid var(--mj-border-default); border-radius: var(--mj-radius-md); overflow: hidden; margin-bottom: 16px; background: var(--mj-bg-surface); }\n .ps-atrisk-head { display: grid; grid-template-columns: 1fr 140px 52px; gap: 12px; padding: 8px 14px; background: var(--mj-bg-surface-card); border-bottom: 1px solid var(--mj-border-default); font-size: var(--mj-text-xs); font-weight: 600; color: var(--mj-text-muted); text-transform: uppercase; letter-spacing: .03em; }\n .ps-atrisk-rcol { grid-column: 2 / span 2; text-align: right; }\n .ps-atrisk-row { display: grid; grid-template-columns: 1fr 140px 52px; gap: 12px; align-items: center; padding: 9px 14px; border-bottom: 1px solid var(--mj-border-subtle); }\n .ps-atrisk-row:last-child { border-bottom: none; }\n .ps-atrisk-row:hover { background: var(--mj-bg-surface-hover); }\n .ps-atrisk-idcell { display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n .ps-atrisk-id { font-size: var(--mj-text-xs); color: var(--mj-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .ps-atrisk-why { display: flex; gap: 6px; flex-wrap: wrap; }\n .ps-why-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 600; padding: 1px 7px; border-radius: var(--mj-radius-full); max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .ps-why-chip i { font-size: 8px; }\n .ps-why-chip.up { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n .ps-why-chip.down { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n .ps-atrisk-bar { height: 8px; border-radius: var(--mj-radius-full); background: var(--mj-bg-surface-sunken); overflow: hidden; }\n .ps-atrisk-fill { display: block; height: 100%; border-radius: var(--mj-radius-full); }\n .ps-atrisk-pct { text-align: right; font-weight: 700; font-size: var(--mj-text-sm); font-variant-numeric: tabular-nums; }\n .ps-atrisk-fill.risk-high { background: var(--mj-status-error); }\n .ps-atrisk-fill.risk-medium { background: var(--mj-status-warning); }\n .ps-atrisk-fill.risk-low { background: var(--mj-status-success); }\n .ps-atrisk-pct.risk-high { color: var(--mj-status-error-text); }\n .ps-atrisk-pct.risk-medium { color: var(--mj-status-warning-text); }\n .ps-atrisk-pct.risk-low { color: var(--mj-status-success-text); }\n .ps-atrisk-foot { padding: 8px 14px; font-size: var(--mj-text-xs); }\n .ps-atrisk-empty { padding: 24px; text-align: center; border: 1px dashed var(--mj-border-default); border-radius: var(--mj-radius-md); margin-bottom: 16px; }\n .ps-atrisk-error { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border: 1px solid var(--mj-status-error-border); background: var(--mj-status-error-bg); border-radius: var(--mj-radius-md); margin-bottom: 16px; color: var(--mj-status-error-text); font-size: var(--mj-text-sm); }\n .ps-atrisk-error i { color: var(--mj-status-error); }\n .ps-atrisk-error .ps-atrisk-error-msg { flex: 1; min-width: 0; word-break: break-word; }\n .mono { font-family: var(--mj-font-family-mono); }\n /* Kept local (not in the shared stylesheet) deliberately: shared styles are injected by the\n ViewEncapsulation.None PANEL components, and this banner renders precisely when panels DON'T. */\n .ps-load-error { display: flex; align-items: center; gap: 14px; max-width: 620px; margin: 32px auto; padding: 18px 20px; border: 1px solid var(--mj-status-error-border); background: var(--mj-status-error-bg); border-radius: var(--mj-radius-lg); }\n .ps-load-error > i { font-size: 24px; color: var(--mj-status-error); }\n .ps-load-error-text { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }\n .ps-load-error-text strong { color: var(--mj-text-primary); }\n .ps-load-error-detail { color: var(--mj-text-secondary); font-size: var(--mj-text-sm); word-break: break-word; }\n .ps-biz-copilot { width: 100%; height: 100%; max-width: none; flex: 1; border-left: 1px solid var(--mj-border-default); background: var(--mj-bg-surface); display: flex; flex-direction: column; min-height: 0; }\n .ps-biz-copilot-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--mj-border-default); }\n .ps-biz-copilot-title { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--mj-text-primary); }\n .ps-biz-copilot-title i { color: var(--mj-brand-primary); }\n .ps-biz-copilot-close { background: transparent; border: none; cursor: pointer; padding: 6px 8px; border-radius: 6px; color: var(--mj-text-muted); }\n .ps-biz-copilot-close:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-secondary); }\n .ps-biz-copilot-body { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }\n .ps-biz-copilot-body mj-conversation-chat-area { flex: 1; min-height: 0; display: block; }\n .ps-biz-copilot-empty { display: flex; align-items: center; justify-content: center; flex: 1; }\n @media (max-width: 1100px) { .ps-biz-host.chat-open .ps-biz-main { display: none; } .ps-biz-copilot { width: 100%; max-width: none; border-left: none; } }\n "] }]
|
|
1097
1035
|
}], null, null); })();
|
|
1098
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PSPredictionsResourceComponent, { className: "PSPredictionsResourceComponent", filePath: "src/PredictiveStudio/resources/ps-predictions-resource.component.ts", lineNumber:
|
|
1036
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PSPredictionsResourceComponent, { className: "PSPredictionsResourceComponent", filePath: "src/PredictiveStudio/resources/ps-predictions-resource.component.ts", lineNumber: 285 }); })();
|
|
1099
1037
|
/** Tree-shaking prevention — called from the subpath module so the @RegisterClass survives bundling. */
|
|
1100
1038
|
export function LoadPSPredictionsResource() {
|
|
1101
1039
|
// intentionally empty
|