@openui5/sap.ui.table 1.139.0 → 1.141.0

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 (154) hide show
  1. package/THIRDPARTY.txt +2 -2
  2. package/package.json +3 -3
  3. package/src/sap/ui/table/.library +1 -1
  4. package/src/sap/ui/table/AnalyticalColumn.js +1 -1
  5. package/src/sap/ui/table/AnalyticalColumnMenu.js +1 -1
  6. package/src/sap/ui/table/AnalyticalTable.js +4 -2
  7. package/src/sap/ui/table/Column.js +1 -1
  8. package/src/sap/ui/table/ColumnMenu.js +1 -1
  9. package/src/sap/ui/table/CreationRow.js +1 -1
  10. package/src/sap/ui/table/Row.js +1 -1
  11. package/src/sap/ui/table/RowAction.js +1 -1
  12. package/src/sap/ui/table/RowActionItem.js +1 -1
  13. package/src/sap/ui/table/RowSettings.js +1 -1
  14. package/src/sap/ui/table/Table.js +4 -14
  15. package/src/sap/ui/table/TablePersoController.js +1 -1
  16. package/src/sap/ui/table/TreeTable.js +3 -1
  17. package/src/sap/ui/table/extensions/Accessibility.js +17 -9
  18. package/src/sap/ui/table/extensions/AccessibilityRender.js +1 -1
  19. package/src/sap/ui/table/extensions/DragAndDrop.js +1 -1
  20. package/src/sap/ui/table/extensions/ExtensionBase.js +1 -1
  21. package/src/sap/ui/table/extensions/Keyboard.js +1 -1
  22. package/src/sap/ui/table/extensions/KeyboardDelegate.js +1 -1
  23. package/src/sap/ui/table/extensions/Pointer.js +35 -12
  24. package/src/sap/ui/table/extensions/Scrolling.js +30 -21
  25. package/src/sap/ui/table/extensions/ScrollingIOS.js +15 -4
  26. package/src/sap/ui/table/extensions/Synchronization.js +1 -1
  27. package/src/sap/ui/table/i18n/interaction_ar.xml +1 -1
  28. package/src/sap/ui/table/i18n/interaction_bg.xml +1 -1
  29. package/src/sap/ui/table/i18n/interaction_ca.xml +1 -1
  30. package/src/sap/ui/table/i18n/interaction_cnr.xml +1 -1
  31. package/src/sap/ui/table/i18n/interaction_cs.xml +1 -1
  32. package/src/sap/ui/table/i18n/interaction_cy.xml +1 -1
  33. package/src/sap/ui/table/i18n/interaction_da.xml +1 -1
  34. package/src/sap/ui/table/i18n/interaction_de.xml +2 -2
  35. package/src/sap/ui/table/i18n/interaction_el.xml +1 -1
  36. package/src/sap/ui/table/i18n/interaction_en.xml +1 -1
  37. package/src/sap/ui/table/i18n/interaction_en_GB.xml +1 -1
  38. package/src/sap/ui/table/i18n/interaction_en_US_saprigi.xml +1 -1
  39. package/src/sap/ui/table/i18n/interaction_es.xml +1 -1
  40. package/src/sap/ui/table/i18n/interaction_es_MX.xml +1 -1
  41. package/src/sap/ui/table/i18n/interaction_et.xml +1 -1
  42. package/src/sap/ui/table/i18n/interaction_fi.xml +1 -1
  43. package/src/sap/ui/table/i18n/interaction_fr.xml +1 -1
  44. package/src/sap/ui/table/i18n/interaction_fr_CA.xml +1 -1
  45. package/src/sap/ui/table/i18n/interaction_hi.xml +1 -1
  46. package/src/sap/ui/table/i18n/interaction_hr.xml +1 -1
  47. package/src/sap/ui/table/i18n/interaction_hu.xml +1 -1
  48. package/src/sap/ui/table/i18n/interaction_id.xml +1 -1
  49. package/src/sap/ui/table/i18n/interaction_it.xml +1 -1
  50. package/src/sap/ui/table/i18n/interaction_iw.xml +1 -1
  51. package/src/sap/ui/table/i18n/interaction_ja.xml +1 -1
  52. package/src/sap/ui/table/i18n/interaction_kk.xml +1 -1
  53. package/src/sap/ui/table/i18n/interaction_ko.xml +1 -1
  54. package/src/sap/ui/table/i18n/interaction_lt.xml +1 -1
  55. package/src/sap/ui/table/i18n/interaction_lv.xml +1 -1
  56. package/src/sap/ui/table/i18n/interaction_mk.xml +1 -1
  57. package/src/sap/ui/table/i18n/interaction_ms.xml +1 -1
  58. package/src/sap/ui/table/i18n/interaction_nl.xml +1 -1
  59. package/src/sap/ui/table/i18n/interaction_no.xml +1 -1
  60. package/src/sap/ui/table/i18n/interaction_pl.xml +1 -1
  61. package/src/sap/ui/table/i18n/interaction_pt.xml +1 -1
  62. package/src/sap/ui/table/i18n/interaction_pt_PT.xml +1 -1
  63. package/src/sap/ui/table/i18n/interaction_ro.xml +1 -1
  64. package/src/sap/ui/table/i18n/interaction_ru.xml +1 -1
  65. package/src/sap/ui/table/i18n/interaction_sh.xml +1 -1
  66. package/src/sap/ui/table/i18n/interaction_sk.xml +1 -1
  67. package/src/sap/ui/table/i18n/interaction_sl.xml +1 -1
  68. package/src/sap/ui/table/i18n/interaction_sr.xml +1 -1
  69. package/src/sap/ui/table/i18n/interaction_sv.xml +1 -1
  70. package/src/sap/ui/table/i18n/interaction_th.xml +1 -1
  71. package/src/sap/ui/table/i18n/interaction_tr.xml +1 -1
  72. package/src/sap/ui/table/i18n/interaction_uk.xml +1 -1
  73. package/src/sap/ui/table/i18n/interaction_vi.xml +1 -1
  74. package/src/sap/ui/table/i18n/interaction_zh_CN.xml +1 -1
  75. package/src/sap/ui/table/i18n/interaction_zh_TW.xml +1 -1
  76. package/src/sap/ui/table/library.js +27 -11
  77. package/src/sap/ui/table/menus/AnalyticalTableContextMenu.js +1 -1
  78. package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +1 -1
  79. package/src/sap/ui/table/menus/ContextMenu.js +1 -1
  80. package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +6 -9
  81. package/src/sap/ui/table/messagebundle.properties +7 -0
  82. package/src/sap/ui/table/messagebundle_ar.properties +5 -0
  83. package/src/sap/ui/table/messagebundle_bg.properties +5 -0
  84. package/src/sap/ui/table/messagebundle_ca.properties +5 -0
  85. package/src/sap/ui/table/messagebundle_cnr.properties +5 -0
  86. package/src/sap/ui/table/messagebundle_cs.properties +7 -2
  87. package/src/sap/ui/table/messagebundle_cy.properties +5 -0
  88. package/src/sap/ui/table/messagebundle_da.properties +5 -0
  89. package/src/sap/ui/table/messagebundle_de.properties +11 -6
  90. package/src/sap/ui/table/messagebundle_el.properties +5 -0
  91. package/src/sap/ui/table/messagebundle_en.properties +5 -0
  92. package/src/sap/ui/table/messagebundle_en_GB.properties +5 -0
  93. package/src/sap/ui/table/messagebundle_en_US_saprigi.properties +5 -0
  94. package/src/sap/ui/table/messagebundle_es.properties +6 -1
  95. package/src/sap/ui/table/messagebundle_es_MX.properties +5 -0
  96. package/src/sap/ui/table/messagebundle_et.properties +5 -0
  97. package/src/sap/ui/table/messagebundle_fi.properties +6 -1
  98. package/src/sap/ui/table/messagebundle_fr.properties +7 -2
  99. package/src/sap/ui/table/messagebundle_fr_CA.properties +7 -2
  100. package/src/sap/ui/table/messagebundle_hi.properties +5 -0
  101. package/src/sap/ui/table/messagebundle_hr.properties +5 -0
  102. package/src/sap/ui/table/messagebundle_hu.properties +5 -0
  103. package/src/sap/ui/table/messagebundle_id.properties +5 -0
  104. package/src/sap/ui/table/messagebundle_it.properties +5 -0
  105. package/src/sap/ui/table/messagebundle_iw.properties +5 -0
  106. package/src/sap/ui/table/messagebundle_ja.properties +6 -1
  107. package/src/sap/ui/table/messagebundle_kk.properties +5 -0
  108. package/src/sap/ui/table/messagebundle_ko.properties +5 -0
  109. package/src/sap/ui/table/messagebundle_lt.properties +5 -0
  110. package/src/sap/ui/table/messagebundle_lv.properties +7 -2
  111. package/src/sap/ui/table/messagebundle_mk.properties +7 -2
  112. package/src/sap/ui/table/messagebundle_ms.properties +7 -2
  113. package/src/sap/ui/table/messagebundle_nl.properties +6 -1
  114. package/src/sap/ui/table/messagebundle_no.properties +5 -0
  115. package/src/sap/ui/table/messagebundle_pl.properties +5 -0
  116. package/src/sap/ui/table/messagebundle_pt.properties +5 -0
  117. package/src/sap/ui/table/messagebundle_pt_PT.properties +6 -1
  118. package/src/sap/ui/table/messagebundle_ro.properties +7 -2
  119. package/src/sap/ui/table/messagebundle_ru.properties +9 -4
  120. package/src/sap/ui/table/messagebundle_sh.properties +5 -0
  121. package/src/sap/ui/table/messagebundle_sk.properties +5 -0
  122. package/src/sap/ui/table/messagebundle_sl.properties +5 -0
  123. package/src/sap/ui/table/messagebundle_sr.properties +5 -0
  124. package/src/sap/ui/table/messagebundle_sv.properties +5 -0
  125. package/src/sap/ui/table/messagebundle_th.properties +5 -0
  126. package/src/sap/ui/table/messagebundle_tr.properties +5 -0
  127. package/src/sap/ui/table/messagebundle_uk.properties +5 -0
  128. package/src/sap/ui/table/messagebundle_vi.properties +5 -0
  129. package/src/sap/ui/table/messagebundle_zh_CN.properties +5 -0
  130. package/src/sap/ui/table/messagebundle_zh_TW.properties +7 -2
  131. package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
  132. package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +6 -2
  133. package/src/sap/ui/table/plugins/{V4Aggregation.js → ODataV4Aggregation.js} +54 -70
  134. package/src/sap/ui/table/plugins/ODataV4Hierarchy.js +94 -0
  135. package/src/sap/ui/table/plugins/ODataV4MultiLevel.js +100 -0
  136. package/src/sap/ui/table/plugins/ODataV4MultiSelection.js +489 -0
  137. package/src/sap/ui/table/plugins/ODataV4Selection.js +51 -412
  138. package/src/sap/ui/table/plugins/ODataV4SingleSelection.js +120 -0
  139. package/src/sap/ui/table/plugins/PluginBase.js +1 -1
  140. package/src/sap/ui/table/plugins/SelectionModelSelection.js +1 -1
  141. package/src/sap/ui/table/plugins/SelectionPlugin.js +18 -16
  142. package/src/sap/ui/table/rowmodes/Auto.js +1 -1
  143. package/src/sap/ui/table/rowmodes/Fixed.js +1 -1
  144. package/src/sap/ui/table/rowmodes/Interactive.js +1 -1
  145. package/src/sap/ui/table/rowmodes/RowMode.js +1 -1
  146. package/src/sap/ui/table/rowmodes/Variable.js +1 -1
  147. package/src/sap/ui/table/themes/base/DragDrop.less +8 -1
  148. package/src/sap/ui/table/themes/base/ScrollingIOS.less +1 -0
  149. package/src/sap/ui/table/utils/TableUtils.js +1 -1
  150. package/src/sap/ui/table/utils/_ColumnUtils.js +1 -1
  151. package/src/sap/ui/table/utils/_GroupingUtils.js +1 -1
  152. package/src/sap/ui/table/utils/_HookUtils.js +1 -1
  153. package/src/sap/ui/table/utils/_MenuUtils.js +1 -1
  154. package/src/sap/ui/table/plugins/SelectionMode.js +0 -35
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=Kolumna wyboru
32
32
  TBL_TABLE_INVALID=Nieprawid\u0142owa tabela
