@progress/kendo-e2e 3.4.1 → 4.1.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.
- package/README.md +6 -3
- package/dist/components/actionsheet.d.ts +7 -0
- package/dist/components/actionsheet.js +28 -0
- package/dist/components/actionsheet.js.map +1 -0
- package/dist/components/appbar.d.ts +6 -0
- package/dist/components/appbar.js +13 -0
- package/dist/components/appbar.js.map +1 -0
- package/dist/components/arcgauge.d.ts +7 -0
- package/dist/components/arcgauge.js +37 -0
- package/dist/components/arcgauge.js.map +1 -0
- package/dist/components/autocomplete.d.ts +6 -3
- package/dist/components/autocomplete.js +6 -5
- package/dist/components/autocomplete.js.map +1 -1
- package/dist/components/bottomnavigation.d.ts +8 -0
- package/dist/components/bottomnavigation.js +30 -0
- package/dist/components/bottomnavigation.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +11 -0
- package/dist/components/breadcrumb.js +46 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/calendar.d.ts +20 -0
- package/dist/components/calendar.js +89 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/captcha.d.ts +14 -0
- package/dist/components/captcha.js +65 -0
- package/dist/components/captcha.js.map +1 -0
- package/dist/components/chat.d.ts +12 -0
- package/dist/components/chat.js +58 -0
- package/dist/components/chat.js.map +1 -0
- package/dist/components/checkbox.d.ts +10 -0
- package/dist/components/checkbox.js +39 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/colorpicker.d.ts +17 -0
- package/dist/components/colorpicker.js +94 -0
- package/dist/components/colorpicker.js.map +1 -0
- package/dist/components/columnmenu.d.ts +12 -0
- package/dist/components/columnmenu.js +62 -0
- package/dist/components/columnmenu.js.map +1 -0
- package/dist/components/combobox.d.ts +7 -3
- package/dist/components/combobox.js +37 -1
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/const.d.ts +17 -8
- package/dist/components/const.js +21 -12
- package/dist/components/const.js.map +1 -1
- package/dist/components/datepicker.d.ts +14 -0
- package/dist/components/datepicker.js +62 -0
- package/dist/components/datepicker.js.map +1 -0
- package/dist/components/daterangepicker.d.ts +18 -0
- package/dist/components/daterangepicker.js +78 -0
- package/dist/components/daterangepicker.js.map +1 -0
- package/dist/components/datetimepicker.d.ts +15 -0
- package/dist/components/datetimepicker.js +67 -0
- package/dist/components/datetimepicker.js.map +1 -0
- package/dist/components/dialog.d.ts +10 -0
- package/dist/components/dialog.js +41 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dockmanager.d.ts +12 -0
- package/dist/components/dockmanager.js +58 -0
- package/dist/components/dockmanager.js.map +1 -0
- package/dist/components/drawer.d.ts +10 -0
- package/dist/components/drawer.js +39 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown.d.ts +18 -9
- package/dist/components/dropdown.js +63 -29
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/dropdownbutton.d.ts +9 -0
- package/dist/components/dropdownbutton.js +40 -0
- package/dist/components/dropdownbutton.js.map +1 -0
- package/dist/components/dropdownlist.d.ts +9 -0
- package/dist/components/dropdownlist.js +44 -0
- package/dist/components/dropdownlist.js.map +1 -0
- package/dist/components/dropdowntree.d.ts +11 -0
- package/dist/components/dropdowntree.js +53 -0
- package/dist/components/dropdowntree.js.map +1 -0
- package/dist/components/editor.d.ts +11 -0
- package/dist/components/editor.js +70 -0
- package/dist/components/editor.js.map +1 -0
- package/dist/components/expansionpanel.d.ts +12 -0
- package/dist/components/expansionpanel.js +60 -0
- package/dist/components/expansionpanel.js.map +1 -0
- package/dist/components/filemanager.d.ts +8 -0
- package/dist/components/filemanager.js +27 -0
- package/dist/components/filemanager.js.map +1 -0
- package/dist/components/filter.d.ts +33 -0
- package/dist/components/filter.js +147 -0
- package/dist/components/filter.js.map +1 -0
- package/dist/components/filtermenu.d.ts +34 -0
- package/dist/components/filtermenu.js +99 -0
- package/dist/components/filtermenu.js.map +1 -0
- package/dist/components/flatcolorpicker.d.ts +12 -0
- package/dist/components/flatcolorpicker.js +47 -0
- package/dist/components/flatcolorpicker.js.map +1 -0
- package/dist/components/floatingactionbutton.d.ts +10 -0
- package/dist/components/floatingactionbutton.js +42 -0
- package/dist/components/floatingactionbutton.js.map +1 -0
- package/dist/components/form.d.ts +16 -0
- package/dist/components/form.js +61 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/gantt.d.ts +20 -0
- package/dist/components/gantt.js +98 -0
- package/dist/components/gantt.js.map +1 -0
- package/dist/components/gauge.d.ts +8 -0
- package/dist/components/gauge.js +31 -0
- package/dist/components/gauge.js.map +1 -0
- package/dist/components/grid.d.ts +15 -19
- package/dist/components/grid.js +32 -62
- package/dist/components/grid.js.map +1 -1
- package/dist/components/imagedditor.d.ts +30 -0
- package/dist/components/imagedditor.js +134 -0
- package/dist/components/imagedditor.js.map +1 -0
- package/dist/components/index.d.ts +68 -0
- package/dist/components/index.js +68 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/input.d.ts +14 -0
- package/dist/components/input.js +48 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/listbox.d.ts +14 -0
- package/dist/components/listbox.js +59 -0
- package/dist/components/listbox.js.map +1 -0
- package/dist/components/listview.d.ts +23 -0
- package/dist/components/listview.js +100 -0
- package/dist/components/listview.js.map +1 -0
- package/dist/components/maskedtextbox.d.ts +10 -0
- package/dist/components/maskedtextbox.js +41 -0
- package/dist/components/maskedtextbox.js.map +1 -0
- package/dist/components/mediaplayer.d.ts +22 -0
- package/dist/components/mediaplayer.js +128 -0
- package/dist/components/mediaplayer.js.map +1 -0
- package/dist/components/menu.d.ts +24 -0
- package/dist/components/menu.js +108 -0
- package/dist/components/menu.js.map +1 -0
- package/dist/components/multicolumncombobox.d.ts +8 -0
- package/dist/components/multicolumncombobox.js +36 -0
- package/dist/components/multicolumncombobox.js.map +1 -0
- package/dist/components/multiselect.d.ts +12 -0
- package/dist/components/multiselect.js +55 -0
- package/dist/components/multiselect.js.map +1 -0
- package/dist/components/numerictextbox.d.ts +12 -0
- package/dist/components/numerictextbox.js +57 -0
- package/dist/components/numerictextbox.js.map +1 -0
- package/dist/components/pager.d.ts +19 -4
- package/dist/components/pager.js +69 -11
- package/dist/components/pager.js.map +1 -1
- package/dist/components/panelbar.d.ts +16 -0
- package/dist/components/panelbar.js +72 -0
- package/dist/components/panelbar.js.map +1 -0
- package/dist/components/pdfviewer.d.ts +16 -0
- package/dist/components/pdfviewer.js +68 -0
- package/dist/components/pdfviewer.js.map +1 -0
- package/dist/components/pivotgrid-legacy.d.ts +91 -0
- package/dist/components/pivotgrid-legacy.js +447 -0
- package/dist/components/pivotgrid-legacy.js.map +1 -0
- package/dist/components/pivotgrid.d.ts +79 -0
- package/dist/components/pivotgrid.js +405 -0
- package/dist/components/pivotgrid.js.map +1 -0
- package/dist/components/popup.d.ts +1 -1
- package/dist/components/progressbar.d.ts +8 -0
- package/dist/components/progressbar.js +28 -0
- package/dist/components/progressbar.js.map +1 -0
- package/dist/components/radiobutton.d.ts +10 -0
- package/dist/components/radiobutton.js +39 -0
- package/dist/components/radiobutton.js.map +1 -0
- package/dist/components/rating.d.ts +11 -0
- package/dist/components/rating.js +43 -0
- package/dist/components/rating.js.map +1 -0
- package/dist/components/scheduler.d.ts +35 -0
- package/dist/components/scheduler.js +142 -0
- package/dist/components/scheduler.js.map +1 -0
- package/dist/components/scrollview.d.ts +15 -0
- package/dist/components/scrollview.js +63 -0
- package/dist/components/scrollview.js.map +1 -0
- package/dist/components/signature.d.ts +15 -0
- package/dist/components/signature.js +47 -0
- package/dist/components/signature.js.map +1 -0
- package/dist/components/slider.d.ts +13 -0
- package/dist/components/slider.js +53 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/splitbutton.d.ts +17 -0
- package/dist/components/splitbutton.js +80 -0
- package/dist/components/splitbutton.js.map +1 -0
- package/dist/components/splitter.d.ts +14 -0
- package/dist/components/splitter.js +64 -0
- package/dist/components/splitter.js.map +1 -0
- package/dist/components/spreadsheet.d.ts +19 -0
- package/dist/components/spreadsheet.js +48 -0
- package/dist/components/spreadsheet.js.map +1 -0
- package/dist/components/stepper.d.ts +11 -0
- package/dist/components/stepper.js +45 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/switch.d.ts +10 -0
- package/dist/components/switch.js +40 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +57 -0
- package/dist/components/table.js +237 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabstrip.d.ts +18 -0
- package/dist/components/tabstrip.js +73 -0
- package/dist/components/tabstrip.js.map +1 -0
- package/dist/components/textbox.d.ts +15 -0
- package/dist/components/textbox.js +69 -0
- package/dist/components/textbox.js.map +1 -0
- package/dist/components/tilelayout.d.ts +11 -0
- package/dist/components/tilelayout.js +39 -0
- package/dist/components/tilelayout.js.map +1 -0
- package/dist/components/timedurationpicker.d.ts +27 -0
- package/dist/components/timedurationpicker.js +146 -0
- package/dist/components/timedurationpicker.js.map +1 -0
- package/dist/components/timeline.d.ts +27 -0
- package/dist/components/timeline.js +150 -0
- package/dist/components/timeline.js.map +1 -0
- package/dist/components/timepicker.d.ts +19 -0
- package/dist/components/timepicker.js +97 -0
- package/dist/components/timepicker.js.map +1 -0
- package/dist/components/toolbar.d.ts +11 -0
- package/dist/components/toolbar.js +34 -0
- package/dist/components/toolbar.js.map +1 -0
- package/dist/components/treelist.d.ts +13 -0
- package/dist/components/treelist.js +51 -0
- package/dist/components/treelist.js.map +1 -0
- package/dist/components/treeview.d.ts +16 -0
- package/dist/components/treeview.js +113 -0
- package/dist/components/treeview.js.map +1 -0
- package/dist/components/ui-component.d.ts +3 -1
- package/dist/components/ui-component.js +16 -0
- package/dist/components/ui-component.js.map +1 -1
- package/dist/components/upload.d.ts +20 -0
- package/dist/components/upload.js +99 -0
- package/dist/components/upload.js.map +1 -0
- package/dist/components/window.d.ts +12 -0
- package/dist/components/window.js +50 -0
- package/dist/components/window.js.map +1 -0
- package/dist/components/wizard.d.ts +12 -0
- package/dist/components/wizard.js +31 -0
- package/dist/components/wizard.js.map +1 -0
- package/dist/selenium/browser.d.ts +2 -1
- package/dist/selenium/browser.js +3 -2
- package/dist/selenium/browser.js.map +1 -1
- package/dist/selenium/web-app.d.ts +2 -0
- package/dist/selenium/web-app.js +28 -1
- package/dist/selenium/web-app.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listbox.js","sourceRoot":"","sources":["../../src/components/listbox.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA6C;AAC7C,mCAAoC;AAGpC,MAAa,OAAQ,SAAQ,0BAAW;IAGpC,YAAY,OAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAY,aAAwC;QACxG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QADyB,kBAAa,GAAb,aAAa,CAA2B;IAE5G,CAAC;IAEK,OAAO,CAAC,KAAa;;YACvB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,4BAA4B,KAAK,GAAG,CAAC,CAAC;QACtE,CAAC;KAAA;IAEK,WAAW,CAAC,KAAa;;YAC3B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC;KAAA;IAEK,UAAU,CAAC,KAAa;;YAC1B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC;KAAA;IAEK,UAAU,CAAC,KAAa;;YAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACzE,OAAO,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEK,aAAa;;YACf,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAChG,CAAC;KAAA;IAEK,gBAAgB,CAAC,KAAa;;YAChC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,KAAK,IAAI,CAAC,CAAC;QAC/D,CAAC;KAAA;IAEK,kBAAkB,CAAC,KAAa;;YAClC,MAAM,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;KAAA;;AAjCa,gBAAQ,GAAG,iBAAS,CAAC,OAAO,CAAC;AADlC,0BAAO"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { UIComponent } from "./ui-component";
|
|
2
|
+
import { Browser, By, WebElement } from "../selenium";
|
|
3
|
+
export declare class ListView extends UIComponent {
|
|
4
|
+
protected parentElement?: WebElement | By | string;
|
|
5
|
+
static SELECTOR: string;
|
|
6
|
+
constructor(browser: Browser, locator?: string, parentElement?: WebElement | By | string);
|
|
7
|
+
getContent(): Promise<WebElement>;
|
|
8
|
+
items(): Promise<WebElement[]>;
|
|
9
|
+
getItem(index: number): Promise<WebElement>;
|
|
10
|
+
isItemSelected(index: number): Promise<boolean>;
|
|
11
|
+
isItemFocused(index: number): Promise<boolean>;
|
|
12
|
+
getEditItem(index: number): Promise<WebElement>;
|
|
13
|
+
fieldLabel(itemIndex: number, fieldIndex: number): Promise<string>;
|
|
14
|
+
fieldText(itemIndex: number, fieldIndex: number): Promise<string>;
|
|
15
|
+
openItemForEdit(itemIndex: number): Promise<void>;
|
|
16
|
+
deleteItem(itemIndex: number): Promise<void>;
|
|
17
|
+
updateItem(itemIndex: number, { waitForUpdate }?: {
|
|
18
|
+
waitForUpdate?: boolean;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
cancelItemEdit(itemIndex: number, { waitForUpdate }?: {
|
|
21
|
+
waitForUpdate?: boolean;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ListView = void 0;
|
|
13
|
+
const ui_component_1 = require("./ui-component");
|
|
14
|
+
const const_1 = require("./const");
|
|
15
|
+
const selenium_1 = require("../selenium");
|
|
16
|
+
class ListView extends ui_component_1.UIComponent {
|
|
17
|
+
constructor(browser, locator = ListView.SELECTOR, parentElement) {
|
|
18
|
+
super(browser, locator, parentElement);
|
|
19
|
+
this.parentElement = parentElement;
|
|
20
|
+
}
|
|
21
|
+
getContent() {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
return yield this.findChild('.k-listview-content');
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
items() {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
return yield this.findChildren('.k-listview-content .k-listview-item');
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
getItem(index) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
return (yield this.items())[index];
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
isItemSelected(index) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
return (yield (yield this.getItem(index)).getAttribute('class')).includes('k-selected');
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
isItemFocused(index) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
return (yield (yield this.getItem(index)).getAttribute('class')).includes('k-focus');
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
getEditItem(index) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const editItems = yield this.findChildren('.k-listview-content .k-edit-item');
|
|
49
|
+
return editItems[index];
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
fieldLabel(itemIndex, fieldIndex) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
const item = yield this.getItem(itemIndex);
|
|
55
|
+
return yield ((yield this.browser.findChildren(item, 'dt'))[fieldIndex]).getText();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
fieldText(itemIndex, fieldIndex) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const item = yield this.getItem(itemIndex);
|
|
61
|
+
return yield ((yield this.browser.findChildren(item, 'dd'))[fieldIndex]).getText();
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
openItemForEdit(itemIndex) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
yield (yield this.browser.findChild(yield this.getItem(itemIndex), '.k-svg-i-pencil')).click();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
deleteItem(itemIndex) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
const button = yield this.browser.findChild(yield this.getItem(itemIndex), '.k-delete-button');
|
|
72
|
+
yield button.click();
|
|
73
|
+
yield this.browser.wait(selenium_1.EC.notVisible(button), { timeout: 5000, message: 'Failed to delete item.' });
|
|
74
|
+
yield this.browser.sleep(200);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
updateItem(itemIndex, { waitForUpdate = true } = {}) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const check = yield this.browser.findChild(yield this.getEditItem(itemIndex), '.k-svg-i-check');
|
|
80
|
+
yield check.click();
|
|
81
|
+
if (waitForUpdate) {
|
|
82
|
+
yield this.browser.wait(selenium_1.EC.notVisible(check), { timeout: 5000, message: 'Failed to update item.' });
|
|
83
|
+
yield this.browser.sleep(200);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
cancelItemEdit(itemIndex, { waitForUpdate = true } = {}) {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const cancel = yield this.browser.findChild(yield this.getEditItem(itemIndex), '.k-cancel-button');
|
|
90
|
+
yield cancel.click();
|
|
91
|
+
if (waitForUpdate) {
|
|
92
|
+
yield this.browser.wait(selenium_1.EC.notVisible(cancel), { timeout: 5000, message: 'Failed to cancel edit item.' });
|
|
93
|
+
yield this.browser.sleep(200);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
ListView.SELECTOR = const_1.SELECTORS.LISTBOX;
|
|
99
|
+
exports.ListView = ListView;
|
|
100
|
+
//# sourceMappingURL=listview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listview.js","sourceRoot":"","sources":["../../src/components/listview.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Browser, By, WebElement } from "../selenium";
|
|
2
|
+
import { Input } from "./input";
|
|
3
|
+
export declare class MaskedTextBox extends Input {
|
|
4
|
+
protected parentElement?: WebElement | By | string;
|
|
5
|
+
static SELECTOR: string;
|
|
6
|
+
constructor(browser: Browser, locator?: string, parentElement?: WebElement | By | string);
|
|
7
|
+
setValue(value: string, { clear }?: {
|
|
8
|
+
clear?: boolean;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MaskedTextBox = void 0;
|
|
13
|
+
const const_1 = require("./const");
|
|
14
|
+
const selenium_1 = require("../selenium");
|
|
15
|
+
const input_1 = require("./input");
|
|
16
|
+
class MaskedTextBox extends input_1.Input {
|
|
17
|
+
constructor(browser, locator = MaskedTextBox.SELECTOR, parentElement) {
|
|
18
|
+
super(browser, locator, parentElement);
|
|
19
|
+
this.parentElement = parentElement;
|
|
20
|
+
}
|
|
21
|
+
setValue(value, { clear = true } = {}) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const input = yield this.input();
|
|
24
|
+
yield input.click();
|
|
25
|
+
yield this.browser.wait(selenium_1.EC.hasFocus(yield this.input()), { timeout: 3000, message: 'Failed to focus input.' });
|
|
26
|
+
if (clear) {
|
|
27
|
+
yield this.browser.sleep(20);
|
|
28
|
+
yield this.browser.sendKey(selenium_1.Key.HOME);
|
|
29
|
+
yield this.browser.sleep(20);
|
|
30
|
+
for (let i = 0; i < (yield this.getValue()).length + 5; i++) {
|
|
31
|
+
yield this.browser.sendKey(selenium_1.Key.DELETE);
|
|
32
|
+
yield this.browser.sleep(10);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
yield this.browser.sendKey(value);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
MaskedTextBox.SELECTOR = const_1.SELECTORS.MASKEDTEXTBOX;
|
|
40
|
+
exports.MaskedTextBox = MaskedTextBox;
|
|
41
|
+
//# sourceMappingURL=maskedtextbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maskedtextbox.js","sourceRoot":"","sources":["../../src/components/maskedtextbox.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAoC;AACpC,0CAA+D;AAC/D,mCAAgC;AAEhC,MAAa,aAAc,SAAQ,aAAK;IAGpC,YAAY,OAAgB,EAAE,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAY,aAAwC;QAC9G,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAD+B,kBAAa,GAAb,aAAa,CAA2B;IAElH,CAAC;IAEK,QAAQ,CAAC,KAAa,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE;;YAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAE/G,IAAI,KAAK,EAAE;gBACP,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBACzD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAG,CAAC,MAAM,CAAC,CAAC;oBACvC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBAChC;aACJ;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;KAAA;;AAtBa,sBAAQ,GAAG,iBAAS,CAAC,aAAa,CAAC;AADxC,sCAAa"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Browser, WebElement } from "../selenium";
|
|
2
|
+
import { DropDown } from "./dropdown";
|
|
3
|
+
import { DropDownList } from "./dropdownlist";
|
|
4
|
+
export declare class MediaPlayer extends DropDown {
|
|
5
|
+
static SELECTOR: string;
|
|
6
|
+
constructor(browser: Browser, locator?: string, rootElement?: WebElement);
|
|
7
|
+
waitForInitialization(): Promise<void>;
|
|
8
|
+
getToolBar(): Promise<WebElement>;
|
|
9
|
+
getCurrentTime(): Promise<string>;
|
|
10
|
+
getDuration(): Promise<string>;
|
|
11
|
+
getPlayButton(): Promise<WebElement>;
|
|
12
|
+
getPlayButtonStatus(): Promise<string>;
|
|
13
|
+
getVolumeButton(): Promise<WebElement>;
|
|
14
|
+
getVolumeButtonStatus(): Promise<string>;
|
|
15
|
+
getVolumeSlider(): Promise<WebElement>;
|
|
16
|
+
getVolumeValueText(): Promise<string>;
|
|
17
|
+
getQualityDropDown(): Promise<DropDownList>;
|
|
18
|
+
getFullScreenButton(): Promise<WebElement>;
|
|
19
|
+
getFullScreenMode(): Promise<string>;
|
|
20
|
+
getSeekBar(): Promise<WebElement>;
|
|
21
|
+
getSeekBarValueText(): Promise<string>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MediaPlayer = void 0;
|
|
13
|
+
const selenium_1 = require("../selenium");
|
|
14
|
+
const const_1 = require("./const");
|
|
15
|
+
const dropdown_1 = require("./dropdown");
|
|
16
|
+
const dropdownlist_1 = require("./dropdownlist");
|
|
17
|
+
class MediaPlayer extends dropdown_1.DropDown {
|
|
18
|
+
constructor(browser, locator = MediaPlayer.SELECTOR, rootElement) {
|
|
19
|
+
super(browser, locator, rootElement);
|
|
20
|
+
}
|
|
21
|
+
waitForInitialization() {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
yield this.browser.wait(() => __awaiter(this, void 0, void 0, function* () { return (yield this.getDuration()) !== "00:00:00"; }), { message: 'Failed to initialize.' });
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
getToolBar() {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
return yield this.findChild('.k-mediaplayer-toolbar');
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
getCurrentTime() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const time = yield this.findChild('.k-mediaplayer-toolbar .k-mediaplayer-currenttime');
|
|
34
|
+
return yield time.getText();
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
getDuration() {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const duration = yield this.findChild('.k-mediaplayer-toolbar .k-mediaplayer-duration');
|
|
40
|
+
return yield duration.getText();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
getPlayButton() {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
return yield this.findChild('.k-mediaplayer-toolbar .k-play-button');
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
getPlayButtonStatus() {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const css = yield (yield (yield this.getPlayButton()).findElement(selenium_1.By.css('.k-svg-icon'))).getAttribute('class');
|
|
51
|
+
let status;
|
|
52
|
+
if (css.includes('k-svg-i-play')) {
|
|
53
|
+
status = 'stopped';
|
|
54
|
+
}
|
|
55
|
+
else if (css.includes('k-svg-i-pause')) {
|
|
56
|
+
status = 'playing';
|
|
57
|
+
}
|
|
58
|
+
return status;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
getVolumeButton() {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
return yield this.findChild('.k-mediaplayer-toolbar .k-volume-button');
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
getVolumeButtonStatus() {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const css = yield (yield (yield this.getVolumeButton()).findElement(selenium_1.By.css('.k-svg-icon'))).getAttribute('class');
|
|
69
|
+
let status;
|
|
70
|
+
if (css.includes('k-svg-i-volume-mute')) {
|
|
71
|
+
status = 'muted';
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
status = 'unmuted';
|
|
75
|
+
}
|
|
76
|
+
return status;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
getVolumeSlider() {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
return yield this.findChild('.k-mediaplayer-toolbar .k-mediaplayer-volume');
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
getVolumeValueText() {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const handle = yield this.findChild('.k-mediaplayer-toolbar .k-mediaplayer-volume .k-draghandle');
|
|
87
|
+
return yield handle.getAttribute('aria-valuetext');
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
getQualityDropDown() {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
const qualityWrap = yield this.findChild('.k-mediaplayer-toolbar .k-mediaplayer-quality-wrap');
|
|
93
|
+
return new dropdownlist_1.DropDownList(this.browser, const_1.SELECTORS.DROPDOWN_LIST, qualityWrap);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
getFullScreenButton() {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
return yield this.findChild('.k-mediaplayer-toolbar .k-fullscreen-button');
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
getFullScreenMode() {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
const css = yield (yield (yield this.getFullScreenButton()).findElement(selenium_1.By.css('span'))).getAttribute('class');
|
|
104
|
+
let mode;
|
|
105
|
+
if (css.includes('k-svg-i-fullscreen-exit')) {
|
|
106
|
+
mode = 'fs';
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
mode = 'notfs';
|
|
110
|
+
}
|
|
111
|
+
return mode;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
getSeekBar() {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
return yield this.findChild('.k-mediaplayer-toolbar-wrap .k-mediaplayer-seekbar');
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
getSeekBarValueText() {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
const handle = yield this.findChild('.k-mediaplayer-toolbar-wrap .k-mediaplayer-seekbar .k-draghandle');
|
|
122
|
+
return yield handle.getAttribute('aria-valuetext');
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
MediaPlayer.SELECTOR = '.k-mediaplayer';
|
|
127
|
+
exports.MediaPlayer = MediaPlayer;
|
|
128
|
+
//# sourceMappingURL=mediaplayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaplayer.js","sourceRoot":"","sources":["../../src/components/mediaplayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Browser, By, WebElement } from "../selenium";
|
|
2
|
+
import { UIComponent } from "./ui-component";
|
|
3
|
+
export declare class Menu extends UIComponent {
|
|
4
|
+
static SELECTOR: string;
|
|
5
|
+
constructor(browser: Browser, locator?: string, rootElement?: WebElement);
|
|
6
|
+
isShown(): Promise<boolean>;
|
|
7
|
+
getMenuItemByIndex(index: number): Promise<WebElement>;
|
|
8
|
+
getMenuItemByTextLocator(text: string): By;
|
|
9
|
+
getMenuItemByText(text: string): Promise<WebElement>;
|
|
10
|
+
getMenuItemArrow(text: string): Promise<WebElement>;
|
|
11
|
+
clickMenuItem(text: string, { waitForAnimation }?: {
|
|
12
|
+
waitForAnimation?: boolean;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
hoverMenuItem(text: string, { waitForAnimation }?: {
|
|
15
|
+
waitForAnimation?: boolean;
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
isMenuItemFocused(text: string): Promise<boolean>;
|
|
18
|
+
isMenuItemHovered(text: string): Promise<boolean>;
|
|
19
|
+
getSubMenuOfItem(text: string): Promise<Menu>;
|
|
20
|
+
leftScroll(): Promise<WebElement>;
|
|
21
|
+
rightScroll(): Promise<WebElement>;
|
|
22
|
+
upScroll(): Promise<WebElement>;
|
|
23
|
+
downScroll(): Promise<WebElement>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Menu = void 0;
|
|
13
|
+
const selenium_1 = require("../selenium");
|
|
14
|
+
const const_1 = require("./const");
|
|
15
|
+
const ui_component_1 = require("./ui-component");
|
|
16
|
+
class Menu extends ui_component_1.UIComponent {
|
|
17
|
+
constructor(browser, locator = Menu.SELECTOR, rootElement) {
|
|
18
|
+
super(browser, locator, rootElement);
|
|
19
|
+
}
|
|
20
|
+
isShown() {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
try {
|
|
23
|
+
return yield (yield this.root()).isDisplayed();
|
|
24
|
+
}
|
|
25
|
+
catch (_a) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
getMenuItemByIndex(index) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
return (yield this.findChildren(selenium_1.By.xpath('./li')))[index - 1];
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
getMenuItemByTextLocator(text) {
|
|
36
|
+
return selenium_1.By.xpath(`.//li[contains(@class,"k-menu-item") and .//span[@class="k-menu-link-text" and normalize-space()="${text}"]]`);
|
|
37
|
+
}
|
|
38
|
+
getMenuItemByText(text) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
return yield this.findChild(this.getMenuItemByTextLocator(text));
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
getMenuItemArrow(text) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
return yield this.browser.findChild(yield this.getMenuItemByText(text), '.k-menu-expand-arrow');
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
clickMenuItem(text, { waitForAnimation = true } = {}) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
if (waitForAnimation) {
|
|
51
|
+
yield this.browser.waitForAnimation(this.getMenuItemByTextLocator(text), { timeout: 3000, pollTimeout: 50 });
|
|
52
|
+
}
|
|
53
|
+
const item = yield this.getMenuItemByText(text);
|
|
54
|
+
yield this.browser.click(item);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
hoverMenuItem(text, { waitForAnimation = true } = {}) {
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
if (waitForAnimation) {
|
|
60
|
+
yield this.browser.waitForAnimation(this.getMenuItemByTextLocator(text), { timeout: 3000, pollTimeout: 50 });
|
|
61
|
+
}
|
|
62
|
+
const item = yield this.getMenuItemByText(text);
|
|
63
|
+
yield this.browser.hover(item);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
isMenuItemFocused(text) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const item = this.getMenuItemByText(text);
|
|
69
|
+
return (yield (yield item).getAttribute('class')).includes(const_1.STATES.FOCUSED);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
isMenuItemHovered(text) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const item = this.getMenuItemByText(text);
|
|
75
|
+
return (yield (yield item).getAttribute('class')).includes('k-hover');
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
getSubMenuOfItem(text) {
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const menuItem = yield this.getMenuItemByText(text);
|
|
81
|
+
const animationContainer = yield this.browser.findChild(menuItem, '.k-animation-container[aria-hidden="false"]');
|
|
82
|
+
return new Menu(this.browser, 'ul', animationContainer);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
leftScroll() {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
return yield (yield this.root()).findElement(selenium_1.By.xpath("./..")).findElement(selenium_1.By.css(".k-scroll-left"));
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
rightScroll() {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
return yield (yield this.root()).findElement(selenium_1.By.xpath("./..")).findElement(selenium_1.By.css(".k-scroll-right"));
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
upScroll() {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
return yield (yield this.root()).findElement(selenium_1.By.xpath("./..")).findElement(selenium_1.By.css(".k-scroll-up"));
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
downScroll() {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
return yield (yield this.root()).findElement(selenium_1.By.xpath("./..")).findElement(selenium_1.By.css(".k-scroll-down"));
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
Menu.SELECTOR = const_1.SELECTORS.MENU;
|
|
107
|
+
exports.Menu = Menu;
|
|
108
|
+
//# sourceMappingURL=menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/components/menu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Browser, WebElement } from "../selenium";
|
|
2
|
+
import { ComboBox } from "./combobox";
|
|
3
|
+
export declare class MultiColumnComboBox extends ComboBox {
|
|
4
|
+
static SELECTOR: string;
|
|
5
|
+
constructor(browser: Browser, locator?: string, rootElement?: WebElement);
|
|
6
|
+
getItemByIndex(index: number): Promise<WebElement>;
|
|
7
|
+
getItemByText(text: string): Promise<WebElement>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MultiColumnComboBox = void 0;
|
|
13
|
+
const selenium_1 = require("../selenium");
|
|
14
|
+
const combobox_1 = require("./combobox");
|
|
15
|
+
const const_1 = require("./const");
|
|
16
|
+
class MultiColumnComboBox extends combobox_1.ComboBox {
|
|
17
|
+
constructor(browser, locator = MultiColumnComboBox.SELECTOR, rootElement) {
|
|
18
|
+
super(browser, locator, rootElement);
|
|
19
|
+
}
|
|
20
|
+
getItemByIndex(index) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
// li is fully covered by span and cannot be clicked in FF
|
|
23
|
+
// element not intractable: Element <li class="k-item"> could not be scrolled into view
|
|
24
|
+
// https://bugzilla.mozilla.org/show_bug.cgi?id=1374283
|
|
25
|
+
return yield ((yield this.browser.findChildren(yield this.popup(), 'li'))[index]).findElement(selenium_1.By.css('span'));
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
getItemByText(text) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
return yield this.browser.findChild(yield this.popup(), selenium_1.By.xpath(`.//li//span[text()="${text}"]`));
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
MultiColumnComboBox.SELECTOR = const_1.SELECTORS.COMBOBOX;
|
|
35
|
+
exports.MultiColumnComboBox = MultiColumnComboBox;
|
|
36
|
+
//# sourceMappingURL=multicolumncombobox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multicolumncombobox.js","sourceRoot":"","sources":["../../src/components/multicolumncombobox.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAsD;AACtD,yCAAsC;AACtC,mCAAoC;AAEpC,MAAa,mBAAoB,SAAQ,mBAAQ;IAG7C,YAAY,OAAgB,EAAE,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,WAAwB;QAC1F,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAEK,cAAc,CAAC,KAAa;;YAC9B,0DAA0D;YAC1D,uFAAuF;YACvF,uDAAuD;YACvD,OAAO,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,aAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAClH,CAAC;KAAA;IAEK,aAAa,CAAC,IAAY;;YAC5B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,aAAE,CAAC,KAAK,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC,CAAC;QACvG,CAAC;KAAA;;AAfa,4BAAQ,GAAG,iBAAS,CAAC,QAAQ,CAAC;AADnC,kDAAmB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Browser, By, WebElement } from "../selenium";
|
|
2
|
+
import { DropDown } from "./dropdown";
|
|
3
|
+
export declare class MultiSelect extends DropDown {
|
|
4
|
+
static SELECTOR: string;
|
|
5
|
+
constructor(browser: Browser, locator?: By | string, rootElement?: WebElement);
|
|
6
|
+
type(text: string, { typeFromBeginning }?: {
|
|
7
|
+
typeFromBeginning?: boolean;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
getChip(index: number): Promise<WebElement>;
|
|
10
|
+
getChipText(index: number): Promise<string>;
|
|
11
|
+
getChips(): Promise<WebElement[]>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MultiSelect = void 0;
|
|
13
|
+
const selenium_1 = require("../selenium");
|
|
14
|
+
const const_1 = require("./const");
|
|
15
|
+
const dropdown_1 = require("./dropdown");
|
|
16
|
+
class MultiSelect extends dropdown_1.DropDown {
|
|
17
|
+
constructor(browser, locator = MultiSelect.SELECTOR, rootElement) {
|
|
18
|
+
super(browser, locator, rootElement);
|
|
19
|
+
}
|
|
20
|
+
type(text, { typeFromBeginning = false } = {}) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const input = yield this.input();
|
|
23
|
+
if (typeFromBeginning) {
|
|
24
|
+
const rect = yield input.getRect();
|
|
25
|
+
yield this.browser.driver.actions({ async: false, bridge: true })
|
|
26
|
+
.move({ origin: input, x: 5 - rect.width / 2, y: 5 - rect.height / 2 })
|
|
27
|
+
.click()
|
|
28
|
+
.perform();
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
yield input.click();
|
|
32
|
+
}
|
|
33
|
+
yield this.browser.wait(selenium_1.EC.hasFocus(input), { timeout: 3000, message: 'Failed to focus input.' });
|
|
34
|
+
yield this.browser.sendKey(text);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
getChip(index) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
return yield this.findChild(`.k-chip-list .k-chip:nth-of-type(${index})`);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
getChipText(index) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
return yield (yield this.getChip(index)).getText();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
getChips() {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
return yield this.findChildren('.k-chip-list .k-chip', { waitForChild: false });
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
MultiSelect.SELECTOR = const_1.SELECTORS.MULTISELECT;
|
|
54
|
+
exports.MultiSelect = MultiSelect;
|
|
55
|
+
//# sourceMappingURL=multiselect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiselect.js","sourceRoot":"","sources":["../../src/components/multiselect.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAA0D;AAC1D,mCAAoC;AACpC,yCAAsC;AAEtC,MAAa,WAAY,SAAQ,mBAAQ;IAGrC,YAAY,OAAgB,EAAE,UAAuB,WAAW,CAAC,QAAQ,EAAE,WAAwB;QAC/F,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAEY,IAAI,CAAC,IAAY,EAAE,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,EAAE;;YAC9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,iBAAiB,EAAE;gBACnB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;qBAC5D,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;qBACtE,KAAK,EAAE;qBACP,OAAO,EAAE,CAAC;aAClB;iBAAM;gBACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;aACvB;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAClG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;KAAA;IAEY,OAAO,CAAC,KAAa;;YAC9B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,oCAAoC,KAAK,GAAG,CAAC,CAAC;QAC9E,CAAC;KAAA;IAEY,WAAW,CAAC,KAAa;;YAClC,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC;KAAA;IAEY,QAAQ;;YACjB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,CAAC;KAAA;;AAhCa,oBAAQ,GAAG,iBAAS,CAAC,WAAW,CAAC;AADtC,kCAAW"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Browser, By, WebElement } from "../selenium";
|
|
2
|
+
import { Input } from "./input";
|
|
3
|
+
export declare class NumericTextBox extends Input {
|
|
4
|
+
protected parentElement?: WebElement | By | string;
|
|
5
|
+
static SELECTOR: string;
|
|
6
|
+
constructor(browser: Browser, locator?: By | string, parentElement?: WebElement | By | string);
|
|
7
|
+
setValue(value: string, { clear }?: {
|
|
8
|
+
clear?: boolean;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
increaseValue(): Promise<void>;
|
|
11
|
+
decreaseValue(): Promise<void>;
|
|
12
|
+
}
|