dom-expressions 0.35.22 → 0.35.23
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/package.json +3 -3
- package/src/client.js +12 -4
- package/src/jsx.d.ts +4 -0
- package/src/server.js +8 -5
- package/src/universal.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dom-expressions",
|
|
3
3
|
"description": "A Fine-Grained Runtime for Performant DOM Rendering",
|
|
4
|
-
"version": "0.35.
|
|
4
|
+
"version": "0.35.23",
|
|
5
5
|
"author": "Ryan Carniato",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"csstype": "^3.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"babel-plugin-jsx-dom-expressions": "^0.35.
|
|
26
|
+
"babel-plugin-jsx-dom-expressions": "^0.35.23",
|
|
27
27
|
"csstype": "^3.1"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "3f44ae32aeacdae833f18882b79e34cc1960c1a9"
|
|
30
30
|
}
|
package/src/client.js
CHANGED
|
@@ -368,7 +368,16 @@ function eventHandler(e) {
|
|
|
368
368
|
}
|
|
369
369
|
|
|
370
370
|
function insertExpression(parent, value, current, marker, unwrapArray) {
|
|
371
|
-
if (sharedConfig.context
|
|
371
|
+
if (sharedConfig.context) {
|
|
372
|
+
!current && (current = [...parent.childNodes]);
|
|
373
|
+
let cleaned = [];
|
|
374
|
+
for (let i = 0; i < current.length; i++) {
|
|
375
|
+
const node = current[i];
|
|
376
|
+
if (node.nodeType === 8 && node.data === "!") node.remove();
|
|
377
|
+
else cleaned.push(node);
|
|
378
|
+
}
|
|
379
|
+
current = cleaned;
|
|
380
|
+
}
|
|
372
381
|
while (typeof current === "function") current = current();
|
|
373
382
|
if (value === current) return current;
|
|
374
383
|
const t = typeof value,
|
|
@@ -467,9 +476,8 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
|
|
|
467
476
|
} else {
|
|
468
477
|
// NOTE: is String better than `item + ''`, ``${item}``, `item.toString()` and `item.valueOf()`?
|
|
469
478
|
const value = String(item);
|
|
470
|
-
if (
|
|
471
|
-
|
|
472
|
-
} else if (prev && prev.nodeType === 3 && prev.data === value) {
|
|
479
|
+
if (prev && prev.nodeType === 3) {
|
|
480
|
+
prev.data = value;
|
|
473
481
|
normalized.push(prev);
|
|
474
482
|
} else normalized.push(document.createTextNode(value));
|
|
475
483
|
}
|
package/src/jsx.d.ts
CHANGED
|
@@ -798,11 +798,13 @@ export namespace JSX {
|
|
|
798
798
|
accept?: string;
|
|
799
799
|
alt?: string;
|
|
800
800
|
autocomplete?: string;
|
|
801
|
+
autocorrect?: "on" | "off";
|
|
801
802
|
autofocus?: boolean;
|
|
802
803
|
capture?: boolean | string;
|
|
803
804
|
checked?: boolean;
|
|
804
805
|
crossorigin?: HTMLCrossorigin;
|
|
805
806
|
disabled?: boolean;
|
|
807
|
+
enterkeyhint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';
|
|
806
808
|
form?: string;
|
|
807
809
|
formaction?: string;
|
|
808
810
|
formenctype?: HTMLFormEncType;
|
|
@@ -810,6 +812,7 @@ export namespace JSX {
|
|
|
810
812
|
formnovalidate?: boolean;
|
|
811
813
|
formtarget?: string;
|
|
812
814
|
height?: number | string;
|
|
815
|
+
incremental?: boolean;
|
|
813
816
|
list?: string;
|
|
814
817
|
max?: number | string;
|
|
815
818
|
maxlength?: number | string;
|
|
@@ -820,6 +823,7 @@ export namespace JSX {
|
|
|
820
823
|
pattern?: string;
|
|
821
824
|
placeholder?: string;
|
|
822
825
|
readonly?: boolean;
|
|
826
|
+
results?: number;
|
|
823
827
|
required?: boolean;
|
|
824
828
|
size?: number | string;
|
|
825
829
|
src?: string;
|
package/src/server.js
CHANGED
|
@@ -348,11 +348,10 @@ export function ssrHydrationKey() {
|
|
|
348
348
|
export function escape(s, attr) {
|
|
349
349
|
const t = typeof s;
|
|
350
350
|
if (t !== "string") {
|
|
351
|
-
if (!attr && t === "function") return escape(s()
|
|
351
|
+
if (!attr && t === "function") return escape(s());
|
|
352
352
|
if (!attr && Array.isArray(s)) {
|
|
353
|
-
let
|
|
354
|
-
|
|
355
|
-
return { t: r };
|
|
353
|
+
for (let i = 0; i < s.length; i++) s[i] = escape(s[i]);
|
|
354
|
+
return s;
|
|
356
355
|
}
|
|
357
356
|
if (attr && t === "boolean") return String(s);
|
|
358
357
|
return s;
|
|
@@ -404,8 +403,12 @@ export function resolveSSRNode(node) {
|
|
|
404
403
|
if (t === "string") return node;
|
|
405
404
|
if (node == null || t === "boolean") return "";
|
|
406
405
|
if (Array.isArray(node)) {
|
|
406
|
+
let prev = {};
|
|
407
407
|
let mapped = "";
|
|
408
|
-
for (let i = 0, len = node.length; i < len; i++)
|
|
408
|
+
for (let i = 0, len = node.length; i < len; i++) {
|
|
409
|
+
if (typeof prev !== "object" && typeof node[i] !== "object") mapped += `<!--!-->`;
|
|
410
|
+
mapped += resolveSSRNode(prev = node[i]);
|
|
411
|
+
}
|
|
409
412
|
return mapped;
|
|
410
413
|
}
|
|
411
414
|
if (t === "object") return node.t;
|
package/src/universal.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export interface Renderer<NodeType> {
|
|
|
23
23
|
spread<T>(node: any, accessor: (() => T) | T, skipChildren?: Boolean): void;
|
|
24
24
|
setProp<T>(node: NodeType, name: string, value: T, prev?: T): T;
|
|
25
25
|
mergeProps(...sources: unknown[]): unknown;
|
|
26
|
+
use<A, T>(fn: (element: NodeType, arg: A) => T, element: NodeType, arg: A): T;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
export function createRenderer<NodeType>(options: RendererOptions<NodeType>): Renderer<NodeType>;
|