33
33
 
34
34
  TBL_ROW_SELECT_KEY=Aby zaznaczy\u0107 lini\u0119, naci\u015Bnij spacj\u0119
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Aby zaznaczy\u0107 lini\u0119, naci\u015Bnij klawisze SHIFT + SPACJA
37
+
35
38
  TBL_ROW_DESELECT_KEY=Aby odznaczy\u0107 lini\u0119, naci\u015Bnij spacj\u0119
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Aby odznaczy\u0107 lini\u0119, naci\u015Bnij klawisze SHIFT + SPACJA
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Tabela analityczna
38
43
 
39
44
  TBL_NO_COLUMNS=W tej chwili nie ma widocznych kolumn w tabeli. Wybierz wymagane kolumny w ustawieniach tabeli.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=Coluna de sele\u00E7\u00E3o
32
32
  TBL_TABLE_INVALID=Tabela inv\u00E1lida
33
33
 
34
34
  TBL_ROW_SELECT_KEY=Pressione barra de espa\u00E7o para selecionar a linha
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Pressione SHIFT + BARRA DE ESPA\u00C7O para selecionar a linha
37
+
35
38
  TBL_ROW_DESELECT_KEY=Pressione barra de espa\u00E7o para anular a sele\u00E7\u00E3o da linha
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Pressione SHIFT + BARRA DE ESPA\u00C7O para desmarcar a linha
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Tabela anal\u00EDtica
38
43
 
