appium-xcuitest-driver 5.16.0 → 5.16.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/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [5.16.1](https://github.com/appium/appium-xcuitest-driver/compare/v5.16.0...v5.16.1) (2024-02-01)
2
+
3
+
4
+ ### Reverts
5
+
6
+ * Revert "feat: Unify gesture extensions (#2313)" ([00161d8](https://github.com/appium/appium-xcuitest-driver/commit/00161d8c71a25cdc9c34707b467f0737c2fcc2d3)), closes [#2313](https://github.com/appium/appium-xcuitest-driver/issues/2313)
7
+
1
8
  ## [5.16.0](https://github.com/appium/appium-xcuitest-driver/compare/v5.15.1...v5.16.0) (2024-02-01)
2
9
 
3
10
 
@@ -98,7 +98,7 @@ declare namespace _default {
98
98
  * @param {Element|string} [elementId]
99
99
  * @this {XCUITestDriver}
100
100
  */
101
- function mobileSwipe(this: import("../driver").default, direction: import("./types").Direction, velocity?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<void>;
101
+ function mobileSwipe(this: import("../driver").default, direction: import("./types").Direction, velocity?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<unknown>;
102
102
  /**
103
103
  * Performs a pinch gesture on the given element or on the Application element.
104
104
  *
@@ -118,9 +118,9 @@ declare namespace _default {
118
118
  /**
119
119
  * Performs double tap gesture on the given element or on the screen.
120
120
  *
121
- * @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. The Application element will be used if this parameter is not provided.
122
- * @param {number} [x] - The _x_ coordinate (float value) to double tap on.
123
- * @param {number} [y] - The _y_ coordinate (float value) to double tap on.
121
+ * @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. This is required if `x` and `y` are not provided.
122
+ * @param {number} [x] - The _x_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
123
+ * @param {number} [y] - The _y_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
124
124
  * @returns {Promise<void>}
125
125
  * @this {XCUITestDriver}
126
126
  * @example
@@ -149,9 +149,9 @@ declare namespace _default {
149
149
  * Performs a "long press" gesture on the given element or on the screen.
150
150
  *
151
151
  * @param {number} duration - The duration (in seconds) of the gesture.
152
- * @param {number} [y] - The _y_ coordinate (float value) to hold on.
153
- * @param {number} [x] - The _x_ coordinate (float value) to hold on.
154
- * @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. The Application element will be used if this parameter is not provided.
152
+ * @param {number} [y] - The _y_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
153
+ * @param {number} [x] - The _x_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
154
+ * @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. This is required if `x` and `y` are not provided.
155
155
  * @this {XCUITestDriver}
156
156
  * @see https://developer.apple.com/documentation/xctest/xcuielement/1618663-pressforduration?language=objc
157
157
  * @example
@@ -162,13 +162,13 @@ declare namespace _default {
162
162
  * ((IJavaScriptExecutor)driver).ExecuteScript("mobile: touchAndHold", tfLongTap);
163
163
  * ```
164
164
  */
165
- function mobileTouchAndHold(this: import("../driver").default, duration: number, x?: number | undefined, y?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<void>;
165
+ function mobileTouchAndHold(this: import("../driver").default, duration: number, x?: number | undefined, y?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<unknown>;
166
166
  /**
167
167
  * Performs tap gesture by coordinates on the given element or on the screen.
168
168
  *
169
169
  * @param {number} x - The _x_ coordinate (float value) to tap on. If `elementId` is provided, this is computed relative to the element; otherwise it is computed relative to the active Application element.
170
170
  * @param {number} y - The _y_ coordinate (float value) to tap on. If `elementId` is provided, this is computed relative to the element; otherwise it is computed relative to the active Application element.
171
- * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to tap on. The Application element will be used if this parameter is not provided.
171
+ * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to tap on.
172
172
  * @this {XCUITestDriver}
173
173
  * @returns {Promise<void>}
174
174
  */
@@ -221,10 +221,9 @@ declare namespace _default {
221
221
  * Sends one or more taps with one or more touch points.
222
222
  *
223
223
  * @since 1.17.1
224
- * @param {number} [numberOfTaps=1] - Number of taps to perform.
225
- * @param {number} [numberOfTouches=1] - Number of touch points to use.
226
- * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
227
- * The Application element will be used if this parameter is not provided.
224
+ * @param {string|Element} elementId - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
225
+ * @param {number} numberOfTaps - Number of taps to perform.
226
+ * @param {number} numberOfTouches - Number of touch points to use.
228
227
  * @returns {Promise<void>}
229
228
  * @this {XCUITestDriver}
230
229
  * @see https://developer.apple.com/documentation/xctest/xcuielement/1618671-tapwithnumberoftaps?language=objc
@@ -235,7 +234,7 @@ declare namespace _default {
235
234
  * @driver.execute_script 'mobile: tapWithNumberOfTaps', {element: e.ref, numberOfTaps: 2, numberOfTouches: 1}
236
235
  * ```
237
236
  */
238
- function mobileTapWithNumberOfTaps(this: import("../driver").default, numberOfTouches?: number | undefined, numberOfTaps?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<void>;
237
+ function mobileTapWithNumberOfTaps(this: import("../driver").default, elementId: string | import("@appium/types").Element<string>, numberOfTouches: number, numberOfTaps: number): Promise<void>;
239
238
  /**
240
239
  * Performs a "force press" on the given element or coordinates.
241
240
  *
@@ -244,8 +243,7 @@ declare namespace _default {
244
243
  * @param {number} [y] - The _y_ coordinate of the gesture. If `elementId` is set, this is calculated relative to its position; otherwise it's calculated relative to the active Application.
245
244
  * @param {number} [duration] - The duraiton (in seconds) of the force press. If this is provided, `pressure` must also be provided.
246
245
  * @param {number} [pressure] - A float value defining the pressure of the force press. If this is provided, `duration` must also be provided.
247
- * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
248
- * The Application element will be used if this parameter is not provided.
246
+ * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps. If this is _not_ provided, both `x` and `y` must be provided. If this is provided _and_ `x` and `y` are not provided, the actual touch point will be calculated internally.
249
247
  * @returns {Promise<void>}
250
248
  * @this {XCUITestDriver}
251
249
  */
@@ -277,10 +275,9 @@ declare namespace _default {
277
275
  * Performs a rotate gesture on the given element.
278
276
  *
279
277
  * @see https://developer.apple.com/documentation/xctest/xcuielement/1618665-rotate?language=objc
278
+ * @param {string|Element} elementId - The internal element identifier (as hexadecimal hash string) to perform the gesture on.
280
279
  * @param {number} rotation - The rotation gesture (in radians)
281
280
  * @param {number} velocity - The velocity (in radians-per-second) of the gesture.
282
- * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform the gesture on.
283
- * The Application element will be used if this parameter is not provided.
284
281
  * @returns {Promise<void>}
285
282
  * @this {XCUITestDriver}
286
283
  * @example
@@ -295,7 +292,15 @@ declare namespace _default {
295
292
  * ));
296
293
  * ```
297
294
  */
298
- function mobileRotateElement(this: import("../driver").default, rotation: number, velocity: number, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<void>;
295
+ function mobileRotateElement(this: import("../driver").default, elementId: string | import("@appium/types").Element<string>, rotation: number, velocity: number): Promise<void>;
296
+ /**
297
+ * @this {XCUITestDriver}
298
+ */
299
+ function getCoordinates(this: import("../driver").default, gesture: any): Promise<{
300
+ x: number;
301
+ y: number;
302
+ areOffsets: boolean;
303
+ }>;
299
304
  }
300
305
  export default _default;
301
306
  export type XCUITestDriver = import('../driver').XCUITestDriver;
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../../lib/commands/gesture.js"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,gDAJW,GAAG,EAAE,kBACL,MAAM,EAAE,GAAC,IAAI,GACX,MAAM,CAmBlB;;IAGC;;;;OAIG;IACH,uEAMC;IACD;;OAEG;IACH,yEA2BC;IACD;;OAEG;IAEH,0EAEC;IACD;;;;OAIG;IACH,6HA4BC;IACD;;;;;;OAMG;IACH,4FAcC;IACD;;;;;;;OAOG;IACH,iGAiBC;IACD;;;;OAIG;IACH,gIAIC;IAED;;;;;;;;;;;;;OAaG;IACH,8IAKC;IAID;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,wUAuCC;IACD;;;;;OAKG;IACH,wNAYC;IACD;;;;;;;;;;;;;;OAcG;IACH,kLAOC;IACD;;;;;;;;;;;;;OAaG;IACH,qMAGC;IACD;;;;;;;;;;;;;OAaG;IACH,wJAGC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,0NAMC;IACD;;;;;;;;OAQG;IACH,qKAGC;IACD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,2OAaC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,6ZAoCC;IACD;;;;;;;;;;;;;;;;;OAiBG;IACH,wOAQC;IACD;;;;;;;;;;;;OAYG;IACH,oQAGC;IACD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,sRAuBC;IACD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,6LAOC;;;6BAMU,OAAO,WAAW,EAAE,cAAc;sBAClC,OAAO,eAAe,EAAE,OAAO"}
1
+ {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../../lib/commands/gesture.js"],"names":[],"mappings":"AAyEA;;;;;GAKG;AACH,gDAJW,GAAG,EAAE,kBACL,MAAM,EAAE,GAAC,IAAI,GACX,MAAM,CAmBlB;;IAGC;;;;OAIG;IACH,uEAMC;IACD;;OAEG;IACH,yEA2BC;IACD;;OAEG;IAEH,0EAEC;IACD;;;;OAIG;IACH,6HA4BC;IACD;;;;;;OAMG;IACH,4FAcC;IACD;;;;;;;OAOG;IACH,iGAiBC;IACD;;;;OAIG;IACH,gIAIC;IAED;;;;;;;;;;;;;OAaG;IACH,8IAKC;IAID;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,wUAuCC;IACD;;;;;OAKG;IACH,2NAYC;IACD;;;;;;;;;;;;;;OAcG;IACH,kLAOC;IACD;;;;;;;;;;;;;OAaG;IACH,qMAWC;IACD;;;;;;;;;;;;;OAaG;IACH,wJAGC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,6NAYC;IACD;;;;;;;;OAQG;IACH,qKAMC;IACD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,2OAcC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,6ZAoCC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,iMAWC;IACD;;;;;;;;;;;OAWG;IACH,oQAIC;IACD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,sRAwBC;IACD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,gLAYC;IACD;;OAEG;IACH;;;;OA2CC;;;6BAMU,OAAO,WAAW,EAAE,cAAc;sBAClC,OAAO,eAAe,EAAE,OAAO"}
@@ -8,6 +8,33 @@ const driver_1 = require("appium/driver");
8
8
  const support_1 = require("appium/support");
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
10
  const SUPPORTED_GESTURE_DIRECTIONS = ['up', 'down', 'left', 'right'];
11
+ /**
12
+ * @param {any} [opts]
13
+ * @returns {string|undefined}
14
+ */
15
+ function toElementId(opts) {
16
+ if (lodash_1.default.isUndefined(opts)) {
17
+ return;
18
+ }
19
+ if (lodash_1.default.isString(opts) || lodash_1.default.isNumber(opts)) {
20
+ return String(opts);
21
+ }
22
+ if ('elementId' in opts || 'element' in opts) {
23
+ return support_1.util.unwrapElement(opts);
24
+ }
25
+ }
26
+ /**
27
+ *
28
+ * @param {XCUITestDriver} driver
29
+ * @param {Element|string} [elementId]
30
+ * @returns {Promise<string>}
31
+ */
32
+ async function toElementOrApplicationId(driver, elementId) {
33
+ if (!lodash_1.default.isUndefined(elementId)) {
34
+ return support_1.util.unwrapElement(elementId);
35
+ }
36
+ return support_1.util.unwrapElement(await driver.findNativeElementOrElements(`class name`, `XCUIElementTypeApplication`, false));
37
+ }
11
38
  /**
12
39
  * Converts the given value to a float number.
13
40
  *
@@ -16,13 +43,28 @@ const SUPPORTED_GESTURE_DIRECTIONS = ['up', 'down', 'left', 'right'];
16
43
  * @param {string} paramName
17
44
  * @returns {number}
18
45
  */
19
- function requireFloat(value, paramName) {
46
+ function asFloat(value, paramName) {
20
47
  const num = parseFloat(String(value));
21
48
  if (Number.isNaN(num)) {
22
49
  throw new driver_1.errors.InvalidArgumentError(`"${paramName}" parameter should be a valid number. "${value}" is given instead`);
23
50
  }
24
51
  return num;
25
52
  }
53
+ /**
54
+ * Converts the given value to an integer number.
55
+ *
56
+ * @throws If `value` is `NaN`
57
+ * @param {any} value
58
+ * @param {string} paramName
59
+ * @returns {number}
60
+ */
61
+ function asInt(value, paramName) {
62
+ const num = parseInt(String(value), 10);
63
+ if (Number.isNaN(num)) {
64
+ throw new driver_1.errors.InvalidArgumentError(`"${paramName}" parameter should be a valid integer. "${value}" is given instead`);
65
+ }
66
+ return num;
67
+ }
26
68
  /**
27
69
  *
28
70
  * @param {any[]} gestures
@@ -263,8 +305,8 @@ const helpers = {
263
305
  if (!lodash_1.default.isNil(distance)) {
264
306
  params.distance = distance;
265
307
  }
266
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/scroll` : '/wda/scroll';
267
- return await this.proxyCommand(endpoint, 'POST', params);
308
+ elementId = await toElementOrApplicationId(this, elementId);
309
+ return await this.proxyCommand(`/wda/element/${elementId}/scroll`, 'POST', params);
268
310
  },
269
311
  /**
270
312
  * @param {import('./types').Direction} direction
@@ -280,8 +322,8 @@ const helpers = {
280
322
  if (!lodash_1.default.isNil(velocity)) {
281
323
  params.velocity = velocity;
282
324
  }
283
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/swipe` : '/wda/swipe';
284
- await this.proxyCommand(endpoint, 'POST', params);
325
+ elementId = await toElementOrApplicationId(this, elementId);
326
+ return await this.proxyCommand(`/wda/element/${elementId}/swipe`, 'POST', params);
285
327
  },
286
328
  /**
287
329
  * Performs a pinch gesture on the given element or on the Application element.
@@ -300,18 +342,18 @@ const helpers = {
300
342
  */
301
343
  async mobilePinch(scale, velocity, elementId) {
302
344
  const params = {
303
- scale: requireFloat(scale, 'scale'),
304
- velocity: requireFloat(velocity, 'velocity'),
345
+ scale: asFloat(scale, 'scale'),
346
+ velocity: asFloat(velocity, 'velocity'),
305
347
  };
306
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/pinch` : '/wda/pinch';
307
- await this.proxyCommand(endpoint, 'POST', params);
348
+ elementId = await toElementOrApplicationId(this, elementId);
349
+ return await this.proxyCommand(`/wda/element/${elementId}/pinch`, 'POST', params);
308
350
  },
309
351
  /**
310
352
  * Performs double tap gesture on the given element or on the screen.
311
353
  *
312
- * @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. The Application element will be used if this parameter is not provided.
313
- * @param {number} [x] - The _x_ coordinate (float value) to double tap on.
314
- * @param {number} [y] - The _y_ coordinate (float value) to double tap on.
354
+ * @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. This is required if `x` and `y` are not provided.
355
+ * @param {number} [x] - The _x_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
356
+ * @param {number} [y] - The _y_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
315
357
  * @returns {Promise<void>}
316
358
  * @this {XCUITestDriver}
317
359
  * @example
@@ -321,8 +363,16 @@ const helpers = {
321
363
  * ```
322
364
  */
323
365
  async mobileDoubleTap(elementId, x, y) {
324
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/doubleTap` : '/wda/doubleTap';
325
- await this.proxyCommand(endpoint, 'POST', { x, y });
366
+ if (elementId) {
367
+ // Double tap element
368
+ return await this.proxyCommand(`/wda/element/${elementId}/doubleTap`, 'POST');
369
+ }
370
+ // Double tap coordinates
371
+ const params = {
372
+ x: asFloat(x, 'x'),
373
+ y: asFloat(y, 'y'),
374
+ };
375
+ return await this.proxyCommand('/wda/doubleTap', 'POST', params);
326
376
  },
327
377
  /**
328
378
  * Performs two finger tap gesture on the given element or on the application element.
@@ -339,16 +389,16 @@ const helpers = {
339
389
  * ```
340
390
  */
341
391
  async mobileTwoFingerTap(elementId) {
342
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/twoFingerTap` : '/wda/twoFingerTap';
343
- await this.proxyCommand(endpoint, 'POST');
392
+ elementId = await toElementOrApplicationId(this, elementId);
393
+ return await this.proxyCommand(`/wda/element/${elementId}/twoFingerTap`, 'POST');
344
394
  },
345
395
  /**
346
396
  * Performs a "long press" gesture on the given element or on the screen.
347
397
  *
348
398
  * @param {number} duration - The duration (in seconds) of the gesture.
349
- * @param {number} [y] - The _y_ coordinate (float value) to hold on.
350
- * @param {number} [x] - The _x_ coordinate (float value) to hold on.
351
- * @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. The Application element will be used if this parameter is not provided.
399
+ * @param {number} [y] - The _y_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
400
+ * @param {number} [x] - The _x_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
401
+ * @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. This is required if `x` and `y` are not provided.
352
402
  * @this {XCUITestDriver}
353
403
  * @see https://developer.apple.com/documentation/xctest/xcuielement/1618663-pressforduration?language=objc
354
404
  * @example
@@ -360,24 +410,33 @@ const helpers = {
360
410
  * ```
361
411
  */
362
412
  async mobileTouchAndHold(duration, x, y, elementId) {
363
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/touchAndHold` : '/wda/touchAndHold';
364
- await this.proxyCommand(endpoint, 'POST', {
365
- duration: requireFloat(duration, 'duration'),
366
- x, y,
367
- });
413
+ const params = {
414
+ duration: asFloat(duration, 'duration'),
415
+ };
416
+ if (elementId) {
417
+ // Long tap element
418
+ return await this.proxyCommand(`/wda/element/${elementId}/touchAndHold`, 'POST', params);
419
+ }
420
+ // Long tap coordinates
421
+ params.x = asFloat(x, 'x');
422
+ params.y = asFloat(y, 'y');
423
+ return await this.proxyCommand('/wda/touchAndHold', 'POST', params);
368
424
  },
369
425
  /**
370
426
  * Performs tap gesture by coordinates on the given element or on the screen.
371
427
  *
372
428
  * @param {number} x - The _x_ coordinate (float value) to tap on. If `elementId` is provided, this is computed relative to the element; otherwise it is computed relative to the active Application element.
373
429
  * @param {number} y - The _y_ coordinate (float value) to tap on. If `elementId` is provided, this is computed relative to the element; otherwise it is computed relative to the active Application element.
374
- * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to tap on. The Application element will be used if this parameter is not provided.
430
+ * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to tap on.
375
431
  * @this {XCUITestDriver}
376
432
  * @returns {Promise<void>}
377
433
  */
378
- async mobileTap(x, y, elementId) {
379
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/tap` : '/wda/tap';
380
- await this.proxyCommand(endpoint, 'POST', { x, y });
434
+ async mobileTap(x, y, elementId = '0') {
435
+ const params = {
436
+ x: asFloat(x, 'x'),
437
+ y: asFloat(y, 'y'),
438
+ };
439
+ return await this.proxyCommand(`/wda/tap/${elementId}`, 'POST', params);
381
440
  },
382
441
  /**
383
442
  * Performs drag and drop gesture by coordinates on the given element or on the screen.
@@ -406,15 +465,16 @@ const helpers = {
406
465
  */
407
466
  async mobileDragFromToForDuration(duration, fromX, fromY, toX, toY, elementId) {
408
467
  const params = {
409
- duration: requireFloat(duration, 'duration'),
410
- fromX: requireFloat(fromX, 'fromX'),
411
- fromY: requireFloat(fromY, 'fromY'),
412
- toX: requireFloat(toX, 'toX'),
413
- toY: requireFloat(toY, 'toY'),
468
+ duration: asFloat(duration, 'duration'),
469
+ fromX: asFloat(fromX, 'fromX'),
470
+ fromY: asFloat(fromY, 'fromY'),
471
+ toX: asFloat(toX, 'toX'),
472
+ toY: asFloat(toY, 'toY'),
414
473
  };
474
+ elementId = toElementId(elementId);
415
475
  return elementId
416
476
  ? // Drag element
417
- await this.proxyCommand(`/wda/element/${support_1.util.unwrapElement(elementId)}/dragfromtoforduration`, 'POST', params)
477
+ await this.proxyCommand(`/wda/element/${elementId}/dragfromtoforduration`, 'POST', params)
418
478
  : // Drag coordinates
419
479
  await this.proxyCommand('/wda/dragfromtoforduration', 'POST', params);
420
480
  },
@@ -437,9 +497,9 @@ const helpers = {
437
497
  */
438
498
  async mobileDragFromToWithVelocity(pressDuration, holdDuration, velocity, fromElementId, toElementId, fromX, fromY, toX, toY) {
439
499
  const params = {
440
- pressDuration: requireFloat(pressDuration, 'pressDuration'),
441
- holdDuration: requireFloat(holdDuration, 'holdDuration'),
442
- velocity: requireFloat(velocity, 'velocity'),
500
+ pressDuration: asFloat(pressDuration, 'pressDuration'),
501
+ holdDuration: asFloat(holdDuration, 'holdDuration'),
502
+ velocity: asFloat(velocity, 'velocity'),
443
503
  };
444
504
  fromElementId = fromElementId ? support_1.util.unwrapElement(fromElementId) : undefined;
445
505
  if (fromElementId) {
@@ -450,20 +510,19 @@ const helpers = {
450
510
  params.toElement = toElementId;
451
511
  return await this.proxyCommand(`/wda/element/${fromElementId}/pressAndDragWithVelocity`, 'POST', params);
452
512
  }
453
- params.fromX = requireFloat(fromX, 'fromX');
454
- params.fromY = requireFloat(fromY, 'fromY');
455
- params.toX = requireFloat(toX, 'toX');
456
- params.toY = requireFloat(toY, 'toY');
513
+ params.fromX = asFloat(fromX, 'fromX');
514
+ params.fromY = asFloat(fromY, 'fromY');
515
+ params.toX = asFloat(toX, 'toX');
516
+ params.toY = asFloat(toY, 'toY');
457
517
  return await this.proxyCommand('/wda/pressAndDragWithVelocity', 'POST', params);
458
518
  },
459
519
  /**
460
520
  * Sends one or more taps with one or more touch points.
461
521
  *
462
522
  * @since 1.17.1
463
- * @param {number} [numberOfTaps=1] - Number of taps to perform.
464
- * @param {number} [numberOfTouches=1] - Number of touch points to use.
465
- * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
466
- * The Application element will be used if this parameter is not provided.
523
+ * @param {string|Element} elementId - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
524
+ * @param {number} numberOfTaps - Number of taps to perform.
525
+ * @param {number} numberOfTouches - Number of touch points to use.
467
526
  * @returns {Promise<void>}
468
527
  * @this {XCUITestDriver}
469
528
  * @see https://developer.apple.com/documentation/xctest/xcuielement/1618671-tapwithnumberoftaps?language=objc
@@ -474,14 +533,15 @@ const helpers = {
474
533
  * @driver.execute_script 'mobile: tapWithNumberOfTaps', {element: e.ref, numberOfTaps: 2, numberOfTouches: 1}
475
534
  * ```
476
535
  */
477
- async mobileTapWithNumberOfTaps(numberOfTouches = 1, numberOfTaps = 1, elementId = undefined) {
478
- const endpoint = elementId
479
- ? `/wda/element/${support_1.util.unwrapElement(elementId)}/tapWithNumberOfTaps`
480
- : '/wda/tapWithNumberOfTaps';
481
- return await this.proxyCommand(endpoint, 'POST', {
482
- numberOfTaps,
483
- numberOfTouches,
484
- });
536
+ async mobileTapWithNumberOfTaps(elementId, numberOfTouches, numberOfTaps) {
537
+ if (!elementId) {
538
+ throw new driver_1.errors.InvalidArgumentError('Element id is expected to be set for tapWithNumberOfTaps method');
539
+ }
540
+ const params = {
541
+ numberOfTaps: asInt(numberOfTaps, 'numberOfTaps'),
542
+ numberOfTouches: asInt(numberOfTouches, 'numberOfTouches'),
543
+ };
544
+ return await this.proxyCommand(`/wda/element/${elementId}/tapWithNumberOfTaps`, 'POST', params);
485
545
  },
486
546
  /**
487
547
  * Performs a "force press" on the given element or coordinates.
@@ -491,13 +551,13 @@ const helpers = {
491
551
  * @param {number} [y] - The _y_ coordinate of the gesture. If `elementId` is set, this is calculated relative to its position; otherwise it's calculated relative to the active Application.
492
552
  * @param {number} [duration] - The duraiton (in seconds) of the force press. If this is provided, `pressure` must also be provided.
493
553
  * @param {number} [pressure] - A float value defining the pressure of the force press. If this is provided, `duration` must also be provided.
494
- * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
495
- * The Application element will be used if this parameter is not provided.
554
+ * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps. If this is _not_ provided, both `x` and `y` must be provided. If this is provided _and_ `x` and `y` are not provided, the actual touch point will be calculated internally.
496
555
  * @returns {Promise<void>}
497
556
  * @this {XCUITestDriver}
498
557
  */
499
558
  async mobileForcePress(x, y, duration, pressure, elementId) {
500
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/forceTouch` : `/wda/forceTouch`;
559
+ elementId = toElementId(elementId);
560
+ const endpoint = elementId ? `/wda/element/${elementId}/forceTouch` : `/wda/forceTouch`;
501
561
  return await this.proxyCommand(endpoint, 'POST', { x, y, duration, pressure });
502
562
  },
503
563
  /**
@@ -523,6 +583,7 @@ const helpers = {
523
583
  * ```
524
584
  */
525
585
  async mobileSelectPickerWheelValue(elementId, order, offset, value, maxAttempts) {
586
+ elementId = /** @type {string} */ (toElementId(elementId));
526
587
  if (!elementId) {
527
588
  throw new driver_1.errors.InvalidArgumentError('elementId is expected to be set for selectPickerWheelValue method');
528
589
  }
@@ -532,7 +593,7 @@ const helpers = {
532
593
  }
533
594
  const params = { order };
534
595
  if (offset) {
535
- params.offset = requireFloat(offset, 'offset');
596
+ params.offset = asFloat(offset, 'offset');
536
597
  }
537
598
  if (!lodash_1.default.isNil(value)) {
538
599
  params.value = value;
@@ -540,16 +601,15 @@ const helpers = {
540
601
  if (!lodash_1.default.isNil(maxAttempts)) {
541
602
  params.maxAttempts = maxAttempts;
542
603
  }
543
- return await this.proxyCommand(`/wda/pickerwheel/${support_1.util.unwrapElement(elementId)}/select`, 'POST', params);
604
+ return await this.proxyCommand(`/wda/pickerwheel/${elementId}/select`, 'POST', params);
544
605
  },
545
606
  /**
546
607
  * Performs a rotate gesture on the given element.
547
608
  *
548
609
  * @see https://developer.apple.com/documentation/xctest/xcuielement/1618665-rotate?language=objc
610
+ * @param {string|Element} elementId - The internal element identifier (as hexadecimal hash string) to perform the gesture on.
549
611
  * @param {number} rotation - The rotation gesture (in radians)
550
612
  * @param {number} velocity - The velocity (in radians-per-second) of the gesture.
551
- * @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform the gesture on.
552
- * The Application element will be used if this parameter is not provided.
553
613
  * @returns {Promise<void>}
554
614
  * @this {XCUITestDriver}
555
615
  * @example
@@ -564,13 +624,60 @@ const helpers = {
564
624
  * ));
565
625
  * ```
566
626
  */
567
- async mobileRotateElement(rotation, velocity, elementId) {
627
+ async mobileRotateElement(elementId, rotation, velocity) {
628
+ elementId = /** @type {string} */ (toElementId(elementId));
629
+ if (!elementId) {
630
+ throw new driver_1.errors.InvalidArgumentError('Element id is expected to be set for rotateElement method');
631
+ }
568
632
  const params = {
569
- rotation: requireFloat(rotation, 'rotation'),
570
- velocity: requireFloat(velocity, 'velocity'),
633
+ rotation: asFloat(rotation, 'rotation'),
634
+ velocity: asFloat(velocity, 'velocity'),
571
635
  };
572
- const endpoint = elementId ? `/wda/element/${support_1.util.unwrapElement(elementId)}/rotate` : '/wda/rotate';
573
- return await this.proxyCommand(endpoint, 'POST', params);
636
+ return await this.proxyCommand(`/wda/element/${elementId}/rotate`, 'POST', params);
637
+ },
638
+ /**
639
+ * @this {XCUITestDriver}
640
+ */
641
+ async getCoordinates(gesture) {
642
+ // defaults
643
+ let coordinates = { x: 0, y: 0, areOffsets: false };
644
+ let optionX = null;
645
+ if (gesture.options.x) {
646
+ optionX = asFloat(gesture.options.x, 'x');
647
+ }
648
+ let optionY = null;
649
+ if (gesture.options.y) {
650
+ optionY = asFloat(gesture.options.y, 'y');
651
+ }
652
+ // figure out the element coordinates.
653
+ const elementId = toElementId(gesture.options);
654
+ if (elementId) {
655
+ let rect = await this.getElementRect(elementId);
656
+ let pos = { x: rect.x, y: rect.y };
657
+ let size = { w: rect.width, h: rect.height };
658
+ // defaults
659
+ let offsetX = 0;
660
+ let offsetY = 0;
661
+ // get the real offsets
662
+ if (optionX || optionY) {
663
+ offsetX = optionX || 0;
664
+ offsetY = optionY || 0;
665
+ }
666
+ else {
667
+ offsetX = size.w / 2;
668
+ offsetY = size.h / 2;
669
+ }
670
+ // apply the offsets
671
+ coordinates.x = pos.x + offsetX;
672
+ coordinates.y = pos.y + offsetY;
673
+ }
674
+ else {
675
+ // moveTo coordinates are passed in as offsets
676
+ coordinates.areOffsets = gesture.action === 'moveTo';
677
+ coordinates.x = optionX || 0;
678
+ coordinates.y = optionY || 0;
679
+ }
680
+ return coordinates;
574
681
  },
575
682
  };
576
683
  exports.default = { ...helpers, ...commands };
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../../lib/commands/gesture.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../../lib/commands/gesture.js"],"names":[],"mappings":";;;;;;AAAA,0CAAqC;AACrC,4CAAoC;AACpC,oDAAuB;AAEvB,MAAM,4BAA4B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAErE;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAI;IACvB,IAAI,gBAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO;KACR;IACD,IAAI,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;KACrB;IACD,IAAI,WAAW,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE;QAC5C,OAAO,cAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACjC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,wBAAwB,CAAC,MAAM,EAAE,SAAS;IACvD,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;QAC7B,OAAO,cAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KACtC;IACD,OAAO,cAAI,CAAC,aAAa,CACvB,MAAM,MAAM,CAAC,2BAA2B,CAAC,YAAY,EAAE,4BAA4B,EAAE,KAAK,CAAC,CAC5F,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,KAAK,EAAE,SAAS;IAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,IAAI,SAAS,0CAA0C,KAAK,oBAAoB,CACjF,CAAC;KACH;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS;IAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,IAAI,SAAS,2CAA2C,KAAK,oBAAoB,CAClF,CAAC;KACH;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,SAAS,CAAC;IACzE,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,SAAS,GAAG,gBAAC,CAAC,UAAU,CAAC,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,SAAS,GAAG,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAC,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,IAAI,SAAS,CAAC,MAAM,EAAE;YACpB,OAAO,CACL,GAAG,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,gBAAC,CAAC,GAAG,CACP,SAAS,EACT,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,gBAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,CAAC;SACH;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAjBD,sDAiBC;AAED,MAAM,QAAQ,GAAG;IACf;;;;OAIG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,IAAI,eAAM,CAAC,YAAY,CAAC,wCAAwC,CAAC,CAAC;SACzE;QACD,uEAAuE;QACvE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE;QACZ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACxB,+DAA+D;YAC/D,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;SACnC;QACD,EAAE,GAAG,cAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,EAAC,YAAY,EAAE,kBAAkB,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvE,IAAI,YAAY,IAAI,kBAAkB,EAAE;YACtC,mDAAmD;YACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SAC7B;aAAM;YACL,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC9C,0FAA0F;YAC1F,0FAA0F;YAC1F,uFAAuF;YACvF,4FAA4F;YAC5F,6BAA6B;YAC7B,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;aACxD;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,CAAC,KAAK,KAAK,eAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,EAAE;oBACzD,OAAO;iBACR;gBACD,MAAM,GAAG,CAAC;aACX;SACF;IACH,CAAC;IACD;;OAEG;IACH,yCAAyC;IACzC,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC/D,CAAC;IACD;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,gEAAgE;QAChE,iDAAiD;QACjD,MAAM,mBAAmB,GAAG,OAAO;aAChC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACd,MAAM,CAAC,MAAM,CACX,EAAE,EACF,MAAM,EACN,MAAM,CAAC,IAAI,KAAK,SAAS;YACvB,CAAC,CAAC;gBACE,UAAU,EAAE;oBACV,WAAW,EAAE,OAAO;iBACrB;aACF;YACH,CAAC,CAAC,EAAE,CACP,CACF;aACA,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,cAAc,GAAG,gBAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7C,gFAAgF;YAChF,cAAc,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CACpD,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,CAAC,CAC/E,CAAC;YACF,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,EAAC,OAAO,EAAE,mBAAmB,EAAC,CAAC,CAAC;IAC9E,CAAC;IACD;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,QAAQ;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1F,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;SACnF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;gBACxB,MAAM,CAAC,CAAC;aACT;YACD,IAAI,CAAC,GAAG,CAAC,aAAa,CACpB,sDAAsD;gBACpD,iEAAiE;gBACjE,qEAAqE,CAAC,CAAC,OAAO,EAAE,CACnF,CAAC;SACH;IACH,CAAC;IACD;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAO;QAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,gBAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACxF;QACD,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;SAC/E;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;gBACxB,MAAM,CAAC,CAAC;aACT;YACD,IAAI,CAAC,GAAG,CAAC,aAAa,CACpB,2DAA2D;gBACzD,iEAAiE;gBACjE,0EAA0E,CAAC,CAAC,OAAO,EAAE,CACxF,CAAC;SACH;IACH,CAAC;IACD;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,EAAE;QAClB,EAAE,GAAG,cAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,QAAQ,GAAG,YAAY,EAAE,QAAQ,CAAC;QACtC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,qBAAqB,CAAC,SAAS;QACnC,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,eAAM,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;SACtE;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;CACF,CAAC;AAEF,MAAM,OAAO,GAAG;IACd;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;QACjF;;;;;;;;WAQG;QAEH,8BAA8B;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,EAAE;YACR,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;SACpB;aAAM,IAAI,SAAS,EAAE;YACpB,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,gBAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE;gBAChE,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,+BAA+B,4BAA4B,EAAE,CAC9D,CAAC;aACH;YACD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;aAAM,IAAI,eAAe,EAAE;YAC1B,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;SAC1C;aAAM,IAAI,SAAS,EAAE;YACpB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;aAAM;YACL,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,oGAAoG;gBAClG,sBAAsB,CACzB,CAAC;SACH;QACD,wEAAwE;QACxE,iEAAiE;QACjE,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACtB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;QACD,SAAS,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IACD;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS;QAC9C,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,gBAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE;YAChE,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,+BAA+B,4BAA4B,EAAE,CAC9D,CAAC;SACH;QACD,MAAM,MAAM,GAAG,EAAC,SAAS,EAAC,CAAC;QAC3B,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACtB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;QACD,SAAS,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IACD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS;QAC1C,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;SACxC,CAAC;QACF,SAAS,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IACD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QACnC,IAAI,SAAS,EAAE;YACb,qBAAqB;YACrB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,YAAY,EAAE,MAAM,CAAC,CAAC;SAC/E;QACD,yBAAyB;QACzB,MAAM,MAAM,GAAG;YACb,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC;YAClB,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC;SACnB,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IACD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,kBAAkB,CAAC,SAAS;QAChC,SAAS,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,eAAe,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS;QAChD,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;SACxC,CAAC;QACF,IAAI,SAAS,EAAE;YACb,mBAAmB;YACnB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1F;QACD,uBAAuB;QACvB,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IACD;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,GAAG;QACnC,MAAM,MAAM,GAAG;YACb,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC;YAClB,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC;SACnB,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,2BAA2B,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS;QAC3E,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;YACvC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;YAC9B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;SACzB,CAAC;QACF,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,SAAS;YACd,CAAC,CAAC,eAAe;gBACf,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,wBAAwB,EAAE,MAAM,EAAE,MAAM,CAAC;YAC5F,CAAC,CAAC,mBAAmB;gBACnB,MAAM,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,4BAA4B,CAChC,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,WAAW,EACX,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG;QAEH,MAAM,MAAM,GAAG;YACb,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC;YACtD,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC;YACnD,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;SACxC,CAAC;QACF,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,cAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,IAAI,aAAa,EAAE;YACjB,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,cAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,wEAAwE,CACzE,CAAC;aACH;YACD,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC;YAC/B,OAAO,MAAM,IAAI,CAAC,YAAY,CAC5B,gBAAgB,aAAa,2BAA2B,EACxD,MAAM,EACN,MAAM,CACP,CAAC;SACH;QACD,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,yBAAyB,CAAC,SAAS,EAAE,eAAe,EAAE,YAAY;QACtE,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,iEAAiE,CAClE,CAAC;SACH;QACD,MAAM,MAAM,GAAG;YACb,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC;YACjD,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAC3D,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,sBAAsB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClG,CAAC;IACD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;QACxD,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,SAAS,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACxF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;IAC/E,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,4BAA4B,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;QAC7E,SAAS,GAAG,qBAAqB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,mEAAmE,CACpE,CAAC;SACH;QACD,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE;YAC7E,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,0FAA0F;gBACxF,IAAI,KAAK,oBAAoB,CAChC,CAAC;SACH;QACD,MAAM,MAAM,GAAG,EAAC,KAAK,EAAC,CAAC;QACvB,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;QACD,IAAI,CAAC,gBAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YACzB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;SAClC;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,SAAS,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;IACD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ;QACrD,SAAS,GAAG,qBAAqB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,2DAA2D,CAC5D,CAAC;SACH;QACD,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;YACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;SACxC,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,SAAS,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAO;QAC1B,WAAW;QACX,IAAI,WAAW,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC;QAElD,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE;YACrB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE;YACrB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE;YACb,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,GAAG,GAAG,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAC,CAAC;YACjC,IAAI,IAAI,GAAG,EAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;YAE3C,WAAW;YACX,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,uBAAuB;YACvB,IAAI,OAAO,IAAI,OAAO,EAAE;gBACtB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;gBACvB,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;aACxB;iBAAM;gBACL,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;aACtB;YAED,oBAAoB;YACpB,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;YAChC,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;SACjC;aAAM;YACL,8CAA8C;YAC9C,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC;YACrD,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;YAC7B,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;SAC9B;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAC;AAEF,kBAAe,EAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAC,CAAC;AAEzC;;;GAGG"}