@ui5/webcomponents-compat 0.0.0-da0d3eb88 → 0.0.0-df5b4199a
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/CHANGELOG.md +918 -0
- package/LICENSE.txt +201 -0
- package/README.md +12 -12
- package/cypress.config.js +3 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/Assets-fetch.d.ts +3 -0
- package/dist/Assets-fetch.js +6 -0
- package/dist/Assets-fetch.js.map +1 -0
- package/dist/Assets-node.d.ts +14 -0
- package/dist/Assets-node.js +17 -0
- package/dist/Assets-node.js.map +1 -0
- package/dist/Table.d.ts +23 -27
- package/dist/Table.js +131 -76
- package/dist/Table.js.map +1 -1
- package/dist/TableCell.d.ts +1 -1
- package/dist/TableCell.js +24 -6
- package/dist/TableCell.js.map +1 -1
- package/dist/TableCellTemplate.d.ts +2 -0
- package/dist/TableCellTemplate.js +5 -0
- package/dist/TableCellTemplate.js.map +1 -0
- package/dist/TableColumn.d.ts +4 -3
- package/dist/TableColumn.js +50 -7
- package/dist/TableColumn.js.map +1 -1
- package/dist/TableColumnTemplate.d.ts +2 -0
- package/dist/TableColumnTemplate.js +5 -0
- package/dist/TableColumnTemplate.js.map +1 -0
- package/dist/TableGroupRow.d.ts +7 -4
- package/dist/TableGroupRow.js +29 -21
- package/dist/TableGroupRow.js.map +1 -1
- package/dist/TableGroupRowTemplate.d.ts +2 -0
- package/dist/TableGroupRowTemplate.js +5 -0
- package/dist/TableGroupRowTemplate.js.map +1 -0
- package/dist/TableRow.d.ts +15 -9
- package/dist/TableRow.js +104 -43
- package/dist/TableRow.js.map +1 -1
- package/dist/TableRowTemplate.d.ts +2 -0
- package/dist/TableRowTemplate.js +15 -0
- package/dist/TableRowTemplate.js.map +1 -0
- package/dist/TableTemplate.d.ts +2 -0
- package/dist/TableTemplate.js +20 -0
- package/dist/TableTemplate.js.map +1 -0
- package/dist/bundle.esm.d.ts +1 -1
- package/dist/bundle.esm.js +13 -7
- package/dist/bundle.esm.js.map +1 -1
- package/dist/bundle.scoped.config.d.ts +1 -0
- package/dist/bundle.scoped.config.js +5 -0
- package/dist/bundle.scoped.config.js.map +1 -0
- package/dist/bundle.scoped.esm.d.ts +1 -0
- package/dist/bundle.scoped.esm.js +1 -4
- package/dist/bundle.scoped.esm.js.map +1 -1
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCell.css +1 -1
- package/dist/css/themes/TableColumn.css +1 -1
- package/dist/css/themes/TableGroupRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +265 -248
- package/dist/custom-elements.json +107 -84
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_id.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +1 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -3
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/json-imports/Themes-fetch.d.ts +1 -0
- package/dist/generated/json-imports/Themes-fetch.js +25 -0
- package/dist/generated/json-imports/Themes-fetch.js.map +1 -0
- package/dist/generated/json-imports/Themes-node.d.ts +1 -0
- package/dist/generated/json-imports/Themes-node.js +25 -0
- package/dist/generated/json-imports/Themes-node.js.map +1 -0
- package/dist/generated/json-imports/Themes.js +1 -1
- package/dist/generated/json-imports/Themes.js.map +1 -1
- package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
- package/dist/generated/json-imports/i18n-fetch.js +120 -0
- package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
- package/dist/generated/json-imports/i18n-node.d.ts +1 -0
- package/dist/generated/json-imports/i18n-node.js +120 -0
- package/dist/generated/json-imports/i18n-node.js.map +1 -0
- package/dist/generated/json-imports/i18n.js +3 -3
- package/dist/generated/json-imports/i18n.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.d.ts +2 -3
- package/dist/generated/themes/GrowingButton.css.js +4 -5
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +2 -3
- package/dist/generated/themes/Table.css.js +4 -5
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCell.css.d.ts +2 -3
- package/dist/generated/themes/TableCell.css.js +4 -5
- package/dist/generated/themes/TableCell.css.js.map +1 -1
- package/dist/generated/themes/TableColumn.css.d.ts +2 -3
- package/dist/generated/themes/TableColumn.css.js +4 -5
- package/dist/generated/themes/TableColumn.css.js.map +1 -1
- package/dist/generated/themes/TableGroupRow.css.d.ts +2 -3
- package/dist/generated/themes/TableGroupRow.css.js +4 -5
- package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.d.ts +2 -3
- package/dist/generated/themes/TableRow.css.js +4 -5
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +2 -3
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +2 -3
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +2 -3
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +2 -3
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +2 -3
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +2 -3
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +2 -3
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +2 -3
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +2 -3
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +2 -3
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +2 -3
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +2 -3
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +2 -3
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +2 -3
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +2 -3
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +2 -3
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/utils/CompatCustomElementsScope.d.ts +5 -0
- package/dist/utils/CompatCustomElementsScope.js +38 -0
- package/dist/utils/CompatCustomElementsScope.js.map +1 -0
- package/dist/web-types.json +16 -16
- package/package-scripts.cjs +3 -0
- package/package.json +23 -18
- package/src/TableCellTemplate.tsx +13 -0
- package/src/TableColumnTemplate.tsx +13 -0
- package/src/TableGroupRowTemplate.tsx +17 -0
- package/src/TableRowTemplate.tsx +92 -0
- package/src/TableTemplate.tsx +129 -0
- package/src/i18n/messagebundle_ca.properties +1 -1
- package/src/i18n/messagebundle_cy.properties +1 -1
- package/src/i18n/messagebundle_en_US_sappsd.properties +5 -296
- package/src/i18n/messagebundle_en_US_saptrc.properties +10 -301
- package/src/i18n/messagebundle_fr.properties +3 -3
- package/src/i18n/messagebundle_fr_CA.properties +3 -3
- package/src/i18n/messagebundle_hr.properties +1 -1
- package/src/i18n/messagebundle_it.properties +1 -1
- package/src/i18n/messagebundle_lv.properties +1 -1
- package/src/themes/GrowingButton.css +13 -13
- package/src/themes/Table.css +17 -24
- package/src/themes/TableCell.css +1 -1
- package/src/themes/TableGroupRow.css +2 -2
- package/src/themes/TableRow.css +38 -3
- package/src/themes/base/Table-parameters.css +1 -0
- package/src/themes/base/sizes-parameters.css +0 -1
- package/src/themes/sap_horizon/Table-parameters.css +1 -2
- package/src/themes/sap_horizon/parameters-bundle.css +0 -1
- package/src/themes/sap_horizon_dark/Table-parameters.css +1 -2
- package/src/themes/sap_horizon_dark/parameters-bundle.css +0 -1
- package/src/themes/sap_horizon_hcb/Table-parameters.css +1 -2
- package/src/themes/sap_horizon_hcw/Table-parameters.css +1 -2
- package/tsconfig.json +61 -26
- package/dist/generated/assets/i18n/messagebundle_in.json +0 -1
- package/dist/generated/templates/TableCellTemplate.lit.d.ts +0 -4
- package/dist/generated/templates/TableCellTemplate.lit.js +0 -5
- package/dist/generated/templates/TableCellTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableColumnTemplate.lit.d.ts +0 -4
- package/dist/generated/templates/TableColumnTemplate.lit.js +0 -5
- package/dist/generated/templates/TableColumnTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableGroupRowTemplate.lit.d.ts +0 -4
- package/dist/generated/templates/TableGroupRowTemplate.lit.js +0 -5
- package/dist/generated/templates/TableGroupRowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -4
- package/dist/generated/templates/TableRowTemplate.lit.js +0 -16
- package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
- package/dist/generated/templates/TableTemplate.lit.d.ts +0 -4
- package/dist/generated/templates/TableTemplate.lit.js +0 -15
- package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
- package/src/Table.hbs +0 -121
- package/src/TableCell.hbs +0 -7
- package/src/TableColumn.hbs +0 -7
- package/src/TableGroupRow.hbs +0 -11
- package/src/TableRow.hbs +0 -85
- package/src/i18n/messagebundle_in.properties +0 -172
- package/src/themes/sap_horizon/TableColumn-parameters.css +0 -5
- package/src/themes/sap_horizon_dark/TableColumn-parameters.css +0 -5
package/dist/TableGroupRow.js
CHANGED
|
@@ -8,16 +8,16 @@ var TableGroupRow_1;
|
|
|
8
8
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
|
-
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import TableGroupRowTemplate from "./generated/templates/TableGroupRowTemplate.lit.js";
|
|
11
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
12
|
+
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
13
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
14
|
+
import TableGroupRowTemplate from "./TableGroupRowTemplate.js";
|
|
16
15
|
import TableMode from "./types/TableMode.js";
|
|
17
16
|
// Texts
|
|
18
17
|
import { TABLE_GROUP_ROW_ARIA_LABEL, } from "./generated/i18n/i18n-defaults.js";
|
|
19
18
|
// Styles
|
|
20
19
|
import tableGroupRowStyles from "./generated/themes/TableGroupRow.css.js";
|
|
20
|
+
import { patchScopingSuffix } from "./utils/CompatCustomElementsScope.js";
|
|
21
21
|
/**
|
|
22
22
|
* @class
|
|
23
23
|
*
|
|
@@ -33,10 +33,18 @@ import tableGroupRowStyles from "./generated/themes/TableGroupRow.css.js";
|
|
|
33
33
|
*
|
|
34
34
|
* **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
|
|
35
35
|
* @csspart group-row - Used to style the native `tr` element
|
|
36
|
+
* @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/Table.js` instead.
|
|
36
37
|
*/
|
|
37
38
|
let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
|
38
39
|
constructor() {
|
|
39
40
|
super(...arguments);
|
|
41
|
+
/**
|
|
42
|
+
* Defines the mode of the row
|
|
43
|
+
* @default "None"
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
this.mode = "None";
|
|
47
|
+
this.forcedBusy = false;
|
|
40
48
|
// Properties, set and handled by the Table
|
|
41
49
|
this.selected = false;
|
|
42
50
|
this.tabbableElements = [];
|
|
@@ -46,12 +54,12 @@ let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
|
|
46
54
|
return this._colSpan;
|
|
47
55
|
}
|
|
48
56
|
get ariaLabelText() {
|
|
49
|
-
return `${TableGroupRow_1.i18nBundle.getText(TABLE_GROUP_ROW_ARIA_LABEL)} ${this.
|
|
57
|
+
return `${TableGroupRow_1.i18nBundle.getText(TABLE_GROUP_ROW_ARIA_LABEL)} ${this.textContent}. ${this.forcedAriaPosition}`;
|
|
50
58
|
}
|
|
51
59
|
visibleColCount() {
|
|
52
|
-
let count = this._columnsInfo
|
|
60
|
+
let count = this._columnsInfo?.reduce((acc, column) => {
|
|
53
61
|
return column.visible ? ++acc : acc;
|
|
54
|
-
}, 0);
|
|
62
|
+
}, 0) || 0;
|
|
55
63
|
if (this.mode === TableMode.MultiSelect) {
|
|
56
64
|
count++;
|
|
57
65
|
}
|
|
@@ -64,39 +72,39 @@ let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
|
|
64
72
|
this._colSpan = this.visibleColCount();
|
|
65
73
|
}
|
|
66
74
|
_onfocusin(e) {
|
|
67
|
-
this.
|
|
68
|
-
}
|
|
69
|
-
static async onDefine() {
|
|
70
|
-
TableGroupRow_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
75
|
+
this.fireDecoratorEvent("_focused", e);
|
|
71
76
|
}
|
|
72
77
|
};
|
|
73
78
|
__decorate([
|
|
74
|
-
property(
|
|
79
|
+
property()
|
|
75
80
|
], TableGroupRow.prototype, "mode", void 0);
|
|
76
81
|
__decorate([
|
|
77
|
-
property({ type:
|
|
82
|
+
property({ type: Array })
|
|
78
83
|
], TableGroupRow.prototype, "_columnsInfo", void 0);
|
|
79
84
|
__decorate([
|
|
80
|
-
property(
|
|
85
|
+
property()
|
|
81
86
|
], TableGroupRow.prototype, "forcedTabIndex", void 0);
|
|
82
87
|
__decorate([
|
|
83
88
|
property({ type: Boolean })
|
|
84
89
|
], TableGroupRow.prototype, "forcedBusy", void 0);
|
|
85
90
|
__decorate([
|
|
86
|
-
property(
|
|
91
|
+
property()
|
|
87
92
|
], TableGroupRow.prototype, "forcedAriaPosition", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
i18n("@ui5/webcomponents")
|
|
95
|
+
], TableGroupRow, "i18nBundle", void 0);
|
|
88
96
|
TableGroupRow = TableGroupRow_1 = __decorate([
|
|
89
97
|
customElement({
|
|
90
98
|
tag: "ui5-table-group-row",
|
|
91
99
|
styles: tableGroupRowStyles,
|
|
92
|
-
renderer:
|
|
100
|
+
renderer: jsxRenderer,
|
|
93
101
|
template: TableGroupRowTemplate,
|
|
94
|
-
dependencies: [
|
|
95
|
-
CheckBox,
|
|
96
|
-
],
|
|
97
102
|
}),
|
|
98
|
-
event("_focused"
|
|
103
|
+
event("_focused", {
|
|
104
|
+
bubbles: true,
|
|
105
|
+
})
|
|
99
106
|
], TableGroupRow);
|
|
107
|
+
patchScopingSuffix(TableGroupRow);
|
|
100
108
|
TableGroupRow.define();
|
|
101
109
|
export default TableGroupRow;
|
|
102
110
|
//# sourceMappingURL=TableGroupRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableGroupRow.js","sourceRoot":"","sources":["../src/TableGroupRow.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"TableGroupRow.js","sourceRoot":"","sources":["../src/TableGroupRow.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAG/E,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,QAAQ;AACR,OAAO,EACN,0BAA0B,GAC1B,MAAM,mCAAmC,CAAC;AAE3C,SAAS;AACT,OAAO,mBAAmB,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E;;;;;;;;;;;;;;;;GAgBG;AAUH,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAIC;;;;WAIG;QAEH,SAAI,GAAmB,MAAM,CAAC;QAS9B,eAAU,GAAG,KAAK,CAAC;QAKnB,2CAA2C;QAC3C,aAAQ,GAAG,KAAK,CAAC;QACjB,qBAAgB,GAAuB,EAAE,CAAC;QAC1C,uBAAkB,GAAG,EAAE,CAAC;IAqCzB,CAAC;IA9BA,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,GAAG,eAAa,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1H,CAAC;IAED,eAAe;QACd,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACrD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACrC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAEX,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC;YACzC,KAAK,EAAE,CAAC;QACT,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO;QACR,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;CACD,CAAA;AAtDA;IADC,QAAQ,EAAE;2CACmB;AAG9B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;mDACY;AAGtC;IADC,QAAQ,EAAE;qDACa;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACT;AAGnB;IADC,QAAQ,EAAE;yDACiB;AAQrB;IADN,IAAI,CAAC,oBAAoB,CAAC;uCACG;AA9BzB,aAAa;IATlB,aAAa,CAAC;QACd,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,qBAAqB;KAC/B,CAAC;IACD,KAAK,CAAC,UAAU,EAAE;QAClB,OAAO,EAAE,IAAI;KACb,CAAC;GACI,aAAa,CAgElB;AAED,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAElC,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ITableRow, TableColumnInfo } from \"./Table.js\";\nimport TableGroupRowTemplate from \"./TableGroupRowTemplate.js\";\nimport TableMode from \"./types/TableMode.js\";\n\n// Texts\nimport {\n\tTABLE_GROUP_ROW_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport tableGroupRowStyles from \"./generated/themes/TableGroupRow.css.js\";\nimport { patchScopingSuffix } from \"./utils/CompatCustomElementsScope.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-group-row` component represents a group row in the `ui5-table`.\n * @constructor\n * @since 2.0.0\n * @implements {ITableRow}\n * @extends UI5Element\n * @public\n * @slot {Node[]} default - Defines the text of the component.\n *\n * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n * @csspart group-row - Used to style the native `tr` element\n * @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/Table.js` instead.\n */\n@customElement({\n\ttag: \"ui5-table-group-row\",\n\tstyles: tableGroupRowStyles,\n\trenderer: jsxRenderer,\n\ttemplate: TableGroupRowTemplate,\n})\n@event(\"_focused\", {\n\tbubbles: true,\n})\nclass TableGroupRow extends UI5Element implements ITableRow {\n\teventDetails!: {\n\t\t_focused: FocusEvent,\n\t}\n\t/**\n\t * Defines the mode of the row\n\t * @default \"None\"\n\t * @private\n\t */\n\t@property()\n\tmode: `${TableMode}` = \"None\";\n\n\t@property({ type: Array })\n\t_columnsInfo?: Array<TableColumnInfo>;\n\n\t@property()\n\tforcedTabIndex?: string;\n\n\t@property({ type: Boolean })\n\tforcedBusy = false;\n\n\t@property()\n\tforcedAriaPosition?: string;\n\n\t// Properties, set and handled by the Table\n\tselected = false;\n\ttabbableElements: Array<HTMLElement> = [];\n\t_columnsInfoString = \"\";\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_colSpan?: number;\n\n\tget colSpan() {\n\t\treturn this._colSpan;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn `${TableGroupRow.i18nBundle.getText(TABLE_GROUP_ROW_ARIA_LABEL)} ${this.textContent}. ${this.forcedAriaPosition}`;\n\t}\n\n\tvisibleColCount(): number {\n\t\tlet count = this._columnsInfo?.reduce((acc, column) => {\n\t\t\treturn column.visible ? ++acc : acc;\n\t\t}, 0) || 0;\n\n\t\tif (this.mode === TableMode.MultiSelect) {\n\t\t\tcount++;\n\t\t}\n\n\t\treturn count;\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this._columnsInfo || this._columnsInfo.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._colSpan = this.visibleColCount();\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tthis.fireDecoratorEvent(\"_focused\", e);\n\t}\n}\n\npatchScopingSuffix(TableGroupRow);\n\nTableGroupRow.define();\n\nexport default TableGroupRow;\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
export default function TableGroupRowTemplate() {
|
|
3
|
+
return (_jsx("tr", { part: "group-row", class: "ui5-table-group-row-root", "aria-label": this.ariaLabelText, tabindex: this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined, onFocusIn: this._onfocusin, children: _jsx("td", { colspan: this.colSpan, children: _jsx("slot", {}) }) }));
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=TableGroupRowTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGroupRowTemplate.js","sourceRoot":"","sources":["../src/TableGroupRowTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC5C,OAAO,CACN,aACC,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,0BAA0B,gBACpB,IAAI,CAAC,aAAa,EAC9B,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EACzE,SAAS,EAAE,IAAI,CAAC,UAAU,YAE1B,aAAI,OAAO,EAAE,IAAI,CAAC,OAAO,YACxB,gBAAa,GACT,GACD,CACL,CAAC;AACH,CAAC","sourcesContent":["import type TableGroupRow from \"./TableGroupRow.js\";\n\nexport default function TableGroupRowTemplate(this: TableGroupRow) {\n\treturn (\n\t\t<tr\n\t\t\tpart=\"group-row\"\n\t\t\tclass=\"ui5-table-group-row-root\"\n\t\t\taria-label={this.ariaLabelText}\n\t\t\ttabindex={this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined}\n\t\t\tonFocusIn={this._onfocusin}\n\t\t>\n\t\t\t<td colspan={this.colSpan}>\n\t\t\t\t<slot></slot>\n\t\t\t</td>\n\t\t</tr>\n\t);\n}\n"]}
|
package/dist/TableRow.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
3
|
-
import type { PassiveEventListenerObject } from "@ui5/webcomponents-base/dist/types.js";
|
|
4
3
|
import type TableCell from "./TableCell.js";
|
|
5
4
|
import type { ITableRow, TableColumnInfo } from "./Table.js";
|
|
6
5
|
import TableMode from "./types/TableMode.js";
|
|
@@ -32,8 +31,17 @@ type TableRowF7PressEventDetail = {
|
|
|
32
31
|
* @public
|
|
33
32
|
* @csspart row - Used to style the native `tr` element
|
|
34
33
|
* @csspart popin-row - Used to style the `tr` element when a row pops in
|
|
34
|
+
* @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/TableRow.js` instead.
|
|
35
35
|
*/
|
|
36
36
|
declare class TableRow extends UI5Element implements ITableRow {
|
|
37
|
+
eventDetails: {
|
|
38
|
+
"row-click": TableRowClickEventDetail;
|
|
39
|
+
"_focused": FocusEvent;
|
|
40
|
+
"forward-before": TableRowForwardBeforeEventDetail;
|
|
41
|
+
"forward-after": TableRowForwardAfterEventDetail;
|
|
42
|
+
"selection-requested": TableRowSelectionRequestedEventDetail;
|
|
43
|
+
"f7-pressed": TableRowF7PressEventDetail;
|
|
44
|
+
};
|
|
37
45
|
/**
|
|
38
46
|
* Defines the visual indication and behavior of the component.
|
|
39
47
|
*
|
|
@@ -72,10 +80,10 @@ declare class TableRow extends UI5Element implements ITableRow {
|
|
|
72
80
|
* @private
|
|
73
81
|
*/
|
|
74
82
|
active: boolean;
|
|
75
|
-
_columnsInfo
|
|
76
|
-
forcedTabIndex
|
|
83
|
+
_columnsInfo?: Array<TableColumnInfo>;
|
|
84
|
+
forcedTabIndex?: string;
|
|
77
85
|
forcedBusy: boolean;
|
|
78
|
-
forcedAriaPosition
|
|
86
|
+
forcedAriaPosition?: string;
|
|
79
87
|
/**
|
|
80
88
|
* Defines the cells of the component.
|
|
81
89
|
*
|
|
@@ -86,10 +94,9 @@ declare class TableRow extends UI5Element implements ITableRow {
|
|
|
86
94
|
static i18nBundle: I18nBundle;
|
|
87
95
|
visibleCells: Array<TableCell>;
|
|
88
96
|
popinCells: Array<TableColumnInfo>;
|
|
89
|
-
_ontouchstart: PassiveEventListenerObject;
|
|
90
97
|
tabbableElements: Array<HTMLElement>;
|
|
91
98
|
_columnsInfoString: string;
|
|
92
|
-
|
|
99
|
+
_ontouchstart(): void;
|
|
93
100
|
_onmouseup(): void;
|
|
94
101
|
_onkeydown(e: KeyboardEvent): void;
|
|
95
102
|
_onkeyup(e: KeyboardEvent): void;
|
|
@@ -102,8 +109,8 @@ declare class TableRow extends UI5Element implements ITableRow {
|
|
|
102
109
|
get _ariaCurrent(): true | undefined;
|
|
103
110
|
activate(): void;
|
|
104
111
|
deactivate(): void;
|
|
105
|
-
get shouldPopin():
|
|
106
|
-
get allColumnsPoppedIn(): boolean;
|
|
112
|
+
get shouldPopin(): boolean;
|
|
113
|
+
get allColumnsPoppedIn(): boolean | undefined;
|
|
107
114
|
onBeforeRendering(): void;
|
|
108
115
|
get visibleCellsCount(): number;
|
|
109
116
|
get ariaLabelText(): string;
|
|
@@ -114,7 +121,6 @@ declare class TableRow extends UI5Element implements ITableRow {
|
|
|
114
121
|
getCellText(cell: TableCell): string;
|
|
115
122
|
getColumnTextByIdx(index: number): string;
|
|
116
123
|
getNormilzedTextContent(textContent: string): string;
|
|
117
|
-
static onDefine(): Promise<void>;
|
|
118
124
|
}
|
|
119
125
|
export default TableRow;
|
|
120
126
|
export type { TableRowClickEventDetail, TableRowSelectionRequestedEventDetail, TableRowForwardBeforeEventDetail, TableRowForwardAfterEventDetail, TableRowF7PressEventDetail, };
|
package/dist/TableRow.js
CHANGED
|
@@ -8,22 +8,21 @@ var TableRow_1;
|
|
|
8
8
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
|
-
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
11
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
12
12
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
13
|
-
import
|
|
14
|
-
import
|
|
13
|
+
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
14
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
15
15
|
import { isSpace, isEnter, isF7, isTabNext, isTabPrevious, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
16
|
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
|
|
17
17
|
import { getLastTabbableElement } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
|
|
18
|
-
import { getEventMark } from "@ui5/webcomponents-base/dist/MarkedEvents.js";
|
|
19
|
-
import CheckBox from "@ui5/webcomponents/dist/CheckBox.js";
|
|
20
18
|
import TableMode from "./types/TableMode.js";
|
|
21
19
|
import TableRowType from "./types/TableRowType.js";
|
|
22
20
|
import TableColumnPopinDisplay from "./types/TableColumnPopinDisplay.js";
|
|
23
|
-
import TableRowTemplate from "./
|
|
21
|
+
import TableRowTemplate from "./TableRowTemplate.js";
|
|
24
22
|
import { ARIA_LABEL_ROW_SELECTION, LIST_ITEM_NOT_SELECTED, LIST_ITEM_SELECTED, } from "./generated/i18n/i18n-defaults.js";
|
|
25
23
|
// Styles
|
|
26
24
|
import tableRowStyles from "./generated/themes/TableRow.css.js";
|
|
25
|
+
import { patchScopingSuffix } from "./utils/CompatCustomElementsScope.js";
|
|
27
26
|
/**
|
|
28
27
|
* @class
|
|
29
28
|
*
|
|
@@ -36,22 +35,58 @@ import tableRowStyles from "./generated/themes/TableRow.css.js";
|
|
|
36
35
|
* @public
|
|
37
36
|
* @csspart row - Used to style the native `tr` element
|
|
38
37
|
* @csspart popin-row - Used to style the `tr` element when a row pops in
|
|
38
|
+
* @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/TableRow.js` instead.
|
|
39
39
|
*/
|
|
40
40
|
let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
41
41
|
constructor() {
|
|
42
|
-
super();
|
|
42
|
+
super(...arguments);
|
|
43
|
+
/**
|
|
44
|
+
* Defines the visual indication and behavior of the component.
|
|
45
|
+
*
|
|
46
|
+
* **Note:** When set to `Active`, the item will provide visual response upon press,
|
|
47
|
+
* while with type `Inactive`-will not.
|
|
48
|
+
* @default "Inactive"
|
|
49
|
+
* @since 2.0.0
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
this.type = "Inactive";
|
|
53
|
+
/**
|
|
54
|
+
* Defines the row's selected state.
|
|
55
|
+
* @default false
|
|
56
|
+
* @since 2.0.0
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
this.selected = false;
|
|
60
|
+
/**
|
|
61
|
+
* Indicates if the table row is navigated.
|
|
62
|
+
* @default false
|
|
63
|
+
* @since 2.0.0
|
|
64
|
+
* @public
|
|
65
|
+
*/
|
|
66
|
+
this.navigated = false;
|
|
67
|
+
/**
|
|
68
|
+
* Defines the mode of the row (None, SingleSelect, MultiSelect).
|
|
69
|
+
* @default "None"
|
|
70
|
+
* @since 2.0.0
|
|
71
|
+
* @private
|
|
72
|
+
*/
|
|
73
|
+
this.mode = "None";
|
|
74
|
+
/**
|
|
75
|
+
* Indicates if the table row is active.
|
|
76
|
+
* @default false
|
|
77
|
+
* @since 2.0.0
|
|
78
|
+
* @private
|
|
79
|
+
*/
|
|
80
|
+
this.active = false;
|
|
81
|
+
this.forcedBusy = false;
|
|
43
82
|
this.visibleCells = [];
|
|
44
83
|
this.popinCells = [];
|
|
45
84
|
// Properties, set and handled by the Table
|
|
46
85
|
this.tabbableElements = [];
|
|
47
86
|
this._columnsInfoString = "";
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
this._ontouchstart = {
|
|
52
|
-
handleEvent: handleToushStartEvent,
|
|
53
|
-
passive: true,
|
|
54
|
-
};
|
|
87
|
+
}
|
|
88
|
+
_ontouchstart() {
|
|
89
|
+
this.activate();
|
|
55
90
|
}
|
|
56
91
|
_onmouseup() {
|
|
57
92
|
this.deactivate();
|
|
@@ -65,23 +100,23 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
|
65
100
|
const target = e.target;
|
|
66
101
|
const checkboxPressed = target.classList.contains("ui5-multi-select-checkbox");
|
|
67
102
|
const rowElements = Array.from(this.shadowRoot.querySelectorAll("tr") || []);
|
|
68
|
-
const elements = rowElements.map(getLastTabbableElement);
|
|
103
|
+
const elements = rowElements.map(getLastTabbableElement).filter(Boolean);
|
|
69
104
|
const lastFocusableElement = elements.pop();
|
|
70
105
|
if (isTabNext(e) && activeElement === (lastFocusableElement || this.root)) {
|
|
71
|
-
this.
|
|
106
|
+
this.fireDecoratorEvent("forward-after", { target: activeElement });
|
|
72
107
|
}
|
|
73
108
|
if (isTabPrevious(e) && activeElement === this.root) {
|
|
74
|
-
this.
|
|
109
|
+
this.fireDecoratorEvent("forward-before", { target: activeElement });
|
|
75
110
|
}
|
|
76
111
|
if (isSpace(e) && target.tagName.toLowerCase() === "tr") {
|
|
77
112
|
e.preventDefault();
|
|
78
113
|
}
|
|
79
114
|
if (isRowFocused && !checkboxPressed) {
|
|
80
115
|
if ((isSpace(e) && itemSelectable) || (isEnter(e) && isSingleSelect)) {
|
|
81
|
-
this.
|
|
116
|
+
this.fireDecoratorEvent("selection-requested", { row: this });
|
|
82
117
|
}
|
|
83
118
|
if (isEnter(e) && itemActive) {
|
|
84
|
-
this.
|
|
119
|
+
this.fireDecoratorEvent("row-click", { row: this });
|
|
85
120
|
if (!isSingleSelect) {
|
|
86
121
|
this.activate();
|
|
87
122
|
}
|
|
@@ -89,7 +124,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
|
89
124
|
}
|
|
90
125
|
if (isF7(e)) {
|
|
91
126
|
e.preventDefault();
|
|
92
|
-
this.
|
|
127
|
+
this.fireDecoratorEvent("f7-pressed", { row: this });
|
|
93
128
|
}
|
|
94
129
|
}
|
|
95
130
|
_onkeyup(e) {
|
|
@@ -108,14 +143,14 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
|
108
143
|
this.root.focus();
|
|
109
144
|
this.activate();
|
|
110
145
|
}
|
|
111
|
-
this.
|
|
146
|
+
this.fireDecoratorEvent("_focused");
|
|
112
147
|
}
|
|
113
148
|
_onrowclick(e) {
|
|
114
149
|
const checkboxPressed = e.target.classList.contains("ui5-multi-select-checkbox");
|
|
115
150
|
// If the user tab over a button on IOS device, the document.activeElement
|
|
116
151
|
// is the ui5-table-row. The check below ensure that, if a button within the row is pressed,
|
|
117
152
|
// the row will not be selected.
|
|
118
|
-
if (
|
|
153
|
+
if (this.getFocusDomRef().matches(":has(:focus-within)")) {
|
|
119
154
|
return;
|
|
120
155
|
}
|
|
121
156
|
const activeElement = this.getRootNode().activeElement;
|
|
@@ -132,12 +167,12 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
|
132
167
|
this._handleSelection();
|
|
133
168
|
}
|
|
134
169
|
if (this.type === TableRowType.Active && !checkboxPressed) {
|
|
135
|
-
this.
|
|
170
|
+
this.fireDecoratorEvent("row-click", { row: this });
|
|
136
171
|
}
|
|
137
172
|
}
|
|
138
173
|
}
|
|
139
174
|
_handleSelection() {
|
|
140
|
-
this.
|
|
175
|
+
this.fireDecoratorEvent("selection-requested", { row: this });
|
|
141
176
|
}
|
|
142
177
|
_activeElementHasAttribute(attr) {
|
|
143
178
|
return !!(this.getRootNode().activeElement?.hasAttribute(attr));
|
|
@@ -156,12 +191,12 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
|
156
191
|
}
|
|
157
192
|
}
|
|
158
193
|
get shouldPopin() {
|
|
159
|
-
return this._columnsInfo
|
|
194
|
+
return !!(this._columnsInfo?.filter(el => {
|
|
160
195
|
return el.demandPopin || !el.visible;
|
|
161
|
-
}).length;
|
|
196
|
+
}).length);
|
|
162
197
|
}
|
|
163
198
|
get allColumnsPoppedIn() {
|
|
164
|
-
return this._columnsInfo
|
|
199
|
+
return this._columnsInfo?.every(el => el.demandPopin && !el.visible);
|
|
165
200
|
}
|
|
166
201
|
onBeforeRendering() {
|
|
167
202
|
if (!this.shouldPopin) {
|
|
@@ -173,7 +208,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
|
173
208
|
return;
|
|
174
209
|
}
|
|
175
210
|
const allColumnsPoppedInClass = this.allColumnsPoppedIn ? "all-columns-popped-in" : "";
|
|
176
|
-
this._columnsInfo
|
|
211
|
+
this._columnsInfo?.forEach((info, index) => {
|
|
177
212
|
const cell = this.cells[index];
|
|
178
213
|
const popinDisplay = info.popinDisplay === TableColumnPopinDisplay.Inline;
|
|
179
214
|
if (!cell) {
|
|
@@ -244,7 +279,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
|
244
279
|
return cellTextContent ? this.getNormilzedTextContent(cellTextContent) : "";
|
|
245
280
|
}
|
|
246
281
|
getColumnTextByIdx(index) {
|
|
247
|
-
const columnInfo = this._columnsInfo[index];
|
|
282
|
+
const columnInfo = this._columnsInfo?.[index];
|
|
248
283
|
if (!columnInfo) {
|
|
249
284
|
return "";
|
|
250
285
|
}
|
|
@@ -253,12 +288,9 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
|
253
288
|
getNormilzedTextContent(textContent) {
|
|
254
289
|
return textContent.replace(/[\n\r\t]/g, "").trim();
|
|
255
290
|
}
|
|
256
|
-
static async onDefine() {
|
|
257
|
-
TableRow_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
|
258
|
-
}
|
|
259
291
|
};
|
|
260
292
|
__decorate([
|
|
261
|
-
property(
|
|
293
|
+
property()
|
|
262
294
|
], TableRow.prototype, "type", void 0);
|
|
263
295
|
__decorate([
|
|
264
296
|
property({ type: Boolean })
|
|
@@ -267,33 +299,35 @@ __decorate([
|
|
|
267
299
|
property({ type: Boolean })
|
|
268
300
|
], TableRow.prototype, "navigated", void 0);
|
|
269
301
|
__decorate([
|
|
270
|
-
property(
|
|
302
|
+
property()
|
|
271
303
|
], TableRow.prototype, "mode", void 0);
|
|
272
304
|
__decorate([
|
|
273
305
|
property({ type: Boolean })
|
|
274
306
|
], TableRow.prototype, "active", void 0);
|
|
275
307
|
__decorate([
|
|
276
|
-
property({ type:
|
|
308
|
+
property({ type: Array })
|
|
277
309
|
], TableRow.prototype, "_columnsInfo", void 0);
|
|
278
310
|
__decorate([
|
|
279
|
-
property(
|
|
311
|
+
property()
|
|
280
312
|
], TableRow.prototype, "forcedTabIndex", void 0);
|
|
281
313
|
__decorate([
|
|
282
314
|
property({ type: Boolean })
|
|
283
315
|
], TableRow.prototype, "forcedBusy", void 0);
|
|
284
316
|
__decorate([
|
|
285
|
-
property({
|
|
317
|
+
property({ noAttribute: true })
|
|
286
318
|
], TableRow.prototype, "forcedAriaPosition", void 0);
|
|
287
319
|
__decorate([
|
|
288
320
|
slot({ type: HTMLElement, "default": true, individualSlots: true })
|
|
289
321
|
], TableRow.prototype, "cells", void 0);
|
|
322
|
+
__decorate([
|
|
323
|
+
i18n("@ui5/webcomponents")
|
|
324
|
+
], TableRow, "i18nBundle", void 0);
|
|
290
325
|
TableRow = TableRow_1 = __decorate([
|
|
291
326
|
customElement({
|
|
292
327
|
tag: "ui5-table-row",
|
|
293
328
|
styles: tableRowStyles,
|
|
294
|
-
renderer:
|
|
329
|
+
renderer: jsxRenderer,
|
|
295
330
|
template: TableRowTemplate,
|
|
296
|
-
dependencies: [CheckBox],
|
|
297
331
|
})
|
|
298
332
|
/**
|
|
299
333
|
* Fired when a row in `Active` mode is clicked or `Enter` key is pressed.
|
|
@@ -301,23 +335,50 @@ TableRow = TableRow_1 = __decorate([
|
|
|
301
335
|
* @private
|
|
302
336
|
*/
|
|
303
337
|
,
|
|
304
|
-
event("row-click"
|
|
305
|
-
|
|
338
|
+
event("row-click", {
|
|
339
|
+
bubbles: true,
|
|
340
|
+
})
|
|
341
|
+
/**
|
|
342
|
+
* @private
|
|
343
|
+
*/
|
|
344
|
+
,
|
|
345
|
+
event("_focused", {
|
|
346
|
+
bubbles: true,
|
|
347
|
+
})
|
|
348
|
+
/**
|
|
349
|
+
* @private
|
|
350
|
+
*/
|
|
351
|
+
,
|
|
352
|
+
event("forward-before", {
|
|
353
|
+
bubbles: true,
|
|
354
|
+
})
|
|
355
|
+
/**
|
|
356
|
+
* @private
|
|
357
|
+
*/
|
|
358
|
+
,
|
|
359
|
+
event("forward-after", {
|
|
360
|
+
bubbles: true,
|
|
361
|
+
})
|
|
306
362
|
/**
|
|
307
363
|
* Fired on selection change of an active row.
|
|
308
364
|
* @since 2.0.0
|
|
309
365
|
* @private
|
|
310
366
|
*/
|
|
311
367
|
,
|
|
312
|
-
event("selection-requested"
|
|
368
|
+
event("selection-requested", {
|
|
369
|
+
bubbles: true,
|
|
370
|
+
})
|
|
313
371
|
/**
|
|
314
372
|
* Fired when F7 is pressed.
|
|
315
373
|
* @since 2.0.0
|
|
316
374
|
* @private
|
|
317
375
|
*/
|
|
318
376
|
,
|
|
319
|
-
event("f7-pressed"
|
|
377
|
+
event("f7-pressed", {
|
|
378
|
+
bubbles: true,
|
|
379
|
+
})
|
|
320
380
|
], TableRow);
|
|
381
|
+
patchScopingSuffix(TableRow);
|
|
321
382
|
TableRow.define();
|
|
322
383
|
export default TableRow;
|
|
323
384
|
//# sourceMappingURL=TableRow.js.map
|
package/dist/TableRow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { PassiveEventListenerObject } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisF7,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getLastTabbableElement } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { getEventMark } from \"@ui5/webcomponents-base/dist/MarkedEvents.js\";\nimport CheckBox from \"@ui5/webcomponents/dist/CheckBox.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type { ITableRow, TableColumnInfo } from \"./Table.js\";\nimport TableMode from \"./types/TableMode.js\";\nimport TableRowType from \"./types/TableRowType.js\";\nimport TableColumnPopinDisplay from \"./types/TableColumnPopinDisplay.js\";\nimport TableRowTemplate from \"./generated/templates/TableRowTemplate.lit.js\";\nimport {\n\tARIA_LABEL_ROW_SELECTION,\n\tLIST_ITEM_NOT_SELECTED,\n\tLIST_ITEM_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport tableRowStyles from \"./generated/themes/TableRow.css.js\";\n\ntype TableRowClickEventDetail = {\n\trow: TableRow,\n}\n\ntype TableRowSelectionRequestedEventDetail = {\n\trow: TableRow,\n}\n\ntype TableRowForwardBeforeEventDetail = {\n\ttarget: HTMLElement,\n}\n\ntype TableRowForwardAfterEventDetail = {\n\ttarget: HTMLElement,\n}\n\ntype TableRowF7PressEventDetail = {\n\trow: TableRow,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row` component represents a row in the `ui5-table`.\n * @constructor\n * @extends UI5Element\n * @implements {ITableRow}\n * @public\n * @csspart row - Used to style the native `tr` element\n * @csspart popin-row - Used to style the `tr` element when a row pops in\n */\n@customElement({\n\ttag: \"ui5-table-row\",\n\tstyles: tableRowStyles,\n\trenderer: litRender,\n\ttemplate: TableRowTemplate,\n\tdependencies: [CheckBox],\n})\n/**\n * Fired when a row in `Active` mode is clicked or `Enter` key is pressed.\n * @since 2.0.0\n * @private\n */\n@event(\"row-click\")\n@event(\"_focused\")\n/**\n * Fired on selection change of an active row.\n * @since 2.0.0\n * @private\n */\n@event(\"selection-requested\")\n/**\n * Fired when F7 is pressed.\n * @since 2.0.0\n * @private\n */\n@event(\"f7-pressed\")\nclass TableRow extends UI5Element implements ITableRow {\n\t/**\n\t * Defines the visual indication and behavior of the component.\n\t *\n\t * **Note:** When set to `Active`, the item will provide visual response upon press,\n\t * while with type `Inactive`-will not.\n\t * @default \"Inactive\"\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property({ type: TableRowType, defaultValue: TableRowType.Inactive })\n\ttype!: `${TableRowType}`;\n\n\t/**\n\t * Defines the row's selected state.\n\t * @default false\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected!: boolean;\n\n\t/**\n\t * Indicates if the table row is navigated.\n\t * @default false\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnavigated!: boolean;\n\n\t/**\n\t * Defines the mode of the row (None, SingleSelect, MultiSelect).\n\t * @default \"None\"\n\t * @since 2.0.0\n\t * @private\n\t */\n\t@property({ type: TableMode, defaultValue: TableMode.None })\n\tmode!: `${TableMode}`;\n\n\t/**\n\t * Indicates if the table row is active.\n\t * @default false\n\t * @since 2.0.0\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive!: boolean;\n\n\t@property({ type: Object, multiple: true })\n\t_columnsInfo!: Array<TableColumnInfo>;\n\n\t@property({ defaultValue: \"-1\" })\n\tforcedTabIndex!: string;\n\n\t@property({ type: Boolean })\n\tforcedBusy!: boolean;\n\n\t@property({ defaultValue: \"\", noAttribute: true })\n\tforcedAriaPosition!: string;\n\n\t/**\n\t * Defines the cells of the component.\n\t *\n\t * **Note:** Use `ui5-table-cell` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\tcells!: Array<TableCell>;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tvisibleCells: Array<TableCell> = [];\n\tpopinCells: Array<TableColumnInfo> = [];\n\n\t_ontouchstart: PassiveEventListenerObject;\n\n\t// Properties, set and handled by the Table\n\ttabbableElements: Array<HTMLElement> = [];\n\t_columnsInfoString = \"\";\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tconst handleToushStartEvent = () => {\n\t\t\tthis.activate();\n\t\t};\n\n\t\tthis._ontouchstart = {\n\t\t\thandleEvent: handleToushStartEvent,\n\t\t\tpassive: true,\n\t\t};\n\t}\n\n\t_onmouseup() {\n\t\tthis.deactivate();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst activeElement = getActiveElement() as HTMLElement;\n\t\tconst itemActive = this.type === TableRowType.Active;\n\t\tconst isSingleSelect = this.isSingleSelect;\n\t\tconst itemSelectable = isSingleSelect || this.isMultiSelect;\n\t\tconst isRowFocused = this._activeElementHasAttribute(\"ui5-table-row\");\n\t\tconst target = e.target as HTMLElement;\n\t\tconst checkboxPressed = target.classList.contains(\"ui5-multi-select-checkbox\");\n\t\tconst rowElements = Array.from(this.shadowRoot!.querySelectorAll(\"tr\") || []);\n\t\tconst elements = rowElements.map(getLastTabbableElement);\n\t\tconst lastFocusableElement = elements.pop();\n\n\t\tif (isTabNext(e) && activeElement === (lastFocusableElement || this.root)) {\n\t\t\tthis.fireEvent<TableRowForwardAfterEventDetail>(\"_forward-after\", { target: activeElement });\n\t\t}\n\n\t\tif (isTabPrevious(e) && activeElement === this.root) {\n\t\t\tthis.fireEvent<TableRowForwardBeforeEventDetail>(\"_forward-before\", { target: activeElement });\n\t\t}\n\n\t\tif (isSpace(e) && target.tagName.toLowerCase() === \"tr\") {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isRowFocused && !checkboxPressed) {\n\t\t\tif ((isSpace(e) && itemSelectable) || (isEnter(e) && isSingleSelect)) {\n\t\t\t\tthis.fireEvent<TableRowSelectionRequestedEventDetail>(\"selection-requested\", { row: this });\n\t\t\t}\n\n\t\t\tif (isEnter(e) && itemActive) {\n\t\t\t\tthis.fireEvent<TableRowClickEventDetail>(\"row-click\", { row: this });\n\t\t\t\tif (!isSingleSelect) {\n\t\t\t\t\tthis.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (isF7(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.fireEvent<TableRowF7PressEventDetail>(\"f7-pressed\", { row: this });\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis.deactivate();\n\t\t}\n\t}\n\n\t_ontouchend() {\n\t\tthis.deactivate();\n\t}\n\n\t_onfocusout() {\n\t\tthis.deactivate();\n\t}\n\n\t_onfocusin(e: FocusEvent, forceSelfFocus = false) {\n\t\tif (forceSelfFocus || this._activeElementHasAttribute(\"ui5-table-cell\")) {\n\t\t\tthis.root.focus();\n\t\t\tthis.activate();\n\t\t}\n\n\t\tthis.fireEvent(\"_focused\");\n\t}\n\n\t_onrowclick(e: MouseEvent) {\n\t\tconst checkboxPressed = (e.target as HTMLElement).classList.contains(\"ui5-multi-select-checkbox\");\n\t\t// If the user tab over a button on IOS device, the document.activeElement\n\t\t// is the ui5-table-row. The check below ensure that, if a button within the row is pressed,\n\t\t// the row will not be selected.\n\t\tif (getEventMark(e) === \"button\") {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = (this.getRootNode() as Document).activeElement;\n\t\tif (!this.contains(activeElement)) {\n\t\t\t// If the user clickes on non-focusable element within the ui5-table-cell,\n\t\t\t// the focus goes to the body, se we have to bring it back to the row.\n\t\t\t// If the user clicks on input, button or similar clickable element,\n\t\t\t// the focus remains on that element.\n\t\t\tthis._onfocusin(e, true /* force row focus */);\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (this._activeElementHasAttribute(\"ui5-table-row\")) {\n\t\t\tif (this.isSingleSelect) {\n\t\t\t\tthis._handleSelection();\n\t\t\t}\n\n\t\t\tif (this.type === TableRowType.Active && !checkboxPressed) {\n\t\t\t\tthis.fireEvent<TableRowClickEventDetail>(\"row-click\", { row: this });\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleSelection() {\n\t\tthis.fireEvent<TableRowSelectionRequestedEventDetail>(\"selection-requested\", { row: this });\n\t}\n\n\t_activeElementHasAttribute(attr: string): boolean {\n\t\treturn !!((this.getRootNode() as Document).activeElement?.hasAttribute(attr));\n\t}\n\n\tget _ariaCurrent() {\n\t\treturn this.navigated ? true : undefined;\n\t}\n\n\tactivate() {\n\t\tif (this.type === TableRowType.Active) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tdeactivate() {\n\t\tif (this.active) {\n\t\t\tthis.active = false;\n\t\t}\n\t}\n\n\tget shouldPopin() {\n\t\treturn this._columnsInfo.filter(el => {\n\t\t\treturn el.demandPopin || !el.visible;\n\t\t}).length;\n\t}\n\n\tget allColumnsPoppedIn() {\n\t\treturn this._columnsInfo.every(el => el.demandPopin && !el.visible);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.shouldPopin) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.visibleCells = [];\n\t\tthis.popinCells = [];\n\n\t\tif (this.cells.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst allColumnsPoppedInClass = this.allColumnsPoppedIn ? \"all-columns-popped-in\" : \"\";\n\t\tthis._columnsInfo.forEach((info, index) => {\n\t\t\tconst cell = this.cells[index];\n\t\t\tconst popinDisplay = info.popinDisplay === TableColumnPopinDisplay.Inline;\n\n\t\t\tif (!cell) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (info.visible) {\n\t\t\t\tthis.visibleCells.push(cell);\n\t\t\t\tcell.popined = false;\n\t\t\t\tcell._popinedInline = false;\n\t\t\t} else if (info.demandPopin) {\n\t\t\t\tconst popinHeaderClass = this.popinCells.length === 0 ? \"popin-header\" : \"\";\n\t\t\t\tthis.popinCells.push({\n\t\t\t\t\tcell,\n\t\t\t\t\tpopinText: info.popinText,\n\t\t\t\t\tclasses: `ui5-table-popin-row ${allColumnsPoppedInClass} ${popinHeaderClass}`,\n\t\t\t\t\tpopinDisplayInline: popinDisplay,\n\t\t\t\t});\n\t\t\t\tcell.popined = true;\n\t\t\t\tif (info.popinDisplay === TableColumnPopinDisplay.Inline) {\n\t\t\t\t\tcell._popinedInline = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcell.popined = false;\n\t\t\t\tcell._popinedInline = false;\n\t\t\t}\n\t\t});\n\n\t\tconst lastVisibleCell = this.visibleCells[this.visibleCells.length - 1];\n\n\t\tif (lastVisibleCell) {\n\t\t\tlastVisibleCell.lastInRow = true;\n\t\t}\n\t}\n\n\tget visibleCellsCount() {\n\t\tlet visibleCellsCount = this.visibleCells.length;\n\n\t\tif (this.isMultiSelect) {\n\t\t\tvisibleCellsCount += 1;\n\t\t}\n\n\t\treturn visibleCellsCount;\n\t}\n\n\tget ariaLabelText() {\n\t\tconst isSelected = this.selected ? TableRow.i18nBundle.getText(LIST_ITEM_SELECTED) : TableRow.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\tconst isRowSelectable = this.isSingleSelect || this.isMultiSelect;\n\t\tconst ariaLabel = this.cells.map((cell, index) => {\n\t\t\tconst columText = this.getColumnTextByIdx(index);\n\t\t\tconst cellText = cell.cellContent.length ? this.getCellText(cell) : cell.ariaLabelEmptyCellText;\n\t\t\treturn `${columText} ${cellText}`;\n\t\t}).join(\" \");\n\n\t\tif (isRowSelectable) {\n\t\t\treturn `${ariaLabel}. ${this.forcedAriaPosition}. ${isSelected}`;\n\t\t}\n\n\t\treturn `${ariaLabel}. ${this.forcedAriaPosition}`;\n\t}\n\n\tget ariaLabelRowSelection() {\n\t\treturn TableRow.i18nBundle.getText(ARIA_LABEL_ROW_SELECTION);\n\t}\n\n\tget isSingleSelect() {\n\t\treturn this.mode === TableMode.SingleSelect;\n\t}\n\n\tget isMultiSelect() {\n\t\treturn this.mode === TableMode.MultiSelect;\n\t}\n\n\tget root() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-table-row-root\")!;\n\t}\n\n\tgetCellText(cell: TableCell): string {\n\t\tconst cellTextContent = cell.textContent;\n\n\t\treturn cellTextContent ? this.getNormilzedTextContent(cellTextContent) : \"\";\n\t}\n\n\tgetColumnTextByIdx(index: number): string {\n\t\tconst columnInfo: TableColumnInfo = this._columnsInfo[index];\n\n\t\tif (!columnInfo) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn columnInfo.text ? this.getNormilzedTextContent(columnInfo.text) : \"\";\n\t}\n\n\tgetNormilzedTextContent(textContent: string): string {\n\t\treturn textContent.replace(/[\\n\\r\\t]/g, \"\").trim();\n\t}\n\n\tstatic async onDefine() {\n\t\tTableRow.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nTableRow.define();\n\nexport default TableRow;\n\nexport type {\n\tTableRowClickEventDetail,\n\tTableRowSelectionRequestedEventDetail,\n\tTableRowForwardBeforeEventDetail,\n\tTableRowForwardAfterEventDetail,\n\tTableRowF7PressEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisF7,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getLastTabbableElement } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type { ITableRow, TableColumnInfo } from \"./Table.js\";\nimport TableMode from \"./types/TableMode.js\";\nimport TableRowType from \"./types/TableRowType.js\";\nimport TableColumnPopinDisplay from \"./types/TableColumnPopinDisplay.js\";\nimport TableRowTemplate from \"./TableRowTemplate.js\";\nimport {\n\tARIA_LABEL_ROW_SELECTION,\n\tLIST_ITEM_NOT_SELECTED,\n\tLIST_ITEM_SELECTED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport tableRowStyles from \"./generated/themes/TableRow.css.js\";\nimport { patchScopingSuffix } from \"./utils/CompatCustomElementsScope.js\";\n\ntype TableRowClickEventDetail = {\n\trow: TableRow,\n}\n\ntype TableRowSelectionRequestedEventDetail = {\n\trow: TableRow,\n}\n\ntype TableRowForwardBeforeEventDetail = {\n\ttarget: HTMLElement,\n}\n\ntype TableRowForwardAfterEventDetail = {\n\ttarget: HTMLElement,\n}\n\ntype TableRowF7PressEventDetail = {\n\trow: TableRow,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-row` component represents a row in the `ui5-table`.\n * @constructor\n * @extends UI5Element\n * @implements {ITableRow}\n * @public\n * @csspart row - Used to style the native `tr` element\n * @csspart popin-row - Used to style the `tr` element when a row pops in\n * @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/TableRow.js` instead.\n */\n@customElement({\n\ttag: \"ui5-table-row\",\n\tstyles: tableRowStyles,\n\trenderer: jsxRenderer,\n\ttemplate: TableRowTemplate,\n})\n/**\n * Fired when a row in `Active` mode is clicked or `Enter` key is pressed.\n * @since 2.0.0\n * @private\n */\n@event(\"row-click\", {\n\tbubbles: true,\n})\n/**\n * @private\n */\n@event(\"_focused\", {\n\tbubbles: true,\n})\n/**\n * @private\n */\n@event(\"forward-before\", {\n\tbubbles: true,\n})\n/**\n * @private\n */\n@event(\"forward-after\", {\n\tbubbles: true,\n})\n/**\n * Fired on selection change of an active row.\n * @since 2.0.0\n * @private\n */\n@event(\"selection-requested\", {\n\tbubbles: true,\n})\n/**\n * Fired when F7 is pressed.\n * @since 2.0.0\n * @private\n */\n@event(\"f7-pressed\", {\n\tbubbles: true,\n})\nclass TableRow extends UI5Element implements ITableRow {\n\teventDetails!: {\n\t\t\"row-click\": TableRowClickEventDetail,\n\t\t\"_focused\": FocusEvent,\n\t\t\"forward-before\": TableRowForwardBeforeEventDetail,\n\t\t\"forward-after\": TableRowForwardAfterEventDetail,\n\t\t\"selection-requested\": TableRowSelectionRequestedEventDetail,\n\t\t\"f7-pressed\": TableRowF7PressEventDetail,\n\t}\n\t/**\n\t * Defines the visual indication and behavior of the component.\n\t *\n\t * **Note:** When set to `Active`, the item will provide visual response upon press,\n\t * while with type `Inactive`-will not.\n\t * @default \"Inactive\"\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property()\n\ttype: `${TableRowType}` = \"Inactive\";\n\n\t/**\n\t * Defines the row's selected state.\n\t * @default false\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t/**\n\t * Indicates if the table row is navigated.\n\t * @default false\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnavigated = false;\n\n\t/**\n\t * Defines the mode of the row (None, SingleSelect, MultiSelect).\n\t * @default \"None\"\n\t * @since 2.0.0\n\t * @private\n\t */\n\t@property()\n\tmode: `${TableMode}` = \"None\";\n\n\t/**\n\t * Indicates if the table row is active.\n\t * @default false\n\t * @since 2.0.0\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t@property({ type: Array })\n\t_columnsInfo?: Array<TableColumnInfo>;\n\n\t@property()\n\tforcedTabIndex?: string;\n\n\t@property({ type: Boolean })\n\tforcedBusy = false;\n\n\t@property({ noAttribute: true })\n\tforcedAriaPosition?: string;\n\n\t/**\n\t * Defines the cells of the component.\n\t *\n\t * **Note:** Use `ui5-table-cell` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n\tcells!: Array<TableCell>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tvisibleCells: Array<TableCell> = [];\n\tpopinCells: Array<TableColumnInfo> = [];\n\n\t// Properties, set and handled by the Table\n\ttabbableElements: Array<HTMLElement> = [];\n\t_columnsInfoString = \"\";\n\n\t_ontouchstart() {\n\t\tthis.activate();\n\t}\n\n\t_onmouseup() {\n\t\tthis.deactivate();\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst activeElement = getActiveElement() as HTMLElement;\n\t\tconst itemActive = this.type === TableRowType.Active;\n\t\tconst isSingleSelect = this.isSingleSelect;\n\t\tconst itemSelectable = isSingleSelect || this.isMultiSelect;\n\t\tconst isRowFocused = this._activeElementHasAttribute(\"ui5-table-row\");\n\t\tconst target = e.target as HTMLElement;\n\t\tconst checkboxPressed = target.classList.contains(\"ui5-multi-select-checkbox\");\n\t\tconst rowElements = Array.from(this.shadowRoot!.querySelectorAll(\"tr\") || []);\n\t\tconst elements = rowElements.map(getLastTabbableElement).filter(Boolean);\n\t\tconst lastFocusableElement = elements.pop();\n\n\t\tif (isTabNext(e) && activeElement === (lastFocusableElement || this.root)) {\n\t\t\tthis.fireDecoratorEvent(\"forward-after\", { target: activeElement });\n\t\t}\n\n\t\tif (isTabPrevious(e) && activeElement === this.root) {\n\t\t\tthis.fireDecoratorEvent(\"forward-before\", { target: activeElement });\n\t\t}\n\n\t\tif (isSpace(e) && target.tagName.toLowerCase() === \"tr\") {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isRowFocused && !checkboxPressed) {\n\t\t\tif ((isSpace(e) && itemSelectable) || (isEnter(e) && isSingleSelect)) {\n\t\t\t\tthis.fireDecoratorEvent(\"selection-requested\", { row: this });\n\t\t\t}\n\n\t\t\tif (isEnter(e) && itemActive) {\n\t\t\t\tthis.fireDecoratorEvent(\"row-click\", { row: this });\n\t\t\t\tif (!isSingleSelect) {\n\t\t\t\t\tthis.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (isF7(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.fireDecoratorEvent(\"f7-pressed\", { row: this });\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e) || isEnter(e)) {\n\t\t\tthis.deactivate();\n\t\t}\n\t}\n\n\t_ontouchend() {\n\t\tthis.deactivate();\n\t}\n\n\t_onfocusout() {\n\t\tthis.deactivate();\n\t}\n\n\t_onfocusin(e: FocusEvent, forceSelfFocus = false) {\n\t\tif (forceSelfFocus || this._activeElementHasAttribute(\"ui5-table-cell\")) {\n\t\t\tthis.root.focus();\n\t\t\tthis.activate();\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"_focused\");\n\t}\n\n\t_onrowclick(e: MouseEvent) {\n\t\tconst checkboxPressed = (e.target as HTMLElement).classList.contains(\"ui5-multi-select-checkbox\");\n\t\t// If the user tab over a button on IOS device, the document.activeElement\n\t\t// is the ui5-table-row. The check below ensure that, if a button within the row is pressed,\n\t\t// the row will not be selected.\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = (this.getRootNode() as Document).activeElement;\n\t\tif (!this.contains(activeElement)) {\n\t\t\t// If the user clickes on non-focusable element within the ui5-table-cell,\n\t\t\t// the focus goes to the body, se we have to bring it back to the row.\n\t\t\t// If the user clicks on input, button or similar clickable element,\n\t\t\t// the focus remains on that element.\n\t\t\tthis._onfocusin(e, true /* force row focus */);\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (this._activeElementHasAttribute(\"ui5-table-row\")) {\n\t\t\tif (this.isSingleSelect) {\n\t\t\t\tthis._handleSelection();\n\t\t\t}\n\n\t\t\tif (this.type === TableRowType.Active && !checkboxPressed) {\n\t\t\t\tthis.fireDecoratorEvent(\"row-click\", { row: this });\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleSelection() {\n\t\tthis.fireDecoratorEvent(\"selection-requested\", { row: this });\n\t}\n\n\t_activeElementHasAttribute(attr: string): boolean {\n\t\treturn !!((this.getRootNode() as Document).activeElement?.hasAttribute(attr));\n\t}\n\n\tget _ariaCurrent() {\n\t\treturn this.navigated ? true : undefined;\n\t}\n\n\tactivate() {\n\t\tif (this.type === TableRowType.Active) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tdeactivate() {\n\t\tif (this.active) {\n\t\t\tthis.active = false;\n\t\t}\n\t}\n\n\tget shouldPopin(): boolean {\n\t\treturn !!(this._columnsInfo?.filter(el => {\n\t\t\treturn el.demandPopin || !el.visible;\n\t\t}).length);\n\t}\n\n\tget allColumnsPoppedIn() {\n\t\treturn this._columnsInfo?.every(el => el.demandPopin && !el.visible);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.shouldPopin) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.visibleCells = [];\n\t\tthis.popinCells = [];\n\n\t\tif (this.cells.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst allColumnsPoppedInClass = this.allColumnsPoppedIn ? \"all-columns-popped-in\" : \"\";\n\t\tthis._columnsInfo?.forEach((info, index) => {\n\t\t\tconst cell = this.cells[index];\n\t\t\tconst popinDisplay = info.popinDisplay === TableColumnPopinDisplay.Inline;\n\n\t\t\tif (!cell) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (info.visible) {\n\t\t\t\tthis.visibleCells.push(cell);\n\t\t\t\tcell.popined = false;\n\t\t\t\tcell._popinedInline = false;\n\t\t\t} else if (info.demandPopin) {\n\t\t\t\tconst popinHeaderClass = this.popinCells.length === 0 ? \"popin-header\" : \"\";\n\t\t\t\tthis.popinCells.push({\n\t\t\t\t\tcell,\n\t\t\t\t\tpopinText: info.popinText,\n\t\t\t\t\tclasses: `ui5-table-popin-row ${allColumnsPoppedInClass} ${popinHeaderClass}`,\n\t\t\t\t\tpopinDisplayInline: popinDisplay,\n\t\t\t\t});\n\t\t\t\tcell.popined = true;\n\t\t\t\tif (info.popinDisplay === TableColumnPopinDisplay.Inline) {\n\t\t\t\t\tcell._popinedInline = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcell.popined = false;\n\t\t\t\tcell._popinedInline = false;\n\t\t\t}\n\t\t});\n\n\t\tconst lastVisibleCell = this.visibleCells[this.visibleCells.length - 1];\n\n\t\tif (lastVisibleCell) {\n\t\t\tlastVisibleCell.lastInRow = true;\n\t\t}\n\t}\n\n\tget visibleCellsCount() {\n\t\tlet visibleCellsCount = this.visibleCells.length;\n\n\t\tif (this.isMultiSelect) {\n\t\t\tvisibleCellsCount += 1;\n\t\t}\n\n\t\treturn visibleCellsCount;\n\t}\n\n\tget ariaLabelText() {\n\t\tconst isSelected = this.selected ? TableRow.i18nBundle.getText(LIST_ITEM_SELECTED) : TableRow.i18nBundle.getText(LIST_ITEM_NOT_SELECTED);\n\t\tconst isRowSelectable = this.isSingleSelect || this.isMultiSelect;\n\t\tconst ariaLabel = this.cells.map((cell, index) => {\n\t\t\tconst columText = this.getColumnTextByIdx(index);\n\t\t\tconst cellText = cell.cellContent.length ? this.getCellText(cell) : cell.ariaLabelEmptyCellText;\n\t\t\treturn `${columText} ${cellText}`;\n\t\t}).join(\" \");\n\n\t\tif (isRowSelectable) {\n\t\t\treturn `${ariaLabel}. ${this.forcedAriaPosition}. ${isSelected}`;\n\t\t}\n\n\t\treturn `${ariaLabel}. ${this.forcedAriaPosition}`;\n\t}\n\n\tget ariaLabelRowSelection() {\n\t\treturn TableRow.i18nBundle.getText(ARIA_LABEL_ROW_SELECTION);\n\t}\n\n\tget isSingleSelect() {\n\t\treturn this.mode === TableMode.SingleSelect;\n\t}\n\n\tget isMultiSelect() {\n\t\treturn this.mode === TableMode.MultiSelect;\n\t}\n\n\tget root() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-table-row-root\")!;\n\t}\n\n\tgetCellText(cell: TableCell): string {\n\t\tconst cellTextContent = cell.textContent;\n\n\t\treturn cellTextContent ? this.getNormilzedTextContent(cellTextContent) : \"\";\n\t}\n\n\tgetColumnTextByIdx(index: number): string {\n\t\tconst columnInfo: TableColumnInfo | undefined = this._columnsInfo?.[index];\n\n\t\tif (!columnInfo) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn columnInfo.text ? this.getNormilzedTextContent(columnInfo.text) : \"\";\n\t}\n\n\tgetNormilzedTextContent(textContent: string): string {\n\t\treturn textContent.replace(/[\\n\\r\\t]/g, \"\").trim();\n\t}\n}\n\npatchScopingSuffix(TableRow);\n\nTableRow.define();\n\nexport default TableRow;\n\nexport type {\n\tTableRowClickEventDetail,\n\tTableRowSelectionRequestedEventDetail,\n\tTableRowForwardBeforeEventDetail,\n\tTableRowForwardAfterEventDetail,\n\tTableRowF7PressEventDetail,\n};\n"]}
|