39
44
  TBL_NO_COLUMNS=Neste momento, n\u00E3o existem colunas vis\u00EDveis na tabela. Selecione as colunas de que voc\u00EA necessita nas configura\u00E7\u00F5es de tabela.
@@ -32,7 +32,12 @@ TBL_TABLE_SELECTION_COLUMNHEADER=Coluna de sele\u00E7\u00E3o
32
32
  TBL_TABLE_INVALID=Tabela inv\u00E1lida
33
33
 
34
34
  TBL_ROW_SELECT_KEY=Para selecionar a linha, prima a barra de espa\u00E7o
35
- TBL_ROW_DESELECT_KEY=Para deselecionar a linha, prima a barra de espa\u00E7o
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Para selecionar a linha, prima SHIFT + BARRA DE ESPA\u00C7OS
37
+
38
+ TBL_ROW_DESELECT_KEY=Para desmarcar a linha, prima a BARRA DE ESPA\u00C7OS
39
+
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Para desmarcar a linha, prima SHIFT + BARRA DE ESPA\u00C7OS
36
41
 
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Tabela anal\u00EDtica
38
43
 
@@ -31,8 +31,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=Coloan\u0103 de selec\u021Bie
31
31
 
32
32
  TBL_TABLE_INVALID=Tabel nevalabil
33
33
 
34
- TBL_ROW_SELECT_KEY=Pt.a selecta linia, ap\u0103sa\u0163i pe BARA DE DISTAN\u0162IERE
35
- TBL_ROW_DESELECT_KEY=Pt.a deselecta linia, ap\u0103sa\u0163i pe BARA DE DISTAN\u0162IERE
34
+ TBL_ROW_SELECT_KEY=Pentru a selecta linia, ap\u0103sa\u021Bi pe BARA DE DISTAN\u021AARE
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Pentru a selecta linia, ap\u0103sa\u021Bi pe SHIFT + BARA DE DISTAN\u021AARE
37
+
38
+ TBL_ROW_DESELECT_KEY=Pentru a deselecta linia, ap\u0103sa\u021Bi pe BARA DE DISTAN\u021AARE
39
+
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Pentru a deselecta linia, ap\u0103sa\u021Bi pe SHIFT + BARA DE DISTAN\u021AARE
36
41
 
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Tabel func\u021Bii analitice
38
43
 
@@ -31,8 +31,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=\u0421\u0442\u043E\u043B\u0431\u0435\u0446 \u04
31
31
 
32
32
  TBL_TABLE_INVALID=\u041D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u0430
33
33
 
34
- TBL_ROW_SELECT_KEY=\u0414\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0442\u0440\u043E\u043A\u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043F\u0440\u043E\u0431\u0435\u043B
35
- TBL_ROW_DESELECT_KEY=\u0414\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0432\u044B\u0431\u043E\u0440\u0430 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043F\u0440\u043E\u0431\u0435\u043B
34
+ TBL_ROW_SELECT_KEY=\u0414\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0442\u0440\u043E\u043A\u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u043F\u0440\u043E\u0431\u0435\u043B\u0430
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=\u0414\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0442\u0440\u043E\u043A\u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 SHIFT + \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u043F\u0440\u043E\u0431\u0435\u043B\u0430
37
+
38
+ TBL_ROW_DESELECT_KEY=\u0414\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0442\u0440\u043E\u043A\u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u043F\u0440\u043E\u0431\u0435\u043B\u0430
39
+
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=\u0414\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0442\u0440\u043E\u043A\u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 SHIFT + \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u043F\u0440\u043E\u0431\u0435\u043B\u0430
36
41
 
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=\u0410\u043D\u0430\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u0430
38
43
 
@@ -105,9 +110,9 @@ TBL_ROW_STATE_SUCCESS=\u0423\u0441\u043F\u0435\u0448\u043D\u043E\u0435 \u0432\u0
105
110
 
106
111
  TBL_ROW_STATE_NAVIGATED=\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D \u043F\u0435\u0440\u0435\u0445\u043E\u0434
107
112
 
108
- TBL_ROW_EXPAND_KEY=\u0427\u0442\u043E\u0431\u044B \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443, \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043F\u0440\u043E\u0431\u0435\u043B
113
+ TBL_ROW_EXPAND_KEY=\u0427\u0442\u043E\u0431\u044B \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443, \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u043F\u0440\u043E\u0431\u0435\u043B\u0430
109
114
 
110
- TBL_ROW_COLLAPSE_KEY=\u0427\u0442\u043E\u0431\u044B \u0441\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443, \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043F\u0440\u043E\u0431\u0435\u043B
115
+ TBL_ROW_COLLAPSE_KEY=\u0427\u0442\u043E\u0431\u044B \u0441\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443, \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0443 \u043F\u0440\u043E\u0431\u0435\u043B\u0430
111
116
 
