@skbkontur/playwright-react-ui-components 1.16.0 → 1.18.0-beta.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/build/src/components/BaseComponent.d.ts +3 -1
- package/build/src/components/BaseComponent.js +15 -0
- package/build/src/components/ComboBox.d.ts +10 -1
- package/build/src/components/ComboBox.js +10 -1
- package/build/src/components/InfoTooltip.d.ts +6 -0
- package/build/src/components/InfoTooltip.js +30 -0
- package/build/src/components/Tooltip.d.ts +8 -10
- package/build/src/components/Tooltip.js +51 -13
- package/build/src/components/ValidationTooltip.d.ts +7 -0
- package/build/src/components/ValidationTooltip.js +107 -0
- package/build/src/components/index.d.ts +3 -1
- package/build/src/components/index.js +8 -5
- package/build/src/utils/tooltipProvider.d.ts +1 -1
- package/build/src/utils/tooltipProvider.js +18 -47
- package/package.json +2 -2
|
@@ -2,8 +2,9 @@ import type { Locator, Page } from '@playwright/test';
|
|
|
2
2
|
import { BaseComponentAssertions } from '../assertions';
|
|
3
3
|
import type { ClickOptions, GetAttributeOptions, HoverOptions, IsVisibleOptions, ScrollIntoViewIfNeededOptions, WaitForOptions } from '../options';
|
|
4
4
|
import { toVisibleElementLocator, toRootElementLocator, toHaveAttributeElementLocator } from '../matchers/component/LocatorSymbols';
|
|
5
|
+
import type { Tooltip } from './Tooltip';
|
|
5
6
|
export declare abstract class BaseComponent {
|
|
6
|
-
|
|
7
|
+
rootLocator: Locator;
|
|
7
8
|
readonly page: Page;
|
|
8
9
|
readonly [toVisibleElementLocator]: () => Locator;
|
|
9
10
|
readonly [toRootElementLocator]: () => Locator;
|
|
@@ -18,5 +19,6 @@ export declare abstract class BaseComponent {
|
|
|
18
19
|
waitFor(options?: WaitForOptions): Promise<void>;
|
|
19
20
|
hasAttribute(name: string, options?: GetAttributeOptions): Promise<boolean>;
|
|
20
21
|
getAttribute(name: string, options?: GetAttributeOptions): Promise<string | null>;
|
|
22
|
+
getTooltipAsync<TTooltip extends Tooltip>(TooltipClass: new (target: BaseComponent) => TTooltip, customId?: string): Promise<TTooltip>;
|
|
21
23
|
expect(): BaseComponentAssertions;
|
|
22
24
|
}
|
|
@@ -157,6 +157,21 @@ var BaseComponent = /** @class */ (function () {
|
|
|
157
157
|
});
|
|
158
158
|
});
|
|
159
159
|
};
|
|
160
|
+
BaseComponent.prototype.getTooltipAsync = function (TooltipClass, customId) {
|
|
161
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
162
|
+
var tooltip;
|
|
163
|
+
return __generator(this, function (_d) {
|
|
164
|
+
switch (_d.label) {
|
|
165
|
+
case 0:
|
|
166
|
+
tooltip = new TooltipClass(this);
|
|
167
|
+
return [4 /*yield*/, tooltip.initAsync(customId)];
|
|
168
|
+
case 1:
|
|
169
|
+
_d.sent();
|
|
170
|
+
return [2 /*return*/, tooltip];
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
};
|
|
160
175
|
BaseComponent.prototype.expect = function () {
|
|
161
176
|
return new assertions_1.BaseComponentAssertions(this);
|
|
162
177
|
};
|
|
@@ -21,10 +21,19 @@ export declare class ComboBox extends MenuComponent {
|
|
|
21
21
|
isFocused(options?: GetAttributeOptions): Promise<boolean>;
|
|
22
22
|
getSelectedValue(): Promise<string>;
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* Этот метод только выбирает элемент из списка.
|
|
25
|
+
*
|
|
26
|
+
* Перед его использованием необходимо вызвать `fill`, `focus` или `click`, которые откроют меню.
|
|
27
|
+
*
|
|
28
|
+
* Используй этот метод, когда в меню существует несколько элементов с одинаковым названием.
|
|
25
29
|
* В остальных случаях лучше использовать `select`
|
|
26
30
|
*/
|
|
27
31
|
selectFirst(value: string | RegExp, options?: ClickOptions): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Этот метод только выбирает элемент из списка.
|
|
34
|
+
*
|
|
35
|
+
* Перед его использованием необходимо вызвать `fill`, `focus` или `click`, которые откроют меню.
|
|
36
|
+
*/
|
|
28
37
|
select(value: string | RegExp, options?: ClickOptions): Promise<void>;
|
|
29
38
|
fill(value: string, options?: FillOptions): Promise<void>;
|
|
30
39
|
clear(options?: ClearOptions): Promise<void>;
|
|
@@ -128,7 +128,11 @@ var ComboBox = /** @class */ (function (_super) {
|
|
|
128
128
|
});
|
|
129
129
|
};
|
|
130
130
|
/**
|
|
131
|
-
*
|
|
131
|
+
* Этот метод только выбирает элемент из списка.
|
|
132
|
+
*
|
|
133
|
+
* Перед его использованием необходимо вызвать `fill`, `focus` или `click`, которые откроют меню.
|
|
134
|
+
*
|
|
135
|
+
* Используй этот метод, когда в меню существует несколько элементов с одинаковым названием.
|
|
132
136
|
* В остальных случаях лучше использовать `select`
|
|
133
137
|
*/
|
|
134
138
|
ComboBox.prototype.selectFirst = function (value, options) {
|
|
@@ -147,6 +151,11 @@ var ComboBox = /** @class */ (function (_super) {
|
|
|
147
151
|
});
|
|
148
152
|
});
|
|
149
153
|
};
|
|
154
|
+
/**
|
|
155
|
+
* Этот метод только выбирает элемент из списка.
|
|
156
|
+
*
|
|
157
|
+
* Перед его использованием необходимо вызвать `fill`, `focus` или `click`, которые откроют меню.
|
|
158
|
+
*/
|
|
150
159
|
ComboBox.prototype.select = function (value, options) {
|
|
151
160
|
return __awaiter(this, void 0, void 0, function () {
|
|
152
161
|
var items;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.InfoTooltip = void 0;
|
|
19
|
+
var Tooltip_1 = require("./Tooltip");
|
|
20
|
+
var InfoTooltip = /** @class */ (function (_super) {
|
|
21
|
+
__extends(InfoTooltip, _super);
|
|
22
|
+
function InfoTooltip(targetControl) {
|
|
23
|
+
return _super.call(this, targetControl) || this;
|
|
24
|
+
}
|
|
25
|
+
InfoTooltip.prototype.showAsync = function () {
|
|
26
|
+
return Promise.resolve();
|
|
27
|
+
};
|
|
28
|
+
return InfoTooltip;
|
|
29
|
+
}(Tooltip_1.Tooltip));
|
|
30
|
+
exports.InfoTooltip = InfoTooltip;
|
|
@@ -3,20 +3,18 @@ import { BaseComponent } from './BaseComponent';
|
|
|
3
3
|
import { TooltipAssertions } from '../assertions';
|
|
4
4
|
import type { InnerTextOptions } from '../options';
|
|
5
5
|
import { toTextElementLocator } from '../matchers/component/LocatorSymbols';
|
|
6
|
+
import { Portal } from './Portal';
|
|
6
7
|
export declare class Tooltip extends BaseComponent {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private readonly contentLocator;
|
|
8
|
+
protected portal: Portal;
|
|
9
|
+
protected targetControl: BaseComponent;
|
|
10
10
|
readonly [toTextElementLocator]: () => Locator;
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(targetControl: BaseComponent);
|
|
12
12
|
getText(options?: InnerTextOptions): Promise<string>;
|
|
13
13
|
getContent(): Locator;
|
|
14
|
+
get contentLocator(): Locator;
|
|
15
|
+
get crossLocator(): Locator;
|
|
14
16
|
close(): Promise<void>;
|
|
15
17
|
expect(): TooltipAssertions;
|
|
18
|
+
protected showAsync(): Promise<void>;
|
|
19
|
+
initAsync(customTid?: string): Promise<void>;
|
|
16
20
|
}
|
|
17
|
-
/**
|
|
18
|
-
* @deprecated createXXXControl feature for migration from '@skbkontur/react-ui-playwright-controls'
|
|
19
|
-
* Task: IF-2498
|
|
20
|
-
*/
|
|
21
|
-
export declare const createTooltipControl: (context: Locator, options?: import("..").DataTIdOption) => Tooltip;
|
|
22
|
-
export type TooltipControl = Tooltip;
|
|
@@ -52,21 +52,24 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
52
52
|
};
|
|
53
53
|
var _a;
|
|
54
54
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
55
|
-
exports.
|
|
55
|
+
exports.Tooltip = void 0;
|
|
56
56
|
var Tooltip_1 = require("@skbkontur/react-ui/components/Tooltip");
|
|
57
57
|
var BaseComponent_1 = require("./BaseComponent");
|
|
58
58
|
var assertions_1 = require("../assertions");
|
|
59
59
|
var dataTidSelector_1 = require("../utils/dataTidSelector");
|
|
60
60
|
var LocatorSymbols_1 = require("../matchers/component/LocatorSymbols");
|
|
61
|
-
var
|
|
61
|
+
var Portal_1 = require("./Portal");
|
|
62
62
|
var Tooltip = /** @class */ (function (_super) {
|
|
63
63
|
__extends(Tooltip, _super);
|
|
64
|
-
function Tooltip(
|
|
65
|
-
var _this = _super.call(this, rootLocator) || this;
|
|
66
|
-
_this.rootLocator = rootLocator;
|
|
64
|
+
function Tooltip(targetControl) {
|
|
65
|
+
var _this = _super.call(this, targetControl.rootLocator) || this;
|
|
67
66
|
_this[_a] = function () { return _this.rootLocator; };
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
var parentContainer = targetControl.rootLocator.locator('xpath=..');
|
|
68
|
+
var exactNoscriptLocator = parentContainer.locator('> noscript');
|
|
69
|
+
_this.portal = new Portal_1.Portal(exactNoscriptLocator);
|
|
70
|
+
var page = targetControl.rootLocator.page();
|
|
71
|
+
_this.rootLocator = page.locator("[data-tid='PopupContent']");
|
|
72
|
+
_this.targetControl = targetControl;
|
|
70
73
|
return _this;
|
|
71
74
|
}
|
|
72
75
|
Tooltip.prototype.getText = function (options) {
|
|
@@ -75,11 +78,25 @@ var Tooltip = /** @class */ (function (_super) {
|
|
|
75
78
|
Tooltip.prototype.getContent = function () {
|
|
76
79
|
return this.contentLocator;
|
|
77
80
|
};
|
|
81
|
+
Object.defineProperty(Tooltip.prototype, "contentLocator", {
|
|
82
|
+
get: function () {
|
|
83
|
+
return this.rootLocator.locator((0, dataTidSelector_1.getDataTidSelector)(Tooltip_1.TooltipDataTids.content));
|
|
84
|
+
},
|
|
85
|
+
enumerable: false,
|
|
86
|
+
configurable: true
|
|
87
|
+
});
|
|
88
|
+
Object.defineProperty(Tooltip.prototype, "crossLocator", {
|
|
89
|
+
get: function () {
|
|
90
|
+
return this.rootLocator.locator((0, dataTidSelector_1.getDataTidSelector)(Tooltip_1.TooltipDataTids.crossIcon));
|
|
91
|
+
},
|
|
92
|
+
enumerable: false,
|
|
93
|
+
configurable: true
|
|
94
|
+
});
|
|
78
95
|
Tooltip.prototype.close = function () {
|
|
79
96
|
return __awaiter(this, void 0, void 0, function () {
|
|
80
97
|
return __generator(this, function (_b) {
|
|
81
98
|
switch (_b.label) {
|
|
82
|
-
case 0: return [4 /*yield*/, this.
|
|
99
|
+
case 0: return [4 /*yield*/, this.crossLocator.click()];
|
|
83
100
|
case 1:
|
|
84
101
|
_b.sent();
|
|
85
102
|
return [4 /*yield*/, this.waitFor({ state: 'hidden' })];
|
|
@@ -93,12 +110,33 @@ var Tooltip = /** @class */ (function (_super) {
|
|
|
93
110
|
Tooltip.prototype.expect = function () {
|
|
94
111
|
return new assertions_1.TooltipAssertions(this);
|
|
95
112
|
};
|
|
113
|
+
Tooltip.prototype.showAsync = function () {
|
|
114
|
+
return Promise.resolve();
|
|
115
|
+
};
|
|
116
|
+
Tooltip.prototype.initAsync = function (customTid) {
|
|
117
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
118
|
+
var container, page;
|
|
119
|
+
return __generator(this, function (_b) {
|
|
120
|
+
switch (_b.label) {
|
|
121
|
+
case 0: return [4 /*yield*/, this.showAsync()];
|
|
122
|
+
case 1:
|
|
123
|
+
_b.sent();
|
|
124
|
+
if (!(customTid === undefined || customTid === null)) return [3 /*break*/, 3];
|
|
125
|
+
return [4 /*yield*/, this.portal.getContainer()];
|
|
126
|
+
case 2:
|
|
127
|
+
container = _b.sent();
|
|
128
|
+
this.rootLocator = container.locator("[data-tid='PopupContent']");
|
|
129
|
+
return [3 /*break*/, 4];
|
|
130
|
+
case 3:
|
|
131
|
+
page = this.targetControl.rootLocator.page();
|
|
132
|
+
this.rootLocator = page.locator("[data-tid='".concat(customTid, "']"));
|
|
133
|
+
_b.label = 4;
|
|
134
|
+
case 4: return [2 /*return*/];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
};
|
|
96
139
|
return Tooltip;
|
|
97
140
|
}(BaseComponent_1.BaseComponent));
|
|
98
141
|
exports.Tooltip = Tooltip;
|
|
99
142
|
_a = LocatorSymbols_1.toTextElementLocator;
|
|
100
|
-
/**
|
|
101
|
-
* @deprecated createXXXControl feature for migration from '@skbkontur/react-ui-playwright-controls'
|
|
102
|
-
* Task: IF-2498
|
|
103
|
-
*/
|
|
104
|
-
exports.createTooltipControl = (0, createComponentFactory_1.createComponentTIdFactory)(Tooltip);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BaseComponent } from './BaseComponent';
|
|
2
|
+
import { Tooltip } from './Tooltip';
|
|
3
|
+
export declare class ValidationTooltip extends Tooltip {
|
|
4
|
+
constructor(targetControl: BaseComponent);
|
|
5
|
+
protected showAsync(): Promise<void>;
|
|
6
|
+
initAsync(customTid?: string): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.ValidationTooltip = void 0;
|
|
55
|
+
var Tooltip_1 = require("./Tooltip");
|
|
56
|
+
var Portal_1 = require("./Portal");
|
|
57
|
+
function isFocusable(value) {
|
|
58
|
+
return typeof (value === null || value === void 0 ? void 0 : value.focus) === 'function';
|
|
59
|
+
}
|
|
60
|
+
var ValidationTooltip = /** @class */ (function (_super) {
|
|
61
|
+
__extends(ValidationTooltip, _super);
|
|
62
|
+
function ValidationTooltip(targetControl) {
|
|
63
|
+
var _this = _super.call(this, targetControl) || this;
|
|
64
|
+
_this.portal = new Portal_1.Portal(_this.targetControl.rootLocator.locator('../../noscript'));
|
|
65
|
+
return _this;
|
|
66
|
+
}
|
|
67
|
+
ValidationTooltip.prototype.showAsync = function () {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
69
|
+
return __generator(this, function (_a) {
|
|
70
|
+
switch (_a.label) {
|
|
71
|
+
case 0: return [4 /*yield*/, this.targetControl.rootLocator.press('Tab')];
|
|
72
|
+
case 1:
|
|
73
|
+
_a.sent();
|
|
74
|
+
if (!isFocusable(this.targetControl)) return [3 /*break*/, 3];
|
|
75
|
+
return [4 /*yield*/, this.targetControl.focus()];
|
|
76
|
+
case 2:
|
|
77
|
+
_a.sent();
|
|
78
|
+
return [3 /*break*/, 5];
|
|
79
|
+
case 3: return [4 /*yield*/, this.targetControl.rootLocator.focus()];
|
|
80
|
+
case 4:
|
|
81
|
+
_a.sent();
|
|
82
|
+
_a.label = 5;
|
|
83
|
+
case 5: return [2 /*return*/];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
ValidationTooltip.prototype.initAsync = function (customTid) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
90
|
+
return __generator(this, function (_a) {
|
|
91
|
+
switch (_a.label) {
|
|
92
|
+
case 0: return [4 /*yield*/, this.portal.rootLocator.count()];
|
|
93
|
+
case 1:
|
|
94
|
+
if ((_a.sent()) > 1) {
|
|
95
|
+
this.portal = new Portal_1.Portal(this.targetControl.rootLocator.locator('../following-sibling::noscript[1]'));
|
|
96
|
+
}
|
|
97
|
+
return [4 /*yield*/, _super.prototype.initAsync.call(this, customTid)];
|
|
98
|
+
case 2:
|
|
99
|
+
_a.sent();
|
|
100
|
+
return [2 /*return*/];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
return ValidationTooltip;
|
|
106
|
+
}(Tooltip_1.Tooltip));
|
|
107
|
+
exports.ValidationTooltip = ValidationTooltip;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { BaseComponent } from './BaseComponent';
|
|
2
2
|
export { ComponentList } from './ComponentList';
|
|
3
3
|
export { MenuComponent } from './MenuComponent';
|
|
4
|
+
export { InfoTooltip } from './InfoTooltip';
|
|
5
|
+
export { ValidationTooltip } from './ValidationTooltip';
|
|
6
|
+
export { Tooltip } from './Tooltip';
|
|
4
7
|
export { Button, createButtonControl, type ButtonControl } from './Button';
|
|
5
|
-
export { Tooltip, createTooltipControl, type TooltipControl } from './Tooltip';
|
|
6
8
|
export { Portal, createPortalControl, type PortalControl } from './Portal';
|
|
7
9
|
export { Checkbox, createCheckboxControl, type CheckboxControl } from './Checkbox';
|
|
8
10
|
export { ComboBox, createComboBoxControl, type ComboBoxControl } from './ComboBox';
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.createPagingControl = exports.Paging = exports.createKebabControl = exports.Kebab = exports.createFxInputControl = exports.FxInput = exports.createFileUploaderControl = exports.FileUploader = exports.createDateInputControl = exports.DateInput = exports.createAutocompleteControl = exports.Autocomplete = exports.createSpinnerControl = exports.Spinner = exports.createLoaderControl = exports.Loader = exports.createTabControl = void 0;
|
|
3
|
+
exports.createTabsControl = exports.Tabs = exports.createLinkControl = exports.Link = exports.createToggleControl = exports.Toggle = exports.createSelectControl = exports.Select = exports.createToastControl = exports.Toast = exports.createDropdownControl = exports.Dropdown = exports.createDropdownMenuControl = exports.DropdownMenu = exports.createTextareaControl = exports.Textarea = exports.createDateRangePickerControl = exports.DateRangePicker = exports.createDatePickerControl = exports.DatePicker = exports.createTokenInputControl = exports.TokenInput = exports.createTokenControl = exports.Token = exports.createCurrencyInputControl = exports.CurrencyInput = exports.createInputControl = exports.Input = exports.createRadioGroupControl = exports.RadioGroup = exports.createRadioControl = exports.Radio = exports.createMenuItemControl = exports.MenuItem = exports.createLabelControl = exports.Label = exports.createComboBoxControl = exports.ComboBox = exports.createCheckboxControl = exports.Checkbox = exports.createPortalControl = exports.Portal = exports.createButtonControl = exports.Button = exports.Tooltip = exports.ValidationTooltip = exports.InfoTooltip = exports.MenuComponent = exports.ComponentList = exports.BaseComponent = void 0;
|
|
4
|
+
exports.createPagingControl = exports.Paging = exports.createKebabControl = exports.Kebab = exports.createFxInputControl = exports.FxInput = exports.createFileUploaderControl = exports.FileUploader = exports.createDateInputControl = exports.DateInput = exports.createAutocompleteControl = exports.Autocomplete = exports.createSpinnerControl = exports.Spinner = exports.createLoaderControl = exports.Loader = exports.createTabControl = exports.Tab = void 0;
|
|
5
5
|
var BaseComponent_1 = require("./BaseComponent");
|
|
6
6
|
Object.defineProperty(exports, "BaseComponent", { enumerable: true, get: function () { return BaseComponent_1.BaseComponent; } });
|
|
7
7
|
var ComponentList_1 = require("./ComponentList");
|
|
8
8
|
Object.defineProperty(exports, "ComponentList", { enumerable: true, get: function () { return ComponentList_1.ComponentList; } });
|
|
9
9
|
var MenuComponent_1 = require("./MenuComponent");
|
|
10
10
|
Object.defineProperty(exports, "MenuComponent", { enumerable: true, get: function () { return MenuComponent_1.MenuComponent; } });
|
|
11
|
+
var InfoTooltip_1 = require("./InfoTooltip");
|
|
12
|
+
Object.defineProperty(exports, "InfoTooltip", { enumerable: true, get: function () { return InfoTooltip_1.InfoTooltip; } });
|
|
13
|
+
var ValidationTooltip_1 = require("./ValidationTooltip");
|
|
14
|
+
Object.defineProperty(exports, "ValidationTooltip", { enumerable: true, get: function () { return ValidationTooltip_1.ValidationTooltip; } });
|
|
15
|
+
var Tooltip_1 = require("./Tooltip");
|
|
16
|
+
Object.defineProperty(exports, "Tooltip", { enumerable: true, get: function () { return Tooltip_1.Tooltip; } });
|
|
11
17
|
var Button_1 = require("./Button");
|
|
12
18
|
Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return Button_1.Button; } });
|
|
13
19
|
Object.defineProperty(exports, "createButtonControl", { enumerable: true, get: function () { return Button_1.createButtonControl; } });
|
|
14
|
-
var Tooltip_1 = require("./Tooltip");
|
|
15
|
-
Object.defineProperty(exports, "Tooltip", { enumerable: true, get: function () { return Tooltip_1.Tooltip; } });
|
|
16
|
-
Object.defineProperty(exports, "createTooltipControl", { enumerable: true, get: function () { return Tooltip_1.createTooltipControl; } });
|
|
17
20
|
var Portal_1 = require("./Portal");
|
|
18
21
|
Object.defineProperty(exports, "Portal", { enumerable: true, get: function () { return Portal_1.Portal; } });
|
|
19
22
|
Object.defineProperty(exports, "createPortalControl", { enumerable: true, get: function () { return Portal_1.createPortalControl; } });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Tooltip } from '../components';
|
|
1
|
+
import type { Tooltip } from '../components';
|
|
2
2
|
import type { BaseComponent } from '../components';
|
|
3
3
|
import { TooltipType } from './constants';
|
|
4
4
|
export declare function getTooltip(type: TooltipType, component: BaseComponent): Promise<Tooltip>;
|
|
@@ -37,58 +37,29 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.getTooltip = getTooltip;
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var components_2 = require("../components");
|
|
40
|
+
var InfoTooltip_1 = require("../components/InfoTooltip");
|
|
41
|
+
var ValidationTooltip_1 = require("../components/ValidationTooltip");
|
|
43
42
|
var constants_1 = require("./constants");
|
|
44
|
-
var dataTidSelector_1 = require("./dataTidSelector");
|
|
45
|
-
function isFocusable(value) {
|
|
46
|
-
return typeof (value === null || value === void 0 ? void 0 : value.focus) === 'function';
|
|
47
|
-
}
|
|
48
43
|
function getTooltip(type, component) {
|
|
49
44
|
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
-
var
|
|
51
|
-
return __generator(this, function (
|
|
52
|
-
switch (
|
|
45
|
+
var tooltip;
|
|
46
|
+
return __generator(this, function (_a) {
|
|
47
|
+
switch (_a.label) {
|
|
53
48
|
case 0:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (!isFocusable(component)) return [3 /*break*/, 4];
|
|
64
|
-
return [4 /*yield*/, component.focus()];
|
|
65
|
-
case 3:
|
|
66
|
-
_b.sent();
|
|
67
|
-
return [3 /*break*/, 6];
|
|
68
|
-
case 4: return [4 /*yield*/, component.rootLocator.focus()];
|
|
69
|
-
case 5:
|
|
70
|
-
_b.sent();
|
|
71
|
-
_b.label = 6;
|
|
72
|
-
case 6:
|
|
73
|
-
locator = component.rootLocator.locator('../../noscript');
|
|
74
|
-
return [4 /*yield*/, locator.count()];
|
|
75
|
-
case 7:
|
|
76
|
-
if ((_b.sent()) > 1) {
|
|
77
|
-
locator = component.rootLocator.locator('../following-sibling::noscript[1]');
|
|
78
|
-
}
|
|
79
|
-
portal = new components_1.Portal(locator);
|
|
80
|
-
return [3 /*break*/, 10];
|
|
81
|
-
case 8:
|
|
82
|
-
{
|
|
83
|
-
portal = new components_1.Portal(component.rootLocator.locator('../noscript'));
|
|
84
|
-
return [3 /*break*/, 10];
|
|
49
|
+
switch (type) {
|
|
50
|
+
case constants_1.TooltipType.Validation:
|
|
51
|
+
tooltip = new ValidationTooltip_1.ValidationTooltip(component);
|
|
52
|
+
break;
|
|
53
|
+
case constants_1.TooltipType.Information:
|
|
54
|
+
tooltip = new InfoTooltip_1.InfoTooltip(component);
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error("\u041F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440 \u043D\u0435 \u0443\u043C\u0435\u0435\u0442 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 \u0442\u0438\u043F\u043E\u043C \u0442\u0443\u043B\u0442\u0438\u043F\u0430: ".concat(type));
|
|
85
58
|
}
|
|
86
|
-
|
|
87
|
-
case
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
container = _b.sent();
|
|
91
|
-
return [2 /*return*/, new components_2.Tooltip(container.locator((0, dataTidSelector_1.getDataTidSelector)(Popup_1.PopupDataTids.content)))];
|
|
59
|
+
return [4 /*yield*/, tooltip.initAsync()];
|
|
60
|
+
case 1:
|
|
61
|
+
_a.sent();
|
|
62
|
+
return [2 /*return*/, tooltip];
|
|
92
63
|
}
|
|
93
64
|
});
|
|
94
65
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/playwright-react-ui-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0-beta.1",
|
|
4
4
|
"description": "Пакет для взаимодействия с компонентами @skbkontur/react-ui при тестировании с помощью Playwright",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"files": [
|
|
@@ -23,6 +23,6 @@
|
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@playwright/test": "^1.
|
|
26
|
+
"@playwright/test": "^1.51.0"
|
|
27
27
|
}
|
|
28
28
|
}
|