@ui5/webcomponents-compat 0.0.0-da0d3eb88 → 0.0.0-ebd9a4db3

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 (186) hide show
  1. package/CHANGELOG.md +597 -0
  2. package/README.md +1 -4
  3. package/cypress/specs/Table.cy.tsx +155 -0
  4. package/cypress/support/commands.ts +40 -0
  5. package/cypress/support/component-index.html +12 -0
  6. package/cypress/support/component.ts +17 -0
  7. package/cypress/tsconfig.json +47 -0
  8. package/cypress.config.js +3 -0
  9. package/dist/Table.d.ts +22 -27
  10. package/dist/Table.js +128 -76
  11. package/dist/Table.js.map +1 -1
  12. package/dist/TableCell.d.ts +0 -1
  13. package/dist/TableCell.js +21 -6
  14. package/dist/TableCell.js.map +1 -1
  15. package/dist/TableCellTemplate.d.ts +2 -0
  16. package/dist/TableCellTemplate.js +5 -0
  17. package/dist/TableCellTemplate.js.map +1 -0
  18. package/dist/TableColumn.d.ts +3 -3
  19. package/dist/TableColumn.js +47 -7
  20. package/dist/TableColumn.js.map +1 -1
  21. package/dist/TableColumnTemplate.d.ts +2 -0
  22. package/dist/TableColumnTemplate.js +5 -0
  23. package/dist/TableColumnTemplate.js.map +1 -0
  24. package/dist/TableGroupRow.d.ts +6 -4
  25. package/dist/TableGroupRow.js +26 -21
  26. package/dist/TableGroupRow.js.map +1 -1
  27. package/dist/TableGroupRowTemplate.d.ts +2 -0
  28. package/dist/TableGroupRowTemplate.js +5 -0
  29. package/dist/TableGroupRowTemplate.js.map +1 -0
  30. package/dist/TableRow.d.ts +14 -9
  31. package/dist/TableRow.js +101 -43
  32. package/dist/TableRow.js.map +1 -1
  33. package/dist/TableRowTemplate.d.ts +2 -0
  34. package/dist/TableRowTemplate.js +15 -0
  35. package/dist/TableRowTemplate.js.map +1 -0
  36. package/dist/TableTemplate.d.ts +2 -0
  37. package/dist/TableTemplate.js +20 -0
  38. package/dist/TableTemplate.js.map +1 -0
  39. package/dist/bundle.esm.d.ts +1 -1
  40. package/dist/bundle.esm.js +13 -7
  41. package/dist/bundle.esm.js.map +1 -1
  42. package/dist/bundle.scoped.config.d.ts +1 -0
  43. package/dist/bundle.scoped.config.js +5 -0
  44. package/dist/bundle.scoped.config.js.map +1 -0
  45. package/dist/bundle.scoped.esm.d.ts +1 -0
  46. package/dist/bundle.scoped.esm.js +1 -4
  47. package/dist/bundle.scoped.esm.js.map +1 -1
  48. package/dist/css/themes/GrowingButton.css +1 -1
  49. package/dist/css/themes/Table.css +1 -1
  50. package/dist/css/themes/TableCell.css +1 -1
  51. package/dist/css/themes/TableColumn.css +1 -1
  52. package/dist/css/themes/TableGroupRow.css +1 -1
  53. package/dist/css/themes/TableRow.css +1 -1
  54. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  55. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  56. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  57. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  58. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  59. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  60. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  61. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  62. package/dist/custom-elements-internal.json +62 -68
  63. package/dist/custom-elements.json +32 -32
  64. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  65. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  66. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  67. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  68. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  69. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  70. package/dist/generated/assets/i18n/messagebundle_id.json +1 -0
  71. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  72. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  73. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  74. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  75. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  76. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  77. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  78. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  79. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  80. package/dist/generated/i18n/i18n-defaults.d.ts +1 -1
  81. package/dist/generated/i18n/i18n-defaults.js +2 -3
  82. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  83. package/dist/generated/json-imports/Themes-fetch.d.ts +1 -0
  84. package/dist/generated/json-imports/Themes-fetch.js +25 -0
  85. package/dist/generated/json-imports/Themes-fetch.js.map +1 -0
  86. package/dist/generated/json-imports/Themes.js.map +1 -1
  87. package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
  88. package/dist/generated/json-imports/i18n-fetch.js +120 -0
  89. package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
  90. package/dist/generated/json-imports/i18n.js +2 -2
  91. package/dist/generated/json-imports/i18n.js.map +1 -1
  92. package/dist/generated/themes/GrowingButton.css.d.ts +2 -3
  93. package/dist/generated/themes/GrowingButton.css.js +2 -3
  94. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  95. package/dist/generated/themes/Table.css.d.ts +2 -3
  96. package/dist/generated/themes/Table.css.js +2 -3
  97. package/dist/generated/themes/Table.css.js.map +1 -1
  98. package/dist/generated/themes/TableCell.css.d.ts +2 -3
  99. package/dist/generated/themes/TableCell.css.js +2 -3
  100. package/dist/generated/themes/TableCell.css.js.map +1 -1
  101. package/dist/generated/themes/TableColumn.css.d.ts +2 -3
  102. package/dist/generated/themes/TableColumn.css.js +2 -3
  103. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  104. package/dist/generated/themes/TableGroupRow.css.d.ts +2 -3
  105. package/dist/generated/themes/TableGroupRow.css.js +2 -3
  106. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  107. package/dist/generated/themes/TableRow.css.d.ts +2 -3
  108. package/dist/generated/themes/TableRow.css.js +2 -3
  109. package/dist/generated/themes/TableRow.css.js.map +1 -1
  110. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +2 -3
  111. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +2 -3
  112. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  113. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +2 -3
  114. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +2 -3
  115. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  116. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +2 -3
  117. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +2 -3
  118. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  119. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +2 -3
  120. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +2 -3
  121. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  122. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +2 -3
  123. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +2 -3
  124. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  125. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +2 -3
  126. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +2 -3
  127. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  128. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +2 -3
  129. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +2 -3
  130. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  131. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +2 -3
  132. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +2 -3
  133. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  134. package/dist/tsconfig.tsbuildinfo +1 -0
  135. package/dist/web-types.json +11 -11
  136. package/package-scripts.cjs +4 -0
  137. package/package.json +11 -7
  138. package/src/TableCellTemplate.tsx +13 -0
  139. package/src/TableColumnTemplate.tsx +13 -0
  140. package/src/TableGroupRowTemplate.tsx +17 -0
  141. package/src/TableRowTemplate.tsx +92 -0
  142. package/src/TableTemplate.tsx +129 -0
  143. package/src/i18n/messagebundle_ca.properties +1 -1
  144. package/src/i18n/messagebundle_cy.properties +1 -1
  145. package/src/i18n/messagebundle_en_US_sappsd.properties +5 -296
  146. package/src/i18n/messagebundle_en_US_saptrc.properties +10 -301
  147. package/src/i18n/messagebundle_fr.properties +3 -3
  148. package/src/i18n/messagebundle_fr_CA.properties +3 -3
  149. package/src/i18n/messagebundle_lv.properties +1 -1
  150. package/src/themes/GrowingButton.css +12 -12
  151. package/src/themes/Table.css +15 -22
  152. package/src/themes/TableGroupRow.css +1 -1
  153. package/src/themes/TableRow.css +37 -2
  154. package/src/themes/base/Table-parameters.css +1 -0
  155. package/src/themes/base/sizes-parameters.css +0 -1
  156. package/src/themes/sap_horizon/Table-parameters.css +1 -2
  157. package/src/themes/sap_horizon/parameters-bundle.css +0 -1
  158. package/src/themes/sap_horizon_dark/Table-parameters.css +1 -2
  159. package/src/themes/sap_horizon_dark/parameters-bundle.css +0 -1
  160. package/src/themes/sap_horizon_hcb/Table-parameters.css +1 -2
  161. package/src/themes/sap_horizon_hcw/Table-parameters.css +1 -2
  162. package/tsconfig.json +34 -26
  163. package/dist/generated/assets/i18n/messagebundle_in.json +0 -1
  164. package/dist/generated/templates/TableCellTemplate.lit.d.ts +0 -4
  165. package/dist/generated/templates/TableCellTemplate.lit.js +0 -5
  166. package/dist/generated/templates/TableCellTemplate.lit.js.map +0 -1
  167. package/dist/generated/templates/TableColumnTemplate.lit.d.ts +0 -4
  168. package/dist/generated/templates/TableColumnTemplate.lit.js +0 -5
  169. package/dist/generated/templates/TableColumnTemplate.lit.js.map +0 -1
  170. package/dist/generated/templates/TableGroupRowTemplate.lit.d.ts +0 -4
  171. package/dist/generated/templates/TableGroupRowTemplate.lit.js +0 -5
  172. package/dist/generated/templates/TableGroupRowTemplate.lit.js.map +0 -1
  173. package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -4
  174. package/dist/generated/templates/TableRowTemplate.lit.js +0 -16
  175. package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
  176. package/dist/generated/templates/TableTemplate.lit.d.ts +0 -4
  177. package/dist/generated/templates/TableTemplate.lit.js +0 -15
  178. package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
  179. package/src/Table.hbs +0 -121
  180. package/src/TableCell.hbs +0 -7
  181. package/src/TableColumn.hbs +0 -7
  182. package/src/TableGroupRow.hbs +0 -11
  183. package/src/TableRow.hbs +0 -85
  184. package/src/i18n/messagebundle_in.properties +0 -172
  185. package/src/themes/sap_horizon/TableColumn-parameters.css +0 -5
  186. package/src/themes/sap_horizon_dark/TableColumn-parameters.css +0 -5