112
117
  TBL_CREATIONROW_APPLY=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443
113
118
 
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=Kolona odabira
32
32
  TBL_TABLE_INVALID=Neva\u017Ee\u0107a tabela
33
33
 
34
34
  TBL_ROW_SELECT_KEY=Da biste odabrali red, pritisnite razmak
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Da biste odabrali red, pritisnite SHIFT + RAZMAK
37
+
35
38
  TBL_ROW_DESELECT_KEY=Da biste poni\u0161tili odabir reda, pritisnite razmak
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Da biste poni\u0161tili odabir reda, pritisnite SHIFT + RAZMAK
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Analiti\u010Dka tabela
38
43
 
39
44
  TBL_NO_COLUMNS=Trenutno nema vidljivih kolona u tabeli. Odaberite kolone koje su vam potrebne u pode\u0161avanjima tabele.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=V\u00FDberov\u00FD st\u013Apec
32
32
  TBL_TABLE_INVALID=Neplatn\u00E1 tabu\u013Eka
33
33
 
34
34
  TBL_ROW_SELECT_KEY=Ak chcete vybra\u0165 riadok, stla\u010Dte medzern\u00EDk
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Ak chcete vybra\u0165 riadok, stla\u010Dte SHIFT + SPACEBAR
37
+
35
38
  TBL_ROW_DESELECT_KEY=Pre zru\u0161enie v\u00FDberu stla\u010Dte medzern\u00EDk
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Ak chcete vybra\u0165 riadok, stla\u010Dte SHIFT + SPACEBAR
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Analytick\u00E1 tabu\u013Eka
38
43
 
39
44
  TBL_NO_COLUMNS=Moment\u00E1lne nie s\u00FA v tabu\u013Eke \u017Eiadne vidite\u013En\u00E9 st\u013Apce. Vyberte st\u013Apce, ktor\u00E9 potrebujete, v nastaveniach tabu\u013Eky.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=Stolpec ozna\u010Ditve
32
32
  TBL_TABLE_INVALID=Neveljavna tabela
33
33
 
34
34
  TBL_ROW_SELECT_KEY=Za izbiro vrstice pritisnite preslednico
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Za izbiro vrstice pritisnite SHIFT + PRESLEDNICA
37
+
35
38
  TBL_ROW_DESELECT_KEY=Za preklic izbire pritisnite preslednico
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Za preklic izbire pritisnite SHIFT + PRESLEDNICA
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Analiti\u010Dna tabela
38
43
 
39
44
  TBL_NO_COLUMNS=Trenutno ni vidnih stolpcev v tabeli. V nastavitvah tabele izberite stolpce, ki jih potrebujete.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=\u041A\u043E\u043B\u043E\u043D\u0430 \u043E\u04
32
32
  TBL_TABLE_INVALID=\u041D\u0435\u0432\u0430\u0436\u0435\u045B\u0430 \u0442\u0430\u0431\u0435\u043B\u0430
33
33
 
34
34
  TBL_ROW_SELECT_KEY=\u0414\u0430 \u0431\u0438\u0441\u0442\u0435 \u043E\u0434\u0430\u0431\u0440\u0430\u043B\u0438 \u0440\u0435\u0434, \u043F\u0440\u0438\u0442\u0438\u0441\u043D\u0438\u0442\u0435 \u0440\u0430\u0437\u043C\u0430\u043A
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=\u0414\u0430 \u0431\u0438\u0441\u0442\u0435 \u043E\u0434\u0430\u0431\u0440\u0430\u043B\u0438 \u0440\u0435\u0434, \u043F\u0440\u0438\u0442\u0438\u0441\u043D\u0438\u0442\u0435 SHIFT + \u0420\u0410\u0417\u041C\u0410\u041A
37
+
35
38
  TBL_ROW_DESELECT_KEY=\u0414\u0430 \u0431\u0438\u0441\u0442\u0435 \u043F\u043E\u043D\u0438\u0448\u0442\u0438\u043B\u0438 \u043E\u0434\u0430\u0431\u0438\u0440 \u0440\u0435\u0434\u0430, \u043F\u0440\u0438\u0442\u0438\u0441\u043D\u0438\u0442\u0435 \u0440\u0430\u0437\u043C\u0430\u043A
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=\u0414\u0430 \u0431\u0438\u0441\u0442\u0435 \u043F\u043E\u043D\u0438\u0448\u0442\u0438\u043B\u0438 \u043E\u0434\u0430\u0431\u0438\u0440 \u0440\u0435\u0434\u0430, \u043F\u0440\u0438\u0442\u0438\u0441\u043D\u0438\u0442\u0435 SHIFT + \u0420\u0410\u0417\u041C\u0410\u041A
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=\u0410\u043D\u0430\u043B\u0438\u0442\u0438\u0447\u043A\u0430 \u0442\u0430\u0431\u0435\u043B\u0430
38
43
 
39
44
  TBL_NO_COLUMNS=\u0422\u0440\u0435\u043D\u0443\u0442\u043D\u043E \u043D\u0435\u043C\u0430 \u0432\u0438\u0434\u0459\u0438\u0432\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u0430 \u0443 \u0442\u0430\u0431\u0435\u043B\u0438. \u041E\u0434\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043B\u043E\u043D\u0435 \u043A\u043E\u0458\u0435 \u0441\u0443 \u0432\u0430\u043C \u043F\u043E\u0442\u0440\u0435\u0431\u043D\u0435 \u0443 \u043F\u043E\u0434\u0435\u0448\u0430\u0432\u0430\u045A\u0438\u043C\u0430 \u0442\u0430\u0431\u0435\u043B\u0435.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=Urvalskolumn
32
32
  TBL_TABLE_INVALID=Ogiltig tabell
33
33
 
34
34
  TBL_ROW_SELECT_KEY=Tryck blanksteg f\u00F6r att v\u00E4lja rad
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Tryck p\u00E5 Skift + blanksteg f\u00F6r att v\u00E4lja rad
37
+
35
38
  TBL_ROW_DESELECT_KEY=Tryck blanksteg f\u00F6r att h\u00E4va val
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Tryck p\u00E5 Skift + blanksteg f\u00F6r att h\u00E4va val
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Analytisk tabell
38
43
 
