@serenity-js/web 3.38.0 → 3.40.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 (38) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/screenplay/interactions/Drag.d.ts +95 -0
  3. package/lib/screenplay/interactions/Drag.d.ts.map +1 -0
  4. package/lib/screenplay/interactions/Drag.js +123 -0
  5. package/lib/screenplay/interactions/Drag.js.map +1 -0
  6. package/lib/screenplay/interactions/ExecuteScript.d.ts +1 -2
  7. package/lib/screenplay/interactions/ExecuteScript.d.ts.map +1 -1
  8. package/lib/screenplay/interactions/ExecuteScript.js +1 -2
  9. package/lib/screenplay/interactions/ExecuteScript.js.map +1 -1
  10. package/lib/screenplay/interactions/index.d.ts +1 -0
  11. package/lib/screenplay/interactions/index.d.ts.map +1 -1
  12. package/lib/screenplay/interactions/index.js +1 -0
  13. package/lib/screenplay/interactions/index.js.map +1 -1
  14. package/lib/screenplay/models/PageElement.d.ts +7 -0
  15. package/lib/screenplay/models/PageElement.d.ts.map +1 -1
  16. package/lib/screenplay/models/PageElement.js.map +1 -1
  17. package/lib/scripts/dragAndDrop.d.ts +13 -0
  18. package/lib/scripts/dragAndDrop.d.ts.map +1 -0
  19. package/lib/scripts/dragAndDrop.js +75 -0
  20. package/lib/scripts/dragAndDrop.js.map +1 -0
  21. package/lib/scripts/index.d.ts +1 -0
  22. package/lib/scripts/index.d.ts.map +1 -1
  23. package/lib/scripts/index.js +1 -0
  24. package/lib/scripts/index.js.map +1 -1
  25. package/lib/scripts/isVisible.js +0 -1
  26. package/lib/scripts/isVisible.js.map +1 -1
  27. package/lib/scripts/rehydrate.js +0 -1
  28. package/lib/scripts/rehydrate.js.map +1 -1
  29. package/package.json +4 -4
  30. package/src/screenplay/interactions/Drag.ts +125 -0
  31. package/src/screenplay/interactions/ExecuteScript.ts +3 -3
  32. package/src/screenplay/interactions/index.ts +1 -0
  33. package/src/screenplay/models/ArgumentDehydrator.ts +1 -1
  34. package/src/screenplay/models/PageElement.ts +8 -0
  35. package/src/scripts/dragAndDrop.ts +79 -0
  36. package/src/scripts/index.ts +1 -0
  37. package/src/scripts/isVisible.ts +1 -1
  38. package/src/scripts/rehydrate.ts +2 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.40.0](https://github.com/serenity-js/serenity-js/compare/v3.39.0...v3.40.0) (2026-02-04)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **protractor:** use JavaScript-based drag and drop for HTML5 events ([c5fdfca](https://github.com/serenity-js/serenity-js/commit/c5fdfca1788136fb8f69c9dbe5829072181a061f))
12
+
13
+
14
+ ### Features
15
+
16
+ * **web:** introduce Drag interaction to drag and drop page elements ([fdde2c3](https://github.com/serenity-js/serenity-js/commit/fdde2c317074f93527bf67f86bf56dcbf1b6647e)), closes [#2663](https://github.com/serenity-js/serenity-js/issues/2663)
17
+
18
+
19
+
20
+
21
+
22
+ # [3.39.0](https://github.com/serenity-js/serenity-js/compare/v3.38.0...v3.39.0) (2026-01-30)
23
+
24
+ **Note:** Version bump only for package @serenity-js/web
25
+
26
+
27
+
28
+
29
+
6
30
  # [3.38.0](https://github.com/serenity-js/serenity-js/compare/v3.37.2...v3.38.0) (2026-01-29)
7
31
 
8
32
  **Note:** Version bump only for package @serenity-js/web
@@ -0,0 +1,95 @@
1
+ import type { Answerable } from '@serenity-js/core';
2
+ import { Interaction } from '@serenity-js/core';
3
+ import type { PageElement } from '../models';
4
+ /**
5
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
6
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
7
+ *
8
+ * ## Example HTML with draggable element and drop zone
9
+ *
10
+ * ```html
11
+ * <p id="draggable" draggable="true">
12
+ * This element is draggable.
13
+ * </p>
14
+ * <div id="droppable">
15
+ * Drop Zone
16
+ * </div>
17
+ *
18
+ * <script>
19
+ * const draggable = document.getElementById('draggable');
20
+ * const droppable = document.getElementById('droppable');
21
+ *
22
+ * draggable.addEventListener('dragstart', (event) => {
23
+ * event.dataTransfer.setData('text/plain', event.target.id);
24
+ * event.dataTransfer.effectAllowed = 'move';
25
+ * });
26
+ *
27
+ * droppable.addEventListener('dragover', (event) => {
28
+ * event.preventDefault();
29
+ * });
30
+ *
31
+ * droppable.addEventListener('drop', (event) => {
32
+ * event.preventDefault();
33
+ * const id = event.dataTransfer.getData('text/plain');
34
+ * event.target.appendChild(document.getElementById(id));
35
+ * });
36
+ * </script>
37
+ * ```
38
+ *
39
+ * ## Page Elements for draggable and drop zone
40
+ *
41
+ * ```ts
42
+ * import { By, PageElement } from '@serenity-js/web';
43
+ *
44
+ * const draggable = () =>
45
+ * PageElement.located(By.id('draggable')).describedAs('draggable element');
46
+ *
47
+ * const dropZone = () =>
48
+ * PageElement.located(By.id('droppable')).describedAs('drop zone');
49
+ * ```
50
+ *
51
+ * ## Dragging and dropping the element
52
+ *
53
+ * ```ts
54
+ * import { actorCalled } from '@serenity-js/core'
55
+ * import { Ensure, isPresent } from '@serenity-js/assertions'
56
+ * import { Drag, Navigate } from '@serenity-js/web'
57
+ *
58
+ * await actorCalled('Doug')
59
+ * .attemptsTo(
60
+ * Navigate.to('/drag-and-drop-example.html'),
61
+ * Drag.the(draggable()).to(dropZone()),
62
+ * Ensure.that(draggable().of(dropZone()), isPresent()),
63
+ * )
64
+ * ```
65
+ *
66
+ * ## Learn more
67
+ *
68
+ * - [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
69
+ * - [HTML Drag and Drop API](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) on MDN
70
+ *
71
+ * @group Activities
72
+ */
73
+ export declare class Drag {
74
+ private readonly draggable;
75
+ /**
76
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
77
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
78
+ *
79
+ * Call [`.to(...)`](https://serenity-js.org/api/web/class/Drag/#to) to specify the destination.
80
+ *
81
+ * @param draggable
82
+ * The element that will be dragged
83
+ */
84
+ static the(draggable: Answerable<PageElement>): Drag;
85
+ private constructor();
86
+ /**
87
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
88
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
89
+ *
90
+ * @param destination
91
+ * The element to drop it on
92
+ */
93
+ to(destination: Answerable<PageElement>): Interaction;
94
+ }
95
+ //# sourceMappingURL=Drag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drag.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Drag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,qBAAa,IAAI;IAeO,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb9C;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;IAIpD,OAAO;IAGP;;;;;;OAMG;IACH,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW;CAGxD"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Drag = void 0;
4
+ const core_1 = require("@serenity-js/core");
5
+ /**
6
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
7
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
8
+ *
9
+ * ## Example HTML with draggable element and drop zone
10
+ *
11
+ * ```html
12
+ * <p id="draggable" draggable="true">
13
+ * This element is draggable.
14
+ * </p>
15
+ * <div id="droppable">
16
+ * Drop Zone
17
+ * </div>
18
+ *
19
+ * <script>
20
+ * const draggable = document.getElementById('draggable');
21
+ * const droppable = document.getElementById('droppable');
22
+ *
23
+ * draggable.addEventListener('dragstart', (event) => {
24
+ * event.dataTransfer.setData('text/plain', event.target.id);
25
+ * event.dataTransfer.effectAllowed = 'move';
26
+ * });
27
+ *
28
+ * droppable.addEventListener('dragover', (event) => {
29
+ * event.preventDefault();
30
+ * });
31
+ *
32
+ * droppable.addEventListener('drop', (event) => {
33
+ * event.preventDefault();
34
+ * const id = event.dataTransfer.getData('text/plain');
35
+ * event.target.appendChild(document.getElementById(id));
36
+ * });
37
+ * </script>
38
+ * ```
39
+ *
40
+ * ## Page Elements for draggable and drop zone
41
+ *
42
+ * ```ts
43
+ * import { By, PageElement } from '@serenity-js/web';
44
+ *
45
+ * const draggable = () =>
46
+ * PageElement.located(By.id('draggable')).describedAs('draggable element');
47
+ *
48
+ * const dropZone = () =>
49
+ * PageElement.located(By.id('droppable')).describedAs('drop zone');
50
+ * ```
51
+ *
52
+ * ## Dragging and dropping the element
53
+ *
54
+ * ```ts
55
+ * import { actorCalled } from '@serenity-js/core'
56
+ * import { Ensure, isPresent } from '@serenity-js/assertions'
57
+ * import { Drag, Navigate } from '@serenity-js/web'
58
+ *
59
+ * await actorCalled('Doug')
60
+ * .attemptsTo(
61
+ * Navigate.to('/drag-and-drop-example.html'),
62
+ * Drag.the(draggable()).to(dropZone()),
63
+ * Ensure.that(draggable().of(dropZone()), isPresent()),
64
+ * )
65
+ * ```
66
+ *
67
+ * ## Learn more
68
+ *
69
+ * - [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
70
+ * - [HTML Drag and Drop API](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) on MDN
71
+ *
72
+ * @group Activities
73
+ */
74
+ class Drag {
75
+ draggable;
76
+ /**
77
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
78
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
79
+ *
80
+ * Call [`.to(...)`](https://serenity-js.org/api/web/class/Drag/#to) to specify the destination.
81
+ *
82
+ * @param draggable
83
+ * The element that will be dragged
84
+ */
85
+ static the(draggable) {
86
+ return new Drag(draggable);
87
+ }
88
+ constructor(draggable) {
89
+ this.draggable = draggable;
90
+ }
91
+ /**
92
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
93
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
94
+ *
95
+ * @param destination
96
+ * The element to drop it on
97
+ */
98
+ to(destination) {
99
+ return new DragAndDrop(this.draggable, destination);
100
+ }
101
+ }
102
+ exports.Drag = Drag;
103
+ /**
104
+ * @package
105
+ */
106
+ class DragAndDrop extends core_1.Interaction {
107
+ draggable;
108
+ destination;
109
+ constructor(draggable, destination) {
110
+ super((0, core_1.the) `#actor drags ${draggable} and drops it on ${destination}`);
111
+ this.draggable = draggable;
112
+ this.destination = destination;
113
+ }
114
+ /**
115
+ * @inheritDoc
116
+ */
117
+ async performAs(actor) {
118
+ const draggable = await actor.answer(this.draggable);
119
+ const destination = await actor.answer(this.destination);
120
+ await draggable.dragTo(destination);
121
+ }
122
+ }
123
+ //# sourceMappingURL=Drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drag.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Drag.ts"],"names":[],"mappings":";;;AACA,4CAAqD;AAIrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,MAAa,IAAI;IAewB;IAbrC;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,CAAC,SAAkC;QACzC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,YAAqC,SAAkC;QAAlC,cAAS,GAAT,SAAS,CAAyB;IACvE,CAAC;IAED;;;;;;OAMG;IACH,EAAE,CAAC,WAAoC;QACnC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;CACJ;AA5BD,oBA4BC;AAED;;GAEG;AACH,MAAM,WAAY,SAAQ,kBAAW;IAEZ;IACA;IAFrB,YACqB,SAAkC,EAClC,WAAoC;QAErD,KAAK,CAAC,IAAA,UAAG,EAAA,gBAAiB,SAAU,oBAAqB,WAAY,EAAE,CAAC,CAAC;QAHxD,cAAS,GAAT,SAAS,CAAyB;QAClC,gBAAW,GAAX,WAAW,CAAyB;IAGzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAY;QACxB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzD,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;CACJ"}
@@ -280,8 +280,7 @@ export declare class ExecuteScript {
280
280
  export declare abstract class ExecuteScriptWithArguments extends Interaction {
281
281
  protected readonly script: string | Function;
282
282
  protected readonly args: Array<Answerable<any>>;
283
- constructor(description: Answerable<string>, script: string | Function, // eslint-disable-line @typescript-eslint/ban-types
284
- args?: Array<Answerable<any>>);
283
+ constructor(description: Answerable<string>, script: string | Function, args?: Array<Answerable<any>>);
285
284
  /**
286
285
  * Instantiates this [`Interaction`](https://serenity-js.org/api/core/class/Interaction/)
287
286
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ExecuteScript.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAMjE;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAEtB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,WAAW;IAIvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4IG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,0BAA0B;IAOnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwGG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,0BAA0B;CAMrE;AAED;;;;;;;GAOG;AACH,8BAAsB,0BAA2B,SAAQ,WAAW;IAI5D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAC5C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAF/C,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,EACZ,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAY,mDAAmD;IACxF,IAAI,GAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAM;IAKxD;;;;;OAKG;aACa,aAAa,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;IAE3E;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3F,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CACnG"}
1
+ {"version":3,"file":"ExecuteScript.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAMjE;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAEtB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,WAAW;IAIvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4IG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,0BAA0B;IAOnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwGG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,0BAA0B;CAMrE;AAED;;;;;;;GAOG;AACH,8BAAsB,0BAA2B,SAAQ,WAAW;IAI5D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAC5C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAF/C,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,EACZ,MAAM,EAAE,MAAM,GAAG,QAAQ,EACzB,IAAI,GAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAM;IAKxD;;;;;OAKG;aACa,aAAa,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;IAE3E;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3F,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CACnG"}
@@ -292,8 +292,7 @@ exports.ExecuteScript = ExecuteScript;
292
292
  class ExecuteScriptWithArguments extends core_1.Interaction {
293
293
  script;
294
294
  args;
295
- constructor(description, script, // eslint-disable-line @typescript-eslint/ban-types
296
- args = []) {
295
+ constructor(description, script, args = []) {
297
296
  super(description, core_1.Interaction.callerLocation(5));
298
297
  this.script = script;
299
298
  this.args = args;
@@ -1 +1 @@
1
- {"version":3,"file":"ExecuteScript.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExecuteScript.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export * from './Clear';
2
2
  export * from './Click';
3
3
  export * from './DoubleClick';
4
+ export * from './Drag';
4
5
  export * from './Enter';
5
6
  export * from './ExecuteScript';
6
7
  export * from './Hover';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Clear"), exports);
18
18
  __exportStar(require("./Click"), exports);
19
19
  __exportStar(require("./DoubleClick"), exports);
20
+ __exportStar(require("./Drag"), exports);
20
21
  __exportStar(require("./Enter"), exports);
21
22
  __exportStar(require("./ExecuteScript"), exports);
22
23
  __exportStar(require("./Hover"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,gDAA8B;AAC9B,0CAAwB;AACxB,kDAAgC;AAChC,0CAAwB;AACxB,6CAA2B;AAC3B,2DAAyC;AACzC,0CAAwB;AACxB,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,gDAA8B;AAC9B,yCAAuB;AACvB,0CAAwB;AACxB,kDAAgC;AAChC,0CAAwB;AACxB,6CAA2B;AAC3B,2DAAyC;AACzC,0CAAwB;AACxB,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,mDAAiC"}
@@ -115,6 +115,13 @@ export declare abstract class PageElement<Native_Element_Type = any> implements
115
115
  abstract rightClick(): Promise<void>;
116
116
  abstract selectOptions(...options: Array<SelectOption>): Promise<void>;
117
117
  abstract selectedOptions(): Promise<Array<SelectOption>>;
118
+ /**
119
+ * Drags this element and drops it on the `destination` element.
120
+ *
121
+ * @param destination
122
+ * The element to drop this element on
123
+ */
124
+ abstract dragTo(destination: PageElement<Native_Element_Type>): Promise<void>;
118
125
  abstract attribute(name: string): Promise<string>;
119
126
  abstract text(): Promise<string>;
120
127
  abstract value(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"PageElement.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PageElement.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAG,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAKlH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,8BAAsB,WAAW,CAAC,mBAAmB,GAAG,GAAG,CAAE,YAAW,QAAQ,EAAE,UAAU;aA+D5D,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;IA7DjE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAQ7F,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAS5G,MAAM,CAAC,EAAE,CAAC,GAAG,EACT,YAAY,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,EACxF,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAC5C,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAS1D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;gBAU/C,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAIjE;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC;IAE9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACH,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC;IAEpG;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAInD,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACnF,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IACrC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACtE,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAExD;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7E,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAEjC;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAEhC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAErC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAEtC;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAEvC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CACzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PageElement.js","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":";;;AACA,4CAAkD;AAClD,2CAA+C;AAE/C,4CAA4C;AAO5C;;;;;;;;;;GAUG;AACH,MAAsB,WAAW;IA+DD;IA7D5B,MAAM,CAAC,IAAI,CAAM,aAAkB;QAC/B,OAAO,eAAQ,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoB,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAElF,OAAO,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,OAAO,CAAM,QAA8B;QAC9C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,UAAG,EAAA,wBAAyB,QAAS,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACzE,MAAM,UAAU,GAAI,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoB,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAElF,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAE,CACL,YAAwF,EACxF,aAA2C;QAE3C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,UAAG,EAAA,GAAI,YAAa,OAAQ,aAAc,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC9E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;YAErC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,IAAI;QACP,OAAO;YACH,EAAE,EAAE,CAAC,WAAyC,EAAE,EAAE,CAC9C,eAAQ,CAAC,KAAK,CAAC,iBAAiB,WAAW,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;gBACzD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAChD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC,CAAC;SACT,CAAA;IACL,CAAC;IAED,YAA4B,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;QAC7D,IAAA,mBAAM,EAAC,wBAAwB,EAAE,OAAO,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAC3D,CAAC;IA6DD;;OAEG;IACH,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,OAAO,uBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAG,EAAE,CAAC;IAC9D,CAAC;IA4ED;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;CAoBJ;AA9OD,kCA8OC"}
1
+ {"version":3,"file":"PageElement.js","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":";;;AACA,4CAAkD;AAClD,2CAA+C;AAE/C,4CAA4C;AAO5C;;;;;;;;;;GAUG;AACH,MAAsB,WAAW;IA+DD;IA7D5B,MAAM,CAAC,IAAI,CAAM,aAAkB;QAC/B,OAAO,eAAQ,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoB,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAElF,OAAO,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,OAAO,CAAM,QAA8B;QAC9C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,UAAG,EAAA,wBAAyB,QAAS,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACzE,MAAM,UAAU,GAAI,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAoB,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAElF,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAE,CACL,YAAwF,EACxF,aAA2C;QAE3C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,UAAG,EAAA,GAAI,YAAa,OAAQ,aAAc,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC9E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;YAErC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,IAAI;QACP,OAAO;YACH,EAAE,EAAE,CAAC,WAAyC,EAAE,EAAE,CAC9C,eAAQ,CAAC,KAAK,CAAC,iBAAiB,WAAW,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;gBACzD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAChD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC,CAAC;SACT,CAAA;IACL,CAAC;IAED,YAA4B,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;QAC7D,IAAA,mBAAM,EAAC,wBAAwB,EAAE,OAAO,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAC3D,CAAC;IA6DD;;OAEG;IACH,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,OAAO,uBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAG,EAAE,CAAC;IAC9D,CAAC;IAoFD;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;CAoBJ;AAtPD,kCAsPC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Simulates HTML5 drag and drop events.
3
+ *
4
+ * This script is a workaround for Selenium WebDriver's inability to properly
5
+ * trigger HTML5 drag events using the Actions API. It manually dispatches
6
+ * the required drag events (dragstart, dragenter, dragover, drop, dragend)
7
+ * to simulate a complete drag and drop operation.
8
+ *
9
+ * @param source - The element to drag
10
+ * @param target - The element to drop onto
11
+ */
12
+ export declare function dragAndDrop(source: HTMLElement, target: HTMLElement): void;
13
+ //# sourceMappingURL=dragAndDrop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragAndDrop.d.ts","sourceRoot":"","sources":["../../src/scripts/dragAndDrop.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAgE1E"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dragAndDrop = dragAndDrop;
4
+ /* c8 ignore start */
5
+ /**
6
+ * Simulates HTML5 drag and drop events.
7
+ *
8
+ * This script is a workaround for Selenium WebDriver's inability to properly
9
+ * trigger HTML5 drag events using the Actions API. It manually dispatches
10
+ * the required drag events (dragstart, dragenter, dragover, drop, dragend)
11
+ * to simulate a complete drag and drop operation.
12
+ *
13
+ * @param source - The element to drag
14
+ * @param target - The element to drop onto
15
+ */
16
+ function dragAndDrop(source, target) {
17
+ function createDragEvent(type, dataTransfer) {
18
+ return new DragEvent(type, {
19
+ bubbles: true,
20
+ cancelable: true,
21
+ dataTransfer,
22
+ });
23
+ }
24
+ function createDataTransfer() {
25
+ try {
26
+ return new DataTransfer();
27
+ }
28
+ catch {
29
+ // Fallback for older browsers
30
+ const event = document.createEvent('CustomEvent');
31
+ event.initCustomEvent('', false, false, null);
32
+ event.dataTransfer = {
33
+ data: {},
34
+ setData(format, data) {
35
+ this.data[format] = data;
36
+ },
37
+ getData(format) {
38
+ return this.data[format];
39
+ },
40
+ clearData(format) {
41
+ if (format) {
42
+ delete this.data[format];
43
+ }
44
+ else {
45
+ this.data = {};
46
+ }
47
+ },
48
+ setDragImage() {
49
+ // no-op
50
+ },
51
+ dropEffect: 'none',
52
+ effectAllowed: 'all',
53
+ files: [],
54
+ items: [],
55
+ types: [],
56
+ };
57
+ return event.dataTransfer;
58
+ }
59
+ }
60
+ // Create a DataTransfer object to share between events
61
+ const dataTransfer = createDataTransfer();
62
+ // Dispatch dragstart on source
63
+ source.dispatchEvent(createDragEvent('dragstart', dataTransfer));
64
+ // Dispatch dragenter on target
65
+ target.dispatchEvent(createDragEvent('dragenter', dataTransfer));
66
+ // Dispatch dragover on target (required for drop to work)
67
+ const dragOverEvent = createDragEvent('dragover', dataTransfer);
68
+ target.dispatchEvent(dragOverEvent);
69
+ // Dispatch drop on target
70
+ target.dispatchEvent(createDragEvent('drop', dataTransfer));
71
+ // Dispatch dragend on source
72
+ source.dispatchEvent(createDragEvent('dragend', dataTransfer));
73
+ }
74
+ /* c8 ignore stop */
75
+ //# sourceMappingURL=dragAndDrop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragAndDrop.js","sourceRoot":"","sources":["../../src/scripts/dragAndDrop.ts"],"names":[],"mappings":";;AAaA,kCAgEC;AA5ED,qBAAqB;AACrB;;;;;;;;;;GAUG;AACH,SAAgB,WAAW,CAAC,MAAmB,EAAE,MAAmB;IAEhE,SAAS,eAAe,CAAC,IAAY,EAAE,YAA0B;QAC7D,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE;YACvB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,YAAY;SACf,CAAC,CAAC;IACP,CAAC;IAED,SAAS,kBAAkB;QACvB,IAAI,CAAC;YACD,OAAO,IAAI,YAAY,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,CAAC;YACH,8BAA8B;YAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAQ,CAAC;YACzD,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,KAAK,CAAC,YAAY,GAAG;gBACjB,IAAI,EAAE,EAA4B;gBAClC,OAAO,CAAC,MAAc,EAAE,IAAY;oBAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBAC7B,CAAC;gBACD,OAAO,CAAC,MAAc;oBAClB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBACD,SAAS,CAAC,MAAe;oBACrB,IAAI,MAAM,EAAE,CAAC;wBACT,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;oBACnB,CAAC;gBACL,CAAC;gBACD,YAAY;oBACR,QAAQ;gBACZ,CAAC;gBACD,UAAU,EAAE,MAAoC;gBAChD,aAAa,EAAE,KAAsC;gBACrD,KAAK,EAAE,EAAyB;gBAChC,KAAK,EAAE,EAAqC;gBAC5C,KAAK,EAAE,EAAc;aACxB,CAAC;YACF,OAAO,KAAK,CAAC,YAAY,CAAC;QAC9B,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,+BAA+B;IAC/B,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEjE,+BAA+B;IAC/B,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEjE,0DAA0D;IAC1D,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAEpC,0BAA0B;IAC1B,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5D,6BAA6B;IAC7B,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACnE,CAAC;AACD,oBAAoB"}
@@ -1,3 +1,4 @@
1
+ export * from './dragAndDrop';
1
2
  export * from './isVisible';
2
3
  export * from './rehydrate';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scripts/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scripts/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./dragAndDrop"), exports);
17
18
  __exportStar(require("./isVisible"), exports);
18
19
  __exportStar(require("./rehydrate"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scripts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scripts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,8CAA4B"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isVisible = isVisible;
4
- /* eslint-disable unicorn/no-for-loop,unicorn/consistent-function-scoping */
5
4
  /* c8 ignore start */
6
5
  function isVisible(domNode) {
7
6
  const style = window.getComputedStyle(domNode);
@@ -1 +1 @@
1
- {"version":3,"file":"isVisible.js","sourceRoot":"","sources":["../../src/scripts/isVisible.ts"],"names":[],"mappings":";;AAEA,8BA8GC;AAhHD,4EAA4E;AAC5E,qBAAqB;AACrB,SAAgB,SAAS,CAAC,OAAoB;IAE1C,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC1I,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,oCAAoC;IACpC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAExC,0BAA0B;IAC1B,SAAS,qBAAqB,CAAE,OAAoB,EAAE,OAAkB;QACpE,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAA;QAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;QAClD,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;QACrD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;QACrD,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,2DAA2D;IAC3D,6CAA6C;IAC7C,SAAS,mBAAmB,CAAE,OAAoB,EAAE,OAAkB;QAClE,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAA;QAC7B,MAAM,QAAQ,GAAG,EAAE,CAAA;QAEnB,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAA;QACtC,mGAAmG;QACnG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACtC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE7C,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,2BAA2B;IAC3B,SAAS,sBAAsB,CAAE,OAAoB,EAAE,OAAkB;QACrE,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAClG,CAAC;IAED,yCAAyC;IACzC,SAAS,YAAY,CAAE,OAAoB,EAAE,SAAsB;QAC/D,sFAAsF;QACtF,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,WAAW,GAAG,SAA+C,CAAA;YACjE,OAAO,WAAW,EAAE,CAAC;gBACjB,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAA;gBACf,CAAC;gBAED,WAAW,GAAG,WAAW,CAAC,UAAwB,CAAA;gBAClD,wDAAwD;gBACxD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;oBACjE,WAAW,GAAG,WAAW,CAAC,IAAI,CAAA;gBAClC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACtC,CAAC;IAED,gEAAgE;IAChE,SAAS,yBAAyB,CAAE,iBAAgC,EAAE,OAAoB;QACtF,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,gBAAgB;YACjD,OAAO,gBAAgB,KAAK,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;QAClF,CAAC,CAAC,EAAE,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;QAED,cAAc;QACd,yCAAyC;QACzC,MAAM,sBAAsB,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAc;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,0DAA0D;QAC1D,IAAI,uBAAuB,GAAkB,EAAE,CAAA;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,aAAa,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAA;YAC/C,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CACpD,sBAAsB,CAAC,OAAO,EAAG,aAA6B,CAAC,UAAiB,CAAQ,CAC3F,CAAA;QACL,CAAC;QACD,gCAAgC;QAChC,uBAAuB,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC3E,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,OAAO,yBAAyB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,yBAAyB,CAAC,sBAAsB,CAAC,OAAO,CAAyB,EAAE,OAAO,CAAC,CAAA;AACtG,CAAC;AACD,oBAAoB"}
1
+ {"version":3,"file":"isVisible.js","sourceRoot":"","sources":["../../src/scripts/isVisible.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rehydrate = rehydrate;
4
- /* eslint-disable unicorn/consistent-function-scoping */
5
4
  // todo: instead of manually including isPlainObject, each script from web/lib/scripts should be pre-built and included in the global browser scope
6
5
  function rehydrate(...result) {
7
6
  function isPlainObject(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"rehydrate.js","sourceRoot":"","sources":["../../src/scripts/rehydrate.ts"],"names":[],"mappings":";;AAEA,8BAmCC;AArCD,wDAAwD;AACxD,mJAAmJ;AACnJ,SAAgB,SAAS,CAAC,GAAG,MAA8D;IACvF,SAAS,aAAa,CAAC,CAAU;QAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvC,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;YACxD,CAAC;YACD,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,oBAAoB,CAAC,GAAQ,EAAE,IAAW;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;iBACd,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,EAAE,CAAC,CAAE,GAAG,EAAE,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAE,CAAC,CAC3E,CAAC;QACN,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAE,EAAE,SAAS,EAAE,EAAE,GAAG,KAAK,CAAE,GAAG,MAAM,CAAC;IAE3C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"rehydrate.js","sourceRoot":"","sources":["../../src/scripts/rehydrate.ts"],"names":[],"mappings":";;AAEA,8BAmCC;AApCD,mJAAmJ;AACnJ,SAAgB,SAAS,CAAC,GAAG,MAA8D;IACvF,SAAS,aAAa,CAAC,CAAU;QAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvC,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;YACxD,CAAC;YACD,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,oBAAoB,CAAC,GAAQ,EAAE,IAAW;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;iBACd,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,EAAE,CAAC,CAAE,GAAG,EAAE,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAE,CAAC,CAC3E,CAAC;QACN,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAE,EAAE,SAAS,EAAE,EAAE,GAAG,KAAK,CAAE,GAAG,MAAM,CAAC;IAE3C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/web",
3
- "version": "3.38.0",
3
+ "version": "3.40.0",
4
4
  "description": "Serenity/JS Screenplay Pattern library offering a flexible, web driver-agnostic approach for interacting with web-based user interfaces and components, suitable for various testing contexts",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -53,8 +53,8 @@
53
53
  "node": "^20 || ^22 || ^24"
54
54
  },
55
55
  "dependencies": {
56
- "@serenity-js/assertions": "3.38.0",
57
- "@serenity-js/core": "3.38.0",
56
+ "@serenity-js/assertions": "3.40.0",
57
+ "@serenity-js/core": "3.40.0",
58
58
  "tiny-types": "1.24.3"
59
59
  },
60
60
  "devDependencies": {
@@ -67,5 +67,5 @@
67
67
  "ts-node": "10.9.2",
68
68
  "typescript": "5.9.3"
69
69
  },
70
- "gitHead": "d86152afd35fb815038b3a153e8c53a0b023e4b3"
70
+ "gitHead": "185b8435cf6e87b8a54f10944da3e652227ecb6e"
71
71
  }
@@ -0,0 +1,125 @@
1
+ import type { Actor, Answerable } from '@serenity-js/core';
2
+ import { Interaction, the } from '@serenity-js/core';
3
+
4
+ import type { PageElement } from '../models';
5
+
6
+ /**
7
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
8
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
9
+ *
10
+ * ## Example HTML with draggable element and drop zone
11
+ *
12
+ * ```html
13
+ * <p id="draggable" draggable="true">
14
+ * This element is draggable.
15
+ * </p>
16
+ * <div id="droppable">
17
+ * Drop Zone
18
+ * </div>
19
+ *
20
+ * <script>
21
+ * const draggable = document.getElementById('draggable');
22
+ * const droppable = document.getElementById('droppable');
23
+ *
24
+ * draggable.addEventListener('dragstart', (event) => {
25
+ * event.dataTransfer.setData('text/plain', event.target.id);
26
+ * event.dataTransfer.effectAllowed = 'move';
27
+ * });
28
+ *
29
+ * droppable.addEventListener('dragover', (event) => {
30
+ * event.preventDefault();
31
+ * });
32
+ *
33
+ * droppable.addEventListener('drop', (event) => {
34
+ * event.preventDefault();
35
+ * const id = event.dataTransfer.getData('text/plain');
36
+ * event.target.appendChild(document.getElementById(id));
37
+ * });
38
+ * </script>
39
+ * ```
40
+ *
41
+ * ## Page Elements for draggable and drop zone
42
+ *
43
+ * ```ts
44
+ * import { By, PageElement } from '@serenity-js/web';
45
+ *
46
+ * const draggable = () =>
47
+ * PageElement.located(By.id('draggable')).describedAs('draggable element');
48
+ *
49
+ * const dropZone = () =>
50
+ * PageElement.located(By.id('droppable')).describedAs('drop zone');
51
+ * ```
52
+ *
53
+ * ## Dragging and dropping the element
54
+ *
55
+ * ```ts
56
+ * import { actorCalled } from '@serenity-js/core'
57
+ * import { Ensure, isPresent } from '@serenity-js/assertions'
58
+ * import { Drag, Navigate } from '@serenity-js/web'
59
+ *
60
+ * await actorCalled('Doug')
61
+ * .attemptsTo(
62
+ * Navigate.to('/drag-and-drop-example.html'),
63
+ * Drag.the(draggable()).to(dropZone()),
64
+ * Ensure.that(draggable().of(dropZone()), isPresent()),
65
+ * )
66
+ * ```
67
+ *
68
+ * ## Learn more
69
+ *
70
+ * - [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
71
+ * - [HTML Drag and Drop API](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) on MDN
72
+ *
73
+ * @group Activities
74
+ */
75
+ export class Drag {
76
+
77
+ /**
78
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
79
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
80
+ *
81
+ * Call [`.to(...)`](https://serenity-js.org/api/web/class/Drag/#to) to specify the destination.
82
+ *
83
+ * @param draggable
84
+ * The element that will be dragged
85
+ */
86
+ static the(draggable: Answerable<PageElement>): Drag {
87
+ return new Drag(draggable);
88
+ }
89
+
90
+ private constructor(private readonly draggable: Answerable<PageElement>) {
91
+ }
92
+
93
+ /**
94
+ * Instructs an [actor](https://serenity-js.org/api/core/class/Actor/) who has the [ability](https://serenity-js.org/api/core/class/Ability/) to [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
95
+ * to drag a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) and drop it on another [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
96
+ *
97
+ * @param destination
98
+ * The element to drop it on
99
+ */
100
+ to(destination: Answerable<PageElement>): Interaction {
101
+ return new DragAndDrop(this.draggable, destination);
102
+ }
103
+ }
104
+
105
+ /**
106
+ * @package
107
+ */
108
+ class DragAndDrop extends Interaction {
109
+ constructor(
110
+ private readonly draggable: Answerable<PageElement>,
111
+ private readonly destination: Answerable<PageElement>,
112
+ ) {
113
+ super(the`#actor drags ${ draggable } and drops it on ${ destination }`);
114
+ }
115
+
116
+ /**
117
+ * @inheritDoc
118
+ */
119
+ async performAs(actor: Actor): Promise<void> {
120
+ const draggable = await actor.answer(this.draggable);
121
+ const destination = await actor.answer(this.destination);
122
+
123
+ await draggable.dragTo(destination);
124
+ }
125
+ }
@@ -170,7 +170,7 @@ export class ExecuteScript {
170
170
  * @param script
171
171
  * The script to be executed
172
172
  */
173
- static async(script: string | Function): ExecuteScriptWithArguments { // eslint-disable-line @typescript-eslint/ban-types
173
+ static async(script: string | Function): ExecuteScriptWithArguments {
174
174
  return new ExecuteAsynchronousScript(
175
175
  `#actor executes an asynchronous script`,
176
176
  script,
@@ -282,7 +282,7 @@ export class ExecuteScript {
282
282
  * @param script
283
283
  * The script to be executed
284
284
  */
285
- static sync(script: string | Function): ExecuteScriptWithArguments { // eslint-disable-line @typescript-eslint/ban-types
285
+ static sync(script: string | Function): ExecuteScriptWithArguments {
286
286
  return new ExecuteSynchronousScript(
287
287
  `#actor executes a synchronous script`,
288
288
  script,
@@ -302,7 +302,7 @@ export abstract class ExecuteScriptWithArguments extends Interaction {
302
302
 
303
303
  constructor(
304
304
  description: Answerable<string>,
305
- protected readonly script: string | Function, // eslint-disable-line @typescript-eslint/ban-types
305
+ protected readonly script: string | Function,
306
306
  protected readonly args: Array<Answerable<any>> = [],
307
307
  ) {
308
308
  super(description, Interaction.callerLocation(5));
@@ -1,6 +1,7 @@
1
1
  export * from './Clear';
2
2
  export * from './Click';
3
3
  export * from './DoubleClick';
4
+ export * from './Drag';
4
5
  export * from './Enter';
5
6
  export * from './ExecuteScript';
6
7
  export * from './Hover';
@@ -1,6 +1,6 @@
1
1
  import { ValueInspector } from '@serenity-js/core/lib/io';
2
2
 
3
- /* eslint-disable @typescript-eslint/indent */
3
+ /* eslint-disable @stylistic/indent */
4
4
  type TransformedArgument<T, U> =
5
5
  T extends Array<infer E> ? Array<TransformedArgument<E, U>> :
6
6
  T extends object ? { [K in keyof T]: TransformedArgument<T[K], U> }
@@ -167,6 +167,14 @@ export abstract class PageElement<Native_Element_Type = any> implements Optional
167
167
  abstract selectOptions(...options: Array<SelectOption>): Promise<void>;
168
168
  abstract selectedOptions(): Promise<Array<SelectOption>>;
169
169
 
170
+ /**
171
+ * Drags this element and drops it on the `destination` element.
172
+ *
173
+ * @param destination
174
+ * The element to drop this element on
175
+ */
176
+ abstract dragTo(destination: PageElement<Native_Element_Type>): Promise<void>;
177
+
170
178
  abstract attribute(name: string): Promise<string>;
171
179
  abstract text(): Promise<string>;
172
180
  abstract value(): Promise<string>;
@@ -0,0 +1,79 @@
1
+
2
+ /* c8 ignore start */
3
+ /**
4
+ * Simulates HTML5 drag and drop events.
5
+ *
6
+ * This script is a workaround for Selenium WebDriver's inability to properly
7
+ * trigger HTML5 drag events using the Actions API. It manually dispatches
8
+ * the required drag events (dragstart, dragenter, dragover, drop, dragend)
9
+ * to simulate a complete drag and drop operation.
10
+ *
11
+ * @param source - The element to drag
12
+ * @param target - The element to drop onto
13
+ */
14
+ export function dragAndDrop(source: HTMLElement, target: HTMLElement): void {
15
+
16
+ function createDragEvent(type: string, dataTransfer: DataTransfer): DragEvent {
17
+ return new DragEvent(type, {
18
+ bubbles: true,
19
+ cancelable: true,
20
+ dataTransfer,
21
+ });
22
+ }
23
+
24
+ function createDataTransfer(): DataTransfer {
25
+ try {
26
+ return new DataTransfer();
27
+ }
28
+ catch {
29
+ // Fallback for older browsers
30
+ const event = document.createEvent('CustomEvent') as any;
31
+ event.initCustomEvent('', false, false, null);
32
+ event.dataTransfer = {
33
+ data: {} as Record<string, string>,
34
+ setData(format: string, data: string) {
35
+ this.data[format] = data;
36
+ },
37
+ getData(format: string) {
38
+ return this.data[format];
39
+ },
40
+ clearData(format?: string) {
41
+ if (format) {
42
+ delete this.data[format];
43
+ } else {
44
+ this.data = {};
45
+ }
46
+ },
47
+ setDragImage() {
48
+ // no-op
49
+ },
50
+ dropEffect: 'none' as DataTransfer['dropEffect'],
51
+ effectAllowed: 'all' as DataTransfer['effectAllowed'],
52
+ files: [] as unknown as FileList,
53
+ items: [] as unknown as DataTransferItemList,
54
+ types: [] as string[],
55
+ };
56
+ return event.dataTransfer;
57
+ }
58
+ }
59
+
60
+ // Create a DataTransfer object to share between events
61
+ const dataTransfer = createDataTransfer();
62
+
63
+ // Dispatch dragstart on source
64
+ source.dispatchEvent(createDragEvent('dragstart', dataTransfer));
65
+
66
+ // Dispatch dragenter on target
67
+ target.dispatchEvent(createDragEvent('dragenter', dataTransfer));
68
+
69
+ // Dispatch dragover on target (required for drop to work)
70
+ const dragOverEvent = createDragEvent('dragover', dataTransfer);
71
+ target.dispatchEvent(dragOverEvent);
72
+
73
+ // Dispatch drop on target
74
+ target.dispatchEvent(createDragEvent('drop', dataTransfer));
75
+
76
+ // Dispatch dragend on source
77
+ source.dispatchEvent(createDragEvent('dragend', dataTransfer));
78
+ }
79
+ /* c8 ignore stop */
@@ -1,2 +1,3 @@
1
+ export * from './dragAndDrop';
1
2
  export * from './isVisible';
2
3
  export * from './rehydrate';
@@ -1,4 +1,4 @@
1
- /* eslint-disable unicorn/no-for-loop,unicorn/consistent-function-scoping */
1
+
2
2
  /* c8 ignore start */
3
3
  export function isVisible(domNode: HTMLElement): boolean {
4
4
 
@@ -1,7 +1,7 @@
1
- /* eslint-disable unicorn/consistent-function-scoping */
1
+
2
2
  // todo: instead of manually including isPlainObject, each script from web/lib/scripts should be pre-built and included in the global browser scope
3
3
  export function rehydrate(...result: [ { argsCount: number; refsCount: number }, ...any[] ]): Array<any> {
4
- function isPlainObject(v: unknown): v is object { // eslint-disable-line @typescript-eslint/ban-types
4
+ function isPlainObject(v: unknown): v is object {
5
5
  if (typeof v === 'object' && v !== null) {
6
6
  if (typeof Object.getPrototypeOf === 'function') {
7
7
  const proto = Object.getPrototypeOf(v);