@skbkontur/playwright-react-ui-components 1.13.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.
Files changed (165) hide show
  1. package/build/index.d.ts +1 -0
  2. package/build/index.js +17 -0
  3. package/build/src/assertions/AutocompleteAssertions.d.ts +19 -0
  4. package/build/src/assertions/AutocompleteAssertions.js +177 -0
  5. package/build/src/assertions/BaseComponentAssertions.d.ts +15 -0
  6. package/build/src/assertions/BaseComponentAssertions.js +158 -0
  7. package/build/src/assertions/ButtonAssertions.d.ts +15 -0
  8. package/build/src/assertions/ButtonAssertions.js +162 -0
  9. package/build/src/assertions/CheckboxAssertions.d.ts +19 -0
  10. package/build/src/assertions/CheckboxAssertions.js +210 -0
  11. package/build/src/assertions/ComboBoxAssertions.d.ts +19 -0
  12. package/build/src/assertions/ComboBoxAssertions.js +304 -0
  13. package/build/src/assertions/ComponentListAssertions.d.ts +13 -0
  14. package/build/src/assertions/ComponentListAssertions.js +126 -0
  15. package/build/src/assertions/CurrencyInputAssertions.d.ts +15 -0
  16. package/build/src/assertions/CurrencyInputAssertions.js +212 -0
  17. package/build/src/assertions/DateInputAssertions.d.ts +15 -0
  18. package/build/src/assertions/DateInputAssertions.js +162 -0
  19. package/build/src/assertions/DatePickerAssertions.d.ts +15 -0
  20. package/build/src/assertions/DatePickerAssertions.js +162 -0
  21. package/build/src/assertions/DateRangePickerAssertions.d.ts +11 -0
  22. package/build/src/assertions/DateRangePickerAssertions.js +111 -0
  23. package/build/src/assertions/DropdownAssertions.d.ts +19 -0
  24. package/build/src/assertions/DropdownAssertions.js +260 -0
  25. package/build/src/assertions/DropdownMenuAssertions.d.ts +17 -0
  26. package/build/src/assertions/DropdownMenuAssertions.js +236 -0
  27. package/build/src/assertions/FileUploaderAssertions.d.ts +14 -0
  28. package/build/src/assertions/FileUploaderAssertions.js +119 -0
  29. package/build/src/assertions/FxInputAssertions.d.ts +17 -0
  30. package/build/src/assertions/FxInputAssertions.js +189 -0
  31. package/build/src/assertions/InputAssertions.d.ts +19 -0
  32. package/build/src/assertions/InputAssertions.js +177 -0
  33. package/build/src/assertions/KebabAssertions.d.ts +13 -0
  34. package/build/src/assertions/KebabAssertions.js +189 -0
  35. package/build/src/assertions/LabelAssertions.d.ts +19 -0
  36. package/build/src/assertions/LabelAssertions.js +144 -0
  37. package/build/src/assertions/LinkAssertions.d.ts +17 -0
  38. package/build/src/assertions/LinkAssertions.js +187 -0
  39. package/build/src/assertions/LoaderAssertions.d.ts +8 -0
  40. package/build/src/assertions/LoaderAssertions.js +78 -0
  41. package/build/src/assertions/MenuItemAssertations.d.ts +11 -0
  42. package/build/src/assertions/MenuItemAssertations.js +114 -0
  43. package/build/src/assertions/PagingAssertions.d.ts +15 -0
  44. package/build/src/assertions/PagingAssertions.js +149 -0
  45. package/build/src/assertions/PortalAssertions.d.ts +9 -0
  46. package/build/src/assertions/PortalAssertions.js +90 -0
  47. package/build/src/assertions/RadioAssertions.d.ts +19 -0
  48. package/build/src/assertions/RadioAssertions.js +210 -0
  49. package/build/src/assertions/RadioGroupAssertions.d.ts +15 -0
  50. package/build/src/assertions/RadioGroupAssertions.js +233 -0
  51. package/build/src/assertions/SelectAssertions.d.ts +15 -0
  52. package/build/src/assertions/SelectAssertions.js +211 -0
  53. package/build/src/assertions/SpinnerAssertions.d.ts +8 -0
  54. package/build/src/assertions/SpinnerAssertions.js +78 -0
  55. package/build/src/assertions/TabAssertions.d.ts +17 -0
  56. package/build/src/assertions/TabAssertions.js +187 -0
  57. package/build/src/assertions/TabsAssertions.d.ts +11 -0
  58. package/build/src/assertions/TabsAssertions.js +130 -0
  59. package/build/src/assertions/TextareaAssertions.d.ts +15 -0
  60. package/build/src/assertions/TextareaAssertions.js +162 -0
  61. package/build/src/assertions/ToastAssertions.d.ts +8 -0
  62. package/build/src/assertions/ToastAssertions.js +78 -0
  63. package/build/src/assertions/ToggleAssertions.d.ts +17 -0
  64. package/build/src/assertions/ToggleAssertions.js +186 -0
  65. package/build/src/assertions/TokenAssertions.d.ts +17 -0
  66. package/build/src/assertions/TokenAssertions.js +159 -0
  67. package/build/src/assertions/TokenInputAssertions.d.ts +16 -0
  68. package/build/src/assertions/TokenInputAssertions.js +170 -0
  69. package/build/src/assertions/TooltipAssertions.d.ts +11 -0
  70. package/build/src/assertions/TooltipAssertions.js +114 -0
  71. package/build/src/assertions/index.d.ts +34 -0
  72. package/build/src/assertions/index.js +71 -0
  73. package/build/src/components/Autocomplete.d.ts +25 -0
  74. package/build/src/components/Autocomplete.js +256 -0
  75. package/build/src/components/BaseComponent.d.ts +18 -0
  76. package/build/src/components/BaseComponent.js +159 -0
  77. package/build/src/components/Button.d.ts +21 -0
  78. package/build/src/components/Button.js +146 -0
  79. package/build/src/components/Checkbox.d.ts +21 -0
  80. package/build/src/components/Checkbox.js +161 -0
  81. package/build/src/components/ComboBox.d.ts +41 -0
  82. package/build/src/components/ComboBox.js +292 -0
  83. package/build/src/components/ComponentList.d.ts +21 -0
  84. package/build/src/components/ComponentList.js +203 -0
  85. package/build/src/components/CurrencyInput.d.ts +21 -0
  86. package/build/src/components/CurrencyInput.js +201 -0
  87. package/build/src/components/DateInput.d.ts +18 -0
  88. package/build/src/components/DateInput.js +195 -0
  89. package/build/src/components/DatePicker.d.ts +20 -0
  90. package/build/src/components/DatePicker.js +205 -0
  91. package/build/src/components/DateRangePicker.d.ts +20 -0
  92. package/build/src/components/DateRangePicker.js +111 -0
  93. package/build/src/components/Dropdown.d.ts +35 -0
  94. package/build/src/components/Dropdown.js +322 -0
  95. package/build/src/components/DropdownMenu.d.ts +40 -0
  96. package/build/src/components/DropdownMenu.js +321 -0
  97. package/build/src/components/FileUploader.d.ts +54 -0
  98. package/build/src/components/FileUploader.js +213 -0
  99. package/build/src/components/FxInput.d.ts +23 -0
  100. package/build/src/components/FxInput.js +217 -0
  101. package/build/src/components/Input.d.ts +21 -0
  102. package/build/src/components/Input.js +192 -0
  103. package/build/src/components/Kebab.d.ts +27 -0
  104. package/build/src/components/Kebab.js +247 -0
  105. package/build/src/components/Label.d.ts +13 -0
  106. package/build/src/components/Label.js +94 -0
  107. package/build/src/components/Link.d.ts +16 -0
  108. package/build/src/components/Link.js +130 -0
  109. package/build/src/components/Loader.d.ts +11 -0
  110. package/build/src/components/Loader.js +103 -0
  111. package/build/src/components/MenuItem.d.ts +13 -0
  112. package/build/src/components/MenuItem.js +84 -0
  113. package/build/src/components/Paging.d.ts +25 -0
  114. package/build/src/components/Paging.js +249 -0
  115. package/build/src/components/Portal.d.ts +11 -0
  116. package/build/src/components/Portal.js +112 -0
  117. package/build/src/components/Radio.d.ts +19 -0
  118. package/build/src/components/Radio.js +156 -0
  119. package/build/src/components/RadioGroup.d.ts +21 -0
  120. package/build/src/components/RadioGroup.js +232 -0
  121. package/build/src/components/Select.d.ts +43 -0
  122. package/build/src/components/Select.js +384 -0
  123. package/build/src/components/Spinner.d.ts +12 -0
  124. package/build/src/components/Spinner.js +103 -0
  125. package/build/src/components/Tab.d.ts +16 -0
  126. package/build/src/components/Tab.js +126 -0
  127. package/build/src/components/Tabs.d.ts +18 -0
  128. package/build/src/components/Tabs.js +136 -0
  129. package/build/src/components/Textarea.d.ts +21 -0
  130. package/build/src/components/Textarea.js +186 -0
  131. package/build/src/components/Toast.d.ts +10 -0
  132. package/build/src/components/Toast.js +79 -0
  133. package/build/src/components/Toggle.d.ts +19 -0
  134. package/build/src/components/Toggle.js +151 -0
  135. package/build/src/components/Token.d.ts +13 -0
  136. package/build/src/components/Token.js +106 -0
  137. package/build/src/components/TokenInput.d.ts +44 -0
  138. package/build/src/components/TokenInput.js +319 -0
  139. package/build/src/components/Tooltip.d.ts +14 -0
  140. package/build/src/components/Tooltip.js +98 -0
  141. package/build/src/components/index.d.ts +34 -0
  142. package/build/src/components/index.js +71 -0
  143. package/build/src/index.d.ts +5 -0
  144. package/build/src/index.js +21 -0
  145. package/build/src/matchers/formattedMatchers.d.ts +37 -0
  146. package/build/src/matchers/formattedMatchers.js +125 -0
  147. package/build/src/matchers/index.d.ts +2 -0
  148. package/build/src/matchers/index.js +20 -0
  149. package/build/src/matchers/mergedExpects.d.ts +25 -0
  150. package/build/src/matchers/mergedExpects.js +6 -0
  151. package/build/src/options/AssertionOptions.d.ts +82 -0
  152. package/build/src/options/AssertionOptions.js +2 -0
  153. package/build/src/options/LocatorOptions.d.ts +342 -0
  154. package/build/src/options/LocatorOptions.js +2 -0
  155. package/build/src/options/index.d.ts +2 -0
  156. package/build/src/options/index.js +18 -0
  157. package/build/src/utils/constants.d.ts +10 -0
  158. package/build/src/utils/constants.js +15 -0
  159. package/build/src/utils/dataTidSelector.d.ts +1 -0
  160. package/build/src/utils/dataTidSelector.js +6 -0
  161. package/build/src/utils/index.d.ts +2 -0
  162. package/build/src/utils/index.js +20 -0
  163. package/build/src/utils/tooltipProvider.d.ts +4 -0
  164. package/build/src/utils/tooltipProvider.js +95 -0
  165. package/package.json +27 -0