39
44
  TBL_NO_COLUMNS=Just nu finns inga synliga kolumner i tabellen. V\u00E4lj de kolumner du beh\u00F6ver i tabellinst\u00E4llningarna.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E0
32
32
  TBL_TABLE_INVALID=\u0E15\u0E32\u0E23\u0E32\u0E07\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07
33
33
 
34
34
  TBL_ROW_SELECT_KEY=\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E41\u0E16\u0E27 \u0E43\u0E2B\u0E49\u0E01\u0E14 SPACEBAR
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E41\u0E16\u0E27 \u0E43\u0E2B\u0E49\u0E01\u0E14 SHIFT + SPACEBAR
37
+
35
38
  TBL_ROW_DESELECT_KEY=\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E32\u0E23\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E41\u0E16\u0E27 \u0E43\u0E2B\u0E49\u0E01\u0E14 SPACEBAR
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E32\u0E23\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E41\u0E16\u0E27 \u0E43\u0E2B\u0E49\u0E01\u0E14 SHIFT + SPACEBAR
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=\u0E15\u0E32\u0E23\u0E32\u0E07\u0E27\u0E34\u0E40\u0E04\u0E23\u0E32\u0E30\u0E2B\u0E4C
38
43
 
39
44
  TBL_NO_COLUMNS=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E17\u0E35\u0E48\u0E21\u0E2D\u0E07\u0E40\u0E2B\u0E47\u0E19\u0E44\u0E14\u0E49\u0E43\u0E19\u0E15\u0E32\u0E23\u0E32\u0E07\u0E43\u0E19\u0E02\u0E13\u0E30\u0E19\u0E35\u0E49 \u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E19\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32\u0E15\u0E32\u0E23\u0E32\u0E07
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=Se\u00E7im tablosu
32
32
  TBL_TABLE_INVALID=Ge\u00E7ersiz tablo
33
33
 
34
34
  TBL_ROW_SELECT_KEY=Sat\u0131r se\u00E7mek i\u00E7in ara \u00E7ubu\u011Funa bas\u0131n
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=Sat\u0131r se\u00E7mek i\u00E7in SHIFT + BO\u015ELUK tu\u015Funa bas\u0131n
37
+
35
38
  TBL_ROW_DESELECT_KEY=Se\u00E7imi kald\u0131rmak i\u00E7in ara \u00E7ubu\u011Funa bas\u0131n
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=Sat\u0131r se\u00E7imini kald\u0131rmak i\u00E7in SHIFT + BO\u015ELUK tu\u015Funa bas\u0131n
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Analitik tablo
38
43
 
39
44
  TBL_NO_COLUMNS=\u015Eu anda tabloda g\u00F6r\u00FCn\u00FCr s\u00FCtun yok. Tablo ayarlar\u0131nda ihtiyac\u0131n\u0131z olan s\u00FCtunlar\u0131 se\u00E7in.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=\u0421\u0442\u043E\u0432\u043F\u0447\u0438\u043
32
32
  TBL_TABLE_INVALID=\u041D\u0435\u0434\u0456\u0439\u0441\u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u044F
33
33
 
34
34
  TBL_ROW_SELECT_KEY=\u0414\u043B\u044F \u0432\u0438\u0431\u043E\u0440\u0443 \u0440\u044F\u0434\u043A\u0430 \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u043F\u0440\u043E\u0431\u0456\u043B\u0443
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=\u0414\u043B\u044F \u0432\u0438\u0431\u043E\u0440\u0443 \u0440\u044F\u0434\u043A\u0430 \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C SHIFT + \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u043F\u0440\u043E\u0431\u0456\u043B\u0443
37
+
35
38
  TBL_ROW_DESELECT_KEY=\u0414\u043B\u044F \u0441\u043A\u0430\u0441\u0443\u0432\u0430\u043D\u043D\u044F \u0432\u0438\u0431\u043E\u0440\u0443 \u0440\u044F\u0434\u043A\u0430 \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u043F\u0440\u043E\u0431\u0456\u043B\u0443
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=\u0414\u043B\u044F \u0441\u043A\u0430\u0441\u0443\u0432\u0430\u043D\u043D\u044F \u0432\u0438\u0431\u043E\u0440\u0443 \u0440\u044F\u0434\u043A\u0430 \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C SHIFT + \u043A\u043B\u0430\u0432\u0456\u0448\u0443 \u043F\u0440\u043E\u0431\u0456\u043B\u0443
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=\u0410\u043D\u0430\u043B\u0456\u0442\u0438\u0447\u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u044F
38
43
 
39
44
  TBL_NO_COLUMNS=\u041D\u0430\u0440\u0430\u0437\u0456 \u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u0456 \u043D\u0435\u043C\u0430\u0454 \u0432\u0438\u0434\u0438\u043C\u0438\u0445 \u0441\u0442\u043E\u0432\u043F\u0447\u0438\u043A\u0456\u0432. \u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u043F\u043E\u0442\u0440\u0456\u0431\u043D\u0456 \u0441\u0442\u043E\u0432\u043F\u0447\u0438\u043A\u0438 \u0443 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0442\u0430\u0431\u043B\u0438\u0446\u0456.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=C\u1ED9t l\u1EF1a ch\u1ECDn
32
32
  TBL_TABLE_INVALID=Ba\u0309ng kh\u00F4ng h\u01A1\u0323p l\u00EA\u0323
33
33
 
34
34
  TBL_ROW_SELECT_KEY=\u0110\u00EA\u0309 l\u01B0\u0323a cho\u0323n ha\u0300ng, nh\u00E2\u0301n PHI\u0301M DA\u0300I
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=\u0110\u1EC3 ch\u1ECDn h\u00E0ng, nh\u1EA5n SHIFT + PH\u00CDM D\u00C0I
37
+
35
38
  TBL_ROW_DESELECT_KEY=\u0110\u00EA\u0309 bo\u0309 cho\u0323n ha\u0300ng, nh\u00E2\u0301n PHI\u0301M DA\u0300I
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=\u0110\u1EC3 b\u1ECF ch\u1ECDn h\u00E0ng, nh\u1EA5n SHIFT + PH\u00CDM D\u00C0I
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=Ba\u0309ng ph\u00E2n ti\u0301ch
38
43
 
