sf-i-events 1.0.741 → 1.0.743
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/package.json +1 -1
- package/sf-i-events.d.ts +1 -1
- package/sf-i-events.js +53 -43
- package/src/sf-i-events.ts +56 -50
- package/src/util.ts +4 -1
- package/util.js +4 -1
package/package.json
CHANGED
package/sf-i-events.d.ts
CHANGED
|
@@ -565,7 +565,7 @@ export declare class SfIEvents extends LitElement {
|
|
|
565
565
|
renderCompletenessCsvForGraph: (dataBar: any, parameter: string) => void;
|
|
566
566
|
renderTimelinessCsvForGraph: (dataBar: any, parameter: string) => void;
|
|
567
567
|
renderComplianceCsvForGraph: (dataBar: any, parameter: string) => void;
|
|
568
|
-
renderCompletenessGraph: (divContainer: HTMLDivElement, selectedTab?: number, selectedSummary?: number) => void;
|
|
568
|
+
renderCompletenessGraph: (divContainer: HTMLDivElement, selectedTab?: number, selectedSummary?: number, title?: string) => void;
|
|
569
569
|
renderComplianceGraph: (divContainer: HTMLDivElement) => void;
|
|
570
570
|
renderTimelinessGraph: (divContainer: HTMLDivElement) => void;
|
|
571
571
|
renderRiskSeverityGraph: (divContainer: HTMLDivElement) => void;
|
package/sf-i-events.js
CHANGED
|
@@ -339,6 +339,9 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
339
339
|
.align-center {
|
|
340
340
|
align-items: center;
|
|
341
341
|
}
|
|
342
|
+
.flex-wrap {
|
|
343
|
+
flex-wrap: wrap;
|
|
344
|
+
}
|
|
342
345
|
.mt-10 {
|
|
343
346
|
margin-top: 10px;
|
|
344
347
|
}
|
|
@@ -382,6 +385,14 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
382
385
|
.td-wide {
|
|
383
386
|
min-width: 300px;
|
|
384
387
|
}
|
|
388
|
+
.td-head {
|
|
389
|
+
font-weight: 400;
|
|
390
|
+
padding-left: 5px;
|
|
391
|
+
vertical-align: middle;
|
|
392
|
+
font-size: 80%;
|
|
393
|
+
text-transform: capitalize;
|
|
394
|
+
text-align: left;
|
|
395
|
+
}
|
|
385
396
|
td {
|
|
386
397
|
padding: 5px;
|
|
387
398
|
font-size: 70%;
|
|
@@ -393,7 +404,6 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
393
404
|
}
|
|
394
405
|
.td-odd {
|
|
395
406
|
background-color: #efefef;
|
|
396
|
-
|
|
397
407
|
}
|
|
398
408
|
.td-even {
|
|
399
409
|
background-color: #dedede;
|
|
@@ -2104,8 +2114,8 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2104
2114
|
//console.log('flowGraph', this.flowGraph);
|
|
2105
2115
|
var html = '';
|
|
2106
2116
|
html += '<div class="mb-20 stream-event-list" part="stream-event-list-charts">';
|
|
2107
|
-
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="duration-title-container"><h4 part="duration-title">' + parametersTitle + '</h4><button id="button-refresh" part="button-duration-title" class="align-center d-flex justify-center"><h4 part="duration-title">' + parametersTitle + '</h4><span part="duration-title-icon" class="material-icons ml-10">refresh</span></button></div>';
|
|
2108
|
-
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="last-update-title-container"><h6 part="last-update-title">Last Updated on ' + this.lastupdated + '</h6></div>';
|
|
2117
|
+
html += '<div class="align-center d-flex flex-wrap align-center mb-10 w-100-m-0" part="duration-title-container"><h4 part="duration-title">' + parametersTitle + '</h4><button id="button-refresh" part="button-duration-title" class="align-center d-flex justify-center"><h4 part="duration-title">' + parametersTitle + '</h4><span part="duration-title-icon" class="material-icons ml-10">refresh</span></button></div>';
|
|
2118
|
+
html += '<div class="align-center d-flex flex-wrap align-center mb-10 w-100-m-0" part="last-update-title-container"><h6 part="last-update-title" class="align-center d-flex"><span class="material-symbols-outlined">update</span> Last Updated on ' + this.lastupdated + '</h6></div>';
|
|
2109
2119
|
if (showGraph) {
|
|
2110
2120
|
html += '<div part="stream-event-chart-selection" class="mb-20">';
|
|
2111
2121
|
html += '<div part="td-head" class="mb-5">Select Chart</div>';
|
|
@@ -2150,7 +2160,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2150
2160
|
var html = '';
|
|
2151
2161
|
html += '<div class="mb-20 stream-event-list" part="stream-event-list-charts">';
|
|
2152
2162
|
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="duration-title-container"><h4 part="duration-title">' + parametersTitle + '</h4><button id="button-refresh" part="button-duration-title" class="align-center d-flex justify-center"><h4 part="duration-title">' + parametersTitle + '</h4><span part="duration-title-icon" class="material-icons ml-10">refresh</span></button></div>';
|
|
2153
|
-
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="last-update-title-container"><h6 part="last-update-title">Last Updated on ' + this.lastupdated + '</h6></div>';
|
|
2163
|
+
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="last-update-title-container"><h6 part="last-update-title" class="align-center d-flex"><span class="material-symbols-outlined">update</span> Last Updated on ' + this.lastupdated + '</h6></div>';
|
|
2154
2164
|
if (showGraph) {
|
|
2155
2165
|
html += '<div class="chart-container d-flex scroll-x align-center"><div part="chart-item" class="chart-item"><canvas id="myChart"></canvas></div><div part="chart-item" class="chart-item"><canvas id="myChart4" class="gone"></canvas></div><div part="chart-item chart-item-middle" class="chart-item"><canvas id="myChart2" class="gone"></canvas></div><div part="chart-item" class="chart-item"><canvas id="myChart3" class="gone"></canvas></div></div>';
|
|
2156
2166
|
html += '<div id="chart-settings-controls" class="mt-20"></div>';
|
|
@@ -2195,26 +2205,25 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2195
2205
|
};
|
|
2196
2206
|
this.renderStatisticsFiltersTableStart = () => {
|
|
2197
2207
|
var html = '';
|
|
2208
|
+
html += '<div class="w-100 scroll-x">';
|
|
2198
2209
|
html += '<table id="statistics-table" part="statistics-table" class="statistics-table w-100"><tbody>';
|
|
2199
|
-
// html += '<table id="stream-filters-table" part="stream-filters-table" class="stream-filters-table"><thead><tr><td><div class="d-flex align-center justify-center"> </div></td><td><div class="d-flex align-center justify-center">Total</div></td><td><div class="d-flex align-center justify-center"><span class="material-icons color-not-started">schedule</span> Not Started</div></td><td><div class="d-flex align-center justify-center"><span class="material-symbols-outlined color-pending">pending</span> Pending Approval</div></td><td><div class="d-flex align-center justify-center"><span class="material-symbols-outlined color-rejected">block</span> Rejected</div></td><td><div class="d-flex align-center justify-center"><span class="material-symbols-outlined color-done">check_circle</span> Approved</div></td></tr></thead><tbody>';
|
|
2200
2210
|
return html;
|
|
2201
2211
|
};
|
|
2202
2212
|
this.renderStatisticsFiltersTableRow = () => {
|
|
2203
2213
|
var html = '';
|
|
2204
2214
|
html += '<tr class="tablerow">';
|
|
2205
|
-
html += '<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center">FILTER_CRITERIA_NAME</div><div>DASHBOARD_FILTER_NAME</div></div></td>';
|
|
2206
|
-
html += '<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-icons color-not-started">schedule</span> Not Started</div><div>DASHBOARD_NOT_STARTED</div></div></td>';
|
|
2207
|
-
html += '<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-pending">pending</span> Pending Approval</div><div>DASHBOARD_PENDING_APPROVAL</div></div></td>';
|
|
2208
|
-
html += '<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-rejected">block</span> Rejected</div><div>DASHBOARD_REJECTED</div></div></td>';
|
|
2209
|
-
html += '<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-done">check_circle</span> Approved</div><div>DASHBOARD_APPROVED</div></div></td>';
|
|
2210
|
-
html += '<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center">Total</div><div>DASHBOARD_TOTAL</div></div></td>';
|
|
2215
|
+
html += '<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center">FILTER_CRITERIA_NAME</div><div>DASHBOARD_FILTER_NAME</div></div></td>';
|
|
2216
|
+
html += '<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-icons color-not-started">schedule</span> Not Started</div><div>DASHBOARD_NOT_STARTED</div></div></td>';
|
|
2217
|
+
html += '<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-pending">pending</span> Pending Approval</div><div>DASHBOARD_PENDING_APPROVAL</div></div></td>';
|
|
2218
|
+
html += '<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-rejected">block</span> Rejected</div><div>DASHBOARD_REJECTED</div></div></td>';
|
|
2219
|
+
html += '<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-done">check_circle</span> Approved</div><div>DASHBOARD_APPROVED</div></div></td>';
|
|
2220
|
+
html += '<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center">Total</div><div>DASHBOARD_TOTAL</div></div></td>';
|
|
2211
2221
|
html += '</tr>';
|
|
2212
|
-
// html += '<tr class="tablerow"><td part="td-body" class="td-body"><span>DASHBOARD_FILTER_NAME</span></td><td><span>DASHBOARD_TOTAL</span></td><td><span>DASHBOARD_NOT_STARTED</span></td><td><span>DASHBOARD_PENDING_APPROVAL</span></td><td><span>DASHBOARD_REJECTED</span></td><td><span>DASHBOARD_APPROVED</span></td></tr>';
|
|
2213
2222
|
return html;
|
|
2214
2223
|
};
|
|
2215
2224
|
this.renderStatisticsFiltersTableEnd = () => {
|
|
2216
2225
|
var html = '';
|
|
2217
|
-
html += '</tbody></table>';
|
|
2226
|
+
html += '</tbody></table><div>';
|
|
2218
2227
|
return html;
|
|
2219
2228
|
};
|
|
2220
2229
|
this.getCalendarRowHide = (events, i, lastDay, month, firstDate = null, currDate = null) => {
|
|
@@ -2795,15 +2804,12 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2795
2804
|
approved += (_f = this.statistics[mmdd]["approved"]) !== null && _f !== void 0 ? _f : 0;
|
|
2796
2805
|
}
|
|
2797
2806
|
}
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
break;
|
|
2805
|
-
}
|
|
2806
|
-
}
|
|
2807
|
+
if (Object.keys(this.statisticsFiltersData).length > 0) {
|
|
2808
|
+
let filtercriteria = Object.keys(this.statisticsFiltersData)[0];
|
|
2809
|
+
let sortedFilters = Util.alphabeticalSort(this.statisticsMeta[filtercriteria]);
|
|
2810
|
+
for (let [filterindex, filterval] of sortedFilters.entries()) {
|
|
2811
|
+
let filtername = filterval.split(';')[0];
|
|
2812
|
+
let filterid = filterval.split(';')[1];
|
|
2807
2813
|
let filterTotal = 0, filterNotStarted = 0, filterPendingApproval = 0, filterRejected = 0, filterApproved = 0;
|
|
2808
2814
|
for (var i = iInit; i <= iLast; i++) {
|
|
2809
2815
|
let mmdd = "";
|
|
@@ -2826,16 +2832,20 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2826
2832
|
}
|
|
2827
2833
|
}
|
|
2828
2834
|
filtersTableHtml += this.renderStatisticsFiltersTableRow();
|
|
2835
|
+
if (filterindex % 2 == 0) {
|
|
2836
|
+
filtersTableHtml = filtersTableHtml.replace(/TD_BODY_CLASS/g, "td-light");
|
|
2837
|
+
}
|
|
2838
|
+
else {
|
|
2839
|
+
filtersTableHtml = filtersTableHtml.replace(/TD_BODY_CLASS/g, "td-dark");
|
|
2840
|
+
}
|
|
2829
2841
|
filtersTableHtml = filtersTableHtml.replace("FILTER_CRITERIA_NAME", filtercriteria + "");
|
|
2830
2842
|
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_FILTER_NAME", (filtername + "").replace(/\([^)]*\)/g, ""));
|
|
2831
2843
|
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_TOTAL", filterTotal + "");
|
|
2832
|
-
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_NOT_STARTED", filterNotStarted +
|
|
2833
|
-
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_APPROVED", filterApproved +
|
|
2834
|
-
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_PENDING_APPROVAL", filterPendingApproval +
|
|
2835
|
-
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_REJECTED", filterRejected +
|
|
2844
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_NOT_STARTED", filterNotStarted + Util.percentageString(filterNotStarted, filterTotal));
|
|
2845
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_APPROVED", filterApproved + Util.percentageString(filterApproved, filterTotal));
|
|
2846
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_PENDING_APPROVAL", filterPendingApproval + Util.percentageString(filterPendingApproval, filterTotal));
|
|
2847
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_REJECTED", filterRejected + Util.percentageString(filterRejected, filterTotal));
|
|
2836
2848
|
}
|
|
2837
|
-
}
|
|
2838
|
-
if (Object.keys(this.statisticsFiltersData).length > 0) {
|
|
2839
2849
|
filtersTableHtml += this.renderStatisticsFiltersTableEnd();
|
|
2840
2850
|
}
|
|
2841
2851
|
html += filtersTableHtml;
|
|
@@ -2852,6 +2862,10 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
2852
2862
|
html = html.replace("DASHBOARD_REJECTED", rejected + "");
|
|
2853
2863
|
this.htmlDataStats = 'Completeness<br /><br /><table class="w-100"><tr><th class="w-14">Total</th><th class="w-14">Not Started</th><th class="w-14">Approved</th><th class="w-14">Pending Approval</th><th class="w-14">Rejected</th><tr>';
|
|
2854
2864
|
this.htmlDataStats += '<tr><td class="w-14 text-center td-odd">' + total + '</td><td class="w-14 text-center td-odd">' + notStarted + '</td><td class="w-14 text-center td-odd">' + approved + '</td><td class="w-14 text-center td-odd">' + pendingApproval + '</td><td class="w-14 text-center td-odd">' + rejected + '</td></table>';
|
|
2865
|
+
if (Object.keys(this.statisticsFiltersData).length > 0) {
|
|
2866
|
+
this.htmlDataStats += '<br /><br />Report<br /><br />';
|
|
2867
|
+
this.htmlDataStats += filtersTableHtml;
|
|
2868
|
+
}
|
|
2855
2869
|
return html;
|
|
2856
2870
|
};
|
|
2857
2871
|
this.renderReporting = (event, mmddyyyy) => {
|
|
@@ -4223,10 +4237,8 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4223
4237
|
let target = ev.target;
|
|
4224
4238
|
let inputLabelCriteria = eventsContainer.querySelector('#input-label-criteria');
|
|
4225
4239
|
let selectFilterValues = eventsContainer.querySelector('#select-filter-values');
|
|
4226
|
-
// if(target.value == ""){
|
|
4227
4240
|
selectFilterValues.value = "";
|
|
4228
4241
|
this.processDateSelectionViewer(eventsContainer);
|
|
4229
|
-
// }
|
|
4230
4242
|
selectFilterValues.innerHTML = "";
|
|
4231
4243
|
let option = new Option();
|
|
4232
4244
|
option.value = "";
|
|
@@ -4259,10 +4271,8 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4259
4271
|
let target = ev.target;
|
|
4260
4272
|
let inputLabelCriteriaMobile = eventsContainer.querySelector('#input-label-criteria-mobile');
|
|
4261
4273
|
let selectFilterValuesMobile = eventsContainer.querySelector('#select-filter-values-mobile');
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
this.processDateSelectionViewer(eventsContainer);
|
|
4265
|
-
}
|
|
4274
|
+
selectFilterValuesMobile.value = "";
|
|
4275
|
+
this.processDateSelectionViewer(eventsContainer);
|
|
4266
4276
|
selectFilterValuesMobile.innerHTML = "";
|
|
4267
4277
|
let option = new Option();
|
|
4268
4278
|
option.value = "";
|
|
@@ -4729,7 +4739,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
4729
4739
|
}
|
|
4730
4740
|
this.attachHandlers(eventContainer, valueStart, valueEnd);
|
|
4731
4741
|
if (eventContainer.innerHTML.indexOf('myChart') >= 0) {
|
|
4732
|
-
this.renderCompletenessGraph(eventContainer, -1, 2);
|
|
4742
|
+
this.renderCompletenessGraph(eventContainer, -1, 2, "Completeness - " + "From " + new Date(valueStart).toLocaleDateString('en-IN') + " To " + new Date(valueEnd).toLocaleDateString('en-IN') + " " + this.htmlStatsFilter.replace(/Filters Selected /g, ""));
|
|
4733
4743
|
}
|
|
4734
4744
|
};
|
|
4735
4745
|
this.initFindRightCol = () => {
|
|
@@ -6397,11 +6407,11 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
6397
6407
|
html += '</div>';
|
|
6398
6408
|
html += '<div class="d-flex w-100">';
|
|
6399
6409
|
html += '<div class="calendar-left-col desktop-only flex-col justify-start align-end">';
|
|
6400
|
-
html += '<div class="title-item-date d-flex flex-col align-
|
|
6410
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
6401
6411
|
html += '<label part="input-label">Start Date</label>';
|
|
6402
6412
|
html += '<input id="stream-start-date" part="date-range-preselected" type="date" />';
|
|
6403
6413
|
html += '</div>';
|
|
6404
|
-
html += '<div class="title-item-date d-flex flex-col align-
|
|
6414
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
6405
6415
|
html += '<label part="input-label">End Date</label>';
|
|
6406
6416
|
html += '<input id="stream-end-date" part="date-range-preselected" type="date" />';
|
|
6407
6417
|
html += '</div>';
|
|
@@ -6414,11 +6424,11 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
6414
6424
|
html += '<div class="title-item-date">';
|
|
6415
6425
|
html += '<button id="button-this-year" part="button-range-preselected">This Year</button>';
|
|
6416
6426
|
html += '</div>';
|
|
6417
|
-
html += '<div class="title-item-date d-flex flex-col align-
|
|
6427
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
6418
6428
|
html += '<label part="input-label-filter-criteria" id="input-label-filter">Filter Criteria</label>';
|
|
6419
6429
|
html += '<select part="input-select-calendar-filter" id="select-filter-criteria"></select>';
|
|
6420
6430
|
html += '</div>';
|
|
6421
|
-
html += '<div class="title-item-date d-flex flex-col align-
|
|
6431
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
6422
6432
|
html += '<label part="input-label-filter-value" id="input-label-criteria"></label>';
|
|
6423
6433
|
html += '<select part="input-select-calendar-filter" id="select-filter-values"></select>';
|
|
6424
6434
|
html += '</div>';
|
|
@@ -7356,7 +7366,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
7356
7366
|
}
|
|
7357
7367
|
//console.log('rendering csv csvComplianceStats', this.csvComplianceStats);
|
|
7358
7368
|
};
|
|
7359
|
-
this.renderCompletenessGraph = (divContainer, selectedTab = -1, selectedSummary = -1) => {
|
|
7369
|
+
this.renderCompletenessGraph = (divContainer, selectedTab = -1, selectedSummary = -1, title = "Completeness") => {
|
|
7360
7370
|
this.clearSelectedGraphParam();
|
|
7361
7371
|
// this.clearSelectedLegend();
|
|
7362
7372
|
this.csvGraphStats = "";
|
|
@@ -7390,7 +7400,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
7390
7400
|
}]
|
|
7391
7401
|
};
|
|
7392
7402
|
this.renderChartSettings(divContainer, selectedTab, selectedSummary, ctx);
|
|
7393
|
-
this.renderChart(ctx, 'doughnut', data,
|
|
7403
|
+
this.renderChart(ctx, 'doughnut', data, title);
|
|
7394
7404
|
}
|
|
7395
7405
|
const data = {
|
|
7396
7406
|
labels: ['Approved', 'Not Started', 'Pending Approval', 'Rejected'],
|
|
@@ -7421,7 +7431,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
7421
7431
|
itemsCompliance[i].style.display = 'none';
|
|
7422
7432
|
}
|
|
7423
7433
|
this.renderChartSettings(divContainer, selectedTab, selectedSummary, ctx);
|
|
7424
|
-
this.renderChart(ctx, 'doughnut', data,
|
|
7434
|
+
this.renderChart(ctx, 'doughnut', data, title);
|
|
7425
7435
|
};
|
|
7426
7436
|
this.renderComplianceGraph = (divContainer) => {
|
|
7427
7437
|
//console.log('Rendering compliance graph...');
|
|
@@ -19403,7 +19413,7 @@ SfIEvents.styles = css `
|
|
|
19403
19413
|
display: none;
|
|
19404
19414
|
position: fixed;
|
|
19405
19415
|
bottom: 10px;
|
|
19406
|
-
|
|
19416
|
+
right: 10px
|
|
19407
19417
|
}
|
|
19408
19418
|
|
|
19409
19419
|
.small-icon {
|
package/src/sf-i-events.ts
CHANGED
|
@@ -343,6 +343,9 @@ export class SfIEvents extends LitElement {
|
|
|
343
343
|
.align-center {
|
|
344
344
|
align-items: center;
|
|
345
345
|
}
|
|
346
|
+
.flex-wrap {
|
|
347
|
+
flex-wrap: wrap;
|
|
348
|
+
}
|
|
346
349
|
.mt-10 {
|
|
347
350
|
margin-top: 10px;
|
|
348
351
|
}
|
|
@@ -386,6 +389,14 @@ export class SfIEvents extends LitElement {
|
|
|
386
389
|
.td-wide {
|
|
387
390
|
min-width: 300px;
|
|
388
391
|
}
|
|
392
|
+
.td-head {
|
|
393
|
+
font-weight: 400;
|
|
394
|
+
padding-left: 5px;
|
|
395
|
+
vertical-align: middle;
|
|
396
|
+
font-size: 80%;
|
|
397
|
+
text-transform: capitalize;
|
|
398
|
+
text-align: left;
|
|
399
|
+
}
|
|
389
400
|
td {
|
|
390
401
|
padding: 5px;
|
|
391
402
|
font-size: 70%;
|
|
@@ -397,7 +408,6 @@ export class SfIEvents extends LitElement {
|
|
|
397
408
|
}
|
|
398
409
|
.td-odd {
|
|
399
410
|
background-color: #efefef;
|
|
400
|
-
|
|
401
411
|
}
|
|
402
412
|
.td-even {
|
|
403
413
|
background-color: #dedede;
|
|
@@ -2639,7 +2649,7 @@ export class SfIEvents extends LitElement {
|
|
|
2639
2649
|
display: none;
|
|
2640
2650
|
position: fixed;
|
|
2641
2651
|
bottom: 10px;
|
|
2642
|
-
|
|
2652
|
+
right: 10px
|
|
2643
2653
|
}
|
|
2644
2654
|
|
|
2645
2655
|
.small-icon {
|
|
@@ -4177,8 +4187,8 @@ export class SfIEvents extends LitElement {
|
|
|
4177
4187
|
var html = '';
|
|
4178
4188
|
|
|
4179
4189
|
html += '<div class="mb-20 stream-event-list" part="stream-event-list-charts">';
|
|
4180
|
-
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="duration-title-container"><h4 part="duration-title">' + parametersTitle + '</h4><button id="button-refresh" part="button-duration-title" class="align-center d-flex justify-center"><h4 part="duration-title">' + parametersTitle + '</h4><span part="duration-title-icon" class="material-icons ml-10">refresh</span></button></div>';
|
|
4181
|
-
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="last-update-title-container"><h6 part="last-update-title">Last Updated on ' + this.lastupdated + '</h6></div>';
|
|
4190
|
+
html += '<div class="align-center d-flex flex-wrap align-center mb-10 w-100-m-0" part="duration-title-container"><h4 part="duration-title">' + parametersTitle + '</h4><button id="button-refresh" part="button-duration-title" class="align-center d-flex justify-center"><h4 part="duration-title">' + parametersTitle + '</h4><span part="duration-title-icon" class="material-icons ml-10">refresh</span></button></div>';
|
|
4191
|
+
html += '<div class="align-center d-flex flex-wrap align-center mb-10 w-100-m-0" part="last-update-title-container"><h6 part="last-update-title" class="align-center d-flex"><span class="material-symbols-outlined">update</span> Last Updated on ' + this.lastupdated + '</h6></div>';
|
|
4182
4192
|
if(showGraph) {
|
|
4183
4193
|
html += '<div part="stream-event-chart-selection" class="mb-20">';
|
|
4184
4194
|
html += '<div part="td-head" class="mb-5">Select Chart</div>';
|
|
@@ -4230,7 +4240,7 @@ export class SfIEvents extends LitElement {
|
|
|
4230
4240
|
|
|
4231
4241
|
html += '<div class="mb-20 stream-event-list" part="stream-event-list-charts">';
|
|
4232
4242
|
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="duration-title-container"><h4 part="duration-title">' + parametersTitle + '</h4><button id="button-refresh" part="button-duration-title" class="align-center d-flex justify-center"><h4 part="duration-title">' + parametersTitle + '</h4><span part="duration-title-icon" class="material-icons ml-10">refresh</span></button></div>';
|
|
4233
|
-
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="last-update-title-container"><h6 part="last-update-title">Last Updated on ' + this.lastupdated + '</h6></div>';
|
|
4243
|
+
html += '<div class="align-center d-flex flex-wrap mb-10 w-100-m-0" part="last-update-title-container"><h6 part="last-update-title" class="align-center d-flex"><span class="material-symbols-outlined">update</span> Last Updated on ' + this.lastupdated + '</h6></div>';
|
|
4234
4244
|
if(showGraph) {
|
|
4235
4245
|
html += '<div class="chart-container d-flex scroll-x align-center"><div part="chart-item" class="chart-item"><canvas id="myChart"></canvas></div><div part="chart-item" class="chart-item"><canvas id="myChart4" class="gone"></canvas></div><div part="chart-item chart-item-middle" class="chart-item"><canvas id="myChart2" class="gone"></canvas></div><div part="chart-item" class="chart-item"><canvas id="myChart3" class="gone"></canvas></div></div>';
|
|
4236
4246
|
html += '<div id="chart-settings-controls" class="mt-20"></div>'
|
|
@@ -4294,9 +4304,8 @@ export class SfIEvents extends LitElement {
|
|
|
4294
4304
|
renderStatisticsFiltersTableStart = () => {
|
|
4295
4305
|
|
|
4296
4306
|
var html = '';
|
|
4297
|
-
|
|
4307
|
+
html += '<div class="w-100 scroll-x">'
|
|
4298
4308
|
html += '<table id="statistics-table" part="statistics-table" class="statistics-table w-100"><tbody>';
|
|
4299
|
-
// html += '<table id="stream-filters-table" part="stream-filters-table" class="stream-filters-table"><thead><tr><td><div class="d-flex align-center justify-center"> </div></td><td><div class="d-flex align-center justify-center">Total</div></td><td><div class="d-flex align-center justify-center"><span class="material-icons color-not-started">schedule</span> Not Started</div></td><td><div class="d-flex align-center justify-center"><span class="material-symbols-outlined color-pending">pending</span> Pending Approval</div></td><td><div class="d-flex align-center justify-center"><span class="material-symbols-outlined color-rejected">block</span> Rejected</div></td><td><div class="d-flex align-center justify-center"><span class="material-symbols-outlined color-done">check_circle</span> Approved</div></td></tr></thead><tbody>';
|
|
4300
4309
|
|
|
4301
4310
|
return html;
|
|
4302
4311
|
|
|
@@ -4306,14 +4315,13 @@ export class SfIEvents extends LitElement {
|
|
|
4306
4315
|
|
|
4307
4316
|
var html = '';
|
|
4308
4317
|
html += '<tr class="tablerow">'
|
|
4309
|
-
html +='<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center">FILTER_CRITERIA_NAME</div><div>DASHBOARD_FILTER_NAME</div></div></td>'
|
|
4310
|
-
html +='<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-icons color-not-started">schedule</span> Not Started</div><div>DASHBOARD_NOT_STARTED</div></div></td>'
|
|
4311
|
-
html +='<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-pending">pending</span> Pending Approval</div><div>DASHBOARD_PENDING_APPROVAL</div></div></td>'
|
|
4312
|
-
html +='<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-rejected">block</span> Rejected</div><div>DASHBOARD_REJECTED</div></div></td>'
|
|
4313
|
-
html +='<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-done">check_circle</span> Approved</div><div>DASHBOARD_APPROVED</div></div></td>'
|
|
4314
|
-
html +='<td part="td-body" class="td-body"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center">Total</div><div>DASHBOARD_TOTAL</div></div></td>'
|
|
4318
|
+
html +='<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center">FILTER_CRITERIA_NAME</div><div>DASHBOARD_FILTER_NAME</div></div></td>'
|
|
4319
|
+
html +='<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-icons color-not-started">schedule</span> Not Started</div><div>DASHBOARD_NOT_STARTED</div></div></td>'
|
|
4320
|
+
html +='<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-pending">pending</span> Pending Approval</div><div>DASHBOARD_PENDING_APPROVAL</div></div></td>'
|
|
4321
|
+
html +='<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-rejected">block</span> Rejected</div><div>DASHBOARD_REJECTED</div></div></td>'
|
|
4322
|
+
html +='<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center"><span class="small-icon material-symbols-outlined color-done">check_circle</span> Approved</div><div>DASHBOARD_APPROVED</div></div></td>'
|
|
4323
|
+
html +='<td part="td-body" class="td-body TD_BODY_CLASS"><div class="d-flex align-center flex-wrap"><div part="td-head" class="pl-0-imp w-100 d-flex align-center">Total</div><div>DASHBOARD_TOTAL</div></div></td>'
|
|
4315
4324
|
html += '</tr>';
|
|
4316
|
-
// html += '<tr class="tablerow"><td part="td-body" class="td-body"><span>DASHBOARD_FILTER_NAME</span></td><td><span>DASHBOARD_TOTAL</span></td><td><span>DASHBOARD_NOT_STARTED</span></td><td><span>DASHBOARD_PENDING_APPROVAL</span></td><td><span>DASHBOARD_REJECTED</span></td><td><span>DASHBOARD_APPROVED</span></td></tr>';
|
|
4317
4325
|
|
|
4318
4326
|
return html;
|
|
4319
4327
|
|
|
@@ -4322,7 +4330,7 @@ export class SfIEvents extends LitElement {
|
|
|
4322
4330
|
renderStatisticsFiltersTableEnd = () => {
|
|
4323
4331
|
|
|
4324
4332
|
var html = '';
|
|
4325
|
-
html += '</tbody></table>';
|
|
4333
|
+
html += '</tbody></table><div>';
|
|
4326
4334
|
|
|
4327
4335
|
return html;
|
|
4328
4336
|
|
|
@@ -5041,15 +5049,12 @@ export class SfIEvents extends LitElement {
|
|
|
5041
5049
|
|
|
5042
5050
|
}
|
|
5043
5051
|
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
break;
|
|
5051
|
-
}
|
|
5052
|
-
}
|
|
5052
|
+
if(Object.keys(this.statisticsFiltersData).length > 0){
|
|
5053
|
+
let filtercriteria = Object.keys(this.statisticsFiltersData)[0]
|
|
5054
|
+
let sortedFilters = Util.alphabeticalSort(this.statisticsMeta[filtercriteria])
|
|
5055
|
+
for(let [filterindex, filterval] of sortedFilters.entries()){
|
|
5056
|
+
let filtername = filterval.split(';')[0]
|
|
5057
|
+
let filterid = filterval.split(';')[1]
|
|
5053
5058
|
let filterTotal = 0, filterNotStarted = 0, filterPendingApproval = 0, filterRejected = 0, filterApproved = 0;
|
|
5054
5059
|
for(var i = iInit; i <= iLast; i++) {
|
|
5055
5060
|
|
|
@@ -5072,19 +5077,20 @@ export class SfIEvents extends LitElement {
|
|
|
5072
5077
|
}
|
|
5073
5078
|
}
|
|
5074
5079
|
}
|
|
5075
|
-
|
|
5076
5080
|
filtersTableHtml += this.renderStatisticsFiltersTableRow()
|
|
5081
|
+
if(filterindex % 2 == 0){
|
|
5082
|
+
filtersTableHtml = filtersTableHtml.replace(/TD_BODY_CLASS/g, "td-light");
|
|
5083
|
+
}else{
|
|
5084
|
+
filtersTableHtml = filtersTableHtml.replace(/TD_BODY_CLASS/g, "td-dark");
|
|
5085
|
+
}
|
|
5077
5086
|
filtersTableHtml = filtersTableHtml.replace("FILTER_CRITERIA_NAME", filtercriteria+"");
|
|
5078
5087
|
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_FILTER_NAME", (filtername+"").replace(/\([^)]*\)/g,""));
|
|
5079
5088
|
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_TOTAL", filterTotal+"");
|
|
5080
|
-
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_NOT_STARTED", filterNotStarted+
|
|
5081
|
-
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_APPROVED", filterApproved
|
|
5082
|
-
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_PENDING_APPROVAL", filterPendingApproval
|
|
5083
|
-
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_REJECTED", filterRejected
|
|
5089
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_NOT_STARTED", filterNotStarted+ Util.percentageString(filterNotStarted, filterTotal));
|
|
5090
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_APPROVED", filterApproved + Util.percentageString(filterApproved, filterTotal));
|
|
5091
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_PENDING_APPROVAL", filterPendingApproval + Util.percentageString(filterPendingApproval, filterTotal));
|
|
5092
|
+
filtersTableHtml = filtersTableHtml.replace("DASHBOARD_REJECTED", filterRejected + Util.percentageString(filterRejected, filterTotal));
|
|
5084
5093
|
}
|
|
5085
|
-
}
|
|
5086
|
-
|
|
5087
|
-
if(Object.keys(this.statisticsFiltersData).length > 0){
|
|
5088
5094
|
filtersTableHtml += this.renderStatisticsFiltersTableEnd()
|
|
5089
5095
|
}
|
|
5090
5096
|
|
|
@@ -5107,6 +5113,10 @@ export class SfIEvents extends LitElement {
|
|
|
5107
5113
|
|
|
5108
5114
|
this.htmlDataStats = 'Completeness<br /><br /><table class="w-100"><tr><th class="w-14">Total</th><th class="w-14">Not Started</th><th class="w-14">Approved</th><th class="w-14">Pending Approval</th><th class="w-14">Rejected</th><tr>';
|
|
5109
5115
|
this.htmlDataStats += '<tr><td class="w-14 text-center td-odd">'+total+'</td><td class="w-14 text-center td-odd">'+notStarted+'</td><td class="w-14 text-center td-odd">'+approved+'</td><td class="w-14 text-center td-odd">'+pendingApproval+'</td><td class="w-14 text-center td-odd">'+rejected+'</td></table>'
|
|
5116
|
+
if(Object.keys(this.statisticsFiltersData).length > 0){
|
|
5117
|
+
this.htmlDataStats += '<br /><br />Report<br /><br />'
|
|
5118
|
+
this.htmlDataStats += filtersTableHtml
|
|
5119
|
+
}
|
|
5110
5120
|
|
|
5111
5121
|
return html;
|
|
5112
5122
|
}
|
|
@@ -6716,10 +6726,8 @@ export class SfIEvents extends LitElement {
|
|
|
6716
6726
|
let target = ev.target as HTMLSelectElement
|
|
6717
6727
|
let inputLabelCriteria = eventsContainer.querySelector('#input-label-criteria') as HTMLLabelElement
|
|
6718
6728
|
let selectFilterValues = eventsContainer.querySelector('#select-filter-values') as HTMLSelectElement
|
|
6719
|
-
|
|
6720
|
-
|
|
6721
|
-
this.processDateSelectionViewer(eventsContainer)
|
|
6722
|
-
// }
|
|
6729
|
+
selectFilterValues.value = ""
|
|
6730
|
+
this.processDateSelectionViewer(eventsContainer)
|
|
6723
6731
|
|
|
6724
6732
|
selectFilterValues.innerHTML = ""
|
|
6725
6733
|
let option = new Option()
|
|
@@ -6752,10 +6760,8 @@ export class SfIEvents extends LitElement {
|
|
|
6752
6760
|
let target = ev.target as HTMLSelectElement
|
|
6753
6761
|
let inputLabelCriteriaMobile = eventsContainer.querySelector('#input-label-criteria-mobile') as HTMLLabelElement
|
|
6754
6762
|
let selectFilterValuesMobile = eventsContainer.querySelector('#select-filter-values-mobile') as HTMLSelectElement
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
this.processDateSelectionViewer(eventsContainer)
|
|
6758
|
-
}
|
|
6763
|
+
selectFilterValuesMobile.value = ""
|
|
6764
|
+
this.processDateSelectionViewer(eventsContainer)
|
|
6759
6765
|
|
|
6760
6766
|
selectFilterValuesMobile.innerHTML = ""
|
|
6761
6767
|
let option = new Option()
|
|
@@ -7323,7 +7329,7 @@ export class SfIEvents extends LitElement {
|
|
|
7323
7329
|
|
|
7324
7330
|
if(eventContainer.innerHTML.indexOf('myChart') >= 0) {
|
|
7325
7331
|
|
|
7326
|
-
this.renderCompletenessGraph(eventContainer, -1, 2);
|
|
7332
|
+
this.renderCompletenessGraph(eventContainer, -1, 2, "Completeness - " + "From " + new Date(valueStart).toLocaleDateString('en-IN') + " To " + new Date(valueEnd).toLocaleDateString('en-IN') + " " + this.htmlStatsFilter.replace(/Filters Selected /g,""));
|
|
7327
7333
|
|
|
7328
7334
|
}
|
|
7329
7335
|
|
|
@@ -9394,11 +9400,11 @@ export class SfIEvents extends LitElement {
|
|
|
9394
9400
|
html += '<div class="d-flex w-100">';
|
|
9395
9401
|
html += '<div class="calendar-left-col desktop-only flex-col justify-start align-end">';
|
|
9396
9402
|
|
|
9397
|
-
html += '<div class="title-item-date d-flex flex-col align-
|
|
9403
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
9398
9404
|
html += '<label part="input-label">Start Date</label>'
|
|
9399
9405
|
html += '<input id="stream-start-date" part="date-range-preselected" type="date" />'
|
|
9400
9406
|
html += '</div>';
|
|
9401
|
-
html += '<div class="title-item-date d-flex flex-col align-
|
|
9407
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
9402
9408
|
html += '<label part="input-label">End Date</label>'
|
|
9403
9409
|
html += '<input id="stream-end-date" part="date-range-preselected" type="date" />'
|
|
9404
9410
|
html += '</div>';
|
|
@@ -9411,11 +9417,11 @@ export class SfIEvents extends LitElement {
|
|
|
9411
9417
|
html += '<div class="title-item-date">';
|
|
9412
9418
|
html += '<button id="button-this-year" part="button-range-preselected">This Year</button>'
|
|
9413
9419
|
html += '</div>';
|
|
9414
|
-
html += '<div class="title-item-date d-flex flex-col align-
|
|
9420
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
9415
9421
|
html += '<label part="input-label-filter-criteria" id="input-label-filter">Filter Criteria</label>'
|
|
9416
9422
|
html += '<select part="input-select-calendar-filter" id="select-filter-criteria"></select>'
|
|
9417
9423
|
html += '</div>';
|
|
9418
|
-
html += '<div class="title-item-date d-flex flex-col align-
|
|
9424
|
+
html += '<div class="title-item-date d-flex flex-col align-start">';
|
|
9419
9425
|
html += '<label part="input-label-filter-value" id="input-label-criteria"></label>'
|
|
9420
9426
|
html += '<select part="input-select-calendar-filter" id="select-filter-values"></select>'
|
|
9421
9427
|
html += '</div>';
|
|
@@ -10642,7 +10648,7 @@ export class SfIEvents extends LitElement {
|
|
|
10642
10648
|
|
|
10643
10649
|
}
|
|
10644
10650
|
|
|
10645
|
-
renderCompletenessGraph = (divContainer: HTMLDivElement, selectedTab: number = -1, selectedSummary: number = -1) => {
|
|
10651
|
+
renderCompletenessGraph = (divContainer: HTMLDivElement, selectedTab: number = -1, selectedSummary: number = -1, title: string = "Completeness") => {
|
|
10646
10652
|
|
|
10647
10653
|
this.clearSelectedGraphParam();
|
|
10648
10654
|
// this.clearSelectedLegend();
|
|
@@ -10683,7 +10689,7 @@ export class SfIEvents extends LitElement {
|
|
|
10683
10689
|
}
|
|
10684
10690
|
|
|
10685
10691
|
this.renderChartSettings(divContainer, selectedTab, selectedSummary, ctx);
|
|
10686
|
-
this.renderChart(ctx, 'doughnut', data,
|
|
10692
|
+
this.renderChart(ctx, 'doughnut', data, title)
|
|
10687
10693
|
|
|
10688
10694
|
}
|
|
10689
10695
|
const data = {
|
|
@@ -10700,10 +10706,10 @@ export class SfIEvents extends LitElement {
|
|
|
10700
10706
|
]
|
|
10701
10707
|
}]
|
|
10702
10708
|
}
|
|
10703
|
-
|
|
10709
|
+
|
|
10704
10710
|
this.csvGraphStats += 'Completeness,Approved,Not Started,Pending Approval,Rejected,Total\n';
|
|
10705
10711
|
this.csvGraphStats += 'Total,'+dataApproved+','+dataNotStarted+','+dataPendingApproval+','+dataRejected+','+(parseInt(dataApproved)+parseInt(dataNotStarted)+parseInt(dataPendingApproval)+parseInt(dataRejected))+'\n';
|
|
10706
|
-
|
|
10712
|
+
|
|
10707
10713
|
const itemsTimeliness = divContainer.querySelectorAll('.stat-timeliness') as NodeListOf<HTMLElement>;
|
|
10708
10714
|
for(var i = 0; i < itemsTimeliness.length; i++) {
|
|
10709
10715
|
itemsTimeliness[i].style.display = 'none';
|
|
@@ -10717,7 +10723,7 @@ export class SfIEvents extends LitElement {
|
|
|
10717
10723
|
itemsCompliance[i].style.display = 'none';
|
|
10718
10724
|
}
|
|
10719
10725
|
this.renderChartSettings(divContainer, selectedTab, selectedSummary, ctx);
|
|
10720
|
-
this.renderChart(ctx, 'doughnut', data,
|
|
10726
|
+
this.renderChart(ctx, 'doughnut', data, title)
|
|
10721
10727
|
|
|
10722
10728
|
}
|
|
10723
10729
|
|
package/src/util.ts
CHANGED
|
@@ -446,8 +446,11 @@ function alphabeticalSort(arr:string[]){
|
|
|
446
446
|
}
|
|
447
447
|
|
|
448
448
|
function percentageString(val: number, valTotal: number){
|
|
449
|
+
if(valTotal == 0){
|
|
450
|
+
return ""
|
|
451
|
+
}
|
|
449
452
|
let num = (100 * val) / valTotal
|
|
450
|
-
return (Math.round((num + Number.EPSILON) * 100) / 100) + "%"
|
|
453
|
+
return " (" + (Math.round((num + Number.EPSILON) * 100) / 100) + "%)"
|
|
451
454
|
}
|
|
452
455
|
|
|
453
456
|
const exportFunctions = {
|
package/util.js
CHANGED
|
@@ -373,8 +373,11 @@ function alphabeticalSort(arr) {
|
|
|
373
373
|
return arrSorted;
|
|
374
374
|
}
|
|
375
375
|
function percentageString(val, valTotal) {
|
|
376
|
+
if (valTotal == 0) {
|
|
377
|
+
return "";
|
|
378
|
+
}
|
|
376
379
|
let num = (100 * val) / valTotal;
|
|
377
|
-
return (Math.round((num + Number.EPSILON) * 100) / 100) + "%";
|
|
380
|
+
return " (" + (Math.round((num + Number.EPSILON) * 100) / 100) + "%)";
|
|
378
381
|
}
|
|
379
382
|
const exportFunctions = {
|
|
380
383
|
callApiPresignedDelete, callApiPresignedGet, callApiPresigned, jsonObjectToHtml, clearListeners, isInteger, callApi, validateName, readCookie, timeSince, createDiagonalPattern1, createDiagonalPattern2, createDiagonalPattern3, getRandomColor, convertToCSV, parseCsv, titleCase, alphabeticalSort, percentageString
|