jtlt 0.6.0 → 0.7.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/CHANGES.md +8 -0
- package/dist/DOMJoiningTransformer.d.ts +8 -0
- package/dist/DOMJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONJoiningTransformer.d.ts +8 -0
- package/dist/JSONJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformerContext.d.ts +27 -1
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/StringJoiningTransformer.d.ts +8 -0
- package/dist/StringJoiningTransformer.d.ts.map +1 -1
- package/dist/XPathTransformerContext.d.ts +38 -0
- package/dist/XPathTransformerContext.d.ts.map +1 -1
- package/docs/TO-DO.md +2 -2
- package/package.json +1 -1
- package/src/DOMJoiningTransformer.js +16 -4
- package/src/JSONJoiningTransformer.js +15 -3
- package/src/JSONPathTransformerContext.js +60 -4
- package/src/StringJoiningTransformer.js +20 -7
- package/src/XPathTransformerContext.js +132 -6
package/CHANGES.md
CHANGED
|
@@ -22,6 +22,8 @@ declare class DOMJoiningTransformer extends AbstractJoiningTransformer<"dom"> {
|
|
|
22
22
|
*/
|
|
23
23
|
constructor(o: DocumentFragment | Element, cfg: import("./AbstractJoiningTransformer.js").DOMJoiningTransformerConfig);
|
|
24
24
|
_dom: Element | DocumentFragment;
|
|
25
|
+
/** @type {any} */
|
|
26
|
+
_context: any;
|
|
25
27
|
/** @type {XMLDocument[]} */
|
|
26
28
|
_docs: XMLDocument[];
|
|
27
29
|
/** @type {Array<{href: string, document: XMLDocument, format?: string}>} */
|
|
@@ -37,6 +39,12 @@ declare class DOMJoiningTransformer extends AbstractJoiningTransformer<"dom"> {
|
|
|
37
39
|
* @returns {void}
|
|
38
40
|
*/
|
|
39
41
|
rawAppend(item: Node): void;
|
|
42
|
+
/**
|
|
43
|
+
* Set the transformer context for callback invocations.
|
|
44
|
+
* @param {any} context - The transformer context object
|
|
45
|
+
* @returns {DOMJoiningTransformer}
|
|
46
|
+
*/
|
|
47
|
+
setContext(context: any): DOMJoiningTransformer;
|
|
40
48
|
/**
|
|
41
49
|
* @param {string|Node} item - Item to append
|
|
42
50
|
* @returns {void}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DOMJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/DOMJoiningTransformer.js"],"names":[],"mappings":";8DAMa,IAAI;AAHjB;;;;GAIG;AAEH;;;;;;;;GAQG;AACH;IACE;;;;OAIG;IACH,eAJW,gBAAgB,GAAC,OAAO,OACxB,OAAO,iCAAiC,EAC9C,2BAA2B,
|
|
1
|
+
{"version":3,"file":"DOMJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/DOMJoiningTransformer.js"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,8 @@ declare class JSONJoiningTransformer extends AbstractJoiningTransformer<"json">
|
|
|
66
66
|
constructor(o?: any[] | Record<string, unknown>, cfg?: import("./AbstractJoiningTransformer.js").JSONJoiningTransformerConfig);
|
|
67
67
|
/** @type {any[]|Record<string, unknown>} */
|
|
68
68
|
_obj: any[] | Record<string, unknown>;
|
|
69
|
+
/** @type {any} */
|
|
70
|
+
_context: any;
|
|
69
71
|
/** @type {boolean | undefined} */
|
|
70
72
|
_objPropState: boolean | undefined;
|
|
71
73
|
/** @type {boolean | undefined} */
|
|
@@ -88,6 +90,12 @@ declare class JSONJoiningTransformer extends AbstractJoiningTransformer<"json">
|
|
|
88
90
|
* @returns {void}
|
|
89
91
|
*/
|
|
90
92
|
rawAppend(item: any): void;
|
|
93
|
+
/**
|
|
94
|
+
* Set the transformer context for callback invocations.
|
|
95
|
+
* @param {any} context - The transformer context object
|
|
96
|
+
* @returns {JSONJoiningTransformer}
|
|
97
|
+
*/
|
|
98
|
+
setContext(context: any): JSONJoiningTransformer;
|
|
91
99
|
/**
|
|
92
100
|
* Appends an item to the current object or array.
|
|
93
101
|
* @param {any} item - Item to append
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/JSONJoiningTransformer.js"],"names":[],"mappings":";iEAeW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACrB,IAAI;gEAKN,GAAG,EAAE,KACH,IAAI;2BAGH,CAAC,wLAKF,IAAI;;;;;gCAMJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CACxB;0BAIS;IACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB;AAlCJ;;;;;GAKG;AACH;;;;;GAKG;AACH;;;;;;;GAOG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH;IACE;;;;OAIG;IACH,gBAJW,GAAG,EAAE,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAC7B,OAAO,iCAAiC,EAC9C,4BAA4B,
|
|
1
|
+
{"version":3,"file":"JSONJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/JSONJoiningTransformer.js"],"names":[],"mappings":"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"}
|
|
@@ -212,11 +212,21 @@ declare class JSONPathTransformerContext<T = "json"> {
|
|
|
212
212
|
_currPath: string | undefined;
|
|
213
213
|
/** @type {Record<string, any> | undefined} */
|
|
214
214
|
_params: Record<string, any> | undefined;
|
|
215
|
+
/** @type {string[]} */
|
|
216
|
+
_preserveSpaceElements: string[];
|
|
217
|
+
/** @type {string[]} */
|
|
218
|
+
_stripSpaceElements: string[];
|
|
215
219
|
/**
|
|
216
220
|
* Triggers an error if equal priority templates are found.
|
|
217
221
|
* @returns {void}
|
|
218
222
|
*/
|
|
219
223
|
_triggerEqualPriorityError(): void;
|
|
224
|
+
/**
|
|
225
|
+
* Check if whitespace should be stripped for a given element name.
|
|
226
|
+
* @param {string} elementName - The element name to check
|
|
227
|
+
* @returns {boolean}
|
|
228
|
+
*/
|
|
229
|
+
_shouldStripSpace(elementName: string): boolean;
|
|
220
230
|
/**
|
|
221
231
|
* Gets the joining transformer from config.
|
|
222
232
|
* @returns {T extends "json" ? import('./JSONJoiningTransformer.js').
|
|
@@ -460,6 +470,20 @@ declare class JSONPathTransformerContext<T = "json"> {
|
|
|
460
470
|
* @returns {this}
|
|
461
471
|
*/
|
|
462
472
|
mapEntry(prop: string, val: any): this;
|
|
473
|
+
/**
|
|
474
|
+
* Declare elements for which whitespace-only text nodes should be preserved.
|
|
475
|
+
* Equivalent to xsl:preserve-space.
|
|
476
|
+
* @param {string|string[]} elements - Element name(s) or patterns
|
|
477
|
+
* @returns {this}
|
|
478
|
+
*/
|
|
479
|
+
preserveSpace(elements: string | string[]): this;
|
|
480
|
+
/**
|
|
481
|
+
* Declare elements for which whitespace-only text nodes should be stripped.
|
|
482
|
+
* Equivalent to xsl:strip-space.
|
|
483
|
+
* @param {string|string[]} elements - Element name(s) or patterns
|
|
484
|
+
* @returns {this}
|
|
485
|
+
*/
|
|
486
|
+
stripSpace(elements: string | string[]): this;
|
|
463
487
|
/**
|
|
464
488
|
* Build an object. Mirrors the joining transformer API. All joiners now
|
|
465
489
|
* support both signatures: (obj, cb, usePropertySets, propSets) with seed
|
|
@@ -536,9 +560,11 @@ declare class JSONPathTransformerContext<T = "json"> {
|
|
|
536
560
|
* transformer API so templates can call `this.attribute()`.
|
|
537
561
|
* @param {string} name - Attribute name
|
|
538
562
|
* @param {string|Record<string, unknown>} val - Attribute value
|
|
563
|
+
* @param {boolean} [avoid] - Avoid attribute escaping
|
|
564
|
+
* (StringJoiningTransformer only)
|
|
539
565
|
* @returns {this}
|
|
540
566
|
*/
|
|
541
|
-
attribute(name: string, val: string | Record<string, unknown
|
|
567
|
+
attribute(name: string, val: string | Record<string, unknown>, avoid?: boolean): this;
|
|
542
568
|
/**
|
|
543
569
|
* Append text content. Mirrors the joining transformer API so templates can
|
|
544
570
|
* call `this.text()`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/JSONPathTransformerContext.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAoBa,MAAM,GAAC,MAAM,GAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;;;;yBAKS;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,GAAC,QAAQ,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;;;;6BACS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAC/B,GAAG,EAAE,0BAA0B,KAC5B,MAAM;;;;uBACD,MAAM,GAAG,UAAU,GAAG,cAAc,GAC5C,KAAK,CAAC,MAAM,GAAC,UAAU,CAAC;6CAIf,CAAC;;;;UAED,IAAI,GAAC,OAAO,GAAC,MAAM,GAAC,MAAM,GAAC,MAAM;;;;;;;;;;;;;;;;;wBAKjC,CAAC,SAAS,MAAM,GAAG,OAAO,6BAA6B,EAChE,OAAO,GAAG,CAAC,SAAS,QAAQ,GAAG,OAAO,+BAA+B,EACrE,OAAO,GAAG,OAAO,4BAA4B,EAC7C,OAAO;;;;;;;;;0CAGS,MAAM,KAAK,MAAM;eAExB,OAAO,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE;;AA7D9D;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;GAQG;AACH,yCAFc,CAAC;IAQb;;;;OAIG;IACH,oBAJW,gCAAgC,CAAC,CAAC,CAAC,aACnC,OAAO,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"JSONPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/JSONPathTransformerContext.js"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,8 @@ declare class StringJoiningTransformer extends AbstractJoiningTransformer<"strin
|
|
|
69
69
|
constructor(s: string, cfg?: import("./AbstractJoiningTransformer.js").StringJoiningTransformerConfig);
|
|
70
70
|
_str: string;
|
|
71
71
|
/** @type {any} */
|
|
72
|
+
_context: any;
|
|
73
|
+
/** @type {any} */
|
|
72
74
|
_objPropTemp: any;
|
|
73
75
|
/** @type {boolean | undefined} */
|
|
74
76
|
propOnlyState: boolean | undefined;
|
|
@@ -94,6 +96,12 @@ declare class StringJoiningTransformer extends AbstractJoiningTransformer<"strin
|
|
|
94
96
|
document: string;
|
|
95
97
|
format?: string;
|
|
96
98
|
}>;
|
|
99
|
+
/**
|
|
100
|
+
* Set the transformer context for callback invocations.
|
|
101
|
+
* @param {any} context - The transformer context object
|
|
102
|
+
* @returns {StringJoiningTransformer}
|
|
103
|
+
*/
|
|
104
|
+
setContext(context: any): StringJoiningTransformer;
|
|
97
105
|
/**
|
|
98
106
|
* @param {string|any} s - String or value to append
|
|
99
107
|
* @returns {StringJoiningTransformer}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/StringJoiningTransformer.js"],"names":[],"mappings":";2BAKa;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,GAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAC,OAAO,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC5B;iEAMS,IAAI;;;;;gCAyBJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7B;AANJ;;;;;;;GAOG;AAEH;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;IACE;;;;OAIG;IACH,eAJW,MAAM,QACN,OAAO,iCAAiC,EAC9C,8BAA8B,
|
|
1
|
+
{"version":3,"file":"StringJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/StringJoiningTransformer.js"],"names":[],"mappings":"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"}
|
|
@@ -109,8 +109,31 @@ declare class XPathTransformerContext {
|
|
|
109
109
|
_currPath: string | undefined;
|
|
110
110
|
/** @type {Record<string, any> | undefined} */
|
|
111
111
|
_params: Record<string, any> | undefined;
|
|
112
|
+
/** @type {string[]} */
|
|
113
|
+
_preserveSpaceElements: string[];
|
|
114
|
+
/** @type {string[]} */
|
|
115
|
+
_stripSpaceElements: string[];
|
|
112
116
|
/** @returns {import('./index.js').JoiningTransformer} */
|
|
113
117
|
_getJoiningTransformer(): import("./index.js").JoiningTransformer;
|
|
118
|
+
/**
|
|
119
|
+
* Check if whitespace should be stripped for a given element.
|
|
120
|
+
* @param {Node} node - The node to check
|
|
121
|
+
* @returns {boolean}
|
|
122
|
+
*/
|
|
123
|
+
_shouldStripSpace(node: Node): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Clone the DOM and strip whitespace-only text nodes from elements
|
|
126
|
+
* marked for stripping.
|
|
127
|
+
* @param {Node} node - The node to clone
|
|
128
|
+
* @returns {Node} The cloned node with whitespace stripped
|
|
129
|
+
*/
|
|
130
|
+
_cloneAndStripWhitespace(node: Node): Node;
|
|
131
|
+
/**
|
|
132
|
+
* Apply whitespace stripping to the context node based on strip-space
|
|
133
|
+
* declarations. This clones the DOM and updates the context.
|
|
134
|
+
* @returns {this}
|
|
135
|
+
*/
|
|
136
|
+
applyWhitespaceStripping(): this;
|
|
114
137
|
/**
|
|
115
138
|
* Evaluate an XPath expression against the current context node.
|
|
116
139
|
* @param {string} expr - XPath expression
|
|
@@ -327,6 +350,21 @@ declare class XPathTransformerContext {
|
|
|
327
350
|
* @returns {XPathTransformerContext}
|
|
328
351
|
*/
|
|
329
352
|
mapEntry(prop: string, val: any): XPathTransformerContext;
|
|
353
|
+
/**
|
|
354
|
+
* Declare elements for which whitespace-only text nodes should be preserved.
|
|
355
|
+
* Equivalent to xsl:preserve-space.
|
|
356
|
+
* @param {string|string[]} elements - Element name(s) or patterns
|
|
357
|
+
* @returns {XPathTransformerContext}
|
|
358
|
+
*/
|
|
359
|
+
preserveSpace(elements: string | string[]): XPathTransformerContext;
|
|
360
|
+
/**
|
|
361
|
+
* Declare elements for which whitespace-only text nodes should be stripped.
|
|
362
|
+
* Equivalent to xsl:strip-space.
|
|
363
|
+
* This automatically clones the DOM and removes whitespace-only text nodes.
|
|
364
|
+
* @param {string|string[]} elements - Element name(s) or patterns
|
|
365
|
+
* @returns {XPathTransformerContext}
|
|
366
|
+
*/
|
|
367
|
+
stripSpace(elements: string | string[]): XPathTransformerContext;
|
|
330
368
|
/**
|
|
331
369
|
* Append object.
|
|
332
370
|
* @param {Record<string, unknown>|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":";;;;;WAOc,OAAO;;;;;;;;wBAEP,OAAO,YAAY,EAC5B,kBAAkB;;0CAEF,MAAM,KAAK,MAAM;;AAPtC;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH;
|
|
1
|
+
{"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":"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"}
|
package/docs/TO-DO.md
CHANGED
|
@@ -121,10 +121,8 @@
|
|
|
121
121
|
xsl:package
|
|
122
122
|
"xsl:param",
|
|
123
123
|
"xsl:perform-sort",
|
|
124
|
-
"xsl:preserve-space",
|
|
125
124
|
"xsl:sequence",
|
|
126
125
|
xsl:source-document
|
|
127
|
-
"xsl:strip-space",
|
|
128
126
|
xsl:try
|
|
129
127
|
xsl:use-package
|
|
130
128
|
xsl:where-populated
|
|
@@ -157,9 +155,11 @@
|
|
|
157
155
|
~~"xsl:otherwise",~~
|
|
158
156
|
~~"xsl:output",~~
|
|
159
157
|
~~"xsl:output-character",~~
|
|
158
|
+
~~"xsl:preserve-space",~~
|
|
160
159
|
~~"xsl:processing-instruction",~~
|
|
161
160
|
~~"xsl:result-document",~~
|
|
162
161
|
~~"xsl:sort",~~
|
|
162
|
+
~~"xsl:strip-space",~~
|
|
163
163
|
~~"xsl:stylesheet",~~
|
|
164
164
|
~~"xsl:template",~~
|
|
165
165
|
~~"xsl:text",~~
|
package/package.json
CHANGED
|
@@ -25,6 +25,8 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
25
25
|
constructor (o, cfg) {
|
|
26
26
|
super(cfg);
|
|
27
27
|
this._dom = o || cfg.document.createDocumentFragment();
|
|
28
|
+
/** @type {any} */
|
|
29
|
+
this._context = undefined;
|
|
28
30
|
/** @type {XMLDocument[]} */
|
|
29
31
|
this._docs = [];
|
|
30
32
|
/** @type {Array<{href: string, document: XMLDocument, format?: string}>} */
|
|
@@ -41,6 +43,16 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
41
43
|
this._dom.append(item);
|
|
42
44
|
}
|
|
43
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Set the transformer context for callback invocations.
|
|
48
|
+
* @param {any} context - The transformer context object
|
|
49
|
+
* @returns {DOMJoiningTransformer}
|
|
50
|
+
*/
|
|
51
|
+
setContext (context) {
|
|
52
|
+
this._context = context;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
|
|
44
56
|
/**
|
|
45
57
|
* @param {string|Node} item - Item to append
|
|
46
58
|
* @returns {void}
|
|
@@ -400,7 +412,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
400
412
|
}
|
|
401
413
|
|
|
402
414
|
if (cb) {
|
|
403
|
-
cb.call(this);
|
|
415
|
+
cb.call(this._context || this);
|
|
404
416
|
}
|
|
405
417
|
this._dom = oldDOM;
|
|
406
418
|
|
|
@@ -452,7 +464,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
452
464
|
}
|
|
453
465
|
|
|
454
466
|
if (cb) {
|
|
455
|
-
cb.call(this);
|
|
467
|
+
cb.call(this._context || this);
|
|
456
468
|
}
|
|
457
469
|
this._dom = oldDOM;
|
|
458
470
|
|
|
@@ -572,7 +584,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
572
584
|
this._dom = fragment;
|
|
573
585
|
|
|
574
586
|
// Execute callback to build document content
|
|
575
|
-
cb.call(this);
|
|
587
|
+
cb.call(this._context || this);
|
|
576
588
|
|
|
577
589
|
// Restore previous state
|
|
578
590
|
this.root = oldRoot;
|
|
@@ -613,7 +625,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
613
625
|
this._dom = fragment;
|
|
614
626
|
|
|
615
627
|
// Execute callback to build document content
|
|
616
|
-
cb.call(this);
|
|
628
|
+
cb.call(this._context || this);
|
|
617
629
|
|
|
618
630
|
// Get the created document from _docs (document() will have pushed it)
|
|
619
631
|
// or extract from the current DOM state
|
|
@@ -66,6 +66,8 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
66
66
|
super(cfg);
|
|
67
67
|
/** @type {any[]|Record<string, unknown>} */
|
|
68
68
|
this._obj = o || [];
|
|
69
|
+
/** @type {any} */
|
|
70
|
+
this._context = undefined;
|
|
69
71
|
/** @type {boolean | undefined} */
|
|
70
72
|
this._objPropState = undefined;
|
|
71
73
|
/** @type {boolean | undefined} */
|
|
@@ -89,6 +91,16 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
89
91
|
/** @type {any[]} */ (this._obj).push(item);
|
|
90
92
|
}
|
|
91
93
|
|
|
94
|
+
/**
|
|
95
|
+
* Set the transformer context for callback invocations.
|
|
96
|
+
* @param {any} context - The transformer context object
|
|
97
|
+
* @returns {JSONJoiningTransformer}
|
|
98
|
+
*/
|
|
99
|
+
setContext (context) {
|
|
100
|
+
this._context = context;
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
|
|
92
104
|
/**
|
|
93
105
|
* Appends an item to the current object or array.
|
|
94
106
|
* @param {any} item - Item to append
|
|
@@ -460,7 +472,7 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
460
472
|
if (cb) {
|
|
461
473
|
// Push current state onto a stack
|
|
462
474
|
this._elementStack.push({attsObj, jmlChildren});
|
|
463
|
-
cb.call(this);
|
|
475
|
+
cb.call(this._context || this);
|
|
464
476
|
const state = /** @type {ElementInfo} */ (this._elementStack.pop());
|
|
465
477
|
({attsObj} = state);
|
|
466
478
|
// Children may have been mutated by nested element()/text();
|
|
@@ -686,7 +698,7 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
686
698
|
this._elementStack = [];
|
|
687
699
|
|
|
688
700
|
// Execute callback to build document content
|
|
689
|
-
cb.call(this);
|
|
701
|
+
cb.call(this._context || this);
|
|
690
702
|
|
|
691
703
|
// Restore previous state
|
|
692
704
|
this.root = oldRoot;
|
|
@@ -727,7 +739,7 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
727
739
|
this._elementStack = [];
|
|
728
740
|
|
|
729
741
|
// Execute callback to build document content
|
|
730
|
-
cb.call(this);
|
|
742
|
+
cb.call(this._context || this);
|
|
731
743
|
|
|
732
744
|
// Get the created document from _docs or construct from current state
|
|
733
745
|
let resultDoc;
|
|
@@ -91,6 +91,10 @@ class JSONPathTransformerContext {
|
|
|
91
91
|
this._contextObj = this._origObj = config.data;
|
|
92
92
|
this._parent = config.parent || this._config;
|
|
93
93
|
this._parentProperty = config.parentProperty || 'data';
|
|
94
|
+
// Set this context on the joining transformer for callback invocations
|
|
95
|
+
if (config.joiningTransformer && config.joiningTransformer.setContext) {
|
|
96
|
+
config.joiningTransformer.setContext(this);
|
|
97
|
+
}
|
|
94
98
|
/** @type {Record<string, unknown>} */
|
|
95
99
|
this.vars = {};
|
|
96
100
|
/** @type {Record<string, Record<string, unknown>>} */
|
|
@@ -105,6 +109,10 @@ class JSONPathTransformerContext {
|
|
|
105
109
|
this._currPath = undefined;
|
|
106
110
|
/** @type {Record<string, any> | undefined} */
|
|
107
111
|
this._params = undefined;
|
|
112
|
+
/** @type {string[]} */
|
|
113
|
+
this._preserveSpaceElements = [];
|
|
114
|
+
/** @type {string[]} */
|
|
115
|
+
this._stripSpaceElements = [];
|
|
108
116
|
}
|
|
109
117
|
|
|
110
118
|
/**
|
|
@@ -120,6 +128,24 @@ class JSONPathTransformerContext {
|
|
|
120
128
|
}
|
|
121
129
|
}
|
|
122
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Check if whitespace should be stripped for a given element name.
|
|
133
|
+
* @param {string} elementName - The element name to check
|
|
134
|
+
* @returns {boolean}
|
|
135
|
+
*/
|
|
136
|
+
_shouldStripSpace (elementName) {
|
|
137
|
+
// Check if in preserve list (takes precedence)
|
|
138
|
+
if (this._preserveSpaceElements.some((pattern) => {
|
|
139
|
+
return pattern === '*' || pattern === elementName;
|
|
140
|
+
})) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
// Check if in strip list
|
|
144
|
+
return this._stripSpaceElements.some((pattern) => {
|
|
145
|
+
return pattern === '*' || pattern === elementName;
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
123
149
|
/**
|
|
124
150
|
* Gets the joining transformer from config.
|
|
125
151
|
* @returns {T extends "json" ? import('./JSONJoiningTransformer.js').
|
|
@@ -1664,6 +1690,30 @@ class JSONPathTransformerContext {
|
|
|
1664
1690
|
return this.propValue(prop, val);
|
|
1665
1691
|
}
|
|
1666
1692
|
|
|
1693
|
+
/**
|
|
1694
|
+
* Declare elements for which whitespace-only text nodes should be preserved.
|
|
1695
|
+
* Equivalent to xsl:preserve-space.
|
|
1696
|
+
* @param {string|string[]} elements - Element name(s) or patterns
|
|
1697
|
+
* @returns {this}
|
|
1698
|
+
*/
|
|
1699
|
+
preserveSpace (elements) {
|
|
1700
|
+
const elemArray = Array.isArray(elements) ? elements : [elements];
|
|
1701
|
+
this._preserveSpaceElements.push(...elemArray);
|
|
1702
|
+
return this;
|
|
1703
|
+
}
|
|
1704
|
+
|
|
1705
|
+
/**
|
|
1706
|
+
* Declare elements for which whitespace-only text nodes should be stripped.
|
|
1707
|
+
* Equivalent to xsl:strip-space.
|
|
1708
|
+
* @param {string|string[]} elements - Element name(s) or patterns
|
|
1709
|
+
* @returns {this}
|
|
1710
|
+
*/
|
|
1711
|
+
stripSpace (elements) {
|
|
1712
|
+
const elemArray = Array.isArray(elements) ? elements : [elements];
|
|
1713
|
+
this._stripSpaceElements.push(...elemArray);
|
|
1714
|
+
return this;
|
|
1715
|
+
}
|
|
1716
|
+
|
|
1667
1717
|
/**
|
|
1668
1718
|
* Build an object. Mirrors the joining transformer API. All joiners now
|
|
1669
1719
|
* support both signatures: (obj, cb, usePropertySets, propSets) with seed
|
|
@@ -1785,12 +1835,18 @@ class JSONPathTransformerContext {
|
|
|
1785
1835
|
* transformer API so templates can call `this.attribute()`.
|
|
1786
1836
|
* @param {string} name - Attribute name
|
|
1787
1837
|
* @param {string|Record<string, unknown>} val - Attribute value
|
|
1838
|
+
* @param {boolean} [avoid] - Avoid attribute escaping
|
|
1839
|
+
* (StringJoiningTransformer only)
|
|
1788
1840
|
* @returns {this}
|
|
1789
1841
|
*/
|
|
1790
|
-
attribute (name, val) {
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
)
|
|
1842
|
+
attribute (name, val, avoid) {
|
|
1843
|
+
const jt = this._getJoiningTransformer();
|
|
1844
|
+
// Only StringJoiningTransformer supports the third parameter
|
|
1845
|
+
if (typeof avoid !== 'undefined') {
|
|
1846
|
+
/** @type {any} */ (jt).attribute(name, val, avoid);
|
|
1847
|
+
} else {
|
|
1848
|
+
/** @type {any} */ (jt).attribute(name, val);
|
|
1849
|
+
}
|
|
1794
1850
|
return this;
|
|
1795
1851
|
}
|
|
1796
1852
|
|
|
@@ -94,6 +94,8 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
94
94
|
|
|
95
95
|
this._str = s || '';
|
|
96
96
|
/** @type {any} */
|
|
97
|
+
this._context = undefined;
|
|
98
|
+
/** @type {any} */
|
|
97
99
|
this._objPropTemp = undefined;
|
|
98
100
|
/** @type {boolean | undefined} */
|
|
99
101
|
this.propOnlyState = undefined;
|
|
@@ -117,6 +119,16 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
117
119
|
this._resultDocuments = [];
|
|
118
120
|
}
|
|
119
121
|
|
|
122
|
+
/**
|
|
123
|
+
* Set the transformer context for callback invocations.
|
|
124
|
+
* @param {any} context - The transformer context object
|
|
125
|
+
* @returns {StringJoiningTransformer}
|
|
126
|
+
*/
|
|
127
|
+
setContext (context) {
|
|
128
|
+
this._context = context;
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
|
|
120
132
|
/**
|
|
121
133
|
* @param {string|any} s - String or value to append
|
|
122
134
|
* @returns {StringJoiningTransformer}
|
|
@@ -203,7 +215,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
203
215
|
/** @type {any} */
|
|
204
216
|
const oldPropTemp = this._objPropTemp;
|
|
205
217
|
this._objPropTemp = prop;
|
|
206
|
-
cb.call(this);
|
|
218
|
+
cb.call(this._context || this);
|
|
207
219
|
this._objPropTemp = oldPropTemp;
|
|
208
220
|
if (this.propOnlyState) {
|
|
209
221
|
throw new Error('propOnly() must be followed up with setting a value.');
|
|
@@ -248,7 +260,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
248
260
|
|
|
249
261
|
if (cb) {
|
|
250
262
|
this._objPropState = true;
|
|
251
|
-
cb.call(this);
|
|
263
|
+
cb.call(this._context || this);
|
|
252
264
|
this._objPropState = oldObjPropState;
|
|
253
265
|
}
|
|
254
266
|
|
|
@@ -305,7 +317,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
305
317
|
const oldObjPropState = this._objPropState;
|
|
306
318
|
this._objPropState = false;
|
|
307
319
|
this._arrItemState = true;
|
|
308
|
-
cb.call(this);
|
|
320
|
+
cb.call(this._context || this);
|
|
309
321
|
this._arrItemState = oldArrItemState;
|
|
310
322
|
this._objPropState = oldObjPropState;
|
|
311
323
|
}
|
|
@@ -349,7 +361,8 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
349
361
|
const _oldStrTemp = this._strTemp;
|
|
350
362
|
if (cb) {
|
|
351
363
|
this._strTemp = '';
|
|
352
|
-
|
|
364
|
+
/* c8 ignore next -- Guard */
|
|
365
|
+
cb.call(this._context || this);
|
|
353
366
|
tmpStr = this._strTemp;
|
|
354
367
|
this._strTemp = _oldStrTemp;
|
|
355
368
|
}
|
|
@@ -595,7 +608,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
595
608
|
jml[method]({'#': childNodes})
|
|
596
609
|
));
|
|
597
610
|
}
|
|
598
|
-
cb.call(this);
|
|
611
|
+
cb.call(this._context || this);
|
|
599
612
|
|
|
600
613
|
// Todo: Depending on an this._cfg.xmlElements option, allow for
|
|
601
614
|
// XML self-closing when empty or as per the tag, HTML
|
|
@@ -787,7 +800,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
787
800
|
this._insideDocument = true;
|
|
788
801
|
|
|
789
802
|
// Execute callback to build document content
|
|
790
|
-
cb.call(this);
|
|
803
|
+
cb.call(this._context || this);
|
|
791
804
|
|
|
792
805
|
// Save the newly created document string
|
|
793
806
|
const newDoc = this._str;
|
|
@@ -840,7 +853,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
840
853
|
this._insideDocument = true;
|
|
841
854
|
|
|
842
855
|
// Execute callback to build document content
|
|
843
|
-
cb.call(this);
|
|
856
|
+
cb.call(this._context || this);
|
|
844
857
|
|
|
845
858
|
// Save the newly created document string with metadata
|
|
846
859
|
const resultDoc = this._str;
|
|
@@ -42,6 +42,10 @@ class XPathTransformerContext {
|
|
|
42
42
|
this._contextNode = this._origNode = /** @type {Document|Element|Node} */ (
|
|
43
43
|
config.data
|
|
44
44
|
);
|
|
45
|
+
// Set this context on the joining transformer for callback invocations
|
|
46
|
+
if (config.joiningTransformer && config.joiningTransformer.setContext) {
|
|
47
|
+
config.joiningTransformer.setContext(this);
|
|
48
|
+
}
|
|
45
49
|
/** @type {Record<string, unknown>} */
|
|
46
50
|
this.vars = {};
|
|
47
51
|
/** @type {Record<string, Record<string, unknown>>} */
|
|
@@ -59,6 +63,10 @@ class XPathTransformerContext {
|
|
|
59
63
|
this._currPath = undefined; // XPath string of current context
|
|
60
64
|
/** @type {Record<string, any> | undefined} */
|
|
61
65
|
this._params = undefined;
|
|
66
|
+
/** @type {string[]} */
|
|
67
|
+
this._preserveSpaceElements = [];
|
|
68
|
+
/** @type {string[]} */
|
|
69
|
+
this._stripSpaceElements = [];
|
|
62
70
|
}
|
|
63
71
|
|
|
64
72
|
/** @returns {import('./index.js').JoiningTransformer} */
|
|
@@ -66,6 +74,92 @@ class XPathTransformerContext {
|
|
|
66
74
|
return this._config.joiningTransformer;
|
|
67
75
|
}
|
|
68
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Check if whitespace should be stripped for a given element.
|
|
79
|
+
* @param {Node} node - The node to check
|
|
80
|
+
* @returns {boolean}
|
|
81
|
+
*/
|
|
82
|
+
_shouldStripSpace (node) {
|
|
83
|
+
if (node.nodeType !== 1) {
|
|
84
|
+
return false; // Only elements
|
|
85
|
+
}
|
|
86
|
+
const elementName = /** @type {Element} */ (node).localName;
|
|
87
|
+
// Check if in preserve list (takes precedence)
|
|
88
|
+
if (this._preserveSpaceElements.some((pattern) => {
|
|
89
|
+
return pattern === '*' || pattern === elementName;
|
|
90
|
+
})) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
// Check if in strip list
|
|
94
|
+
return this._stripSpaceElements.some((pattern) => {
|
|
95
|
+
return pattern === '*' || pattern === elementName;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Clone the DOM and strip whitespace-only text nodes from elements
|
|
101
|
+
* marked for stripping.
|
|
102
|
+
* @param {Node} node - The node to clone
|
|
103
|
+
* @returns {Node} The cloned node with whitespace stripped
|
|
104
|
+
*/
|
|
105
|
+
_cloneAndStripWhitespace (node) {
|
|
106
|
+
// Deep clone the node
|
|
107
|
+
const cloned = node.cloneNode(true);
|
|
108
|
+
|
|
109
|
+
// Only process if we have strip-space declarations
|
|
110
|
+
if (this._stripSpaceElements.length === 0) {
|
|
111
|
+
return cloned;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Recursively strip whitespace-only text nodes
|
|
115
|
+
const stripWhitespace = (/** @type {Node} */ n) => {
|
|
116
|
+
if (n.nodeType === 1) { // Element node
|
|
117
|
+
if (this._shouldStripSpace(n)) {
|
|
118
|
+
// Remove whitespace-only text node children
|
|
119
|
+
const childNodes = [...n.childNodes];
|
|
120
|
+
for (const child of childNodes) {
|
|
121
|
+
if (child.nodeType === 3) { // Text node
|
|
122
|
+
/* c8 ignore next 2 -- Branch inside loop already tested by
|
|
123
|
+
integration tests; c8 artifact */
|
|
124
|
+
const text = child.nodeValue || '';
|
|
125
|
+
// Check if text is whitespace-only
|
|
126
|
+
if (text.trim() === '') {
|
|
127
|
+
child.remove();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Recurse into child elements
|
|
133
|
+
const children = [...n.childNodes];
|
|
134
|
+
for (const child of children) {
|
|
135
|
+
stripWhitespace(child);
|
|
136
|
+
}
|
|
137
|
+
} else if (n.nodeType === 9) { // Document node
|
|
138
|
+
// Process document's children (typically documentElement)
|
|
139
|
+
const children = [...n.childNodes];
|
|
140
|
+
for (const child of children) {
|
|
141
|
+
stripWhitespace(child);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
stripWhitespace(cloned);
|
|
147
|
+
return cloned;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Apply whitespace stripping to the context node based on strip-space
|
|
152
|
+
* declarations. This clones the DOM and updates the context.
|
|
153
|
+
* @returns {this}
|
|
154
|
+
*/
|
|
155
|
+
applyWhitespaceStripping () {
|
|
156
|
+
if (this._stripSpaceElements.length > 0) {
|
|
157
|
+
const stripped = this._cloneAndStripWhitespace(this._origNode);
|
|
158
|
+
this._contextNode = stripped;
|
|
159
|
+
}
|
|
160
|
+
return this;
|
|
161
|
+
}
|
|
162
|
+
|
|
69
163
|
/**
|
|
70
164
|
* Evaluate an XPath expression against the current context node.
|
|
71
165
|
* @param {string} expr - XPath expression
|
|
@@ -76,12 +170,16 @@ class XPathTransformerContext {
|
|
|
76
170
|
if (!expr) {
|
|
77
171
|
return this._contextNode;
|
|
78
172
|
}
|
|
173
|
+
|
|
174
|
+
// Ensure we're using the stripped DOM if strip-space is declared
|
|
175
|
+
const contextNode = this._contextNode;
|
|
176
|
+
|
|
79
177
|
const version = this._config.xpathVersion ?? 1;
|
|
80
178
|
if (version === 1) {
|
|
81
179
|
// Use native XPath (browser-like); rely on DOM doc if available.
|
|
82
|
-
const doc =
|
|
83
|
-
?
|
|
84
|
-
: (
|
|
180
|
+
const doc = contextNode && contextNode.ownerDocument
|
|
181
|
+
? contextNode.ownerDocument
|
|
182
|
+
: (contextNode.nodeType === 9 ? contextNode : undefined);
|
|
85
183
|
if (!doc || doc.nodeType !== 9) {
|
|
86
184
|
throw new Error(
|
|
87
185
|
'Native XPath unavailable for xpathVersion=1'
|
|
@@ -105,7 +203,7 @@ class XPathTransformerContext {
|
|
|
105
203
|
);
|
|
106
204
|
/* c8 ignore stop */
|
|
107
205
|
const resultObj = docTyped.evaluate(
|
|
108
|
-
expr,
|
|
206
|
+
expr, contextNode, resolver, type, null
|
|
109
207
|
);
|
|
110
208
|
if (asNodes) {
|
|
111
209
|
/** @type {Node[]} */
|
|
@@ -150,7 +248,7 @@ class XPathTransformerContext {
|
|
|
150
248
|
}
|
|
151
249
|
if (version === 2) {
|
|
152
250
|
// Version 2: xpath2.js
|
|
153
|
-
const result = xpath2.evaluate(expr,
|
|
251
|
+
const result = xpath2.evaluate(expr, contextNode);
|
|
154
252
|
if (asNodes) {
|
|
155
253
|
// eslint-disable-next-line @stylistic/max-len -- Long
|
|
156
254
|
/* c8 ignore next -- array wrap/identity branch counted in other tests */
|
|
@@ -163,7 +261,7 @@ class XPathTransformerContext {
|
|
|
163
261
|
// eslint-disable-next-line @stylistic/max-len -- Long
|
|
164
262
|
// eslint-disable-next-line import/no-named-as-default-member -- Only as default
|
|
165
263
|
const result = fontoxpath.evaluateXPath(
|
|
166
|
-
expr,
|
|
264
|
+
expr, contextNode, undefined, undefined,
|
|
167
265
|
// Non-deprecated, predictable all results
|
|
168
266
|
14 // ReturnType.ALL_RESULTS
|
|
169
267
|
);
|
|
@@ -1242,6 +1340,34 @@ class XPathTransformerContext {
|
|
|
1242
1340
|
mapEntry (prop, val) {
|
|
1243
1341
|
return this.propValue(prop, val);
|
|
1244
1342
|
}
|
|
1343
|
+
/**
|
|
1344
|
+
* Declare elements for which whitespace-only text nodes should be preserved.
|
|
1345
|
+
* Equivalent to xsl:preserve-space.
|
|
1346
|
+
* @param {string|string[]} elements - Element name(s) or patterns
|
|
1347
|
+
* @returns {XPathTransformerContext}
|
|
1348
|
+
*/
|
|
1349
|
+
preserveSpace (elements) {
|
|
1350
|
+
const elemArray = Array.isArray(elements) ? elements : [elements];
|
|
1351
|
+
this._preserveSpaceElements.push(...elemArray);
|
|
1352
|
+
return this;
|
|
1353
|
+
}
|
|
1354
|
+
/**
|
|
1355
|
+
* Declare elements for which whitespace-only text nodes should be stripped.
|
|
1356
|
+
* Equivalent to xsl:strip-space.
|
|
1357
|
+
* This automatically clones the DOM and removes whitespace-only text nodes.
|
|
1358
|
+
* @param {string|string[]} elements - Element name(s) or patterns
|
|
1359
|
+
* @returns {XPathTransformerContext}
|
|
1360
|
+
*/
|
|
1361
|
+
stripSpace (elements) {
|
|
1362
|
+
const elemArray = Array.isArray(elements) ? elements : [elements];
|
|
1363
|
+
const wasEmpty = this._stripSpaceElements.length === 0;
|
|
1364
|
+
this._stripSpaceElements.push(...elemArray);
|
|
1365
|
+
// Apply stripping if this is the first strip-space declaration
|
|
1366
|
+
if (wasEmpty && this._stripSpaceElements.length > 0) {
|
|
1367
|
+
this.applyWhitespaceStripping();
|
|
1368
|
+
}
|
|
1369
|
+
return this;
|
|
1370
|
+
}
|
|
1245
1371
|
/**
|
|
1246
1372
|
* Append object.
|
|
1247
1373
|
* @param {Record<string, unknown>|
|