@@ -0,0 +1,292 @@
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.ComboBox = void 0;
55
+ var test_1 = require("@playwright/test");
56
+ var CustomComboBox_1 = require("@skbkontur/react-ui/internal/CustomComboBox");
57
+ var react_ui_1 = require("@skbkontur/react-ui");
58
+ var MenuFooter_1 = require("@skbkontur/react-ui/components/MenuFooter");
59
+ var InputLikeText_1 = require("@skbkontur/react-ui/internal/InputLikeText");
60
+ var MenuMessage_1 = require("@skbkontur/react-ui/internal/MenuMessage");
61
+ var Portal_1 = require("./Portal");
62
+ var BaseComponent_1 = require("./BaseComponent");
63
+ var assertions_1 = require("../assertions");
64
+ var utils_1 = require("../utils");
65
+ var ComponentList_1 = require("./ComponentList");
66
+ var MenuItem_1 = require("./MenuItem");
67
+ var dataTidSelector_1 = require("../utils/dataTidSelector");
68
+ var ComboBox = /** @class */ (function (_super) {
69
+ __extends(ComboBox, _super);
70
+ function ComboBox(rootLocator) {
71
+ var _this = _super.call(this, rootLocator) || this;
72
+ _this.rootLocator = rootLocator;
73
+ _this.nativeInputLocator = rootLocator.locator('input');
74
+ _this.inputLikeTextLocator = rootLocator.locator((0, dataTidSelector_1.getDataTidSelector)(InputLikeText_1.InputLikeTextDataTids.input));
75
+ _this.portal = new Portal_1.Portal(rootLocator.locator('noscript'));
76
+ return _this;
77
+ }
78
+ ComboBox.prototype.isDisabled = function (options) {
79
+ return __awaiter(this, void 0, void 0, function () {
80
+ return __generator(this, function (_a) {
81
+ switch (_a.label) {
82
+ case 0: return [4 /*yield*/, this.nativeInputLocator.isDisabled(options)];
83
+ case 1: return [2 /*return*/, _a.sent()];
84
+ }
85
+ });
86
+ });
87
+ };
88
+ ComboBox.prototype.isFocused = function (options) {
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.nativeInputLocator.getAttribute('type', options)];
93
+ case 1: return [2 /*return*/, (_a.sent()) !== 'hidden'];
94
+ }
95
+ });
96
+ });
97
+ };
98
+ ComboBox.prototype.getSelectedValue = function () {
99
+ return __awaiter(this, void 0, void 0, function () {
100
+ return __generator(this, function (_a) {
101
+ switch (_a.label) {
102
+ case 0: return [4 /*yield*/, this.isFocused()];
103
+ case 1:
104
+ if (!_a.sent()) return [3 /*break*/, 3];
105
+ return [4 /*yield*/, this.nativeInputLocator.inputValue()];
106
+ case 2: return [2 /*return*/, _a.sent()];
107
+ case 3: return [4 /*yield*/, this.inputLikeTextLocator.innerText()];
108
+ case 4: return [2 /*return*/, _a.sent()];
109
+ }
110
+ });
111
+ });
112
+ };
113
+ /**
114
+ * Используй этот метод, когда в меню существует несколько элементов с одинаковым названием
115
+ * В остальных случаях лучше использовать `select`
116
+ */
117
+ ComboBox.prototype.selectFirst = function (value, options) {
118
+ return __awaiter(this, void 0, void 0, function () {
119
+ var items;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0: return [4 /*yield*/, this.getComboBoxMenuItemsLocator(value)];
123
+ case 1:
124
+ items = _a.sent();
125
+ return [4 /*yield*/, items.first().click(options)];
126
+ case 2:
127
+ _a.sent();
128
+ return [2 /*return*/];
129
+ }
130
+ });
131
+ });
132
+ };
133
+ ComboBox.prototype.select = function (value, options) {
134
+ return __awaiter(this, void 0, void 0, function () {
135
+ var items;
136
+ return __generator(this, function (_a) {
137
+ switch (_a.label) {
138
+ case 0: return [4 /*yield*/, this.getComboBoxMenuItemsLocator(value)];
139
+ case 1:
140
+ items = _a.sent();
141
+ return [4 /*yield*/, (0, test_1.expect)(items).toHaveCount(1)];
142
+ case 2:
143
+ _a.sent();
144
+ return [4 /*yield*/, items.click(options)];
145
+ case 3:
146
+ _a.sent();
147
+ return [2 /*return*/];
148
+ }
149
+ });
150
+ });
151
+ };
152
+ ComboBox.prototype.fill = function (value, options) {
153
+ return __awaiter(this, void 0, void 0, function () {
154
+ return __generator(this, function (_a) {
155
+ switch (_a.label) {
156
+ case 0: return [4 /*yield*/, this.focus()];
157
+ case 1:
158
+ _a.sent();
159
+ return [4 /*yield*/, this.nativeInputLocator.fill(value, options)];
160
+ case 2:
161
+ _a.sent();
162
+ return [2 /*return*/];
163
+ }
164
+ });
165
+ });
166
+ };
167
+ ComboBox.prototype.clear = function (options) {
168
+ return __awaiter(this, void 0, void 0, function () {
169
+ return __generator(this, function (_a) {
170
+ switch (_a.label) {
171
+ case 0: return [4 /*yield*/, this.focus()];
172
+ case 1:
173
+ _a.sent();
174
+ return [4 /*yield*/, this.nativeInputLocator.clear(options)];
175
+ case 2:
176
+ _a.sent();
177
+ return [2 /*return*/];
178
+ }
179
+ });
180
+ });
181
+ };
182
+ ComboBox.prototype.focus = function (options) {
183
+ return __awaiter(this, void 0, void 0, function () {
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0: return [4 /*yield*/, (0, test_1.expect)(this.nativeInputLocator).toBeEnabled()];
187
+ case 1:
188
+ _a.sent();
189
+ return [4 /*yield*/, this.rootLocator
190
+ .locator('input[type="text"]')
191
+ .or(this.rootLocator.locator((0, dataTidSelector_1.getDataTidSelector)(InputLikeText_1.InputLikeTextDataTids.root)))
192
+ .focus(options)];
193
+ case 2:
194
+ _a.sent();
195
+ return [2 /*return*/];
196
+ }
197
+ });
198
+ });
199
+ };
200
+ ComboBox.prototype.blur = function (options) {
201
+ return __awaiter(this, void 0, void 0, function () {
202
+ return __generator(this, function (_a) {
203
+ switch (_a.label) {
204
+ case 0: return [4 /*yield*/, this.nativeInputLocator.press('Tab', { timeout: options === null || options === void 0 ? void 0 : options.timeout })];
205
+ case 1:
206
+ _a.sent();
207
+ return [2 /*return*/];
208
+ }
209
+ });
210
+ });
211
+ };
212
+ ComboBox.prototype.click = function () {
213
+ return __awaiter(this, void 0, void 0, function () {
214
+ return __generator(this, function (_a) {
215
+ switch (_a.label) {
216
+ case 0:
217
+ // NOTE: rootLocator всегда в состоянии enabled, даже если ComboBox disabled
218
+ return [4 /*yield*/, (0, test_1.expect)(this.nativeInputLocator).toBeEnabled()];
219
+ case 1:
220
+ // NOTE: rootLocator всегда в состоянии enabled, даже если ComboBox disabled
221
+ _a.sent();
222
+ return [4 /*yield*/, _super.prototype.click.call(this)];
223
+ case 2:
224
+ _a.sent();
225
+ return [2 /*return*/];
226
+ }
227
+ });
228
+ });
229
+ };
230
+ ComboBox.prototype.getTooltip = function (type) {
231
+ return __awaiter(this, void 0, void 0, function () {
232
+ return __generator(this, function (_a) {
233
+ return [2 /*return*/, (0, utils_1.getTooltip)(type, this)];
234
+ });
235
+ });
236
+ };
237
+ /**
238
+ * Возвращает список меню по data-tid'ам из react-ui:
239
+ * - MenuItemDataTids.root
240
+ * - MenuMessageDataTids.root
241
+ * - ComboBoxMenuDataTids.item
242
+ * - ComboBoxMenuDataTids.notFound
243
+ * - MenuHeaderDataTids.root
244
+ * - MenuFooterDataTids.root
245
+ */
246
+ ComboBox.prototype.getMenuItems = function () {
247
+ return __awaiter(this, void 0, void 0, function () {
248
+ var container;
249
+ return __generator(this, function (_a) {
250
+ switch (_a.label) {
251
+ case 0: return [4 /*yield*/, this.focus()];
252
+ case 1:
253
+ _a.sent();
254
+ return [4 /*yield*/, this.portal.getContainer()];
255
+ case 2:
256
+ container = _a.sent();
257
+ return [4 /*yield*/, container.locator((0, dataTidSelector_1.getDataTidSelector)(react_ui_1.SpinnerDataTids.root)).waitFor({ state: 'hidden' })];
258
+ case 3:
259
+ _a.sent();
260
+ return [2 /*return*/, new ComponentList_1.ComponentList(container, function (locator) {
261
+ return locator
262
+ .locator((0, dataTidSelector_1.getDataTidSelector)(react_ui_1.MenuItemDataTids.root))
263
+ .or(locator.locator((0, dataTidSelector_1.getDataTidSelector)(MenuMessage_1.MenuMessageDataTids.root)))
264
+ .or(locator.locator((0, dataTidSelector_1.getDataTidSelector)(CustomComboBox_1.ComboBoxMenuDataTids.item)))
265
+ .or(locator.locator((0, dataTidSelector_1.getDataTidSelector)(CustomComboBox_1.ComboBoxMenuDataTids.notFound)))
266
+ .or(locator.locator((0, dataTidSelector_1.getDataTidSelector)(react_ui_1.MenuHeaderDataTids.root)))
267
+ .or(locator.locator((0, dataTidSelector_1.getDataTidSelector)(MenuFooter_1.MenuFooterDataTids.root)));
268
+ }, function (locator) { return new MenuItem_1.MenuItem(locator); })];
269
+ }
270
+ });
271
+ });
272
+ };
273
+ ComboBox.prototype.expect = function () {
274
+ return new assertions_1.ComboBoxAssertions(this);
275
+ };
276
+ ComboBox.prototype.getComboBoxMenuItemsLocator = function (byText) {
277
+ return __awaiter(this, void 0, void 0, function () {
278
+ var container, items;
279
+ return __generator(this, function (_a) {
280
+ switch (_a.label) {
281
+ case 0: return [4 /*yield*/, this.portal.getContainer()];
282
+ case 1:
283
+ container = _a.sent();
284
+ items = container.locator((0, dataTidSelector_1.getDataTidSelector)(CustomComboBox_1.ComboBoxMenuDataTids.item));
285
+ return [2 /*return*/, items.getByText(byText)];
286
+ }
287
+ });
288
+ });
289
+ };
290
+ return ComboBox;
291
+ }(BaseComponent_1.BaseComponent));
292
+ exports.ComboBox = ComboBox;
@@ -0,0 +1,21 @@
1
+ import type { Locator } from '@playwright/test';
2
+ import { BaseComponent } from './BaseComponent';
3
+ import { ComponentListAssertions } from '../assertions';
4
+ import { type TooltipType } from '../utils';
5
+ import type { IsVisibleOptions } from '../options';
6
+ export declare class ComponentList<TItem extends BaseComponent> extends BaseComponent {
7
+ readonly rootLocator: Locator;
8
+ private readonly itemFactory;
9
+ readonly itemsLocator: Locator;
10
+ constructor(rootLocator: Locator, itemsLocator: (rootLocator: Locator) => Locator, itemFactory: (locator: Locator) => TItem);
11
+ isVisible(options?: IsVisibleOptions): Promise<boolean>;
12
+ getItems(): Promise<TItem[]>;
13
+ getFirstItem(): Promise<TItem>;
14
+ getLastItem(): Promise<TItem>;
15
+ getItemByIndex(index: number): Promise<TItem>;
16
+ getFirstItemByPredicate(predicate: (item: TItem) => Promise<boolean>): Promise<TItem>;
17
+ getItemsByPredicate(predicate: (item: TItem) => Promise<boolean>): Promise<TItem[]>;
18
+ count(): Promise<number>;
19
+ getTooltip(type: TooltipType): Promise<import("./Tooltip").Tooltip>;
20
+ expect(): ComponentListAssertions<TItem>;
21
+ }
@@ -0,0 +1,203 @@
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.ComponentList = void 0;
55
+ var test_1 = require("@playwright/test");
56
+ var BaseComponent_1 = require("./BaseComponent");
57
+ var assertions_1 = require("../assertions");
58
+ var utils_1 = require("../utils");
59
+ var ComponentList = /** @class */ (function (_super) {
60
+ __extends(ComponentList, _super);
61
+ function ComponentList(rootLocator, itemsLocator, itemFactory) {
62
+ var _this = _super.call(this, rootLocator) || this;
63
+ _this.rootLocator = rootLocator;
64
+ _this.itemsLocator = itemsLocator(_this.rootLocator);
65
+ _this.itemFactory = itemFactory;
66
+ return _this;
67
+ }
68
+ ComponentList.prototype.isVisible = function (options) {
69
+ return __awaiter(this, void 0, void 0, function () {
70
+ return __generator(this, function (_a) {
71
+ switch (_a.label) {
72
+ case 0: return [4 /*yield*/, this.itemsLocator.first().isVisible(options)];
73
+ case 1: return [2 /*return*/, _a.sent()];
74
+ }
75
+ });
76
+ });
77
+ };
78
+ ComponentList.prototype.getItems = function () {
79
+ return __awaiter(this, void 0, void 0, function () {
80
+ var itemsLocators;
81
+ var _this = this;
82
+ return __generator(this, function (_a) {
83
+ switch (_a.label) {
84
+ case 0: return [4 /*yield*/, this.waitFor({ state: 'attached' })];
85
+ case 1:
86
+ _a.sent();
87
+ return [4 /*yield*/, this.itemsLocator.all()];
88
+ case 2:
89
+ itemsLocators = _a.sent();
90
+ return [2 /*return*/, itemsLocators.map(function (x) { return _this.itemFactory(x); })];
91
+ }
92
+ });
93
+ });
94
+ };
95
+ ComponentList.prototype.getFirstItem = function () {
96
+ return __awaiter(this, void 0, void 0, function () {
97
+ return __generator(this, function (_a) {
98
+ return [2 /*return*/, this.getItemByIndex(0)];
99
+ });
100
+ });
101
+ };
102
+ ComponentList.prototype.getLastItem = function () {
103
+ return __awaiter(this, void 0, void 0, function () {
104
+ return __generator(this, function (_a) {
105
+ return [2 /*return*/, this.getItemByIndex(-1)];
106
+ });
107
+ });
108
+ };
109
+ ComponentList.prototype.getItemByIndex = function (index) {
110
+ return __awaiter(this, void 0, void 0, function () {
111
+ return __generator(this, function (_a) {
112
+ return [2 /*return*/, this.itemFactory(this.itemsLocator.nth(index))];
113
+ });
114
+ });
115
+ };
116
+ ComponentList.prototype.getFirstItemByPredicate = function (predicate) {
117
+ return __awaiter(this, void 0, void 0, function () {
118
+ var list;
119
+ return __generator(this, function (_a) {
120
+ switch (_a.label) {
121
+ case 0: return [4 /*yield*/, this.getItemsByPredicate(predicate)];
122
+ case 1:
123
+ list = _a.sent();
124
+ return [2 /*return*/, list[0]];
125
+ }
126
+ });
127
+ });
128
+ };
129
+ ComponentList.prototype.getItemsByPredicate = function (predicate) {
130
+ return __awaiter(this, void 0, void 0, function () {
131
+ var items;
132
+ var _this = this;
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0:
136
+ items = [];
137
+ return [4 /*yield*/, test_1.expect
138
+ .poll(function () { return __awaiter(_this, void 0, void 0, function () {
139
+ var list, predicateResults;
140
+ var _this = this;
141
+ return __generator(this, function (_a) {
142
+ switch (_a.label) {
143
+ case 0: return [4 /*yield*/, this.getItems()];
144
+ case 1:
145
+ list = _a.sent();
146
+ return [4 /*yield*/, Promise.all(list.map(function (item) { return __awaiter(_this, void 0, void 0, function () {
147
+ var _a;
148
+ return __generator(this, function (_b) {
149
+ switch (_b.label) {
150
+ case 0:
151
+ _a = { item: item };
152
+ return [4 /*yield*/, predicate(item)];
153
+ case 1: return [2 /*return*/, (_a.result = _b.sent(), _a)];
154
+ }
155
+ });
156
+ }); }))];
157
+ case 2:
158
+ predicateResults = _a.sent();
159
+ items = predicateResults.filter(function (_a) {
160
+ var result = _a.result;
161
+ return result;
162
+ }).map(function (_a) {
163
+ var item = _a.item;
164
+ return item;
165
+ });
166
+ return [2 /*return*/, items.length];
167
+ }
168
+ });
169
+ }); }, { message: 'Items not found by predicate' })
170
+ .toBeGreaterThan(0)];
171
+ case 1:
172
+ _a.sent();
173
+ return [2 /*return*/, items];
174
+ }
175
+ });
176
+ });
177
+ };
178
+ ComponentList.prototype.count = function () {
179
+ return __awaiter(this, void 0, void 0, function () {
180
+ return __generator(this, function (_a) {
181
+ switch (_a.label) {
182
+ case 0: return [4 /*yield*/, this.waitFor({ state: 'attached' })];
183
+ case 1:
184
+ _a.sent();
185
+ return [4 /*yield*/, this.itemsLocator.count()];
186
+ case 2: return [2 /*return*/, _a.sent()];
187
+ }
188
+ });
189
+ });
190
+ };
191
+ ComponentList.prototype.getTooltip = function (type) {
192
+ return __awaiter(this, void 0, void 0, function () {
193
+ return __generator(this, function (_a) {
194
+ return [2 /*return*/, (0, utils_1.getTooltip)(type, this)];
195
+ });
196
+ });
197
+ };
198
+ ComponentList.prototype.expect = function () {
199
+ return new assertions_1.ComponentListAssertions(this);
200
+ };
201
+ return ComponentList;
202
+ }(BaseComponent_1.BaseComponent));
203
+ exports.ComponentList = ComponentList;
@@ -0,0 +1,21 @@
1
+ import { type Locator } from '@playwright/test';
2
+ import { BaseComponent } from './BaseComponent';
3
+ import type { TooltipType } from '../utils';
4
+ import { CurrencyInputAssertions } from '../assertions';
5
+ import type { BlurOptions, ClearOptions, ClickOptions, FillOptions, FocusOptions, InputValueOptions, IsDisabledOptions, PressOptions, PressSequentiallyOptions } from '../options';
6
+ export declare class CurrencyInput extends BaseComponent {
7
+ readonly rootLocator: Locator;
8
+ readonly inputLocator: Locator;
9
+ constructor(rootLocator: Locator);
10
+ isDisabled(options?: IsDisabledOptions): Promise<boolean>;
11
+ getValue(options?: InputValueOptions): Promise<string>;
12
+ fill(value: string | number, options?: FillOptions): Promise<void>;
13
+ press(value: string, options?: PressOptions): Promise<void>;
14
+ pressSequentially(value: string | number, options?: PressSequentiallyOptions): Promise<void>;
15
+ clear(options?: ClearOptions): Promise<void>;
16
+ focus(options?: FocusOptions): Promise<void>;
17
+ blur(options?: BlurOptions): Promise<void>;
18
+ click(options?: ClickOptions): Promise<void>;
19
+ getTooltip(type: TooltipType): Promise<import("./Tooltip").Tooltip>;
20
+ expect(): CurrencyInputAssertions;
21
+ }