39
44
  TBL_NO_COLUMNS=Hi\u00EA\u0323n gi\u01A1\u0300 kh\u00F4ng co\u0301 c\u00F4\u0323t na\u0300o hi\u00EA\u0309n thi\u0323 trong ba\u0309ng. Vui lo\u0300ng cho\u0323n c\u00F4\u0323t ba\u0323n c\u00E2\u0300n trong thi\u00EA\u0301t l\u00E2\u0323p ba\u0309ng.
@@ -32,8 +32,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=\u9009\u62E9\u5217
32
32
  TBL_TABLE_INVALID=\u65E0\u6548\u7684\u8868
33
33
 
34
34
  TBL_ROW_SELECT_KEY=\u8981\u9009\u62E9\u884C\uFF0C\u8BF7\u6309\u7A7A\u683C\u952E
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=\u8981\u9009\u62E9\u884C\uFF0C\u8BF7\u6309 SHIFT + \u7A7A\u683C\u952E
37
+
35
38
  TBL_ROW_DESELECT_KEY=\u8981\u53D6\u6D88\u9009\u62E9\u884C\uFF0C\u8BF7\u6309\u7A7A\u683C\u952E
36
39
 
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=\u8981\u53D6\u6D88\u9009\u62E9\u884C\uFF0C\u8BF7\u6309 SHIFT + \u7A7A\u683C\u952E
41
+
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=\u5206\u6790\u8868
38
43
 
39
44
  TBL_NO_COLUMNS=\u6B64\u523B\uFF0C\u8868\u4E2D\u6CA1\u6709\u53EF\u89C1\u7684\u5217\u3002\u8BF7\u5728\u8868\u8BBE\u7F6E\u4E2D\u9009\u62E9\u6240\u9700\u7684\u5217\u3002
@@ -31,8 +31,13 @@ TBL_TABLE_SELECTION_COLUMNHEADER=\u9078\u64C7\u6B04
31
31
 
32
32
  TBL_TABLE_INVALID=\u7121\u6548\u7684\u8868\u683C
33
33
 
34
- TBL_ROW_SELECT_KEY=\u82E5\u8981\u9078\u64C7\u5217\uFF0C\u8ACB\u6309\u7A7A\u767D\u9375
35
- TBL_ROW_DESELECT_KEY=\u82E5\u8981\u53D6\u6D88\u9078\u64C7\u5217\uFF0C\u8ACB\u6309\u7A7A\u767D\u9375
34
+ TBL_ROW_SELECT_KEY=\u82E5\u8981\u9078\u64C7\u5217\uFF0C\u8ACB\u6309\u7A7A\u683C\u9375
35
+
36
+ TBL_ROW_SELECT_KEY_ALTERNATIVE=\u82E5\u8981\u9078\u64C7\u5217\uFF0C\u8ACB\u6309 SHIFT + \u7A7A\u683C\u9375
37
+
38
+ TBL_ROW_DESELECT_KEY=\u82E5\u8981\u53D6\u6D88\u9078\u64C7\u5217\uFF0C\u8ACB\u6309\u7A7A\u683C\u9375
39
+
40
+ TBL_ROW_DESELECT_KEY_ALTERNATIVE=\u82E5\u8981\u53D6\u6D88\u9078\u64C7\u5217\uFF0C\u8ACB\u6309 SHIFT + \u7A7A\u683C\u9375
36
41
 
37
42
  TBL_ANALYTICAL_TABLE_ROLE_DESCRIPTION=\u5206\u6790\u8868\u683C
38
43
 
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.table.plugins.SelectionPlugin
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.139.0
27
+ * @version 1.141.0
28
28
 
29
29
  * @private
30
30
  * @alias sap.ui.table.plugins.BindingSelection
