@ui5/webcomponents-compat 0.0.0-7c7170d4a → 0.0.0-8ae0ba6fc

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.
Files changed (177) hide show
  1. package/CHANGELOG.md +503 -0
  2. package/README.md +1 -4
  3. package/dist/Table.d.ts +21 -27
  4. package/dist/Table.js +122 -75
  5. package/dist/Table.js.map +1 -1
  6. package/dist/TableCell.d.ts +0 -1
  7. package/dist/TableCell.js +21 -6
  8. package/dist/TableCell.js.map +1 -1
  9. package/dist/TableCellTemplate.d.ts +2 -0
  10. package/dist/TableCellTemplate.js +5 -0
  11. package/dist/TableCellTemplate.js.map +1 -0
  12. package/dist/TableColumn.d.ts +3 -3
  13. package/dist/TableColumn.js +47 -7
  14. package/dist/TableColumn.js.map +1 -1
  15. package/dist/TableColumnTemplate.d.ts +2 -0
  16. package/dist/TableColumnTemplate.js +5 -0
  17. package/dist/TableColumnTemplate.js.map +1 -0
  18. package/dist/TableGroupRow.d.ts +6 -4
  19. package/dist/TableGroupRow.js +26 -21
  20. package/dist/TableGroupRow.js.map +1 -1
  21. package/dist/TableGroupRowTemplate.d.ts +2 -0
  22. package/dist/TableGroupRowTemplate.js +5 -0
  23. package/dist/TableGroupRowTemplate.js.map +1 -0
  24. package/dist/TableRow.d.ts +14 -9
  25. package/dist/TableRow.js +101 -43
  26. package/dist/TableRow.js.map +1 -1
  27. package/dist/TableRowTemplate.d.ts +2 -0
  28. package/dist/TableRowTemplate.js +15 -0
  29. package/dist/TableRowTemplate.js.map +1 -0
  30. package/dist/TableTemplate.d.ts +2 -0
  31. package/dist/TableTemplate.js +20 -0
  32. package/dist/TableTemplate.js.map +1 -0
  33. package/dist/bundle.esm.d.ts +1 -1
  34. package/dist/bundle.esm.js +13 -7
  35. package/dist/bundle.esm.js.map +1 -1
  36. package/dist/bundle.scoped.config.d.ts +1 -0
  37. package/dist/bundle.scoped.config.js +5 -0
  38. package/dist/bundle.scoped.config.js.map +1 -0
  39. package/dist/bundle.scoped.esm.d.ts +1 -0
  40. package/dist/bundle.scoped.esm.js +1 -4
  41. package/dist/bundle.scoped.esm.js.map +1 -1
  42. package/dist/css/themes/GrowingButton.css +1 -1
  43. package/dist/css/themes/Table.css +1 -1
  44. package/dist/css/themes/TableCell.css +1 -1
  45. package/dist/css/themes/TableColumn.css +1 -1
  46. package/dist/css/themes/TableGroupRow.css +1 -1
  47. package/dist/css/themes/TableRow.css +1 -1
  48. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  49. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  50. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  51. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  52. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  53. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  54. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  55. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  56. package/dist/custom-elements-internal.json +62 -68
  57. package/dist/custom-elements.json +32 -32
  58. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  59. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  60. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  61. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  62. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  63. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  64. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  65. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  66. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  67. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  68. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  69. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  70. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  71. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  72. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  73. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  74. package/dist/generated/i18n/i18n-defaults.d.ts +1 -1
  75. package/dist/generated/i18n/i18n-defaults.js +2 -3
  76. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  77. package/dist/generated/json-imports/Themes-fetch.d.ts +1 -0
  78. package/dist/generated/json-imports/Themes-fetch.js +25 -0
  79. package/dist/generated/json-imports/Themes-fetch.js.map +1 -0
  80. package/dist/generated/json-imports/Themes.js.map +1 -1
  81. package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
  82. package/dist/generated/json-imports/i18n-fetch.js +120 -0
  83. package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
  84. package/dist/generated/json-imports/i18n.js.map +1 -1
  85. package/dist/generated/themes/GrowingButton.css.d.ts +2 -3
  86. package/dist/generated/themes/GrowingButton.css.js +2 -3
  87. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  88. package/dist/generated/themes/Table.css.d.ts +2 -3
  89. package/dist/generated/themes/Table.css.js +2 -3
  90. package/dist/generated/themes/Table.css.js.map +1 -1
  91. package/dist/generated/themes/TableCell.css.d.ts +2 -3
  92. package/dist/generated/themes/TableCell.css.js +2 -3
  93. package/dist/generated/themes/TableCell.css.js.map +1 -1
  94. package/dist/generated/themes/TableColumn.css.d.ts +2 -3
  95. package/dist/generated/themes/TableColumn.css.js +2 -3
  96. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  97. package/dist/generated/themes/TableGroupRow.css.d.ts +2 -3
  98. package/dist/generated/themes/TableGroupRow.css.js +2 -3
  99. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  100. package/dist/generated/themes/TableRow.css.d.ts +2 -3
  101. package/dist/generated/themes/TableRow.css.js +2 -3
  102. package/dist/generated/themes/TableRow.css.js.map +1 -1
  103. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +2 -3
  104. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +2 -3
  105. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  106. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +2 -3
  107. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +2 -3
  108. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  109. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +2 -3
  110. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +2 -3
  111. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  112. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +2 -3
  113. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +2 -3
  114. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  115. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +2 -3
  116. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +2 -3
  117. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  118. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +2 -3
  119. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +2 -3
  120. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  121. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +2 -3
  122. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +2 -3
  123. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  124. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +2 -3
  125. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +2 -3
  126. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  127. package/dist/tsconfig.tsbuildinfo +1 -0
  128. package/dist/web-types.json +11 -11
  129. package/package.json +7 -7
  130. package/src/TableCellTemplate.tsx +13 -0
  131. package/src/TableColumnTemplate.tsx +13 -0
  132. package/src/TableGroupRowTemplate.tsx +17 -0
  133. package/src/TableRowTemplate.tsx +92 -0
  134. package/src/TableTemplate.tsx +129 -0
  135. package/src/i18n/messagebundle_ca.properties +1 -1
  136. package/src/i18n/messagebundle_cs.properties +1 -1
  137. package/src/i18n/messagebundle_cy.properties +1 -1
  138. package/src/i18n/messagebundle_en_US_sappsd.properties +5 -296
  139. package/src/i18n/messagebundle_en_US_saptrc.properties +10 -301
  140. package/src/i18n/messagebundle_fr.properties +3 -3
  141. package/src/i18n/messagebundle_fr_CA.properties +3 -3
  142. package/src/i18n/messagebundle_lv.properties +1 -1
  143. package/src/themes/GrowingButton.css +12 -12
  144. package/src/themes/Table.css +15 -22
  145. package/src/themes/TableGroupRow.css +1 -1
  146. package/src/themes/TableRow.css +37 -2
  147. package/src/themes/base/Table-parameters.css +1 -0
  148. package/src/themes/base/sizes-parameters.css +0 -1
  149. package/src/themes/sap_horizon/Table-parameters.css +1 -2
  150. package/src/themes/sap_horizon/parameters-bundle.css +0 -1
  151. package/src/themes/sap_horizon_dark/Table-parameters.css +1 -2
  152. package/src/themes/sap_horizon_dark/parameters-bundle.css +0 -1
  153. package/src/themes/sap_horizon_hcb/Table-parameters.css +1 -2
  154. package/src/themes/sap_horizon_hcw/Table-parameters.css +1 -2
  155. package/tsconfig.json +34 -26
  156. package/dist/generated/templates/TableCellTemplate.lit.d.ts +0 -4
  157. package/dist/generated/templates/TableCellTemplate.lit.js +0 -5
  158. package/dist/generated/templates/TableCellTemplate.lit.js.map +0 -1
  159. package/dist/generated/templates/TableColumnTemplate.lit.d.ts +0 -4
  160. package/dist/generated/templates/TableColumnTemplate.lit.js +0 -5
  161. package/dist/generated/templates/TableColumnTemplate.lit.js.map +0 -1
  162. package/dist/generated/templates/TableGroupRowTemplate.lit.d.ts +0 -4
  163. package/dist/generated/templates/TableGroupRowTemplate.lit.js +0 -5
  164. package/dist/generated/templates/TableGroupRowTemplate.lit.js.map +0 -1
  165. package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -4
  166. package/dist/generated/templates/TableRowTemplate.lit.js +0 -16
  167. package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
  168. package/dist/generated/templates/TableTemplate.lit.d.ts +0 -4
  169. package/dist/generated/templates/TableTemplate.lit.js +0 -15
  170. package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
  171. package/src/Table.hbs +0 -121
  172. package/src/TableCell.hbs +0 -7
  173. package/src/TableColumn.hbs +0 -7
  174. package/src/TableGroupRow.hbs +0 -11
  175. package/src/TableRow.hbs +0 -85
  176. package/src/themes/sap_horizon/TableColumn-parameters.css +0 -5
  177. package/src/themes/sap_horizon_dark/TableColumn-parameters.css +0 -5
