@thednp/shorty 2.0.4 → 2.0.6
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/README.md +5 -5
- package/dist/shorty.cjs +18 -1
- package/dist/shorty.cjs.map +1 -1
- package/dist/shorty.d.ts +31 -18
- package/dist/shorty.js +18 -1
- package/dist/shorty.js.map +1 -1
- package/dist/shorty.mjs +451 -386
- package/dist/shorty.mjs.map +1 -1
- package/dts.config.ts +1 -7
- package/package.json +16 -28
- package/src/attr/hasAttribute.ts +2 -1
- package/src/attr/hasAttributeNS.ts +5 -2
- package/src/attr/removeAttribute.ts +2 -1
- package/src/attr/removeAttributeNS.ts +5 -2
- package/src/attr/setAttributeNS.ts +6 -2
- package/src/boolean/isApple.ts +6 -4
- package/src/boolean/isFirefox.ts +2 -2
- package/src/boolean/isMobile.ts +4 -4
- package/src/boolean/support3DTransform.ts +4 -2
- package/src/boolean/supportAnimation.ts +4 -2
- package/src/boolean/supportPassive.ts +6 -6
- package/src/boolean/supportTouch.ts +3 -2
- package/src/boolean/supportTransform.ts +4 -2
- package/src/boolean/supportTransition.ts +4 -2
- package/src/event/off.ts +5 -1
- package/src/event/on.ts +5 -1
- package/src/event/one.ts +5 -5
- package/src/get/getBoundingClientRect.ts +10 -5
- package/src/get/getDocument.ts +4 -4
- package/src/get/getDocumentBody.ts +1 -1
- package/src/get/getDocumentElement.ts +1 -1
- package/src/get/getDocumentHead.ts +4 -2
- package/src/get/getElementAnimationDelay.ts +9 -6
- package/src/get/getElementAnimationDuration.ts +9 -6
- package/src/get/getElementStyle.ts +2 -2
- package/src/get/getElementTransitionDelay.ts +9 -8
- package/src/get/getElementTransitionDuration.ts +9 -8
- package/src/get/getNodeScroll.ts +4 -2
- package/src/get/getParentNode.ts +5 -5
- package/src/get/getRectRelativeToOffsetParent.ts +9 -6
- package/src/get/getUID.ts +1 -1
- package/src/get/getWindow.ts +2 -2
- package/src/index.ts +425 -415
- package/src/interface/event.d.ts +49 -41
- package/src/interface/fn.ts +1 -0
- package/src/interface/originalEvent.d.ts +1 -1
- package/src/is/isArray.ts +2 -1
- package/src/is/isCanvas.ts +2 -2
- package/src/is/isCustomElement.ts +5 -3
- package/src/is/isDocument.ts +3 -2
- package/src/is/isElement.ts +3 -2
- package/src/is/isElementInScrollRange.ts +3 -3
- package/src/is/isElementInViewport.ts +5 -4
- package/src/is/isElementsArray.ts +2 -2
- package/src/is/isFunction.ts +4 -2
- package/src/is/isHTMLCollection.ts +2 -2
- package/src/is/isHTMLElement.ts +1 -1
- package/src/is/isHTMLImageElement.ts +2 -2
- package/src/is/isJSON.ts +2 -2
- package/src/is/isMap.ts +3 -3
- package/src/is/isMedia.ts +9 -3
- package/src/is/isNode.ts +5 -3
- package/src/is/isNodeList.ts +2 -2
- package/src/is/isNumber.ts +2 -1
- package/src/is/isObject.ts +1 -1
- package/src/is/isRTL.ts +2 -2
- package/src/is/isSVGElement.ts +2 -2
- package/src/is/isScaledElement.ts +4 -3
- package/src/is/isShadowRoot.ts +2 -2
- package/src/is/isString.ts +2 -1
- package/src/is/isTableElement.ts +6 -3
- package/src/is/isWeakMap.ts +3 -3
- package/src/is/isWindow.ts +2 -2
- package/src/misc/Float32ArrayFrom.ts +3 -2
- package/src/misc/Float64ArrayFrom.ts +3 -2
- package/src/misc/ObjectAssign.ts +15 -4
- package/src/misc/ObjectEntries.ts +1 -1
- package/src/misc/ObjectHasOwn.ts +3 -2
- package/src/misc/ObjectKeys.ts +2 -1
- package/src/misc/ObjectValues.ts +3 -2
- package/src/misc/createCustomEvent.ts +8 -5
- package/src/misc/createElement.ts +6 -4
- package/src/misc/createElementNS.ts +3 -3
- package/src/misc/data.ts +4 -7
- package/src/misc/dispatchEvent.ts +2 -1
- package/src/misc/distinct.ts +2 -1
- package/src/misc/emulateAnimationEnd.ts +12 -9
- package/src/misc/emulateTransitionEnd.ts +11 -8
- package/src/misc/focus.ts +2 -1
- package/src/misc/focusTrap.ts +67 -0
- package/src/misc/getInstance.ts +1 -1
- package/src/misc/normalizeOptions.ts +16 -13
- package/src/misc/normalizeValue.ts +8 -6
- package/src/misc/setElementStyle.ts +9 -6
- package/src/misc/timer.ts +15 -8
- package/src/selectors/closest.ts +2 -2
- package/src/selectors/getCustomElements.ts +4 -5
- package/src/selectors/getElementById.ts +3 -3
- package/src/selectors/getElementsByClassName.ts +5 -5
- package/src/selectors/getElementsByTagName.ts +7 -5
- package/src/selectors/matches.ts +2 -1
- package/src/selectors/querySelector.ts +9 -6
- package/src/selectors/querySelectorAll.ts +6 -3
- package/src/strings/DOMContentLoadedEvent.ts +1 -1
- package/src/strings/DOMMouseScrollEvent.ts +1 -1
- package/src/strings/abortEvent.ts +1 -1
- package/src/strings/addEventListener.ts +1 -1
- package/src/strings/animationDelay.ts +1 -1
- package/src/strings/animationDuration.ts +1 -1
- package/src/strings/animationEndEvent.ts +1 -1
- package/src/strings/animationName.ts +1 -1
- package/src/strings/ariaChecked.ts +1 -1
- package/src/strings/ariaDescribedBy.ts +1 -1
- package/src/strings/ariaDescription.ts +1 -1
- package/src/strings/ariaExpanded.ts +1 -1
- package/src/strings/ariaHasPopup.ts +1 -1
- package/src/strings/ariaHidden.ts +1 -1
- package/src/strings/ariaLabel.ts +1 -1
- package/src/strings/ariaLabelledBy.ts +1 -1
- package/src/strings/ariaModal.ts +1 -1
- package/src/strings/ariaPressed.ts +1 -1
- package/src/strings/ariaSelected.ts +1 -1
- package/src/strings/ariaValueMax.ts +1 -1
- package/src/strings/ariaValueMin.ts +1 -1
- package/src/strings/ariaValueNow.ts +1 -1
- package/src/strings/ariaValueText.ts +1 -1
- package/src/strings/beforeunloadEvent.ts +1 -1
- package/src/strings/bezierEasings.ts +25 -25
- package/src/strings/blurEvent.ts +1 -1
- package/src/strings/changeEvent.ts +1 -1
- package/src/strings/contextmenuEvent.ts +1 -1
- package/src/strings/dragEvent.ts +1 -1
- package/src/strings/dragendEvent.ts +1 -1
- package/src/strings/dragenterEvent.ts +1 -1
- package/src/strings/dragleaveEvent.ts +1 -1
- package/src/strings/dragoverEvent.ts +1 -1
- package/src/strings/dragstartEvent.ts +1 -1
- package/src/strings/errorEvent.ts +1 -1
- package/src/strings/focusEvent.ts +1 -1
- package/src/strings/focusEvents.ts +1 -1
- package/src/strings/focusableSelector.ts +4 -0
- package/src/strings/focusinEvent.ts +1 -1
- package/src/strings/focusoutEvent.ts +1 -1
- package/src/strings/gesturechangeEvent.ts +1 -1
- package/src/strings/gestureendEvent.ts +1 -1
- package/src/strings/gesturestartEvent.ts +1 -1
- package/src/strings/keyAlt.ts +1 -1
- package/src/strings/keyArrowDown.ts +1 -1
- package/src/strings/keyArrowLeft.ts +1 -1
- package/src/strings/keyArrowRight.ts +1 -1
- package/src/strings/keyArrowUp.ts +1 -1
- package/src/strings/keyBackspace.ts +1 -1
- package/src/strings/keyCapsLock.ts +1 -1
- package/src/strings/keyControl.ts +1 -1
- package/src/strings/keyDelete.ts +1 -1
- package/src/strings/keyEnter.ts +1 -1
- package/src/strings/keyEscape.ts +1 -1
- package/src/strings/keyInsert.ts +1 -1
- package/src/strings/keyMeta.ts +1 -1
- package/src/strings/keyNumpadEnter.ts +1 -1
- package/src/strings/keyPause.ts +1 -1
- package/src/strings/keyScrollLock.ts +1 -1
- package/src/strings/keyShift.ts +1 -1
- package/src/strings/keySpace.ts +1 -1
- package/src/strings/keyTab.ts +1 -1
- package/src/strings/keyboardEventKeys.ts +19 -19
- package/src/strings/keydownEvent.ts +1 -1
- package/src/strings/keypressEvent.ts +1 -1
- package/src/strings/keyupEvent.ts +1 -1
- package/src/strings/loadEvent.ts +1 -1
- package/src/strings/loadstartEvent.ts +1 -1
- package/src/strings/mouseClickEvents.ts +1 -1
- package/src/strings/mouseHoverEvents.ts +3 -4
- package/src/strings/mouseSwipeEvents.ts +4 -4
- package/src/strings/mouseclickEvent.ts +1 -1
- package/src/strings/mousedblclickEvent.ts +1 -1
- package/src/strings/mousedownEvent.ts +1 -1
- package/src/strings/mouseenterEvent.ts +1 -1
- package/src/strings/mousehoverEvent.ts +1 -1
- package/src/strings/mouseinEvent.ts +1 -1
- package/src/strings/mouseleaveEvent.ts +1 -1
- package/src/strings/mousemoveEvent.ts +1 -1
- package/src/strings/mouseoutEvent.ts +1 -1
- package/src/strings/mouseoverEvent.ts +1 -1
- package/src/strings/mouseupEvent.ts +1 -1
- package/src/strings/mousewheelEvent.ts +1 -1
- package/src/strings/moveEvent.ts +1 -1
- package/src/strings/nativeEvents.ts +50 -50
- package/src/strings/offsetHeight.ts +1 -1
- package/src/strings/offsetWidth.ts +1 -1
- package/src/strings/orientationchangeEvent.ts +1 -1
- package/src/strings/pointercancelEvent.ts +1 -1
- package/src/strings/pointerdownEvent.ts +1 -1
- package/src/strings/pointerleaveEvent.ts +1 -1
- package/src/strings/pointermoveEvent.ts +1 -1
- package/src/strings/pointerupEvent.ts +1 -1
- package/src/strings/readystatechangeEvent.ts +1 -1
- package/src/strings/removeEventListener.ts +1 -1
- package/src/strings/resetEvent.ts +1 -1
- package/src/strings/resizeEvent.ts +1 -1
- package/src/strings/scrollEvent.ts +1 -1
- package/src/strings/scrollHeight.ts +1 -1
- package/src/strings/scrollWidth.ts +1 -1
- package/src/strings/selectEvent.ts +1 -1
- package/src/strings/selectendEvent.ts +1 -1
- package/src/strings/selectstartEvent.ts +1 -1
- package/src/strings/submitEvent.ts +1 -1
- package/src/strings/tabindex.ts +1 -1
- package/src/strings/touchEvents.ts +4 -4
- package/src/strings/touchcancelEvent.ts +1 -1
- package/src/strings/touchendEvent.ts +1 -1
- package/src/strings/touchmoveEvent.ts +1 -1
- package/src/strings/touchstartEvent.ts +1 -1
- package/src/strings/transitionDelay.ts +1 -1
- package/src/strings/transitionDuration.ts +1 -1
- package/src/strings/transitionEndEvent.ts +1 -1
- package/src/strings/transitionProperty.ts +1 -1
- package/src/strings/unloadEvent.ts +1 -1
- package/src/strings/userAgentData.ts +2 -2
- package/test/fixtures/getExampleDom.ts +12 -8
- package/test/is.test.ts +15 -11
- package/test/misc.test.ts +65 -17
- package/{vite.config.ts → vite.config.mts} +4 -8
- package/{vitest.config-ui.ts → vitest.config-ui.mts} +5 -0
- package/{vitest.config.ts → vitest.config.mts} +5 -0
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
const div = document.createElement('div');
|
|
3
|
-
div.className = 'm-4';
|
|
4
|
-
const tempDocument = new DOMParser().parseFromString(`
|
|
1
|
+
const markup = `<div class="p-5">
|
|
5
2
|
<div id="alertDemo" class="alert alert-warning alert-dismissible fade show" data-bs-op1="false" data-bs-op2="true" data-bs-op3="10" data-bs-title="" role="alert">
|
|
6
3
|
<button role="button" type="button" class="btn-close bg-none" data-bs-target="alertDemo" data-bs-dismiss="alert" aria-label="Close">
|
|
7
4
|
<svg viewBox="0 0 16 16" class="align-top">
|
|
@@ -10,6 +7,10 @@ export const getExampleDOM = () => {
|
|
|
10
7
|
</svg>
|
|
11
8
|
</button>
|
|
12
9
|
<p><b>Holy guacamole!</b> Best check yo self, you're not looking too good.</p>
|
|
10
|
+
<button class="btn btn-outline-secondary">
|
|
11
|
+
ReadMore
|
|
12
|
+
</button>
|
|
13
|
+
|
|
13
14
|
<img src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgODAgNDMiIHdpZHRoPSI4MCIgaGVpZ2h0PSI0MyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgICAgICAgICAgICAgICAgIDxyZWN0IGZpbGw9IndoaXRlIiBzdHJva2U9IiNjY2MiIHN0cm9rZS13aWR0aD0iMSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcng9IjUiPjwvcmVjdD4NCiAgICAgICAgICAgICAgICAgIDx0ZXh0IGRpcmVjdGlvbj0ibHRyIiBmaWxsPSIjMzMzIiB4PSIyNSIgeT0iMjUiIGZvbnQtc2l6ZT0iMTQiPklNRzwvdGV4dD4NCiAgICAgICAgICAgICAgICA8L3N2Zz4=" alt="Image">
|
|
14
15
|
</div>
|
|
15
16
|
<table class="table">
|
|
@@ -40,9 +41,12 @@ export const getExampleDOM = () => {
|
|
|
40
41
|
</tr>
|
|
41
42
|
</tbody>
|
|
42
43
|
</table>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
</div>
|
|
45
|
+
`;
|
|
46
|
+
|
|
47
|
+
export const getExampleDOM = () => {
|
|
48
|
+
const tempDocument = new DOMParser().parseFromString(markup, 'text/html');
|
|
49
|
+
const container = tempDocument.body.querySelector('div')!;
|
|
46
50
|
|
|
47
|
-
return
|
|
51
|
+
return container;
|
|
48
52
|
};
|
package/test/is.test.ts
CHANGED
|
@@ -8,13 +8,20 @@ import CustomElem from './fixtures/custom-elem';
|
|
|
8
8
|
describe('Shorty Library Tests - IS', () => {
|
|
9
9
|
const wrapper = document.createElement('div');
|
|
10
10
|
document.body.append(wrapper);
|
|
11
|
+
|
|
11
12
|
afterEach(async () => {
|
|
12
13
|
wrapper.innerHTML = '';
|
|
13
14
|
});
|
|
14
15
|
|
|
15
|
-
it('Test is folder', () => {
|
|
16
|
+
it('Test is folder', async () => {
|
|
17
|
+
vi.useFakeTimers();
|
|
16
18
|
const container = getExampleDOM();
|
|
19
|
+
const CE1 = new CustomElem();
|
|
20
|
+
CE1.className = 'btn btn-outline-primary';
|
|
21
|
+
CE1.style.transform = 'scale(1.01)';
|
|
22
|
+
container.append(CE1);
|
|
17
23
|
wrapper.append(container);
|
|
24
|
+
await vi.waitFor(() => container.querySelector('table'), 200);
|
|
18
25
|
const win = container.ownerDocument.defaultView!;
|
|
19
26
|
|
|
20
27
|
const {
|
|
@@ -51,15 +58,12 @@ describe('Shorty Library Tests - IS', () => {
|
|
|
51
58
|
} = SHORTY;
|
|
52
59
|
|
|
53
60
|
// const win = getWindow($element[0]);
|
|
54
|
-
|
|
55
|
-
CE1.className = 'btn btn-outline-primary';
|
|
56
|
-
CE1.style.transform = 'scale(1.01)';
|
|
57
|
-
document.body.append(CE1);
|
|
61
|
+
|
|
58
62
|
|
|
59
63
|
const element = querySelector('.alert', container)!;
|
|
60
64
|
const CE = querySelector('custom-elem', document) as HTMLElement;
|
|
61
65
|
CE.className = 'btn btn-outline-primary';
|
|
62
|
-
|
|
66
|
+
CE.style.transform = 'scale(1.01)';
|
|
63
67
|
// win.document.body.append(CE);
|
|
64
68
|
const img = querySelector('img', element);
|
|
65
69
|
const svg = querySelector('svg', element);
|
|
@@ -154,12 +158,12 @@ describe('Shorty Library Tests - IS', () => {
|
|
|
154
158
|
|
|
155
159
|
expect(isElementInScrollRange(), 'isElementInScrollRange()').to.be.false;
|
|
156
160
|
expect(isElementInScrollRange(win as any), 'isElementInScrollRange(window)').to.be.false;
|
|
157
|
-
expect(isElementInScrollRange(CE!), 'isElementInScrollRange(CustomElement)').to.be.
|
|
161
|
+
expect(isElementInScrollRange(CE!), 'isElementInScrollRange(CustomElement)').to.be.false;
|
|
158
162
|
expect(isElementInScrollRange(element), 'isElementInScrollRange(node)').to.be.true;
|
|
159
163
|
|
|
160
164
|
expect(isElementInViewport(), 'isElementInScrollRange()').to.be.false;
|
|
161
165
|
expect(isElementInViewport(win as any), 'isElementInScrollRange(window)').to.be.false;
|
|
162
|
-
expect(isElementInViewport(CE
|
|
166
|
+
expect(isElementInViewport(CE), 'isElementInViewport(CustomElement)').to.be.false;
|
|
163
167
|
expect(isElementInViewport(element), 'isElementInScrollRange(node)').to.be.true;
|
|
164
168
|
|
|
165
169
|
expect(isNode(), 'isNode()').to.be.false;
|
|
@@ -183,7 +187,7 @@ describe('Shorty Library Tests - IS', () => {
|
|
|
183
187
|
expect(isScaledElement(element), 'isScaledElement(node)').to.be.false;
|
|
184
188
|
expect(isScaledElement(win as any), 'isScaledElement(window)').to.be.false;
|
|
185
189
|
expect(isScaledElement(win.document as any), 'isScaledElement(document)').to.be.false;
|
|
186
|
-
expect(isScaledElement(CE
|
|
190
|
+
expect(isScaledElement(CE), 'isScaledElement(expected)').to.be.true;
|
|
187
191
|
|
|
188
192
|
expect(isSVGElement(), 'isSVGElement()').to.be.false;
|
|
189
193
|
expect(isSVGElement(element), 'isSVGElement(node)').to.be.false;
|
|
@@ -230,7 +234,7 @@ describe('Shorty Library Tests - IS', () => {
|
|
|
230
234
|
expect(isShadowRoot(element), 'isShadowRoot(element)').to.be.false;
|
|
231
235
|
expect(isShadowRoot(document), 'isShadowRoot(document)').to.be.false;
|
|
232
236
|
expect(isShadowRoot(CE!.shadowRoot), 'isShadowRoot(CustomElement.shadowRoot)').to.be.true;
|
|
233
|
-
|
|
234
|
-
|
|
237
|
+
}, 350);
|
|
238
|
+
vi.advanceTimersByTime(350)
|
|
235
239
|
});
|
|
236
240
|
});
|
package/test/misc.test.ts
CHANGED
|
@@ -6,13 +6,16 @@ import "./fixtures/style.css";
|
|
|
6
6
|
describe('Shorty Library Tests - MISC', () => {
|
|
7
7
|
const wrapper = document.createElement('div');
|
|
8
8
|
document.body.append(wrapper);
|
|
9
|
+
|
|
9
10
|
afterEach(async () => {
|
|
10
11
|
wrapper.innerHTML = '';
|
|
11
12
|
});
|
|
12
13
|
|
|
13
|
-
it('Test misc folder - emulateTransitionEnd - no transition', () => {
|
|
14
|
+
it('Test misc folder - emulateTransitionEnd - no transition', async () => {
|
|
15
|
+
vi.useFakeTimers();
|
|
14
16
|
const container = getExampleDOM();
|
|
15
17
|
wrapper.append(container);
|
|
18
|
+
await vi.waitFor(() => container.querySelector('.alert'), 200);
|
|
16
19
|
|
|
17
20
|
const {
|
|
18
21
|
dispatchEvent,
|
|
@@ -57,16 +60,18 @@ describe('Shorty Library Tests - MISC', () => {
|
|
|
57
60
|
dispatchEvent(el, alertHideEvent);
|
|
58
61
|
emulateTransitionEnd(el, function () {
|
|
59
62
|
addClass(el, 'show');
|
|
63
|
+
vi.advanceTimersByTime(350);
|
|
60
64
|
});
|
|
61
65
|
});
|
|
62
66
|
|
|
63
67
|
btn.click();
|
|
64
68
|
});
|
|
65
69
|
|
|
66
|
-
it('Test misc folder - emulateTransitionEnd - default', () => {
|
|
70
|
+
it('Test misc folder - emulateTransitionEnd - default', async () => {
|
|
67
71
|
vi.useFakeTimers();
|
|
68
72
|
const container = getExampleDOM();
|
|
69
73
|
wrapper.append(container);
|
|
74
|
+
await vi.waitFor(() => container.querySelector('.alert'), 200);
|
|
70
75
|
|
|
71
76
|
const {
|
|
72
77
|
dispatchEvent,
|
|
@@ -79,7 +84,7 @@ describe('Shorty Library Tests - MISC', () => {
|
|
|
79
84
|
one,
|
|
80
85
|
focus,
|
|
81
86
|
} = SHORTY;
|
|
82
|
-
|
|
87
|
+
|
|
83
88
|
const el = querySelector('.alert', container) as HTMLElement;
|
|
84
89
|
const btn = querySelector('.btn-close', el) as HTMLButtonElement;
|
|
85
90
|
const alertHideEvent = createCustomEvent('hide-alert', { relatedTarget: null });
|
|
@@ -99,62 +104,105 @@ describe('Shorty Library Tests - MISC', () => {
|
|
|
99
104
|
addClass(el, 'show');
|
|
100
105
|
focus(btn, { preventScroll: false });
|
|
101
106
|
console.log('transitionend triggered');
|
|
107
|
+
vi.advanceTimersByTime(350);
|
|
102
108
|
});
|
|
103
|
-
vi.advanceTimersByTime(350);
|
|
104
109
|
});
|
|
105
110
|
|
|
106
|
-
btn
|
|
111
|
+
btn.click();
|
|
112
|
+
});
|
|
107
113
|
|
|
114
|
+
it("Can use focus trap", async () => {
|
|
115
|
+
const container = getExampleDOM();
|
|
116
|
+
const { focus, toggleFocusTrap, focusableSelector } = SHORTY;
|
|
117
|
+
wrapper.append(container);
|
|
118
|
+
await vi.waitFor(() => container.querySelector('.alert'), 200);
|
|
119
|
+
const element = container.querySelector<HTMLElement>('.alert')!;
|
|
120
|
+
const firstFocusable = element.querySelector<SHORTY.FocusableElement>(focusableSelector)!;
|
|
121
|
+
const table = container.querySelector<HTMLElement>('table')!;
|
|
122
|
+
const doc = element.ownerDocument!;
|
|
123
|
+
|
|
124
|
+
focus(firstFocusable);
|
|
125
|
+
toggleFocusTrap(element);
|
|
126
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', shiftKey: true }));
|
|
127
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', shiftKey: true }));
|
|
128
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', shiftKey: true }));
|
|
129
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', shiftKey: true }));
|
|
130
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', shiftKey: true }));
|
|
131
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', }));
|
|
132
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', }));
|
|
133
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', }));
|
|
134
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', }));
|
|
135
|
+
element.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', key: 'Tab', }));
|
|
136
|
+
|
|
137
|
+
await vi.waitFor(() => {
|
|
138
|
+
expect(element).to.contain(doc.activeElement);
|
|
139
|
+
}, 50)
|
|
140
|
+
toggleFocusTrap(element);
|
|
141
|
+
|
|
142
|
+
toggleFocusTrap(table);
|
|
143
|
+
table.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab', shiftKey: true }));
|
|
144
|
+
table.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, code: 'Tab' }));
|
|
145
|
+
|
|
146
|
+
await vi.waitFor(() => {
|
|
147
|
+
expect(element).to.contain(doc.activeElement);
|
|
148
|
+
}, 50)
|
|
149
|
+
toggleFocusTrap(table);
|
|
108
150
|
});
|
|
109
151
|
|
|
110
152
|
it('Test misc folder - emulateAnimationEnd - default', async () => {
|
|
111
153
|
vi.useFakeTimers();
|
|
112
154
|
const container = getExampleDOM();
|
|
113
155
|
wrapper.append(container);
|
|
114
|
-
|
|
115
156
|
const { emulateAnimationEnd, getElementStyle, querySelector, addClass } = SHORTY;
|
|
157
|
+
await vi.waitFor(() => container.querySelector('.alert'), 200);
|
|
116
158
|
|
|
117
159
|
const el = querySelector('.alert') as HTMLElement;
|
|
118
160
|
|
|
119
161
|
addClass(el, 'animate-test');
|
|
120
162
|
emulateAnimationEnd(el, () => {
|
|
121
163
|
console.log('animationend fired - default');
|
|
164
|
+
vi.advanceTimersByTime(350);
|
|
165
|
+
});
|
|
166
|
+
await vi.waitFor(() => {
|
|
122
167
|
expect(getElementStyle(el, 'animationName'), 'animationName').to.equal('animate-test');
|
|
123
168
|
expect(getElementStyle(el, 'animationDuration'), 'animationDuration').to.equal('0.3s');
|
|
124
169
|
expect(getElementStyle(el, 'animationDelay'), 'animationDelay').to.equal('0s');
|
|
125
|
-
})
|
|
126
|
-
vi.advanceTimersByTime(350);
|
|
127
|
-
|
|
170
|
+
}, 351)
|
|
128
171
|
});
|
|
129
172
|
|
|
130
|
-
|
|
173
|
+
|
|
174
|
+
it('Test misc folder - emulateAnimationEnd - no duration', async () => {
|
|
175
|
+
vi.useFakeTimers();
|
|
131
176
|
const container = getExampleDOM();
|
|
132
177
|
wrapper.append(container);
|
|
178
|
+
await vi.waitFor(() => container.querySelector('.alert'), 200);
|
|
133
179
|
|
|
134
180
|
const { emulateAnimationEnd, setElementStyle, getElementStyle, querySelector, addClass } =
|
|
135
181
|
SHORTY;
|
|
136
182
|
|
|
137
183
|
const el = querySelector('.alert', container)!;
|
|
138
|
-
setElementStyle(el, { animationDuration: '0.1s' });
|
|
184
|
+
// setElementStyle(el, { animationDuration: '0.1s' });
|
|
185
|
+
setElementStyle(el, { animationDuration: '0s' });
|
|
139
186
|
|
|
140
187
|
addClass(el, 'animate-test');
|
|
141
188
|
|
|
142
|
-
|
|
143
189
|
emulateAnimationEnd(el, () => {
|
|
144
|
-
// await vi.waitUntil(() => {
|
|
145
190
|
console.log('animationend fired no duration');
|
|
191
|
+
vi.advanceTimersByTime(150);
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
await vi.waitFor(() => {
|
|
146
195
|
expect(getElementStyle(el, 'animationName'), 'animationName').to.equal('animate-test');
|
|
147
196
|
expect(getElementStyle(el, 'animationDuration'), 'animationDuration').to.equal('0s');
|
|
148
197
|
expect(getElementStyle(el, 'animationDelay'), 'animationDelay').to.equal('0s');
|
|
149
|
-
|
|
150
|
-
// }, { timeout: 150 })
|
|
151
|
-
});
|
|
198
|
+
}, 50)
|
|
152
199
|
|
|
153
200
|
});
|
|
154
201
|
|
|
155
|
-
it('Test misc folder - everything else', () => {
|
|
202
|
+
it('Test misc folder - everything else', async () => {
|
|
156
203
|
const container = getExampleDOM();
|
|
157
204
|
wrapper.append(container);
|
|
205
|
+
await vi.waitFor(() => container.querySelector('.alert'), 200);
|
|
158
206
|
|
|
159
207
|
const {
|
|
160
208
|
ArrayFrom,
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import { resolve } from 'path';
|
|
2
2
|
import { defineConfig } from 'vite';
|
|
3
|
-
import { name } from './package.json';
|
|
4
|
-
|
|
5
|
-
const getPackageName = () => {
|
|
6
|
-
return name.includes('@') ? name.split('/')[1] : name;
|
|
7
|
-
};
|
|
8
3
|
|
|
9
4
|
const NAME = 'SHORTY';
|
|
10
5
|
|
|
11
6
|
const fileName = {
|
|
12
|
-
es:
|
|
13
|
-
cjs:
|
|
14
|
-
iife:
|
|
7
|
+
es: `shorty.mjs`,
|
|
8
|
+
cjs: `shorty.cjs`,
|
|
9
|
+
iife: `shorty.js`,
|
|
15
10
|
};
|
|
16
11
|
|
|
17
12
|
export default defineConfig({
|
|
@@ -19,6 +14,7 @@ export default defineConfig({
|
|
|
19
14
|
build: {
|
|
20
15
|
emptyOutDir: true,
|
|
21
16
|
outDir: 'dist',
|
|
17
|
+
target: 'ESNext',
|
|
22
18
|
lib: {
|
|
23
19
|
entry: resolve(__dirname, 'src/index.ts'),
|
|
24
20
|
name: NAME,
|