1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.hover = hover;
|
7 | exports.unhover = unhover;
|
8 |
|
9 | var _dom = require("@testing-library/dom");
|
10 |
|
11 | var _utils = require("./utils");
|
12 |
|
13 |
|
14 | function getParentElements(element) {
|
15 | const parentElements = [element];
|
16 | let currentElement = element;
|
17 |
|
18 | while ((currentElement = currentElement.parentElement) != null) {
|
19 | parentElements.push(currentElement);
|
20 | }
|
21 |
|
22 | return parentElements;
|
23 | }
|
24 |
|
25 | function hover(element, init) {
|
26 | if ((0, _utils.isLabelWithInternallyDisabledControl)(element)) return;
|
27 | const parentElements = getParentElements(element).reverse();
|
28 |
|
29 | _dom.fireEvent.pointerOver(element, init);
|
30 |
|
31 | for (const el of parentElements) {
|
32 | _dom.fireEvent.pointerEnter(el, init);
|
33 | }
|
34 |
|
35 | if (!element.disabled) {
|
36 | _dom.fireEvent.mouseOver(element, (0, _utils.getMouseEventOptions)('mouseover', init));
|
37 |
|
38 | for (const el of parentElements) {
|
39 | _dom.fireEvent.mouseEnter(el, (0, _utils.getMouseEventOptions)('mouseenter', init));
|
40 | }
|
41 | }
|
42 |
|
43 | _dom.fireEvent.pointerMove(element, init);
|
44 |
|
45 | if (!element.disabled) {
|
46 | _dom.fireEvent.mouseMove(element, (0, _utils.getMouseEventOptions)('mousemove', init));
|
47 | }
|
48 | }
|
49 |
|
50 | function unhover(element, init) {
|
51 | if ((0, _utils.isLabelWithInternallyDisabledControl)(element)) return;
|
52 | const parentElements = getParentElements(element);
|
53 |
|
54 | _dom.fireEvent.pointerMove(element, init);
|
55 |
|
56 | if (!element.disabled) {
|
57 | _dom.fireEvent.mouseMove(element, (0, _utils.getMouseEventOptions)('mousemove', init));
|
58 | }
|
59 |
|
60 | _dom.fireEvent.pointerOut(element, init);
|
61 |
|
62 | for (const el of parentElements) {
|
63 | _dom.fireEvent.pointerLeave(el, init);
|
64 | }
|
65 |
|
66 | if (!element.disabled) {
|
67 | _dom.fireEvent.mouseOut(element, (0, _utils.getMouseEventOptions)('mouseout', init));
|
68 |
|
69 | for (const el of parentElements) {
|
70 | _dom.fireEvent.mouseLeave(el, (0, _utils.getMouseEventOptions)('mouseleave', init));
|
71 | }
|
72 | }
|
73 | } |
\ | No newline at end of file |