@ui5/webcomponents-compat 0.0.0-da0d3eb88 → 0.0.0-f42e7c18c
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 +315 -0
- package/README.md +1 -4
- package/dist/Table.d.ts +21 -27
- package/dist/Table.js +122 -72
- 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 -17
- 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 -41
- 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 +67 -73
- package/dist/custom-elements.json +37 -37
- 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_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.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCell.css.js +1 -1
- package/dist/generated/themes/TableCell.css.js.map +1 -1
- package/dist/generated/themes/TableColumn.css.js +1 -1
- package/dist/generated/themes/TableColumn.css.js.map +1 -1
- package/dist/generated/themes/TableGroupRow.css.js +1 -1
- package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- 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.js +1 -1
- 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.js +1 -1
- 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.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- 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 +100 -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_lv.properties +1 -1
- package/src/themes/GrowingButton.css +12 -12
- package/src/themes/Table.css +14 -21
- 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 +0 -1
- package/src/themes/sap_horizon/parameters-bundle.css +0 -1
- package/src/themes/sap_horizon_dark/Table-parameters.css +0 -1
- 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 +36 -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,11 @@ 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
|
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
14
|
import CheckBox from "@ui5/webcomponents/dist/CheckBox.js";
|
15
|
-
import TableGroupRowTemplate from "./
|
15
|
+
import TableGroupRowTemplate from "./TableGroupRowTemplate.js";
|
16
16
|
import TableMode from "./types/TableMode.js";
|
17
17
|
// Texts
|
18
18
|
import { TABLE_GROUP_ROW_ARIA_LABEL, } from "./generated/i18n/i18n-defaults.js";
|
@@ -37,6 +37,13 @@ import tableGroupRowStyles from "./generated/themes/TableGroupRow.css.js";
|
|
37
37
|
let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
38
38
|
constructor() {
|
39
39
|
super(...arguments);
|
40
|
+
/**
|
41
|
+
* Defines the mode of the row
|
42
|
+
* @default "None"
|
43
|
+
* @private
|
44
|
+
*/
|
45
|
+
this.mode = "None";
|
46
|
+
this.forcedBusy = false;
|
40
47
|
// Properties, set and handled by the Table
|
41
48
|
this.selected = false;
|
42
49
|
this.tabbableElements = [];
|
@@ -46,12 +53,12 @@ let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
|
46
53
|
return this._colSpan;
|
47
54
|
}
|
48
55
|
get ariaLabelText() {
|
49
|
-
return `${TableGroupRow_1.i18nBundle.getText(TABLE_GROUP_ROW_ARIA_LABEL)} ${this.
|
56
|
+
return `${TableGroupRow_1.i18nBundle.getText(TABLE_GROUP_ROW_ARIA_LABEL)} ${this.textContent}. ${this.forcedAriaPosition}`;
|
50
57
|
}
|
51
58
|
visibleColCount() {
|
52
|
-
let count = this._columnsInfo
|
59
|
+
let count = this._columnsInfo?.reduce((acc, column) => {
|
53
60
|
return column.visible ? ++acc : acc;
|
54
|
-
}, 0);
|
61
|
+
}, 0) || 0;
|
55
62
|
if (this.mode === TableMode.MultiSelect) {
|
56
63
|
count++;
|
57
64
|
}
|
@@ -64,38 +71,40 @@ let TableGroupRow = TableGroupRow_1 = class TableGroupRow extends UI5Element {
|
|
64
71
|
this._colSpan = this.visibleColCount();
|
65
72
|
}
|
66
73
|
_onfocusin(e) {
|
67
|
-
this.
|
68
|
-
}
|
69
|
-
static async onDefine() {
|
70
|
-
TableGroupRow_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
74
|
+
this.fireDecoratorEvent("_focused", e);
|
71
75
|
}
|
72
76
|
};
|
73
77
|
__decorate([
|
74
|
-
property(
|
78
|
+
property()
|
75
79
|
], TableGroupRow.prototype, "mode", void 0);
|
76
80
|
__decorate([
|
77
|
-
property({ type:
|
81
|
+
property({ type: Array })
|
78
82
|
], TableGroupRow.prototype, "_columnsInfo", void 0);
|
79
83
|
__decorate([
|
80
|
-
property(
|
84
|
+
property()
|
81
85
|
], TableGroupRow.prototype, "forcedTabIndex", void 0);
|
82
86
|
__decorate([
|
83
87
|
property({ type: Boolean })
|
84
88
|
], TableGroupRow.prototype, "forcedBusy", void 0);
|
85
89
|
__decorate([
|
86
|
-
property(
|
90
|
+
property()
|
87
91
|
], TableGroupRow.prototype, "forcedAriaPosition", void 0);
|
92
|
+
__decorate([
|
93
|
+
i18n("@ui5/webcomponents")
|
94
|
+
], TableGroupRow, "i18nBundle", void 0);
|
88
95
|
TableGroupRow = TableGroupRow_1 = __decorate([
|
89
96
|
customElement({
|
90
97
|
tag: "ui5-table-group-row",
|
91
98
|
styles: tableGroupRowStyles,
|
92
|
-
renderer:
|
99
|
+
renderer: jsxRenderer,
|
93
100
|
template: TableGroupRowTemplate,
|
94
101
|
dependencies: [
|
95
102
|
CheckBox,
|
96
103
|
],
|
97
104
|
}),
|
98
|
-
event("_focused"
|
105
|
+
event("_focused", {
|
106
|
+
bubbles: true,
|
107
|
+
})
|
99
108
|
], TableGroupRow);
|
100
109
|
TableGroupRow.define();
|
101
110
|
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;AAE/E,OAAO,QAAQ,MAAM,qCAAqC,CAAC;AAE3D,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;AAaH,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;IAZlB,aAAa,CAAC;QACd,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,qBAAqB;QAC/B,YAAY,EAAE;YACb,QAAQ;SACR;KACD,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 CheckBox from \"@ui5/webcomponents/dist/CheckBox.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\tdependencies: [\n\t\tCheckBox,\n\t],\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,18 @@ 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
18
|
import CheckBox from "@ui5/webcomponents/dist/CheckBox.js";
|
20
19
|
import TableMode from "./types/TableMode.js";
|
21
20
|
import TableRowType from "./types/TableRowType.js";
|
22
21
|
import TableColumnPopinDisplay from "./types/TableColumnPopinDisplay.js";
|
23
|
-
import TableRowTemplate from "./
|
22
|
+
import TableRowTemplate from "./TableRowTemplate.js";
|
24
23
|
import { ARIA_LABEL_ROW_SELECTION, LIST_ITEM_NOT_SELECTED, LIST_ITEM_SELECTED, } from "./generated/i18n/i18n-defaults.js";
|
25
24
|
// Styles
|
26
25
|
import tableRowStyles from "./generated/themes/TableRow.css.js";
|
@@ -39,19 +38,54 @@ import tableRowStyles from "./generated/themes/TableRow.css.js";
|
|
39
38
|
*/
|
40
39
|
let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
41
40
|
constructor() {
|
42
|
-
super();
|
41
|
+
super(...arguments);
|
42
|
+
/**
|
43
|
+
* Defines the visual indication and behavior of the component.
|
44
|
+
*
|
45
|
+
* **Note:** When set to `Active`, the item will provide visual response upon press,
|
46
|
+
* while with type `Inactive`-will not.
|
47
|
+
* @default "Inactive"
|
48
|
+
* @since 2.0.0
|
49
|
+
* @public
|
50
|
+
*/
|
51
|
+
this.type = "Inactive";
|
52
|
+
/**
|
53
|
+
* Defines the row's selected state.
|
54
|
+
* @default false
|
55
|
+
* @since 2.0.0
|
56
|
+
* @public
|
57
|
+
*/
|
58
|
+
this.selected = false;
|
59
|
+
/**
|
60
|
+
* Indicates if the table row is navigated.
|
61
|
+
* @default false
|
62
|
+
* @since 2.0.0
|
63
|
+
* @public
|
64
|
+
*/
|
65
|
+
this.navigated = false;
|
66
|
+
/**
|
67
|
+
* Defines the mode of the row (None, SingleSelect, MultiSelect).
|
68
|
+
* @default "None"
|
69
|
+
* @since 2.0.0
|
70
|
+
* @private
|
71
|
+
*/
|
72
|
+
this.mode = "None";
|
73
|
+
/**
|
74
|
+
* Indicates if the table row is active.
|
75
|
+
* @default false
|
76
|
+
* @since 2.0.0
|
77
|
+
* @private
|
78
|
+
*/
|
79
|
+
this.active = false;
|
80
|
+
this.forcedBusy = false;
|
43
81
|
this.visibleCells = [];
|
44
82
|
this.popinCells = [];
|
45
83
|
// Properties, set and handled by the Table
|
46
84
|
this.tabbableElements = [];
|
47
85
|
this._columnsInfoString = "";
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
this._ontouchstart = {
|
52
|
-
handleEvent: handleToushStartEvent,
|
53
|
-
passive: true,
|
54
|
-
};
|
86
|
+
}
|
87
|
+
_ontouchstart() {
|
88
|
+
this.activate();
|
55
89
|
}
|
56
90
|
_onmouseup() {
|
57
91
|
this.deactivate();
|
@@ -65,23 +99,23 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
65
99
|
const target = e.target;
|
66
100
|
const checkboxPressed = target.classList.contains("ui5-multi-select-checkbox");
|
67
101
|
const rowElements = Array.from(this.shadowRoot.querySelectorAll("tr") || []);
|
68
|
-
const elements = rowElements.map(getLastTabbableElement);
|
102
|
+
const elements = rowElements.map(getLastTabbableElement).filter(Boolean);
|
69
103
|
const lastFocusableElement = elements.pop();
|
70
104
|
if (isTabNext(e) && activeElement === (lastFocusableElement || this.root)) {
|
71
|
-
this.
|
105
|
+
this.fireDecoratorEvent("forward-after", { target: activeElement });
|
72
106
|
}
|
73
107
|
if (isTabPrevious(e) && activeElement === this.root) {
|
74
|
-
this.
|
108
|
+
this.fireDecoratorEvent("forward-before", { target: activeElement });
|
75
109
|
}
|
76
110
|
if (isSpace(e) && target.tagName.toLowerCase() === "tr") {
|
77
111
|
e.preventDefault();
|
78
112
|
}
|
79
113
|
if (isRowFocused && !checkboxPressed) {
|
80
114
|
if ((isSpace(e) && itemSelectable) || (isEnter(e) && isSingleSelect)) {
|
81
|
-
this.
|
115
|
+
this.fireDecoratorEvent("selection-requested", { row: this });
|
82
116
|
}
|
83
117
|
if (isEnter(e) && itemActive) {
|
84
|
-
this.
|
118
|
+
this.fireDecoratorEvent("row-click", { row: this });
|
85
119
|
if (!isSingleSelect) {
|
86
120
|
this.activate();
|
87
121
|
}
|
@@ -89,7 +123,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
89
123
|
}
|
90
124
|
if (isF7(e)) {
|
91
125
|
e.preventDefault();
|
92
|
-
this.
|
126
|
+
this.fireDecoratorEvent("f7-pressed", { row: this });
|
93
127
|
}
|
94
128
|
}
|
95
129
|
_onkeyup(e) {
|
@@ -108,14 +142,14 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
108
142
|
this.root.focus();
|
109
143
|
this.activate();
|
110
144
|
}
|
111
|
-
this.
|
145
|
+
this.fireDecoratorEvent("_focused");
|
112
146
|
}
|
113
147
|
_onrowclick(e) {
|
114
148
|
const checkboxPressed = e.target.classList.contains("ui5-multi-select-checkbox");
|
115
149
|
// If the user tab over a button on IOS device, the document.activeElement
|
116
150
|
// is the ui5-table-row. The check below ensure that, if a button within the row is pressed,
|
117
151
|
// the row will not be selected.
|
118
|
-
if (
|
152
|
+
if (this.getFocusDomRef().matches(":has(:focus-within)")) {
|
119
153
|
return;
|
120
154
|
}
|
121
155
|
const activeElement = this.getRootNode().activeElement;
|
@@ -132,12 +166,12 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
132
166
|
this._handleSelection();
|
133
167
|
}
|
134
168
|
if (this.type === TableRowType.Active && !checkboxPressed) {
|
135
|
-
this.
|
169
|
+
this.fireDecoratorEvent("row-click", { row: this });
|
136
170
|
}
|
137
171
|
}
|
138
172
|
}
|
139
173
|
_handleSelection() {
|
140
|
-
this.
|
174
|
+
this.fireDecoratorEvent("selection-requested", { row: this });
|
141
175
|
}
|
142
176
|
_activeElementHasAttribute(attr) {
|
143
177
|
return !!(this.getRootNode().activeElement?.hasAttribute(attr));
|
@@ -156,12 +190,12 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
156
190
|
}
|
157
191
|
}
|
158
192
|
get shouldPopin() {
|
159
|
-
return this._columnsInfo
|
193
|
+
return !!(this._columnsInfo?.filter(el => {
|
160
194
|
return el.demandPopin || !el.visible;
|
161
|
-
}).length;
|
195
|
+
}).length);
|
162
196
|
}
|
163
197
|
get allColumnsPoppedIn() {
|
164
|
-
return this._columnsInfo
|
198
|
+
return this._columnsInfo?.every(el => el.demandPopin && !el.visible);
|
165
199
|
}
|
166
200
|
onBeforeRendering() {
|
167
201
|
if (!this.shouldPopin) {
|
@@ -173,7 +207,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
173
207
|
return;
|
174
208
|
}
|
175
209
|
const allColumnsPoppedInClass = this.allColumnsPoppedIn ? "all-columns-popped-in" : "";
|
176
|
-
this._columnsInfo
|
210
|
+
this._columnsInfo?.forEach((info, index) => {
|
177
211
|
const cell = this.cells[index];
|
178
212
|
const popinDisplay = info.popinDisplay === TableColumnPopinDisplay.Inline;
|
179
213
|
if (!cell) {
|
@@ -244,7 +278,7 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
244
278
|
return cellTextContent ? this.getNormilzedTextContent(cellTextContent) : "";
|
245
279
|
}
|
246
280
|
getColumnTextByIdx(index) {
|
247
|
-
const columnInfo = this._columnsInfo[index];
|
281
|
+
const columnInfo = this._columnsInfo?.[index];
|
248
282
|
if (!columnInfo) {
|
249
283
|
return "";
|
250
284
|
}
|
@@ -253,12 +287,9 @@ let TableRow = TableRow_1 = class TableRow extends UI5Element {
|
|
253
287
|
getNormilzedTextContent(textContent) {
|
254
288
|
return textContent.replace(/[\n\r\t]/g, "").trim();
|
255
289
|
}
|
256
|
-
static async onDefine() {
|
257
|
-
TableRow_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
|
258
|
-
}
|
259
290
|
};
|
260
291
|
__decorate([
|
261
|
-
property(
|
292
|
+
property()
|
262
293
|
], TableRow.prototype, "type", void 0);
|
263
294
|
__decorate([
|
264
295
|
property({ type: Boolean })
|
@@ -267,31 +298,34 @@ __decorate([
|
|
267
298
|
property({ type: Boolean })
|
268
299
|
], TableRow.prototype, "navigated", void 0);
|
269
300
|
__decorate([
|
270
|
-
property(
|
301
|
+
property()
|
271
302
|
], TableRow.prototype, "mode", void 0);
|
272
303
|
__decorate([
|
273
304
|
property({ type: Boolean })
|
274
305
|
], TableRow.prototype, "active", void 0);
|
275
306
|
__decorate([
|
276
|
-
property({ type:
|
307
|
+
property({ type: Array })
|
277
308
|
], TableRow.prototype, "_columnsInfo", void 0);
|
278
309
|
__decorate([
|
279
|
-
property(
|
310
|
+
property()
|
280
311
|
], TableRow.prototype, "forcedTabIndex", void 0);
|
281
312
|
__decorate([
|
282
313
|
property({ type: Boolean })
|
283
314
|
], TableRow.prototype, "forcedBusy", void 0);
|
284
315
|
__decorate([
|
285
|
-
property({
|
316
|
+
property({ noAttribute: true })
|
286
317
|
], TableRow.prototype, "forcedAriaPosition", void 0);
|
287
318
|
__decorate([
|
288
319
|
slot({ type: HTMLElement, "default": true, individualSlots: true })
|
289
320
|
], TableRow.prototype, "cells", void 0);
|
321
|
+
__decorate([
|
322
|
+
i18n("@ui5/webcomponents")
|
323
|
+
], TableRow, "i18nBundle", void 0);
|
290
324
|
TableRow = TableRow_1 = __decorate([
|
291
325
|
customElement({
|
292
326
|
tag: "ui5-table-row",
|
293
327
|
styles: tableRowStyles,
|
294
|
-
renderer:
|
328
|
+
renderer: jsxRenderer,
|
295
329
|
template: TableRowTemplate,
|
296
330
|
dependencies: [CheckBox],
|
297
331
|
})
|
@@ -301,22 +335,48 @@ 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);
|
321
381
|
TableRow.define();
|
322
382
|
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 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 \"./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\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\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, Fragment as _Fragment, jsxs as _jsxs } 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
|
+
_jsx(_Fragment, { children: this.visibleCells.map(cell => _jsx("slot", { name: cell._individualSlot })) })
|
7
|
+
:
|
8
|
+
_jsx(_Fragment, { children: 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
|