@skbkontur/playwright-react-ui-components 1.17.1 → 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.
@@ -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
- readonly rootLocator: Locator;
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
  };
@@ -0,0 +1,6 @@
1
+ import type { BaseComponent } from './BaseComponent';
2
+ import { Tooltip } from './Tooltip';
3
+ export declare class InfoTooltip extends Tooltip {
4
+ constructor(targetControl: BaseComponent);
5
+ protected showAsync(): Promise<void>;
6
+ }
@@ -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
- readonly rootLocator: Locator;
8
- private readonly closeLocator;
9
- private readonly contentLocator;
8
+ protected portal: Portal;
9
+ protected targetControl: BaseComponent;
10
10
  readonly [toTextElementLocator]: () => Locator;
11
- constructor(rootLocator: Locator);
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.createTooltipControl = exports.Tooltip = void 0;
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 createComponentFactory_1 = require("../utils/createComponentFactory");
61
+ var Portal_1 = require("./Portal");
62
62
  var Tooltip = /** @class */ (function (_super) {
63
63
  __extends(Tooltip, _super);
64
- function Tooltip(rootLocator) {
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
- _this.contentLocator = rootLocator.locator((0, dataTidSelector_1.getDataTidSelector)(Tooltip_1.TooltipDataTids.content));
69
- _this.closeLocator = rootLocator.locator((0, dataTidSelector_1.getDataTidSelector)(Tooltip_1.TooltipDataTids.crossIcon));
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.closeLocator.click()];
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.Tab = 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.createTooltipControl = exports.Tooltip = exports.createButtonControl = exports.Button = 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 = 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 Popup_1 = require("@skbkontur/react-ui/internal/Popup");
41
- var components_1 = require("../components");
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 portal, _a, locator, container;
51
- return __generator(this, function (_b) {
52
- switch (_b.label) {
45
+ var tooltip;
46
+ return __generator(this, function (_a) {
47
+ switch (_a.label) {
53
48
  case 0:
54
- _a = type;
55
- switch (_a) {
56
- case constants_1.TooltipType.Validation: return [3 /*break*/, 1];
57
- case constants_1.TooltipType.Information: return [3 /*break*/, 8];
58
- }
59
- return [3 /*break*/, 9];
60
- case 1: return [4 /*yield*/, component.rootLocator.press('Tab')];
61
- case 2:
62
- _b.sent();
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
- _b.label = 9;
87
- case 9: throw new Error("Unknown tooltip type: ".concat(type));
88
- case 10: return [4 /*yield*/, portal.getContainer()];
89
- case 11:
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.17.1",
3
+ "version": "1.18.0-beta.1",
4
4
  "description": "Пакет для взаимодействия с компонентами @skbkontur/react-ui при тестировании с помощью Playwright",
5
5
  "main": "build/index.js",
6
6
  "files": [