ninegrid2 6.175.0 → 6.176.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18464,6 +18464,8 @@ class ngFilterPanel extends HTMLElement
18464
18464
 
18465
18465
  open = (owner, filterButton) => {
18466
18466
 
18467
+ console.log(this.shadow.closest("nine-grid"));
18468
+
18467
18469
  var col = filterButton.closest('th,td').dataset.col;
18468
18470
  this.col = col;
18469
18471
 
@@ -18478,13 +18480,115 @@ class ngFilterPanel extends HTMLElement
18478
18480
  };
18479
18481
 
18480
18482
  this.style.display = 'flex';
18481
- //$(this).show();
18482
-
18483
- //console.log(document.shadow.querySelectorAll(this), ninegrid.j.querySelectorAll(this));
18484
- //ninegrid.j.querySelectorAll(this).addClass("loading");
18485
18483
  this.classList.add("loading");
18484
+
18486
18485
 
18487
- return;
18486
+ this.shadowRoot.querySelector("input[type=text]").value = "";
18487
+
18488
+ //$(this.shadowRoot).find("input[type=text]").val("");
18489
+
18490
+ setTimeout(() => {
18491
+
18492
+
18493
+ var ds = [];
18494
+ var colnms = [];
18495
+ $(owner.template).find(`[data-col=${col}]`).each((index,el) => {
18496
+ if (el.dataset.bind) colnms.push(el.dataset.bind);
18497
+ });
18498
+
18499
+ var data = owner.data.getValidDataNF();
18500
+ $("ng-filter-button", owner.body).each((index,el) => {
18501
+
18502
+ if (el.closest('th,td').dataset.col == col || !el.filterData) return true;
18503
+ /**
18504
+ el.filterData.forEach(o => {
18505
+ var idx = owner.fields.indexOf(o.colnm);
18506
+
18507
+ if (idx >= 0) {
18508
+ data = data.filter(m => { return o.data.nineBinarySearch(m.v[idx] || '') >= 0; });
18509
+ }
18510
+ });
18511
+ */
18512
+
18513
+ console.log(el.filterData, el.colnms, el.dataset.bind);
18514
+
18515
+ el.colnms.forEach(colnm => {
18516
+ var idx = owner.fields.indexOf(colnm);
18517
+
18518
+ console.log(idx);
18519
+
18520
+ if (idx >= 0) {
18521
+ data = data.filter(m => { return el.filterData.nineBinarySearch(m.v[idx] || '') >= 0; });
18522
+ }
18523
+ });
18524
+
18525
+ //data = data.filter(rowData => { return el.filterData.findIndex(item => (item.DATA || '') == (rowData[item.COLNM] || '') ) >= 0; });
18526
+ });
18527
+
18528
+
18529
+ colnms = [...new Set(colnms)];
18530
+ colnms.forEach((colnm,i) => {
18531
+
18532
+ ds.push({
18533
+ LVL: 1,
18534
+ CHK: 'N',
18535
+ DATA2: '<span class="group">' + $(filterButton).closest('th,td').text() + (colnms.length > 1 ? ` #${i+1} (${colnm})` : '') + '</span>',
18536
+ });
18537
+
18538
+ var filterData = [];
18539
+ if (filterButton.filterData) {
18540
+ var idx = filterButton.filterData.findIndex(item => item.colnm == colnm);
18541
+ if (idx >= 0) {
18542
+ filterData = filterButton.filterData[idx].data;
18543
+ }
18544
+ }
18545
+
18546
+ /**
18547
+ var cell = $(`[data-col=${col}][data-bind=${colnm}]`, owner.template);
18548
+ var expr = cell.attr("data-expr");
18549
+ var exprFunc = (expr) ? owner.exprFunction(expr) : null;
18550
+ */
18551
+
18552
+ const cell = ninegrid.j.querySelectorAll(`[data-col="${col}"][data-bind="${colnm}"]`, owner.tmpl).elem();
18553
+ const expr = cell.getAttribute("data-expr");
18554
+ const exprFunc = (expr) ? owner.exprFunction(expr) : null;
18555
+
18556
+ var data2 = [];
18557
+ for (var rowData of data) {
18558
+ var idx = owner.fields.indexOf(colnm);
18559
+
18560
+ if (expr) {
18561
+ var o = owner.data.conv(rowData);
18562
+ data2.push({v:o[colnm],v2:exprFunc(o, rowData.__ng.rowidx, owner.data)});
18563
+ }
18564
+ else {
18565
+ data2.push({v:rowData.v[idx],v2:rowData.v[idx]});
18566
+ }
18567
+ }
18568
+
18569
+ [...new Set(data2.sort( (a,b) => { return (a.v2||'') > (b.v2||'') ? 1 : ((a.v2||'') < (b.v2||'') ? -1 : 0); } ).map((m) => JSON.stringify(m)))].map((m) => JSON.parse(m)).forEach(o => {
18570
+ ds.push({
18571
+ LVL : 2,
18572
+ DATA : o.v,
18573
+ DATA2 : o.v2 || ` <span class="empty">(empty)</span> ${o.v}`,
18574
+ COLNM : colnm,
18575
+ CHK : filterData.length == 0 || filterData.nineBinarySearch(o.v || '') >= 0 ? "Y" : "N",
18576
+ });
18577
+ });
18578
+ });
18579
+
18580
+ var grd = this.shadowRoot.querySelector("nine-grid");
18581
+ //grd.dataSource = ds;
18582
+ grd.fields.add(["DATA","DATA2","COLNM"]);
18583
+
18584
+ grd.data.set(ds);
18585
+
18586
+ $(this.shadowRoot).find("input[type=checkbox]").prop("checked", grd.data.getValidData().filter(item => { return item.LVL == 2 && item.CHK != "Y"; }).length == 0 ? true : false);
18587
+
18588
+ this.shadowRoot.querySelector("input").focus();
18589
+
18590
+ ninegrid.j.querySelectorAll(this).removeClass("loading");
18591
+ });
18488
18592
  };
