@ui5/webcomponents-compat 0.0.0-7c7170d4a → 0.0.0-acc6fea96
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 +380 -0
- package/README.md +1 -4
- package/dist/Table.d.ts +21 -27
- package/dist/Table.js +122 -75
- package/dist/Table.js.map +1 -1
- package/dist/TableCell.d.ts +0 -1
- package/dist/TableCell.js +21 -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 +3 -3
- package/dist/TableColumn.js +47 -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 +6 -4
- package/dist/TableGroupRow.js +26 -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 +14 -9
- package/dist/TableRow.js +101 -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 +62 -68
- package/dist/custom-elements.json +32 -32
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.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_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.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.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.d.ts +2 -3
- package/dist/generated/themes/GrowingButton.css.js +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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/tsconfig.tsbuildinfo +1 -0
- package/dist/web-types.json +11 -11
- package/package.json +7 -7
- 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_cs.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_lv.properties +1 -1
- package/src/themes/GrowingButton.css +12 -12
- package/src/themes/Table.css +14 -21
- package/src/themes/TableRow.css +37 -2
- 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 +34 -26
- 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/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,11 +8,10 @@ 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";
|
@@ -37,6 +36,13 @@ import tableGroupRowStyles from "./generated/themes/TableGroupRow.css.js";
|
|
37
36
|
let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
38
37
|
constructor() {
|
39
38
|
super(...arguments);
|
39
|
+
/**
|
40
|
+
* Defines the mode of the row
|
41
|
+
* @default "None"
|
42
|
+
* @private
|
43
|
+
*/
|
44
|
+
this.mode = "None";
|
45
|
+
this.forcedBusy = false;
|
40
46
|
// Properties, set and handled by the Table
|
41
47
|
this.selected = false;
|
42
48
|
this.tabbableElements = [];
|
@@ -46,12 +52,12 @@ let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
|
46
52
|
return this._colSpan;
|
47
53
|
}
|
48
54
|
get ariaLabelText() {
|
49
|
-
return `${TableGroupRow_1.i18nBundle.getText(TABLE_GROUP_ROW_ARIA_LABEL)} ${this.
|
55
|
+
return `${TableGroupRow_1.i18nBundle.getText(TABLE_GROUP_ROW_ARIA_LABEL)} ${this.textContent}. ${this.forcedAriaPosition}`;
|
50
56
|
}
|
51
57
|
visibleColCount() {
|
52
|
-
let count = this._columnsInfo
|
58
|
+
let count = this._columnsInfo?.reduce((acc, column) => {
|
53
59
|
return column.visible ? ++acc : acc;
|
54
|
-
}, 0);
|
60
|
+
}, 0) || 0;
|
55
61
|
if (this.mode === TableMode.MultiSelect) {
|
56
62
|
count++;
|
57
63
|
}
|
@@ -64,38 +70,37 @@ let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
|
64
70
|
this._colSpan = this.visibleColCount();
|
65
71
|
}
|
66
72
|
_onfocusin(e) {
|
67
|
-
this.
|
68
|
-
}
|
69
|
-
static async onDefine() {
|
70
|
-
TableGroupRow_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
73
|
+
this.fireDecoratorEvent("_focused", e);
|
71
74
|
}
|
72
75
|
};
|
73
76
|
__decorate([
|
74
|
-
property(
|
77
|
+
property()
|
75
78
|
], TableGroupRow.prototype, "mode", void 0);
|
76
79
|
__decorate([
|
77
|
-
property({ type:
|
80
|
+
property({ type: Array })
|
78
81
|
], TableGroupRow.prototype, "_columnsInfo", void 0);
|
79
82
|
__decorate([
|
80
|
-
property(
|
83
|
+
property()
|
81
84
|
], TableGroupRow.prototype, "forcedTabIndex", void 0);
|
82
85
|
__decorate([
|
83
86
|
property({ type: Boolean })
|
84
87
|
], TableGroupRow.prototype, "forcedBusy", void 0);
|
85
88
|
__decorate([
|
86
|
-
property(
|
89
|
+
property()
|
87
90
|
], TableGroupRow.prototype, "forcedAriaPosition", void 0);
|
91
|
+
__decorate([
|
92
|
+
i18n("@ui5/webcomponents")
|
93
|
+
], TableGroupRow, "i18nBundle", void 0);
|
88
94
|
TableGroupRow = TableGroupRow_1 = __decorate([
|
89
95
|
customElement({
|
90
96
|
tag: "ui5-table-group-row",
|
91
97
|
styles: tableGroupRowStyles,
|
92
|
-
renderer:
|
98
|
+
renderer: jsxRenderer,
|
93
99
|
template: TableGroupRowTemplate,
|
94
|
-
dependencies: [
|
95
|
-
CheckBox,
|
96
|
-
],
|
97
100
|
}),
|
98
|
-
event("_focused"
|
101
|
+
event("_focused", {
|
102
|
+
bubbles: true,
|
103
|
+
})
|
99
104
|
], TableGroupRow);
|
100
105
|
TableGroupRow.define();
|
101
106
|
export default TableGroupRow;
|
@@ -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;AAE1E;;;;;;;;;;;;;;;GAeG;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,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\";\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 */\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\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";
|
@@ -34,6 +33,14 @@ type TableRowF7PressEventDetail = {
|
|
34
33
|
* @csspart popin-row - Used to style the `tr` element when a row pops in
|
35
34
|
*/
|
36
35
|
declare class TableRow extends UI5Element implements ITableRow {
|
36
|
+
eventDetails: {
|
37
|
+
"row-click": TableRowClickEventDetail;
|
38
|
+
"_focused": FocusEvent;
|
39
|
+
"forward-before": TableRowForwardBeforeEventDetail;
|
40
|
+
"forward-after": TableRowForwardAfterEventDetail;
|
41
|
+
"selection-requested": TableRowSelectionRequestedEventDetail;
|
42
|
+
"f7-pressed": TableRowF7PressEventDetail;
|
43
|
+
};
|
37
44
|
/**
|
38
45
|
* Defines the visual indication and behavior of the component.
|
39
46
|
*
|
@@ -72,10 +79,10 @@ declare class TableRow extends UI5Element implements ITableRow {
|
|
72
79
|
* @private
|
73
80
|
*/
|
74
81
|
active: boolean;
|
75
|
-
_columnsInfo
|
76
|
-
forcedTabIndex
|
82
|
+
_columnsInfo?: Array<TableColumnInfo>;
|
83
|
+
forcedTabIndex?: string;
|
77
84
|
forcedBusy: boolean;
|
78
|
-
forcedAriaPosition
|
85
|
+
forcedAriaPosition?: string;
|
79
86
|
/**
|
80
87
|
* Defines the cells of the component.
|
81
88
|
*
|
@@ -86,10 +93,9 @@ declare class TableRow extends UI5Element implements ITableRow {
|
|
86
93
|
static i18nBundle: I18nBundle;
|
87
94
|
visibleCells: Array<TableCell>;
|
88
95
|
popinCells: Array<TableColumnInfo>;
|
89
|
-
_ontouchstart: PassiveEventListenerObject;
|
90
96
|
tabbableElements: Array<HTMLElement>;
|
91
97
|
_columnsInfoString: string;
|
92
|
-
|
98
|
+
_ontouchstart(): void;
|
93
99
|
_onmouseup(): void;
|
94
100
|
_onkeydown(e: KeyboardEvent): void;
|
95
101
|
_onkeyup(e: KeyboardEvent): void;
|
@@ -102,8 +108,8 @@ declare class TableRow extends UI5Element implements ITableRow {
|
|
102
108
|
get _ariaCurrent(): true | undefined;
|
103
109
|
activate(): void;
|
104
110
|
deactivate(): void;
|
105
|
-
get shouldPopin():
|
106
|
-
get allColumnsPoppedIn(): boolean;
|
111
|
+
get shouldPopin(): boolean;
|
112
|
+
get allColumnsPoppedIn(): boolean | undefined;
|
107
113
|
onBeforeRendering(): void;
|
108
114
|
get visibleCellsCount(): number;
|
109
115
|
get ariaLabelText(): string;
|
@@ -114,7 +120,6 @@ declare class TableRow extends UI5Element implements ITableRow {
|
|
114
120
|
getCellText(cell: TableCell): string;
|
115
121
|
getColumnTextByIdx(index: number): string;
|
116
122
|
getNormilzedTextContent(textContent: string): string;
|
117
|
-
static onDefine(): Promise<void>;
|
118
123
|
}
|
119
124
|
export default TableRow;
|
120
125
|
export type { TableRowClickEventDetail, TableRowSelectionRequestedEventDetail, TableRowForwardBeforeEventDetail, TableRowForwardAfterEventDetail, TableRowF7PressEventDetail, };
|
package/dist/TableRow.js
CHANGED
@@ -8,19 +8,17 @@ 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";
|
@@ -39,19 +37,54 @@ import tableRowStyles from "./generated/themes/TableRow.css.js";
|
|
39
37
|
*/
|
40
38
|
let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
41
39
|
constructor() {
|
42
|
-
super();
|
40
|
+
super(...arguments);
|
41
|
+
/**
|
42
|
+
* Defines the visual indication and behavior of the component.
|
43
|
+
*
|
44
|
+
* **Note:** When set to `Active`, the item will provide visual response upon press,
|
45
|
+
* while with type `Inactive`-will not.
|
46
|
+
* @default "Inactive"
|
47
|
+
* @since 2.0.0
|
48
|
+
* @public
|
49
|
+
*/
|
50
|
+
this.type = "Inactive";
|
51
|
+
/**
|
52
|
+
* Defines the row's selected state.
|
53
|
+
* @default false
|
54
|
+
* @since 2.0.0
|
55
|
+
* @public
|
56
|
+
*/
|
57
|
+
this.selected = false;
|
58
|
+
/**
|
59
|
+
* Indicates if the table row is navigated.
|
60
|
+
* @default false
|
61
|
+
* @since 2.0.0
|
62
|
+
* @public
|
63
|
+
*/
|
64
|
+
this.navigated = false;
|
65
|
+
/**
|
66
|
+
* Defines the mode of the row (None, SingleSelect, MultiSelect).
|
67
|
+
* @default "None"
|
68
|
+
* @since 2.0.0
|
69
|
+
* @private
|
70
|
+
*/
|
71
|
+
this.mode = "None";
|
72
|
+
/**
|
73
|
+
* Indicates if the table row is active.
|
74
|
+
* @default false
|
75
|
+
* @since 2.0.0
|
76
|
+
* @private
|
77
|
+
*/
|
78
|
+
this.active = false;
|
79
|
+
this.forcedBusy = false;
|
43
80
|
this.visibleCells = [];
|
44
81
|
this.popinCells = [];
|
45
82
|
// Properties, set and handled by the Table
|
46
83
|
this.tabbableElements = [];
|
47
84
|
this._columnsInfoString = "";
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
this._ontouchstart = {
|
52
|
-
handleEvent: handleToushStartEvent,
|
53
|
-
passive: true,
|
54
|
-
};
|
85
|
+
}
|
86
|
+
_ontouchstart() {
|
87
|
+
this.activate();
|
55
88
|
}
|
56
89
|
_onmouseup() {
|
57
90
|
this.deactivate();
|
@@ -65,23 +98,23 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
65
98
|
const target = e.target;
|
66
99
|
const checkboxPressed = target.classList.contains("ui5-multi-select-checkbox");
|
67
100
|
const rowElements = Array.from(this.shadowRoot.querySelectorAll("tr") || []);
|
68
|
-
const elements = rowElements.map(getLastTabbableElement);
|
101
|
+
const elements = rowElements.map(getLastTabbableElement).filter(Boolean);
|
69
102
|
const lastFocusableElement = elements.pop();
|
70
103
|
if (isTabNext(e) && activeElement === (lastFocusableElement || this.root)) {
|
71
|
-
this.
|
104
|
+
this.fireDecoratorEvent("forward-after", { target: activeElement });
|
72
105
|
}
|
73
106
|
if (isTabPrevious(e) && activeElement === this.root) {
|
74
|
-
this.
|
107
|
+
this.fireDecoratorEvent("forward-before", { target: activeElement });
|
75
108
|
}
|
76
109
|
if (isSpace(e) && target.tagName.toLowerCase() === "tr") {
|
77
110
|
e.preventDefault();
|
78
111
|
}
|
79
112
|
if (isRowFocused && !checkboxPressed) {
|
80
113
|
if ((isSpace(e) && itemSelectable) || (isEnter(e) && isSingleSelect)) {
|
81
|
-
this.
|
114
|
+
this.fireDecoratorEvent("selection-requested", { row: this });
|
82
115
|
}
|
83
116
|
if (isEnter(e) && itemActive) {
|
84
|
-
this.
|
117
|
+
this.fireDecoratorEvent("row-click", { row: this });
|
85
118
|
if (!isSingleSelect) {
|
86
119
|
this.activate();
|
87
120
|
}
|
@@ -89,7 +122,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
89
122
|
}
|
90
123
|
if (isF7(e)) {
|
91
124
|
e.preventDefault();
|
92
|
-
this.
|
125
|
+
this.fireDecoratorEvent("f7-pressed", { row: this });
|
93
126
|
}
|
94
127
|
}
|
95
128
|
_onkeyup(e) {
|
@@ -108,14 +141,14 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
108
141
|
this.root.focus();
|
109
142
|
this.activate();
|
110
143
|
}
|
111
|
-
this.
|
144
|
+
this.fireDecoratorEvent("_focused");
|
112
145
|
}
|
113
146
|
_onrowclick(e) {
|
114
147
|
const checkboxPressed = e.target.classList.contains("ui5-multi-select-checkbox");
|
115
148
|
// If the user tab over a button on IOS device, the document.activeElement
|
116
149
|
// is the ui5-table-row. The check below ensure that, if a button within the row is pressed,
|
117
150
|
// the row will not be selected.
|
118
|
-
if (
|
151
|
+
if (this.getFocusDomRef().matches(":has(:focus-within)")) {
|
119
152
|
return;
|
120
153
|
}
|
121
154
|
const activeElement = this.getRootNode().activeElement;
|
@@ -132,12 +165,12 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
132
165
|
this._handleSelection();
|
133
166
|
}
|
134
167
|
if (this.type === TableRowType.Active && !checkboxPressed) {
|
135
|
-
this.
|
168
|
+
this.fireDecoratorEvent("row-click", { row: this });
|
136
169
|
}
|
137
170
|
}
|
138
171
|
}
|
139
172
|
_handleSelection() {
|
140
|
-
this.
|
173
|
+
this.fireDecoratorEvent("selection-requested", { row: this });
|
141
174
|
}
|
142
175
|
_activeElementHasAttribute(attr) {
|
143
176
|
return !!(this.getRootNode().activeElement?.hasAttribute(attr));
|
@@ -156,12 +189,12 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
156
189
|
}
|
157
190
|
}
|
158
191
|
get shouldPopin() {
|
159
|
-
return this._columnsInfo
|
192
|
+
return !!(this._columnsInfo?.filter(el => {
|
160
193
|
return el.demandPopin || !el.visible;
|
161
|
-
}).length;
|
194
|
+
}).length);
|
162
195
|
}
|
163
196
|
get allColumnsPoppedIn() {
|
164
|
-
return this._columnsInfo
|
197
|
+
return this._columnsInfo?.every(el => el.demandPopin && !el.visible);
|
165
198
|
}
|
166
199
|
onBeforeRendering() {
|
167
200
|
if (!this.shouldPopin) {
|
@@ -173,7 +206,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
173
206
|
return;
|
174
207
|
}
|
175
208
|
const allColumnsPoppedInClass = this.allColumnsPoppedIn ? "all-columns-popped-in" : "";
|
176
|
-
this._columnsInfo
|
209
|
+
this._columnsInfo?.forEach((info, index) => {
|
177
210
|
const cell = this.cells[index];
|
178
211
|
const popinDisplay = info.popinDisplay === TableColumnPopinDisplay.Inline;
|
179
212
|
if (!cell) {
|
@@ -244,7 +277,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
244
277
|
return cellTextContent ? this.getNormilzedTextContent(cellTextContent) : "";
|
245
278
|
}
|
246
279
|
getColumnTextByIdx(index) {
|
247
|
-
const columnInfo = this._columnsInfo[index];
|
280
|
+
const columnInfo = this._columnsInfo?.[index];
|
248
281
|
if (!columnInfo) {
|
249
282
|
return "";
|
250
283
|
}
|
@@ -253,12 +286,9 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
253
286
|
getNormilzedTextContent(textContent) {
|
254
287
|
return textContent.replace(/[\n\r\t]/g, "").trim();
|
255
288
|
}
|
256
|
-
static async onDefine() {
|
257
|
-
TableRow_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
258
|
-
}
|
259
289
|
};
|
260
290
|
__decorate([
|
261
|
-
property(
|
291
|
+
property()
|
262
292
|
], TableRow.prototype, "type", void 0);
|
263
293
|
__decorate([
|
264
294
|
property({ type: Boolean })
|
@@ -267,33 +297,35 @@ __decorate([
|
|
267
297
|
property({ type: Boolean })
|
268
298
|
], TableRow.prototype, "navigated", void 0);
|
269
299
|
__decorate([
|
270
|
-
property(
|
300
|
+
property()
|
271
301
|
], TableRow.prototype, "mode", void 0);
|
272
302
|
__decorate([
|
273
303
|
property({ type: Boolean })
|
274
304
|
], TableRow.prototype, "active", void 0);
|
275
305
|
__decorate([
|
276
|
-
property({ type:
|
306
|
+
property({ type: Array })
|
277
307
|
], TableRow.prototype, "_columnsInfo", void 0);
|
278
308
|
__decorate([
|
279
|
-
property(
|
309
|
+
property()
|
280
310
|
], TableRow.prototype, "forcedTabIndex", void 0);
|
281
311
|
__decorate([
|
282
312
|
property({ type: Boolean })
|
283
313
|
], TableRow.prototype, "forcedBusy", void 0);
|
284
314
|
__decorate([
|
285
|
-
property({
|
315
|
+
property({ noAttribute: true })
|
286
316
|
], TableRow.prototype, "forcedAriaPosition", void 0);
|
287
317
|
__decorate([
|
288
318
|
slot({ type: HTMLElement, "default": true, individualSlots: true })
|
289
319
|
], TableRow.prototype, "cells", void 0);
|
320
|
+
__decorate([
|
321
|
+
i18n("@ui5/webcomponents")
|
322
|
+
], TableRow, "i18nBundle", void 0);
|
290
323
|
TableRow = TableRow_1 = __decorate([
|
291
324
|
customElement({
|
292
325
|
tag: "ui5-table-row",
|
293
326
|
styles: tableRowStyles,
|
294
|
-
renderer:
|
327
|
+
renderer: jsxRenderer,
|
295
328
|
template: TableRowTemplate,
|
296
|
-
dependencies: [CheckBox],
|
297
329
|
})
|
298
330
|
/**
|
299
331
|
* Fired when a row in `Active` mode is clicked or `Enter` key is pressed.
|
@@ -301,22 +333,48 @@ TableRow = TableRow_1 = __decorate([
|
|
301
333
|
* @private
|
302
334
|
*/
|
303
335
|
,
|
304
|
-
event("row-click"
|
305
|
-
|
336
|
+
event("row-click", {
|
337
|
+
bubbles: true,
|
338
|
+
})
|
339
|
+
/**
|
340
|
+
* @private
|
341
|
+
*/
|
342
|
+
,
|
343
|
+
event("_focused", {
|
344
|
+
bubbles: true,
|
345
|
+
})
|
346
|
+
/**
|
347
|
+
* @private
|
348
|
+
*/
|
349
|
+
,
|
350
|
+
event("forward-before", {
|
351
|
+
bubbles: true,
|
352
|
+
})
|
353
|
+
/**
|
354
|
+
* @private
|
355
|
+
*/
|
356
|
+
,
|
357
|
+
event("forward-after", {
|
358
|
+
bubbles: true,
|
359
|
+
})
|
306
360
|
/**
|
307
361
|
* Fired on selection change of an active row.
|
308
362
|
* @since 2.0.0
|
309
363
|
* @private
|
310
364
|
*/
|
311
365
|
,
|
312
|
-
event("selection-requested"
|
366
|
+
event("selection-requested", {
|
367
|
+
bubbles: true,
|
368
|
+
})
|
313
369
|
/**
|
314
370
|
* Fired when F7 is pressed.
|
315
371
|
* @since 2.0.0
|
316
372
|
* @private
|
317
373
|
*/
|
318
374
|
,
|
319
|
-
event("f7-pressed"
|
375
|
+
event("f7-pressed", {
|
376
|
+
bubbles: true,
|
377
|
+
})
|
320
378
|
], TableRow);
|
321
379
|
TableRow.define();
|
322
380
|
export default TableRow;
|
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\";\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: 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\nTableRow.define();\n\nexport default TableRow;\n\nexport type {\n\tTableRowClickEventDetail,\n\tTableRowSelectionRequestedEventDetail,\n\tTableRowForwardBeforeEventDetail,\n\tTableRowForwardAfterEventDetail,\n\tTableRowF7PressEventDetail,\n};\n"]}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
|
2
|
+
import CheckBox from "@ui5/webcomponents/dist/CheckBox.js";
|
3
|
+
export default function TableRowTemplate() {
|
4
|
+
return (_jsxs(_Fragment, { children: [_jsxs("tr", { class: "ui5-table-row-root", tabindex: this.forcedTabIndex ? parseInt(this.forcedTabIndex) : undefined, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onClick: this._onrowclick, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onMouseUp: this._onmouseup, onTouchStart: this._ontouchstart, onTouchEnd: this._ontouchend, "aria-label": this.ariaLabelText, "aria-selected": this.selected, "aria-current": this._ariaCurrent, "data-sap-focus-ref": true, part: "row", children: [this.isMultiSelect &&
|
5
|
+
_jsx("td", { class: "ui5-table-multi-select-cell", "aria-hidden": "true", role: "presentation", children: _jsx(CheckBox, { class: "ui5-multi-select-checkbox", checked: this.selected, accessibleName: this.ariaLabelRowSelection, onChange: this._handleSelection, tabindex: -1 }) }), this.shouldPopin ?
|
6
|
+
this.visibleCells.map(cell => _jsx("slot", { name: cell._individualSlot }))
|
7
|
+
:
|
8
|
+
this.cells.map(cell => _jsx("slot", { name: cell._individualSlot })), _jsx("td", { class: "ui5-table-row-navigated", "aria-hidden": "true", children: _jsx("div", { class: "ui5-table-div-navigated" }) })] }), this.shouldPopin && this.popinCells.map(cellData => _jsxs("tr", { part: "popin-row", class: cellData.classes, onClick: this._onrowclick, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, children: [_jsx("td", { colspan: this.visibleCellsCount, role: "cell", children: cellData.popinDisplayInline ?
|
9
|
+
_jsxs("div", { class: "ui5-table-display-inline-container", children: [cellData.popinText &&
|
10
|
+
_jsxs("span", { class: "ui5-table-row-popin-title", children: [cellData.popinText, ":"] }), _jsx("span", { class: "ui5-table-cell-display-inline", children: _jsx("slot", { name: cellData.cell?._individualSlot }) })] })
|
11
|
+
:
|
12
|
+
_jsxs(_Fragment, { children: [cellData.popinText &&
|
13
|
+
_jsxs("span", { class: "ui5-table-row-popin-title", children: [cellData.popinText, ":"] }), _jsx("div", { children: _jsx("slot", { name: cellData.cell?._individualSlot }) })] }) }), _jsx("td", { class: "ui5-table-row-navigated", "aria-hidden": "true", children: _jsx("div", { class: "ui5-table-div-navigated" }) })] }))] }));
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=TableRowTemplate.js.map
|