@augment-vir/web 31.23.3 → 31.23.4
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.
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Extracts the text content of the given element
|
|
2
|
+
* Extracts the text content of the given element.
|
|
3
3
|
*
|
|
4
4
|
* @category Web : Elements
|
|
5
5
|
* @category Package : @augment-vir/web
|
|
6
6
|
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
7
|
*/
|
|
8
|
-
export declare function extractElementText(element: Element
|
|
8
|
+
export declare function extractElementText(element: Readonly<Element>): string;
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Extracts the text content of the given element
|
|
2
|
+
* Extracts the text content of the given element.
|
|
3
3
|
*
|
|
4
4
|
* @category Web : Elements
|
|
5
5
|
* @category Package : @augment-vir/web
|
|
6
6
|
* @package [`@augment-vir/web`](https://www.npmjs.com/package/@augment-vir/web)
|
|
7
7
|
*/
|
|
8
8
|
export function extractElementText(element) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
else if (shadowRoot) {
|
|
16
|
-
return extractElementText(shadowRoot);
|
|
17
|
-
}
|
|
18
|
-
else if (value) {
|
|
19
|
-
return value;
|
|
9
|
+
return recursivelyExtractElementText(element).join('\n');
|
|
10
|
+
}
|
|
11
|
+
function recursivelyExtractElementText(node) {
|
|
12
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
13
|
+
const text = node.textContent?.trim();
|
|
14
|
+
return text ? [text] : [];
|
|
20
15
|
}
|
|
21
|
-
else {
|
|
22
|
-
|
|
16
|
+
else if (node.nodeType === Node.ELEMENT_NODE) {
|
|
17
|
+
const element = node;
|
|
18
|
+
if (element.tagName.toLowerCase() === 'slot') {
|
|
19
|
+
const slotElement = element;
|
|
20
|
+
const assignedNodes = slotElement.assignedNodes();
|
|
21
|
+
return (assignedNodes.length ? assignedNodes : Array.from(element.childNodes)).flatMap((assignedNode) => recursivelyExtractElementText(assignedNode));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return Array.from((element.shadowRoot || element).childNodes).flatMap((childNode) => recursivelyExtractElementText(childNode));
|
|
25
|
+
}
|
|
23
26
|
}
|
|
27
|
+
return [];
|
|
24
28
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@augment-vir/web",
|
|
3
|
-
"version": "31.23.
|
|
3
|
+
"version": "31.23.4",
|
|
4
4
|
"description": "A collection of augments, helpers types, functions, and classes only for web (frontend) JavaScript environments.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"augment",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"test:update": "npm test"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@augment-vir/assert": "^31.23.
|
|
40
|
-
"@augment-vir/common": "^31.23.
|
|
39
|
+
"@augment-vir/assert": "^31.23.4",
|
|
40
|
+
"@augment-vir/common": "^31.23.4",
|
|
41
41
|
"@date-vir/duration": "^7.3.1",
|
|
42
42
|
"html-spec-tags": "^2.2.3",
|
|
43
43
|
"type-fest": "^4.41.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@augment-vir/test": "^31.23.
|
|
46
|
+
"@augment-vir/test": "^31.23.4",
|
|
47
47
|
"bowser": "^2.11.0",
|
|
48
48
|
"typescript": "^5.8.3"
|
|
49
49
|
},
|