@@ -49,10 +49,14 @@ sap.ui.define([
49
49
  * This plugin is intended for server-side models and multi-selection mode. Range selections, including Select All, only work properly if the
50
50
  * count is known. Make sure the model/binding is configured to request the count from the service.
51
51
  * For ease of use, client-side models and single selection are also supported.
52
+ *
53
+ * With ODataV4, use the {@link sap.ui.table.plugins.ODataV4MultiSelection ODataV4MultiSelection} plugin or the
54
+ * {@link sap.ui.table.plugins.ODataV4SingleSelection ODataV4SingleSelection} plugin instead of this one.
55
+ *
52
56
  * @extends sap.ui.table.plugins.SelectionPlugin
53
57
  *
54
58
  * @author SAP SE
55
- * @version 1.139.0
59
+ * @version 1.141.0
56
60
  *
57
61
  * @public
58
62
  * @since 1.64
@@ -162,7 +166,7 @@ sap.ui.define([
162
166
  */
163
167
  MultiSelectionPlugin.prototype.onDeactivate = function(oTable) {
164
168
  SelectionPlugin.prototype.onDeactivate.apply(this, arguments);
165
- oTable.setProperty("selectionMode", SelectionMode.None);
169
+ oTable.setProperty("selectionMode", library.SelectionMode.None);
166
170
  detachFromBinding(this, oTable.getBinding());
167
171
  this.oInnerSelectionPlugin?.destroy();
168
172
  delete this.oInnerSelectionPlugin;
@@ -4,9 +4,11 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
+ "./ODataV4MultiLevel",
7
8
  "./PluginBase",
8
9
  "../utils/TableUtils"
9
10
  ], function(
11
+ ODataV4MultiLevel,
10
12
  PluginBase,
11
13
  TableUtils
12
14
  ) {
@@ -14,22 +16,27 @@ sap.ui.define([
14
16
 
15
17
  /**
16
18
  * @class
17
- * Integrates the aggregation information of the {@link sap.ui.model.odata.v4.ODataListBinding} and the table. The table is enabled to visualize
18
- * group levels and sums according to that information. See {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation} for details.
19
+ * Integrates the information about the data structure of the {@link sap.ui.model.odata.v4.ODataListBinding} and the table. The table is enabled
20
+ * to visualize grouped data with summary rows. Works only in combination with a {@link sap.ui.model.odata.v4.ODataModel}.
21
+ *
22
+ * For details about data aggregation, see {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}.
23
+ *
24
+ * In combination with the {@link sap.ui.table.Table Table} control, this plugin offers a UI for OData V4 that is similar to the one
25
+ * the {@link sap.ui.table.AnalyticalTable AnalyticalTable} offers for OData V2.
19
26
  *
20
- * This plugin only works in combination with a <code>sap.ui.model.odata.v4.ODataModel</code>. Do not add it to a table that is bound to another
21
- * model.
22
27
  * @extends sap.ui.core.Element
23
28
  *
24
29
  * @author SAP SE
25
- * @version 1.139.0
30
+ * @version 1.141.0
26
31
  *
27
- * @private
28
- * @alias sap.ui.table.plugins.V4Aggregation
32
+ * @public
33
+ * @since 1.140
34
+ * @alias sap.ui.table.plugins.ODataV4Aggregation
35
+ * @see {@link topic:7d914317c0b64c23824bf932cc8a4ae1 OData V4: Data Aggregation and Recursive Hierarchy}
29
36
  *
30
37
  * @borrows sap.ui.table.plugins.PluginBase.findOn as findOn
31
38
  */
32
- const V4Aggregation = PluginBase.extend("sap.ui.table.plugins.V4Aggregation", /** @lends sap.ui.table.plugins.V4Aggregation.prototype */ {
39
+ const ODataV4Aggregation = ODataV4MultiLevel.extend("sap.ui.table.plugins.ODataV4Aggregation", {
33
40
  metadata: {
34
41
  library: "sap.ui.table",
35
42
  properties: {
@@ -39,57 +46,63 @@ sap.ui.define([
39
46
  enabled: {type: "boolean", defaultValue: true}, // TODO: Inherited from private PluginBase. Remove once PluginBase is public.
40
47
 
41
48
  /**
42
- * Provide a custom group header title.
49
+ * Provides a custom group header title.
50
+ *
51
+ * This function is called for each group header row in the table. It receives the binding context of the row and the group level
52
+ * property path according to <code>groupLevels</code> in {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}).
53
+ * The function must return a string that is used as the title of the group header row.
43
54
  *
44
- * Parameters: Binding context (sap.ui.model.Context), Name of the grouped property (string)
45
- * Returns: The group header title
55
+ * Function signature: <code>groupHeaderFormatter(oContext: sap.ui.model.odata.v4.Context, sPropertyPath: string): string</code>
56
+ *
57
+ * @example
58
+ * groupHeaderFormatter: function(oContext, sPropertyPath) {
59
+ * // Get the value of the group header property
60
+ * const sGroupHeaderValue = oContext.getProperty(sPropertyPath);
61
+ * // Format the value as a string
62
+ * return `Group: ${sGroupHeaderValue}`;
63
+ * }
46
64
  */
47
65
  groupHeaderFormatter: {type: "function"}
48
66
  }
49
67
  }
50
68
  });
51
69
 
52
- V4Aggregation.findOn = PluginBase.findOn;
53
-
54
- /**
55
- * @override
56
- * @inheritDoc
57
- */
58
- V4Aggregation.prototype.isApplicable = function(oControl) {
59
- return PluginBase.prototype.isApplicable.apply(this, arguments) && oControl.getMetadata().getName() === "sap.ui.table.Table";
60
- };
70
+ ODataV4Aggregation.findOn = PluginBase.findOn;
61
71
 
62
72
  /**
63
73
  * @override
64
74
  * @inheritDoc
65
75
  */
66
- V4Aggregation.prototype.onActivate = function(oTable) {
67
- validateBinding(oTable.getBinding());
68
- updateTableHierarchyMode(oTable);
69
- TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Table.RowsBound, validateBinding);
70
- TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Table.RefreshRows, onTableRefreshRows, this);
76
+ ODataV4Aggregation.prototype.onActivate = function(oTable) {
77
+ ODataV4MultiLevel.prototype.onActivate.apply(this, arguments);
78
+ validateBinding.call(this);
79
+ TableUtils.Grouping.setHierarchyMode(oTable, TableUtils.Grouping.HierarchyMode.Group);
71
80
  TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.UpdateState, updateRowState, this);
72
- TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.Expand, expandRow, this);
73
- TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.Collapse, collapseRow, this);
81
+ TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Table.RefreshRows, validateBinding, this);
74
82
  };
75
83
 
76
84
  /**
77
85
  * @override
78
86
  * @inheritDoc
79
87
  */
80
- V4Aggregation.prototype.onDeactivate = function(oTable) {
88
+ ODataV4Aggregation.prototype.onDeactivate = function(oTable) {
89
+ ODataV4MultiLevel.prototype.onDeactivate.apply(this, arguments);
81
90
  for (const oColumn of oTable.getColumns()) {
82
91
  oColumn._setCellContentVisibilitySettings();
83
92
  }
84
- TableUtils.Grouping.setHierarchyMode(oTable, TableUtils.Grouping.HierarchyMode.Flat);
85
- TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Table.RowsBound, validateBinding);
86
- TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Table.RefreshRows, onTableRefreshRows, this);
87
93
  TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Row.UpdateState, updateRowState, this);
88
- TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Row.Expand, expandRow, this);
89
- TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Row.Collapse, collapseRow, this);
94
+ TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Table.RefreshRows, validateBinding, this);
90
95
  };
91
96
 
92
- V4Aggregation.prototype.declareColumnsHavingTotals = function(aColumnsWithTotals) {
97
+ /**
98
+ * Declares the columns that have totals. Columns with totals show the data in the group header row and the summary row. Columns without totals
99
+ * do not show the data in the group header row and the summary row.
100
+ *
101
+ * @param {Array} aColumnsWithTotals The columns that display totals
102
+ * @private
103
+ * @ui5-restricted sap.ui.mdc.odata.v4.TableDelegate
104
+ */
105
+ ODataV4Aggregation.prototype.declareColumnsHavingTotals = function(aColumnsWithTotals) {
93
106
  const aColumns = this.getControl()?.getColumns() ?? [];
94
107
 
95
108
  for (const oColumn of aColumns) {
@@ -102,25 +115,12 @@ sap.ui.define([
102
115
  }
103
116
  };
104
117
 
105
- function validateBinding(oBinding) {
106
- if (!oBinding) {
107
- return;
108
- }
109
-
110
- if (!oBinding.getModel().isA("sap.ui.model.odata.v4.ODataModel")) {
111
- throw new Error("Model must be sap.ui.model.odata.v4.ODataModel");
112
- }
113
- }
118
+ function validateBinding() {
119
+ const oBinding = this.getControl()?.getBinding();
120
+ const mAggregation = oBinding?.getAggregation();
114
121
 
115
- function onTableRefreshRows() {
116
- updateTableHierarchyMode(this.getControl());
117
- }
118
-
119
- function updateTableHierarchyMode(oTable) {
120
- if ("hierarchyQualifier" in (oTable.getBinding()?.getAggregation() || {})) {
121
- TableUtils.Grouping.setHierarchyMode(oTable, TableUtils.Grouping.HierarchyMode.Tree);
122
- } else {
123
- TableUtils.Grouping.setHierarchyMode(oTable, TableUtils.Grouping.HierarchyMode.Group);
122
+ if (oBinding && (!mAggregation || "hierarchyQualifier" in mAggregation)) {
123
+ throw new Error("Only data aggregation is supported");
124
124
  }
125
125
  }
126
126
 
@@ -141,7 +141,7 @@ sap.ui.define([
141
141
  oState.level = iLevel + 1; // In the binding context, summary rows are one level higher than needed in the table.
142
142
  oState.expandable = false; // In the binding context, the total summary (grand total) is expanded.
143
143
  } else if (bIsGroupHeader) {
144
- oState.type = oState.Type.GroupHeader; // In tree mode, the row type GroupHeader is ignored and treated like row type Standard.
144
+ oState.type = oState.Type.GroupHeader;
145
145
  setGroupHeaderTitle(oState, this.getGroupHeaderFormatter());
146
146
  }
147
147
  }
@@ -168,21 +168,5 @@ sap.ui.define([
168
168
  }
169
169
  }
170
170
 
171
- function expandRow(oRow) {
172
- const oBindingContext = TableUtils.getBindingContextOfRow(oRow);
173
-
174
- if (oBindingContext) {
175
- oBindingContext.expand();
176
- }
177
- }
178
-
179
- function collapseRow(oRow) {
180
- const oBindingContext = TableUtils.getBindingContextOfRow(oRow);
181
-
182
- if (oBindingContext) {
183
- oBindingContext.collapse();
184
- }
185
- }
186
-
187
- return V4Aggregation;
171
+ return ODataV4Aggregation;
188
172
  });
@@ -0,0 +1,94 @@
1
+ /*
2
+ * OpenUI5
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([
7
+ "./ODataV4MultiLevel",
8
+ "./PluginBase",
9
+ "../utils/TableUtils"
10
+ ], function(
11
+ ODataV4MultiLevel,
12
+ PluginBase,
13
+ TableUtils
14
+ ) {
15
+ "use strict";
16
+
17
+ /**
18
+ * @class
19
+ * Integrates the information about the data structure of the {@link sap.ui.model.odata.v4.ODataListBinding} and the table. The table is enabled
20
+ * to visualize hierarchical data. Works only in combination with a {@link sap.ui.model.odata.v4.ODataModel}.
21
+ *
22
+ * For details about hierarchies, see {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}.
23
+ *
24
+ * In combination with the {@link sap.ui.table.Table Table} control, this plugin offers a UI for OData V4 that is similar to the one
25
+ * the {@link sap.ui.table.TreeTable TreeTable} offers for other models.
26
+ *
27
+ * @extends sap.ui.core.Element
28
+ *
29
+ * @author SAP SE
30
+ * @version 1.141.0
31
+ *
32
+ * @public
33
+ * @since 1.140
34
+ * @alias sap.ui.table.plugins.ODataV4Hierarchy
35
+ * @see {@link topic:7d914317c0b64c23824bf932cc8a4ae1 OData V4: Data Aggregation and Recursive Hierarchy}
36
+ *
37
+ * @borrows sap.ui.table.plugins.PluginBase.findOn as findOn
38
+ */
39
+ const ODataV4Hierarchy = ODataV4MultiLevel.extend("sap.ui.table.plugins.ODataV4Hierarchy", {
40
+ metadata: {
41
+ library: "sap.ui.table",
42
+ properties: {
43
+ /**
44
+ * Indicates whether this plugin is enabled.
45
+ */
46
+ enabled: {type: "boolean", defaultValue: true} // TODO: Inherited from private PluginBase. Remove once PluginBase is public.
47
+ }
48
+ }
49
+ });
50
+
51
+ ODataV4Hierarchy.findOn = PluginBase.findOn;
52
+
53
+ /**
54
+ * @override
55
+ * @inheritDoc
56
+ */
57
+ ODataV4Hierarchy.prototype.onActivate = function(oTable) {
58
+ ODataV4MultiLevel.prototype.onActivate.apply(this, arguments);
59
+ validateBinding.call(this);
60
+ TableUtils.Grouping.setHierarchyMode(oTable, TableUtils.Grouping.HierarchyMode.Tree);
61
+ TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Row.UpdateState, updateRowState, this);
62
+ TableUtils.Hook.register(oTable, TableUtils.Hook.Keys.Table.RefreshRows, validateBinding, this);
63
+ };
64
+
65
+ /**
66
+ * @override
67
+ * @inheritDoc
68
+ */
69
+ ODataV4Hierarchy.prototype.onDeactivate = function(oTable) {
70
+ ODataV4MultiLevel.prototype.onDeactivate.apply(this, arguments);
71
+ TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Row.UpdateState, updateRowState, this);
72
+ TableUtils.Hook.deregister(oTable, TableUtils.Hook.Keys.Table.RefreshRows, validateBinding, this);
73
+ };
74
+
75
+ function validateBinding() {
76
+ const oBinding = this.getControl()?.getBinding();
77
+ const mAggregation = oBinding?.getAggregation();
78
+
79
+ if (oBinding && (!mAggregation || !("hierarchyQualifier" in mAggregation))) {
80
+ throw new Error("Only data aggregation is supported");
81
+ }
82
+ }
83
+
84
+ function updateRowState(oState) {
85
+ const vIsExpanded = oState.context.getProperty("@$ui5.node.isExpanded");
86
+ const bIsNode = vIsExpanded !== undefined;
87
+
88
+ oState.level = oState.context.getProperty("@$ui5.node.level") ?? 1;
89
+ oState.expandable = bIsNode;
90
+ oState.expanded = vIsExpanded;
91
+ }
92
+
93
+ return ODataV4Hierarchy;
94
+ });