@oracle/oraclejet-webdriver 16.1.6 → 17.0.1

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 (249) hide show
  1. package/elements/OjWebElement.js +2 -26
  2. package/elements/OjWebElement.js.map +1 -1
  3. package/elements/OjWebElement.ts +6 -40
  4. package/elements/oj-chart/OjChartBase.ts +8 -0
  5. package/elements/oj-checkboxset/OjCheckboxset.js +11 -12
  6. package/elements/oj-checkboxset/OjCheckboxset.js.map +1 -1
  7. package/elements/oj-checkboxset/OjCheckboxset.ts +14 -14
  8. package/elements/oj-combobox-many/OjComboboxMany.js +11 -20
  9. package/elements/oj-combobox-many/OjComboboxMany.js.map +1 -1
  10. package/elements/oj-combobox-many/OjComboboxMany.ts +14 -22
  11. package/elements/oj-combobox-one/OjComboboxOne.js +9 -18
  12. package/elements/oj-combobox-one/OjComboboxOne.js.map +1 -1
  13. package/elements/oj-combobox-one/OjComboboxOne.ts +12 -20
  14. package/elements/oj-data-grid/OjDataGridBase.ts +24 -0
  15. package/elements/oj-date-picker/OjDatePickerBase.js +20 -20
  16. package/elements/oj-date-picker/OjDatePickerBase.ts +53 -20
  17. package/elements/oj-date-time-picker/OjDateTimePickerBase.js +16 -16
  18. package/elements/oj-date-time-picker/OjDateTimePickerBase.ts +48 -16
  19. package/elements/oj-diagram/OjDiagramBase.ts +4 -0
  20. package/elements/oj-file-picker/OjFilePicker.js +90 -24
  21. package/elements/oj-file-picker/OjFilePicker.js.map +1 -1
  22. package/elements/oj-file-picker/OjFilePicker.ts +101 -27
  23. package/elements/oj-input-date/OjInputDateBase.js +7 -7
  24. package/elements/oj-input-date/OjInputDateBase.ts +37 -7
  25. package/elements/oj-input-date-time/OjInputDateTimeBase.js +7 -7
  26. package/elements/oj-input-date-time/OjInputDateTimeBase.ts +37 -7
  27. package/elements/oj-list-view/OjListView.js +6 -6
  28. package/elements/oj-list-view/OjListView.js.map +1 -1
  29. package/elements/oj-list-view/OjListView.ts +9 -8
  30. package/elements/oj-navigation-list/OjNavigationList.js +8 -10
  31. package/elements/oj-navigation-list/OjNavigationList.js.map +1 -1
  32. package/elements/oj-navigation-list/OjNavigationList.ts +11 -12
  33. package/elements/oj-navigation-list/OjNavigationListBase.js +2 -2
  34. package/elements/oj-navigation-list/OjNavigationListBase.ts +3 -2
  35. package/elements/oj-popup/OjPopupBase.js +1 -1
  36. package/elements/oj-popup/OjPopupBase.ts +1 -1
  37. package/elements/oj-row-expander/OjRowExpanderBase.ts +4 -0
  38. package/elements/oj-select-many/OjSelectMany.js +11 -20
  39. package/elements/oj-select-many/OjSelectMany.js.map +1 -1
  40. package/elements/oj-select-many/OjSelectMany.ts +14 -22
  41. package/elements/oj-select-one/OjSelectOne.js +9 -17
  42. package/elements/oj-select-one/OjSelectOne.js.map +1 -1
  43. package/elements/oj-select-one/OjSelectOne.ts +12 -19
  44. package/elements/oj-select-single/OjSelectSingle.js +7 -14
  45. package/elements/oj-select-single/OjSelectSingle.js.map +1 -1
  46. package/elements/oj-select-single/OjSelectSingle.ts +10 -16
  47. package/elements/oj-stream-list/OjStreamList.js +28 -33
  48. package/elements/oj-stream-list/OjStreamList.js.map +1 -1
  49. package/elements/oj-stream-list/OjStreamList.ts +28 -34
  50. package/elements/oj-sunburst/OjSunburstBase.ts +8 -0
  51. package/elements/oj-swipe-actions/OjSwipeActions.js +7 -10
  52. package/elements/oj-swipe-actions/OjSwipeActions.js.map +1 -1
  53. package/elements/oj-swipe-actions/OjSwipeActions.ts +11 -15
  54. package/elements/oj-tab-bar/OjTabBarBase.ts +1 -0
  55. package/elements/oj-table/OjTable.js +100 -81
  56. package/elements/oj-table/OjTable.js.map +1 -1
  57. package/elements/oj-table/OjTable.ts +146 -97
  58. package/elements/oj-table/OjTableBase.js +9 -0
  59. package/elements/oj-table/OjTableBase.js.map +1 -1
  60. package/elements/oj-table/OjTableBase.ts +10 -0
  61. package/elements/oj-tree-view/OjTreeView.js +25 -29
  62. package/elements/oj-tree-view/OjTreeView.js.map +1 -1
  63. package/elements/oj-tree-view/OjTreeView.ts +34 -35
  64. package/elements/oj-treemap/OjTreemapBase.ts +8 -0
  65. package/index.js +28 -139
  66. package/index.js.map +1 -1
  67. package/index.ts +29 -151
  68. package/lib/busy-context-utils.js +28 -46
  69. package/lib/busy-context-utils.js.map +1 -1
  70. package/lib/busy-context-utils.ts +39 -48
  71. package/lib/dataprovider-utils.js +24 -28
  72. package/lib/dataprovider-utils.js.map +1 -1
  73. package/lib/dataprovider-utils.ts +28 -31
  74. package/lib/no-require-jet.js +12 -0
  75. package/lib/no-require-jet.js.map +1 -0
  76. package/lib/no-require-jet.ts +8 -0
  77. package/lib/oj-module-proxy.js +113 -0
  78. package/lib/oj-module-proxy.js.map +1 -0
  79. package/lib/oj-module-proxy.ts +123 -0
  80. package/lib/viewmodel-utils.js +99 -0
  81. package/lib/viewmodel-utils.js.map +1 -0
  82. package/lib/viewmodel-utils.ts +107 -0
  83. package/package.json +6 -6
  84. package/tsconfig.json +2 -1
  85. package/wdtsdoc/assets/navigation.js +1 -1
  86. package/wdtsdoc/assets/search.js +1 -1
  87. package/wdtsdoc/classes/elements.OjAccordion.html +2 -2
  88. package/wdtsdoc/classes/elements.OjActionCard.html +2 -2
  89. package/wdtsdoc/classes/elements.OjButton.html +2 -2
  90. package/wdtsdoc/classes/elements.OjButtonsetMany.html +2 -2
  91. package/wdtsdoc/classes/elements.OjButtonsetOne.html +2 -2
  92. package/wdtsdoc/classes/elements.OjChart.html +2 -2
  93. package/wdtsdoc/classes/elements.OjCheckboxset.html +2 -2
  94. package/wdtsdoc/classes/elements.OjCollapsible.html +2 -2
  95. package/wdtsdoc/classes/elements.OjColorPalette.html +2 -2
  96. package/wdtsdoc/classes/elements.OjColorSpectrum.html +2 -2
  97. package/wdtsdoc/classes/elements.OjComboboxMany.html +2 -2
  98. package/wdtsdoc/classes/elements.OjComboboxOne.html +2 -2
  99. package/wdtsdoc/classes/elements.OjConveyorBelt.html +2 -2
  100. package/wdtsdoc/classes/elements.OjDataGrid.html +2 -2
  101. package/wdtsdoc/classes/elements.OjDatePicker.html +67 -49
  102. package/wdtsdoc/classes/elements.OjDateTimePicker.html +57 -42
  103. package/wdtsdoc/classes/elements.OjDiagram.html +2 -2
  104. package/wdtsdoc/classes/elements.OjDialog.html +2 -2
  105. package/wdtsdoc/classes/elements.OjDrawerLayout.html +2 -2
  106. package/wdtsdoc/classes/elements.OjDrawerPopup.html +2 -2
  107. package/wdtsdoc/classes/elements.OjFilePicker.html +11 -2
  108. package/wdtsdoc/classes/elements.OjFilmStrip.html +2 -2
  109. package/wdtsdoc/classes/elements.OjGantt.html +2 -2
  110. package/wdtsdoc/classes/elements.OjIndexer.html +2 -2
  111. package/wdtsdoc/classes/elements.OjInputDate.html +28 -21
  112. package/wdtsdoc/classes/elements.OjInputDateTime.html +28 -21
  113. package/wdtsdoc/classes/elements.OjInputNumber.html +2 -2
  114. package/wdtsdoc/classes/elements.OjInputPassword.html +2 -2
  115. package/wdtsdoc/classes/elements.OjInputSearch.html +2 -2
  116. package/wdtsdoc/classes/elements.OjInputText.html +2 -2
  117. package/wdtsdoc/classes/elements.OjInputTime.html +2 -2
  118. package/wdtsdoc/classes/elements.OjLabel.html +2 -2
  119. package/wdtsdoc/classes/elements.OjLedGauge.html +2 -2
  120. package/wdtsdoc/classes/elements.OjLegend.html +2 -2
  121. package/wdtsdoc/classes/elements.OjListView.html +4 -4
  122. package/wdtsdoc/classes/elements.OjMasonryLayout.html +2 -2
  123. package/wdtsdoc/classes/elements.OjMenu.html +2 -2
  124. package/wdtsdoc/classes/elements.OjMenuButton.html +2 -2
  125. package/wdtsdoc/classes/elements.OjMessage.html +2 -2
  126. package/wdtsdoc/classes/elements.OjMessageBanner.html +2 -2
  127. package/wdtsdoc/classes/elements.OjNBox.html +2 -2
  128. package/wdtsdoc/classes/elements.OjNavigationList.html +14 -12
  129. package/wdtsdoc/classes/elements.OjPagingControl.html +2 -2
  130. package/wdtsdoc/classes/elements.OjPictoChart.html +2 -2
  131. package/wdtsdoc/classes/elements.OjPopup.html +6 -5
  132. package/wdtsdoc/classes/elements.OjProgress.html +2 -2
  133. package/wdtsdoc/classes/elements.OjProgressList.html +2 -2
  134. package/wdtsdoc/classes/elements.OjRadioset.html +2 -2
  135. package/wdtsdoc/classes/elements.OjRatingGauge.html +2 -2
  136. package/wdtsdoc/classes/elements.OjRefresher.html +2 -2
  137. package/wdtsdoc/classes/elements.OjRowExpander.html +2 -2
  138. package/wdtsdoc/classes/elements.OjSelectMany.html +2 -2
  139. package/wdtsdoc/classes/elements.OjSelectOne.html +2 -2
  140. package/wdtsdoc/classes/elements.OjSelectSingle.html +2 -2
  141. package/wdtsdoc/classes/elements.OjSelector.html +2 -2
  142. package/wdtsdoc/classes/elements.OjSlider.html +2 -2
  143. package/wdtsdoc/classes/elements.OjSparkChart.html +2 -2
  144. package/wdtsdoc/classes/elements.OjStatusMeterGauge.html +2 -2
  145. package/wdtsdoc/classes/elements.OjStreamList.html +2 -2
  146. package/wdtsdoc/classes/elements.OjSunburst.html +2 -2
  147. package/wdtsdoc/classes/elements.OjSwipeActions.html +2 -2
  148. package/wdtsdoc/classes/elements.OjSwitch.html +2 -2
  149. package/wdtsdoc/classes/elements.OjTabBar.html +2 -2
  150. package/wdtsdoc/classes/elements.OjTable.html +27 -9
  151. package/wdtsdoc/classes/elements.OjTagCloud.html +2 -2
  152. package/wdtsdoc/classes/elements.OjTextArea.html +2 -2
  153. package/wdtsdoc/classes/elements.OjThematicMap.html +2 -2
  154. package/wdtsdoc/classes/elements.OjTimeAxis.html +2 -2
  155. package/wdtsdoc/classes/elements.OjTimeline.html +2 -2
  156. package/wdtsdoc/classes/elements.OjTrain.html +2 -2
  157. package/wdtsdoc/classes/elements.OjTreeView.html +5 -5
  158. package/wdtsdoc/classes/elements.OjTreemap.html +2 -2
  159. package/wdtsdoc/classes/elements.OjWaterfallLayout.html +2 -2
  160. package/wdtsdoc/classes/elements.OjWebElement.html +2 -2
  161. package/wdtsdoc/classes/index.DriverManager.html +2 -2
  162. package/wdtsdoc/classes/index.Expectation.html +2 -2
  163. package/wdtsdoc/functions/elements.ojAccordion-1.html +2 -2
  164. package/wdtsdoc/functions/elements.ojActionCard-1.html +2 -2
  165. package/wdtsdoc/functions/elements.ojButton-1.html +2 -2
  166. package/wdtsdoc/functions/elements.ojButtonsetMany-1.html +2 -2
  167. package/wdtsdoc/functions/elements.ojButtonsetOne-1.html +2 -2
  168. package/wdtsdoc/functions/elements.ojChart-1.html +2 -2
  169. package/wdtsdoc/functions/elements.ojCheckboxset-1.html +2 -2
  170. package/wdtsdoc/functions/elements.ojCollapsible-1.html +2 -2
  171. package/wdtsdoc/functions/elements.ojColorPalette-1.html +2 -2
  172. package/wdtsdoc/functions/elements.ojColorSpectrum-1.html +2 -2
  173. package/wdtsdoc/functions/elements.ojComboboxMany-1.html +2 -2
  174. package/wdtsdoc/functions/elements.ojComboboxOne-1.html +2 -2
  175. package/wdtsdoc/functions/elements.ojConveyorBelt-1.html +2 -2
  176. package/wdtsdoc/functions/elements.ojDataGrid-1.html +2 -2
  177. package/wdtsdoc/functions/elements.ojDatePicker-1.html +2 -2
  178. package/wdtsdoc/functions/elements.ojDateTimePicker-1.html +2 -2
  179. package/wdtsdoc/functions/elements.ojDiagram-1.html +2 -2
  180. package/wdtsdoc/functions/elements.ojDialog-1.html +2 -2
  181. package/wdtsdoc/functions/elements.ojDrawerLayout-1.html +2 -2
  182. package/wdtsdoc/functions/elements.ojDrawerPopup-1.html +2 -2
  183. package/wdtsdoc/functions/elements.ojFilePicker-1.html +2 -2
  184. package/wdtsdoc/functions/elements.ojFilmStrip-1.html +2 -2
  185. package/wdtsdoc/functions/elements.ojGantt-1.html +2 -2
  186. package/wdtsdoc/functions/elements.ojIndexer-1.html +2 -2
  187. package/wdtsdoc/functions/elements.ojInputDate-1.html +2 -2
  188. package/wdtsdoc/functions/elements.ojInputDateTime-1.html +2 -2
  189. package/wdtsdoc/functions/elements.ojInputNumber-1.html +2 -2
  190. package/wdtsdoc/functions/elements.ojInputPassword-1.html +2 -2
  191. package/wdtsdoc/functions/elements.ojInputSearch-1.html +2 -2
  192. package/wdtsdoc/functions/elements.ojInputText-1.html +2 -2
  193. package/wdtsdoc/functions/elements.ojInputTime-1.html +2 -2
  194. package/wdtsdoc/functions/elements.ojLabel-1.html +2 -2
  195. package/wdtsdoc/functions/elements.ojLedGauge-1.html +2 -2
  196. package/wdtsdoc/functions/elements.ojLegend-1.html +2 -2
  197. package/wdtsdoc/functions/elements.ojListView-1.html +2 -2
  198. package/wdtsdoc/functions/elements.ojMasonryLayout-1.html +2 -2
  199. package/wdtsdoc/functions/elements.ojMenu-1.html +2 -2
  200. package/wdtsdoc/functions/elements.ojMenuButton-1.html +2 -2
  201. package/wdtsdoc/functions/elements.ojMessage-1.html +2 -2
  202. package/wdtsdoc/functions/elements.ojMessageBanner-1.html +2 -2
  203. package/wdtsdoc/functions/elements.ojNBox-1.html +2 -2
  204. package/wdtsdoc/functions/elements.ojNavigationList-1.html +2 -2
  205. package/wdtsdoc/functions/elements.ojPagingControl-1.html +2 -2
  206. package/wdtsdoc/functions/elements.ojPictoChart-1.html +2 -2
  207. package/wdtsdoc/functions/elements.ojPopup-1.html +2 -2
  208. package/wdtsdoc/functions/elements.ojProgress-1.html +2 -2
  209. package/wdtsdoc/functions/elements.ojProgressList-1.html +2 -2
  210. package/wdtsdoc/functions/elements.ojRadioset-1.html +2 -2
  211. package/wdtsdoc/functions/elements.ojRatingGauge-1.html +2 -2
  212. package/wdtsdoc/functions/elements.ojRefresher-1.html +2 -2
  213. package/wdtsdoc/functions/elements.ojRowExpander-1.html +2 -2
  214. package/wdtsdoc/functions/elements.ojSelectMany-1.html +2 -2
  215. package/wdtsdoc/functions/elements.ojSelectOne-1.html +2 -2
  216. package/wdtsdoc/functions/elements.ojSelectSingle-1.html +2 -2
  217. package/wdtsdoc/functions/elements.ojSelector-1.html +2 -2
  218. package/wdtsdoc/functions/elements.ojSlider-1.html +2 -2
  219. package/wdtsdoc/functions/elements.ojSparkChart-1.html +2 -2
  220. package/wdtsdoc/functions/elements.ojStatusMeterGauge-1.html +2 -2
  221. package/wdtsdoc/functions/elements.ojStreamList-1.html +2 -2
  222. package/wdtsdoc/functions/elements.ojSunburst-1.html +2 -2
  223. package/wdtsdoc/functions/elements.ojSwipeActions-1.html +2 -2
  224. package/wdtsdoc/functions/elements.ojSwitch-1.html +2 -2
  225. package/wdtsdoc/functions/elements.ojTabBar-1.html +2 -2
  226. package/wdtsdoc/functions/elements.ojTable-1.html +2 -2
  227. package/wdtsdoc/functions/elements.ojTagCloud-1.html +2 -2
  228. package/wdtsdoc/functions/elements.ojTextArea-1.html +2 -2
  229. package/wdtsdoc/functions/elements.ojThematicMap-1.html +2 -2
  230. package/wdtsdoc/functions/elements.ojTimeAxis-1.html +2 -2
  231. package/wdtsdoc/functions/elements.ojTimeline-1.html +2 -2
  232. package/wdtsdoc/functions/elements.ojTrain-1.html +2 -2
  233. package/wdtsdoc/functions/elements.ojTreeView-1.html +2 -2
  234. package/wdtsdoc/functions/elements.ojTreemap-1.html +2 -2
  235. package/wdtsdoc/functions/elements.ojWaterfallLayout-1.html +2 -2
  236. package/wdtsdoc/functions/elements.ojWebElement-1.html +2 -2
  237. package/wdtsdoc/functions/index.ScreenshotManager.create.html +2 -2
  238. package/wdtsdoc/functions/index.ScreenshotManager.get.html +2 -2
  239. package/wdtsdoc/functions/index.ScreenshotManager.set.html +2 -2
  240. package/wdtsdoc/functions/index.fetchKeyByFilter.html +2 -2
  241. package/wdtsdoc/functions/index.register.html +2 -2
  242. package/wdtsdoc/functions/index.slotProxy-1.html +2 -2
  243. package/wdtsdoc/index.html +2 -2
  244. package/wdtsdoc/interfaces/index.DriverLike.html +2 -2
  245. package/wdtsdoc/interfaces/index.SlotProxy.html +2 -2
  246. package/wdtsdoc/modules/elements.html +2 -2
  247. package/wdtsdoc/modules/index.ScreenshotManager.html +2 -2
  248. package/wdtsdoc/modules/index.html +2 -2
  249. package/wdtsdoc/variables/index.default.html +7 -4
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OjTable = void 0;
4
4
  const OjTableBase_1 = require("./OjTableBase");
