@memberjunction/ng-skip-chat 2.48.0 → 2.50.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.
Files changed (31) hide show
  1. package/dist/lib/artifacts/skip-artifact-viewer.component.js +254 -270
  2. package/dist/lib/artifacts/skip-artifact-viewer.component.js.map +1 -1
  3. package/dist/lib/artifacts/skip-artifacts-counter.component.js +82 -90
  4. package/dist/lib/artifacts/skip-artifacts-counter.component.js.map +1 -1
  5. package/dist/lib/drill-down-info.js +4 -3
  6. package/dist/lib/drill-down-info.js.map +1 -1
  7. package/dist/lib/dynamic-report/base-report.js +147 -164
  8. package/dist/lib/dynamic-report/base-report.js.map +1 -1
  9. package/dist/lib/dynamic-report/dynamic-chart.js +77 -86
  10. package/dist/lib/dynamic-report/dynamic-chart.js.map +1 -1
  11. package/dist/lib/dynamic-report/dynamic-grid.js +80 -93
  12. package/dist/lib/dynamic-report/dynamic-grid.js.map +1 -1
  13. package/dist/lib/dynamic-report/dynamic-ui-component.js +173 -188
  14. package/dist/lib/dynamic-report/dynamic-ui-component.js.map +1 -1
  15. package/dist/lib/dynamic-report/linear-report.js +16 -26
  16. package/dist/lib/dynamic-report/linear-report.js.map +1 -1
  17. package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.js +28 -28
  18. package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.js.map +1 -1
  19. package/dist/lib/dynamic-report/skip-react-component-host.js +203 -212
  20. package/dist/lib/dynamic-report/skip-react-component-host.js.map +1 -1
  21. package/dist/lib/module.js +22 -22
  22. package/dist/lib/module.js.map +1 -1
  23. package/dist/lib/report-cache.js +2 -5
  24. package/dist/lib/report-cache.js.map +1 -1
  25. package/dist/lib/skip-chat/skip-chat.component.js +1052 -1087
  26. package/dist/lib/skip-chat/skip-chat.component.js.map +1 -1
  27. package/dist/lib/skip-single-message/skip-single-message.component.js +251 -259
  28. package/dist/lib/skip-single-message/skip-single-message.component.js.map +1 -1
  29. package/dist/lib/split-panel/skip-split-panel.component.js +52 -51
  30. package/dist/lib/split-panel/skip-split-panel.component.js.map +1 -1
  31. package/package.json +13 -13
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { Directive, EventEmitter, Input, Output } from "@angular/core";
11
2
  import { LogError } from "@memberjunction/core";
12
3
  import { ConvertMarkdownStringToHtmlList } from "@memberjunction/global";
@@ -14,86 +5,86 @@ import { BaseAngularComponent } from "@memberjunction/ng-base-types";
14
5
  import { SkipConversationReportCache } from "../report-cache";
15
6
  import * as i0 from "@angular/core";
