marko 5.29.1 → 5.30.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/bin/markoc.js +18 -18
- package/dist/core-tags/core/await/index.d.marko +10 -0
- 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/index.d.marko +10 -0
- 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
- package/dist/core-tags/core/await/index.marko +0 -13
- package/src/core-tags/core/await/index.marko +0 -13
@@ -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
|