@@ -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 litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
13
- import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
14
- import CheckBox from "@ui5/webcomponents/dist/CheckBox.js";
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.innerText}. ${this.forcedAriaPosition}`;
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.reduce((acc, column) => {
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.fireEvent("_focused", e);
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({ type: TableMode, defaultValue: TableMode.None })
77
+ property()
75
78
  ], TableGroupRow.prototype, "mode", void 0);
76
79
  __decorate([
77
- property({ type: Object, multiple: true })
80
+ property({ type: Array })
78
81
  ], TableGroupRow.prototype, "_columnsInfo", void 0);
79
82
  __decorate([
80
- property({ defaultValue: "-1" })
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({ defaultValue: "", noAttribute: true })
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: litRender,
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":"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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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } 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 \"./generated/templates/TableGroupRowTemplate.lit.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: litRender,\n\ttemplate: TableGroupRowTemplate,\n\tdependencies: [\n\t\tCheckBox,\n\t],\n})\n@event(\"_focused\")\nclass TableGroupRow extends UI5Element implements ITableRow {\n\t/**\n\t * Defines the mode of the row\n\t * @default \"None\"\n\t * @private\n\t */\n\t@property({ type: TableMode, defaultValue: TableMode.None })\n\tmode!: `${TableMode}`;\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// Properties, set and handled by the Table\n\tselected = false;\n\ttabbableElements: Array<HTMLElement> = [];\n\t_columnsInfoString = \"\";\n\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.innerText}. ${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);\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.fireEvent(\"_focused\", e);\n\t}\n\n\tstatic async onDefine() {\n\t\tTableGroupRow.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nTableGroupRow.define();\n\nexport default TableGroupRow;\n"]}
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,2 @@
1
+ import type TableGroupRow from "./TableGroupRow.js";
2
+ export default function TableGroupRowTemplate(this: TableGroupRow): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -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"]}
@@ -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: Array<TableColumnInfo>;
76
- forcedTabIndex: string;
82
+ _columnsInfo?: Array<TableColumnInfo>;
83
+ forcedTabIndex?: string;
77
84
  forcedBusy: boolean;
78
- forcedAriaPosition: string;
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
- constructor();
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(): number;
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 { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
14
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
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 "./generated/templates/TableRowTemplate.lit.js";
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
- const handleToushStartEvent = () => {
49
- this.activate();
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.fireEvent("_forward-after", { target: activeElement });
104
+ this.fireDecoratorEvent("forward-after", { target: activeElement });
72
105
  }
73
106
  if (isTabPrevious(e) && activeElement === this.root) {
74
- this.fireEvent("_forward-before", { target: activeElement });
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.fireEvent("selection-requested", { row: this });
114
+ this.fireDecoratorEvent("selection-requested", { row: this });
82
115
  }
83
116
  if (isEnter(e) && itemActive) {
84
- this.fireEvent("row-click", { row: 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.fireEvent("f7-pressed", { row: 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.fireEvent("_focused");
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 (getEventMark(e) === "button") {
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.fireEvent("row-click", { row: this });
168
+ this.fireDecoratorEvent("row-click", { row: this });
136
169
  }
137
170
  }
138
171
  }
139
172
  _handleSelection() {
140
- this.fireEvent("selection-requested", { row: 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.filter(el => {
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.every(el => el.demandPopin && !el.visible);
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.forEach((info, index) => {
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({ type: TableRowType, defaultValue: TableRowType.Inactive })
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({ type: TableMode, defaultValue: TableMode.None })
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: Object, multiple: true })
306
+ property({ type: Array })
277
307
  ], TableRow.prototype, "_columnsInfo", void 0);
278
308
  __decorate([
279
- property({ defaultValue: "-1" })
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({ defaultValue: "", noAttribute: true })
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: litRender,
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
- event("_focused")
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;
@@ -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,2 @@
1
+ import type TableRow from "./TableRow.js";
2
+ export default function TableRowTemplate(this: TableRow): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -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