@memberjunction/ng-explorer-core 0.9.200 → 0.9.204
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/generic/Events.types.d.ts +142 -0
- package/dist/generic/Events.types.d.ts.map +1 -0
- package/dist/generic/Events.types.js +95 -0
- package/dist/generic/Item.types.d.ts +25 -0
- package/dist/generic/Item.types.d.ts.map +1 -0
- package/dist/generic/Item.types.js +36 -0
- package/dist/generic/PathData.types.d.ts +9 -0
- package/dist/generic/PathData.types.d.ts.map +1 -0
- package/dist/generic/PathData.types.js +9 -0
- package/dist/lib/base-browser-component/base-browser-component.d.ts +29 -0
- package/dist/lib/base-browser-component/base-browser-component.d.ts.map +1 -0
- package/dist/lib/base-browser-component/base-browser-component.js +133 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +8 -9
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts.map +1 -1
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +51 -85
- package/dist/lib/data-browser-component/data-browser.component.js +12 -19
- package/dist/lib/favorites/favorites.component.js +1 -1
- package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +3 -0
- package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts.map +1 -1
- package/dist/lib/generic-browse-list/generic-browse-list.component.js +102 -50
- package/dist/lib/generic-browser-list/components/resource/resource.d.ts +1 -0
- package/dist/lib/generic-browser-list/components/resource/resource.d.ts.map +1 -0
- package/dist/lib/generic-browser-list/components/resource/resource.js +1 -0
- package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts +50 -0
- package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts.map +1 -0
- package/dist/lib/generic-browser-list/generic-browser-list.component.js +366 -0
- package/dist/lib/header/header.component.js +25 -28
- package/dist/lib/home-component/home.component.js +2 -2
- package/dist/lib/navigation/navigation.component.js +2 -2
- package/dist/lib/query-browser-component/query-browser.component.d.ts +10 -7
- package/dist/lib/query-browser-component/query-browser.component.d.ts.map +1 -1
- package/dist/lib/query-browser-component/query-browser.component.js +55 -41
- package/dist/lib/report-browser-component/report-browser.component.d.ts +10 -4
- package/dist/lib/report-browser-component/report-browser.component.d.ts.map +1 -1
- package/dist/lib/report-browser-component/report-browser.component.js +57 -25
- package/dist/lib/settings/settings.component.js +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js +3 -0
- package/dist/lib/single-search-result/single-search-result.component.js +1 -1
- package/dist/lib/user-notifications/user-notifications.component.js +1 -1
- package/dist/module.d.ts +11 -11
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +5 -5
- package/dist/public-api.d.ts +0 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +0 -1
- package/package.json +53 -52
- package/dist/lib/ask-skip/ask-skip.component.d.ts +0 -87
- package/dist/lib/ask-skip/ask-skip.component.js +0 -626
- package/dist/lib/ask-skip/skip-dynamic-report-wrapper.d.ts +0 -12
- package/dist/lib/ask-skip/skip-dynamic-report-wrapper.js +0 -50
- package/dist/lib/generic/base-resource-component.d.ts +0 -34
- package/dist/lib/generic/base-resource-component.js +0 -75
- package/dist/lib/generic/dynamic-chart.d.ts +0 -33
- package/dist/lib/generic/dynamic-chart.js +0 -252
- package/dist/lib/generic/dynamic-grid.d.ts +0 -25
- package/dist/lib/generic/dynamic-grid.js +0 -142
- package/dist/lib/generic/dynamic-report.d.ts +0 -38
- package/dist/lib/generic/dynamic-report.js +0 -405
- package/dist/shared/shared.service.d.ts +0 -94
- package/dist/shared/shared.service.js +0 -324
- package/dist/shared/urlPipe.d.ts +0 -7
- package/dist/shared/urlPipe.js +0 -16
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Router } from '@angular/router';
|
|
2
|
-
import { SkipColumnInfo, SkipData } from '../ask-skip/ask-skip.component';
|
|
3
|
-
import { SharedService } from '../../shared/shared.service';
|
|
4
|
-
import { DynamicGridComponent } from './dynamic-grid';
|
|
5
|
-
import { DynamicChartComponent } from './dynamic-chart';
|
|
6
|
-
import { SelectEvent, TabStripComponent } from '@progress/kendo-angular-layout';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class DynamicReportComponent {
|
|
9
|
-
sharedService: SharedService;
|
|
10
|
-
private router;
|
|
11
|
-
ShowDetailsTab: boolean;
|
|
12
|
-
ShowCreateReportButton: boolean;
|
|
13
|
-
ConversationID: number | null;
|
|
14
|
-
ConversationName: string | null;
|
|
15
|
-
ConversationDetailID: number | null;
|
|
16
|
-
private _skipData;
|
|
17
|
-
get SkipData(): SkipData | undefined;
|
|
18
|
-
set SkipData(d: SkipData | undefined);
|
|
19
|
-
theGrid: DynamicGridComponent;
|
|
20
|
-
theChart: DynamicChartComponent;
|
|
21
|
-
tabStrip: TabStripComponent;
|
|
22
|
-
constructor(sharedService: SharedService, router: Router);
|
|
23
|
-
matchingReportID: number | null;
|
|
24
|
-
matchingReportName: string | null;
|
|
25
|
-
private _loaded;
|
|
26
|
-
ngAfterViewInit(): Promise<void>;
|
|
27
|
-
clickMatchingReport(): void;
|
|
28
|
-
activeTabIndex: number;
|
|
29
|
-
onTabSelect(e: SelectEvent): void;
|
|
30
|
-
isTabSelected(index: number): boolean;
|
|
31
|
-
get Columns(): SkipColumnInfo[];
|
|
32
|
-
get IsChart(): boolean;
|
|
33
|
-
get IsTable(): boolean;
|
|
34
|
-
createAnalysisHtml(): string;
|
|
35
|
-
doCreateReport(): Promise<void>;
|
|
36
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicReportComponent, never>;
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicReportComponent, "app-dynamic-report", never, { "ShowDetailsTab": { "alias": "ShowDetailsTab"; "required": false; }; "ShowCreateReportButton": { "alias": "ShowCreateReportButton"; "required": false; }; "ConversationID": { "alias": "ConversationID"; "required": false; }; "ConversationName": { "alias": "ConversationName"; "required": false; }; "ConversationDetailID": { "alias": "ConversationDetailID"; "required": false; }; "SkipData": { "alias": "SkipData"; "required": false; }; }, {}, never, never, false, never>;
|
|
38
|
-
}
|
|
@@ -1,405 +0,0 @@
|
|
|
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
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
11
|
-
import { HtmlListType } from '../../shared/shared.service';
|
|
12
|
-
import { Metadata, RunView } from '@memberjunction/core';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "../../shared/shared.service";
|
|
15
|
-
import * as i2 from "@angular/router";
|
|
16
|
-
const _c0 = ["theGrid"];
|
|
17
|
-
const _c1 = ["theChart"];
|
|
18
|
-
const _c2 = ["tabStrip"];
|
|
19
|
-
function DynamicReportComponent_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
-
const _r12 = i0.ɵɵgetCurrentView();
|
|
21
|
-
i0.ɵɵelementStart(0, "button", 9);
|
|
22
|
-
i0.ɵɵlistener("click", function DynamicReportComponent_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.doCreateReport()); });
|
|
23
|
-
i0.ɵɵtext(1, "Create Report");
|
|
24
|
-
i0.ɵɵelementEnd();
|
|
25
|
-
} }
|
|
26
|
-
function DynamicReportComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
-
const _r14 = i0.ɵɵgetCurrentView();
|
|
28
|
-
i0.ɵɵelementStart(0, "div", 10);
|
|
29
|
-
i0.ɵɵlistener("click", function DynamicReportComponent_div_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.clickMatchingReport()); });
|
|
30
|
-
i0.ɵɵtext(1);
|
|
31
|
-
i0.ɵɵelementEnd();
|
|
32
|
-
} if (rf & 2) {
|
|
33
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
34
|
-
i0.ɵɵadvance();
|
|
35
|
-
i0.ɵɵtextInterpolate2("Report: ", ctx_r1.matchingReportName, " (ID: ", ctx_r1.matchingReportID, ") Created From This Message");
|
|
36
|
-
} }
|
|
37
|
-
function DynamicReportComponent_kendo_tabstrip_tab_5_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
-
i0.ɵɵelement(0, "kendo-svgicon", 12);
|
|
39
|
-
i0.ɵɵelementStart(1, "span", 13);
|
|
40
|
-
i0.ɵɵtext(2, "Chart");
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
42
|
-
} if (rf & 2) {
|
|
43
|
-
const ctx_r15 = i0.ɵɵnextContext(2);
|
|
44
|
-
i0.ɵɵproperty("icon", ctx_r15.sharedService.kendoSVGIcon("graph"));
|
|
45
|
-
} }
|
|
46
|
-
function DynamicReportComponent_kendo_tabstrip_tab_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
-
i0.ɵɵelement(0, "app-dynamic-chart", 14, 15);
|
|
48
|
-
} if (rf & 2) {
|
|
49
|
-
const ctx_r16 = i0.ɵɵnextContext(2);
|
|
50
|
-
i0.ɵɵproperty("SkipData", ctx_r16.SkipData);
|
|
51
|
-
} }
|
|
52
|
-
function DynamicReportComponent_kendo_tabstrip_tab_5_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 11);
|
|
54
|
-
i0.ɵɵtemplate(1, DynamicReportComponent_kendo_tabstrip_tab_5_ng_template_1_Template, 3, 1, "ng-template", 7)(2, DynamicReportComponent_kendo_tabstrip_tab_5_ng_template_2_Template, 2, 1, "ng-template", 8);
|
|
55
|
-
i0.ɵɵelementEnd();
|
|
56
|
-
} if (rf & 2) {
|
|
57
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
|
58
|
-
i0.ɵɵproperty("selected", ctx_r3.isTabSelected(0));
|
|
59
|
-
} }
|
|
60
|
-
function DynamicReportComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
|
|
61
|
-
i0.ɵɵelement(0, "kendo-svgicon", 12);
|
|
62
|
-
i0.ɵɵelementStart(1, "span", 13);
|
|
63
|
-
i0.ɵɵtext(2, "Table");
|
|
64
|
-
i0.ɵɵelementEnd();
|
|
65
|
-
} if (rf & 2) {
|
|
66
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
|
67
|
-
i0.ɵɵproperty("icon", ctx_r4.sharedService.kendoSVGIcon("table"));
|
|
68
|
-
} }
|
|
69
|
-
function DynamicReportComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
-
i0.ɵɵelement(0, "app-dynamic-grid", 14, 16);
|
|
71
|
-
} if (rf & 2) {
|
|
72
|
-
const ctx_r5 = i0.ɵɵnextContext();
|
|
73
|
-
i0.ɵɵproperty("SkipData", ctx_r5.SkipData);
|
|
74
|
-
} }
|
|
75
|
-
function DynamicReportComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {
|
|
76
|
-
i0.ɵɵelement(0, "img", 17);
|
|
77
|
-
i0.ɵɵelementStart(1, "span", 13);
|
|
78
|
-
i0.ɵɵtext(2, "Analysis");
|
|
79
|
-
i0.ɵɵelementEnd();
|
|
80
|
-
} }
|
|
81
|
-
function DynamicReportComponent_ng_template_11_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
-
i0.ɵɵelement(0, "div", 18);
|
|
83
|
-
} if (rf & 2) {
|
|
84
|
-
const ctx_r7 = i0.ɵɵnextContext();
|
|
85
|
-
i0.ɵɵproperty("innerHTML", ctx_r7.createAnalysisHtml(), i0.ɵɵsanitizeHtml);
|
|
86
|
-
} }
|
|
87
|
-
function DynamicReportComponent_ng_template_13_Template(rf, ctx) { if (rf & 1) {
|
|
88
|
-
i0.ɵɵelement(0, "kendo-svgicon", 12);
|
|
89
|
-
i0.ɵɵelementStart(1, "span", 13);
|
|
90
|
-
i0.ɵɵtext(2, "Explanation");
|
|
91
|
-
i0.ɵɵelementEnd();
|
|
92
|
-
} if (rf & 2) {
|
|
93
|
-
const ctx_r8 = i0.ɵɵnextContext();
|
|
94
|
-
i0.ɵɵproperty("icon", ctx_r8.sharedService.kendoSVGIcon("file"));
|
|
95
|
-
} }
|
|
96
|
-
function DynamicReportComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) {
|
|
97
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
98
|
-
i0.ɵɵtext(1);
|
|
99
|
-
i0.ɵɵelementEnd();
|
|
100
|
-
} if (rf & 2) {
|
|
101
|
-
const ctx_r9 = i0.ɵɵnextContext();
|
|
102
|
-
i0.ɵɵadvance();
|
|
103
|
-
i0.ɵɵtextInterpolate((ctx_r9.SkipData == null ? null : ctx_r9.SkipData.ReportExplanation) || "No Explanation Provided");
|
|
104
|
-
} }
|
|
105
|
-
function DynamicReportComponent_kendo_tabstrip_tab_15_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
106
|
-
i0.ɵɵelement(0, "kendo-svgicon", 19);
|
|
107
|
-
i0.ɵɵelementStart(1, "span", 13);
|
|
108
|
-
i0.ɵɵtext(2, "Details");
|
|
109
|
-
i0.ɵɵelementEnd();
|
|
110
|
-
} if (rf & 2) {
|
|
111
|
-
const ctx_r19 = i0.ɵɵnextContext(2);
|
|
112
|
-
i0.ɵɵproperty("icon", ctx_r19.sharedService.kendoSVGIcon("pageProperties"));
|
|
113
|
-
} }
|
|
114
|
-
function DynamicReportComponent_kendo_tabstrip_tab_15_ng_template_2_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
-
i0.ɵɵelementStart(0, "div")(1, "span");
|
|
116
|
-
i0.ɵɵtext(2, "Skip Conversation ID:");
|
|
117
|
-
i0.ɵɵelementEnd();
|
|
118
|
-
i0.ɵɵelementStart(3, "span");
|
|
119
|
-
i0.ɵɵtext(4);
|
|
120
|
-
i0.ɵɵelementEnd()();
|
|
121
|
-
} if (rf & 2) {
|
|
122
|
-
const ctx_r21 = i0.ɵɵnextContext(3);
|
|
123
|
-
i0.ɵɵadvance(4);
|
|
124
|
-
i0.ɵɵtextInterpolate(ctx_r21.ConversationID);
|
|
125
|
-
} }
|
|
126
|
-
function DynamicReportComponent_kendo_tabstrip_tab_15_ng_template_2_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
-
i0.ɵɵelementStart(0, "div")(1, "span");
|
|
128
|
-
i0.ɵɵtext(2, "Skip Conversation Detail ID:");
|
|
129
|
-
i0.ɵɵelementEnd();
|
|
130
|
-
i0.ɵɵelementStart(3, "span");
|
|
131
|
-
i0.ɵɵtext(4);
|
|
132
|
-
i0.ɵɵelementEnd()();
|
|
133
|
-
} if (rf & 2) {
|
|
134
|
-
const ctx_r22 = i0.ɵɵnextContext(3);
|
|
135
|
-
i0.ɵɵadvance(4);
|
|
136
|
-
i0.ɵɵtextInterpolate(ctx_r22.ConversationDetailID);
|
|
137
|
-
} }
|
|
138
|
-
function DynamicReportComponent_kendo_tabstrip_tab_15_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
-
i0.ɵɵelementStart(0, "div")(1, "span")(2, "b");
|
|
140
|
-
i0.ɵɵtext(3, "SQL:");
|
|
141
|
-
i0.ɵɵelementEnd()();
|
|
142
|
-
i0.ɵɵelementStart(4, "span")(5, "textarea", 20);
|
|
143
|
-
i0.ɵɵtext(6);
|
|
144
|
-
i0.ɵɵelementEnd()()();
|
|
145
|
-
i0.ɵɵtemplate(7, DynamicReportComponent_kendo_tabstrip_tab_15_ng_template_2_div_7_Template, 5, 1, "div", 21)(8, DynamicReportComponent_kendo_tabstrip_tab_15_ng_template_2_div_8_Template, 5, 1, "div", 21);
|
|
146
|
-
} if (rf & 2) {
|
|
147
|
-
const ctx_r20 = i0.ɵɵnextContext(2);
|
|
148
|
-
i0.ɵɵadvance(5);
|
|
149
|
-
i0.ɵɵproperty("disabled", true)("fillHeight", false);
|
|
150
|
-
i0.ɵɵadvance();
|
|
151
|
-
i0.ɵɵtextInterpolate(ctx_r20.SkipData == null ? null : ctx_r20.SkipData.SQLResults == null ? null : ctx_r20.SkipData.SQLResults.sql);
|
|
152
|
-
i0.ɵɵadvance();
|
|
153
|
-
i0.ɵɵproperty("ngIf", ctx_r20.ConversationID !== null);
|
|
154
|
-
i0.ɵɵadvance();
|
|
155
|
-
i0.ɵɵproperty("ngIf", ctx_r20.ConversationDetailID !== null);
|
|
156
|
-
} }
|
|
157
|
-
function DynamicReportComponent_kendo_tabstrip_tab_15_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
-
i0.ɵɵelementStart(0, "kendo-tabstrip-tab", 11);
|
|
159
|
-
i0.ɵɵtemplate(1, DynamicReportComponent_kendo_tabstrip_tab_15_ng_template_1_Template, 3, 1, "ng-template", 7)(2, DynamicReportComponent_kendo_tabstrip_tab_15_ng_template_2_Template, 9, 5, "ng-template", 8);
|
|
160
|
-
i0.ɵɵelementEnd();
|
|
161
|
-
} if (rf & 2) {
|
|
162
|
-
const ctx_r10 = i0.ɵɵnextContext();
|
|
163
|
-
i0.ɵɵproperty("selected", ctx_r10.isTabSelected(4));
|
|
164
|
-
} }
|
|
165
|
-
// This component is used for dynamically rendering report data, it is wrapped by app-single-report which gets
|
|
166
|
-
// info from the database. This can also be used directly to render a dynamic report that is NOT saved in the DB
|
|
167
|
-
// which is what Skip does in its conversational UI
|
|
168
|
-
export class DynamicReportComponent {
|
|
169
|
-
get SkipData() {
|
|
170
|
-
return this._skipData;
|
|
171
|
-
}
|
|
172
|
-
set SkipData(d) {
|
|
173
|
-
this._skipData = d;
|
|
174
|
-
if (d && !this._loaded)
|
|
175
|
-
this.ngAfterViewInit();
|
|
176
|
-
}
|
|
177
|
-
constructor(sharedService, router) {
|
|
178
|
-
this.sharedService = sharedService;
|
|
179
|
-
this.router = router;
|
|
180
|
-
this.ShowDetailsTab = false;
|
|
181
|
-
this.ShowCreateReportButton = false;
|
|
182
|
-
this.ConversationID = null;
|
|
183
|
-
this.ConversationName = null;
|
|
184
|
-
this.ConversationDetailID = null;
|
|
185
|
-
this.matchingReportID = null;
|
|
186
|
-
this.matchingReportName = null;
|
|
187
|
-
this._loaded = false;
|
|
188
|
-
this.activeTabIndex = 0;
|
|
189
|
-
}
|
|
190
|
-
ngAfterViewInit() {
|
|
191
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
192
|
-
if (this.SkipData) {
|
|
193
|
-
this._loaded = true;
|
|
194
|
-
if (this.ShowCreateReportButton) {
|
|
195
|
-
// check to see if a report has been created that is linked to this ConvoID/ConvoDetailID
|
|
196
|
-
// if so don't allow the user to create another report, show a link to the existing one
|
|
197
|
-
const rv = new RunView();
|
|
198
|
-
const matchingReports = yield rv.RunView({
|
|
199
|
-
EntityName: 'Reports',
|
|
200
|
-
ExtraFilter: 'ConversationID = ' + this.ConversationID + ' AND ConversationDetailID = ' + this.ConversationDetailID
|
|
201
|
-
});
|
|
202
|
-
if (matchingReports && matchingReports.Success && matchingReports.RowCount > 0) {
|
|
203
|
-
const item = matchingReports.Results.at(0);
|
|
204
|
-
this.matchingReportID = item === null || item === void 0 ? void 0 : item.ID;
|
|
205
|
-
this.matchingReportName = item === null || item === void 0 ? void 0 : item.Name;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
clickMatchingReport() {
|
|
212
|
-
if (this.matchingReportID !== null && this.matchingReportID > 0) {
|
|
213
|
-
// navigate to the report
|
|
214
|
-
this.router.navigate(['resource', 'report', this.matchingReportID]);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
onTabSelect(e) {
|
|
218
|
-
e.preventDefault();
|
|
219
|
-
this.activeTabIndex = e.index;
|
|
220
|
-
this.sharedService.InvokeManualResize(100);
|
|
221
|
-
}
|
|
222
|
-
isTabSelected(index) {
|
|
223
|
-
const offset = !this.IsChart ? 1 : 0;
|
|
224
|
-
return this.activeTabIndex === (index - offset);
|
|
225
|
-
}
|
|
226
|
-
get Columns() {
|
|
227
|
-
var _a;
|
|
228
|
-
return ((_a = this.SkipData) === null || _a === void 0 ? void 0 : _a.SQLResults.columns) || [];
|
|
229
|
-
}
|
|
230
|
-
get IsChart() {
|
|
231
|
-
if (!this.SkipData)
|
|
232
|
-
return false;
|
|
233
|
-
return this.SkipData.DisplayType.trim().toLowerCase() !== 'table';
|
|
234
|
-
}
|
|
235
|
-
get IsTable() {
|
|
236
|
-
if (!this.SkipData)
|
|
237
|
-
return false;
|
|
238
|
-
return this.SkipData.DisplayType.trim().toLowerCase() === 'table';
|
|
239
|
-
}
|
|
240
|
-
createAnalysisHtml() {
|
|
241
|
-
var _a;
|
|
242
|
-
const analysis = (_a = this.SkipData) === null || _a === void 0 ? void 0 : _a.Analysis;
|
|
243
|
-
if (analysis && analysis.length > 0) {
|
|
244
|
-
return this.sharedService.ConvertMarkdownStringToHtmlList(HtmlListType.Unordered, analysis);
|
|
245
|
-
}
|
|
246
|
-
else
|
|
247
|
-
return '<h2>No Analysis Provided</h2>';
|
|
248
|
-
}
|
|
249
|
-
doCreateReport() {
|
|
250
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
251
|
-
if (!this.SkipData || !this.ConversationID || !this.ConversationName || !this.ConversationDetailID) {
|
|
252
|
-
throw new Error('Must set SkipData, ConversationID, ConversationName, and ConversationDetailID to enable saving report');
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
if (confirm('Do you want to save this report?')) {
|
|
256
|
-
const md = new Metadata();
|
|
257
|
-
const report = yield md.GetEntityObject('Reports');
|
|
258
|
-
report.NewRecord();
|
|
259
|
-
report.Name = this.SkipData.ReportTitle;
|
|
260
|
-
report.Description = this.SkipData.ReportExplanation ? this.SkipData.ReportExplanation : '';
|
|
261
|
-
report.ConversationID = this.ConversationID;
|
|
262
|
-
report.ConversationDetailID = this.ConversationDetailID;
|
|
263
|
-
report.ReportSQL = this.SkipData.SQLResults.sql;
|
|
264
|
-
report.ReportConfiguration = JSON.stringify(this.SkipData);
|
|
265
|
-
report.SharingScope = 'None';
|
|
266
|
-
report.UserID = md.CurrentUser.ID;
|
|
267
|
-
if (yield report.Save()) {
|
|
268
|
-
this.matchingReportID = report.ID;
|
|
269
|
-
this.matchingReportName = report.Name;
|
|
270
|
-
this.sharedService.CreateSimpleNotification(`Report "${report.Name}"Saved`, 'success', 2500);
|
|
271
|
-
}
|
|
272
|
-
else
|
|
273
|
-
this.sharedService.CreateSimpleNotification('Error saving report', 'error', 2500);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
DynamicReportComponent.ɵfac = function DynamicReportComponent_Factory(t) { return new (t || DynamicReportComponent)(i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router)); };
|
|
280
|
-
DynamicReportComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DynamicReportComponent, selectors: [["app-dynamic-report"]], viewQuery: function DynamicReportComponent_Query(rf, ctx) { if (rf & 1) {
|
|
281
|
-
i0.ɵɵviewQuery(_c0, 5);
|
|
282
|
-
i0.ɵɵviewQuery(_c1, 5);
|
|
283
|
-
i0.ɵɵviewQuery(_c2, 5);
|
|
284
|
-
} if (rf & 2) {
|
|
285
|
-
let _t;
|
|
286
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.theGrid = _t.first);
|
|
287
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.theChart = _t.first);
|
|
288
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabStrip = _t.first);
|
|
289
|
-
} }, inputs: { ShowDetailsTab: "ShowDetailsTab", ShowCreateReportButton: "ShowCreateReportButton", ConversationID: "ConversationID", ConversationName: "ConversationName", ConversationDetailID: "ConversationDetailID", SkipData: "SkipData" }, decls: 16, vars: 12, consts: [["mjFillContainer", ""], ["kendoButton", "", "class", "create-report-button", 3, "click", 4, "ngIf"], ["class", "report-link", 3, "click", 4, "ngIf"], ["mjFillContainer", "", 1, "report-tabstrip", 3, "keepTabContent", "animate", "tabSelect"], ["tabStrip", ""], [3, "selected", 4, "ngIf"], [3, "closable", "selected"], ["kendoTabTitle", ""], ["kendoTabContent", "", "class", "report-tab-contents"], ["kendoButton", "", 1, "create-report-button", 3, "click"], [1, "report-link", 3, "click"], [3, "selected"], [3, "icon"], [1, "report-tab-title"], ["mjFillContainer", "", 3, "SkipData"], ["theChart", ""], ["theGrid", ""], ["src", "assets/Skip - Mark Only - Small.png", 1, "avatar", 2, "height", "16px", "width", "16px"], ["mjFillContainer", "", 3, "innerHTML"], ["name", "page-properties", 3, "icon"], ["mjFillContainer", "", 3, "disabled", "fillHeight"], [4, "ngIf"]], template: function DynamicReportComponent_Template(rf, ctx) { if (rf & 1) {
|
|
290
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
291
|
-
i0.ɵɵtemplate(1, DynamicReportComponent_button_1_Template, 2, 0, "button", 1)(2, DynamicReportComponent_div_2_Template, 2, 2, "div", 2);
|
|
292
|
-
i0.ɵɵelementStart(3, "kendo-tabstrip", 3, 4);
|
|
293
|
-
i0.ɵɵlistener("tabSelect", function DynamicReportComponent_Template_kendo_tabstrip_tabSelect_3_listener($event) { return ctx.onTabSelect($event); });
|
|
294
|
-
i0.ɵɵtemplate(5, DynamicReportComponent_kendo_tabstrip_tab_5_Template, 3, 1, "kendo-tabstrip-tab", 5);
|
|
295
|
-
i0.ɵɵelementStart(6, "kendo-tabstrip-tab", 6);
|
|
296
|
-
i0.ɵɵtemplate(7, DynamicReportComponent_ng_template_7_Template, 3, 1, "ng-template", 7)(8, DynamicReportComponent_ng_template_8_Template, 2, 1, "ng-template", 8);
|
|
297
|
-
i0.ɵɵelementEnd();
|
|
298
|
-
i0.ɵɵelementStart(9, "kendo-tabstrip-tab", 6);
|
|
299
|
-
i0.ɵɵtemplate(10, DynamicReportComponent_ng_template_10_Template, 3, 0, "ng-template", 7)(11, DynamicReportComponent_ng_template_11_Template, 1, 1, "ng-template", 8);
|
|
300
|
-
i0.ɵɵelementEnd();
|
|
301
|
-
i0.ɵɵelementStart(12, "kendo-tabstrip-tab", 6);
|
|
302
|
-
i0.ɵɵtemplate(13, DynamicReportComponent_ng_template_13_Template, 3, 1, "ng-template", 7)(14, DynamicReportComponent_ng_template_14_Template, 2, 1, "ng-template", 8);
|
|
303
|
-
i0.ɵɵelementEnd();
|
|
304
|
-
i0.ɵɵtemplate(15, DynamicReportComponent_kendo_tabstrip_tab_15_Template, 3, 1, "kendo-tabstrip-tab", 5);
|
|
305
|
-
i0.ɵɵelementEnd()();
|
|
306
|
-
} if (rf & 2) {
|
|
307
|
-
i0.ɵɵadvance();
|
|
308
|
-
i0.ɵɵproperty("ngIf", ctx.ShowCreateReportButton && !ctx.matchingReportID);
|
|
309
|
-
i0.ɵɵadvance();
|
|
310
|
-
i0.ɵɵproperty("ngIf", ctx.matchingReportID !== null);
|
|
311
|
-
i0.ɵɵadvance();
|
|
312
|
-
i0.ɵɵproperty("keepTabContent", true)("animate", false);
|
|
313
|
-
i0.ɵɵadvance(2);
|
|
314
|
-
i0.ɵɵproperty("ngIf", ctx.IsChart);
|
|
315
|
-
i0.ɵɵadvance();
|
|
316
|
-
i0.ɵɵproperty("closable", false)("selected", ctx.isTabSelected(1));
|
|
317
|
-
i0.ɵɵadvance(3);
|
|
318
|
-
i0.ɵɵproperty("closable", false)("selected", ctx.isTabSelected(2));
|
|
319
|
-
i0.ɵɵadvance(3);
|
|
320
|
-
i0.ɵɵproperty("closable", false)("selected", ctx.isTabSelected(3));
|
|
321
|
-
i0.ɵɵadvance(3);
|
|
322
|
-
i0.ɵɵproperty("ngIf", ctx.ShowDetailsTab);
|
|
323
|
-
} }, styles: [".report-tab-title[_ngcontent-%COMP%] { margin-left: 10px;}", ".create-report-button[_ngcontent-%COMP%] { \n margin-bottom: 10px;\n margin-top: 10px;\n }", ".report-link[_ngcontent-%COMP%] {\n margin-top: 10px;\n margin-bottom: 10px;\n cursor: pointer;\n color: blue;\n font-weight: bold;\n }"] });
|
|
324
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicReportComponent, [{
|
|
325
|
-
type: Component,
|
|
326
|
-
args: [{ selector: 'app-dynamic-report', template: `
|
|
327
|
-
<div mjFillContainer>
|
|
328
|
-
<button kendoButton *ngIf="ShowCreateReportButton && !matchingReportID" (click)="doCreateReport()" class="create-report-button">Create Report</button>
|
|
329
|
-
<div *ngIf="matchingReportID!==null" class="report-link" (click)="clickMatchingReport()">Report: {{matchingReportName}} (ID: {{matchingReportID}}) Created From This Message</div>
|
|
330
|
-
<kendo-tabstrip mjFillContainer [keepTabContent]="true" [animate]="false" class="report-tabstrip" (tabSelect)="onTabSelect($event)" #tabStrip>
|
|
331
|
-
<kendo-tabstrip-tab *ngIf="IsChart" [selected]="isTabSelected(0)">
|
|
332
|
-
<ng-template kendoTabTitle>
|
|
333
|
-
<kendo-svgicon [icon]="sharedService.kendoSVGIcon('graph')"></kendo-svgicon>
|
|
334
|
-
<span class="report-tab-title">Chart</span>
|
|
335
|
-
</ng-template>
|
|
336
|
-
<ng-template kendoTabContent class="report-tab-contents">
|
|
337
|
-
<app-dynamic-chart mjFillContainer #theChart [SkipData]="SkipData">
|
|
338
|
-
</app-dynamic-chart>
|
|
339
|
-
</ng-template>
|
|
340
|
-
</kendo-tabstrip-tab>
|
|
341
|
-
<kendo-tabstrip-tab [closable]="false" [selected]="isTabSelected(1)">
|
|
342
|
-
<ng-template kendoTabTitle>
|
|
343
|
-
<kendo-svgicon [icon]="sharedService.kendoSVGIcon('table')"></kendo-svgicon>
|
|
344
|
-
<span class="report-tab-title">Table</span>
|
|
345
|
-
</ng-template>
|
|
346
|
-
<ng-template kendoTabContent class="report-tab-contents">
|
|
347
|
-
<app-dynamic-grid mjFillContainer #theGrid [SkipData]="SkipData">
|
|
348
|
-
</app-dynamic-grid>
|
|
349
|
-
</ng-template>
|
|
350
|
-
</kendo-tabstrip-tab>
|
|
351
|
-
<kendo-tabstrip-tab [closable]="false" [selected]="isTabSelected(2)">
|
|
352
|
-
<ng-template kendoTabTitle>
|
|
353
|
-
<img src="assets/Skip - Mark Only - Small.png" class="avatar" style="height:16px;width:16px;" />
|
|
354
|
-
<span class="report-tab-title">Analysis</span>
|
|
355
|
-
</ng-template>
|
|
356
|
-
<ng-template kendoTabContent class="report-tab-contents">
|
|
357
|
-
<div mjFillContainer [innerHTML]="createAnalysisHtml()"></div>
|
|
358
|
-
</ng-template>
|
|
359
|
-
</kendo-tabstrip-tab>
|
|
360
|
-
<kendo-tabstrip-tab [closable]="false" [selected]="isTabSelected(3)">
|
|
361
|
-
<ng-template kendoTabTitle>
|
|
362
|
-
<kendo-svgicon [icon]="sharedService.kendoSVGIcon('file')"></kendo-svgicon>
|
|
363
|
-
<span class="report-tab-title">Explanation</span>
|
|
364
|
-
</ng-template>
|
|
365
|
-
<ng-template kendoTabContent class="report-tab-contents">
|
|
366
|
-
<div mjFillContainer>{{SkipData?.ReportExplanation || 'No Explanation Provided'}}</div>
|
|
367
|
-
</ng-template>
|
|
368
|
-
</kendo-tabstrip-tab>
|
|
369
|
-
<kendo-tabstrip-tab *ngIf="ShowDetailsTab" [selected]="isTabSelected(4)">
|
|
370
|
-
<ng-template kendoTabTitle>
|
|
371
|
-
<kendo-svgicon [icon]="sharedService.kendoSVGIcon('pageProperties')" name="page-properties"></kendo-svgicon>
|
|
372
|
-
<span class="report-tab-title">Details</span>
|
|
373
|
-
</ng-template>
|
|
374
|
-
<ng-template kendoTabContent class="report-tab-contents">
|
|
375
|
-
<div><span><b>SQL:</b></span><span><textarea [disabled]="true" mjFillContainer [fillHeight]="false">{{SkipData?.SQLResults?.sql}}</textarea></span></div>
|
|
376
|
-
<div *ngIf="ConversationID!==null"><span>Skip Conversation ID:</span><span>{{ConversationID}}</span></div>
|
|
377
|
-
<div *ngIf="ConversationDetailID!==null"><span>Skip Conversation Detail ID:</span><span>{{ConversationDetailID}}</span></div>
|
|
378
|
-
</ng-template>
|
|
379
|
-
</kendo-tabstrip-tab>
|
|
380
|
-
</kendo-tabstrip>
|
|
381
|
-
</div>
|
|
382
|
-
`, styles: [".report-tab-title { margin-left: 10px;}", ".create-report-button { \n margin-bottom: 10px;\n margin-top: 10px;\n }", ".report-link {\n margin-top: 10px;\n margin-bottom: 10px;\n cursor: pointer;\n color: blue;\n font-weight: bold;\n }"] }]
|
|
383
|
-
}], () => [{ type: i1.SharedService }, { type: i2.Router }], { ShowDetailsTab: [{
|
|
384
|
-
type: Input
|
|
385
|
-
}], ShowCreateReportButton: [{
|
|
386
|
-
type: Input
|
|
387
|
-
}], ConversationID: [{
|
|
388
|
-
type: Input
|
|
389
|
-
}], ConversationName: [{
|
|
390
|
-
type: Input
|
|
391
|
-
}], ConversationDetailID: [{
|
|
392
|
-
type: Input
|
|
393
|
-
}], SkipData: [{
|
|
394
|
-
type: Input
|
|
395
|
-
}], theGrid: [{
|
|
396
|
-
type: ViewChild,
|
|
397
|
-
args: ['theGrid', { static: false }]
|
|
398
|
-
}], theChart: [{
|
|
399
|
-
type: ViewChild,
|
|
400
|
-
args: ['theChart', { static: false }]
|
|
401
|
-
}], tabStrip: [{
|
|
402
|
-
type: ViewChild,
|
|
403
|
-
args: ['tabStrip', { static: false }]
|
|
404
|
-
}] }); })();
|
|
405
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicReportComponent, { className: "DynamicReportComponent", filePath: "src\\lib\\generic\\dynamic-report.ts", lineNumber: 90 }); })();
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { EntityInfo, PrimaryKeyValue } from '@memberjunction/core';
|
|
2
|
-
import { ResourceTypeEntity, UserNotificationEntity, ViewColumnInfo } from '@memberjunction/core-entities';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { NotificationService } from "@progress/kendo-angular-notification";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class SharedService {
|
|
7
|
-
private notificationService;
|
|
8
|
-
private static _instance;
|
|
9
|
-
private static _loaded;
|
|
10
|
-
private static _resourceTypes;
|
|
11
|
-
private tabChange;
|
|
12
|
-
tabChange$: Observable<unknown>;
|
|
13
|
-
constructor(notificationService: NotificationService);
|
|
14
|
-
static get Instance(): SharedService;
|
|
15
|
-
/**
|
|
16
|
-
* Returns the current session ID, which is automatically created when the service is instantiated.
|
|
17
|
-
*/
|
|
18
|
-
get SessionId(): string;
|
|
19
|
-
get ResourceTypes(): ResourceTypeEntity[];
|
|
20
|
-
get ViewResourceType(): ResourceTypeEntity;
|
|
21
|
-
get RecordResourceType(): ResourceTypeEntity;
|
|
22
|
-
get DashboardResourceType(): ResourceTypeEntity;
|
|
23
|
-
get ReportResourceType(): ResourceTypeEntity;
|
|
24
|
-
get SearchResultsResourceType(): ResourceTypeEntity;
|
|
25
|
-
ResourceTypeByID(id: number): ResourceTypeEntity | undefined;
|
|
26
|
-
ResourceTypeByName(name: string): ResourceTypeEntity | undefined;
|
|
27
|
-
static RefreshData(): Promise<void>;
|
|
28
|
-
static GeneratePrimaryKeyValueString(pkVals: PrimaryKeyValue[]): string;
|
|
29
|
-
static ParsePrimaryKeys(entity: EntityInfo, routeSegment: string): PrimaryKeyValue[];
|
|
30
|
-
FormatColumnValue(col: ViewColumnInfo, value: any, maxLength?: number, trailingChars?: string): any;
|
|
31
|
-
ConvertMarkdownStringToHtmlList(listType: HtmlListType, text: string): string;
|
|
32
|
-
InvokeManualResize(delay?: number): void;
|
|
33
|
-
PushStatusUpdates(): Observable<string>;
|
|
34
|
-
private _currentUserImage;
|
|
35
|
-
get CurrentUserImage(): string | Blob;
|
|
36
|
-
set CurrentUserImage(value: string | Blob);
|
|
37
|
-
private static _userNotifications;
|
|
38
|
-
static get UserNotifications(): UserNotificationEntity[];
|
|
39
|
-
static get UnreadUserNotifications(): UserNotificationEntity[];
|
|
40
|
-
static get UnreadUserNotificationCount(): number;
|
|
41
|
-
/**
|
|
42
|
-
* Creates a notification in the database and refreshes the UI. Returns the notification object.
|
|
43
|
-
* @param title
|
|
44
|
-
* @param message
|
|
45
|
-
* @param resourceTypeId
|
|
46
|
-
* @param resourceRecordId
|
|
47
|
-
* @param resourceConfiguration Any object, it is converted to a string by JSON.stringify and stored in the database
|
|
48
|
-
* @returns
|
|
49
|
-
*/
|
|
50
|
-
CreateNotification(title: string, message: string, resourceTypeId: number | null, resourceRecordId: number | null, resourceConfiguration: any | null): Promise<UserNotificationEntity>;
|
|
51
|
-
static RefreshUserNotifications(): Promise<void>;
|
|
52
|
-
/**
|
|
53
|
-
* Creates a message that is not saved to the User Notifications table, but is displayed to the user.
|
|
54
|
-
* @param message - text to display
|
|
55
|
-
* @param style - display styling
|
|
56
|
-
* @param hideAfter - option to auto hide after the specified delay in milliseconds
|
|
57
|
-
*/
|
|
58
|
-
CreateSimpleNotification(message: string, style?: "none" | "success" | "error" | "warning" | "info", hideAfter?: number): void;
|
|
59
|
-
private _resourceTypeMap;
|
|
60
|
-
/**
|
|
61
|
-
* Maps a Resource Type record Name column to the corresponding route segment
|
|
62
|
-
* @param resourceTypeName
|
|
63
|
-
* @returns
|
|
64
|
-
*/
|
|
65
|
-
mapResourceTypeNameToRouteSegment(resourceTypeName: string): string | null;
|
|
66
|
-
/**
|
|
67
|
-
* Maps a route segment to the corresponding Resource Type record Name column
|
|
68
|
-
* @param resourceRouteSegment
|
|
69
|
-
* @returns
|
|
70
|
-
*/
|
|
71
|
-
mapResourceTypeRouteSegmentToName(resourceRouteSegment: string): string | null;
|
|
72
|
-
kendoSVGIcon(iconName: string): any;
|
|
73
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SharedService, never>;
|
|
74
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SharedService>;
|
|
75
|
-
}
|
|
76
|
-
export declare const HtmlListType: {
|
|
77
|
-
readonly Unordered: "Unordered";
|
|
78
|
-
readonly Ordered: "Ordered";
|
|
79
|
-
};
|
|
80
|
-
export type HtmlListType = typeof HtmlListType[keyof typeof HtmlListType];
|
|
81
|
-
export declare const EventCodes: {
|
|
82
|
-
readonly ViewClicked: "ViewClicked";
|
|
83
|
-
readonly EntityRecordClicked: "EntityRecordClicked";
|
|
84
|
-
readonly AddDashboard: "AddDashboard";
|
|
85
|
-
readonly AddReport: "AddReport";
|
|
86
|
-
readonly AddQuery: "AddQuery";
|
|
87
|
-
readonly ViewCreated: "ViewCreated";
|
|
88
|
-
readonly ViewUpdated: "ViewUpdated";
|
|
89
|
-
readonly RunSearch: "RunSearch";
|
|
90
|
-
readonly ViewNotifications: "ViewNotifications";
|
|
91
|
-
readonly PushStatusUpdates: "PushStatusUpdates";
|
|
92
|
-
readonly UserNotificationsUpdated: "UserNotificationsUpdated";
|
|
93
|
-
};
|
|
94
|
-
export type EventCodes = typeof EventCodes[keyof typeof EventCodes];
|