@augment-vir/web 30.0.0 → 30.0.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/README.md +9 -0
- package/dist/augments/animation-frame.d.ts +8 -0
- package/dist/augments/animation-frame.js +8 -0
- package/dist/augments/elements/element-children.d.ts +8 -0
- package/dist/augments/elements/element-children.js +8 -0
- package/dist/augments/elements/element-focus.d.ts +7 -0
- package/dist/augments/elements/element-focus.js +7 -0
- package/dist/augments/elements/element-parent.d.ts +14 -0
- package/dist/augments/elements/element-parent.js +14 -0
- package/dist/augments/elements/element-position.d.ts +34 -1
- package/dist/augments/elements/element-position.js +34 -1
- package/dist/augments/elements/element-text.d.ts +7 -0
- package/dist/augments/elements/element-text.js +7 -0
- package/dist/augments/elements/element-visibility.d.ts +7 -1
- package/dist/augments/elements/element-visibility.js +7 -1
- package/dist/augments/{event-target.d.ts → elements/event-target.d.ts} +15 -0
- package/dist/augments/{event-target.js → elements/event-target.js} +15 -0
- package/dist/augments/elements/overflow.d.ts +8 -0
- package/dist/augments/elements/{overflow-parent.js → overflow.js} +8 -1
- package/dist/augments/{query-through-shadow.d.ts → elements/query-through-shadow.d.ts} +7 -0
- package/dist/augments/{query-through-shadow.js → elements/query-through-shadow.js} +8 -0
- package/dist/augments/elements/tag-or-definition.d.ts +4 -0
- package/dist/augments/elements/tag-or-definition.js +4 -0
- package/dist/augments/elements/text-dimensions.d.ts +8 -0
- package/dist/augments/elements/text-dimensions.js +8 -0
- package/dist/augments/image.d.ts +7 -0
- package/dist/augments/image.js +7 -0
- package/dist/augments/video.d.ts +7 -0
- package/dist/augments/video.js +7 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/package.json +14 -6
- package/dist/augments/elements/overflow-parent.d.ts +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# @augment-vir/web
|
|
2
|
+
|
|
3
|
+
A collection of augments, helpers types, functions, and classes only for web (frontend) JavaScript environments.
|
|
4
|
+
|
|
5
|
+
- Includes a `querySelector` implementation that works with Shadow DOM: [`queryThroughShadow`](https://electrovir.github.io/augment-vir/functions/queryThroughShadow.html).
|
|
6
|
+
- Includes an easy way to list all nested children of an element: [`getNestedChildren`](https://electrovir.github.io/augment-vir/functions/getNestedChildren.html).
|
|
7
|
+
- and much more!
|
|
8
|
+
|
|
9
|
+
See the docs under `Web`, `Web : Elements`, or `Package: @augment-vir/web` here: https://electrovir.github.io/augment-vir
|
|
@@ -1 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wait for an animation frame's duration. Optionally, wait for multiple frames by providing a
|
|
3
|
+
* `frameCount` input.
|
|
4
|
+
*
|
|
5
|
+
* @category Web
|
|
6
|
+
* @category Package : @augment-vir/web
|
|
7
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
8
|
+
*/
|
|
1
9
|
export declare function waitForAnimationFrame(frameCount?: number): Promise<void>;
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { DeferredPromise } from '@augment-vir/common';
|
|
2
|
+
/**
|
|
3
|
+
* Wait for an animation frame's duration. Optionally, wait for multiple frames by providing a
|
|
4
|
+
* `frameCount` input.
|
|
5
|
+
*
|
|
6
|
+
* @category Web
|
|
7
|
+
* @category Package : @augment-vir/web
|
|
8
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
9
|
+
*/
|
|
2
10
|
export async function waitForAnimationFrame(frameCount = 1) {
|
|
3
11
|
const deferredPromise = new DeferredPromise();
|
|
4
12
|
function requestNextFrame() {
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Optionally define a second "depth" input to control how far nestings should be pursued. Leave
|
|
8
8
|
* depth out or set it to undefined or any value <= 0 to allow full depth search.
|
|
9
|
+
*
|
|
10
|
+
* @category Web : Elements
|
|
11
|
+
* @category Package : @augment-vir/web
|
|
12
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
9
13
|
*/
|
|
10
14
|
export declare function getNestedChildren(startingElement: Readonly<Element>, depth?: number | undefined): Element[];
|
|
11
15
|
/**
|
|
@@ -15,5 +19,9 @@ export declare function getNestedChildren(startingElement: Readonly<Element>, de
|
|
|
15
19
|
*
|
|
16
20
|
* Note that that slotted elements and light dom elements will always be shown above shadow dom
|
|
17
21
|
* elements. Besides that, the order of children is preserved.
|
|
22
|
+
*
|
|
23
|
+
* @category Web : Elements
|
|
24
|
+
* @category Package : @augment-vir/web
|
|
25
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
18
26
|
*/
|
|
19
27
|
export declare function getDirectChildren(startingElement: Readonly<Element>): Element[];
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Optionally define a second "depth" input to control how far nestings should be pursued. Leave
|
|
8
8
|
* depth out or set it to undefined or any value <= 0 to allow full depth search.
|
|
9
|
+
*
|
|
10
|
+
* @category Web : Elements
|
|
11
|
+
* @category Package : @augment-vir/web
|
|
12
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
9
13
|
*/
|
|
10
14
|
export function getNestedChildren(startingElement, depth) {
|
|
11
15
|
return recursivelyGetNestedChildren(startingElement, depth ?? 0, 0);
|
|
@@ -30,6 +34,10 @@ function recursivelyGetNestedChildren(startingElement, maxDepth, currentDepth) {
|
|
|
30
34
|
*
|
|
31
35
|
* Note that that slotted elements and light dom elements will always be shown above shadow dom
|
|
32
36
|
* elements. Besides that, the order of children is preserved.
|
|
37
|
+
*
|
|
38
|
+
* @category Web : Elements
|
|
39
|
+
* @category Package : @augment-vir/web
|
|
40
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
33
41
|
*/
|
|
34
42
|
export function getDirectChildren(startingElement) {
|
|
35
43
|
return [
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects whether the given element is currently focused.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
1
8
|
export declare function isElementFocused(element: Element): boolean;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects whether the given element is currently focused.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
1
8
|
export function isElementFocused(element) {
|
|
2
9
|
return element.matches(':focus');
|
|
3
10
|
}
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the parent element of the current element, even if the current element is a `ShadowRoot`.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
1
8
|
export declare function getParentElement(element: Node): Element | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Recursively search for an ancestor of the starting element that passes the given callback.
|
|
11
|
+
*
|
|
12
|
+
* @category Web : Elements
|
|
13
|
+
* @category Package : @augment-vir/web
|
|
14
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
15
|
+
*/
|
|
2
16
|
export declare function findMatchingAncestor(start: Element, testParent: (parent: Element) => boolean): Element | undefined;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the parent element of the current element, even if the current element is a `ShadowRoot`.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
1
8
|
export function getParentElement(element) {
|
|
2
9
|
if (element instanceof ShadowRoot) {
|
|
3
10
|
return getParentElement(element.host);
|
|
@@ -13,6 +20,13 @@ export function getParentElement(element) {
|
|
|
13
20
|
return getParentElement(parentNode);
|
|
14
21
|
}
|
|
15
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Recursively search for an ancestor of the starting element that passes the given callback.
|
|
25
|
+
*
|
|
26
|
+
* @category Web : Elements
|
|
27
|
+
* @category Package : @augment-vir/web
|
|
28
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
29
|
+
*/
|
|
16
30
|
export function findMatchingAncestor(start, testParent) {
|
|
17
31
|
if (testParent(start)) {
|
|
18
32
|
return start;
|
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
import type { Coords } from '@augment-vir/common';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the current element is completely visible in its scroll view.
|
|
4
|
+
*
|
|
5
|
+
* @category Web : Elements
|
|
6
|
+
* @category Package : @augment-vir/web
|
|
7
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
8
|
+
*/
|
|
2
9
|
export declare function checkIfEntirelyInScrollView(element: Element): Promise<unknown>;
|
|
3
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Check if the given element is visible in its scroll container to the degree of the given ratio.
|
|
12
|
+
*
|
|
13
|
+
* @category Web : Elements
|
|
14
|
+
* @category Package : @augment-vir/web
|
|
15
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
16
|
+
*/
|
|
17
|
+
export declare function checkIfInScrollView(element: Element,
|
|
18
|
+
/** A number from 0-1, representing 0% to 100%. */
|
|
19
|
+
ratio: number): Promise<unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* Get the center of the current element. This is a relatively expensive operation as it uses
|
|
22
|
+
* [`.getBoundingClientRect()`](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
|
|
23
|
+
* so this should not be called excessively.
|
|
24
|
+
*
|
|
25
|
+
* @category Web : Elements
|
|
26
|
+
* @category Package : @augment-vir/web
|
|
27
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
28
|
+
*/
|
|
4
29
|
export declare function getCenterOfElement(element: Element): Coords;
|
|
30
|
+
/**
|
|
31
|
+
* Useful for debugging purposes, this sticks an absolutely positioned and brightly colored div at
|
|
32
|
+
* the given position.
|
|
33
|
+
*
|
|
34
|
+
* @category Web : Elements
|
|
35
|
+
* @category Package : @augment-vir/web
|
|
36
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
37
|
+
*/
|
|
5
38
|
export declare function appendPositionDebugDiv(position: Coords): HTMLDivElement;
|
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import { assert } from '@augment-vir/assert';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the current element is completely visible in its scroll view.
|
|
4
|
+
*
|
|
5
|
+
* @category Web : Elements
|
|
6
|
+
* @category Package : @augment-vir/web
|
|
7
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
8
|
+
*/
|
|
2
9
|
export async function checkIfEntirelyInScrollView(element) {
|
|
3
10
|
return checkIfInScrollView(element, 1);
|
|
4
11
|
}
|
|
5
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Check if the given element is visible in its scroll container to the degree of the given ratio.
|
|
14
|
+
*
|
|
15
|
+
* @category Web : Elements
|
|
16
|
+
* @category Package : @augment-vir/web
|
|
17
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
18
|
+
*/
|
|
19
|
+
export async function checkIfInScrollView(element,
|
|
20
|
+
/** A number from 0-1, representing 0% to 100%. */
|
|
21
|
+
ratio) {
|
|
6
22
|
return new Promise((resolve) => {
|
|
7
23
|
const observer = new IntersectionObserver((entries, observerItself) => {
|
|
8
24
|
assert.isLengthAtLeast(entries, 1);
|
|
@@ -12,6 +28,15 @@ export async function checkIfInScrollView(element, ratio) {
|
|
|
12
28
|
observer.observe(element);
|
|
13
29
|
});
|
|
14
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the center of the current element. This is a relatively expensive operation as it uses
|
|
33
|
+
* [`.getBoundingClientRect()`](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
|
|
34
|
+
* so this should not be called excessively.
|
|
35
|
+
*
|
|
36
|
+
* @category Web : Elements
|
|
37
|
+
* @category Package : @augment-vir/web
|
|
38
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
39
|
+
*/
|
|
15
40
|
export function getCenterOfElement(element) {
|
|
16
41
|
const rect = element.getBoundingClientRect();
|
|
17
42
|
return {
|
|
@@ -19,6 +44,14 @@ export function getCenterOfElement(element) {
|
|
|
19
44
|
y: Math.floor((rect.bottom + rect.top) / 2),
|
|
20
45
|
};
|
|
21
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Useful for debugging purposes, this sticks an absolutely positioned and brightly colored div at
|
|
49
|
+
* the given position.
|
|
50
|
+
*
|
|
51
|
+
* @category Web : Elements
|
|
52
|
+
* @category Package : @augment-vir/web
|
|
53
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
54
|
+
*/
|
|
22
55
|
export function appendPositionDebugDiv(position) {
|
|
23
56
|
const div = document.createElement('div');
|
|
24
57
|
div.classList.add('debug');
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts the text content of the given element or shadow root.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
1
8
|
export declare function extractElementText(element: Element | ShadowRoot): string;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts the text content of the given element or shadow root.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
1
8
|
export function extractElementText(element) {
|
|
2
9
|
const value = element.value;
|
|
3
10
|
const shadowRoot = element.shadowRoot;
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Detects `display: none` and only works if the element does not have `position: fixed;`.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
2
8
|
export declare function isElementVisible(element: HTMLElement): boolean;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Detects `display: none` and only works if the element does not have `position: fixed;`.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
2
8
|
export function isElementVisible(element) {
|
|
3
9
|
// https://stackoverflow.com/a/21696585
|
|
4
10
|
return element.offsetParent !== null;
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import { PartialWithUndefined } from '@augment-vir/common';
|
|
2
2
|
import { Constructor } from 'type-fest';
|
|
3
|
+
/**
|
|
4
|
+
* Extract the event target element from an Event.
|
|
5
|
+
*
|
|
6
|
+
* @category Web : Elements
|
|
7
|
+
* @category Package : @augment-vir/web
|
|
8
|
+
* @example
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* element.addEventListener('click', (event) => {
|
|
12
|
+
* const eventTarget = extractEventTarget(event, HTMLButtonElement);
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
17
|
+
*/
|
|
3
18
|
export declare function extractEventTarget<ExpectedTargetClassConstructor extends Constructor<Element>>(event: Event, expectedTargetClass: ExpectedTargetClassConstructor, options?: PartialWithUndefined<{
|
|
4
19
|
/**
|
|
5
20
|
* By default `extractEventTarget` uses the `Event.currentTarget` field to extract the event
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract the event target element from an Event.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* element.addEventListener('click', (event) => {
|
|
10
|
+
* const eventTarget = extractEventTarget(event, HTMLButtonElement);
|
|
11
|
+
* });
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
15
|
+
*/
|
|
1
16
|
export function extractEventTarget(event, expectedTargetClass, options = {}) {
|
|
2
17
|
const target = options.useOriginalTarget ? event.target : event.currentTarget;
|
|
3
18
|
if (!(target instanceof expectedTargetClass)) {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finds the given element's ancestor which allows Y overflow.
|
|
3
|
+
*
|
|
4
|
+
* @category Web : Elements
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
8
|
+
export declare function findOverflowAncestor(start: Element): Element;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { findMatchingAncestor, getParentElement } from './element-parent.js';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Finds the given element's ancestor which allows Y overflow.
|
|
4
|
+
*
|
|
5
|
+
* @category Web : Elements
|
|
6
|
+
* @category Package : @augment-vir/web
|
|
7
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
8
|
+
*/
|
|
9
|
+
export function findOverflowAncestor(start) {
|
|
3
10
|
const parentElement = getParentElement(start);
|
|
4
11
|
return ((parentElement &&
|
|
5
12
|
findMatchingAncestor(parentElement, (element) => {
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { PartialWithUndefined } from '@augment-vir/common';
|
|
2
|
+
/**
|
|
3
|
+
* Options for {@link queryThroughShadow}.
|
|
4
|
+
*
|
|
5
|
+
* @category Web : Elements
|
|
6
|
+
* @category Package : @augment-vir/web
|
|
7
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
8
|
+
*/
|
|
2
9
|
export type QueryThroughShadowOptions = PartialWithUndefined<{
|
|
3
10
|
all: boolean;
|
|
4
11
|
}>;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { check } from '@augment-vir/assert';
|
|
2
2
|
import { stringify } from '@augment-vir/core';
|
|
3
|
+
/**
|
|
4
|
+
* Perform [`.querySelector()`](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
|
|
5
|
+
* on the given element with support for elements that contain an open Shadow Root.
|
|
6
|
+
*
|
|
7
|
+
* @category Web : Elements
|
|
8
|
+
* @category Package : @augment-vir/web
|
|
9
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
10
|
+
*/
|
|
3
11
|
export function queryThroughShadow(element, rawQuery, options) {
|
|
4
12
|
if (!rawQuery) {
|
|
5
13
|
if (element instanceof Element) {
|
|
@@ -4,5 +4,9 @@ import { SpecTagName } from 'html-spec-tags';
|
|
|
4
4
|
* Reduce an element down to its tag name or its element definition if it's a custom element defined
|
|
5
5
|
* by element-vir. Note that the types for this won't work in your project if you use custom element
|
|
6
6
|
* tag names that aren't generated via element-vir.
|
|
7
|
+
*
|
|
8
|
+
* @category Web : Elements
|
|
9
|
+
* @category Package : @augment-vir/web
|
|
10
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
11
|
*/
|
|
8
12
|
export declare function toTagOrDefinition(element: Element): DeclarativeElementDefinition | SpecTagName;
|
|
@@ -4,6 +4,10 @@ import { ensureSpecTagName } from 'html-spec-tags';
|
|
|
4
4
|
* Reduce an element down to its tag name or its element definition if it's a custom element defined
|
|
5
5
|
* by element-vir. Note that the types for this won't work in your project if you use custom element
|
|
6
6
|
* tag names that aren't generated via element-vir.
|
|
7
|
+
*
|
|
8
|
+
* @category Web : Elements
|
|
9
|
+
* @category Package : @augment-vir/web
|
|
10
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
11
|
*/
|
|
8
12
|
export function toTagOrDefinition(element) {
|
|
9
13
|
if (element instanceof DeclarativeElement) {
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { Dimensions, type PartialWithUndefined } from '@augment-vir/common';
|
|
2
2
|
import type { AnyDuration } from '@date-vir/duration';
|
|
3
|
+
/**
|
|
4
|
+
* Calculate the dimensions needed for an element's text. This is a relatively expensive operation,
|
|
5
|
+
* so it should not be called excessively.
|
|
6
|
+
*
|
|
7
|
+
* @category Web : Elements
|
|
8
|
+
* @category Package : @augment-vir/web
|
|
9
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
10
|
+
*/
|
|
3
11
|
export declare function calculateTextDimensions(parentElement: Element, text: string, customOptions?: PartialWithUndefined<{
|
|
4
12
|
timeout: AnyDuration;
|
|
5
13
|
errorMessage: string;
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { waitUntil } from '@augment-vir/assert';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate the dimensions needed for an element's text. This is a relatively expensive operation,
|
|
4
|
+
* so it should not be called excessively.
|
|
5
|
+
*
|
|
6
|
+
* @category Web : Elements
|
|
7
|
+
* @category Package : @augment-vir/web
|
|
8
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
9
|
+
*/
|
|
2
10
|
export async function calculateTextDimensions(parentElement, text, customOptions) {
|
|
3
11
|
if (!text) {
|
|
4
12
|
return {
|
package/dist/augments/image.d.ts
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load an image from a URL and wait for it to be totally loaded.
|
|
3
|
+
*
|
|
4
|
+
* @category Web
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
1
8
|
export declare function loadImage(imageUrl: string): Promise<HTMLImageElement>;
|
package/dist/augments/image.js
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { DeferredPromise } from '@augment-vir/common';
|
|
2
|
+
/**
|
|
3
|
+
* Load an image from a URL and wait for it to be totally loaded.
|
|
4
|
+
*
|
|
5
|
+
* @category Web
|
|
6
|
+
* @category Package : @augment-vir/web
|
|
7
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
8
|
+
*/
|
|
2
9
|
export async function loadImage(imageUrl) {
|
|
3
10
|
const deferredPromise = new DeferredPromise();
|
|
4
11
|
const newImage = new Image();
|
package/dist/augments/video.d.ts
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load a video from a URL and wait for it to be totally loaded.
|
|
3
|
+
*
|
|
4
|
+
* @category Web
|
|
5
|
+
* @category Package : @augment-vir/web
|
|
6
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
|
+
*/
|
|
1
8
|
export declare function loadVideo(videoUrl: string): Promise<HTMLVideoElement>;
|
package/dist/augments/video.js
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { DeferredPromise } from '@augment-vir/common';
|
|
2
|
+
/**
|
|
3
|
+
* Load a video from a URL and wait for it to be totally loaded.
|
|
4
|
+
*
|
|
5
|
+
* @category Web
|
|
6
|
+
* @category Package : @augment-vir/web
|
|
7
|
+
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
8
|
+
*/
|
|
2
9
|
export async function loadVideo(videoUrl) {
|
|
3
10
|
const deferredPromise = new DeferredPromise();
|
|
4
11
|
const videoElement = document.createElement('video');
|
package/dist/index.d.ts
CHANGED
|
@@ -5,10 +5,10 @@ export * from './augments/elements/element-parent.js';
|
|
|
5
5
|
export * from './augments/elements/element-position.js';
|
|
6
6
|
export * from './augments/elements/element-text.js';
|
|
7
7
|
export * from './augments/elements/element-visibility.js';
|
|
8
|
-
export * from './augments/elements/
|
|
8
|
+
export * from './augments/elements/event-target.js';
|
|
9
|
+
export * from './augments/elements/overflow.js';
|
|
10
|
+
export * from './augments/elements/query-through-shadow.js';
|
|
9
11
|
export * from './augments/elements/tag-or-definition.js';
|
|
10
12
|
export * from './augments/elements/text-dimensions.js';
|
|
11
|
-
export * from './augments/event-target.js';
|
|
12
13
|
export * from './augments/image.js';
|
|
13
|
-
export * from './augments/query-through-shadow.js';
|
|
14
14
|
export * from './augments/video.js';
|
package/dist/index.js
CHANGED
|
@@ -5,10 +5,10 @@ export * from './augments/elements/element-parent.js';
|
|
|
5
5
|
export * from './augments/elements/element-position.js';
|
|
6
6
|
export * from './augments/elements/element-text.js';
|
|
7
7
|
export * from './augments/elements/element-visibility.js';
|
|
8
|
-
export * from './augments/elements/
|
|
8
|
+
export * from './augments/elements/event-target.js';
|
|
9
|
+
export * from './augments/elements/overflow.js';
|
|
10
|
+
export * from './augments/elements/query-through-shadow.js';
|
|
9
11
|
export * from './augments/elements/tag-or-definition.js';
|
|
10
12
|
export * from './augments/elements/text-dimensions.js';
|
|
11
|
-
export * from './augments/event-target.js';
|
|
12
13
|
export * from './augments/image.js';
|
|
13
|
-
export * from './augments/query-through-shadow.js';
|
|
14
14
|
export * from './augments/video.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@augment-vir/web",
|
|
3
|
-
"version": "30.0.
|
|
3
|
+
"version": "30.0.1",
|
|
4
|
+
"description": "A collection of augments, helpers types, functions, and classes only for web (frontend) JavaScript environments.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"augment",
|
|
7
|
+
"helper",
|
|
8
|
+
"util",
|
|
9
|
+
"browser",
|
|
10
|
+
"frontend",
|
|
11
|
+
"vir",
|
|
12
|
+
"augment-vir"
|
|
13
|
+
],
|
|
4
14
|
"homepage": "https://github.com/electrovir/augment-vir",
|
|
5
15
|
"bugs": {
|
|
6
16
|
"url": "https://github.com/electrovir/augment-vir/issues"
|
|
@@ -20,21 +30,19 @@
|
|
|
20
30
|
"types": "dist/index.d.ts",
|
|
21
31
|
"scripts": {
|
|
22
32
|
"compile": "virmator compile",
|
|
23
|
-
"docs": "virmator docs",
|
|
24
33
|
"test": "virmator --no-deps test web",
|
|
25
34
|
"test:coverage": "virmator --no-deps test web coverage",
|
|
26
|
-
"test:docs": "virmator docs check",
|
|
27
35
|
"test:update": "npm test"
|
|
28
36
|
},
|
|
29
37
|
"dependencies": {
|
|
30
|
-
"@augment-vir/assert": "^30.0.
|
|
31
|
-
"@augment-vir/common": "^30.0.
|
|
38
|
+
"@augment-vir/assert": "^30.0.1",
|
|
39
|
+
"@augment-vir/common": "^30.0.1",
|
|
32
40
|
"@date-vir/duration": "^6.0.0",
|
|
33
41
|
"html-spec-tags": "^2.2.0",
|
|
34
42
|
"type-fest": "^4.25.0"
|
|
35
43
|
},
|
|
36
44
|
"devDependencies": {
|
|
37
|
-
"@augment-vir/test": "^30.0.
|
|
45
|
+
"@augment-vir/test": "^30.0.1",
|
|
38
46
|
"typescript": "^5.5.4"
|
|
39
47
|
},
|
|
40
48
|
"peerDependencies": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function findOverflowParent(start: Element): Element;
|