@ui5/webcomponents-compat 0.0.0-0dd36ca4b → 0.0.0-2c875c3d3

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 (208) hide show
  1. package/.env.testing +4 -0
  2. package/CHANGELOG.md +899 -0
  3. package/LICENSE.txt +201 -0
  4. package/README.md +12 -12
  5. package/cypress.config.js +3 -0
  6. package/dist/.tsbuildinfo +1 -0
  7. package/dist/Assets-fetch.d.ts +3 -0
  8. package/dist/Assets-fetch.js +6 -0
  9. package/dist/Assets-fetch.js.map +1 -0
  10. package/dist/Assets-node.d.ts +14 -0
  11. package/dist/Assets-node.js +17 -0
  12. package/dist/Assets-node.js.map +1 -0
  13. package/dist/Table.d.ts +23 -27
  14. package/dist/Table.js +131 -76
  15. package/dist/Table.js.map +1 -1
  16. package/dist/TableCell.d.ts +1 -1
  17. package/dist/TableCell.js +24 -6
  18. package/dist/TableCell.js.map +1 -1
  19. package/dist/TableCellTemplate.d.ts +2 -0
  20. package/dist/TableCellTemplate.js +5 -0
  21. package/dist/TableCellTemplate.js.map +1 -0
  22. package/dist/TableColumn.d.ts +4 -3
  23. package/dist/TableColumn.js +50 -7
  24. package/dist/TableColumn.js.map +1 -1
  25. package/dist/TableColumnTemplate.d.ts +2 -0
  26. package/dist/TableColumnTemplate.js +5 -0
  27. package/dist/TableColumnTemplate.js.map +1 -0
  28. package/dist/TableGroupRow.d.ts +7 -4
  29. package/dist/TableGroupRow.js +29 -21
  30. package/dist/TableGroupRow.js.map +1 -1
  31. package/dist/TableGroupRowTemplate.d.ts +2 -0
  32. package/dist/TableGroupRowTemplate.js +5 -0
  33. package/dist/TableGroupRowTemplate.js.map +1 -0
  34. package/dist/TableRow.d.ts +15 -9
  35. package/dist/TableRow.js +104 -43
  36. package/dist/TableRow.js.map +1 -1
  37. package/dist/TableRowTemplate.d.ts +2 -0
  38. package/dist/TableRowTemplate.js +15 -0
  39. package/dist/TableRowTemplate.js.map +1 -0
  40. package/dist/TableTemplate.d.ts +2 -0
  41. package/dist/TableTemplate.js +20 -0
  42. package/dist/TableTemplate.js.map +1 -0
  43. package/dist/bundle.esm.d.ts +1 -1
  44. package/dist/bundle.esm.js +13 -7
  45. package/dist/bundle.esm.js.map +1 -1
  46. package/dist/bundle.scoped.config.d.ts +1 -0
  47. package/dist/bundle.scoped.config.js +5 -0
  48. package/dist/bundle.scoped.config.js.map +1 -0
  49. package/dist/bundle.scoped.esm.d.ts +1 -0
  50. package/dist/bundle.scoped.esm.js +1 -4
  51. package/dist/bundle.scoped.esm.js.map +1 -1
  52. package/dist/css/themes/GrowingButton.css +1 -1
  53. package/dist/css/themes/Table.css +1 -1
  54. package/dist/css/themes/TableCell.css +1 -1
  55. package/dist/css/themes/TableColumn.css +1 -1
  56. package/dist/css/themes/TableGroupRow.css +1 -1
  57. package/dist/css/themes/TableRow.css +1 -1
  58. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  59. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  60. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  61. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  62. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  63. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  64. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  65. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  66. package/dist/custom-elements-internal.json +265 -248
  67. package/dist/custom-elements.json +107 -84
  68. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  69. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  70. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  71. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  72. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  73. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  74. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  75. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  76. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  77. package/dist/generated/assets/i18n/messagebundle_id.json +1 -0
  78. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  79. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  80. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  81. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  82. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  83. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  84. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  85. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  86. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  87. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  88. package/dist/generated/i18n/i18n-defaults.d.ts +1 -1
  89. package/dist/generated/i18n/i18n-defaults.js +2 -3
  90. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  91. package/dist/generated/json-imports/Themes-fetch.d.ts +1 -0
  92. package/dist/generated/json-imports/Themes-fetch.js +25 -0
  93. package/dist/generated/json-imports/Themes-fetch.js.map +1 -0
  94. package/dist/generated/json-imports/Themes-node.d.ts +1 -0
  95. package/dist/generated/json-imports/Themes-node.js +25 -0
  96. package/dist/generated/json-imports/Themes-node.js.map +1 -0
  97. package/dist/generated/json-imports/Themes.js +1 -1
  98. package/dist/generated/json-imports/Themes.js.map +1 -1
  99. package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
  100. package/dist/generated/json-imports/i18n-fetch.js +120 -0
  101. package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
  102. package/dist/generated/json-imports/i18n-node.d.ts +1 -0
  103. package/dist/generated/json-imports/i18n-node.js +120 -0
  104. package/dist/generated/json-imports/i18n-node.js.map +1 -0
  105. package/dist/generated/json-imports/i18n.js +3 -3
  106. package/dist/generated/json-imports/i18n.js.map +1 -1
  107. package/dist/generated/themes/GrowingButton.css.d.ts +2 -3
  108. package/dist/generated/themes/GrowingButton.css.js +4 -5
  109. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  110. package/dist/generated/themes/Table.css.d.ts +2 -3
  111. package/dist/generated/themes/Table.css.js +4 -5
  112. package/dist/generated/themes/Table.css.js.map +1 -1
  113. package/dist/generated/themes/TableCell.css.d.ts +2 -3
  114. package/dist/generated/themes/TableCell.css.js +4 -5
  115. package/dist/generated/themes/TableCell.css.js.map +1 -1
  116. package/dist/generated/themes/TableColumn.css.d.ts +2 -3
  117. package/dist/generated/themes/TableColumn.css.js +4 -5
  118. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  119. package/dist/generated/themes/TableGroupRow.css.d.ts +2 -3
  120. package/dist/generated/themes/TableGroupRow.css.js +4 -5
  121. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  122. package/dist/generated/themes/TableRow.css.d.ts +2 -3
  123. package/dist/generated/themes/TableRow.css.js +4 -5
  124. package/dist/generated/themes/TableRow.css.js.map +1 -1
  125. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +2 -3
  126. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +2 -3
  127. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  128. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +2 -3
  129. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +2 -3
  130. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  131. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +2 -3
  132. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +2 -3
  133. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  134. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +2 -3
  135. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +2 -3
  136. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  137. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +2 -3
  138. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +2 -3
  139. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  140. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +2 -3
  141. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +2 -3
  142. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  143. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +2 -3
  144. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +2 -3
  145. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  146. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +2 -3
  147. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +2 -3
  148. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  149. package/dist/utils/CompatCustomElementsScope.d.ts +5 -0
  150. package/dist/utils/CompatCustomElementsScope.js +38 -0
  151. package/dist/utils/CompatCustomElementsScope.js.map +1 -0
  152. package/dist/web-types.json +16 -16
  153. package/package-scripts.cjs +3 -0
  154. package/package.json +25 -18
  155. package/src/TableCellTemplate.tsx +13 -0
  156. package/src/TableColumnTemplate.tsx +13 -0
  157. package/src/TableGroupRowTemplate.tsx +17 -0
  158. package/src/TableRowTemplate.tsx +92 -0
  159. package/src/TableTemplate.tsx +129 -0
  160. package/src/i18n/messagebundle_ca.properties +1 -1
  161. package/src/i18n/messagebundle_cs.properties +1 -1
  162. package/src/i18n/messagebundle_cy.properties +1 -1
  163. package/src/i18n/messagebundle_en_US_sappsd.properties +5 -296
  164. package/src/i18n/messagebundle_en_US_saptrc.properties +10 -301
  165. package/src/i18n/messagebundle_fi.properties +2 -2
  166. package/src/i18n/messagebundle_fr.properties +3 -3
  167. package/src/i18n/messagebundle_fr_CA.properties +3 -3
  168. package/src/i18n/messagebundle_hr.properties +1 -1
  169. package/src/i18n/messagebundle_it.properties +1 -1
  170. package/src/i18n/messagebundle_lv.properties +1 -1
  171. package/src/themes/GrowingButton.css +13 -13
  172. package/src/themes/Table.css +17 -24
  173. package/src/themes/TableCell.css +1 -1
  174. package/src/themes/TableGroupRow.css +2 -2
  175. package/src/themes/TableRow.css +38 -3
  176. package/src/themes/base/Table-parameters.css +1 -0
  177. package/src/themes/base/sizes-parameters.css +0 -1
  178. package/src/themes/sap_horizon/Table-parameters.css +1 -2
  179. package/src/themes/sap_horizon/parameters-bundle.css +0 -1
  180. package/src/themes/sap_horizon_dark/Table-parameters.css +1 -2
  181. package/src/themes/sap_horizon_dark/parameters-bundle.css +0 -1
  182. package/src/themes/sap_horizon_hcb/Table-parameters.css +1 -2
  183. package/src/themes/sap_horizon_hcw/Table-parameters.css +1 -2
  184. package/tsconfig.json +61 -26
  185. package/dist/generated/assets/i18n/messagebundle_in.json +0 -1
  186. package/dist/generated/templates/TableCellTemplate.lit.d.ts +0 -4
  187. package/dist/generated/templates/TableCellTemplate.lit.js +0 -5
  188. package/dist/generated/templates/TableCellTemplate.lit.js.map +0 -1
  189. package/dist/generated/templates/TableColumnTemplate.lit.d.ts +0 -4
  190. package/dist/generated/templates/TableColumnTemplate.lit.js +0 -5
  191. package/dist/generated/templates/TableColumnTemplate.lit.js.map +0 -1
  192. package/dist/generated/templates/TableGroupRowTemplate.lit.d.ts +0 -4
  193. package/dist/generated/templates/TableGroupRowTemplate.lit.js +0 -5
  194. package/dist/generated/templates/TableGroupRowTemplate.lit.js.map +0 -1
  195. package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -4
  196. package/dist/generated/templates/TableRowTemplate.lit.js +0 -16
  197. package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
  198. package/dist/generated/templates/TableTemplate.lit.d.ts +0 -4
  199. package/dist/generated/templates/TableTemplate.lit.js +0 -15
  200. package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
  201. package/src/Table.hbs +0 -121
  202. package/src/TableCell.hbs +0 -7
  203. package/src/TableColumn.hbs +0 -7
  204. package/src/TableGroupRow.hbs +0 -11
  205. package/src/TableRow.hbs +0 -85
  206. package/src/i18n/messagebundle_in.properties +0 -172
  207. package/src/themes/sap_horizon/TableColumn-parameters.css +0 -5
  208. package/src/themes/sap_horizon_dark/TableColumn-parameters.css +0 -5