5
5
  const __1 = require("../../");
6
+ const oj_module_proxy_1 = require("../../lib/oj-module-proxy");
6
7
  /**
7
8
  * The component WebElement for [oj-table](../../jsdocs/oj.ojTable.html).
8
9
  * Do not instantiate this class directly, instead, use
@@ -15,18 +16,18 @@ class OjTable extends OjTableBase_1.OjTableBase {
15
16
  * @param selected The value to set for "selected"
16
17
  * @override
17
18
  * @typeparam K Type of keys
19
+ * @deprecated Since 17.0.0 use changeSelectedKeys as the replacement.
18
20
  */
19
21
  async changeSelected(selected) {
20
22
  await this.whenReady();
21
- await this.getDriver().executeScript(`
22
- const ele = arguments[0];
23
- const selected = arguments[1];
24
- const keySet = require('ojs/ojkeyset');
23
+ return (0, oj_module_proxy_1.executeWithModules)(this.getDriver(), ['KeySet'], [this, selected], `
24
+ (({ KeySetImpl }, ele, selected) => {
25
25
  ele.selected = {
26
- row: new keySet.KeySetImpl(selected.row),
27
- column: new keySet.KeySetImpl(selected.column)
26
+ row: new KeySetImpl(selected.row),
27
+ column: new KeySetImpl(selected.column)
28
28
  };
29
- `, this, selected);
29
+ })
30
+ `);
30
31
  }
31
32
  _changeScrollPosition(scrollPosition) {
32
33
  // OjTableBase.ScrollPosition marks all properties required, although they're not
@@ -39,6 +40,7 @@ class OjTable extends OjTableBase_1.OjTableBase {
39
40
  * @override
40
41
  * @typeparam K Type of keys
41
42
  * @return The value of "selected" property.
43
+ * @deprecated Since 17.0.0 use getSelectedKeys as the replacement.
42
44
  */
43
45
  async getSelected() {
44
46
  await this.whenReady();
@@ -70,13 +72,8 @@ class OjTable extends OjTableBase_1.OjTableBase {
70
72
  rowKey: itemLocator.rowKey
71
73
  });
72
74
  }
73
- const el = await this.getDriver().executeAsyncScript(`
74
- const element = arguments[0];
75
- const rowIndex = arguments[1];
76
- let columnIndex = arguments[2];
77
- const rowKey = arguments[3];
78
- const columnKey = arguments[4];
79
- const done = arguments[5];
75
+ const el = await (0, oj_module_proxy_1.executeWithModules)(this.getDriver(), ['KeyUtils'], [this, itemLocator], `
76
+ (({ equals }, element, { rowIndex, columnIndex, rowKey, columnKey }) => {
80
77
  const columns = element.columns;
81
78
  if (columnIndex == null) {
82
79
  for (let i = 0; i < columns.length; i++) {
@@ -87,45 +84,44 @@ class OjTable extends OjTableBase_1.OjTableBase {
87
84
  }
88
85
  }
89
86
  if (columnIndex == null || columnIndex >= columns.length) {
90
- done(null);
87
+ return null;
91
88
  }
92
89
  const defaultCellTemplate = element.querySelectorAll('[slot="cellTemplate"]')[0];
93
90
  if (columns[columnIndex].template == null && columns[columnIndex].renderer == null &&
94
91
  defaultCellTemplate == null) {
95
- done(null);
92
+ return null;
96
93
  } else {
97
94
  if (rowIndex != null) {
98
- done(element.getNodeBySubId({ subId: 'oj-table-cell', rowIndex: rowIndex, columnIndex: columnIndex }));
95
+ return element.getNodeBySubId({ subId: 'oj-table-cell', rowIndex: rowIndex, columnIndex: columnIndex });
99
96
  } else {
100
- require(['ojs/ojcore'], function(oj) {
101
- const rows = element.querySelectorAll('.oj-table-body-row');
102
- let row;
103
- for (let i = 0; i < rows.length; i++) {
104
- if (oj.KeyUtils.equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
105
- row = rows[i];
106
- break;
107
- }
108
- }
109
- if (row == null) {
110
- done(null);
97
+ const rows = element.querySelectorAll('.oj-table-body-row');
98
+ let row;
99
+ for (let i = 0; i < rows.length; i++) {
100
+ if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
101
+ row = rows[i];
102
+ break;
111
103
  }
112
- const cells = row.querySelectorAll('.oj-table-data-cell');
113
- if (cells.length === columns.length) {
114
- done(cells[columnIndex]);
115
- } else {
116
- let index = 0;
117
- for (let i = 0; i < cells.length; i++) {
118
- let colSpan = cells[i].colSpan
119
- if (columnIndex >= index && columnIndex < index + colSpan) {
120
- done(cells[i]);
121
- }
122
- index += colSpan;
104
+ }
105
+ if (row == null) {
106
+ return null;
107
+ }
108
+ const cells = row.querySelectorAll('.oj-table-data-cell');
109
+ if (cells.length === columns.length) {
110
+ return cells[columnIndex];
111
+ } else {
112
+ let index = 0;
113
+ for (let i = 0; i < cells.length; i++) {
114
+ let colSpan = cells[i].colSpan
115
+ if (columnIndex >= index && columnIndex < index + colSpan) {
116
+ return cells[i];
123
117
  }
118
+ index += colSpan;
124
119
  }
125
- });
120
+ }
126
121
  }
127
122
  }
128
- `, this, itemLocator.rowIndex, itemLocator.columnIndex, itemLocator.rowKey, itemLocator.columnKey);
123
+ })
124
+ `);
129
125
  if (el) {
130
126
  return (0, __1.slotProxy)(el, this);
131
127
  }
@@ -151,33 +147,29 @@ class OjTable extends OjTableBase_1.OjTableBase {
151
147
  rowKey: itemLocator.rowKey
152
148
  });
153
149
  }
154
- const el = await this.getDriver().executeAsyncScript(`
155
- const element = arguments[0];
156
- const rowIndex = arguments[1];
157
- const rowKey = arguments[2];
158
- const done = arguments[3];
150
+ const el = await (0, oj_module_proxy_1.executeWithModules)(this.getDriver(), ['KeyUtils'], [this, itemLocator], `
151
+ (({ equals }, element, { rowIndex, rowKey }) => {
159
152
  const rowTemplate = element.querySelectorAll('[slot="rowTemplate"]')[0];
160
153
  const rowRenderer = element.rowRenderer;
161
154
  if (rowTemplate == null && rowRenderer == null) {
162
- done(null);
155
+ return null;
163
156
  }
164
- require(['ojs/ojcore'], function(oj) {
165
157
  const rows = element.querySelectorAll('.oj-table-body-row');
166
158
  if (rowKey != null) {
167
159
  for (let i = 0; i < rows.length; i++) {
168
- if (oj.KeyUtils.equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
169
- done(rows[i]);
160
+ if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
161
+ return rows[i];
170
162
  }
171
163
  }
172
- done(null);
164
+ return null;
173
165
  } else {
174
166
  if (rowIndex == null || rowIndex >= rows.length){
175
- done(null);
167
+ return null;
176
168
  }
177
- done(rows[rowIndex]);
169
+ return rows[rowIndex];
178
170
  }
179
- });
180
- `, this, itemLocator.rowIndex, itemLocator.rowKey);
171
+ })
172
+ `);
181
173
  if (el) {
182
174
  return (0, __1.slotProxy)(el, this);
183
175
  }
@@ -266,19 +258,14 @@ class OjTable extends OjTableBase_1.OjTableBase {
266
258
  */
267
259
  async doSort(header, direction) {
268
260
  await this.whenReady();
269
- const msg = await this.getDriver().executeAsyncScript(`
270
- const element = arguments[0];
271
- const done = arguments[3];
272
- const headerId = arguments[1];
273
- const sortDirection = arguments[2];
274
- require(['ojs/ojcustomelement-utils'], function (utils) {
261
+ const msg = await (0, oj_module_proxy_1.executeWithModules)(this.getDriver(), ['CustomElementUtils'], [this, header, direction], `
262
+ (({ getElementBridge }, element, headerId, sortDirection) => {
275
263
  // Retrieve the widget instance from the element
276
- const bridge = utils.CustomElementUtils.getElementBridge(element);
264
+ const bridge = getElementBridge(element);
277
265
  const widget = bridge._WIDGET_INSTANCE;
278
- const err = widget._doSortHelper(headerId, sortDirection);
279
- done(err);
280
- });
281
- `, this, header, direction);
266
+ return widget._doSortHelper(headerId, sortDirection);
267
+ })
268
+ `);
282
269
  if (msg) {
283
270
  throw Error(msg);
284
271
  }
@@ -301,37 +288,69 @@ class OjTable extends OjTableBase_1.OjTableBase {
301
288
  rowKey: itemLocator.rowKey
302
289
  });
303
290
  }
304
- const el = await this.getDriver().executeAsyncScript(`
305
- const element = arguments[0];
306
- const rowIndex = arguments[1];
307
- const rowKey = arguments[2];
308
- const done = arguments[3];
309
- require(['ojs/ojcore'], function(oj) {
291
+ const el = await (0, oj_module_proxy_1.executeWithModules)(this.getDriver(), ['KeyUtils'], [this, itemLocator], `
292
+ (({ equals }, element, { rowIndex, rowKey }) => {
310
293
  const rows = element.querySelectorAll('.oj-table-body-row');
311
294
  if (rowKey != null) {
312
295
  for (let i = 0; i < rows.length; i++) {
313
- if (oj.KeyUtils.equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
314
- done(rows[i]);
296
+ if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
297
+ return rows[i];
315
298
  }
316
299
  }
317
- done(null);
300
+ return null;
318
301
  } else {
319
302
  if (rowIndex == null || rowIndex >= rows.length){
320
- done(null);
303
+ return null;
321
304
  }
322
- done(rows[rowIndex]);
305
+ return rows[rowIndex];
323
306
  }
324
- });
325
- `, this, itemLocator.rowIndex, itemLocator.rowKey);
307
+ })
308
+ `);
326
309
  if (el) {
327
310
  const actions = this.getDriver().actions({ bridge: true });
328
- await actions.click(el).perform();
329
- await this.whenBusyContextReady();
311
+ return actions.click(el).perform();
330
312
  }
331
313
  else {
332
314
  throw Error(`No corresponding row template or renderer found for the itemLocator`);
333
315
  }
334
316
  }
317
+ /**
318
+ * Sets the value of "selected" property.
319
+ * If row/column are both unspecified selected for both will be empty.
320
+ * If no object is set on row/column, selected for that axis will be empty.
321
+ * If 'all' is unset for row/column object only 'keys' will be considered, if no 'keys' are specified selected for that axis will be empty.
322
+ * See the Help documentation for more information.
323
+ * @param selected The value to set for "selected"
324
+ * @typeparam K Type of keys
325
+ */
326
+ async changeSelectedKeys(selected) {
327
+ await this.whenReady();
328
+ return (0, oj_module_proxy_1.executeWithModules)(this.getDriver(), ['KeySet'], [this, selected], `
329
+ (({ KeySetImpl, AllKeySetImpl }, ele, selected, all) => {
330
+ ele.selected = {
331
+ row: selected.row?.all ? new AllKeySetImpl().delete(selected.row.deletedKeys) : new KeySetImpl(selected.row?.keys),
332
+ column: selected.column?.all ? new AllKeySetImpl().delete(selected.column.deletedKeys) : new KeySetImpl(selected.column?.keys)
333
+ };
334
+ })
335
+ `);
336
+ }
337
+ /**
338
+ * Gets the value of "selected" property.
339
+ * @typeparam K Type of keys
340
+ * @return The value of "selected" property.
341
+ */
342
+ async getSelectedKeys() {
343
+ await this.whenReady();
344
+ const selected = await this.getDriver().executeScript(`
345
+ const ele = arguments[0];
346
+ let row = ele.selected.row.keys.all ? { all: true, deletedKeys: Array.from(ele.selected.row.keys.deletedKeys) } :
347
+ { all: false, keys: Array.from(ele.selected.row.keys.keys) };
348
+ let column = ele.selected.column.keys.all ? { all: true, deletedKeys: Array.from(ele.selected.column.keys.deletedKeys) } :
349
+ { all: false, keys: Array.from(ele.selected.column.keys.keys) };
350
+ return { row, column };
351
+ `, this);
352
+ return selected;
353
+ }
335
354
  }
336
355
  exports.OjTable = OjTable;
337
356
  //# sourceMappingURL=OjTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OjTable.js","sourceRoot":"","sources":["../../../elements/oj-table/OjTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OjTable.js","sourceRoot":"","sources":["../../../elements/oj-table/OjTable.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { WebElement } from 'selenium-webdriver';
2
2
  import { OjTableBase } from './OjTableBase';
3
3
  import { slotProxy, SlotProxy } from '../../';
4
+ import { executeWithModules } from '../../lib/oj-module-proxy';
4
5
 
5
6
  /**
6
7
  * The component WebElement for [oj-table](../../jsdocs/oj.ojTable.html).
@@ -14,21 +15,22 @@ export class OjTable extends OjTableBase {
14
15
  * @param selected The value to set for "selected"
15
16
  * @override
16
17
  * @typeparam K Type of keys
18
+ * @deprecated Since 17.0.0 use changeSelectedKeys as the replacement.
17
19
  */
18
20
  async changeSelected<K>(selected: { row: Array<K>; column: Array<K> }) {
19
21
  await this.whenReady();
20
- await this.getDriver().executeScript(
22
+ return executeWithModules<void>(
23
+ this.getDriver(),
24
+ ['KeySet'],
25
+ [this, selected],
21
26
  `
22
- const ele = arguments[0];
23
- const selected = arguments[1];
24
- const keySet = require('ojs/ojkeyset');
27
+ (({ KeySetImpl }, ele, selected) => {
25
28
  ele.selected = {
26
- row: new keySet.KeySetImpl(selected.row),
27
- column: new keySet.KeySetImpl(selected.column)
29
+ row: new KeySetImpl(selected.row),
30
+ column: new KeySetImpl(selected.column)
28
31
  };
29
- `,
30
- this,
31
- selected
32
+ })
33
+ `
32
34
  );
33
35
  }
34
36
 
@@ -44,6 +46,7 @@ export class OjTable extends OjTableBase {
44
46
  * @override
45
47
  * @typeparam K Type of keys
46
48
  * @return The value of "selected" property.
49
+ * @deprecated Since 17.0.0 use getSelectedKeys as the replacement.
47
50
  */
48
51
  async getSelected<K>(): Promise<{ row: Array<K>; column: Array<K> }> {
49
52
  await this.whenReady();
@@ -84,14 +87,12 @@ export class OjTable extends OjTableBase {
84
87
  rowKey: itemLocator.rowKey
85
88
  });
86
89
  }
87
- const el = await this.getDriver().executeAsyncScript<WebElement>(
90
+ const el = await executeWithModules<WebElement>(
91
+ this.getDriver(),
92
+ ['KeyUtils'],
93
+ [this, itemLocator],
88
94
  `
89
- const element = arguments[0];
90
- const rowIndex = arguments[1];
91
- let columnIndex = arguments[2];
92
- const rowKey = arguments[3];
93
- const columnKey = arguments[4];
94
- const done = arguments[5];
95
+ (({ equals }, element, { rowIndex, columnIndex, rowKey, columnKey }) => {
95
96
  const columns = element.columns;
96
97
  if (columnIndex == null) {
97
98
  for (let i = 0; i < columns.length; i++) {
@@ -102,50 +103,44 @@ export class OjTable extends OjTableBase {
102
103
  }
103
104
  }
104
105
  if (columnIndex == null || columnIndex >= columns.length) {
105
- done(null);
106
+ return null;
106
107
  }
107
108
  const defaultCellTemplate = element.querySelectorAll('[slot="cellTemplate"]')[0];
108
109
  if (columns[columnIndex].template == null && columns[columnIndex].renderer == null &&
109
110
  defaultCellTemplate == null) {
110
- done(null);
111
+ return null;
111
112
  } else {
112
113
  if (rowIndex != null) {
113
- done(element.getNodeBySubId({ subId: 'oj-table-cell', rowIndex: rowIndex, columnIndex: columnIndex }));
114
+ return element.getNodeBySubId({ subId: 'oj-table-cell', rowIndex: rowIndex, columnIndex: columnIndex });
114
115
  } else {
115
- require(['ojs/ojcore'], function(oj) {
116
- const rows = element.querySelectorAll('.oj-table-body-row');
117
- let row;
118
- for (let i = 0; i < rows.length; i++) {
119
- if (oj.KeyUtils.equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
120
- row = rows[i];
121
- break;
122
- }
123
- }
124
- if (row == null) {
125
- done(null);
116
+ const rows = element.querySelectorAll('.oj-table-body-row');
117
+ let row;
118
+ for (let i = 0; i < rows.length; i++) {
119
+ if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
120
+ row = rows[i];
121
+ break;
126
122
  }
127
- const cells = row.querySelectorAll('.oj-table-data-cell');
128
- if (cells.length === columns.length) {
129
- done(cells[columnIndex]);
130
- } else {
131
- let index = 0;
132
- for (let i = 0; i < cells.length; i++) {
133
- let colSpan = cells[i].colSpan
134
- if (columnIndex >= index && columnIndex < index + colSpan) {
135
- done(cells[i]);
136
- }
137
- index += colSpan;
123
+ }
124
+ if (row == null) {
125
+ return null;
126
+ }
127
+ const cells = row.querySelectorAll('.oj-table-data-cell');
128
+ if (cells.length === columns.length) {
129
+ return cells[columnIndex];
130
+ } else {
131
+ let index = 0;
132
+ for (let i = 0; i < cells.length; i++) {
133
+ let colSpan = cells[i].colSpan
134
+ if (columnIndex >= index && columnIndex < index + colSpan) {
135
+ return cells[i];
138
136
  }
137
+ index += colSpan;
139
138
  }
140
- });
139
+ }
141
140
  }
142
141
  }
143
- `,
144
- this,
145
- itemLocator.rowIndex,
146
- itemLocator.columnIndex,
147
- itemLocator.rowKey,
148
- itemLocator.columnKey
142
+ })
143
+ `
149
144
  );
150
145
  if (el) {
151
146
  return slotProxy(el, this);
@@ -173,37 +168,33 @@ export class OjTable extends OjTableBase {
173
168
  rowKey: itemLocator.rowKey
174
169
  });
175
170
  }
176
- const el = await this.getDriver().executeAsyncScript<WebElement>(
171
+ const el = await executeWithModules<WebElement>(
172
+ this.getDriver(),
173
+ ['KeyUtils'],
174
+ [this, itemLocator],
177
175
  `
178
- const element = arguments[0];
179
- const rowIndex = arguments[1];
180
- const rowKey = arguments[2];
181
- const done = arguments[3];
176
+ (({ equals }, element, { rowIndex, rowKey }) => {
182
177
  const rowTemplate = element.querySelectorAll('[slot="rowTemplate"]')[0];
183
178
  const rowRenderer = element.rowRenderer;
184
179
  if (rowTemplate == null && rowRenderer == null) {
185
- done(null);
180
+ return null;
186
181
  }
187
- require(['ojs/ojcore'], function(oj) {
188
182
  const rows = element.querySelectorAll('.oj-table-body-row');
189
183
  if (rowKey != null) {
190
184
  for (let i = 0; i < rows.length; i++) {
191
- if (oj.KeyUtils.equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
192
- done(rows[i]);
185
+ if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
186
+ return rows[i];
193
187
  }
194
188
  }
195
- done(null);
189
+ return null;
196
190
  } else {
197
191
  if (rowIndex == null || rowIndex >= rows.length){
198
- done(null);
192
+ return null;
199
193
  }
200
- done(rows[rowIndex]);
194
+ return rows[rowIndex];
201
195
  }
202
- });
203
- `,
204
- this,
205
- itemLocator.rowIndex,
206
- itemLocator.rowKey
196
+ })
197
+ `
207
198
  );
208
199
  if (el) {
209
200
  return slotProxy(el, this);
@@ -311,23 +302,18 @@ export class OjTable extends OjTableBase {
311
302
  */
312
303
  async doSort(header: string, direction: 'ascending' | 'descending') {
313
304
  await this.whenReady();
314
- const msg = await this.getDriver().executeAsyncScript<string>(
305
+ const msg = await executeWithModules<string>(
306
+ this.getDriver(),
307
+ ['CustomElementUtils'],
308
+ [this, header, direction],
315
309
  `
316
- const element = arguments[0];
317
- const done = arguments[3];
318
- const headerId = arguments[1];
319
- const sortDirection = arguments[2];
320
- require(['ojs/ojcustomelement-utils'], function (utils) {
310
+ (({ getElementBridge }, element, headerId, sortDirection) => {
321
311
  // Retrieve the widget instance from the element
322
- const bridge = utils.CustomElementUtils.getElementBridge(element);
312
+ const bridge = getElementBridge(element);
323
313
  const widget = bridge._WIDGET_INSTANCE;
324
- const err = widget._doSortHelper(headerId, sortDirection);
325
- done(err);
326
- });
327
- `,
328
- this,
329
- header,
330
- direction
314
+ return widget._doSortHelper(headerId, sortDirection);
315
+ })
316
+ `
331
317
  );
332
318
  if (msg) {
333
319
  throw Error(msg);
@@ -353,39 +339,102 @@ export class OjTable extends OjTableBase {
353
339
  rowKey: itemLocator.rowKey
354
340
  });
355
341
  }
356
- const el = await this.getDriver().executeAsyncScript<WebElement>(
342
+ const el = await executeWithModules<WebElement>(
343
+ this.getDriver(),
344
+ ['KeyUtils'],
345
+ [this, itemLocator],
357
346
  `
358
- const element = arguments[0];
359
- const rowIndex = arguments[1];
360
- const rowKey = arguments[2];
361
- const done = arguments[3];
362
- require(['ojs/ojcore'], function(oj) {
347
+ (({ equals }, element, { rowIndex, rowKey }) => {
363
348
  const rows = element.querySelectorAll('.oj-table-body-row');
364
349
  if (rowKey != null) {
365
350
  for (let i = 0; i < rows.length; i++) {
366
- if (oj.KeyUtils.equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
367
- done(rows[i]);
351
+ if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
352
+ return rows[i];
368
353
  }
369
354
  }
370
- done(null);
355
+ return null;
371
356
  } else {
372
357
  if (rowIndex == null || rowIndex >= rows.length){
373
- done(null);
358
+ return null;
374
359
  }
375
- done(rows[rowIndex]);
360
+ return rows[rowIndex];
376
361
  }
377
- });
378
- `,
379
- this,
380
- itemLocator.rowIndex,
381
- itemLocator.rowKey
362
+ })
363
+ `
382
364
  );
383
365
  if (el) {
384
366
  const actions = this.getDriver().actions({ bridge: true });
385
- await actions.click(el).perform();
386
- await this.whenBusyContextReady();
367
+ return actions.click(el).perform();
387
368
  } else {
388
369
  throw Error(`No corresponding row template or renderer found for the itemLocator`);
389
370
  }
390
371
  }
372
+
373
+ /**
374
+ * Sets the value of "selected" property.
375
+ * If row/column are both unspecified selected for both will be empty.
376
+ * If no object is set on row/column, selected for that axis will be empty.
377
+ * If 'all' is unset for row/column object only 'keys' will be considered, if no 'keys' are specified selected for that axis will be empty.
378
+ * See the Help documentation for more information.
379
+ * @param selected The value to set for "selected"
380
+ * @typeparam K Type of keys
381
+ */
382
+ async changeSelectedKeys<K>(selected: {
383
+ row?:
384
+ | { all: true; keys?: never; deletedKeys: Array<K> }
385
+ | { all: false; keys: Array<K>; deletedKeys?: never };
386
+ column?:
387
+ | { all: true; keys?: never; deletedKeys: Array<K> }
388
+ | { all: false; keys: Array<K>; deletedKeys?: never };
389
+ }) {
390
+ await this.whenReady();
391
+ return executeWithModules<void>(
392
+ this.getDriver(),
393
+ ['KeySet'],
394
+ [this, selected],
395
+ `
396
+ (({ KeySetImpl, AllKeySetImpl }, ele, selected, all) => {
397
+ ele.selected = {
398
+ row: selected.row?.all ? new AllKeySetImpl().delete(selected.row.deletedKeys) : new KeySetImpl(selected.row?.keys),
399
+ column: selected.column?.all ? new AllKeySetImpl().delete(selected.column.deletedKeys) : new KeySetImpl(selected.column?.keys)
400
+ };
401
+ })
402
+ `
403
+ );
404
+ }
405
+
406
+ /**
407
+ * Gets the value of "selected" property.
408
+ * @typeparam K Type of keys
409
+ * @return The value of "selected" property.
410
+ */
411
+ async getSelectedKeys<K>(): Promise<{
412
+ row:
413
+ | { all: true; keys?: never; deletedKeys: Array<K> }
414
+ | { all: false; keys: Array<K>; deletedKeys?: never };
415
+ column:
416
+ | { all: true; keys?: never; deletedKeys: Array<K> }
417
+ | { all: false; keys: Array<K>; deletedKeys?: never };
418
+ }> {
419
+ await this.whenReady();
420
+ const selected: {
421
+ row:
422
+ | { all: true; keys?: never; deletedKeys: Array<K> }
423
+ | { all: false; keys: Array<K>; deletedKeys?: never };
424
+ column:
425
+ | { all: true; keys?: never; deletedKeys: Array<K> }
426
+ | { all: false; keys: Array<K>; deletedKeys?: never };
427
+ } = await this.getDriver().executeScript(
428
+ `
429
+ const ele = arguments[0];
430
+ let row = ele.selected.row.keys.all ? { all: true, deletedKeys: Array.from(ele.selected.row.keys.deletedKeys) } :
431
+ { all: false, keys: Array.from(ele.selected.row.keys.keys) };
432
+ let column = ele.selected.column.keys.all ? { all: true, deletedKeys: Array.from(ele.selected.column.keys.deletedKeys) } :
433
+ { all: false, keys: Array.from(ele.selected.column.keys.keys) };
434
+ return { row, column };
435
+ `,
436
+ this
437
+ );
438
+ return selected;
439
+ }
391
440
  }
@@ -36,6 +36,15 @@ class OjTableBase extends __1.OjWebElement {
36
36
  getAs() {
37
37
  return this.getProperty('as');
38
38
  }
39
+ /**
40
+ * Gets the value of <code>columnResizeBehavior</code> property.
41
+ * Specifies the column resize behavior for this Table. See the Help documentation for more information.
42
+ * @return The value of <code>columnResizeBehavior</code> property.
43
+ *
44
+ */
45
+ getColumnResizeBehavior() {
46
+ return this.getProperty('columnResizeBehavior');
47
+ }
39
48
  /**
40
49
  * Sets the value of <code>columns</code> property.
41
50
  * An array of column definitions. See the Help documentation for more information.