sf-i-events 1.0.710 → 1.0.712

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.710",
4
+ "version": "1.0.712",
5
5
  "description": "Superflows Navigation Component",
6
6
  "main": "sf-i-events.js",
7
7
  "module": "sf-i-events.js",
package/sf-i-events.d.ts CHANGED
@@ -266,6 +266,7 @@ export declare class SfIEvents extends LitElement {
266
266
  sdate: string;
267
267
  edate: string;
268
268
  changedOnboardingItemIds: string[];
269
+ selectallblock: string;
269
270
  static styles: import("lit").CSSResult;
270
271
  _SfIEventsC: any;
271
272
  _SfRowError: any;
@@ -465,6 +466,8 @@ export declare class SfIEvents extends LitElement {
465
466
  renderStreamEvents: (index: number, month: number, year: number, showGraph?: boolean) => string;
466
467
  renderThisEvents: (index: number, startDate: Date, showGraph?: boolean) => string;
467
468
  renderRangeEvents: (firstDate: Date, count: number, eventsContainer: HTMLDivElement) => void;
469
+ renderSelectAllButtons: () => string;
470
+ attachSelectAllListeners: (eventsContainer: HTMLDivElement, buttonSelect: NodeListOf<HTMLButtonElement>) => HTMLButtonElement[];
468
471
  renderRegisterEvents: (events: any) => void;
469
472
  checkStartDateEarliness: (value: string) => boolean;
470
473
  checkEndDateLateness: (value: string) => boolean;
package/sf-i-events.js CHANGED
@@ -1204,6 +1204,7 @@ let SfIEvents = class SfIEvents extends LitElement {
1204
1204
  this.sdate = "";
1205
1205
  this.edate = "";
1206
1206
  this.changedOnboardingItemIds = [];
1207
+ this.selectallblock = "100";
1207
1208
  this.isSelectedLegend = (value) => {
1208
1209
  return this.chartSelectedLegend.includes(value);
1209
1210
  };
@@ -2739,6 +2740,9 @@ let SfIEvents = class SfIEvents extends LitElement {
2739
2740
  //console.log('rangeperiod', period)
2740
2741
  var html = this.renderEvents(firstDay, endDay, 1, lastDay, true, 0, (firstDate.getMonth()), period, firstDate, "From " + firstDay.toLocaleDateString('en-IN') + " To " + endDay.toLocaleDateString('en-IN'));
2741
2742
  eventsContainer.querySelector('.calendar-right-data').innerHTML = html;
2743
+ let innerhtml = eventsContainer.innerHTML;
2744
+ innerhtml += this.renderSelectAllButtons();
2745
+ eventsContainer.innerHTML = innerhtml;
2742
2746
  this.renderButtonRefresh(eventsContainer);
2743
2747
  this.attachTimelineFilterHandlers(eventsContainer);
2744
2748
  const radioExpander = eventsContainer.querySelector('#graph-radios-expander');
@@ -2780,6 +2784,9 @@ let SfIEvents = class SfIEvents extends LitElement {
2780
2784
  }
2781
2785
  const streamEventsContainer = eventsContainer.querySelectorAll('.stream-events-container');
2782
2786
  const buttonSelect = eventsContainer.querySelectorAll('.button-select');
2787
+ let selectAllArr = this.attachSelectAllListeners(eventsContainer, buttonSelect);
2788
+ const buttonSelectAll = selectAllArr[0];
2789
+ const buttonUnselectAll = selectAllArr[1];
2783
2790
  for (i = 0; i < buttonSelect.length; i++) {
2784
2791
  buttonSelect[i].addEventListener('click', (ev) => {
2785
2792
  //console.log('eventscontainer', streamEventsContainer.length, buttonSelect.length);
@@ -2800,6 +2807,8 @@ let SfIEvents = class SfIEvents extends LitElement {
2800
2807
  buttonSelect[k].style.display = 'block';
2801
2808
  streamEventsContainer[k].style.display = 'block';
2802
2809
  }
2810
+ buttonSelectAll.style.display = 'none';
2811
+ buttonUnselectAll.style.display = 'none';
2803
2812
  }
2804
2813
  else {
2805
2814
  if (this.selectedItemIds.length === 1) {
@@ -2808,18 +2817,28 @@ let SfIEvents = class SfIEvents extends LitElement {
2808
2817
  const status = idArr1[13].replace(/_/g, '-');
2809
2818
  this.selectedStatus = status;
2810
2819
  }
2820
+ let totalVisibleCount = 0;
2811
2821
  for (var k = 0; k < buttonSelect.length; k++) {
2812
2822
  const id1 = buttonSelect[k].id;
2813
2823
  const idArr1 = id1.split("-");
2814
2824
  const docs1 = idArr1[6];
2815
2825
  const status = idArr1[13].replace(/_/g, '-');
2816
2826
  if (docs == docs1 && status == this.selectedStatus) {
2827
+ totalVisibleCount++;
2817
2828
  }
2818
2829
  else {
2819
2830
  buttonSelect[k].style.display = 'none';
2820
2831
  streamEventsContainer[k].style.display = 'none';
2821
2832
  }
2822
2833
  }
2834
+ if (this.selectedItemIds.length >= parseInt(this.selectallblock) || this.selectedItemIds.length >= totalVisibleCount) {
2835
+ buttonSelectAll.style.display = 'none';
2836
+ buttonUnselectAll.style.display = 'flex';
2837
+ }
2838
+ else {
2839
+ buttonSelectAll.style.display = 'flex';
2840
+ buttonUnselectAll.style.display = 'none';
2841
+ }
2823
2842
  }
2824
2843
  // (this._SfDetailContainer as HTMLDivElement).style.display = 'block'
2825
2844
  // this.renderEventDetail(this.events[mmdd][j], mmdd + "/" + ((new Date()).getFullYear() + ""));
@@ -3240,6 +3259,42 @@ let SfIEvents = class SfIEvents extends LitElement {
3240
3259
  // this.htmlDataStats = '<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">In Progress</th><th class="w-14">Past Due Date</th><th class="w-14">Late Executed</th><th class="w-14">Late Approved</th><tr>';
3241
3260
  // 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">'+inProgress+'</td><td class="w-14 text-center td-odd">'+pastDueDate+'</td><td class="w-14 text-center td-odd">'+lateExecuted+'</td><td class="w-14 text-center td-odd">'+lateApproved+'</td><tr></table>';
3242
3261
  };
3262
+ this.renderSelectAllButtons = () => {
3263
+ let selectAllHtml = '<div class="d-flex justify-end w-100" style="position: fixed; bottom: 70px; left: 0px;" part="button-select-all-container">';
3264
+ selectAllHtml += '<button part="button-select-all" id="button-select-all" class="d-flex align-center mt-10 mr-10 ml-10"><span class="material-symbols-outlined">select_all</span>&nbsp;<h4>Select All</h4><span>&nbsp;(Max ' + this.selectallblock + ')</span></button>';
3265
+ selectAllHtml += '<button part="button-unselect-all" id="button-unselect-all" class="d-flex align-center mt-10 mr-10 ml-10"><span class="material-symbols-outlined">remove_selection</span>&nbsp;<h4>Unselect</h4></button>';
3266
+ selectAllHtml += '</div>';
3267
+ return selectAllHtml;
3268
+ };
3269
+ this.attachSelectAllListeners = (eventsContainer, buttonSelect) => {
3270
+ const buttonSelectAll = eventsContainer.querySelector('#button-select-all');
3271
+ const buttonUnselectAll = eventsContainer.querySelector('#button-unselect-all');
3272
+ if (this.selectedItemIds.length == 0) {
3273
+ buttonSelectAll.style.display = 'none';
3274
+ buttonUnselectAll.style.display = 'none';
3275
+ }
3276
+ buttonSelectAll === null || buttonSelectAll === void 0 ? void 0 : buttonSelectAll.addEventListener('click', () => {
3277
+ let count = this.selectedItemIds.length;
3278
+ for (let checkSelect of buttonSelect) {
3279
+ console.log('select count', count, parseInt(this.selectallblock));
3280
+ if (count < parseInt(this.selectallblock) && checkSelect.style.display != 'none' && !checkSelect.checked) {
3281
+ checkSelect.click();
3282
+ count++;
3283
+ }
3284
+ if (count >= parseInt(this.selectallblock)) {
3285
+ break;
3286
+ }
3287
+ }
3288
+ });
3289
+ buttonUnselectAll === null || buttonUnselectAll === void 0 ? void 0 : buttonUnselectAll.addEventListener('click', () => {
3290
+ for (let checkSelect of buttonSelect) {
3291
+ if (checkSelect.checked) {
3292
+ checkSelect.click();
3293
+ }
3294
+ }
3295
+ });
3296
+ return [buttonSelectAll, buttonUnselectAll];
3297
+ };
3243
3298
  this.renderRegisterEvents = (events) => {
3244
3299
  var html = '';
3245
3300
  this.csvDataRegisters = '';
@@ -5191,6 +5246,7 @@ let SfIEvents = class SfIEvents extends LitElement {
5191
5246
  html += this.renderThisEvents(index, startDate, showGraph);
5192
5247
  startDate.setDate(startDate.getDate() + 1);
5193
5248
  html += '</div>';
5249
+ html += this.renderSelectAllButtons();
5194
5250
  html += '</div>';
5195
5251
  this._SfThisContainer.innerHTML = html;
5196
5252
  this.renderButtonRefresh(this._SfThisContainer);
@@ -5336,6 +5392,9 @@ let SfIEvents = class SfIEvents extends LitElement {
5336
5392
  }
5337
5393
  const streamEventsContainer = this._SfThisContainer.querySelectorAll('.stream-events-container');
5338
5394
  const buttonSelect = this._SfThisContainer.querySelectorAll('.button-select');
5395
+ let selectAllArr = this.attachSelectAllListeners(this._SfThisContainer, buttonSelect);
5396
+ const buttonSelectAll = selectAllArr[0];
5397
+ const buttonUnselectAll = selectAllArr[1];
5339
5398
  for (i = 0; i < buttonSelect.length; i++) {
5340
5399
  buttonSelect[i].addEventListener('click', (ev) => {
5341
5400
  //console.log('eventscontainer', streamEventsContainer.length, buttonSelect.length);
@@ -5356,6 +5415,8 @@ let SfIEvents = class SfIEvents extends LitElement {
5356
5415
  buttonSelect[k].style.display = 'block';
5357
5416
  streamEventsContainer[k].style.display = 'block';
5358
5417
  }
5418
+ buttonSelectAll.style.display = 'none';
5419
+ buttonUnselectAll.style.display = 'none';
5359
5420
  }
5360
5421
  else {
5361
5422
  if (this.selectedItemIds.length === 1) {
@@ -5364,18 +5425,28 @@ let SfIEvents = class SfIEvents extends LitElement {
5364
5425
  const status = idArr1[13].replace(/_/g, '-');
5365
5426
  this.selectedStatus = status;
5366
5427
  }
5428
+ let totalVisibleCount = 0;
5367
5429
  for (var k = 0; k < buttonSelect.length; k++) {
5368
5430
  const id1 = buttonSelect[k].id;
5369
5431
  const idArr1 = id1.split("-");
5370
5432
  const docs1 = idArr1[6];
5371
5433
  const status = idArr1[13].replace(/_/g, '-');
5372
5434
  if (docs == docs1 && status == this.selectedStatus) {
5435
+ totalVisibleCount++;
5373
5436
  }
5374
5437
  else {
5375
5438
  buttonSelect[k].style.display = 'none';
5376
5439
  streamEventsContainer[k].style.display = 'none';
5377
5440
  }
5378
5441
  }
5442
+ if (this.selectedItemIds.length >= parseInt(this.selectallblock) || this.selectedItemIds.length >= totalVisibleCount) {
5443
+ buttonSelectAll.style.display = 'none';
5444
+ buttonUnselectAll.style.display = 'flex';
5445
+ }
5446
+ else {
5447
+ buttonSelectAll.style.display = 'flex';
5448
+ buttonUnselectAll.style.display = 'none';
5449
+ }
5379
5450
  }
5380
5451
  // (this._SfDetailContainer as HTMLDivElement).style.display = 'block'
5381
5452
  // this.renderEventDetail(this.events[mmdd][j], mmdd + "/" + ((new Date()).getFullYear() + ""));
@@ -5489,6 +5560,7 @@ let SfIEvents = class SfIEvents extends LitElement {
5489
5560
  startDate.setMonth(startDate.getMonth() + 1);
5490
5561
  }
5491
5562
  html += '</div>';
5563
+ html += this.renderSelectAllButtons();
5492
5564
  html += '</div>';
5493
5565
  this._SfStreamContainer.innerHTML = html;
5494
5566
  this.renderButtonRefresh(this._SfStreamContainer);
@@ -5642,6 +5714,9 @@ let SfIEvents = class SfIEvents extends LitElement {
5642
5714
  }
5643
5715
  const streamEventsContainer = this._SfStreamContainer.querySelectorAll('.stream-events-container');
5644
5716
  const buttonSelect = this._SfStreamContainer.querySelectorAll('.button-select');
5717
+ let selectAllArr = this.attachSelectAllListeners(this._SfStreamContainer, buttonSelect);
5718
+ const buttonSelectAll = selectAllArr[0];
5719
+ const buttonUnselectAll = selectAllArr[1];
5645
5720
  for (i = 0; i < buttonSelect.length; i++) {
5646
5721
  buttonSelect[i].addEventListener('click', (ev) => {
5647
5722
  //console.log('eventscontainer', streamEventsContainer.length, buttonSelect.length);
@@ -5662,6 +5737,8 @@ let SfIEvents = class SfIEvents extends LitElement {
5662
5737
  buttonSelect[k].style.display = 'block';
5663
5738
  streamEventsContainer[k].style.display = 'block';
5664
5739
  }
5740
+ buttonSelectAll.style.display = 'none';
5741
+ buttonUnselectAll.style.display = 'none';
5665
5742
  }
5666
5743
  else {
5667
5744
  if (this.selectedItemIds.length === 1) {
@@ -5670,18 +5747,28 @@ let SfIEvents = class SfIEvents extends LitElement {
5670
5747
  const status = idArr1[13].replace(/_/g, '-');
5671
5748
  this.selectedStatus = status;
5672
5749
  }
5750
+ let totalVisibleCount = 0;
5673
5751
  for (var k = 0; k < buttonSelect.length; k++) {
5674
5752
  const id1 = buttonSelect[k].id;
5675
5753
  const idArr1 = id1.split("-");
5676
5754
  const docs1 = idArr1[6];
5677
5755
  const status = idArr1[13].replace(/_/g, '-');
5678
5756
  if (docs == docs1 && status == this.selectedStatus) {
5757
+ totalVisibleCount++;
5679
5758
  }
5680
5759
  else {
5681
5760
  buttonSelect[k].style.display = 'none';
5682
5761
  streamEventsContainer[k].style.display = 'none';
5683
5762
  }
5684
5763
  }
5764
+ if (this.selectedItemIds.length >= parseInt(this.selectallblock) || this.selectedItemIds.length >= totalVisibleCount) {
5765
+ buttonSelectAll.style.display = 'none';
5766
+ buttonUnselectAll.style.display = 'flex';
5767
+ }
5768
+ else {
5769
+ buttonSelectAll.style.display = 'flex';
5770
+ buttonUnselectAll.style.display = 'none';
5771
+ }
5685
5772
  }
5686
5773
  // (this._SfDetailContainer as HTMLDivElement).style.display = 'block'
5687
5774
  // this.renderEventDetail(this.events[mmdd][j], mmdd + "/" + ((new Date()).getFullYear() + ""));
@@ -7741,11 +7828,24 @@ let SfIEvents = class SfIEvents extends LitElement {
7741
7828
  }
7742
7829
  }
7743
7830
  var tagged = 0;
7831
+ var changed = 0;
7744
7832
  for (var j = 0; j < taggingArray.data.mappings.mappings.length; j++) {
7745
7833
  if (taggingArray.data.mappings.mappings[j] != null) {
7746
7834
  if (taggingArray.data.mappings.mappings[j][colName] != null && taggingArray.data.mappings.mappings[j][colName].length > 0) {
7747
7835
  tagged++;
7748
7836
  }
7837
+ if (this.changedOnboardingItemIds.length > 0) {
7838
+ let changedId = "";
7839
+ for (let [k, col] of uniqCols.entries()) {
7840
+ changedId += taggingArray.data.mappings.mappings[j][col];
7841
+ if (k < (uniqCols.length - 1)) {
7842
+ changedId += ";";
7843
+ }
7844
+ }
7845
+ if (this.changedOnboardingItemIds.indexOf(changedId) >= 0) {
7846
+ changed++;
7847
+ }
7848
+ }
7749
7849
  }
7750
7850
  }
7751
7851
  // let colCountry = -1;
@@ -7782,6 +7882,9 @@ let SfIEvents = class SfIEvents extends LitElement {
7782
7882
  else {
7783
7883
  html += ((jobs && jobs.data && (jobs.data.status == "1" || jobs.data.status == "0")) ? '' : '<div class="left-sticky d-flex justify-between align-center mr-10"><h4 id="mapped-stats-title" part="results-title" class="d-flex align-center m-0">' + status + '&nbsp;&nbsp;Mapped ' + tagged + ' out of ' + sourceArray.data.mappings.mappings.length + '</h4></div>');
7784
7884
  }
7885
+ if (changed > 0) {
7886
+ html += ((jobs && jobs.data && (jobs.data.status == "1" || jobs.data.status == "0")) ? '' : '<div class="left-sticky d-flex justify-between align-center mr-10"><h4 part="results-title" class="d-flex align-center m-0"><span class="color-pending material-icons">pending</span>&nbsp;&nbsp;' + changed + ' Items changed</h4></div>');
7887
+ }
7785
7888
  html += ((jobs && jobs.data && (jobs.data.status == "1" || jobs.data.status == "0")) ? '' : '<div class="left-sticky d-flex justify-between align-center mr-10"><h4 part="results-title" class="d-flex align-center m-0">' + mandatoryStatus + '</h4></div>');
7786
7889
  html += ((jobs && jobs.data && (jobs.data.status == "1" || jobs.data.status == "0")) ? '' : '<div class="left-sticky d-flex justify-between align-center mr-10"><h4 id="span-extra-filled" class="m-0" part="results-title"></h4></div>');
7787
7890
  html += '<div class="d-flex align-center">';
@@ -7859,6 +7962,7 @@ let SfIEvents = class SfIEvents extends LitElement {
7859
7962
  // }
7860
7963
  html += '</thead>';
7861
7964
  html += '<tbody>';
7965
+ console.log('changedIds', this.changedOnboardingItemIds);
7862
7966
  for (i = 0; i < sourceArray.data.mappings.mappings.length; i++) {
7863
7967
  var showSearch = false;
7864
7968
  if (subfilter == "") {
@@ -7937,16 +8041,40 @@ let SfIEvents = class SfIEvents extends LitElement {
7937
8041
  // }
7938
8042
  var classBg = "";
7939
8043
  if (i % 2 === 0) {
7940
- if (this.changedOnboardingItemIds.length > 0 && this.changedOnboardingItemIds.indexOf(taggingArray.data.mappings.mappings[i].id) >= 0) {
7941
- classBg = 'td-light-selected';
8044
+ if (this.changedOnboardingItemIds.length > 0) {
8045
+ let changedId = "";
8046
+ for (let [k, col] of uniqCols.entries()) {
8047
+ changedId += taggingArray.data.mappings.mappings[i][col];
8048
+ if (k < (uniqCols.length - 1)) {
8049
+ changedId += ";";
8050
+ }
8051
+ }
8052
+ if (this.changedOnboardingItemIds.indexOf(changedId) >= 0) {
8053
+ classBg = 'td-light-selected';
8054
+ }
8055
+ else {
8056
+ classBg = 'td-light';
8057
+ }
7942
8058
  }
7943
8059
  else {
7944
8060
  classBg = 'td-light';
7945
8061
  }
7946
8062
  }
7947
8063
  else {
7948
- if (this.changedOnboardingItemIds.length > 0 && this.changedOnboardingItemIds.indexOf(taggingArray.data.mappings.mappings[i].id) >= 0) {
7949
- classBg = 'td-dark-selected';
8064
+ if (this.changedOnboardingItemIds.length > 0) {
8065
+ let changedId = "";
8066
+ for (let [k, col] of uniqCols.entries()) {
8067
+ changedId += taggingArray.data.mappings.mappings[i][col];
8068
+ if (k < (uniqCols.length - 1)) {
8069
+ changedId += ";";
8070
+ }
8071
+ }
8072
+ if (this.changedOnboardingItemIds.indexOf(changedId) >= 0) {
8073
+ classBg = 'td-dark-selected';
8074
+ }
8075
+ else {
8076
+ classBg = 'td-dark';
8077
+ }
7950
8078
  }
7951
8079
  else {
7952
8080
  classBg = 'td-dark';
@@ -8390,7 +8518,15 @@ let SfIEvents = class SfIEvents extends LitElement {
8390
8518
  for (let [i, obj] of tempArr.entries()) {
8391
8519
  if (JSON.stringify(taggingArray.data.mappings.mappings[i]) !== JSON.stringify(obj)) {
8392
8520
  console.log('item changed', taggingArray.data.mappings.mappings[i], obj);
8393
- this.changedOnboardingItemIds.push(taggingArray.data.mappings.mappings[i].id);
8521
+ let changedId = "";
8522
+ for (let [k, col] of uniqCols.entries()) {
8523
+ changedId += taggingArray.data.mappings.mappings[i][col];
8524
+ if (k < (uniqCols.length - 1)) {
8525
+ changedId += ";";
8526
+ }
8527
+ }
8528
+ // this.changedOnboardingItemIds.push(taggingArray.data.mappings.mappings[i].id + ";" + taggingArray.data.mappings.mappings[i].entityid + ";" + taggingArray.data.mappings.mappings[i].locationid)
8529
+ this.changedOnboardingItemIds.push(changedId);
8394
8530
  changeCount++;
8395
8531
  }
8396
8532
  }
@@ -13931,13 +14067,14 @@ let SfIEvents = class SfIEvents extends LitElement {
13931
14067
  }
13932
14068
  };
13933
14069
  this.fetchSearchStatutes = async (searchString, cursor = "") => {
14070
+ console.log('cursor', cursor);
13934
14071
  let url = "https://" + this.apiIdStatutes + "/listlarge";
13935
14072
  let authorization = btoa(Util.readCookie('email') + ":" + Util.readCookie('accessToken'));
13936
14073
  let xhr = (await this.prepareXhr({ "searchstring": searchString, "cursor": cursor }, url, this._SfLoader, authorization));
13937
14074
  this._SfLoader.innerHTML = '';
13938
14075
  if (xhr.status == 200) {
13939
14076
  const jsonRespose = JSON.parse(xhr.responseText);
13940
- //console.log('searchstatutes', jsonRespose);
14077
+ console.log('searchstatutes', { "searchstring": searchString, "cursor": cursor }, jsonRespose);
13941
14078
  let newCursor = jsonRespose.cursor;
13942
14079
  let i = 0;
13943
14080
  while (true) {
@@ -18080,6 +18217,9 @@ __decorate([
18080
18217
  __decorate([
18081
18218
  property()
18082
18219
  ], SfIEvents.prototype, "blocksize", void 0);
18220
+ __decorate([
18221
+ property()
18222
+ ], SfIEvents.prototype, "selectallblock", void 0);
18083
18223
  __decorate([
18084
18224
  query('.SfIEventsC')
18085
18225
  ], SfIEvents.prototype, "_SfIEventsC", void 0);
@@ -1590,6 +1590,9 @@ export class SfIEvents extends LitElement {
1590
1590
 
1591
1591
  changedOnboardingItemIds: string[] = []
1592
1592
 
1593
+ @property()
1594
+ selectallblock: string = "100";
1595
+
1593
1596
  static override styles = css`
1594
1597
 
1595
1598
  .bg-white {
@@ -4970,6 +4973,10 @@ export class SfIEvents extends LitElement {
4970
4973
  var html = this.renderEvents(firstDay, endDay, 1, lastDay, true, 0, (firstDate.getMonth()), period, firstDate,"From " + firstDay.toLocaleDateString('en-IN') + " To " + endDay.toLocaleDateString('en-IN'));
4971
4974
 
4972
4975
  eventsContainer.querySelector('.calendar-right-data')!.innerHTML = html;
4976
+
4977
+ let innerhtml = eventsContainer.innerHTML;
4978
+ innerhtml += this.renderSelectAllButtons();
4979
+ eventsContainer.innerHTML = innerhtml
4973
4980
  this.renderButtonRefresh(eventsContainer);
4974
4981
  this.attachTimelineFilterHandlers(eventsContainer);
4975
4982
 
@@ -5026,7 +5033,9 @@ export class SfIEvents extends LitElement {
5026
5033
 
5027
5034
  const streamEventsContainer = eventsContainer.querySelectorAll('.stream-events-container') as NodeListOf<HTMLDivElement>;
5028
5035
  const buttonSelect = eventsContainer.querySelectorAll('.button-select') as NodeListOf<HTMLButtonElement>;
5029
-
5036
+ let selectAllArr = this.attachSelectAllListeners(eventsContainer,buttonSelect)
5037
+ const buttonSelectAll = selectAllArr[0]
5038
+ const buttonUnselectAll = selectAllArr[1]
5030
5039
  for(i = 0; i < buttonSelect.length; i++) {
5031
5040
 
5032
5041
  buttonSelect[i].addEventListener('click', (ev: any) => {
@@ -5054,6 +5063,8 @@ export class SfIEvents extends LitElement {
5054
5063
  (streamEventsContainer[k] as HTMLDivElement).style.display = 'block';
5055
5064
 
5056
5065
  }
5066
+ buttonSelectAll.style.display = 'none';
5067
+ buttonUnselectAll.style.display = 'none';
5057
5068
 
5058
5069
  } else {
5059
5070
 
@@ -5066,6 +5077,7 @@ export class SfIEvents extends LitElement {
5066
5077
 
5067
5078
  }
5068
5079
 
5080
+ let totalVisibleCount = 0
5069
5081
  for(var k = 0; k < buttonSelect.length; k++) {
5070
5082
 
5071
5083
  const id1 = buttonSelect[k].id;
@@ -5074,12 +5086,20 @@ export class SfIEvents extends LitElement {
5074
5086
  const status = idArr1[13].replace(/_/g, '-');
5075
5087
 
5076
5088
  if(docs == docs1 && status == this.selectedStatus) {
5089
+ totalVisibleCount++
5077
5090
  } else {
5078
5091
  (buttonSelect[k] as HTMLInputElement).style.display = 'none';
5079
5092
  (streamEventsContainer[k] as HTMLDivElement).style.display = 'none';
5080
5093
  }
5081
5094
 
5082
5095
  }
5096
+ if(this.selectedItemIds.length >= parseInt(this.selectallblock) || this.selectedItemIds.length >= totalVisibleCount){
5097
+ buttonSelectAll.style.display = 'none';
5098
+ buttonUnselectAll.style.display = 'flex';
5099
+ }else{
5100
+ buttonSelectAll.style.display = 'flex';
5101
+ buttonUnselectAll.style.display = 'none';
5102
+ }
5083
5103
 
5084
5104
 
5085
5105
  }
@@ -5576,7 +5596,42 @@ export class SfIEvents extends LitElement {
5576
5596
 
5577
5597
 
5578
5598
  }
5579
-
5599
+ renderSelectAllButtons = () => {
5600
+ let selectAllHtml = '<div class="d-flex justify-end w-100" style="position: fixed; bottom: 70px; left: 0px;" part="button-select-all-container">';
5601
+ selectAllHtml += '<button part="button-select-all" id="button-select-all" class="d-flex align-center mt-10 mr-10 ml-10"><span class="material-symbols-outlined">select_all</span>&nbsp;<h4>Select All</h4><span>&nbsp;(Max ' + this.selectallblock + ')</span></button>';
5602
+ selectAllHtml += '<button part="button-unselect-all" id="button-unselect-all" class="d-flex align-center mt-10 mr-10 ml-10"><span class="material-symbols-outlined">remove_selection</span>&nbsp;<h4>Unselect</h4></button>';
5603
+ selectAllHtml += '</div>';
5604
+ return selectAllHtml
5605
+ }
5606
+ attachSelectAllListeners = (eventsContainer: HTMLDivElement, buttonSelect: NodeListOf<HTMLButtonElement>) => {
5607
+ const buttonSelectAll = eventsContainer.querySelector('#button-select-all') as HTMLButtonElement
5608
+ const buttonUnselectAll = eventsContainer.querySelector('#button-unselect-all') as HTMLButtonElement
5609
+ if(this.selectedItemIds.length == 0){
5610
+ buttonSelectAll.style.display = 'none';
5611
+ buttonUnselectAll.style.display = 'none';
5612
+ }
5613
+ buttonSelectAll?.addEventListener('click',() => {
5614
+ let count = this.selectedItemIds.length
5615
+ for(let checkSelect of buttonSelect){
5616
+ console.log('select count', count, parseInt(this.selectallblock))
5617
+ if(count < parseInt(this.selectallblock) && checkSelect.style.display != 'none' && !(checkSelect as HTMLInputElement).checked){
5618
+ checkSelect.click();
5619
+ count++;
5620
+ }
5621
+ if(count >= parseInt(this.selectallblock)){
5622
+ break;
5623
+ }
5624
+ }
5625
+ })
5626
+ buttonUnselectAll?.addEventListener('click',() => {
5627
+ for(let checkSelect of buttonSelect){
5628
+ if((checkSelect as HTMLInputElement).checked){
5629
+ checkSelect.click();
5630
+ }
5631
+ }
5632
+ })
5633
+ return [buttonSelectAll, buttonUnselectAll]
5634
+ }
5580
5635
  renderRegisterEvents = (events: any) => {
5581
5636
 
5582
5637
  var html = '';
@@ -8024,6 +8079,7 @@ export class SfIEvents extends LitElement {
8024
8079
  startDate.setDate(startDate.getDate() + 1);
8025
8080
 
8026
8081
  html += '</div>';
8082
+ html += this.renderSelectAllButtons();
8027
8083
  html += '</div>';
8028
8084
 
8029
8085
  (this._SfThisContainer as HTMLDivElement).innerHTML = html;
@@ -8226,7 +8282,9 @@ export class SfIEvents extends LitElement {
8226
8282
 
8227
8283
  const streamEventsContainer = (this._SfThisContainer as HTMLDivElement).querySelectorAll('.stream-events-container') as NodeListOf<HTMLDivElement>;
8228
8284
  const buttonSelect = (this._SfThisContainer as HTMLDivElement).querySelectorAll('.button-select') as NodeListOf<HTMLButtonElement>;
8229
-
8285
+ let selectAllArr = this.attachSelectAllListeners((this._SfThisContainer as HTMLDivElement),buttonSelect)
8286
+ const buttonSelectAll = selectAllArr[0]
8287
+ const buttonUnselectAll = selectAllArr[1]
8230
8288
  for(i = 0; i < buttonSelect.length; i++) {
8231
8289
 
8232
8290
  buttonSelect[i].addEventListener('click', (ev: any) => {
@@ -8254,7 +8312,8 @@ export class SfIEvents extends LitElement {
8254
8312
  (streamEventsContainer[k] as HTMLDivElement).style.display = 'block';
8255
8313
 
8256
8314
  }
8257
-
8315
+ buttonSelectAll.style.display = 'none';
8316
+ buttonUnselectAll.style.display = 'none';
8258
8317
  } else {
8259
8318
 
8260
8319
  if(this.selectedItemIds.length === 1) {
@@ -8266,6 +8325,7 @@ export class SfIEvents extends LitElement {
8266
8325
 
8267
8326
  }
8268
8327
 
8328
+ let totalVisibleCount = 0
8269
8329
  for(var k = 0; k < buttonSelect.length; k++) {
8270
8330
 
8271
8331
  const id1 = buttonSelect[k].id;
@@ -8274,12 +8334,20 @@ export class SfIEvents extends LitElement {
8274
8334
  const status = idArr1[13].replace(/_/g, '-');
8275
8335
 
8276
8336
  if(docs == docs1 && status == this.selectedStatus) {
8337
+ totalVisibleCount++
8277
8338
  } else {
8278
8339
  (buttonSelect[k] as HTMLInputElement).style.display = 'none';
8279
8340
  (streamEventsContainer[k] as HTMLDivElement).style.display = 'none';
8280
8341
  }
8281
8342
 
8282
8343
  }
8344
+ if(this.selectedItemIds.length >= parseInt(this.selectallblock) || this.selectedItemIds.length >= totalVisibleCount){
8345
+ buttonSelectAll.style.display = 'none';
8346
+ buttonUnselectAll.style.display = 'flex';
8347
+ }else{
8348
+ buttonSelectAll.style.display = 'flex';
8349
+ buttonUnselectAll.style.display = 'none';
8350
+ }
8283
8351
 
8284
8352
 
8285
8353
  }
@@ -8422,6 +8490,7 @@ export class SfIEvents extends LitElement {
8422
8490
  startDate.setMonth(startDate.getMonth() + 1);
8423
8491
  }
8424
8492
  html += '</div>';
8493
+ html += this.renderSelectAllButtons();
8425
8494
  html += '</div>';
8426
8495
 
8427
8496
  (this._SfStreamContainer as HTMLDivElement).innerHTML = html;
@@ -8634,7 +8703,10 @@ export class SfIEvents extends LitElement {
8634
8703
 
8635
8704
  const streamEventsContainer = (this._SfStreamContainer as HTMLDivElement).querySelectorAll('.stream-events-container') as NodeListOf<HTMLDivElement>;
8636
8705
  const buttonSelect = (this._SfStreamContainer as HTMLDivElement).querySelectorAll('.button-select') as NodeListOf<HTMLButtonElement>;
8637
-
8706
+ let selectAllArr = this.attachSelectAllListeners((this._SfStreamContainer as HTMLDivElement),buttonSelect)
8707
+ const buttonSelectAll = selectAllArr[0]
8708
+ const buttonUnselectAll = selectAllArr[1]
8709
+
8638
8710
  for(i = 0; i < buttonSelect.length; i++) {
8639
8711
 
8640
8712
  buttonSelect[i].addEventListener('click', (ev: any) => {
@@ -8662,6 +8734,8 @@ export class SfIEvents extends LitElement {
8662
8734
  (streamEventsContainer[k] as HTMLDivElement).style.display = 'block';
8663
8735
 
8664
8736
  }
8737
+ buttonSelectAll.style.display = 'none';
8738
+ buttonUnselectAll.style.display = 'none';
8665
8739
 
8666
8740
  } else {
8667
8741
 
@@ -8673,7 +8747,7 @@ export class SfIEvents extends LitElement {
8673
8747
  this.selectedStatus = status;
8674
8748
 
8675
8749
  }
8676
-
8750
+ let totalVisibleCount = 0
8677
8751
  for(var k = 0; k < buttonSelect.length; k++) {
8678
8752
 
8679
8753
  const id1 = buttonSelect[k].id;
@@ -8682,15 +8756,23 @@ export class SfIEvents extends LitElement {
8682
8756
  const status = idArr1[13].replace(/_/g, '-');
8683
8757
 
8684
8758
  if(docs == docs1 && status == this.selectedStatus) {
8759
+ totalVisibleCount++
8685
8760
  } else {
8686
8761
  (buttonSelect[k] as HTMLInputElement).style.display = 'none';
8687
8762
  (streamEventsContainer[k] as HTMLDivElement).style.display = 'none';
8688
8763
  }
8689
8764
 
8690
8765
  }
8691
-
8692
-
8766
+ if(this.selectedItemIds.length >= parseInt(this.selectallblock) || this.selectedItemIds.length >= totalVisibleCount){
8767
+ buttonSelectAll.style.display = 'none';
8768
+ buttonUnselectAll.style.display = 'flex';
8769
+ }else{
8770
+ buttonSelectAll.style.display = 'flex';
8771
+ buttonUnselectAll.style.display = 'none';
8772
+ }
8693
8773
  }
8774
+
8775
+
8694
8776
 
8695
8777
  // (this._SfDetailContainer as HTMLDivElement).style.display = 'block'
8696
8778
 
@@ -11330,13 +11412,25 @@ export class SfIEvents extends LitElement {
11330
11412
  }
11331
11413
 
11332
11414
  var tagged = 0;
11333
-
11415
+ var changed = 0
11334
11416
  for(var j = 0; j < taggingArray.data.mappings.mappings.length; j++) {
11335
11417
 
11336
11418
  if(taggingArray.data.mappings.mappings[j] != null) {
11337
11419
  if(taggingArray.data.mappings.mappings[j][colName] != null && taggingArray.data.mappings.mappings[j][colName].length > 0) {
11338
11420
  tagged++;
11339
11421
  }
11422
+ if(this.changedOnboardingItemIds.length > 0 ){
11423
+ let changedId = ""
11424
+ for(let [k,col] of uniqCols.entries()){
11425
+ changedId += taggingArray.data.mappings.mappings[j][col];
11426
+ if(k < (uniqCols.length - 1)){
11427
+ changedId += ";"
11428
+ }
11429
+ }
11430
+ if(this.changedOnboardingItemIds.indexOf(changedId) >= 0){
11431
+ changed++;
11432
+ }
11433
+ }
11340
11434
 
11341
11435
  }
11342
11436
 
@@ -11385,7 +11479,9 @@ export class SfIEvents extends LitElement {
11385
11479
  html += ((jobs && jobs.data && (jobs.data.status == "1" || jobs.data.status == "0" )) ? '' : '<div class="left-sticky d-flex justify-between align-center mr-10"><h4 id="mapped-stats-title" part="results-title" class="d-flex align-center m-0">'+status+'&nbsp;&nbsp;Mapped '+tagged+' out of '+sourceArray.data.mappings.mappings.length+'</h4></div>')
11386
11480
 
11387
11481
  }
11388
-
11482
+ if(changed > 0){
11483
+ html += ((jobs && jobs.data && (jobs.data.status == "1" || jobs.data.status == "0" )) ? '' : '<div class="left-sticky d-flex justify-between align-center mr-10"><h4 part="results-title" class="d-flex align-center m-0"><span class="color-pending material-icons">pending</span>&nbsp;&nbsp;' + changed + ' Items changed</h4></div>')
11484
+ }
11389
11485
  html += ((jobs && jobs.data && (jobs.data.status == "1" || jobs.data.status == "0" )) ? '' : '<div class="left-sticky d-flex justify-between align-center mr-10"><h4 part="results-title" class="d-flex align-center m-0">' + mandatoryStatus + '</h4></div>')
11390
11486
 
11391
11487
  html += ((jobs && jobs.data && (jobs.data.status == "1" || jobs.data.status == "0" )) ? '' : '<div class="left-sticky d-flex justify-between align-center mr-10"><h4 id="span-extra-filled" class="m-0" part="results-title"></h4></div>')
@@ -11475,7 +11571,7 @@ export class SfIEvents extends LitElement {
11475
11571
  // }
11476
11572
  html += '</thead>';
11477
11573
  html += '<tbody>';
11478
-
11574
+ console.log('changedIds', this.changedOnboardingItemIds);
11479
11575
  for(i = 0; i < sourceArray.data.mappings.mappings.length; i++) {
11480
11576
 
11481
11577
  var showSearch = false;
@@ -11609,14 +11705,36 @@ export class SfIEvents extends LitElement {
11609
11705
  var classBg = "";
11610
11706
 
11611
11707
  if(i%2 === 0) {
11612
- if(this.changedOnboardingItemIds.length > 0 && this.changedOnboardingItemIds.indexOf(taggingArray.data.mappings.mappings[i].id) >= 0 ){
11613
- classBg = 'td-light-selected';
11708
+ if(this.changedOnboardingItemIds.length > 0){
11709
+ let changedId = ""
11710
+ for(let [k,col] of uniqCols.entries()){
11711
+ changedId += taggingArray.data.mappings.mappings[i][col];
11712
+ if(k < (uniqCols.length - 1)){
11713
+ changedId += ";"
11714
+ }
11715
+ }
11716
+ if(this.changedOnboardingItemIds.indexOf(changedId) >= 0){
11717
+ classBg = 'td-light-selected';
11718
+ }else{
11719
+ classBg = 'td-light';
11720
+ }
11614
11721
  }else{
11615
11722
  classBg = 'td-light';
11616
11723
  }
11617
11724
  } else {
11618
- if(this.changedOnboardingItemIds.length > 0 && this.changedOnboardingItemIds.indexOf(taggingArray.data.mappings.mappings[i].id) >= 0 ){
11619
- classBg = 'td-dark-selected';
11725
+ if(this.changedOnboardingItemIds.length > 0){
11726
+ let changedId = ""
11727
+ for(let [k,col] of uniqCols.entries()){
11728
+ changedId += taggingArray.data.mappings.mappings[i][col];
11729
+ if(k < (uniqCols.length - 1)){
11730
+ changedId += ";"
11731
+ }
11732
+ }
11733
+ if(this.changedOnboardingItemIds.indexOf(changedId) >= 0){
11734
+ classBg = 'td-dark-selected';
11735
+ }else{
11736
+ classBg = 'td-dark';
11737
+ }
11620
11738
  }else{
11621
11739
  classBg = 'td-dark';
11622
11740
  }
@@ -12245,7 +12363,15 @@ export class SfIEvents extends LitElement {
12245
12363
  for(let [i,obj] of tempArr.entries()){
12246
12364
  if(JSON.stringify(taggingArray.data.mappings.mappings[i]) !== JSON.stringify(obj)){
12247
12365
  console.log('item changed', taggingArray.data.mappings.mappings[i], obj)
12248
- this.changedOnboardingItemIds.push(taggingArray.data.mappings.mappings[i].id)
12366
+ let changedId = ""
12367
+ for(let [k,col] of uniqCols.entries()){
12368
+ changedId += taggingArray.data.mappings.mappings[i][col];
12369
+ if(k < (uniqCols.length - 1)){
12370
+ changedId += ";"
12371
+ }
12372
+ }
12373
+ // this.changedOnboardingItemIds.push(taggingArray.data.mappings.mappings[i].id + ";" + taggingArray.data.mappings.mappings[i].entityid + ";" + taggingArray.data.mappings.mappings[i].locationid)
12374
+ this.changedOnboardingItemIds.push(changedId)
12249
12375
  changeCount++
12250
12376
  }
12251
12377
  }
@@ -19256,7 +19382,7 @@ export class SfIEvents extends LitElement {
19256
19382
 
19257
19383
 
19258
19384
  fetchSearchStatutes = async (searchString: string, cursor: string = "") => {
19259
-
19385
+ console.log('cursor', cursor);
19260
19386
  let url = "https://"+this.apiIdStatutes+"/listlarge";
19261
19387
  let authorization = btoa(Util.readCookie('email') + ":" + Util.readCookie('accessToken'));
19262
19388
  let xhr : any = (await this.prepareXhr({"searchstring": searchString, "cursor": cursor}, url, this._SfLoader, authorization)) as any;
@@ -19264,7 +19390,7 @@ export class SfIEvents extends LitElement {
19264
19390
  if(xhr.status == 200) {
19265
19391
 
19266
19392
  const jsonRespose = JSON.parse(xhr.responseText);
19267
- //console.log('searchstatutes', jsonRespose);
19393
+ console.log('searchstatutes', {"searchstring": searchString, "cursor": cursor}, jsonRespose);
19268
19394
 
19269
19395
  let newCursor = jsonRespose.cursor;
19270
19396
  let i = 0;