package/dist/Table.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { ChangeInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
3
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
3
4
  import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
4
5
  import type { ITabbable } from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
@@ -13,13 +14,13 @@ import TableMode from "./types/TableMode.js";
13
14
  * Interface for components that may be slotted inside a `ui5-table` as rows
14
15
  * @public
15
16
  */
16
- interface ITableRow extends HTMLElement, ITabbable {
17
+ interface ITableRow extends UI5Element, ITabbable {
17
18
  mode: `${TableMode}`;
18
19
  selected: boolean;
19
20
  forcedBusy: boolean;
20
- forcedAriaPosition: string;
21
+ forcedAriaPosition?: string;
21
22
  _columnsInfoString: string;
22
- _columnsInfo: Array<TableColumnInfo>;
23
+ _columnsInfo?: Array<TableColumnInfo>;
23
24
  tabbableElements: Array<HTMLElement>;
24
25
  }
25
26
  type TableColumnInfo = {
@@ -107,14 +108,21 @@ declare enum TableFocusTargetElement {
107
108
  * @constructor
108
109
  * @extends UI5Element
109
110
  * @public
111
+ * @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/Table.js` instead.
110
112
  */
111
113
  declare class Table extends UI5Element {
114
+ eventDetails: {
115
+ "row-click": TableRowClickEventDetail;
116
+ "popin-change": TablePopinChangeEventDetail;
117
+ "load-more": void;
118
+ "selection-change": TableSelectionChangeEventDetail;
119
+ };
112
120
  /**
113
121
  * Defines the text that will be displayed when there is no data and `hideNoData` is not present.
114
- * @default ""
122
+ * @default undefined
115
123
  * @public
116
124
  */
117
- noDataText: string;
125
+ noDataText?: string;
118
126
  /**
119
127
  * Defines the text that will be displayed inside the growing button at the bottom of the table,
120
128
  * meant for loading more rows upon press.
@@ -122,20 +130,20 @@ declare class Table extends UI5Element {
122
130
  * **Note:** If not specified a built-in text will be displayed.
123
131
  *
124
132
  * **Note:** This property takes effect if `growing` is set to `Button`.
125
- * @default ""
133
+ * @default undefined
126
134
  * @since 2.0.0
127
135
  * @public
128
136
  */
129
- growingButtonText: string;
137
+ growingButtonText?: string;
130
138
  /**
131
139
  * Defines the subtext that will be displayed under the `growingButtonText`.
132
140
  *
133
141
  * **Note:** This property takes effect if `growing` is set to `Button`.
134
- * @default ""
142
+ * @default undefined
135
143
  * @since 2.0.0
136
144
  * @public
137
145
  */
138
- growingButtonSubtext: string;
146
+ growingButtonSubtext?: string;
139
147
  /**
140
148
  * Defines if the value of `noDataText` will be diplayed when there is no rows present in the table.
141
149
  * @default false
@@ -215,12 +223,12 @@ declare class Table extends UI5Element {
215
223
  accessibleName?: string;
216
224
  /**
217
225
  * Receives id(or many ids) of the elements that label the component.
218
- * @default ""
226
+ * @default undefined
219
227
  * @public
220
228
  * @since 2.0.0
221
229
  */
222
- accessibleNameRef: string;
223
- _hiddenColumns: Array<TableColumnInfo>;
230
+ accessibleNameRef?: string;
231
+ _hiddenColumns?: Array<TableColumnInfo>;
224
232
  _noDataDisplayed: boolean;
225
233
  /**
226
234
  * Defines the active state of the `More` button.
@@ -232,11 +240,6 @@ declare class Table extends UI5Element {
232
240
  * @private
233
241
  */
234
242
  _columnHeader: TableColumnHeaderInfo;
235
- /**
236
- * Defines if the entire table is in view port.
237
- * @private
238
- */
239
- _inViewport: boolean;
240
243
  /**
241
244
  * Defines whether all rows are selected or not when table is in MultiSelect mode.
242
245
  * @default false
@@ -258,12 +261,10 @@ declare class Table extends UI5Element {
258
261
  * @public
259
262
  */
260
263
  columns: Array<TableColumn>;
261
- static onDefine(): Promise<void>;
262
264
  static i18nBundle: I18nBundle;
263
265
  fnHandleF7: (e: CustomEvent) => void;
264
266
  fnOnRowFocused: (e: CustomEvent) => void;
265
267
  _handleResize: ResizeObserverCallback;
266
- moreDataText?: string;
267
268
  tableEndObserved: boolean;
268
269
  visibleColumns: Array<TableColumn>;
269
270
  visibleColumnsCount?: number;
@@ -291,7 +292,7 @@ declare class Table extends UI5Element {
291
292
  * Switches focus between column header, last focused item, and "More" button (if applicable).
292
293
  * @private
293
294
  */
294
- _handleArrowAlt(e: KeyboardEvent): void;
295
+ _handleArrowAlt(e: KeyboardEvent): void | Promise<void>;
295
296
  /**
296
297
  * Determines the type of the currently focused element.
297
298
  * @private
@@ -311,11 +312,13 @@ declare class Table extends UI5Element {
311
312
  _getAfterForwardElement(): HTMLElement;
312
313
  _getBeforeForwardElement(): HTMLElement;
313
314
  onRowFocused(e: CustomEvent): void;
315
+ onRowKeyDown(e: KeyboardEvent): void;
314
316
  _onColumnHeaderFocused(): void;
315
317
  _onColumnHeaderClick(e: MouseEvent | KeyboardEvent): void;
316
318
  _onColumnHeaderKeydown(e: KeyboardEvent): void;
317
319
  _onLoadMoreKeydown(e: KeyboardEvent): void;
318
320
  _onLoadMoreKeyup(e: KeyboardEvent): void;
321
+ onInvalidation(change: ChangeInfo): void;
319
322
  _onLoadMoreClick(): void;
320
323
  observeTableEnd(): void;
321
324
  onInteresection(entries: Array<IntersectionObserverEntry>): void;
@@ -328,18 +331,12 @@ declare class Table extends UI5Element {
328
331
  get columnHeader(): HTMLElement | null;
329
332
  get morеBtn(): HTMLElement | null;
330
333
  handleResize(): void;
331
- checkTableInViewport(): void;
332
334
  popinContent(): void;
333
335
  /**
334
336
  * Gets settings to be propagated from columns to rows.
335
337
  */
336
338
  getColumnPropagationSettings(): Array<TableColumnInfo>;
337
339
  getIntersectionObserver(): IntersectionObserver;
338
- get styles(): {
339
- busy: {
340
- position: string;
341
- };
342
- };
343
340
  get growsWithButton(): boolean;
344
341
  get growsOnScroll(): boolean;
345
342
  get _growingButtonText(): string;
@@ -348,7 +345,6 @@ declare class Table extends UI5Element {
348
345
  get ariaLabelSelectAllText(): string;
349
346
  get loadMoreAriaLabelledBy(): string;
350
347
  get tableEndDOM(): Element;
351
- get busyIndPosition(): string;
352
348
  get isMultiSelect(): boolean;
353
349
  get isSingleSelect(): boolean;
354
350
  get selectedRows(): Array<ITableRow>;
package/dist/Table.js CHANGED
@@ -8,31 +8,28 @@ 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";
32
+ import { patchScopingSuffix } from "./utils/CompatCustomElementsScope.js";
36
33
  const GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms
37
34
  const PAGE_UP_DOWN_SIZE = 20;
38
35
  var TableFocusTargetElement;
@@ -101,13 +98,94 @@ var TableFocusTargetElement;
101
98
  * @constructor
102
99
  * @extends UI5Element
103
100
  * @public
101
+ * @deprecated Deprecated as of version 2.12.0, use `@ui5/webcomponents/dist/Table.js` instead.
104
102
  */
105
103
  let Table = Table_1 = class Table extends UI5Element {
106
- static async onDefine() {
107
- Table_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
108
- }
109
104
  constructor() {
110
105
  super();
106
+ /**
107
+ * Defines if the value of `noDataText` will be diplayed when there is no rows present in the table.
108
+ * @default false
109
+ * @public
110
+ * @since 2.0.0
111
+ */
112
+ this.hideNoData = false;
113
+ /**
114
+ * Defines whether the table will have growing capability either by pressing a `More` button,
115
+ * or via user scroll. In both cases `load-more` event is fired.
116
+ *
117
+ * Available options:
118
+ *
119
+ * `Button` - Shows a `More` button at the bottom of the table, pressing of which triggers the `load-more` event.
120
+ *
121
+ * `Scroll` - The `load-more` event is triggered when the user scrolls to the bottom of the table;
122
+ *
123
+ * `None` (default) - The growing is off.
124
+ *
125
+ * **Restrictions:** `growing="Scroll"` is not supported for Internet Explorer,
126
+ * and the component will fallback to `growing="Button"`.
127
+ * @default "None"
128
+ * @since 2.0.0
129
+ * @public
130
+ */
131
+ this.growing = "None";
132
+ /**
133
+ * Defines if the table is in busy state.
134
+ *
135
+ * In this state the component's opacity is reduced
136
+ * and busy indicator is displayed at the bottom of the table.
137
+ * @default false
138
+ * @since 2.0.0
139
+ * @public
140
+ */
141
+ this.busy = false;
142
+ /**
143
+ * Defines the delay in milliseconds, after which the busy indicator will show up for this component.
144
+ * @default 1000
145
+ * @public
146
+ */
147
+ this.busyDelay = 1000;
148
+ /**
149
+ * Determines whether the column headers remain fixed at the top of the page during
150
+ * vertical scrolling as long as the Web Component is in the viewport.
151
+ *
152
+ * **Restrictions:**
153
+ *
154
+ * - Browsers that do not support this feature:
155
+ *
156
+ * - Internet Explorer
157
+ * - Microsoft Edge lower than version 41 (EdgeHTML 16)
158
+ * - Mozilla Firefox lower than version 59
159
+ *
160
+ * - Scrolling behavior:
161
+ *
162
+ * - If the Web Component is placed in layout containers that have the `overflow: hidden`
163
+ * or `overflow: auto` style definition, this can
164
+ * prevent the sticky elements of the Web Component from becoming fixed at the top of the viewport.
165
+ * @default false
166
+ * @public
167
+ */
168
+ this.stickyColumnHeader = false;
169
+ /**
170
+ * Defines the mode of the component.
171
+ * @default "None"
172
+ * @since 2.0.0
173
+ * @public
174
+ */
175
+ this.mode = "None";
176
+ this._noDataDisplayed = false;
177
+ /**
178
+ * Defines the active state of the `More` button.
179
+ * @private
180
+ */
181
+ this._loadMoreActive = false;
182
+ /**
183
+ * Defines whether all rows are selected or not when table is in MultiSelect mode.
184
+ * @default false
185
+ * @since 2.0.0
186
+ * @private
187
+ */
188
+ this._allRowsSelected = false;
111
189
  this.visibleColumns = []; // template loop should always have a defined array
112
190
  // 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
191
  this._columnHeader = {
@@ -153,7 +231,7 @@ let Table = Table_1 = class Table extends UI5Element {
153
231
  row.mode = this.mode;
154
232
  });
155
233
  this.visibleColumns = this.columns.filter((column, index) => {
156
- return !this._hiddenColumns[index];
234
+ return !this._hiddenColumns?.[index];
157
235
  });
158
236
  this._noDataDisplayed = !this.rows.length && !this.hideNoData;
159
237
  this.visibleColumnsCount = this.visibleColumns.length;
@@ -168,7 +246,6 @@ let Table = Table_1 = class Table extends UI5Element {
168
246
  if (this.growsOnScroll) {
169
247
  this.observeTableEnd();
170
248
  }
171
- this.checkTableInViewport();
172
249
  }
173
250
  onEnterDOM() {
174
251
  this.growingIntersectionObserver = this.getIntersectionObserver();
@@ -277,7 +354,7 @@ let Table = Table_1 = class Table extends UI5Element {
277
354
  nextItem.focus();
278
355
  }
279
356
  const selectedRows = this.selectedRows;
280
- this.fireEvent("selection-change", {
357
+ this.fireDecoratorEvent("selection-change", {
281
358
  selectedRows,
282
359
  previouslySelectedRows,
283
360
  });
@@ -303,7 +380,7 @@ let Table = Table_1 = class Table extends UI5Element {
303
380
  rows[rows.length - 1].focus();
304
381
  }
305
382
  const selectedRows = this.selectedRows;
306
- this.fireEvent("selection-change", {
383
+ this.fireDecoratorEvent("selection-change", {
307
384
  selectedRows,
308
385
  previouslySelectedRows,
309
386
  });
@@ -450,6 +527,11 @@ let Table = Table_1 = class Table extends UI5Element {
450
527
  onRowFocused(e) {
451
528
  this._itemNavigation.setCurrentItem(e.target);
452
529
  }
530
+ onRowKeyDown(e) {
531
+ if (this.growing === "Scroll" && isDown(e) && this.currentItemIdx === this.rows.length - 1) {
532
+ debounce(this.loadMore.bind(this), GROWING_WITH_SCROLL_DEBOUNCE_RATE);
533
+ }
534
+ }
453
535
  _onColumnHeaderFocused() {
454
536
  this._itemNavigation.setCurrentItem(this._columnHeader);
455
537
  }
@@ -485,8 +567,14 @@ let Table = Table_1 = class Table extends UI5Element {
485
567
  }
486
568
  this._loadMoreActive = false;
487
569
  }
570
+ onInvalidation(change) {
571
+ if (change.type === "property" && change.name === "growing") {
572
+ this.tableEndObserved = false;
573
+ this.getIntersectionObserver().disconnect();
574
+ }
575
+ }
488
576
  _onLoadMoreClick() {
489
- this.fireEvent("load-more");
577
+ this.fireDecoratorEvent("load-more");
490
578
  }
491
579
  observeTableEnd() {
492
580
  if (!this.tableEndObserved) {
@@ -504,7 +592,7 @@ let Table = Table_1 = class Table extends UI5Element {
504
592
  }
505
593
  }
506
594
  loadMore() {
507
- this.fireEvent("load-more");
595
+ this.fireDecoratorEvent("load-more");
508
596
  }
509
597
  _handleSingleSelect(e) {
510
598
  const row = this.getRowParent(e.target);
@@ -519,7 +607,7 @@ let Table = Table_1 = class Table extends UI5Element {
519
607
  }
520
608
  });
521
609
  row.selected = true;
522
- this.fireEvent("selection-change", {
610
+ this.fireDecoratorEvent("selection-change", {
523
611
  selectedRows: [row],
524
612
  previouslySelectedRows,
525
613
  });
@@ -539,7 +627,7 @@ let Table = Table_1 = class Table extends UI5Element {
539
627
  else {
540
628
  this._allRowsSelected = false;
541
629
  }
542
- this.fireEvent("selection-change", {
630
+ this.fireDecoratorEvent("selection-change", {
543
631
  selectedRows,
544
632
  previouslySelectedRows,
545
633
  });
@@ -561,7 +649,7 @@ let Table = Table_1 = class Table extends UI5Element {
561
649
  row.selected = bAllSelected;
562
650
  });
563
651
  const selectedRows = bAllSelected ? this.rows : [];
564
- this.fireEvent("selection-change", {
652
+ this.fireDecoratorEvent("selection-change", {
565
653
  selectedRows,
566
654
  previouslySelectedRows,
567
655
  });
@@ -591,12 +679,8 @@ let Table = Table_1 = class Table extends UI5Element {
591
679
  return null;
592
680
  }
593
681
  handleResize() {
594
- this.checkTableInViewport();
595
682
  this.popinContent();
596
683
  }
597
- checkTableInViewport() {
598
- this._inViewport = isElementInView(this.getDomRef());
599
- }
600
684
  popinContent() {
601
685
  const clientRect = this.getDomRef().getBoundingClientRect();
602
686
  const tableWidth = clientRect.width;
@@ -621,12 +705,12 @@ let Table = Table_1 = class Table extends UI5Element {
621
705
  }
622
706
  this.columns[visibleColumnsIndexes[visibleColumnsIndexes.length - 1]].last = true;
623
707
  }
624
- const hiddenColumnsChange = (this._hiddenColumns.length !== hiddenColumns.length) || this._hiddenColumns.some((column, index) => column !== hiddenColumns[index]);
708
+ const hiddenColumnsChange = (this._hiddenColumns?.length !== hiddenColumns.length) || this._hiddenColumns?.some((column, index) => column !== hiddenColumns[index]);
625
709
  const shownColumnsChange = hiddenColumns.length === 0;
626
710
  // invalidate if hidden columns count has changed or columns are shown
627
711
  if (hiddenColumnsChange || shownColumnsChange) {
628
712
  this._hiddenColumns = hiddenColumns;
629
- this.fireEvent("popin-change", {
713
+ this.fireDecoratorEvent("popin-change", {
630
714
  poppedColumns: this._hiddenColumns,
631
715
  });
632
716
  }
@@ -643,7 +727,7 @@ let Table = Table_1 = class Table extends UI5Element {
643
727
  text: column.textContent,
644
728
  popinText: column.popinText,
645
729
  popinDisplay: column.popinDisplay,
646
- visible: !this._hiddenColumns[index],
730
+ visible: !this._hiddenColumns?.[index],
647
731
  };
648
732
  }, this);
649
733
  }
@@ -657,13 +741,6 @@ let Table = Table_1 = class Table extends UI5Element {
657
741
  }
658
742
  return this.growingIntersectionObserver;
659
743
  }
660
- get styles() {
661
- return {
662
- busy: {
663
- position: this.busyIndPosition,
664
- },
665
- };
666
- }
667
744
  get growsWithButton() {
668
745
  return this.growing === TableGrowingMode.Button;
669
746
  }
@@ -688,7 +765,7 @@ let Table = Table_1 = class Table extends UI5Element {
688
765
  return Table_1.i18nBundle.getText(ARIA_LABEL_SELECT_ALL_CHECKBOX);
689
766
  }
690
767
  get loadMoreAriaLabelledBy() {
691
- if (this.moreDataText) {
768
+ if (this.growingButtonSubtext) {
692
769
  return `${this._id}-growingButton-text ${this._id}-growingButton-subtext`;
693
770
  }
694
771
  return `${this._id}-growingButton-text`;
@@ -696,9 +773,6 @@ let Table = Table_1 = class Table extends UI5Element {
696
773
  get tableEndDOM() {
697
774
  return this.shadowRoot.querySelector(".ui5-table-end-marker");
698
775
  }
699
- get busyIndPosition() {
700
- return this._inViewport ? "absolute" : "sticky";
701
- }
702
776
  get isMultiSelect() {
703
777
  return this.mode === TableMode.MultiSelect;
704
778
  }
@@ -737,28 +811,28 @@ __decorate([
737
811
  property({ type: Boolean })
738
812
  ], Table.prototype, "hideNoData", void 0);
739
813
  __decorate([
740
- property({ type: TableGrowingMode, defaultValue: TableGrowingMode.None })
814
+ property()
741
815
  ], Table.prototype, "growing", void 0);
742
816
  __decorate([
743
817
  property({ type: Boolean })
744
818
  ], Table.prototype, "busy", void 0);
745
819
  __decorate([
746
- property({ validator: Integer, defaultValue: 1000 })
820
+ property({ type: Number })
747
821
  ], Table.prototype, "busyDelay", void 0);
748
822
  __decorate([
749
823
  property({ type: Boolean })
750
824
  ], Table.prototype, "stickyColumnHeader", void 0);
751
825
  __decorate([
752
- property({ type: TableMode, defaultValue: TableMode.None })
826
+ property()
753
827
  ], Table.prototype, "mode", void 0);
754
828
  __decorate([
755
- property({ defaultValue: undefined })
829
+ property()
756
830
  ], Table.prototype, "accessibleName", void 0);
757
831
  __decorate([
758
- property({ defaultValue: "" })
832
+ property()
759
833
  ], Table.prototype, "accessibleNameRef", void 0);
760
834
  __decorate([
761
- property({ type: Object, multiple: true })
835
+ property({ type: Array })
762
836
  ], Table.prototype, "_hiddenColumns", void 0);
763
837
  __decorate([
764
838
  property({ type: Boolean })
@@ -769,9 +843,6 @@ __decorate([
769
843
  __decorate([
770
844
  property({ type: Object })
771
845
  ], Table.prototype, "_columnHeader", void 0);
772
- __decorate([
773
- property({ type: Boolean })
774
- ], Table.prototype, "_inViewport", void 0);
775
846
  __decorate([
776
847
  property({ type: Boolean })
777
848
  ], Table.prototype, "_allRowsSelected", void 0);
@@ -793,14 +864,16 @@ __decorate([
793
864
  },
794
865
  })
795
866
  ], Table.prototype, "columns", void 0);
867
+ __decorate([
868
+ i18n("@ui5/webcomponents")
869
+ ], Table, "i18nBundle", void 0);
796
870
  Table = Table_1 = __decorate([
797
871
  customElement({
798
872
  tag: "ui5-table",
799
873
  fastNavigation: true,
800
874
  styles: tableStyles,
801
- renderer: litRender,
875
+ renderer: jsxRenderer,
802
876
  template: TableTemplate,
803
- dependencies: [BusyIndicator, CheckBox],
804
877
  })
805
878
  /** Fired when a row in `Active` mode is clicked or `Enter` key is pressed.
806
879
  * @param {HTMLElement} row the activated row.
@@ -808,12 +881,7 @@ Table = Table_1 = __decorate([
808
881
  */
809
882
  ,
810
883
  event("row-click", {
811
- detail: {
812
- /**
813
- * @public
814
- */
815
- row: { type: HTMLElement },
816
- },
884
+ bubbles: true,
817
885
  })
818
886
  /**
819
887
  * Fired when `ui5-table-column` is shown as a pop-in instead of hiding it.
@@ -823,14 +891,7 @@ Table = Table_1 = __decorate([
823
891
  */
824
892
  ,
825
893
  event("popin-change", {
826
- detail: {
827
- /**
828
- * @public
829
- */
830
- poppedColumns: {
831
- type: Array,
832
- },
833
- },
894
+ bubbles: true,
834
895
  })
835
896
  /**
836
897
  * Fired when the user presses the `More` button or scrolls to the table's end.
@@ -840,7 +901,9 @@ Table = Table_1 = __decorate([
840
901
  * @since 2.0.0
841
902
  */
842
903
  ,
843
- event("load-more")
904
+ event("load-more", {
905
+ bubbles: true,
906
+ })
844
907
  /**
845
908
  * Fired when selection is changed by user interaction
846
909
  * in `SingleSelect` and `MultiSelect` modes.
@@ -851,18 +914,10 @@ Table = Table_1 = __decorate([
851
914
  */
852
915
  ,
853
916
  event("selection-change", {
854
- detail: {
855
- /**
856
- * @public
857
- */
858
- selectedRows: { type: Array },
859
- /**
860
- * @public
861
- */
862
- previouslySelectedRows: { type: Array },
863
- },
917
+ bubbles: true,
864
918
  })
865
919
  ], Table);
920
+ patchScopingSuffix(Table);
866
921
  Table.define();
867
922
  export default Table;
868
923
  //# sourceMappingURL=Table.js.map