marko 5.37.44 → 5.37.46

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "5.37.44",
3
+ "version": "5.37.46",
4
4
  "description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
5
5
  "keywords": [
6
6
  "front-end",
@@ -9,6 +9,8 @@ const defaultCreateOut = require("../../createOut");
9
9
  const morphdom = require("../../vdom/morphdom");
10
10
  const { ___createFragmentNode } = require("../../vdom/morphdom/fragment");
11
11
  const dynamicTag = require("../dynamic-tag");
12
+ const Component = require("../../components/Component");
13
+ const noopRenderer = require("../serialize-noop").___noop;
12
14
 
13
15
  exports.p = function (domCompat) {
14
16
  dynamicTag.___runtimeCompat = function tagsToVdom(
@@ -31,6 +33,19 @@ exports.p = function (domCompat) {
31
33
  return renderer;
32
34
  };
33
35
 
36
+ Component.prototype.___setCustomEventsOriginal =
37
+ Component.prototype.___setCustomEvents;
38
+ Component.prototype.___setCustomEvents = function (customEvents, scopeId) {
39
+ for (const customEvent of customEvents) {
40
+ customEvent[1] = domCompat.resolveRegistered(
41
+ customEvent[1],
42
+ this.___global,
43
+ );
44
+ }
45
+
46
+ this.___setCustomEventsOriginal(customEvents, scopeId);
47
+ };
48
+
34
49
  const TagsCompatId = "tags-compat";
35
50
  const TagsCompat = createRenderer(
36
51
  function (_, out, componentDef, component) {
@@ -68,13 +83,6 @@ exports.p = function (domCompat) {
68
83
  ),
69
84
  }));
70
85
 
71
- // (
72
- // nodeAccessor: Accessor,
73
- // dynamicTagAttrs?: IntersectionSignal,
74
- // intersection?: IntersectionSignal,
75
- // valueWithIntersection?: ValueSignal
76
- // )
77
-
78
86
  const rendererCache = new WeakMap();
79
87
 
80
88
  domCompat.patchDynamicTag((dynamicTag) => (...args) => {
@@ -87,6 +95,10 @@ exports.p = function (domCompat) {
87
95
  function create5to6Renderer(renderer) {
88
96
  let newRenderer = renderer;
89
97
  if (renderer && typeof renderer !== "string") {
98
+ if (renderer === noopRenderer) {
99
+ return noopRenderer;
100
+ }
101
+
90
102
  const rendererFromAnywhere =
91
103
  renderer._ ||
92
104
  renderer.render ||
@@ -96,24 +108,6 @@ exports.p = function (domCompat) {
96
108
  if (!domCompat.isRenderer(rendererFromAnywhere || renderer)) {
97
109
  newRenderer = rendererCache.get(renderer);
98
110
  if (!newRenderer) {
99
- const { Component } = renderer;
100
- if (Component) {
101
- const setCustomEvents = Component.prototype.___setCustomEvents;
102
- Component.prototype.___setCustomEvents = function (
103
- customEvents,
104
- scopeId,
105
- ) {
106
- const global = this.___global;
107
- for (const customEvent of customEvents) {
108
- customEvent[1] = domCompat.resolveRegistered(
109
- customEvent[1],
110
- global,
111
- );
112
- }
113
-
114
- setCustomEvents.call(this, customEvents, scopeId);
115
- };
116
- }
117
111
  newRenderer = domCompat.createRenderer(
118
112
  (scope, input) =>
119
113
  renderAndMorph(scope, rendererFromAnywhere, renderer, input),
@@ -127,7 +121,7 @@ exports.p = function (domCompat) {
127
121
  }
128
122
 
129
123
  domCompat.registerRenderer(create5to6Renderer);
130
- domCompat.init(require("../serialize-noop").___noop);
124
+ domCompat.init(noopRenderer);
131
125
 
132
126
  function renderAndMorph(scope, renderer, renderBody, input) {
133
127
  const out = defaultCreateOut();
@@ -79,7 +79,9 @@ exports.p = function (htmlCompat) {
79
79
  }
80
80
  return (input, ...args) => {
81
81
  const out = defaultCreateOut(htmlCompat.$global());
82
+ const branchId = htmlCompat.peekNextScopeId();
82
83
  let customEvents;
84
+ htmlCompat.nextScopeId();
83
85
 
84
86
  if (renderer5) {
85
87
  const normalizedInput = {};
@@ -107,7 +109,7 @@ exports.p = function (htmlCompat) {
107
109
  const component = componentsContext.___components[0];
108
110
  if (component) {
109
111
  component.___component.___customEvents = customEvents;
110
- htmlCompat.writeSetScopeForComponent(component.id);
112
+ htmlCompat.writeSetScopeForComponent(branchId, component.id);
111
113
  }
112
114
 
113
115
  initComponentsTag({}, out);
package/tags-html.d.ts CHANGED
@@ -2575,7 +2575,10 @@ declare global {
2575
2575
  * Provide body content for the tag as a Marko.Body.
2576
2576
  * @see Marko.Body
2577
2577
  */
2578
- content?: Marko.Body<[], void>;
2578
+ content?:
2579
+ | AttrMissing
2580
+ | Marko.Body<[], void>
2581
+ | Marko.Template<Record<any, never>, void>;
2579
2582
 
2580
2583
  /**
2581
2584
  * Fired when resource was not fully loaded, but not as the result of an error.