marko 6.0.0-next.3.23 → 6.0.0-next.3.24

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/dist/debug/dom.js CHANGED
@@ -485,7 +485,7 @@ function handleDelegated(ev) {
485
485
  const handlersByElement = elementHandlersByEvent.get(ev.type);
486
486
  handlersByElement.get(target)?.(ev, target);
487
487
  if (ev.bubbles) {
488
- while ((target = target.parentElement) && !ev.cancelBubble) {
488
+ while ((target = target.parentNode) && !ev.cancelBubble) {
489
489
  handlersByElement.get(target)?.(ev, target);
490
490
  }
491
491
  }
@@ -1006,18 +1006,26 @@ function toValueProp(it) {
1006
1006
  }
1007
1007
 
1008
1008
  // src/dom/parse-html.ts
1009
- var fallback = /* @__PURE__ */ document.createTextNode("");
1010
- var parser = /* @__PURE__ */ new Range();
1009
+ var fallback = /* @__PURE__ */ new Text();
1010
+ var parser = /* @__PURE__ */ document.createElement("template");
1011
1011
  function parseHTML(html2) {
1012
- return parser.createContextualFragment(html2);
1012
+ parser.innerHTML = html2;
1013
+ return parser.content;
1013
1014
  }
1014
1015
  function parseHTMLOrSingleNode(html2) {
1015
1016
  const content = parseHTML(html2);
1016
- if (!content.firstChild) return fallback;
1017
- return content.firstChild === content.lastChild && // If the firstChild is a comment it's possible its
1018
- // a single replaced node, in which case the walker can't replace
1019
- // the node itself.
1020
- content.firstChild.nodeType !== 8 ? content.firstChild : content;
1017
+ if (content.firstChild) {
1018
+ if (content.firstChild === content.lastChild && // If the firstChild is a comment it's possible its
1019
+ // a single replaced node, in which case the walker can't replace
1020
+ // the node itself.
1021
+ content.firstChild.nodeType !== 8) {
1022
+ return content.firstChild;
1023
+ }
1024
+ const fragment = new DocumentFragment();
1025
+ fragment.appendChild(content);
1026
+ return fragment;
1027
+ }
1028
+ return fallback;
1021
1029
  }
1022
1030
 
1023
1031
  // src/dom/dom.ts
@@ -1294,7 +1302,7 @@ function walkInternal(walkCodes, scope, currentWalkIndex) {
1294
1302
  } else if (value2 === 32 /* Get */) {
1295
1303
  scope[true ? getDebugKey(currentScopeIndex++, walker.currentNode) : currentScopeIndex++] = walker.currentNode;
1296
1304
  } else {
1297
- const newNode = scope[true ? getDebugKey(currentScopeIndex++, "#text") : currentScopeIndex++] = document.createTextNode("");
1305
+ const newNode = scope[true ? getDebugKey(currentScopeIndex++, "#text") : currentScopeIndex++] = new Text();
1298
1306
  const current = walker.currentNode;
1299
1307
  const parentNode = current.parentNode;
1300
1308
  if (value2 !== 37 /* Replace */) {
@@ -2042,14 +2050,14 @@ function mount(input = {}, reference, position) {
2042
2050
  }
2043
2051
  });
2044
2052
  switch (position) {
2053
+ case "beforebegin":
2054
+ reference.parentNode.insertBefore(dom, reference);
2055
+ break;
2045
2056
  case "afterbegin":
2046
2057
  reference.insertBefore(dom, reference.firstChild);
2047
2058
  break;
2048
2059
  case "afterend":
2049
- reference.parentElement.insertBefore(dom, reference.nextSibling);
2050
- break;
2051
- case "beforebegin":
2052
- reference.parentElement.insertBefore(dom, reference);
2060
+ reference.parentNode.insertBefore(dom, reference.nextSibling);
2053
2061
  break;
2054
2062
  default:
2055
2063
  reference.appendChild(dom);
@@ -398,7 +398,7 @@ function handleDelegated(ev) {
398
398
  const handlersByElement = elementHandlersByEvent.get(ev.type);
399
399
  handlersByElement.get(target)?.(ev, target);
400
400
  if (ev.bubbles) {
401
- while ((target = target.parentElement) && !ev.cancelBubble) {
401
+ while ((target = target.parentNode) && !ev.cancelBubble) {
402
402
  handlersByElement.get(target)?.(ev, target);
403
403
  }
404
404
  }
@@ -919,18 +919,26 @@ function toValueProp(it) {
919
919
  }
920
920
 
921
921
  // src/dom/parse-html.ts
922
- var fallback = /* @__PURE__ */ document.createTextNode("");
923
- var parser = /* @__PURE__ */ new Range();
922
+ var fallback = /* @__PURE__ */ new Text();
923
+ var parser = /* @__PURE__ */ document.createElement("template");
924
924
  function parseHTML(html2) {
925
- return parser.createContextualFragment(html2);
925
+ parser.innerHTML = html2;
926
+ return parser.content;
926
927
  }
927
928
  function parseHTMLOrSingleNode(html2) {
928
929
  const content = parseHTML(html2);
929
- if (!content.firstChild) return fallback;
930
- return content.firstChild === content.lastChild && // If the firstChild is a comment it's possible its
931
- // a single replaced node, in which case the walker can't replace
932
- // the node itself.
933
- content.firstChild.nodeType !== 8 ? content.firstChild : content;
930
+ if (content.firstChild) {
931
+ if (content.firstChild === content.lastChild && // If the firstChild is a comment it's possible its
932
+ // a single replaced node, in which case the walker can't replace
933
+ // the node itself.
934
+ content.firstChild.nodeType !== 8) {
935
+ return content.firstChild;
936
+ }
937
+ const fragment = new DocumentFragment();
938
+ fragment.appendChild(content);
939
+ return fragment;
940
+ }
941
+ return fallback;
934
942
  }
935
943
 
936
944
  // src/dom/dom.ts
@@ -1207,7 +1215,7 @@ function walkInternal(walkCodes, scope, currentWalkIndex) {
1207
1215
  } else if (value2 === 32 /* Get */) {
1208
1216
  scope[true ? getDebugKey(currentScopeIndex++, walker.currentNode) : currentScopeIndex++] = walker.currentNode;
1209
1217
  } else {
1210
- const newNode = scope[true ? getDebugKey(currentScopeIndex++, "#text") : currentScopeIndex++] = document.createTextNode("");
1218
+ const newNode = scope[true ? getDebugKey(currentScopeIndex++, "#text") : currentScopeIndex++] = new Text();
1211
1219
  const current = walker.currentNode;
1212
1220
  const parentNode = current.parentNode;
1213
1221
  if (value2 !== 37 /* Replace */) {
@@ -1955,14 +1963,14 @@ function mount(input = {}, reference, position) {
1955
1963
  }
1956
1964
  });
1957
1965
  switch (position) {
1966
+ case "beforebegin":
1967
+ reference.parentNode.insertBefore(dom, reference);
1968
+ break;
1958
1969
  case "afterbegin":
1959
1970
  reference.insertBefore(dom, reference.firstChild);
1960
1971
  break;
1961
1972
  case "afterend":
1962
- reference.parentElement.insertBefore(dom, reference.nextSibling);
1963
- break;
1964
- case "beforebegin":
1965
- reference.parentElement.insertBefore(dom, reference);
1973
+ reference.parentNode.insertBefore(dom, reference.nextSibling);
1966
1974
  break;
1967
1975
  default:
1968
1976
  reference.appendChild(dom);
@@ -1,5 +1,2 @@
1
1
  export declare function parseHTML(html: string): DocumentFragment;
2
- export declare function parseHTMLOrSingleNode(html: string): Text | (Node & {
3
- firstChild?: ChildNode;
4
- lastChild?: ChildNode;
5
- });
2
+ export declare function parseHTMLOrSingleNode(html: string): ChildNode | DocumentFragment;
package/dist/dom.js CHANGED
@@ -310,7 +310,7 @@ function handleDelegated(ev) {
310
310
  if (target) {
311
311
  let handlersByElement = elementHandlersByEvent.get(ev.type);
312
312
  if (handlersByElement.get(target)?.(ev, target), ev.bubbles)
313
- for (; (target = target.parentElement) && !ev.cancelBubble; )
313
+ for (; (target = target.parentNode) && !ev.cancelBubble; )
314
314
  handlersByElement.get(target)?.(ev, target);
315
315
  }
316
316
  }
@@ -636,16 +636,22 @@ function toValueProp(it) {
636
636
  }
637
637
 
638
638
  // src/dom/parse-html.ts
639
- var fallback = /* @__PURE__ */ document.createTextNode(""), parser = /* @__PURE__ */ new Range();
639
+ var fallback = /* @__PURE__ */ new Text(), parser = /* @__PURE__ */ document.createElement("template");
640
640
  function parseHTML(html2) {
641
- return parser.createContextualFragment(html2);
641
+ return parser.innerHTML = html2, parser.content;
642
642
  }
643
643
  function parseHTMLOrSingleNode(html2) {
644
644
  let content = parseHTML(html2);
645
- return content.firstChild ? content.firstChild === content.lastChild && // If the firstChild is a comment it's possible its
646
- // a single replaced node, in which case the walker can't replace
647
- // the node itself.
648
- content.firstChild.nodeType !== 8 ? content.firstChild : content : fallback;
645
+ if (content.firstChild) {
646
+ if (content.firstChild === content.lastChild && // If the firstChild is a comment it's possible its
647
+ // a single replaced node, in which case the walker can't replace
648
+ // the node itself.
649
+ content.firstChild.nodeType !== 8)
650
+ return content.firstChild;
651
+ let fragment = new DocumentFragment();
652
+ return fragment.appendChild(content), fragment;
653
+ }
654
+ return fallback;
649
655
  }
650
656
 
651
657
  // src/dom/dom.ts
@@ -851,7 +857,7 @@ function walkInternal(walkCodes, scope, currentWalkIndex) {
851
857
  if (value2 === 32 /* Get */)
852
858
  scope[currentScopeIndex++] = walker.currentNode;
853
859
  else {
854
- let newNode = scope[currentScopeIndex++] = document.createTextNode(""), current = walker.currentNode;
860
+ let newNode = scope[currentScopeIndex++] = new Text(), current = walker.currentNode;
855
861
  current.parentNode.replaceChild(newNode, current), walker.currentNode = newNode;
856
862
  }
857
863
  }
@@ -1306,14 +1312,14 @@ function mount(input = {}, reference, position) {
1306
1312
  branch = createScope($global), dom = initRenderer(this, branch), args && args(branch, [input]);
1307
1313
  });
1308
1314
  switch (position) {
1315
+ case "beforebegin":
1316
+ reference.parentNode.insertBefore(dom, reference);
1317
+ break;
1309
1318
  case "afterbegin":
1310
1319
  reference.insertBefore(dom, reference.firstChild);
1311
1320
  break;
1312
1321
  case "afterend":
1313
- reference.parentElement.insertBefore(dom, reference.nextSibling);
1314
- break;
1315
- case "beforebegin":
1316
- reference.parentElement.insertBefore(dom, reference);
1322
+ reference.parentNode.insertBefore(dom, reference.nextSibling);
1317
1323
  break;
1318
1324
  default:
1319
1325
  reference.appendChild(dom);
package/dist/dom.mjs CHANGED
@@ -226,7 +226,7 @@ function handleDelegated(ev) {
226
226
  if (target) {
227
227
  let handlersByElement = elementHandlersByEvent.get(ev.type);
228
228
  if (handlersByElement.get(target)?.(ev, target), ev.bubbles)
229
- for (; (target = target.parentElement) && !ev.cancelBubble; )
229
+ for (; (target = target.parentNode) && !ev.cancelBubble; )
230
230
  handlersByElement.get(target)?.(ev, target);
231
231
  }
232
232
  }
@@ -552,16 +552,22 @@ function toValueProp(it) {
552
552
  }
553
553
 
554
554
  // src/dom/parse-html.ts
555
- var fallback = /* @__PURE__ */ document.createTextNode(""), parser = /* @__PURE__ */ new Range();
555
+ var fallback = /* @__PURE__ */ new Text(), parser = /* @__PURE__ */ document.createElement("template");
556
556
  function parseHTML(html2) {
557
- return parser.createContextualFragment(html2);
557
+ return parser.innerHTML = html2, parser.content;
558
558
  }
559
559
  function parseHTMLOrSingleNode(html2) {
560
560
  let content = parseHTML(html2);
561
- return content.firstChild ? content.firstChild === content.lastChild && // If the firstChild is a comment it's possible its
562
- // a single replaced node, in which case the walker can't replace
563
- // the node itself.
564
- content.firstChild.nodeType !== 8 ? content.firstChild : content : fallback;
561
+ if (content.firstChild) {
562
+ if (content.firstChild === content.lastChild && // If the firstChild is a comment it's possible its
563
+ // a single replaced node, in which case the walker can't replace
564
+ // the node itself.
565
+ content.firstChild.nodeType !== 8)
566
+ return content.firstChild;
567
+ let fragment = new DocumentFragment();
568
+ return fragment.appendChild(content), fragment;
569
+ }
570
+ return fallback;
565
571
  }
566
572
 
567
573
  // src/dom/dom.ts
@@ -767,7 +773,7 @@ function walkInternal(walkCodes, scope, currentWalkIndex) {
767
773
  if (value2 === 32 /* Get */)
768
774
  scope[currentScopeIndex++] = walker.currentNode;
769
775
  else {
770
- let newNode = scope[currentScopeIndex++] = document.createTextNode(""), current = walker.currentNode;
776
+ let newNode = scope[currentScopeIndex++] = new Text(), current = walker.currentNode;
771
777
  current.parentNode.replaceChild(newNode, current), walker.currentNode = newNode;
772
778
  }
773
779
  }
@@ -1222,14 +1228,14 @@ function mount(input = {}, reference, position) {
1222
1228
  branch = createScope($global), dom = initRenderer(this, branch), args && args(branch, [input]);
1223
1229
  });
1224
1230
  switch (position) {
1231
+ case "beforebegin":
1232
+ reference.parentNode.insertBefore(dom, reference);
1233
+ break;
1225
1234
  case "afterbegin":
1226
1235
  reference.insertBefore(dom, reference.firstChild);
1227
1236
  break;
1228
1237
  case "afterend":
1229
- reference.parentElement.insertBefore(dom, reference.nextSibling);
1230
- break;
1231
- case "beforebegin":
1232
- reference.parentElement.insertBefore(dom, reference);
1238
+ reference.parentNode.insertBefore(dom, reference.nextSibling);
1233
1239
  break;
1234
1240
  default:
1235
1241
  reference.appendChild(dom);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "6.0.0-next.3.23",
3
+ "version": "6.0.0-next.3.24",
4
4
  "description": "Optimized runtime for Marko templates.",
5
5
  "keywords": [
6
6
  "api",