marko 5.29.2 → 5.30.0
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/README.md +1 -1
- package/bin/markoc.js +18 -18
- package/dist/core-tags/core/await/renderer.js +5 -1
- package/dist/node_modules/@internal/components-beginComponent/index.js +13 -3
- package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +331 -0
- package/dist/node_modules/@internal/components-define-widget-legacy/index.js +18 -0
- package/dist/node_modules/@internal/components-define-widget-legacy/package.json +11 -0
- package/dist/node_modules/@internal/components-entry/index-browser.js +2 -2
- package/dist/node_modules/@internal/components-entry/index.js +73 -45
- package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +74 -0
- package/dist/node_modules/@internal/components-entry-legacy/index.js +15 -0
- package/dist/node_modules/@internal/components-entry-legacy/package.json +11 -0
- package/dist/node_modules/@internal/components-registry/index-browser.js +70 -43
- package/dist/node_modules/@internal/components-registry/index.js +2 -2
- package/dist/node_modules/@internal/components-util/index-browser.js +17 -17
- package/dist/node_modules/@internal/components-util/index.js +18 -8
- package/dist/node_modules/@internal/create-readable/index-browser.js +1 -1
- package/dist/node_modules/@internal/create-readable/index.js +9 -9
- package/dist/node_modules/@internal/set-immediate/index-browser.js +1 -1
- package/dist/node_modules/@internal/set-immediate/index-worker.js +2 -2
- package/dist/node_modules/@internal/set-immediate/index.js +2 -2
- package/dist/runtime/RenderResult.js +3 -3
- package/dist/runtime/components/Component.js +146 -148
- package/dist/runtime/components/ComponentDef.js +41 -27
- package/dist/runtime/components/ComponentsContext.js +6 -6
- package/dist/runtime/components/GlobalComponentsContext.js +3 -3
- package/dist/runtime/components/KeySequence.js +3 -3
- package/dist/runtime/components/ServerComponent.js +13 -13
- package/dist/runtime/components/State.js +27 -27
- package/dist/runtime/components/attach-detach.js +7 -7
- package/dist/runtime/components/defineComponent.js +5 -5
- package/dist/runtime/components/dom-data.js +6 -6
- package/dist/runtime/components/event-delegation.js +10 -10
- package/dist/runtime/components/legacy/browser.json +9 -0
- package/dist/runtime/components/legacy/defineComponent-legacy.js +32 -0
- package/dist/runtime/components/legacy/defineRenderer-legacy.js +171 -0
- package/dist/runtime/components/legacy/defineWidget-legacy.js +1 -0
- package/dist/runtime/components/legacy/dependencies/html.js +3 -0
- package/dist/runtime/components/legacy/dependencies/index.js +178 -0
- package/dist/runtime/components/legacy/dependencies/vdom.js +3 -0
- package/dist/runtime/components/legacy/index.js +1 -0
- package/dist/runtime/components/legacy/jquery.js +51 -0
- package/dist/runtime/components/legacy/ready.js +152 -0
- package/dist/runtime/components/legacy/renderer-legacy.js +230 -0
- package/dist/runtime/components/renderer.js +30 -26
- package/dist/runtime/components/update-manager.js +10 -10
- package/dist/runtime/createOut.js +1 -1
- package/dist/runtime/dom-insert.js +5 -5
- package/dist/runtime/helpers/_change-case.js +2 -2
- package/dist/runtime/helpers/dynamic-tag.js +7 -9
- package/dist/runtime/helpers/style-value.js +7 -2
- package/dist/runtime/html/AsyncStream.js +20 -20
- package/dist/runtime/html/BufferedWriter.js +2 -2
- package/dist/runtime/html/helpers/_dynamic-attr.js +2 -2
- package/dist/runtime/html/helpers/attr.js +19 -6
- package/dist/runtime/html/helpers/attrs.js +7 -0
- package/dist/runtime/html/helpers/data-marko.js +2 -2
- package/dist/runtime/html/helpers/escape-quotes.js +1 -1
- package/dist/runtime/html/helpers/escape-xml.js +1 -1
- package/dist/runtime/html/helpers/merge-attrs.js +38 -7
- package/dist/runtime/html/index.js +2 -2
- package/dist/runtime/renderable.js +9 -6
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +86 -86
- package/dist/runtime/vdom/VComponent.js +3 -3
- package/dist/runtime/vdom/VDocumentFragment.js +7 -7
- package/dist/runtime/vdom/VElement.js +61 -50
- package/dist/runtime/vdom/VFragment.js +8 -8
- package/dist/runtime/vdom/VNode.js +36 -36
- package/dist/runtime/vdom/VText.js +8 -8
- package/dist/runtime/vdom/helpers/attrs.js +24 -4
- package/dist/runtime/vdom/helpers/merge-attrs.js +16 -0
- package/dist/runtime/vdom/helpers/v-element.js +1 -1
- package/dist/runtime/vdom/helpers/v-text.js +1 -1
- package/dist/runtime/vdom/hot-reload.js +19 -19
- package/dist/runtime/vdom/index.js +2 -2
- package/dist/runtime/vdom/morphdom/fragment.js +5 -5
- package/dist/runtime/vdom/morphdom/helpers.js +5 -5
- package/dist/runtime/vdom/morphdom/index.js +56 -56
- package/dist/runtime/vdom/morphdom/specialElHandlers.js +7 -7
- package/dist/runtime/vdom/preserve-attrs.js +1 -1
- package/dist/runtime/vdom/vdom.js +14 -14
- package/docs/10-awesome-marko-features.md +1 -1
- package/docs/body-content.md +3 -3
- package/docs/class-components.md +6 -6
- package/docs/cloudflare-workers.md +3 -3
- package/docs/compiler.md +5 -5
- package/docs/express.md +2 -2
- package/docs/http.md +1 -1
- package/docs/koa.md +1 -1
- package/docs/lasso.md +1 -1
- package/docs/marko-vs-react.md +2 -2
- package/docs/rendering.md +6 -6
- package/docs/rollup.md +30 -30
- package/docs/troubleshooting-streaming.md +1 -1
- package/docs/typescript.md +1 -1
- package/docs/vite.md +3 -3
- package/docs/webpack.md +25 -25
- package/docs/why-is-marko-fast.md +2 -2
- package/index.d.ts +1 -0
- package/legacy-components-browser.marko +15 -0
- package/legacy-components.js +7 -0
- package/package.json +51 -45
- package/src/compiler/config.js +1 -1
- package/src/compiler/index.js +5 -5
- package/src/core-tags/core/__flush_here_and_after__.js +1 -1
- package/src/core-tags/core/await/AsyncValue.js +1 -1
- package/src/core-tags/core/await/renderer.js +8 -4
- package/src/core-tags/core/await/reorderer-renderer.js +1 -1
- package/src/node-require/browser-refresh.js +2 -2
- package/src/node-require/index.js +2 -2
- package/src/node_modules/@internal/components-beginComponent/index.js +16 -6
- package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +331 -0
- package/src/node_modules/@internal/components-define-widget-legacy/index.js +18 -0
- package/src/node_modules/@internal/components-define-widget-legacy/package.json +11 -0
- package/src/node_modules/@internal/components-entry/index.js +65 -37
- package/src/node_modules/@internal/components-entry-legacy/index-browser.js +74 -0
- package/src/node_modules/@internal/components-entry-legacy/index.js +15 -0
- package/src/node_modules/@internal/components-entry-legacy/package.json +11 -0
- package/src/node_modules/@internal/components-registry/index-browser.js +33 -6
- package/src/node_modules/@internal/components-util/index.js +10 -0
- package/src/runtime/RenderResult.js +3 -3
- package/src/runtime/components/Component.js +16 -18
- package/src/runtime/components/ComponentDef.js +22 -8
- package/src/runtime/components/ComponentsContext.js +1 -1
- package/src/runtime/components/State.js +2 -2
- package/src/runtime/components/attach-detach.js +1 -1
- package/src/runtime/components/dom-data.js +1 -1
- package/src/runtime/components/legacy/browser.json +9 -0
- package/src/runtime/components/legacy/defineComponent-legacy.js +32 -0
- package/src/runtime/components/legacy/defineRenderer-legacy.js +171 -0
- package/src/runtime/components/legacy/defineWidget-legacy.js +1 -0
- package/src/runtime/components/legacy/dependencies/html.js +3 -0
- package/src/runtime/components/legacy/dependencies/index.js +178 -0
- package/src/runtime/components/legacy/dependencies/vdom.js +3 -0
- package/src/runtime/components/legacy/index.js +1 -0
- package/src/runtime/components/legacy/jquery.js +51 -0
- package/src/runtime/components/legacy/ready.js +152 -0
- package/src/runtime/components/legacy/renderer-legacy.js +230 -0
- package/src/runtime/components/renderer.js +4 -0
- package/src/runtime/components/update-manager.js +1 -1
- package/src/runtime/dom-insert.js +1 -1
- package/src/runtime/helpers/dynamic-tag.js +2 -4
- package/src/runtime/helpers/style-value.js +7 -2
- package/src/runtime/html/AsyncStream.js +5 -5
- package/src/runtime/html/BufferedWriter.js +1 -1
- package/src/runtime/html/StringWriter.js +1 -1
- package/src/runtime/html/helpers/attr.js +15 -2
- package/src/runtime/html/helpers/attrs.js +7 -0
- package/src/runtime/html/helpers/merge-attrs.js +38 -7
- package/src/runtime/html/hot-reload.js +1 -1
- package/src/runtime/html/index.js +2 -2
- package/src/runtime/renderable.js +5 -2
- package/src/runtime/vdom/AsyncVDOMBuilder.js +2 -2
- package/src/runtime/vdom/VComponent.js +1 -1
- package/src/runtime/vdom/VDocumentFragment.js +1 -1
- package/src/runtime/vdom/VElement.js +17 -6
- package/src/runtime/vdom/VFragment.js +1 -1
- package/src/runtime/vdom/VNode.js +1 -1
- package/src/runtime/vdom/VText.js +1 -1
- package/src/runtime/vdom/helpers/attrs.js +26 -6
- package/src/runtime/vdom/helpers/merge-attrs.js +16 -0
- package/src/runtime/vdom/hot-reload.js +1 -1
- package/src/runtime/vdom/index.js +2 -2
- package/src/runtime/vdom/morphdom/fragment.js +1 -1
- package/src/runtime/vdom/morphdom/specialElHandlers.js +1 -1
- package/src/taglib/index.js +1 -1
- package/tags-html.d.ts +9 -0
|
@@ -7,6 +7,8 @@ var DEFAULT_RUNTIME_ID = "M";
|
|
|
7
7
|
|
|
8
8
|
var FLAG_WILL_RERENDER_IN_BROWSER = 1;
|
|
9
9
|
var FLAG_HAS_RENDER_BODY = 2;
|
|
10
|
+
var FLAG_IS_LEGACY = 4;
|
|
11
|
+
var FLAG_OLD_HYDRATE_NO_CREATE = 8;
|
|
10
12
|
|
|
11
13
|
function safeJSONReplacer(match) {
|
|
12
14
|
if (match === "</") {
|
|
@@ -65,66 +67,92 @@ function addComponentsFromContext(componentsContext, componentsToHydrate) {
|
|
|
65
67
|
var id = componentDef.id;
|
|
66
68
|
var component = componentDef.i_;
|
|
67
69
|
var flags = componentDef.C_;
|
|
70
|
+
var isLegacy = componentDef.F_;
|
|
71
|
+
|
|
72
|
+
var state = component.state;
|
|
68
73
|
var input = component.input || 0;
|
|
69
74
|
var typeName = component.typeName;
|
|
70
|
-
var customEvents = component.
|
|
71
|
-
var scope = component.
|
|
72
|
-
var bubblingDomEvents = component.
|
|
75
|
+
var customEvents = component.___;
|
|
76
|
+
var scope = component._a_;
|
|
77
|
+
var bubblingDomEvents = component._b_;
|
|
73
78
|
|
|
74
|
-
var
|
|
79
|
+
var needsState;
|
|
75
80
|
var serializedProps;
|
|
76
|
-
var
|
|
81
|
+
var renderBody;
|
|
77
82
|
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
83
|
+
if (isLegacy) {
|
|
84
|
+
flags |= FLAG_IS_LEGACY;
|
|
85
|
+
renderBody = component._c_;
|
|
86
|
+
|
|
87
|
+
if (component.widgetConfig && isNotEmpty(component.widgetConfig)) {
|
|
88
|
+
serializedProps = component.widgetConfig;
|
|
82
89
|
}
|
|
90
|
+
|
|
91
|
+
needsState = true;
|
|
83
92
|
} else {
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
if (input && input.renderBody) {
|
|
94
|
+
renderBody = input.renderBody;
|
|
95
|
+
input.renderBody = undefined;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (
|
|
99
|
+
!(flags & FLAG_WILL_RERENDER_IN_BROWSER) ||
|
|
100
|
+
flags & FLAG_OLD_HYDRATE_NO_CREATE)
|
|
101
|
+
{
|
|
102
|
+
component.G_ = undefined; // We don't use `delete` to avoid V8 deoptimization
|
|
103
|
+
component.U_ = undefined; // We don't use `delete` to avoid V8 deoptimization
|
|
104
|
+
component.typeName = undefined;
|
|
105
|
+
component.id = undefined;
|
|
106
|
+
component.___ = undefined;
|
|
107
|
+
component._a_ = undefined;
|
|
108
|
+
component._b_ = undefined;
|
|
109
|
+
component._d_ = undefined;
|
|
110
|
+
component._e_ = undefined;
|
|
111
|
+
component._f_ = undefined;
|
|
112
|
+
|
|
113
|
+
needsState = true;
|
|
114
|
+
|
|
115
|
+
if (isNotEmpty(component)) {
|
|
116
|
+
serializedProps = component;
|
|
100
117
|
}
|
|
101
118
|
}
|
|
119
|
+
}
|
|
102
120
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
121
|
+
var undefinedPropNames = undefined;
|
|
122
|
+
|
|
123
|
+
if (needsState && state) {
|
|
124
|
+
// Update state properties with an `undefined` value to have a `null`
|
|
125
|
+
// value so that the property name will be serialized down to the browser.
|
|
126
|
+
// This ensures that we add the proper getter/setter for the state property.
|
|
127
|
+
const stateKeys = Object.keys(state);
|
|
128
|
+
for (let i = stateKeys.length; i--;) {
|
|
129
|
+
const stateKey = stateKeys[i];
|
|
130
|
+
|
|
131
|
+
if (state[stateKey] === undefined) {
|
|
132
|
+
if (undefinedPropNames) {
|
|
133
|
+
undefinedPropNames.push(stateKey);
|
|
134
|
+
} else {
|
|
135
|
+
undefinedPropNames = [stateKey];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
116
138
|
}
|
|
117
139
|
}
|
|
118
140
|
|
|
141
|
+
if (typeof renderBody === "function") {
|
|
142
|
+
flags |= FLAG_HAS_RENDER_BODY;
|
|
143
|
+
renderBody = undefined;
|
|
144
|
+
}
|
|
145
|
+
|
|
119
146
|
var extra = {
|
|
120
147
|
b: bubblingDomEvents,
|
|
121
|
-
d: componentDef.
|
|
148
|
+
d: componentDef._g_,
|
|
122
149
|
e: customEvents,
|
|
123
150
|
f: flags || undefined,
|
|
124
151
|
p: customEvents && scope, // Only serialize scope if we need to attach custom events
|
|
125
|
-
s: state,
|
|
152
|
+
s: needsState && state,
|
|
126
153
|
u: undefinedPropNames,
|
|
127
|
-
w: serializedProps
|
|
154
|
+
w: serializedProps,
|
|
155
|
+
r: renderBody
|
|
128
156
|
};
|
|
129
157
|
|
|
130
158
|
var parts = [id, typeName];
|
|
@@ -146,7 +174,7 @@ function addComponentsFromContext(componentsContext, componentsToHydrate) {
|
|
|
146
174
|
components.length = 0;
|
|
147
175
|
|
|
148
176
|
// Also add any components from nested contexts
|
|
149
|
-
var nestedContexts = componentsContext.
|
|
177
|
+
var nestedContexts = componentsContext._h_;
|
|
150
178
|
if (nestedContexts !== undefined) {
|
|
151
179
|
nestedContexts.forEach(function (nestedContext) {
|
|
152
180
|
addComponentsFromContext(nestedContext, componentsToHydrate);
|
|
@@ -158,7 +186,7 @@ function getInitComponentsData(out, componentDefs) {
|
|
|
158
186
|
const len = componentDefs.length;
|
|
159
187
|
const $global = out.global;
|
|
160
188
|
const isLast = $global.d_;
|
|
161
|
-
const didSerializeComponents = $global.
|
|
189
|
+
const didSerializeComponents = $global._i_;
|
|
162
190
|
const prefix = $global.componentIdPrefix || $global.widgetIdPrefix;
|
|
163
191
|
|
|
164
192
|
if (len === 0) {
|
|
@@ -171,7 +199,7 @@ function getInitComponentsData(out, componentDefs) {
|
|
|
171
199
|
|
|
172
200
|
const TYPE_INDEX = 1;
|
|
173
201
|
const typesLookup =
|
|
174
|
-
$global.
|
|
202
|
+
$global._j_ || ($global._j_ = new Map());
|
|
175
203
|
let newTypes;
|
|
176
204
|
|
|
177
205
|
for (let i = 0; i < len; i++) {
|
|
@@ -196,7 +224,7 @@ function getInitComponentsData(out, componentDefs) {
|
|
|
196
224
|
let serializedGlobals;
|
|
197
225
|
|
|
198
226
|
if (!didSerializeComponents) {
|
|
199
|
-
$global.
|
|
227
|
+
$global._i_ = true;
|
|
200
228
|
serializedGlobals = getSerializedGlobals($global);
|
|
201
229
|
}
|
|
202
230
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";var Component = require("../../../runtime/components/Component");
|
|
2
|
+
var loader = require("@internal/loader");
|
|
3
|
+
var getComponentForEl =
|
|
4
|
+
require("@internal/components-util").Y_;
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
// expose legacy
|
|
9
|
+
require("@internal/components-registry")._k_ = exports;
|
|
10
|
+
exports.load = function (typeName) {
|
|
11
|
+
return exports.defineWidget(loader(typeName));
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
// legacy api
|
|
15
|
+
exports.defineComponent = require("../../../runtime/components/legacy/defineComponent-legacy");
|
|
16
|
+
exports.defineWidget = require("@internal/components-define-widget-legacy");
|
|
17
|
+
exports.defineRenderer = require("../../../runtime/components/legacy/defineRenderer-legacy");
|
|
18
|
+
exports.makeRenderable = exports.renderable = require("../../../runtime/renderable");
|
|
19
|
+
|
|
20
|
+
// browser only
|
|
21
|
+
var Widget = exports.Widget = Component;
|
|
22
|
+
exports.getWidgetForEl = exports.get = function (elOrId) {
|
|
23
|
+
var el = elOrId;
|
|
24
|
+
|
|
25
|
+
if (typeof elOrId === "string") {
|
|
26
|
+
el = document.getElementById(elOrId);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (el && el.__widget) {
|
|
30
|
+
return el.__widget;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return getComponentForEl(el);
|
|
34
|
+
};
|
|
35
|
+
exports.initWidgets =
|
|
36
|
+
require("@internal/components-registry").Z_;
|
|
37
|
+
|
|
38
|
+
// monkey patch Widget
|
|
39
|
+
if (Widget) {
|
|
40
|
+
var WidgetProto = Widget.prototype;
|
|
41
|
+
WidgetProto.setProps = function (newInput) {
|
|
42
|
+
this._l_ = true;
|
|
43
|
+
this._m_(newInput);
|
|
44
|
+
};
|
|
45
|
+
WidgetProto.rerender = function (newInput) {
|
|
46
|
+
if (newInput) {
|
|
47
|
+
this.setProps(newInput);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
this.forceUpdate();
|
|
51
|
+
this.update();
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
var RenderResult = require("../../../runtime/RenderResult");
|
|
56
|
+
|
|
57
|
+
RenderResult.prototype.getWidget = function () {
|
|
58
|
+
// eslint-disable-next-line no-constant-condition
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
return this.getWidgets()[0];
|
|
63
|
+
};
|
|
64
|
+
RenderResult.prototype.getWidgets = function () {
|
|
65
|
+
// eslint-disable-next-line no-constant-condition
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
return RenderResult.prototype.getComponents.
|
|
70
|
+
apply(this, arguments).
|
|
71
|
+
filter(function (component) {
|
|
72
|
+
return component.F_;
|
|
73
|
+
});
|
|
74
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";var modernMarko = require("@internal/components-entry");
|
|
2
|
+
|
|
3
|
+
// legacy api
|
|
4
|
+
exports.defineComponent = require("../../../runtime/components/legacy/defineComponent-legacy");
|
|
5
|
+
exports.defineWidget = require("@internal/components-define-widget-legacy");
|
|
6
|
+
exports.defineRenderer = require("../../../runtime/components/legacy/defineRenderer-legacy");
|
|
7
|
+
exports.makeRenderable = exports.renderable = require("../../../runtime/renderable");
|
|
8
|
+
|
|
9
|
+
// server only
|
|
10
|
+
exports.writeInitWidgetsCode = modernMarko.writeInitComponentsCode;
|
|
11
|
+
exports.getRenderedWidgets = exports.getRenderedWidgetIds =
|
|
12
|
+
modernMarko.getRenderedComponents;
|
|
13
|
+
exports.getInitWidgetsCode = function (out) {
|
|
14
|
+
return modernMarko.a_(out);
|
|
15
|
+
};
|
|
@@ -4,15 +4,16 @@ var queueMicrotask = require("../../../runtime/queueMicrotask");
|
|
|
4
4
|
var defineComponent = require("../../../runtime/components/defineComponent");
|
|
5
5
|
var eventDelegation = require("../../../runtime/components/event-delegation");
|
|
6
6
|
var createFragmentNode =
|
|
7
|
-
require("../../../runtime/vdom/morphdom/fragment").
|
|
7
|
+
require("../../../runtime/vdom/morphdom/fragment")._n_;
|
|
8
8
|
var ComponentDef = require("../../../runtime/components/ComponentDef");
|
|
9
9
|
var domData = require("../../../runtime/components/dom-data");
|
|
10
10
|
var componentsUtil = require("@internal/components-util");
|
|
11
|
-
var
|
|
11
|
+
var loader = require("@internal/loader");
|
|
12
|
+
var componentLookup = componentsUtil._o_;
|
|
12
13
|
var addComponentRootToKeyedElements =
|
|
13
|
-
componentsUtil.
|
|
14
|
-
var keyedElementsByComponentId = domData.
|
|
15
|
-
var componentsByDOMNode = domData.
|
|
14
|
+
componentsUtil._p_;
|
|
15
|
+
var keyedElementsByComponentId = domData._q_;
|
|
16
|
+
var componentsByDOMNode = domData._r_;
|
|
16
17
|
var serverComponentRootNodes = {};
|
|
17
18
|
var serverRenderedMeta = {};
|
|
18
19
|
var win = window;
|
|
@@ -72,13 +73,23 @@ function addPendingDef(def, type, meta, host, runtimeId) {
|
|
|
72
73
|
|
|
73
74
|
}
|
|
74
75
|
|
|
75
|
-
function load(typeName) {
|
|
76
|
+
function load(typeName, isLegacy) {
|
|
76
77
|
var target = loaded[typeName];
|
|
77
78
|
if (!target) {
|
|
78
79
|
target = registered[typeName];
|
|
79
80
|
|
|
80
81
|
if (target) {
|
|
81
82
|
target = target();
|
|
83
|
+
} else if (isLegacy) {
|
|
84
|
+
target = exports._k_.load(typeName);
|
|
85
|
+
} else {
|
|
86
|
+
target = loader(typeName);
|
|
87
|
+
// eslint-disable-next-line no-constant-condition
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
82
93
|
}
|
|
83
94
|
|
|
84
95
|
if (!target) {
|
|
@@ -91,23 +102,23 @@ function load(typeName) {
|
|
|
91
102
|
return target;
|
|
92
103
|
}
|
|
93
104
|
|
|
94
|
-
function getComponentClass(typeName) {
|
|
105
|
+
function getComponentClass(typeName, isLegacy) {
|
|
95
106
|
var ComponentClass = componentTypes[typeName];
|
|
96
107
|
|
|
97
108
|
if (ComponentClass) {
|
|
98
109
|
return ComponentClass;
|
|
99
110
|
}
|
|
100
111
|
|
|
101
|
-
ComponentClass = load(typeName);
|
|
112
|
+
ComponentClass = load(typeName, isLegacy);
|
|
102
113
|
|
|
103
114
|
ComponentClass = ComponentClass.Component || ComponentClass;
|
|
104
115
|
|
|
105
|
-
if (!ComponentClass.
|
|
116
|
+
if (!ComponentClass.E_) {
|
|
106
117
|
ComponentClass = defineComponent(ComponentClass, ComponentClass.renderer);
|
|
107
118
|
}
|
|
108
119
|
|
|
109
120
|
// Make the component "type" accessible on each component instance
|
|
110
|
-
ComponentClass.prototype.
|
|
121
|
+
ComponentClass.prototype._s_ = typeName;
|
|
111
122
|
|
|
112
123
|
// eslint-disable-next-line no-constant-condition
|
|
113
124
|
|
|
@@ -131,6 +142,7 @@ function getComponentClass(typeName) {
|
|
|
131
142
|
|
|
132
143
|
|
|
133
144
|
|
|
145
|
+
|
|
134
146
|
|
|
135
147
|
|
|
136
148
|
componentTypes[typeName] = ComponentClass;
|
|
@@ -138,8 +150,8 @@ function getComponentClass(typeName) {
|
|
|
138
150
|
return ComponentClass;
|
|
139
151
|
}
|
|
140
152
|
|
|
141
|
-
function createComponent(typeName, id) {
|
|
142
|
-
var ComponentClass = getComponentClass(typeName);
|
|
153
|
+
function createComponent(typeName, id, isLegacy) {
|
|
154
|
+
var ComponentClass = getComponentClass(typeName, isLegacy);
|
|
143
155
|
return new ComponentClass(id);
|
|
144
156
|
}
|
|
145
157
|
|
|
@@ -209,7 +221,7 @@ function indexServerComponentBoundaries(node, runtimeId, stack) {
|
|
|
209
221
|
} else if (node.nodeType === 1) {
|
|
210
222
|
// HTML element node
|
|
211
223
|
var markoKey = node.getAttribute("data-marko-key");
|
|
212
|
-
var markoProps = componentsUtil.
|
|
224
|
+
var markoProps = componentsUtil._t_(node);
|
|
213
225
|
if (markoKey) {
|
|
214
226
|
var separatorIndex = markoKey.indexOf(" ");
|
|
215
227
|
ownerId = markoKey.substring(separatorIndex + 1);
|
|
@@ -226,7 +238,7 @@ function indexServerComponentBoundaries(node, runtimeId, stack) {
|
|
|
226
238
|
if (markoProps) {
|
|
227
239
|
Object.keys(markoProps).forEach(function (key) {
|
|
228
240
|
if (key.slice(0, 2) === "on") {
|
|
229
|
-
eventDelegation.
|
|
241
|
+
eventDelegation._u_(key.slice(2));
|
|
230
242
|
}
|
|
231
243
|
});
|
|
232
244
|
}
|
|
@@ -290,16 +302,20 @@ handles)
|
|
|
290
302
|
function initComponent(componentDef, host) {
|
|
291
303
|
var component = componentDef.i_;
|
|
292
304
|
|
|
293
|
-
component.
|
|
294
|
-
|
|
305
|
+
if (!component || !component.E_) {
|
|
306
|
+
return; // legacy
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
component._v_();
|
|
310
|
+
component.I_ = host;
|
|
295
311
|
|
|
296
|
-
var isExisting = componentDef.
|
|
312
|
+
var isExisting = componentDef._w_;
|
|
297
313
|
|
|
298
314
|
if (isExisting) {
|
|
299
|
-
component.
|
|
315
|
+
component._x_();
|
|
300
316
|
}
|
|
301
317
|
|
|
302
|
-
var domEvents = componentDef.
|
|
318
|
+
var domEvents = componentDef._g_;
|
|
303
319
|
if (domEvents) {
|
|
304
320
|
var eventListenerHandles = [];
|
|
305
321
|
|
|
@@ -324,15 +340,15 @@ function initComponent(componentDef, host) {
|
|
|
324
340
|
});
|
|
325
341
|
|
|
326
342
|
if (eventListenerHandles.length) {
|
|
327
|
-
component.
|
|
343
|
+
component._y_ = eventListenerHandles;
|
|
328
344
|
}
|
|
329
345
|
}
|
|
330
346
|
|
|
331
|
-
if (component.
|
|
332
|
-
component.
|
|
347
|
+
if (component._z_) {
|
|
348
|
+
component._A_();
|
|
333
349
|
} else {
|
|
334
|
-
component.
|
|
335
|
-
component.
|
|
350
|
+
component._z_ = true;
|
|
351
|
+
component._B_();
|
|
336
352
|
}
|
|
337
353
|
}
|
|
338
354
|
|
|
@@ -348,7 +364,7 @@ function initClientRendered(componentDefs, host) {
|
|
|
348
364
|
if (!host) host = document;
|
|
349
365
|
// Ensure that event handlers to handle delegating events are
|
|
350
366
|
// always attached before initializing any components
|
|
351
|
-
eventDelegation.
|
|
367
|
+
eventDelegation._C_(host);
|
|
352
368
|
var len = componentDefs.length;
|
|
353
369
|
var componentDef;
|
|
354
370
|
var i;
|
|
@@ -461,15 +477,15 @@ function initServerRendered(renderedComponents, host) {
|
|
|
461
477
|
// Ensure that event handlers to handle delegating events are
|
|
462
478
|
// always attached before initializing any components
|
|
463
479
|
indexServerComponentBoundaries(host, runtimeId);
|
|
464
|
-
eventDelegation.
|
|
480
|
+
eventDelegation._C_(host);
|
|
465
481
|
|
|
466
482
|
if (renderedComponents.g) {
|
|
467
|
-
meta.
|
|
483
|
+
meta._D_ = renderedComponents.g;
|
|
468
484
|
}
|
|
469
485
|
|
|
470
486
|
if (renderedComponents.t) {
|
|
471
|
-
meta.
|
|
472
|
-
meta.
|
|
487
|
+
meta._E_ = meta._E_ ?
|
|
488
|
+
meta._E_.concat(renderedComponents.t) :
|
|
473
489
|
renderedComponents.t;
|
|
474
490
|
}
|
|
475
491
|
|
|
@@ -477,11 +493,22 @@ function initServerRendered(renderedComponents, host) {
|
|
|
477
493
|
// and return an array of functions to mount these components
|
|
478
494
|
(renderedComponents.w || []).
|
|
479
495
|
map(function (componentDef) {
|
|
480
|
-
var typeName = meta.
|
|
496
|
+
var typeName = meta._E_[componentDef[1]];
|
|
497
|
+
|
|
498
|
+
return (
|
|
499
|
+
registered[typeName] ||
|
|
500
|
+
document.readyState === "complete" ||
|
|
501
|
+
|
|
502
|
+
// loader.runtime is only going to exist for lasso apps
|
|
503
|
+
// this code is used to detect if a module was registered
|
|
504
|
+
// via a browser.json but not executed.
|
|
505
|
+
loader.runtime &&
|
|
506
|
+
loader.runtime.resolve &&
|
|
507
|
+
loader.runtime.resolve(typeName) ?
|
|
508
|
+
|
|
481
509
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
addPendingDef(componentDef, typeName, meta, host, runtimeId);
|
|
510
|
+
tryHydrateComponent(componentDef, meta, host, runtimeId) :
|
|
511
|
+
addPendingDef(componentDef, typeName, meta, host, runtimeId));
|
|
485
512
|
}).
|
|
486
513
|
reverse().
|
|
487
514
|
forEach(tryInvoke);
|
|
@@ -490,10 +517,10 @@ function initServerRendered(renderedComponents, host) {
|
|
|
490
517
|
}
|
|
491
518
|
|
|
492
519
|
function tryHydrateComponent(rawDef, meta, host, runtimeId) {
|
|
493
|
-
var componentDef = ComponentDef.
|
|
520
|
+
var componentDef = ComponentDef._F_(
|
|
494
521
|
rawDef,
|
|
495
|
-
meta.
|
|
496
|
-
meta.
|
|
522
|
+
meta._E_,
|
|
523
|
+
meta._D_,
|
|
497
524
|
exports);
|
|
498
525
|
|
|
499
526
|
var mount = hydrateComponentAndGetMount(componentDef, host);
|
|
@@ -531,12 +558,12 @@ function hydrateComponentAndGetMount(componentDef, host) {
|
|
|
531
558
|
if (rootNode) {
|
|
532
559
|
delete serverComponentRootNodes[componentId];
|
|
533
560
|
|
|
534
|
-
component.
|
|
561
|
+
component._G_ = rootNode;
|
|
535
562
|
componentsByDOMNode.set(rootNode, component);
|
|
536
563
|
|
|
537
564
|
if (componentDef.C_ & FLAG_WILL_RERENDER_IN_BROWSER) {
|
|
538
|
-
component.
|
|
539
|
-
renderResult = component.
|
|
565
|
+
component.I_ = host;
|
|
566
|
+
renderResult = component._H_(component.U_, true);
|
|
540
567
|
trackComponent(componentDef);
|
|
541
568
|
return function mount() {
|
|
542
569
|
renderResult.afterInsert(host);
|
|
@@ -563,8 +590,8 @@ function tryInvoke(fn) {
|
|
|
563
590
|
}
|
|
564
591
|
|
|
565
592
|
exports.r = register;
|
|
566
|
-
exports.
|
|
567
|
-
exports.
|
|
568
|
-
exports.
|
|
593
|
+
exports._I_ = createComponent;
|
|
594
|
+
exports._J_ = getComponentClass;
|
|
595
|
+
exports.Z_ = win.$initComponents = initServerRendered;
|
|
569
596
|
|
|
570
|
-
require("../../../runtime/components/ComponentsContext").
|
|
597
|
+
require("../../../runtime/components/ComponentsContext")._K_ = initClientRendered;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";var domData = require("../../../runtime/components/dom-data");
|
|
2
|
-
var componentsByDOMNode = domData.
|
|
3
|
-
var keysByDOMNode = domData.
|
|
4
|
-
var vElementsByDOMNode = domData.
|
|
5
|
-
var vPropsByDOMNode = domData.
|
|
2
|
+
var componentsByDOMNode = domData._r_;
|
|
3
|
+
var keysByDOMNode = domData._M_;
|
|
4
|
+
var vElementsByDOMNode = domData._N_;
|
|
5
|
+
var vPropsByDOMNode = domData._O_;
|
|
6
6
|
var markoUID = window.$MUID || (window.$MUID = { i: 0 });
|
|
7
7
|
var runtimeId = markoUID.i++;
|
|
8
8
|
|
|
@@ -27,7 +27,7 @@ function getComponentForEl(el, host) {
|
|
|
27
27
|
component = componentsByDOMNode.get(node);
|
|
28
28
|
}
|
|
29
29
|
} else if (vElement = vElementsByDOMNode.get(node)) {
|
|
30
|
-
component = vElement.
|
|
30
|
+
component = vElement._P_;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
if (component) {
|
|
@@ -41,7 +41,7 @@ function getComponentForEl(el, host) {
|
|
|
41
41
|
function destroyComponentForNode(node) {
|
|
42
42
|
var componentToDestroy = componentsByDOMNode.get(node.fragment || node);
|
|
43
43
|
if (componentToDestroy) {
|
|
44
|
-
componentToDestroy.
|
|
44
|
+
componentToDestroy._Q_();
|
|
45
45
|
delete componentLookup[componentToDestroy.id];
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -103,7 +103,7 @@ function getMarkoPropsFromEl(el) {
|
|
|
103
103
|
var virtualProps;
|
|
104
104
|
|
|
105
105
|
if (vElement) {
|
|
106
|
-
virtualProps = vElement.
|
|
106
|
+
virtualProps = vElement._R_;
|
|
107
107
|
} else {
|
|
108
108
|
virtualProps = vPropsByDOMNode.get(el);
|
|
109
109
|
if (!virtualProps) {
|
|
@@ -167,13 +167,13 @@ componentId)
|
|
|
167
167
|
|
|
168
168
|
|
|
169
169
|
|
|
170
|
-
exports.
|
|
171
|
-
exports.
|
|
172
|
-
exports.
|
|
173
|
-
exports.
|
|
174
|
-
exports.
|
|
175
|
-
exports.
|
|
176
|
-
exports.
|
|
177
|
-
exports.
|
|
178
|
-
exports.
|
|
179
|
-
exports.
|
|
170
|
+
exports._S_ = runtimeId;
|
|
171
|
+
exports._o_ = componentLookup;
|
|
172
|
+
exports.Y_ = getComponentForEl;
|
|
173
|
+
exports._T_ = destroyComponentForNode;
|
|
174
|
+
exports._U_ = destroyNodeRecursive;
|
|
175
|
+
exports._V_ = nextComponentIdProvider;
|
|
176
|
+
exports._W_ = attachBubblingEvent;
|
|
177
|
+
exports._t_ = getMarkoPropsFromEl;
|
|
178
|
+
exports._p_ = addComponentRootToKeyedElements;
|
|
179
|
+
exports._X_ = normalizeComponentKey;
|
|
@@ -5,6 +5,16 @@ function nextComponentIdProvider(out) {
|
|
|
5
5
|
var prefix = out.global.componentIdPrefix || out.global.widgetIdPrefix || "s"; // "s" is for server (we use "b" for the browser)
|
|
6
6
|
var nextId = 0;
|
|
7
7
|
|
|
8
|
+
// eslint-disable-next-line no-constant-condition
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
8
18
|
return function nextComponentId() {
|
|
9
19
|
return prefix + nextId++;
|
|
10
20
|
};
|
|
@@ -19,7 +29,7 @@ extraArgs)
|
|
|
19
29
|
if (handlerMethodName) {
|
|
20
30
|
if (extraArgs) {
|
|
21
31
|
var component = componentDef.i_;
|
|
22
|
-
var eventIndex = component.
|
|
32
|
+
var eventIndex = component._d_++;
|
|
23
33
|
|
|
24
34
|
// If we are not going to be doing a rerender in the browser
|
|
25
35
|
// then we need to actually store the extra args with the UI component
|
|
@@ -31,9 +41,9 @@ extraArgs)
|
|
|
31
41
|
|
|
32
42
|
if (!(componentDef.C_ & FLAG_WILL_RERENDER_IN_BROWSER)) {
|
|
33
43
|
if (eventIndex === 0) {
|
|
34
|
-
component.
|
|
44
|
+
component._b_ = [extraArgs];
|
|
35
45
|
} else {
|
|
36
|
-
component.
|
|
46
|
+
component._b_.push(extraArgs);
|
|
37
47
|
}
|
|
38
48
|
}
|
|
39
49
|
|
|
@@ -52,10 +62,10 @@ extraArgs)
|
|
|
52
62
|
}
|
|
53
63
|
}
|
|
54
64
|
|
|
55
|
-
exports.
|
|
56
|
-
exports.
|
|
57
|
-
exports.
|
|
58
|
-
exports.
|
|
59
|
-
exports.
|
|
65
|
+
exports._V_ = nextComponentIdProvider;
|
|
66
|
+
exports._L_ = true;
|
|
67
|
+
exports._W_ = attachBubblingEvent;
|
|
68
|
+
exports._T_ = function noop() {};
|
|
69
|
+
exports._U_ = function noop() {};
|
|
60
70
|
|
|
61
71
|
// eslint-disable-next-line no-constant-condition
|