sf-i-events 1.0.57 → 1.0.59

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sf-i-events",
3
3
  "private": false,
4
- "version": "1.0.57",
4
+ "version": "1.0.59",
5
5
  "description": "Superflows Navigation Component",
6
6
  "main": "sf-i-events.js",
7
7
  "module": "sf-i-events.js",
@@ -51,12 +51,14 @@
51
51
  "license": "MIT",
52
52
  "repository": "superflows-dev/sf-i-events",
53
53
  "dependencies": {
54
+ "chart.js": "^4.3.0",
54
55
  "fs": "^0.0.1-security",
55
56
  "lit": "^2.2.4",
57
+ "patternomaly": "^1.3.2",
58
+ "sf-i-elastic-text": "^1.0.1",
56
59
  "sf-i-form": "^1.0.59",
57
60
  "sf-i-select": "^1.0.80",
58
61
  "sf-i-sub-select": "^1.0.68",
59
- "sf-i-elastic-text": "^1.0.1",
60
62
  "sf-i-uploader": "^1.0.13",
61
63
  "sinon": "^15.0.1"
62
64
  },
package/sf-i-events.d.ts CHANGED
@@ -139,6 +139,7 @@ export declare class SfIEvents extends LitElement {
139
139
  renderEventDetail: (event: any, mmddyyyy: any) => void;
140
140
  renderCalendar: () => void;
141
141
  renderRoleTabs: () => void;
142
+ renderChart: (ctx: any, type: any, data: any) => void;
142
143
  getCurrentTab: () => string;
143
144
  renderTabs: (selectedTab: string) => void;
144
145
  renderMappingTabs: (selectedTab: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"sf-i-events.d.ts","sourceRoot":"","sources":["src/sf-i-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sf-i-events.d.ts","sourceRoot":"","sources":["src/sf-i-events.ts"],"names":[],"mappings":"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"}
package/sf-i-events.js CHANGED
@@ -13,6 +13,7 @@ import { LitElement, html, css } from 'lit';
13
13
  import { customElement, query, queryAssignedElements, property } from 'lit/decorators.js';
14
14
  // import {customElement, query, property} from 'lit/decorators.js';
15
15
  import Util from './util';
16
+ import { Chart, registerables, Colors } from 'chart.js';
16
17
  // import {LitElement, html, css} from 'lit';
17
18
  // import {customElement} from 'lit/decorators.js';
18
19
  /*
@@ -270,22 +271,17 @@ let SfIEvents = class SfIEvents extends LitElement {
270
271
  this.renderStreamEvents = (index, month, year) => {
271
272
  const lastDay = this.getLastDayOfMonth(month, year);
272
273
  var html = '<div id="stream-event-' + index + '" part="stream-event-list" class="stream-event-list">';
274
+ html += '<div class="mb-20">';
275
+ html += '<canvas id="myChart"></canvas>';
276
+ html += '</div>';
273
277
  var total = 0, notStarted = 0, approved = 0, inProgress = 0;
274
- for (var i = 1; i <= lastDay; i++) {
275
- const mmdd = ("0" + (month + 1)).slice(-2) + "/" + ("0" + i).slice(-2);
276
- if (this.events[mmdd] != null) {
277
- for (var j = 0; j < this.events[mmdd].length; j++) {
278
- total++;
279
- }
280
- }
281
- }
282
278
  html += '<div id="stream-event-summary" part="stream-event-total" class="d-flex">';
283
- html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Total:</span> <strong>' + total + '</strong></div>';
284
- html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Approved:</span> <strong>DASHBOARD_APPROVED</strong></div>';
285
- html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Not Started:</span> <strong>DASHBOARD_NOT_STARTED</strong></div>';
286
- html += '<div part="badge-dashboard" class="mr-10"><span class="muted">In Progress:</span> <strong>DASHBOARD_IN_PROGRESS</strong></div>';
279
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Total:</span> <span id="graph-total">DASHBOARD_TOTAL</span></div>';
280
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Approved:</span> <span id="graph-approved">DASHBOARD_APPROVED</span></div>';
281
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Not Started:</span> <span id="graph-not-started">DASHBOARD_NOT_STARTED</span></div>';
282
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">In Progress:</span> <span id="graph-in-progress">DASHBOARD_IN_PROGRESS</span></div>';
287
283
  html += '</div>';
288
- for (i = 1; i <= lastDay; i++) {
284
+ for (var i = 1; i <= lastDay; i++) {
289
285
  const mmdd = ("0" + (month + 1)).slice(-2) + "/" + ("0" + i).slice(-2);
290
286
  var hide = true;
291
287
  if (this.events[mmdd] != null) {
@@ -312,6 +308,7 @@ let SfIEvents = class SfIEvents extends LitElement {
312
308
  html += '<div part="stream-event-selected-date">' + ("0" + i).slice(-2) + ' |</div>';
313
309
  html += '<div class="stream-event-list-container flex-grow">';
314
310
  for (var j = 0; j < this.events[mmdd].length; j++) {
311
+ total++;
315
312
  html += '<div class="stream-events-container flex-grow">';
316
313
  html += '<table>';
317
314
  html += '<thead>';
@@ -426,6 +423,7 @@ let SfIEvents = class SfIEvents extends LitElement {
426
423
  html += '</div>';
427
424
  inProgress = total - notStarted - approved;
428
425
  console.log('progress', total, notStarted, approved);
426
+ html = html.replace("DASHBOARD_TOTAL", total + "");
429
427
  html = html.replace("DASHBOARD_NOT_STARTED", notStarted + "");
430
428
  html = html.replace("DASHBOARD_APPROVED", approved + "");
431
429
  html = html.replace("DASHBOARD_IN_PROGRESS", inProgress + "");
@@ -433,6 +431,13 @@ let SfIEvents = class SfIEvents extends LitElement {
433
431
  };
434
432
  this.renderUpcomingEvents = (index, startDate, count) => {
435
433
  var html = '<div id="stream-event-' + index + '" part="stream-event-list" class="stream-event-list">';
434
+ var total = 0, notStarted = 0, approved = 0, inProgress = 0;
435
+ html += '<div id="stream-event-summary" part="stream-event-total" class="d-flex">';
436
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Total:</span> <strong>DASHBOARD_TOTAL</strong></div>';
437
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Approved:</span> <strong>DASHBOARD_APPROVED</strong></div>';
438
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Not Started:</span> <strong>DASHBOARD_NOT_STARTED</strong></div>';
439
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">In Progress:</span> <strong>DASHBOARD_IN_PROGRESS</strong></div>';
440
+ html += '</div>';
436
441
  for (var i = 1; i <= count; i++) {
437
442
  const mmdd = ("0" + (startDate.getMonth() + 1)).slice(-2) + "/" + ("0" + startDate.getDate()).slice(-2);
438
443
  var hide = true;
@@ -462,6 +467,7 @@ let SfIEvents = class SfIEvents extends LitElement {
462
467
  html += '<div part="stream-event-selected-date">' + ("0" + startDate.getDate()).slice(-2) + '/' + (startDate.getMonth() + 1) + ' |</div>';
463
468
  html += '<div class="stream-event-list-container flex-grow">';
464
469
  for (var j = 0; j < this.events[mmdd].length; j++) {
470
+ total++;
465
471
  html += '<div class="stream-events-container flex-grow">';
466
472
  html += '<table>';
467
473
  html += '<thead>';
@@ -478,6 +484,31 @@ let SfIEvents = class SfIEvents extends LitElement {
478
484
  // }
479
485
  html += '<th part="td-head">';
480
486
  html += '</th>';
487
+ if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
488
+ approved++;
489
+ html += '<th part="td-head">';
490
+ html += 'Status';
491
+ html += '</th>';
492
+ }
493
+ console.log('listing docs', this.events[mmdd][j].documents);
494
+ if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
495
+ html += '<th part="td-head">';
496
+ html += 'Docs';
497
+ html += '</th>';
498
+ }
499
+ else {
500
+ notStarted++;
501
+ }
502
+ if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
503
+ html += '<th part="td-head">';
504
+ html += 'Comments';
505
+ html += '</th>';
506
+ }
507
+ if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
508
+ html += '<th part="td-head">';
509
+ html += 'Updated';
510
+ html += '</th>';
511
+ }
481
512
  // for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
482
513
  // html += '<th part="td-head">';
483
514
  // html += Object.keys(this.events[mmdd][j])[k];
@@ -508,6 +539,28 @@ let SfIEvents = class SfIEvents extends LitElement {
508
539
  html += '<td id="td-expand-' + i + '" part="td-body">';
509
540
  html += '<button id="button-unmapped-expand-' + mmdd.replace('/', '-') + '-' + j + '" part="button-icon-small" class="material-icons button-expand">open_in_new</button>';
510
541
  html += '</td>';
542
+ if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
543
+ html += '<td part="td-body">';
544
+ html += '<span class="material-icons color-done">check_circle</span>';
545
+ html += '</td>';
546
+ }
547
+ if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
548
+ html += '<td part="td-body">';
549
+ html += '<span class="material-icons muted">description</span>';
550
+ html += JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length;
551
+ html += '</td>';
552
+ }
553
+ if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
554
+ html += '<td part="td-body">';
555
+ html += '<span class="material-icons muted">forum</span>';
556
+ html += (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length;
557
+ html += '</td>';
558
+ }
559
+ if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
560
+ html += '<td part="td-body">';
561
+ html += Util.timeSince(new Date(this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).getTime());
562
+ html += '</td>';
563
+ }
511
564
  // for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
512
565
  // html += '<th part="td-body">';
513
566
  // if(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].indexOf("[") >= 0) {
@@ -540,6 +593,12 @@ let SfIEvents = class SfIEvents extends LitElement {
540
593
  startDate.setDate(startDate.getDate() + 1);
541
594
  }
542
595
  html += '</div>';
596
+ inProgress = total - notStarted - approved;
597
+ console.log('progress', total, notStarted, approved);
598
+ html = html.replace("DASHBOARD_TOTAL", total + "");
599
+ html = html.replace("DASHBOARD_NOT_STARTED", notStarted + "");
600
+ html = html.replace("DASHBOARD_APPROVED", approved + "");
601
+ html = html.replace("DASHBOARD_IN_PROGRESS", inProgress + "");
543
602
  return html;
544
603
  };
545
604
  this.renderThisEvents = (index, startDate) => {
@@ -556,6 +615,13 @@ let SfIEvents = class SfIEvents extends LitElement {
556
615
  firstDate = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate());
557
616
  count = this.getLastDayOfMonth(startDate.getFullYear(), startDate.getMonth());
558
617
  }
618
+ var total = 0, notStarted = 0, approved = 0, inProgress = 0;
619
+ html += '<div id="stream-event-summary" part="stream-event-total" class="d-flex">';
620
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Total:</span> <strong>DASHBOARD_TOTAL</strong></div>';
621
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Approved:</span> <strong>DASHBOARD_APPROVED</strong></div>';
622
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Not Started:</span> <strong>DASHBOARD_NOT_STARTED</strong></div>';
623
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">In Progress:</span> <strong>DASHBOARD_IN_PROGRESS</strong></div>';
624
+ html += '</div>';
559
625
  for (var i = 1; i <= count; i++) {
560
626
  const mmdd = ("0" + (firstDate.getMonth() + 1)).slice(-2) + "/" + ("0" + firstDate.getDate()).slice(-2);
561
627
  var hide = true;
@@ -585,6 +651,7 @@ let SfIEvents = class SfIEvents extends LitElement {
585
651
  html += '<div part="stream-event-selected-date">' + ("0" + firstDate.getDate()).slice(-2) + '/' + (firstDate.getMonth() + 1) + ' |</div>';
586
652
  html += '<div class="stream-event-list-container flex-grow">';
587
653
  for (var j = 0; j < this.events[mmdd].length; j++) {
654
+ total++;
588
655
  html += '<div class="stream-events-container flex-grow">';
589
656
  html += '<table>';
590
657
  html += '<thead>';
@@ -601,6 +668,31 @@ let SfIEvents = class SfIEvents extends LitElement {
601
668
  // }
602
669
  html += '<th part="td-head">';
603
670
  html += '</th>';
671
+ if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
672
+ approved++;
673
+ html += '<th part="td-head">';
674
+ html += 'Status';
675
+ html += '</th>';
676
+ }
677
+ console.log('listing docs', this.events[mmdd][j].documents);
678
+ if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
679
+ html += '<th part="td-head">';
680
+ html += 'Docs';
681
+ html += '</th>';
682
+ }
683
+ else {
684
+ notStarted++;
685
+ }
686
+ if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
687
+ html += '<th part="td-head">';
688
+ html += 'Comments';
689
+ html += '</th>';
690
+ }
691
+ if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
692
+ html += '<th part="td-head">';
693
+ html += 'Updated';
694
+ html += '</th>';
695
+ }
604
696
  // for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
605
697
  // html += '<th part="td-head">';
606
698
  // html += Object.keys(this.events[mmdd][j])[k];
@@ -631,6 +723,28 @@ let SfIEvents = class SfIEvents extends LitElement {
631
723
  html += '<td id="td-expand-' + i + '" part="td-body">';
632
724
  html += '<button id="button-unmapped-expand-' + mmdd.replace('/', '-') + '-' + j + '" part="button-icon-small" class="material-icons button-expand">open_in_new</button>';
633
725
  html += '</td>';
726
+ if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
727
+ html += '<td part="td-body">';
728
+ html += '<span class="material-icons color-done">check_circle</span>';
729
+ html += '</td>';
730
+ }
731
+ if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
732
+ html += '<td part="td-body">';
733
+ html += '<span class="material-icons muted">description</span>';
734
+ html += JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length;
735
+ html += '</td>';
736
+ }
737
+ if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
738
+ html += '<td part="td-body">';
739
+ html += '<span class="material-icons muted">forum</span>';
740
+ html += (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length;
741
+ html += '</td>';
742
+ }
743
+ if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
744
+ html += '<td part="td-body">';
745
+ html += Util.timeSince(new Date(this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).getTime());
746
+ html += '</td>';
747
+ }
634
748
  // for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
635
749
  // html += '<th part="td-body">';
636
750
  // if(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].indexOf("[") >= 0) {
@@ -663,6 +777,12 @@ let SfIEvents = class SfIEvents extends LitElement {
663
777
  firstDate.setDate(firstDate.getDate() + 1);
664
778
  }
665
779
  html += '</div>';
780
+ inProgress = total - notStarted - approved;
781
+ console.log('progress', total, notStarted, approved);
782
+ html = html.replace("DASHBOARD_TOTAL", total + "");
783
+ html = html.replace("DASHBOARD_NOT_STARTED", notStarted + "");
784
+ html = html.replace("DASHBOARD_APPROVED", approved + "");
785
+ html = html.replace("DASHBOARD_IN_PROGRESS", inProgress + "");
666
786
  return html;
667
787
  };
668
788
  this.renderPastEvents = (index, startDate) => {
@@ -681,6 +801,13 @@ let SfIEvents = class SfIEvents extends LitElement {
681
801
  console.log('this start date', firstDate);
682
802
  console.log('this start date', count);
683
803
  }
804
+ var total = 0, notStarted = 0, approved = 0, inProgress = 0;
805
+ html += '<div id="stream-event-summary" part="stream-event-total" class="d-flex">';
806
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Total:</span> <strong>DASHBOARD_TOTAL</strong></div>';
807
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Approved:</span> <strong>DASHBOARD_APPROVED</strong></div>';
808
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Not Started:</span> <strong>DASHBOARD_NOT_STARTED</strong></div>';
809
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">In Progress:</span> <strong>DASHBOARD_IN_PROGRESS</strong></div>';
810
+ html += '</div>';
684
811
  for (var i = 1; i <= count; i++) {
685
812
  const mmdd = ("0" + (firstDate.getMonth() + 1)).slice(-2) + "/" + ("0" + firstDate.getDate()).slice(-2);
686
813
  var hide = true;
@@ -710,6 +837,7 @@ let SfIEvents = class SfIEvents extends LitElement {
710
837
  html += '<div part="stream-event-selected-date">' + ("0" + firstDate.getDate()).slice(-2) + '/' + (firstDate.getMonth() + 1) + ' |</div>';
711
838
  html += '<div class="stream-event-list-container flex-grow">';
712
839
  for (var j = 0; j < this.events[mmdd].length; j++) {
840
+ total++;
713
841
  html += '<div class="stream-events-container flex-grow">';
714
842
  html += '<table>';
715
843
  html += '<thead>';
@@ -726,6 +854,31 @@ let SfIEvents = class SfIEvents extends LitElement {
726
854
  // }
727
855
  html += '<th part="td-head">';
728
856
  html += '</th>';
857
+ if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
858
+ approved++;
859
+ html += '<th part="td-head">';
860
+ html += 'Status';
861
+ html += '</th>';
862
+ }
863
+ console.log('listing docs', this.events[mmdd][j].documents);
864
+ if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
865
+ html += '<th part="td-head">';
866
+ html += 'Docs';
867
+ html += '</th>';
868
+ }
869
+ else {
870
+ notStarted++;
871
+ }
872
+ if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
873
+ html += '<th part="td-head">';
874
+ html += 'Comments';
875
+ html += '</th>';
876
+ }
877
+ if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
878
+ html += '<th part="td-head">';
879
+ html += 'Updated';
880
+ html += '</th>';
881
+ }
729
882
  // for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
730
883
  // html += '<th part="td-head">';
731
884
  // html += Object.keys(this.events[mmdd][j])[k];
@@ -756,6 +909,28 @@ let SfIEvents = class SfIEvents extends LitElement {
756
909
  html += '<td id="td-expand-' + i + '" part="td-body">';
757
910
  html += '<button id="button-unmapped-expand-' + mmdd.replace('/', '-') + '-' + j + '" part="button-icon-small" class="material-icons button-expand">open_in_new</button>';
758
911
  html += '</td>';
912
+ if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
913
+ html += '<td part="td-body">';
914
+ html += '<span class="material-icons color-done">check_circle</span>';
915
+ html += '</td>';
916
+ }
917
+ if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
918
+ html += '<td part="td-body">';
919
+ html += '<span class="material-icons muted">description</span>';
920
+ html += JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length;
921
+ html += '</td>';
922
+ }
923
+ if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
924
+ html += '<td part="td-body">';
925
+ html += '<span class="material-icons muted">forum</span>';
926
+ html += (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length;
927
+ html += '</td>';
928
+ }
929
+ if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
930
+ html += '<td part="td-body">';
931
+ html += Util.timeSince(new Date(this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).getTime());
932
+ html += '</td>';
933
+ }
759
934
  // for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
760
935
  // html += '<th part="td-body">';
761
936
  // if(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].indexOf("[") >= 0) {
@@ -788,10 +963,23 @@ let SfIEvents = class SfIEvents extends LitElement {
788
963
  firstDate.setDate(firstDate.getDate() + 1);
789
964
  }
790
965
  html += '</div>';
966
+ inProgress = total - notStarted - approved;
967
+ console.log('progress', total, notStarted, approved);
968
+ html = html.replace("DASHBOARD_TOTAL", total + "");
969
+ html = html.replace("DASHBOARD_NOT_STARTED", notStarted + "");
970
+ html = html.replace("DASHBOARD_APPROVED", approved + "");
971
+ html = html.replace("DASHBOARD_IN_PROGRESS", inProgress + "");
791
972
  return html;
792
973
  };
793
974
  this.renderRangeEvents = (firstDate, count) => {
794
975
  var html = '<div id="stream-event-0" part="stream-event-list" class="stream-event-list">';
976
+ var total = 0, notStarted = 0, approved = 0, inProgress = 0;
977
+ html += '<div id="stream-event-summary" part="stream-event-total" class="d-flex">';
978
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Total:</span> <strong>DASHBOARD_TOTAL</strong></div>';
979
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Approved:</span> <strong>DASHBOARD_APPROVED</strong></div>';
980
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">Not Started:</span> <strong>DASHBOARD_NOT_STARTED</strong></div>';
981
+ html += '<div part="badge-dashboard" class="mr-10"><span class="muted">In Progress:</span> <strong>DASHBOARD_IN_PROGRESS</strong></div>';
982
+ html += '</div>';
795
983
  for (var i = 1; i <= count; i++) {
796
984
  const mmdd = ("0" + (firstDate.getMonth() + 1)).slice(-2) + "/" + ("0" + firstDate.getDate()).slice(-2);
797
985
  var hide = true;
@@ -817,6 +1005,7 @@ let SfIEvents = class SfIEvents extends LitElement {
817
1005
  }
818
1006
  }
819
1007
  if (this.events[mmdd] != null) {
1008
+ total++;
820
1009
  html += '<div part="stream-event-selected" class="d-flex stream-event-selected">';
821
1010
  html += '<div part="stream-event-selected-date">' + ("0" + firstDate.getDate()).slice(-2) + '/' + (firstDate.getMonth() + 1) + ' |</div>';
822
1011
  html += '<div class="stream-event-list-container flex-grow">';
@@ -837,6 +1026,31 @@ let SfIEvents = class SfIEvents extends LitElement {
837
1026
  // }
838
1027
  html += '<th part="td-head">';
839
1028
  html += '</th>';
1029
+ if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
1030
+ approved++;
1031
+ html += '<th part="td-head">';
1032
+ html += 'Status';
1033
+ html += '</th>';
1034
+ }
1035
+ console.log('listing docs', this.events[mmdd][j].documents);
1036
+ if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
1037
+ html += '<th part="td-head">';
1038
+ html += 'Docs';
1039
+ html += '</th>';
1040
+ }
1041
+ else {
1042
+ notStarted++;
1043
+ }
1044
+ if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
1045
+ html += '<th part="td-head">';
1046
+ html += 'Comments';
1047
+ html += '</th>';
1048
+ }
1049
+ if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
1050
+ html += '<th part="td-head">';
1051
+ html += 'Updated';
1052
+ html += '</th>';
1053
+ }
840
1054
  // for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
841
1055
  // html += '<th part="td-head">';
842
1056
  // html += Object.keys(this.events[mmdd][j])[k];
@@ -868,6 +1082,28 @@ let SfIEvents = class SfIEvents extends LitElement {
868
1082
  html += '<td id="td-expand-' + i + '" part="td-body">';
869
1083
  html += '<button id="button-unmapped-expand-' + mmdd.replace('/', '-') + '-' + j + '" part="button-icon-small" class="material-icons button-expand">open_in_new</button>';
870
1084
  html += '</td>';
1085
+ if (this.events[mmdd][j].approved != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()]) != null && (this.events[mmdd][j].approved[mmdd + "/" + new Date().getFullYear()])) {
1086
+ html += '<td part="td-body">';
1087
+ html += '<span class="material-icons color-done">check_circle</span>';
1088
+ html += '</td>';
1089
+ }
1090
+ if (this.events[mmdd][j].documents != null && this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()] != null && JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length > 0) {
1091
+ html += '<td part="td-body">';
1092
+ html += '<span class="material-icons muted">description</span>';
1093
+ html += JSON.parse(this.events[mmdd][j].documents[mmdd + "/" + new Date().getFullYear()]).length;
1094
+ html += '</td>';
1095
+ }
1096
+ if (this.events[mmdd][j].comments != null && this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length > 0) {
1097
+ html += '<td part="td-body">';
1098
+ html += '<span class="material-icons muted">forum</span>';
1099
+ html += (this.events[mmdd][j].comments[mmdd + "/" + new Date().getFullYear()]).length;
1100
+ html += '</td>';
1101
+ }
1102
+ if (this.events[mmdd][j].lastupdated != null && this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()] != null && (this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).length > 0) {
1103
+ html += '<td part="td-body">';
1104
+ html += Util.timeSince(new Date(this.events[mmdd][j].lastupdated[mmdd + "/" + new Date().getFullYear()]).getTime());
1105
+ html += '</td>';
1106
+ }
871
1107
  // for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
872
1108
  // html += '<th part="td-body">';
873
1109
  // if(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].indexOf("[") >= 0) {
@@ -900,6 +1136,12 @@ let SfIEvents = class SfIEvents extends LitElement {
900
1136
  firstDate.setDate(firstDate.getDate() + 1);
901
1137
  }
902
1138
  html += '</div>';
1139
+ inProgress = total - notStarted - approved;
1140
+ console.log('progress', total, notStarted, approved);
1141
+ html = html.replace("DASHBOARD_TOTAL", total + "");
1142
+ html = html.replace("DASHBOARD_NOT_STARTED", notStarted + "");
1143
+ html = html.replace("DASHBOARD_APPROVED", approved + "");
1144
+ html = html.replace("DASHBOARD_IN_PROGRESS", inProgress + "");
903
1145
  this._SfCustomContainer.querySelector('.calendar-right-data').innerHTML = html;
904
1146
  const buttonArr = this._SfCustomContainer.querySelectorAll('.button-expand');
905
1147
  for (var i = 0; i < buttonArr.length; i++) {
@@ -1348,7 +1590,27 @@ let SfIEvents = class SfIEvents extends LitElement {
1348
1590
  this.renderEventDetail(this.events[mmdd][j], mmdd + "/" + ((new Date()).getFullYear() + ""));
1349
1591
  });
1350
1592
  }
1351
- console.log('stream button array', buttonArr);
1593
+ const ctx = this._SfStreamContainer.querySelector('#myChart');
1594
+ this._SfStreamContainer.querySelector('#myChart').style.maxWidth = '400px';
1595
+ this._SfStreamContainer.querySelector('#myChart').style.maxHeight = '400px';
1596
+ var dataApproved = this._SfStreamContainer.querySelector('#graph-approved').innerHTML;
1597
+ var dataNotStarted = this._SfStreamContainer.querySelector('#graph-not-started').innerHTML;
1598
+ var dataInProgress = this._SfStreamContainer.querySelector('#graph-in-progress').innerHTML;
1599
+ const data = {
1600
+ labels: ['Approved', 'Not Started', 'In Progress'],
1601
+ datasets: [{
1602
+ label: 'Compliances',
1603
+ data: [dataApproved, dataNotStarted, dataInProgress],
1604
+ borderWidth: 1,
1605
+ backgroundColor: [
1606
+ Util.createDiagonalPattern3('#20a39e'),
1607
+ Util.createDiagonalPattern2('#A4A9AD'),
1608
+ Util.createDiagonalPattern1('##FFBA49')
1609
+ ]
1610
+ //backgroundColor: ['#20a39e', '#a4a9ad', '#ffba49']
1611
+ }]
1612
+ };
1613
+ this.renderChart(ctx, 'doughnut', data);
1352
1614
  };
1353
1615
  this.renderEventDetail = (event, mmddyyyy) => {
1354
1616
  var _a, _b, _c;
@@ -1573,6 +1835,12 @@ let SfIEvents = class SfIEvents extends LitElement {
1573
1835
  }
1574
1836
  });
1575
1837
  };
1838
+ this.renderChart = (ctx, type, data) => {
1839
+ new Chart(ctx, {
1840
+ type: type,
1841
+ data: data,
1842
+ });
1843
+ };
1576
1844
  this.getCurrentTab = () => {
1577
1845
  if (this._SfCalendarContainer.style.display == 'flex') {
1578
1846
  return this.TAB_YEAR;
@@ -2569,6 +2837,8 @@ let SfIEvents = class SfIEvents extends LitElement {
2569
2837
  });
2570
2838
  };
2571
2839
  this.loadMode = async () => {
2840
+ Chart.register(...registerables);
2841
+ Chart.register(Colors);
2572
2842
  if (this.mode == "admin") {
2573
2843
  this.showChooseProject();
2574
2844
  this.initListenersAdmin();
@@ -2636,6 +2906,7 @@ let SfIEvents = class SfIEvents extends LitElement {
2636
2906
  return html `
2637
2907
 
2638
2908
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
2909
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
2639
2910
  <div class="SfIEventsC">
2640
2911
 
2641
2912
  <div class="d-flex justify-center">