18489
18593
  }
18490
18594
 
@@ -18462,6 +18462,8 @@ class ngFilterPanel extends HTMLElement
18462
18462
 
18463
18463
  open = (owner, filterButton) => {
18464
18464
 
18465
+ console.log(this.shadow.closest("nine-grid"));
18466
+
18465
18467
  var col = filterButton.closest('th,td').dataset.col;
18466
18468
  this.col = col;
18467
18469
 
@@ -18476,13 +18478,115 @@ class ngFilterPanel extends HTMLElement
18476
18478
  };
18477
18479
 
18478
18480
  this.style.display = 'flex';
18479
- //$(this).show();
18480
-
18481
- //console.log(document.shadow.querySelectorAll(this), ninegrid.j.querySelectorAll(this));
18482
- //ninegrid.j.querySelectorAll(this).addClass("loading");
18483
18481
  this.classList.add("loading");
18482
+
18484
18483
 
18485
- return;
18484
+ this.shadowRoot.querySelector("input[type=text]").value = "";
18485
+
18486
+ //$(this.shadowRoot).find("input[type=text]").val("");
18487
+
18488
+ setTimeout(() => {
18489
+
18490
+
18491
+ var ds = [];
18492
+ var colnms = [];
18493
+ $(owner.template).find(`[data-col=${col}]`).each((index,el) => {
18494
+ if (el.dataset.bind) colnms.push(el.dataset.bind);
18495
+ });
18496
+
18497
+ var data = owner.data.getValidDataNF();
18498
+ $("ng-filter-button", owner.body).each((index,el) => {
18499
+
18500
+ if (el.closest('th,td').dataset.col == col || !el.filterData) return true;
18501
+ /**
18502
+ el.filterData.forEach(o => {
18503
+ var idx = owner.fields.indexOf(o.colnm);
18504
+
18505
+ if (idx >= 0) {
18506
+ data = data.filter(m => { return o.data.nineBinarySearch(m.v[idx] || '') >= 0; });
18507
+ }
18508
+ });
18509
+ */
18510
+
18511
+ console.log(el.filterData, el.colnms, el.dataset.bind);
18512
+
18513
+ el.colnms.forEach(colnm => {
18514
+ var idx = owner.fields.indexOf(colnm);
18515
+
18516
+ console.log(idx);
18517
+
18518
+ if (idx >= 0) {
18519
+ data = data.filter(m => { return el.filterData.nineBinarySearch(m.v[idx] || '') >= 0; });
18520
+ }
18521
+ });
18522
+
18523
+ //data = data.filter(rowData => { return el.filterData.findIndex(item => (item.DATA || '') == (rowData[item.COLNM] || '') ) >= 0; });
18524
+ });
18525
+
18526
+
18527
+ colnms = [...new Set(colnms)];
18528
+ colnms.forEach((colnm,i) => {
18529
+
18530
+ ds.push({
18531
+ LVL: 1,
18532
+ CHK: 'N',
18533
+ DATA2: '<span class="group">' + $(filterButton).closest('th,td').text() + (colnms.length > 1 ? ` #${i+1} (${colnm})` : '') + '</span>',
18534
+ });
18535
+
18536
+ var filterData = [];
18537
+ if (filterButton.filterData) {
18538
+ var idx = filterButton.filterData.findIndex(item => item.colnm == colnm);
18539
+ if (idx >= 0) {
18540
+ filterData = filterButton.filterData[idx].data;
18541
+ }
18542
+ }
18543
+
18544
+ /**
18545
+ var cell = $(`[data-col=${col}][data-bind=${colnm}]`, owner.template);
18546
+ var expr = cell.attr("data-expr");
18547
+ var exprFunc = (expr) ? owner.exprFunction(expr) : null;
18548
+ */
18549
+
18550
+ const cell = ninegrid.j.querySelectorAll(`[data-col="${col}"][data-bind="${colnm}"]`, owner.tmpl).elem();
18551
+ const expr = cell.getAttribute("data-expr");
18552
+ const exprFunc = (expr) ? owner.exprFunction(expr) : null;
18553
+
18554
+ var data2 = [];
18555
+ for (var rowData of data) {
18556
+ var idx = owner.fields.indexOf(colnm);
18557
+
18558
+ if (expr) {
18559
+ var o = owner.data.conv(rowData);
18560
+ data2.push({v:o[colnm],v2:exprFunc(o, rowData.__ng.rowidx, owner.data)});
18561
+ }
18562
+ else {
18563
+ data2.push({v:rowData.v[idx],v2:rowData.v[idx]});
18564
+ }
18565
+ }
18566
+
18567
+ [...new Set(data2.sort( (a,b) => { return (a.v2||'') > (b.v2||'') ? 1 : ((a.v2||'') < (b.v2||'') ? -1 : 0); } ).map((m) => JSON.stringify(m)))].map((m) => JSON.parse(m)).forEach(o => {
18568
+ ds.push({
18569
+ LVL : 2,
18570
+ DATA : o.v,
18571
+ DATA2 : o.v2 || ` <span class="empty">(empty)</span> ${o.v}`,
18572
+ COLNM : colnm,
18573
+ CHK : filterData.length == 0 || filterData.nineBinarySearch(o.v || '') >= 0 ? "Y" : "N",
18574
+ });
18575
+ });
18576
+ });
18577
+
18578
+ var grd = this.shadowRoot.querySelector("nine-grid");
18579
+ //grd.dataSource = ds;
18580
+ grd.fields.add(["DATA","DATA2","COLNM"]);
18581
+
18582
+ grd.data.set(ds);
18583
+
18584
+ $(this.shadowRoot).find("input[type=checkbox]").prop("checked", grd.data.getValidData().filter(item => { return item.LVL == 2 && item.CHK != "Y"; }).length == 0 ? true : false);
18585
+
18586
+ this.shadowRoot.querySelector("input").focus();
18587
+
18588
+ ninegrid.j.querySelectorAll(this).removeClass("loading");
18589
+ });
18486
18590
  };