16
7
  export class SkipDynamicReportBase extends BaseAngularComponent {
8
+ cdRef;
9
+ SkipData;
10
+ ShowCreateReportButton = false;
11
+ ConversationID = null;
12
+ ConversationName = null;
13
+ ConversationDetailID = null;
14
+ DataContext;
15
+ ReportEntity;
16
+ UserNotification = new EventEmitter();
17
+ /**
18
+ * This event fires whenever the component has a click on a matching report link.
19
+ * The provided parameter is the ID of the matching report.
20
+ */
21
+ NavigateToMatchingReport = new EventEmitter();
22
+ /**
23
+ * This event fires whenever a new report is created.
24
+ */
25
+ NewReportCreated = new EventEmitter();
26
+ /**
27
+ * This event fires whenever a drill down is requested within a given report.
28
+ */
29
+ DrillDownEvent = new EventEmitter();
17
30
  constructor(cdRef) {
18
31
  super();
19
32
  this.cdRef = cdRef;
20
- this.ShowCreateReportButton = false;
21
- this.ConversationID = null;
22
- this.ConversationName = null;
23
- this.ConversationDetailID = null;
24
- this.UserNotification = new EventEmitter();
25
- /**
26
- * This event fires whenever the component has a click on a matching report link.
27
- * The provided parameter is the ID of the matching report.
28
- */
29
- this.NavigateToMatchingReport = new EventEmitter();
30
- /**
31
- * This event fires whenever a new report is created.
32
- */
33
- this.NewReportCreated = new EventEmitter();
34
- /**
35
- * This event fires whenever a drill down is requested within a given report.
36
- */
37
- this.DrillDownEvent = new EventEmitter();
38
- this.matchingReportID = null;
39
- this.matchingReportName = null;
40
- this._loaded = false;
41
- this._isCreatingReport = false;
42
33
  }
43
34
  ngAfterViewInit() {
44
35
  this.RefreshMatchingReport();
45
36
  }
46
- RefreshMatchingReport() {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- if (this.SkipData && !this._loaded && this.ConversationDetailID && this.ConversationID) {
49
- this._loaded = true;
50
- if (this.ShowCreateReportButton) {
51
- // check to see if a report has been created that is linked to this ConvoID/ConvoDetailID
52
- // if so don't allow the user to create another report, show a link to the existing one
53
- const cachedItem = SkipDynamicReportBase._reportCache.find((x) => x.conversationId === this.ConversationID && x.conversationDetailId === this.ConversationDetailID);
54
- if (cachedItem) {
55
- this.matchingReportID = cachedItem.reportId;
56
- this.matchingReportName = cachedItem.reportName;
57
- }
58
- else {
59
- // no cached items locally so use the generalized ReportCache which can load for us if needed
60
- const reports = yield SkipConversationReportCache.Instance.GetConversationReports(this.ConversationID, this.RunViewToUse);
61
- const matchingReports = reports ? reports.filter((x) => x.ConversationDetailID === this.ConversationDetailID) : [];
62
- if (matchingReports && matchingReports.length > 0) {
63
- const item = matchingReports[0];
64
- this.matchingReportID = item.ID;
65
- this.matchingReportName = item.Name;
66
- // cache for future to avoid db call
67
- SkipDynamicReportBase._reportCache.push({
68
- reportId: item.ID,
69
- conversationId: this.ConversationID,
70
- reportName: item.Name,
71
- conversationDetailId: this.ConversationDetailID,
72
- });
73
- }
37
+ matchingReportID = null;
38
+ matchingReportName = null;
39
+ static _reportCache = [];
40
+ _loaded = false;
41
+ async RefreshMatchingReport() {
42
+ if (this.SkipData && !this._loaded && this.ConversationDetailID && this.ConversationID) {
43
+ this._loaded = true;
44
+ if (this.ShowCreateReportButton) {
45
+ // check to see if a report has been created that is linked to this ConvoID/ConvoDetailID
46
+ // if so don't allow the user to create another report, show a link to the existing one
47
+ const cachedItem = SkipDynamicReportBase._reportCache.find((x) => x.conversationId === this.ConversationID && x.conversationDetailId === this.ConversationDetailID);
48
+ if (cachedItem) {
49
+ this.matchingReportID = cachedItem.reportId;
50
+ this.matchingReportName = cachedItem.reportName;
51
+ }
52
+ else {
53
+ // no cached items locally so use the generalized ReportCache which can load for us if needed
54
+ const reports = await SkipConversationReportCache.Instance.GetConversationReports(this.ConversationID, this.RunViewToUse);
55
+ const matchingReports = reports ? reports.filter((x) => x.ConversationDetailID === this.ConversationDetailID) : [];
56
+ if (matchingReports && matchingReports.length > 0) {
57
+ const item = matchingReports[0];
58
+ this.matchingReportID = item.ID;
59
+ this.matchingReportName = item.Name;
60
+ // cache for future to avoid db call
61
+ SkipDynamicReportBase._reportCache.push({
62
+ reportId: item.ID,
63
+ conversationId: this.ConversationID,
64
+ reportName: item.Name,
65
+ conversationDetailId: this.ConversationDetailID,
66
+ });
74
67
  }
75
- this.cdRef.detectChanges(); // the above will change the view so we need to manually trigger change detection
76
68
  }
69
+ this.cdRef.detectChanges(); // the above will change the view so we need to manually trigger change detection
77
70
  }
78
- });
71
+ }
79
72
  }
80
73
  HandleDrillDownEvent(drillDownInfo) {
81
74
  // bubble the event up to the parent component
82
75
  this.DrillDownEvent.emit(drillDownInfo);
83
76
  }
84
77
  get Columns() {
85
- var _a;
86
- return ((_a = this.SkipData) === null || _a === void 0 ? void 0 : _a.tableDataColumns) || [];
78
+ return this.SkipData?.tableDataColumns || [];
87
79
  }
88
80
  get ResultType() {
89
- var _a, _b, _c, _d;
90
81
  // support for legacy format where the resultType was within executionResults and for the new location at the root of SkipData
91
- let rt = (_b = (_a = this.SkipData) === null || _a === void 0 ? void 0 : _a.resultType) === null || _b === void 0 ? void 0 : _b.trim().toLowerCase();
82
+ let rt = this.SkipData?.resultType?.trim().toLowerCase();
92
83
  if (!rt) {
93
84
  // we don't have the new format, so check for legacy location
94
- const executionResults = (_c = this.SkipData) === null || _c === void 0 ? void 0 : _c.executionResults; // becuase new type does NOT have resultType on executionResults as it was moved
85
+ const executionResults = this.SkipData?.executionResults; // becuase new type does NOT have resultType on executionResults as it was moved
95
86
  if (executionResults) {
96
- rt = (_d = executionResults.resultType) === null || _d === void 0 ? void 0 : _d.trim().toLowerCase();
87
+ rt = executionResults.resultType?.trim().toLowerCase();
97
88
  }
98
89
  }
99
90
  return rt || '';
@@ -112,8 +103,7 @@ export class SkipDynamicReportBase extends BaseAngularComponent {
112
103
  * @returns
113
104
  */
114
105
  CreateAnalysisHtml() {
115
- var _a;
116
- const analysis = (_a = this.SkipData) === null || _a === void 0 ? void 0 : _a.analysis;
106
+ const analysis = this.SkipData?.analysis;
117
107
  if (analysis && analysis.length > 0) {
118
108
  return ConvertMarkdownStringToHtmlList('Unordered', analysis);
119
109
  }
@@ -126,36 +116,35 @@ export class SkipDynamicReportBase extends BaseAngularComponent {
126
116
  get IsCreatingReport() {
127
117
  return this._isCreatingReport;
128
118
  }
119
+ _isCreatingReport = false;
129
120
  /**
130
121
  * This method is used to create a report from the current conversation detail
131
122
  */
132
- DoCreateReport() {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- this._isCreatingReport = true;
135
- if (!this.SkipData || !this.ConversationID || !this.ConversationName || !this.ConversationDetailID) {
136
- throw new Error('Must set SkipData, ConversationID, ConversationName, and ConversationDetailID to enable saving report');
123
+ async DoCreateReport() {
124
+ this._isCreatingReport = true;
125
+ if (!this.SkipData || !this.ConversationID || !this.ConversationName || !this.ConversationDetailID) {
126
+ throw new Error('Must set SkipData, ConversationID, ConversationName, and ConversationDetailID to enable saving report');
127
+ }
128
+ else {
129
+ const result = await this._GraphQLCreateNewReport();
130
+ if (result && result.Success) {
131
+ this.matchingReportID = result.ReportID;
132
+ this.matchingReportName = result.ReportName;
133
+ // let the user know we saved the report
134
+ this.RaiseUserNotification(`Report "${result.ReportName}"Saved`, 'success', 2500);
135
+ // tell our shared report cache about the new report
136
+ const report = await this.ProviderToUse.GetEntityObject('Reports', this.ProviderToUse.CurrentUser);
137
+ report.Load(result.ReportID).then(() => {
138
+ // do async so the user doesn't wait for this to finish
139
+ SkipConversationReportCache.Instance.AddConversationReport(this.ConversationID, report);
140
+ });
141
+ this.NewReportCreated.emit(result.ReportID); // finally emit the event
137
142
  }
138
143
  else {
139
- const result = yield this._GraphQLCreateNewReport();
140
- if (result && result.Success) {
141
- this.matchingReportID = result.ReportID;
142
- this.matchingReportName = result.ReportName;
143
- // let the user know we saved the report
144
- this.RaiseUserNotification(`Report "${result.ReportName}"Saved`, 'success', 2500);
145
- // tell our shared report cache about the new report
146
- const report = yield this.ProviderToUse.GetEntityObject('Reports', this.ProviderToUse.CurrentUser);
147
- report.Load(result.ReportID).then(() => {
148
- // do async so the user doesn't wait for this to finish
149
- SkipConversationReportCache.Instance.AddConversationReport(this.ConversationID, report);
150
- });
151
- this.NewReportCreated.emit(result.ReportID); // finally emit the event
152
- }
153
- else {
154
- this.RaiseUserNotification('Error saving report', 'error', 2500);
155
- this._isCreatingReport = false;
156
- }
144
+ this.RaiseUserNotification('Error saving report', 'error', 2500);
145
+ this._isCreatingReport = false;
157
146
  }
158
- });
147
+ }
159
148
  }
160
149
  RaiseUserNotification(message, style, hideAfter) {
161
150
  this.UserNotification.emit({ message, style, hideAfter });
@@ -163,10 +152,9 @@ export class SkipDynamicReportBase extends BaseAngularComponent {
163
152
  /**
164
153
  * This method does the internal work with the current GraphQLDataProvider to actually create a new report on the server.
165
154
  */
166
- _GraphQLCreateNewReport() {
167
- return __awaiter(this, void 0, void 0, function* () {
168
- // do this via a single gql call to make it faster than doing operation via standard objects since it is a multi-step operation
169
- const mutation = `mutation CreateReportFromConversationDetailIDMutation ($ConversationDetailID: String!) {
155
+ async _GraphQLCreateNewReport() {
156
+ // do this via a single gql call to make it faster than doing operation via standard objects since it is a multi-step operation
157
+ const mutation = `mutation CreateReportFromConversationDetailIDMutation ($ConversationDetailID: String!) {
170
158
  CreateReportFromConversationDetailID(ConversationDetailID: $ConversationDetailID) {
171
159
  ReportID
172
160
  ReportName
@@ -174,39 +162,36 @@ export class SkipDynamicReportBase extends BaseAngularComponent {
174
162
  ErrorMessage
175
163
  }
176
164
  }`;
177
- const p = this.ProviderToUse;
178
- const result = yield p.ExecuteGQL(mutation, {
179
- ConversationDetailID: this.ConversationDetailID,
180
- });
181
- if (result && result.CreateReportFromConversationDetailID)
182
- return result.CreateReportFromConversationDetailID;
183
- else
184
- return {
185
- Success: false,
186
- ErrorMessage: 'Failed to execute',
187
- ReportID: '',
188
- ReportName: '',
189
- };
165
+ const p = this.ProviderToUse;
166
+ const result = await p.ExecuteGQL(mutation, {
167
+ ConversationDetailID: this.ConversationDetailID,
190
168
  });
169
+ if (result && result.CreateReportFromConversationDetailID)
170
+ return result.CreateReportFromConversationDetailID;
171
+ else
172
+ return {
173
+ Success: false,
174
+ ErrorMessage: 'Failed to execute',
175
+ ReportID: '',
176
+ ReportName: '',
177
+ };
191
178
  }
192
179
  /**
193
180
  * This method will refresh the report by re-running the script that generated the report.
194
181
  * @returns
195
182
  */
196
- DoRefreshReport() {
197
- return __awaiter(this, void 0, void 0, function* () {
198
- var _a;
199
- try {
200
- if (!this.SkipData) {
201
- this.RaiseUserNotification('No data to refresh', 'error', 2500);
202
- return;
203
- }
204
- if (!this.ReportEntity || !this.ReportEntity.ID) {
205
- this.RaiseUserNotification('No report to refresh', 'error', 2500);
206
- return;
207
- }
208
- this.RaiseUserNotification('Refreshing report...', 'info', 2500);
209
- const gql = `query ExecuteAskSkipRunScript($dataContextId: String!, $scriptText: String!) {
183
+ async DoRefreshReport() {
184
+ try {
185
+ if (!this.SkipData) {
186
+ this.RaiseUserNotification('No data to refresh', 'error', 2500);
187
+ return;
188
+ }
189
+ if (!this.ReportEntity || !this.ReportEntity.ID) {
190
+ this.RaiseUserNotification('No report to refresh', 'error', 2500);
191
+ return;
192
+ }
193
+ this.RaiseUserNotification('Refreshing report...', 'info', 2500);
194
+ const gql = `query ExecuteAskSkipRunScript($dataContextId: String!, $scriptText: String!) {
210
195
  ExecuteAskSkipRunScript(DataContextId: $dataContextId, ScriptText: $scriptText) {
211
196
  Success
212
197
  Status
@@ -216,51 +201,49 @@ export class SkipDynamicReportBase extends BaseAngularComponent {
216
201
  AIMessageConversationDetailId
217
202
  }
218
203
  }`;
219
- const p = this.ProviderToUse;
220
- const result = yield p.ExecuteGQL(gql, {
221
- dataContextId: this.ReportEntity.DataContextID,
222
- scriptText: (_a = this.SkipData) === null || _a === void 0 ? void 0 : _a.scriptText,
223
- });
224
- const resultObj = result.ExecuteAskSkipRunScript;
225
- if (!resultObj.Success) {
226
- LogError('Error refreshing report: resultObj.Success was false');
227
- this.RaiseUserNotification('Error refreshing report', 'error', 2500);
228
- return;
229
- }
230
- // it worked, refresh the report here
231
- const newSkipData = JSON.parse(resultObj.Result);
232
- this.SkipData.analysis = newSkipData.analysis; // update the analysis
233
- this.SkipData.executionResults = newSkipData.executionResults; // drives the chart/table bindings
234
- this.SkipData.dataContext = newSkipData.dataContext; // drives the HTML report bindings
235
- // make sure to push the techExplanation and userExplanation to the newSkipData object as that WILL NOT come back with that info from the original report
236
- newSkipData.userExplanation = this.SkipData.userExplanation;
237
- newSkipData.techExplanation = this.SkipData.techExplanation;
238
- newSkipData.resultType = this.SkipData.resultType;
239
- newSkipData.responsePhase = this.SkipData.responsePhase;
240
- newSkipData.messages = this.SkipData.messages; // this is the array of messages that are used to create the report from the original message, we don't want message from the refresh, it is simple message
241
- newSkipData.reportTitle = this.SkipData.reportTitle; // legacy property, carry it over if it exists
242
- newSkipData.title = this.SkipData.title || this.SkipData.reportTitle; // favor the new title but fallback to the legacy reportTitle. This is the title of the component, we don't want to change it
243
- newSkipData.drillDown = this.SkipData.drillDown; // this is the drill down data, we don't want to change it
244
- this.ReportEntity.Configuration = JSON.stringify(newSkipData);
245
- const saveResult = yield this.ReportEntity.Save();
246
- if (!saveResult) {
247
- LogError('Error refreshing report: failed to save report entity', undefined, this.ReportEntity.LatestResult);
248
- this.RaiseUserNotification('Error refreshing report', 'error', 2500);
249
- }
250
- else {
251
- this.RaiseUserNotification('Report refreshed', 'success', 2500);
252
- }
204
+ const p = this.ProviderToUse;
205
+ const result = await p.ExecuteGQL(gql, {
206
+ dataContextId: this.ReportEntity.DataContextID,
207
+ scriptText: this.SkipData?.scriptText,
208
+ });
209
+ const resultObj = result.ExecuteAskSkipRunScript;
210
+ if (!resultObj.Success) {
211
+ LogError('Error refreshing report: resultObj.Success was false');
212
+ this.RaiseUserNotification('Error refreshing report', 'error', 2500);
213
+ return;
253
214
  }
254
- catch (err) {
215
+ // it worked, refresh the report here
216
+ const newSkipData = JSON.parse(resultObj.Result);
217
+ this.SkipData.analysis = newSkipData.analysis; // update the analysis
218
+ this.SkipData.executionResults = newSkipData.executionResults; // drives the chart/table bindings
219
+ this.SkipData.dataContext = newSkipData.dataContext; // drives the HTML report bindings
220
+ // make sure to push the techExplanation and userExplanation to the newSkipData object as that WILL NOT come back with that info from the original report
221
+ newSkipData.userExplanation = this.SkipData.userExplanation;
222
+ newSkipData.techExplanation = this.SkipData.techExplanation;
223
+ newSkipData.resultType = this.SkipData.resultType;
224
+ newSkipData.responsePhase = this.SkipData.responsePhase;
225
+ newSkipData.messages = this.SkipData.messages; // this is the array of messages that are used to create the report from the original message, we don't want message from the refresh, it is simple message
226
+ newSkipData.reportTitle = this.SkipData.reportTitle; // legacy property, carry it over if it exists
227
+ newSkipData.title = this.SkipData.title || this.SkipData.reportTitle; // favor the new title but fallback to the legacy reportTitle. This is the title of the component, we don't want to change it
228
+ newSkipData.drillDown = this.SkipData.drillDown; // this is the drill down data, we don't want to change it
229
+ this.ReportEntity.Configuration = JSON.stringify(newSkipData);
230
+ const saveResult = await this.ReportEntity.Save();
231
+ if (!saveResult) {
232
+ LogError('Error refreshing report: failed to save report entity', undefined, this.ReportEntity.LatestResult);
255
233
  this.RaiseUserNotification('Error refreshing report', 'error', 2500);
256
- console.error(err);
257
234
  }
258
- });
235
+ else {
236
+ this.RaiseUserNotification('Report refreshed', 'success', 2500);
237
+ }
238
+ }
239
+ catch (err) {
240
+ this.RaiseUserNotification('Error refreshing report', 'error', 2500);
241
+ console.error(err);
242
+ }
259
243
  }
244
+ static ɵfac = function SkipDynamicReportBase_Factory(t) { return new (t || SkipDynamicReportBase)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
245
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SkipDynamicReportBase, inputs: { SkipData: "SkipData", ShowCreateReportButton: "ShowCreateReportButton", ConversationID: "ConversationID", ConversationName: "ConversationName", ConversationDetailID: "ConversationDetailID", DataContext: "DataContext", ReportEntity: "ReportEntity" }, outputs: { UserNotification: "UserNotification", NavigateToMatchingReport: "NavigateToMatchingReport", NewReportCreated: "NewReportCreated", DrillDownEvent: "DrillDownEvent" }, features: [i0.ɵɵInheritDefinitionFeature] });
260
246
  }
261
- SkipDynamicReportBase._reportCache = [];
262
- SkipDynamicReportBase.ɵfac = function SkipDynamicReportBase_Factory(t) { return new (t || SkipDynamicReportBase)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
263
- SkipDynamicReportBase.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SkipDynamicReportBase, inputs: { SkipData: "SkipData", ShowCreateReportButton: "ShowCreateReportButton", ConversationID: "ConversationID", ConversationName: "ConversationName", ConversationDetailID: "ConversationDetailID", DataContext: "DataContext", ReportEntity: "ReportEntity" }, outputs: { UserNotification: "UserNotification", NavigateToMatchingReport: "NavigateToMatchingReport", NewReportCreated: "NewReportCreated", DrillDownEvent: "DrillDownEvent" }, features: [i0.ɵɵInheritDefinitionFeature] });
264
247
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SkipDynamicReportBase, [{
265
248
  type: Directive
266
249
  }], () => [{ type: i0.ChangeDetectorRef }], { SkipData: [{
@@ -1 +1 @@
1
- {"version":3,"file":"base-report.js","sourceRoot":"","sources":["../../../src/lib/dynamic-report/base-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-report.js","sourceRoot":"","sources":["../../../src/lib/dynamic-report/base-report.ts"],"names":[],"mappings":"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"}