package/dist/Table.js CHANGED
@@ -8,29 +8,25 @@ var Table_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 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";
14
15
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
15
16
  import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
16
- import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
17
17
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
18
- import { isTabNext, isTabPrevious, isSpace, isEnter, isCtrlA, isUpAlt, isDownAlt, isUpShift, isDownShift, isHomeCtrl, isEndCtrl, isHomeShift, isEndShift, } from "@ui5/webcomponents-base/dist/Keys.js";
18
+ import { isTabNext, isTabPrevious, isSpace, isEnter, isDown, isCtrlA, isUpAlt, isDownAlt, isUpShift, isDownShift, isHomeCtrl, isEndCtrl, isHomeShift, isEndShift, } from "@ui5/webcomponents-base/dist/Keys.js";
19
19
  import getNormalizedTarget from "@ui5/webcomponents-base/dist/util/getNormalizedTarget.js";
20
20
  import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
21
21
  import { getLastTabbableElement, getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
22
- import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
23
- import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
22
+ import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
24
23
  import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
25
- import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
26
- import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
27
- import CheckBox from "@ui5/webcomponents/dist/CheckBox.js";
28
24
  import TableGrowingMode from "./types/TableGrowingMode.js";
29
25
  import TableMode from "./types/TableMode.js";
30
26
  // Texts
31
27
  import { LOAD_MORE_TEXT, ARIA_LABEL_SELECT_ALL_CHECKBOX, TABLE_HEADER_ROW_INFORMATION, TABLE_ROW_POSITION, } from "./generated/i18n/i18n-defaults.js";
32
28
  // Template
33
- import TableTemplate from "./generated/templates/TableTemplate.lit.js";
29
+ import TableTemplate from "./TableTemplate.js";
34
30
  // Styles
35
31
  import tableStyles from "./generated/themes/Table.css.js";
36
32
  const GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms
@@ -103,11 +99,91 @@ var TableFocusTargetElement;
103
99
  * @public
104
100
  */
105
101
  let Table = Table_1 = class Table extends UI5Element {
106
- static async onDefine() {
107
- Table_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
108
- }
109
102
  constructor() {
110
103
  super();
104
+ /**
105
+ * Defines if the value of `noDataText` will be diplayed when there is no rows present in the table.
106
+ * @default false
107
+ * @public
108
+ * @since 2.0.0
109
+ */
110
+ this.hideNoData = false;
111
+ /**
112
+ * Defines whether the table will have growing capability either by pressing a `More` button,
113
+ * or via user scroll. In both cases `load-more` event is fired.
114
+ *
115
+ * Available options:
116
+ *
117
+ * `Button` - Shows a `More` button at the bottom of the table, pressing of which triggers the `load-more` event.
118
+ *
119
+ * `Scroll` - The `load-more` event is triggered when the user scrolls to the bottom of the table;
120
+ *
121
+ * `None` (default) - The growing is off.
122
+ *
123
+ * **Restrictions:** `growing="Scroll"` is not supported for Internet Explorer,
124
+ * and the component will fallback to `growing="Button"`.
125
+ * @default "None"
126
+ * @since 2.0.0
127
+ * @public
128
+ */
129
+ this.growing = "None";
130
+ /**
131
+ * Defines if the table is in busy state.
132
+ *
133
+ * In this state the component's opacity is reduced
134
+ * and busy indicator is displayed at the bottom of the table.
135
+ * @default false
136
+ * @since 2.0.0
137
+ * @public
138
+ */
139
+ this.busy = false;
140
+ /**
141
+ * Defines the delay in milliseconds, after which the busy indicator will show up for this component.
142
+ * @default 1000
143
+ * @public
144
+ */
145
+ this.busyDelay = 1000;
146
+ /**
147
+ * Determines whether the column headers remain fixed at the top of the page during
148
+ * vertical scrolling as long as the Web Component is in the viewport.
149
+ *
150
+ * **Restrictions:**
151
+ *
152
+ * - Browsers that do not support this feature:
153
+ *
154
+ * - Internet Explorer
155
+ * - Microsoft Edge lower than version 41 (EdgeHTML 16)
156
+ * - Mozilla Firefox lower than version 59
157
+ *
158
+ * - Scrolling behavior:
159
+ *
160
+ * - If the Web Component is placed in layout containers that have the `overflow: hidden`
161
+ * or `overflow: auto` style definition, this can
162
+ * prevent the sticky elements of the Web Component from becoming fixed at the top of the viewport.
163
+ * @default false
164
+ * @public
165
+ */
166
+ this.stickyColumnHeader = false;
167
+ /**
168
+ * Defines the mode of the component.
169
+ * @default "None"
170
+ * @since 2.0.0
171
+ * @public
172
+ */
173
+ this.mode = "None";
174
+ this._noDataDisplayed = false;
175
+ /**
176
+ * Defines the active state of the `More` button.
177
+ * @private
178
+ */
179
+ this._loadMoreActive = false;
180
+ /**
181
+ * Defines whether all rows are selected or not when table is in MultiSelect mode.
182
+ * @default false
183
+ * @since 2.0.0
184
+ * @private
185
+ */
186
+ this._allRowsSelected = false;
111
187
  this.visibleColumns = []; // template loop should always have a defined array
112
188
  // The ItemNavigation requires each item to 1) have a "forcedTabIndex" property and 2) be either a UI5Element, or have an id property (to find it in the component's shadow DOM by)
113
189
  this._columnHeader = {
@@ -153,7 +229,7 @@ let Table = Table_1 = class Table extends UI5Element {
153
229
  row.mode = this.mode;
154
230
  });
155
231
  this.visibleColumns = this.columns.filter((column, index) => {
156
- return !this._hiddenColumns[index];
232
+ return !this._hiddenColumns?.[index];
157
233
  });
158
234
  this._noDataDisplayed = !this.rows.length && !this.hideNoData;
159
235
  this.visibleColumnsCount = this.visibleColumns.length;
@@ -168,7 +244,6 @@ let Table = Table_1 = class Table extends UI5Element {
168
244
  if (this.growsOnScroll) {
169
245
  this.observeTableEnd();
170
246
  }
171
- this.checkTableInViewport();
172
247
  }
173
248
  onEnterDOM() {
174
249
  this.growingIntersectionObserver = this.getIntersectionObserver();
@@ -277,7 +352,7 @@ let Table = Table_1 = class Table extends UI5Element {
277
352
  nextItem.focus();
278
353
  }
279
354
  const selectedRows = this.selectedRows;
280
- this.fireEvent("selection-change", {
355
+ this.fireDecoratorEvent("selection-change", {
281
356
  selectedRows,
282
357
  previouslySelectedRows,
283
358
  });
@@ -303,7 +378,7 @@ let Table = Table_1 = class Table extends UI5Element {
303
378
  rows[rows.length - 1].focus();
304
379
  }
305
380
  const selectedRows = this.selectedRows;
306
- this.fireEvent("selection-change", {
381
+ this.fireDecoratorEvent("selection-change", {
307
382
  selectedRows,
308
383
  previouslySelectedRows,
309
384
  });
@@ -450,6 +525,11 @@ let Table = Table_1 = class Table extends UI5Element {
450
525
  onRowFocused(e) {
451
526
  this._itemNavigation.setCurrentItem(e.target);
452
527
  }
528
+ onRowKeyDown(e) {
529
+ if (this.growing === "Scroll" && isDown(e) && this.currentItemIdx === this.rows.length - 1) {
530
+ debounce(this.loadMore.bind(this), GROWING_WITH_SCROLL_DEBOUNCE_RATE);
531
+ }
532
+ }
453
533
  _onColumnHeaderFocused() {
454
534
  this._itemNavigation.setCurrentItem(this._columnHeader);
455
535
  }
@@ -485,8 +565,14 @@ let Table = Table_1 = class Table extends UI5Element {
485
565
  }
486
566
  this._loadMoreActive = false;
487
567
  }
568
+ onInvalidation(change) {
569
+ if (change.type === "property" && change.name === "growing") {
570
+ this.tableEndObserved = false;
571
+ this.getIntersectionObserver().disconnect();
572
+ }
573
+ }
488
574
  _onLoadMoreClick() {
489
- this.fireEvent("load-more");
575
+ this.fireDecoratorEvent("load-more");
490
576
  }
491
577
  observeTableEnd() {
492
578
  if (!this.tableEndObserved) {
@@ -504,7 +590,7 @@ let Table = Table_1 = class Table extends UI5Element {
504
590
  }
505
591
  }
506
592
  loadMore() {
507
- this.fireEvent("load-more");
593
+ this.fireDecoratorEvent("load-more");
508
594
  }
509
595
  _handleSingleSelect(e) {
510
596
  const row = this.getRowParent(e.target);
@@ -519,7 +605,7 @@ let Table = Table_1 = class Table extends UI5Element {
519
605
  }
520
606
  });
521
607
  row.selected = true;
522
- this.fireEvent("selection-change", {
608
+ this.fireDecoratorEvent("selection-change", {
523
609
  selectedRows: [row],
524
610
  previouslySelectedRows,
525
611
  });
@@ -539,7 +625,7 @@ let Table = Table_1 = class Table extends UI5Element {
539
625
  else {
540
626
  this._allRowsSelected = false;
541
627
  }
542
- this.fireEvent("selection-change", {
628
+ this.fireDecoratorEvent("selection-change", {
543
629
  selectedRows,
544
630
  previouslySelectedRows,
545
631
  });
@@ -561,7 +647,7 @@ let Table = Table_1 = class Table extends UI5Element {
561
647
  row.selected = bAllSelected;
562
648
  });
563
649
  const selectedRows = bAllSelected ? this.rows : [];
564
- this.fireEvent("selection-change", {
650
+ this.fireDecoratorEvent("selection-change", {
565
651
  selectedRows,
566
652
  previouslySelectedRows,
567
653
  });
@@ -591,12 +677,8 @@ let Table = Table_1 = class Table extends UI5Element {
591
677
  return null;
592
678
  }
593
679
  handleResize() {
594
- this.checkTableInViewport();
595
680
  this.popinContent();
596
681
  }
597
- checkTableInViewport() {
598
- this._inViewport = isElementInView(this.getDomRef());
599
- }
600
682
  popinContent() {
601
683
  const clientRect = this.getDomRef().getBoundingClientRect();
602
684
  const tableWidth = clientRect.width;
@@ -621,12 +703,12 @@ let Table = Table_1 = class Table extends UI5Element {
621
703
  }
622
704
  this.columns[visibleColumnsIndexes[visibleColumnsIndexes.length - 1]].last = true;
623
705
  }
624
- const hiddenColumnsChange = (this._hiddenColumns.length !== hiddenColumns.length) || this._hiddenColumns.some((column, index) => column !== hiddenColumns[index]);
706
+ const hiddenColumnsChange = (this._hiddenColumns?.length !== hiddenColumns.length) || this._hiddenColumns?.some((column, index) => column !== hiddenColumns[index]);
625
707
  const shownColumnsChange = hiddenColumns.length === 0;
626
708
  // invalidate if hidden columns count has changed or columns are shown
627
709
  if (hiddenColumnsChange || shownColumnsChange) {
628
710
  this._hiddenColumns = hiddenColumns;
629
- this.fireEvent("popin-change", {
711
+ this.fireDecoratorEvent("popin-change", {
630
712
  poppedColumns: this._hiddenColumns,
631
713
  });
632
714
  }
@@ -643,7 +725,7 @@ let Table = Table_1 = class Table extends UI5Element {
643
725
  text: column.textContent,
644
726
  popinText: column.popinText,
645
727
  popinDisplay: column.popinDisplay,
646
- visible: !this._hiddenColumns[index],
728
+ visible: !this._hiddenColumns?.[index],
647
729
  };
648
730
  }, this);
649
731
  }
@@ -657,13 +739,6 @@ let Table = Table_1 = class Table extends UI5Element {
657
739
  }
658
740
  return this.growingIntersectionObserver;
659
741
  }
660
- get styles() {
661
- return {
662
- busy: {
663
- position: this.busyIndPosition,
664
- },
665
- };
666
- }
667
742
  get growsWithButton() {
668
743
  return this.growing === TableGrowingMode.Button;
669
744
  }
@@ -688,7 +763,7 @@ let Table = Table_1 = class Table extends UI5Element {
688
763
  return Table_1.i18nBundle.getText(ARIA_LABEL_SELECT_ALL_CHECKBOX);
689
764
  }
690
765
  get loadMoreAriaLabelledBy() {
691
- if (this.moreDataText) {
766
+ if (this.growingButtonSubtext) {
692
767
  return `${this._id}-growingButton-text ${this._id}-growingButton-subtext`;
693
768
  }
694
769
  return `${this._id}-growingButton-text`;
@@ -696,9 +771,6 @@ let Table = Table_1 = class Table extends UI5Element {
696
771
  get tableEndDOM() {
697
772
  return this.shadowRoot.querySelector(".ui5-table-end-marker");
698
773
  }
699
- get busyIndPosition() {
700
- return this._inViewport ? "absolute" : "sticky";
701
- }
702
774
  get isMultiSelect() {
703
775
  return this.mode === TableMode.MultiSelect;
704
776
  }
@@ -737,28 +809,28 @@ __decorate([
737
809
  property({ type: Boolean })
738
810
  ], Table.prototype, "hideNoData", void 0);
739
811
  __decorate([
740
- property({ type: TableGrowingMode, defaultValue: TableGrowingMode.None })
812
+ property()
741
813
  ], Table.prototype, "growing", void 0);
742
814
  __decorate([
743
815
  property({ type: Boolean })
744
816
  ], Table.prototype, "busy", void 0);
745
817
  __decorate([
746
- property({ validator: Integer, defaultValue: 1000 })
818
+ property({ type: Number })
747
819
  ], Table.prototype, "busyDelay", void 0);
748
820
  __decorate([
749
821
  property({ type: Boolean })
750
822
  ], Table.prototype, "stickyColumnHeader", void 0);
751
823
  __decorate([
752
- property({ type: TableMode, defaultValue: TableMode.None })
824
+ property()
753
825
  ], Table.prototype, "mode", void 0);
754
826
  __decorate([
755
- property({ defaultValue: undefined })
827
+ property()
756
828
  ], Table.prototype, "accessibleName", void 0);
757
829
  __decorate([
758
- property({ defaultValue: "" })
830
+ property()
759
831
  ], Table.prototype, "accessibleNameRef", void 0);
760
832
  __decorate([
761
- property({ type: Object, multiple: true })
833
+ property({ type: Array })
762
834
  ], Table.prototype, "_hiddenColumns", void 0);
763
835
  __decorate([
764
836
  property({ type: Boolean })
@@ -769,9 +841,6 @@ __decorate([
769
841
  __decorate([
770
842
  property({ type: Object })
771
843
  ], Table.prototype, "_columnHeader", void 0);
772
- __decorate([
773
- property({ type: Boolean })
774
- ], Table.prototype, "_inViewport", void 0);
775
844
  __decorate([
776
845
  property({ type: Boolean })
777
846
  ], Table.prototype, "_allRowsSelected", void 0);
@@ -793,14 +862,16 @@ __decorate([
793
862
  },
794
863
  })
795
864
  ], Table.prototype, "columns", void 0);
865
+ __decorate([
866
+ i18n("@ui5/webcomponents")
867
+ ], Table, "i18nBundle", void 0);
796
868
  Table = Table_1 = __decorate([
797
869
  customElement({
798
870
  tag: "ui5-table",
799
871
  fastNavigation: true,
800
872
  styles: tableStyles,
801
- renderer: litRender,
873
+ renderer: jsxRenderer,
802
874
  template: TableTemplate,
803
- dependencies: [BusyIndicator, CheckBox],
804
875
  })
805
876
  /** Fired when a row in `Active` mode is clicked or `Enter` key is pressed.
806
877
  * @param {HTMLElement} row the activated row.
@@ -808,12 +879,7 @@ Table = Table_1 = __decorate([
808
879
  */
809
880
  ,
810
881
  event("row-click", {
811
- detail: {
812
- /**
813
- * @public
814
- */
815
- row: { type: HTMLElement },
816
- },
882
+ bubbles: true,
817
883
  })
818
884
  /**
819
885
  * Fired when `ui5-table-column` is shown as a pop-in instead of hiding it.
@@ -823,14 +889,7 @@ Table = Table_1 = __decorate([
823
889
  */
824
890
  ,
825
891
  event("popin-change", {
826
- detail: {
827
- /**
828
- * @public
829
- */
830
- poppedColumns: {
831
- type: Array,
832
- },
833
- },
892
+ bubbles: true,
834
893
  })
835
894
  /**
836
895
  * Fired when the user presses the `More` button or scrolls to the table's end.
@@ -840,7 +899,9 @@ Table = Table_1 = __decorate([
840
899
  * @since 2.0.0
841
900
  */
842
901
  ,
843
- event("load-more")
902
+ event("load-more", {
903
+ bubbles: true,
904
+ })
844
905
  /**
845
906
  * Fired when selection is changed by user interaction
846
907
  * in `SingleSelect` and `MultiSelect` modes.
@@ -851,16 +912,7 @@ Table = Table_1 = __decorate([
851
912
  */
852
913
  ,
853
914
  event("selection-change", {
854
- detail: {
855
- /**
856
- * @public
857
- */
858
- selectedRows: { type: Array },
859
- /**
860
- * @public
861
- */
862
- previouslySelectedRows: { type: Array },
863
- },
915
+ bubbles: true,
864
916
  })
865
917
  ], Table);
866
918
  Table.define();