Skip to content

Commit 3baf45f

Browse files
ivoplashkovvladitasev
authored andcommitted
feat(ui5-table): introduce popinChange event (#1166)
1 parent dc60088 commit 3baf45f

File tree

3 files changed

+37
-3
lines changed

3 files changed

+37
-3
lines changed

packages/main/src/Table.js

+18
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,19 @@ const metadata = {
106106
},
107107
},
108108
events: /** @lends sap.ui.webcomponents.main.Table.prototype */ {
109+
/**
110+
* Fired when the <code>ui5-table-column</code> is shown as a pop-in instead of hiding it.
111+
*
112+
* @event
113+
* @param {Array} poppedColumns popped-in columns.
114+
* @since 1.0.0-rc.6
115+
* @public
116+
*/
117+
popinChange: {
118+
detail: {
119+
poppedColumns: {},
120+
},
121+
},
109122
},
110123
};
111124

@@ -242,6 +255,11 @@ class Table extends UI5Element {
242255
// invalidate only if hidden columns count has changed
243256
if (this._hiddenColumns.length !== hiddenColumns.length) {
244257
this._hiddenColumns = hiddenColumns;
258+
if (hiddenColumns.length) {
259+
this.fireEvent("popinChange", {
260+
poppedColumns: this._hiddenColumns,
261+
});
262+
}
245263
}
246264
}
247265

packages/main/test/pages/Table.html

+9-3
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,9 @@
118118
</ui5-table-row> -->
119119

120120
</ui5-table>
121+
<label id="tableLabel">Number of poppedColumns: </label>
121122

122-
123-
<br>
123+
<br><br>
124124

125125
<table border="1" style="width: 100%">
126126

@@ -2822,6 +2822,9 @@
28222822
}
28232823
};
28242824
var html = '';
2825+
const table = document.getElementById("tbl");
2826+
let tableLable = document.getElementById("tableLabel");
2827+
28252828
products.ProductCollection.forEach(function (product, index) {
28262829
var test = "<ui5-table-row id=roll-".concat(index, ">\n\t\t\t\t\t\t\t<ui5-table-cell>\n\t\t\t\t\t\t\t\t<div class=\"double-line-content\">\n\t\t\t\t\t\t\t\t\t<ui5-label>\n\t\t\t\t\t\t\t\t\t\t<b>").concat(product.Name, "</b>\n\t\t\t\t\t\t\t\t\t</ui5-label>\n\t\t\t\t\t\t\t\t\t<ui5-label style=\"margin-top: 0.5rem\">").concat(product.ProductId, "</ui5-label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ui5-table-cell>\n\n\t\t\t\t\t\t\t<ui5-table-cell>\n\t\t\t\t\t\t\t\t<ui5-label class=\"middle\" >").concat(product.SupplierName, "</ui5-label>\n\t\t\t\t\t\t\t</ui5-table-cell>\n\n\t\t\t\t\t\t\t<ui5-table-cell>\n\t\t\t\t\t\t\t\t<ui5-label class=\"middle\" >").concat(product.Width, " x ").concat(product.Depth, " x ").concat(product.Height, " ").concat(product.DimUnit, "</ui5-label>\n\t\t\t\t\t\t\t</ui5-table-cell>\n\n\t\t\t\t\t\t\t<ui5-table-cell>\n\t\t\t\t\t\t\t\t<ui5-label style=\"color: #2b7c2b\" class=\"middle\">\n\t\t\t\t\t\t\t\t\t<b>").concat(product.WeightMeasure, "</b> ").concat(product.WeightUnit, "</ui5-label>\n\t\t\t\t\t\t\t</ui5-table-cell>\n\n\t\t\t\t\t\t\t<ui5-table-cell>\n\t\t\t\t\t\t\t\t<ui5-label class=\"middle\" >\n\t\t\t\t\t\t\t\t\t<b>").concat(product.Price, "</b> ").concat(product.CurrencyCode, "</ui5-label>\n\t\t\t\t\t\t\t</ui5-table-cell>\n\n\t\t\t\t\t\t</ui5-table-row>");
28272830

@@ -2833,7 +2836,6 @@
28332836
});
28342837
document.getElementById("tbl").insertAdjacentHTML('beforeend', html);
28352838

2836-
28372839
document.getElementById("toggleSticky").addEventListener("click", function(event) {
28382840
document.getElementById("tbl").stickyColumnHeader = !document.getElementById("tbl").stickyColumnHeader
28392841
});
@@ -2845,6 +2847,10 @@
28452847
document.getElementById("size-btn-500").addEventListener("click", function(event) {
28462848
document.getElementById("tbl").style.width = "500px";
28472849
});
2850+
2851+
table.addEventListener("popinChange", function (e) {
2852+
tableLable.textContent = `Number of poppedColumns: ${e.detail.poppedColumns.length}`;
2853+
});
28482854
</script>
28492855
</body>
28502856

packages/main/test/specs/Table.spec.js

+10
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,14 @@ describe("Table general interaction", () => {
3434
const tblLessCells = browser.$("#tblLessCells");
3535
assert.equal(tblLessCells.isExisting(), true, 'table with more columns is rendered without JS errors.');
3636
});
37+
38+
it("tests if popinChange is fired when min-width is reacted (500px)", () => {
39+
let tableLabel = browser.$("#tableLabel");
40+
const btn = browser.$("#size-btn-500");
41+
42+
btn.click();
43+
browser.pause(300);
44+
45+
assert.strictEqual(tableLabel.getHTML(false), "Number of poppedColumns: 2", "popinChange should be fired and columns should be 4");
46+
});
3747
});

0 commit comments

Comments
 (0)