@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.
- package/elements/OjWebElement.js +2 -26
- package/elements/OjWebElement.js.map +1 -1
- package/elements/OjWebElement.ts +6 -40
- package/elements/oj-chart/OjChartBase.ts +8 -0
- package/elements/oj-checkboxset/OjCheckboxset.js +11 -12
- package/elements/oj-checkboxset/OjCheckboxset.js.map +1 -1
- package/elements/oj-checkboxset/OjCheckboxset.ts +14 -14
- package/elements/oj-combobox-many/OjComboboxMany.js +11 -20
- package/elements/oj-combobox-many/OjComboboxMany.js.map +1 -1
- package/elements/oj-combobox-many/OjComboboxMany.ts +14 -22
- package/elements/oj-combobox-one/OjComboboxOne.js +9 -18
- package/elements/oj-combobox-one/OjComboboxOne.js.map +1 -1
- package/elements/oj-combobox-one/OjComboboxOne.ts +12 -20
- package/elements/oj-data-grid/OjDataGridBase.ts +24 -0
- package/elements/oj-date-picker/OjDatePickerBase.js +20 -20
- package/elements/oj-date-picker/OjDatePickerBase.ts +53 -20
- package/elements/oj-date-time-picker/OjDateTimePickerBase.js +16 -16
- package/elements/oj-date-time-picker/OjDateTimePickerBase.ts +48 -16
- package/elements/oj-diagram/OjDiagramBase.ts +4 -0
- package/elements/oj-file-picker/OjFilePicker.js +90 -24
- package/elements/oj-file-picker/OjFilePicker.js.map +1 -1
- package/elements/oj-file-picker/OjFilePicker.ts +101 -27
- package/elements/oj-input-date/OjInputDateBase.js +7 -7
- package/elements/oj-input-date/OjInputDateBase.ts +37 -7
- package/elements/oj-input-date-time/OjInputDateTimeBase.js +7 -7
- package/elements/oj-input-date-time/OjInputDateTimeBase.ts +37 -7
- package/elements/oj-list-view/OjListView.js +6 -6
- package/elements/oj-list-view/OjListView.js.map +1 -1
- package/elements/oj-list-view/OjListView.ts +9 -8
- package/elements/oj-navigation-list/OjNavigationList.js +8 -10
- package/elements/oj-navigation-list/OjNavigationList.js.map +1 -1
- package/elements/oj-navigation-list/OjNavigationList.ts +11 -12
- package/elements/oj-navigation-list/OjNavigationListBase.js +2 -2
- package/elements/oj-navigation-list/OjNavigationListBase.ts +3 -2
- package/elements/oj-popup/OjPopupBase.js +1 -1
- package/elements/oj-popup/OjPopupBase.ts +1 -1
- package/elements/oj-row-expander/OjRowExpanderBase.ts +4 -0
- package/elements/oj-select-many/OjSelectMany.js +11 -20
- package/elements/oj-select-many/OjSelectMany.js.map +1 -1
- package/elements/oj-select-many/OjSelectMany.ts +14 -22
- package/elements/oj-select-one/OjSelectOne.js +9 -17
- package/elements/oj-select-one/OjSelectOne.js.map +1 -1
- package/elements/oj-select-one/OjSelectOne.ts +12 -19
- package/elements/oj-select-single/OjSelectSingle.js +7 -14
- package/elements/oj-select-single/OjSelectSingle.js.map +1 -1
- package/elements/oj-select-single/OjSelectSingle.ts +10 -16
- package/elements/oj-stream-list/OjStreamList.js +28 -33
- package/elements/oj-stream-list/OjStreamList.js.map +1 -1
- package/elements/oj-stream-list/OjStreamList.ts +28 -34
- package/elements/oj-sunburst/OjSunburstBase.ts +8 -0
- package/elements/oj-swipe-actions/OjSwipeActions.js +7 -10
- package/elements/oj-swipe-actions/OjSwipeActions.js.map +1 -1
- package/elements/oj-swipe-actions/OjSwipeActions.ts +11 -15
- package/elements/oj-tab-bar/OjTabBarBase.ts +1 -0
- package/elements/oj-table/OjTable.js +100 -81
- package/elements/oj-table/OjTable.js.map +1 -1
- package/elements/oj-table/OjTable.ts +146 -97
- package/elements/oj-table/OjTableBase.js +9 -0
- package/elements/oj-table/OjTableBase.js.map +1 -1
- package/elements/oj-table/OjTableBase.ts +10 -0
- package/elements/oj-tree-view/OjTreeView.js +25 -29
- package/elements/oj-tree-view/OjTreeView.js.map +1 -1
- package/elements/oj-tree-view/OjTreeView.ts +34 -35
- package/elements/oj-treemap/OjTreemapBase.ts +8 -0
- package/index.js +28 -139
- package/index.js.map +1 -1
- package/index.ts +29 -151
- package/lib/busy-context-utils.js +28 -46
- package/lib/busy-context-utils.js.map +1 -1
- package/lib/busy-context-utils.ts +39 -48
- package/lib/dataprovider-utils.js +24 -28
- package/lib/dataprovider-utils.js.map +1 -1
- package/lib/dataprovider-utils.ts +28 -31
- package/lib/no-require-jet.js +12 -0
- package/lib/no-require-jet.js.map +1 -0
- package/lib/no-require-jet.ts +8 -0
- package/lib/oj-module-proxy.js +113 -0
- package/lib/oj-module-proxy.js.map +1 -0
- package/lib/oj-module-proxy.ts +123 -0
- package/lib/viewmodel-utils.js +99 -0
- package/lib/viewmodel-utils.js.map +1 -0
- package/lib/viewmodel-utils.ts +107 -0
- package/package.json +6 -6
- package/tsconfig.json +2 -1
- package/wdtsdoc/assets/navigation.js +1 -1
- package/wdtsdoc/assets/search.js +1 -1
- package/wdtsdoc/classes/elements.OjAccordion.html +2 -2
- package/wdtsdoc/classes/elements.OjActionCard.html +2 -2
- package/wdtsdoc/classes/elements.OjButton.html +2 -2
- package/wdtsdoc/classes/elements.OjButtonsetMany.html +2 -2
- package/wdtsdoc/classes/elements.OjButtonsetOne.html +2 -2
- package/wdtsdoc/classes/elements.OjChart.html +2 -2
- package/wdtsdoc/classes/elements.OjCheckboxset.html +2 -2
- package/wdtsdoc/classes/elements.OjCollapsible.html +2 -2
- package/wdtsdoc/classes/elements.OjColorPalette.html +2 -2
- package/wdtsdoc/classes/elements.OjColorSpectrum.html +2 -2
- package/wdtsdoc/classes/elements.OjComboboxMany.html +2 -2
- package/wdtsdoc/classes/elements.OjComboboxOne.html +2 -2
- package/wdtsdoc/classes/elements.OjConveyorBelt.html +2 -2
- package/wdtsdoc/classes/elements.OjDataGrid.html +2 -2
- package/wdtsdoc/classes/elements.OjDatePicker.html +67 -49
- package/wdtsdoc/classes/elements.OjDateTimePicker.html +57 -42
- package/wdtsdoc/classes/elements.OjDiagram.html +2 -2
- package/wdtsdoc/classes/elements.OjDialog.html +2 -2
- package/wdtsdoc/classes/elements.OjDrawerLayout.html +2 -2
- package/wdtsdoc/classes/elements.OjDrawerPopup.html +2 -2
- package/wdtsdoc/classes/elements.OjFilePicker.html +11 -2
- package/wdtsdoc/classes/elements.OjFilmStrip.html +2 -2
- package/wdtsdoc/classes/elements.OjGantt.html +2 -2
- package/wdtsdoc/classes/elements.OjIndexer.html +2 -2
- package/wdtsdoc/classes/elements.OjInputDate.html +28 -21
- package/wdtsdoc/classes/elements.OjInputDateTime.html +28 -21
- package/wdtsdoc/classes/elements.OjInputNumber.html +2 -2
- package/wdtsdoc/classes/elements.OjInputPassword.html +2 -2
- package/wdtsdoc/classes/elements.OjInputSearch.html +2 -2
- package/wdtsdoc/classes/elements.OjInputText.html +2 -2
- package/wdtsdoc/classes/elements.OjInputTime.html +2 -2
- package/wdtsdoc/classes/elements.OjLabel.html +2 -2
- package/wdtsdoc/classes/elements.OjLedGauge.html +2 -2
- package/wdtsdoc/classes/elements.OjLegend.html +2 -2
- package/wdtsdoc/classes/elements.OjListView.html +4 -4
- package/wdtsdoc/classes/elements.OjMasonryLayout.html +2 -2
- package/wdtsdoc/classes/elements.OjMenu.html +2 -2
- package/wdtsdoc/classes/elements.OjMenuButton.html +2 -2
- package/wdtsdoc/classes/elements.OjMessage.html +2 -2
- package/wdtsdoc/classes/elements.OjMessageBanner.html +2 -2
- package/wdtsdoc/classes/elements.OjNBox.html +2 -2
- package/wdtsdoc/classes/elements.OjNavigationList.html +14 -12
- package/wdtsdoc/classes/elements.OjPagingControl.html +2 -2
- package/wdtsdoc/classes/elements.OjPictoChart.html +2 -2
- package/wdtsdoc/classes/elements.OjPopup.html +6 -5
- package/wdtsdoc/classes/elements.OjProgress.html +2 -2
- package/wdtsdoc/classes/elements.OjProgressList.html +2 -2
- package/wdtsdoc/classes/elements.OjRadioset.html +2 -2
- package/wdtsdoc/classes/elements.OjRatingGauge.html +2 -2
- package/wdtsdoc/classes/elements.OjRefresher.html +2 -2
- package/wdtsdoc/classes/elements.OjRowExpander.html +2 -2
- package/wdtsdoc/classes/elements.OjSelectMany.html +2 -2
- package/wdtsdoc/classes/elements.OjSelectOne.html +2 -2
- package/wdtsdoc/classes/elements.OjSelectSingle.html +2 -2
- package/wdtsdoc/classes/elements.OjSelector.html +2 -2
- package/wdtsdoc/classes/elements.OjSlider.html +2 -2
- package/wdtsdoc/classes/elements.OjSparkChart.html +2 -2
- package/wdtsdoc/classes/elements.OjStatusMeterGauge.html +2 -2
- package/wdtsdoc/classes/elements.OjStreamList.html +2 -2
- package/wdtsdoc/classes/elements.OjSunburst.html +2 -2
- package/wdtsdoc/classes/elements.OjSwipeActions.html +2 -2
- package/wdtsdoc/classes/elements.OjSwitch.html +2 -2
- package/wdtsdoc/classes/elements.OjTabBar.html +2 -2
- package/wdtsdoc/classes/elements.OjTable.html +27 -9
- package/wdtsdoc/classes/elements.OjTagCloud.html +2 -2
- package/wdtsdoc/classes/elements.OjTextArea.html +2 -2
- package/wdtsdoc/classes/elements.OjThematicMap.html +2 -2
- package/wdtsdoc/classes/elements.OjTimeAxis.html +2 -2
- package/wdtsdoc/classes/elements.OjTimeline.html +2 -2
- package/wdtsdoc/classes/elements.OjTrain.html +2 -2
- package/wdtsdoc/classes/elements.OjTreeView.html +5 -5
- package/wdtsdoc/classes/elements.OjTreemap.html +2 -2
- package/wdtsdoc/classes/elements.OjWaterfallLayout.html +2 -2
- package/wdtsdoc/classes/elements.OjWebElement.html +2 -2
- package/wdtsdoc/classes/index.DriverManager.html +2 -2
- package/wdtsdoc/classes/index.Expectation.html +2 -2
- package/wdtsdoc/functions/elements.ojAccordion-1.html +2 -2
- package/wdtsdoc/functions/elements.ojActionCard-1.html +2 -2
- package/wdtsdoc/functions/elements.ojButton-1.html +2 -2
- package/wdtsdoc/functions/elements.ojButtonsetMany-1.html +2 -2
- package/wdtsdoc/functions/elements.ojButtonsetOne-1.html +2 -2
- package/wdtsdoc/functions/elements.ojChart-1.html +2 -2
- package/wdtsdoc/functions/elements.ojCheckboxset-1.html +2 -2
- package/wdtsdoc/functions/elements.ojCollapsible-1.html +2 -2
- package/wdtsdoc/functions/elements.ojColorPalette-1.html +2 -2
- package/wdtsdoc/functions/elements.ojColorSpectrum-1.html +2 -2
- package/wdtsdoc/functions/elements.ojComboboxMany-1.html +2 -2
- package/wdtsdoc/functions/elements.ojComboboxOne-1.html +2 -2
- package/wdtsdoc/functions/elements.ojConveyorBelt-1.html +2 -2
- package/wdtsdoc/functions/elements.ojDataGrid-1.html +2 -2
- package/wdtsdoc/functions/elements.ojDatePicker-1.html +2 -2
- package/wdtsdoc/functions/elements.ojDateTimePicker-1.html +2 -2
- package/wdtsdoc/functions/elements.ojDiagram-1.html +2 -2
- package/wdtsdoc/functions/elements.ojDialog-1.html +2 -2
- package/wdtsdoc/functions/elements.ojDrawerLayout-1.html +2 -2
- package/wdtsdoc/functions/elements.ojDrawerPopup-1.html +2 -2
- package/wdtsdoc/functions/elements.ojFilePicker-1.html +2 -2
- package/wdtsdoc/functions/elements.ojFilmStrip-1.html +2 -2
- package/wdtsdoc/functions/elements.ojGantt-1.html +2 -2
- package/wdtsdoc/functions/elements.ojIndexer-1.html +2 -2
- package/wdtsdoc/functions/elements.ojInputDate-1.html +2 -2
- package/wdtsdoc/functions/elements.ojInputDateTime-1.html +2 -2
- package/wdtsdoc/functions/elements.ojInputNumber-1.html +2 -2
- package/wdtsdoc/functions/elements.ojInputPassword-1.html +2 -2
- package/wdtsdoc/functions/elements.ojInputSearch-1.html +2 -2
- package/wdtsdoc/functions/elements.ojInputText-1.html +2 -2
- package/wdtsdoc/functions/elements.ojInputTime-1.html +2 -2
- package/wdtsdoc/functions/elements.ojLabel-1.html +2 -2
- package/wdtsdoc/functions/elements.ojLedGauge-1.html +2 -2
- package/wdtsdoc/functions/elements.ojLegend-1.html +2 -2
- package/wdtsdoc/functions/elements.ojListView-1.html +2 -2
- package/wdtsdoc/functions/elements.ojMasonryLayout-1.html +2 -2
- package/wdtsdoc/functions/elements.ojMenu-1.html +2 -2
- package/wdtsdoc/functions/elements.ojMenuButton-1.html +2 -2
- package/wdtsdoc/functions/elements.ojMessage-1.html +2 -2
- package/wdtsdoc/functions/elements.ojMessageBanner-1.html +2 -2
- package/wdtsdoc/functions/elements.ojNBox-1.html +2 -2
- package/wdtsdoc/functions/elements.ojNavigationList-1.html +2 -2
- package/wdtsdoc/functions/elements.ojPagingControl-1.html +2 -2
- package/wdtsdoc/functions/elements.ojPictoChart-1.html +2 -2
- package/wdtsdoc/functions/elements.ojPopup-1.html +2 -2
- package/wdtsdoc/functions/elements.ojProgress-1.html +2 -2
- package/wdtsdoc/functions/elements.ojProgressList-1.html +2 -2
- package/wdtsdoc/functions/elements.ojRadioset-1.html +2 -2
- package/wdtsdoc/functions/elements.ojRatingGauge-1.html +2 -2
- package/wdtsdoc/functions/elements.ojRefresher-1.html +2 -2
- package/wdtsdoc/functions/elements.ojRowExpander-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSelectMany-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSelectOne-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSelectSingle-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSelector-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSlider-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSparkChart-1.html +2 -2
- package/wdtsdoc/functions/elements.ojStatusMeterGauge-1.html +2 -2
- package/wdtsdoc/functions/elements.ojStreamList-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSunburst-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSwipeActions-1.html +2 -2
- package/wdtsdoc/functions/elements.ojSwitch-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTabBar-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTable-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTagCloud-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTextArea-1.html +2 -2
- package/wdtsdoc/functions/elements.ojThematicMap-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTimeAxis-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTimeline-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTrain-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTreeView-1.html +2 -2
- package/wdtsdoc/functions/elements.ojTreemap-1.html +2 -2
- package/wdtsdoc/functions/elements.ojWaterfallLayout-1.html +2 -2
- package/wdtsdoc/functions/elements.ojWebElement-1.html +2 -2
- package/wdtsdoc/functions/index.ScreenshotManager.create.html +2 -2
- package/wdtsdoc/functions/index.ScreenshotManager.get.html +2 -2
- package/wdtsdoc/functions/index.ScreenshotManager.set.html +2 -2
- package/wdtsdoc/functions/index.fetchKeyByFilter.html +2 -2
- package/wdtsdoc/functions/index.register.html +2 -2
- package/wdtsdoc/functions/index.slotProxy-1.html +2 -2
- package/wdtsdoc/index.html +2 -2
- package/wdtsdoc/interfaces/index.DriverLike.html +2 -2
- package/wdtsdoc/interfaces/index.SlotProxy.html +2 -2
- package/wdtsdoc/modules/elements.html +2 -2
- package/wdtsdoc/modules/index.ScreenshotManager.html +2 -2
- package/wdtsdoc/modules/index.html +2 -2
- 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
|
-
|
|
22
|
-
|
|
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
|
|
27
|
-
column: new
|
|
26
|
+
row: new KeySetImpl(selected.row),
|
|
27
|
+
column: new KeySetImpl(selected.column)
|
|
28
28
|
};
|
|
29
|
-
|
|
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()
|
|
74
|
-
|
|
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
|
-
|
|
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
|
-
|
|
92
|
+
return null;
|
|
96
93
|
} else {
|
|
97
94
|
if (rowIndex != null) {
|
|
98
|
-
|
|
95
|
+
return element.getNodeBySubId({ subId: 'oj-table-cell', rowIndex: rowIndex, columnIndex: columnIndex });
|
|
99
96
|
} else {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
|
|
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()
|
|
155
|
-
|
|
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
|
-
|
|
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 (
|
|
169
|
-
|
|
160
|
+
if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
|
|
161
|
+
return rows[i];
|
|
170
162
|
}
|
|
171
163
|
}
|
|
172
|
-
|
|
164
|
+
return null;
|
|
173
165
|
} else {
|
|
174
166
|
if (rowIndex == null || rowIndex >= rows.length){
|
|
175
|
-
|
|
167
|
+
return null;
|
|
176
168
|
}
|
|
177
|
-
|
|
169
|
+
return rows[rowIndex];
|
|
178
170
|
}
|
|
179
|
-
})
|
|
180
|
-
|
|
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()
|
|
270
|
-
|
|
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 =
|
|
264
|
+
const bridge = getElementBridge(element);
|
|
277
265
|
const widget = bridge._WIDGET_INSTANCE;
|
|
278
|
-
|
|
279
|
-
|
|
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()
|
|
305
|
-
|
|
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 (
|
|
314
|
-
|
|
296
|
+
if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
|
|
297
|
+
return rows[i];
|
|
315
298
|
}
|
|
316
299
|
}
|
|
317
|
-
|
|
300
|
+
return null;
|
|
318
301
|
} else {
|
|
319
302
|
if (rowIndex == null || rowIndex >= rows.length){
|
|
320
|
-
|
|
303
|
+
return null;
|
|
321
304
|
}
|
|
322
|
-
|
|
305
|
+
return rows[rowIndex];
|
|
323
306
|
}
|
|
324
|
-
})
|
|
325
|
-
|
|
307
|
+
})
|
|
308
|
+
`);
|
|
326
309
|
if (el) {
|
|
327
310
|
const actions = this.getDriver().actions({ bridge: true });
|
|
328
|
-
|
|
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":";;;AACA,+CAA4C;AAC5C,8BAA8C;
|
|
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
|
-
|
|
22
|
+
return executeWithModules<void>(
|
|
23
|
+
this.getDriver(),
|
|
24
|
+
['KeySet'],
|
|
25
|
+
[this, selected],
|
|
21
26
|
`
|
|
22
|
-
|
|
23
|
-
const selected = arguments[1];
|
|
24
|
-
const keySet = require('ojs/ojkeyset');
|
|
27
|
+
(({ KeySetImpl }, ele, selected) => {
|
|
25
28
|
ele.selected = {
|
|
26
|
-
row: new
|
|
27
|
-
column: new
|
|
29
|
+
row: new KeySetImpl(selected.row),
|
|
30
|
+
column: new KeySetImpl(selected.column)
|
|
28
31
|
};
|
|
29
|
-
|
|
30
|
-
|
|
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
|
|
90
|
+
const el = await executeWithModules<WebElement>(
|
|
91
|
+
this.getDriver(),
|
|
92
|
+
['KeyUtils'],
|
|
93
|
+
[this, itemLocator],
|
|
88
94
|
`
|
|
89
|
-
|
|
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
|
-
|
|
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
|
-
|
|
111
|
+
return null;
|
|
111
112
|
} else {
|
|
112
113
|
if (rowIndex != null) {
|
|
113
|
-
|
|
114
|
+
return element.getNodeBySubId({ subId: 'oj-table-cell', rowIndex: rowIndex, columnIndex: columnIndex });
|
|
114
115
|
} else {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
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
|
|
171
|
+
const el = await executeWithModules<WebElement>(
|
|
172
|
+
this.getDriver(),
|
|
173
|
+
['KeyUtils'],
|
|
174
|
+
[this, itemLocator],
|
|
177
175
|
`
|
|
178
|
-
|
|
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
|
-
|
|
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 (
|
|
192
|
-
|
|
185
|
+
if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
|
|
186
|
+
return rows[i];
|
|
193
187
|
}
|
|
194
188
|
}
|
|
195
|
-
|
|
189
|
+
return null;
|
|
196
190
|
} else {
|
|
197
191
|
if (rowIndex == null || rowIndex >= rows.length){
|
|
198
|
-
|
|
192
|
+
return null;
|
|
199
193
|
}
|
|
200
|
-
|
|
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
|
|
305
|
+
const msg = await executeWithModules<string>(
|
|
306
|
+
this.getDriver(),
|
|
307
|
+
['CustomElementUtils'],
|
|
308
|
+
[this, header, direction],
|
|
315
309
|
`
|
|
316
|
-
|
|
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 =
|
|
312
|
+
const bridge = getElementBridge(element);
|
|
323
313
|
const widget = bridge._WIDGET_INSTANCE;
|
|
324
|
-
|
|
325
|
-
|
|
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
|
|
342
|
+
const el = await executeWithModules<WebElement>(
|
|
343
|
+
this.getDriver(),
|
|
344
|
+
['KeyUtils'],
|
|
345
|
+
[this, itemLocator],
|
|
357
346
|
`
|
|
358
|
-
|
|
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 (
|
|
367
|
-
|
|
351
|
+
if (equals(rows[i]['oj-table-oj-row-item'].key, rowKey)) {
|
|
352
|
+
return rows[i];
|
|
368
353
|
}
|
|
369
354
|
}
|
|
370
|
-
|
|
355
|
+
return null;
|
|
371
356
|
} else {
|
|
372
357
|
if (rowIndex == null || rowIndex >= rows.length){
|
|
373
|
-
|
|
358
|
+
return null;
|
|
374
359
|
}
|
|
375
|
-
|
|
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
|
-
|
|
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.
|