18487
18591
  }
18488
18592
 
@@ -530,6 +530,8 @@ class ngFilterPanel extends HTMLElement
530
530
 
531
531
  open = (owner, filterButton) => {
532
532
 
533
+ console.log(this.shadow.closest("nine-grid"));
534
+
533
535
  var col = filterButton.closest('th,td').dataset.col;
534
536
  this.col = col;
535
537
 
@@ -547,18 +549,16 @@ class ngFilterPanel extends HTMLElement
547
549
  }
548
550
 
549
551
  this.style.display = 'flex';
550
- //$(this).show();
551
-
552
- //console.log(document.shadow.querySelectorAll(this), ninegrid.j.querySelectorAll(this));
553
- //ninegrid.j.querySelectorAll(this).addClass("loading");
554
552
  this.classList.add("loading");
553
+
555
554
 
556
- return;
555
+ this.shadowRoot.querySelector("input[type=text]").value = "";
557
556
 
558
- $(this.shadowRoot).find("input[type=text]").val("");
557
+ //$(this.shadowRoot).find("input[type=text]").val("");
559
558
 
560
559
  setTimeout(() => {
561
560
 
561
+
562
562
  var ds = [];
563
563
  var colnms = [];
564
564
  $(owner.template).find(`[data-col=${col}]`).each((index,el) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ninegrid2",
3
3
  "type": "module",
4
- "version": "6.175.0",
4
+ "version": "6.176.0",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
7
7
  "import": "./dist/index.js",
@@ -530,6 +530,8 @@ class ngFilterPanel extends HTMLElement
530
530
 
531
531
  open = (owner, filterButton) => {
532
532
 
533
+ console.log(this.shadow.closest("nine-grid"));
534
+
533
535
  var col = filterButton.closest('th,td').dataset.col;
534
536
  this.col = col;
535
537
 
@@ -547,18 +549,16 @@ class ngFilterPanel extends HTMLElement
547
549
  }
548
550
 
549
551
  this.style.display = 'flex';
550
- //$(this).show();
551
-
552
- //console.log(document.shadow.querySelectorAll(this), ninegrid.j.querySelectorAll(this));
553
- //ninegrid.j.querySelectorAll(this).addClass("loading");
554
552
  this.classList.add("loading");
553
+
555
554
 
556
- return;
555
+ this.shadowRoot.querySelector("input[type=text]").value = "";
557
556
 
558
- $(this.shadowRoot).find("input[type=text]").val("");
557
+ //$(this.shadowRoot).find("input[type=text]").val("");
559
558
 
560
559
  setTimeout(() => {
561
560
 
561
+
562
562
  var ds = [];
563
563
  var colnms = [];
564
564
  $(owner.template).find(`[data-col=${col}]`).each((index,el) => {