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.
Files changed (167) hide show
  1. package/README.md +1 -1
  2. package/bin/markoc.js +18 -18
  3. package/dist/core-tags/core/await/renderer.js +5 -1
  4. package/dist/node_modules/@internal/components-beginComponent/index.js +13 -3
  5. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +331 -0
  6. package/dist/node_modules/@internal/components-define-widget-legacy/index.js +18 -0
  7. package/dist/node_modules/@internal/components-define-widget-legacy/package.json +11 -0
  8. package/dist/node_modules/@internal/components-entry/index-browser.js +2 -2
  9. package/dist/node_modules/@internal/components-entry/index.js +73 -45
  10. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +74 -0
  11. package/dist/node_modules/@internal/components-entry-legacy/index.js +15 -0
  12. package/dist/node_modules/@internal/components-entry-legacy/package.json +11 -0
  13. package/dist/node_modules/@internal/components-registry/index-browser.js +70 -43
  14. package/dist/node_modules/@internal/components-registry/index.js +2 -2
  15. package/dist/node_modules/@internal/components-util/index-browser.js +17 -17
  16. package/dist/node_modules/@internal/components-util/index.js +18 -8
  17. package/dist/node_modules/@internal/create-readable/index-browser.js +1 -1
  18. package/dist/node_modules/@internal/create-readable/index.js +9 -9
  19. package/dist/node_modules/@internal/set-immediate/index-browser.js +1 -1
  20. package/dist/node_modules/@internal/set-immediate/index-worker.js +2 -2
  21. package/dist/node_modules/@internal/set-immediate/index.js +2 -2
  22. package/dist/runtime/RenderResult.js +3 -3
  23. package/dist/runtime/components/Component.js +146 -148
  24. package/dist/runtime/components/ComponentDef.js +41 -27
  25. package/dist/runtime/components/ComponentsContext.js +6 -6
  26. package/dist/runtime/components/GlobalComponentsContext.js +3 -3
  27. package/dist/runtime/components/KeySequence.js +3 -3
  28. package/dist/runtime/components/ServerComponent.js +13 -13
  29. package/dist/runtime/components/State.js +27 -27
  30. package/dist/runtime/components/attach-detach.js +7 -7
  31. package/dist/runtime/components/defineComponent.js +5 -5
  32. package/dist/runtime/components/dom-data.js +6 -6
  33. package/dist/runtime/components/event-delegation.js +10 -10
  34. package/dist/runtime/components/legacy/browser.json +9 -0
  35. package/dist/runtime/components/legacy/defineComponent-legacy.js +32 -0
  36. package/dist/runtime/components/legacy/defineRenderer-legacy.js +171 -0
  37. package/dist/runtime/components/legacy/defineWidget-legacy.js +1 -0
  38. package/dist/runtime/components/legacy/dependencies/html.js +3 -0
  39. package/dist/runtime/components/legacy/dependencies/index.js +178 -0
  40. package/dist/runtime/components/legacy/dependencies/vdom.js +3 -0
  41. package/dist/runtime/components/legacy/index.js +1 -0
  42. package/dist/runtime/components/legacy/jquery.js +51 -0
  43. package/dist/runtime/components/legacy/ready.js +152 -0
  44. package/dist/runtime/components/legacy/renderer-legacy.js +230 -0
  45. package/dist/runtime/components/renderer.js +30 -26
  46. package/dist/runtime/components/update-manager.js +10 -10
  47. package/dist/runtime/createOut.js +1 -1
  48. package/dist/runtime/dom-insert.js +5 -5
  49. package/dist/runtime/helpers/_change-case.js +2 -2
  50. package/dist/runtime/helpers/dynamic-tag.js +7 -9
  51. package/dist/runtime/helpers/style-value.js +7 -2
  52. package/dist/runtime/html/AsyncStream.js +20 -20
  53. package/dist/runtime/html/BufferedWriter.js +2 -2
  54. package/dist/runtime/html/helpers/_dynamic-attr.js +2 -2
  55. package/dist/runtime/html/helpers/attr.js +19 -6
  56. package/dist/runtime/html/helpers/attrs.js +7 -0
  57. package/dist/runtime/html/helpers/data-marko.js +2 -2
  58. package/dist/runtime/html/helpers/escape-quotes.js +1 -1
  59. package/dist/runtime/html/helpers/escape-xml.js +1 -1
  60. package/dist/runtime/html/helpers/merge-attrs.js +38 -7
  61. package/dist/runtime/html/index.js +2 -2
  62. package/dist/runtime/renderable.js +9 -6
  63. package/dist/runtime/vdom/AsyncVDOMBuilder.js +86 -86
  64. package/dist/runtime/vdom/VComponent.js +3 -3
  65. package/dist/runtime/vdom/VDocumentFragment.js +7 -7
  66. package/dist/runtime/vdom/VElement.js +61 -50
  67. package/dist/runtime/vdom/VFragment.js +8 -8
  68. package/dist/runtime/vdom/VNode.js +36 -36
  69. package/dist/runtime/vdom/VText.js +8 -8
  70. package/dist/runtime/vdom/helpers/attrs.js +24 -4
  71. package/dist/runtime/vdom/helpers/merge-attrs.js +16 -0
  72. package/dist/runtime/vdom/helpers/v-element.js +1 -1
  73. package/dist/runtime/vdom/helpers/v-text.js +1 -1
  74. package/dist/runtime/vdom/hot-reload.js +19 -19
  75. package/dist/runtime/vdom/index.js +2 -2
  76. package/dist/runtime/vdom/morphdom/fragment.js +5 -5
  77. package/dist/runtime/vdom/morphdom/helpers.js +5 -5
  78. package/dist/runtime/vdom/morphdom/index.js +56 -56
  79. package/dist/runtime/vdom/morphdom/specialElHandlers.js +7 -7
  80. package/dist/runtime/vdom/preserve-attrs.js +1 -1
  81. package/dist/runtime/vdom/vdom.js +14 -14
  82. package/docs/10-awesome-marko-features.md +1 -1
  83. package/docs/body-content.md +3 -3
  84. package/docs/class-components.md +6 -6
  85. package/docs/cloudflare-workers.md +3 -3
  86. package/docs/compiler.md +5 -5
  87. package/docs/express.md +2 -2
  88. package/docs/http.md +1 -1
  89. package/docs/koa.md +1 -1
  90. package/docs/lasso.md +1 -1
  91. package/docs/marko-vs-react.md +2 -2
  92. package/docs/rendering.md +6 -6
  93. package/docs/rollup.md +30 -30
  94. package/docs/troubleshooting-streaming.md +1 -1
  95. package/docs/typescript.md +1 -1
  96. package/docs/vite.md +3 -3
  97. package/docs/webpack.md +25 -25
  98. package/docs/why-is-marko-fast.md +2 -2
  99. package/index.d.ts +1 -0
  100. package/legacy-components-browser.marko +15 -0
  101. package/legacy-components.js +7 -0
  102. package/package.json +51 -45
  103. package/src/compiler/config.js +1 -1
  104. package/src/compiler/index.js +5 -5
  105. package/src/core-tags/core/__flush_here_and_after__.js +1 -1
  106. package/src/core-tags/core/await/AsyncValue.js +1 -1
  107. package/src/core-tags/core/await/renderer.js +8 -4
  108. package/src/core-tags/core/await/reorderer-renderer.js +1 -1
  109. package/src/node-require/browser-refresh.js +2 -2
  110. package/src/node-require/index.js +2 -2
  111. package/src/node_modules/@internal/components-beginComponent/index.js +16 -6
  112. package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +331 -0
  113. package/src/node_modules/@internal/components-define-widget-legacy/index.js +18 -0
  114. package/src/node_modules/@internal/components-define-widget-legacy/package.json +11 -0
  115. package/src/node_modules/@internal/components-entry/index.js +65 -37
  116. package/src/node_modules/@internal/components-entry-legacy/index-browser.js +74 -0
  117. package/src/node_modules/@internal/components-entry-legacy/index.js +15 -0
  118. package/src/node_modules/@internal/components-entry-legacy/package.json +11 -0
  119. package/src/node_modules/@internal/components-registry/index-browser.js +33 -6
  120. package/src/node_modules/@internal/components-util/index.js +10 -0
  121. package/src/runtime/RenderResult.js +3 -3
  122. package/src/runtime/components/Component.js +16 -18
  123. package/src/runtime/components/ComponentDef.js +22 -8
  124. package/src/runtime/components/ComponentsContext.js +1 -1
  125. package/src/runtime/components/State.js +2 -2
  126. package/src/runtime/components/attach-detach.js +1 -1
  127. package/src/runtime/components/dom-data.js +1 -1
  128. package/src/runtime/components/legacy/browser.json +9 -0
  129. package/src/runtime/components/legacy/defineComponent-legacy.js +32 -0
  130. package/src/runtime/components/legacy/defineRenderer-legacy.js +171 -0
  131. package/src/runtime/components/legacy/defineWidget-legacy.js +1 -0
  132. package/src/runtime/components/legacy/dependencies/html.js +3 -0
  133. package/src/runtime/components/legacy/dependencies/index.js +178 -0
  134. package/src/runtime/components/legacy/dependencies/vdom.js +3 -0
  135. package/src/runtime/components/legacy/index.js +1 -0
  136. package/src/runtime/components/legacy/jquery.js +51 -0
  137. package/src/runtime/components/legacy/ready.js +152 -0
  138. package/src/runtime/components/legacy/renderer-legacy.js +230 -0
  139. package/src/runtime/components/renderer.js +4 -0
  140. package/src/runtime/components/update-manager.js +1 -1
  141. package/src/runtime/dom-insert.js +1 -1
  142. package/src/runtime/helpers/dynamic-tag.js +2 -4
  143. package/src/runtime/helpers/style-value.js +7 -2
  144. package/src/runtime/html/AsyncStream.js +5 -5
  145. package/src/runtime/html/BufferedWriter.js +1 -1
  146. package/src/runtime/html/StringWriter.js +1 -1
  147. package/src/runtime/html/helpers/attr.js +15 -2
  148. package/src/runtime/html/helpers/attrs.js +7 -0
  149. package/src/runtime/html/helpers/merge-attrs.js +38 -7
  150. package/src/runtime/html/hot-reload.js +1 -1
  151. package/src/runtime/html/index.js +2 -2
  152. package/src/runtime/renderable.js +5 -2
  153. package/src/runtime/vdom/AsyncVDOMBuilder.js +2 -2
  154. package/src/runtime/vdom/VComponent.js +1 -1
  155. package/src/runtime/vdom/VDocumentFragment.js +1 -1
  156. package/src/runtime/vdom/VElement.js +17 -6
  157. package/src/runtime/vdom/VFragment.js +1 -1
  158. package/src/runtime/vdom/VNode.js +1 -1
  159. package/src/runtime/vdom/VText.js +1 -1
  160. package/src/runtime/vdom/helpers/attrs.js +26 -6
  161. package/src/runtime/vdom/helpers/merge-attrs.js +16 -0
  162. package/src/runtime/vdom/hot-reload.js +1 -1
  163. package/src/runtime/vdom/index.js +2 -2
  164. package/src/runtime/vdom/morphdom/fragment.js +1 -1
  165. package/src/runtime/vdom/morphdom/specialElHandlers.js +1 -1
  166. package/src/taglib/index.js +1 -1
  167. package/tags-html.d.ts +9 -0
package/README.md CHANGED
@@ -83,7 +83,7 @@ export default {
83
83
  },
84
84
  increment() {
85
85
  this.state.count++;
86
- }
86
+ },
87
87
  };
88
88
  ```
89
89
 
package/bin/markoc.js CHANGED
@@ -25,7 +25,7 @@ var appModulePath = require("app-module-path");
25
25
  var mmOptions = {
26
26
  matchBase: true,
27
27
  dot: true,
28
- flipNegate: true
28
+ flipNegate: true,
29
29
  };
30
30
 
31
31
  function relPath(path) {
@@ -38,55 +38,55 @@ var args = require("argly")
38
38
  .createParser({
39
39
  "--help": {
40
40
  type: "boolean",
41
- description: "Show this help message"
41
+ description: "Show this help message",
42
42
  },
43
43
  "--files --file -f *": {
44
44
  type: "string[]",
45
- description: "A set of directories or files to compile"
45
+ description: "A set of directories or files to compile",
46
46
  },
47
47
  "--ignore -i": {
48
48
  type: "string[]",
49
- description: 'An ignore rule (default: --ignore "/node_modules" ".*")'
49
+ description: 'An ignore rule (default: --ignore "/node_modules" ".*")',
50
50
  },
51
51
  "--clean -c": {
52
52
  type: "boolean",
53
- description: "Clean all of the *.marko.js files"
53
+ description: "Clean all of the *.marko.js files",
54
54
  },
55
55
  "--force": {
56
56
  type: "boolean",
57
- description: "Force template recompilation even if unchanged"
57
+ description: "Force template recompilation even if unchanged",
58
58
  },
59
59
  "--paths -p": {
60
60
  type: "string[]",
61
61
  description:
62
- "Additional directories to add to the Node.js module search path"
62
+ "Additional directories to add to the Node.js module search path",
63
63
  },
64
64
  "--quiet -q": {
65
65
  type: "boolean",
66
- description: "Only print warnings and errors"
66
+ description: "Only print warnings and errors",
67
67
  },
68
68
  "--migrate -m": {
69
69
  type: "boolean",
70
70
  description:
71
- "Run any migrations that exist for the provided template and write changes to disk"
71
+ "Run any migrations that exist for the provided template and write changes to disk",
72
72
  },
73
73
  "--strip-types -t": {
74
74
  type: "boolean",
75
- description: "Strip all type information from the compiled template"
75
+ description: "Strip all type information from the compiled template",
76
76
  },
77
77
  "--browser -b": {
78
78
  type: "boolean",
79
- description: "Browser output"
79
+ description: "Browser output",
80
80
  },
81
81
  "--source-maps -s": {
82
82
  type: "string",
83
83
  description:
84
- "Output a sourcemap beside the compiled file. (use --source-maps inline for an inline source map)"
84
+ "Output a sourcemap beside the compiled file. (use --source-maps inline for an inline source map)",
85
85
  },
86
86
  "--version -v": {
87
87
  type: "boolean",
88
- description: "Print markoc and marko compiler versions to the console"
89
- }
88
+ description: "Print markoc and marko compiler versions to the console",
89
+ },
90
90
  })
91
91
  .usage("Usage: $0 <pattern> [options]")
92
92
  .example("Compile a single template", "$0 template.marko")
@@ -143,7 +143,7 @@ var compileOptions = {
143
143
  stripTypes: args.stripTypes,
144
144
  sourceMaps: args.sourceMaps || false,
145
145
  compilerType: "markoc",
146
- compilerVersion: markoPkgVersion || markocPkgVersion
146
+ compilerVersion: markoPkgVersion || markocPkgVersion,
147
147
  };
148
148
 
149
149
  var force = args.force;
@@ -242,7 +242,7 @@ function walk(files, options, done) {
242
242
  done(null);
243
243
  }
244
244
  }
245
- }
245
+ },
246
246
  };
247
247
 
248
248
  function doWalk(dir) {
@@ -316,7 +316,7 @@ if (args.clean) {
316
316
  context.endAsync();
317
317
  });
318
318
  }
319
- }
319
+ },
320
320
  },
321
321
  function () {
322
322
  if (deleteCount === 0) {
@@ -420,7 +420,7 @@ if (args.clean) {
420
420
  ) {
421
421
  compile(file, context);
422
422
  }
423
- }
423
+ },
424
424
  },
425
425
  function (err) {
426
426
  if (err) {
@@ -220,7 +220,11 @@ function renderContents(err, data, input, out) {
220
220
  if (err) {
221
221
  if (input.catch) {
222
222
  if (errorRenderer) {
223
- errorRenderer(out, err);
223
+ try {
224
+ errorRenderer(out, err);
225
+ } catch (err2) {
226
+ out.error(err2);
227
+ }
224
228
  }
225
229
  } else {
226
230
  out.error(err);
@@ -4,6 +4,7 @@ const ComponentDef = require("../../../runtime/components/ComponentDef");
4
4
 
5
5
  var FLAG_WILL_RERENDER_IN_BROWSER = 1;
6
6
  // var FLAG_HAS_RENDER_BODY = 2;
7
+ var FLAG_OLD_HYDRATE_NO_CREATE = 8;
7
8
 
8
9
  module.exports = function beginComponent(
9
10
  componentsContext,
@@ -11,14 +12,19 @@ component,
11
12
  key,
12
13
  ownerComponentDef,
13
14
  isSplitComponent,
14
- isImplicitComponent)
15
+ isImplicitComponent,
16
+ existingComponentDef)
15
17
  {
16
18
  var componentId = component.id;
17
19
 
18
- var componentDef = componentsContext.k_ = new ComponentDef(
20
+ // existingComponentDef is only here to allow binding a conditional
21
+ // widget. It should be removed when the legacy compat layer is removed.
22
+ var componentDef =
23
+ existingComponentDef || (
24
+ componentsContext.k_ = new ComponentDef(
19
25
  component,
20
26
  componentId,
21
- componentsContext);
27
+ componentsContext));
22
28
 
23
29
 
24
30
  var ownerIsRenderBoundary =
@@ -54,6 +60,10 @@ isImplicitComponent)
54
60
  componentsContext.p_ = false;
55
61
  }
56
62
 
63
+ if (out.global.oldHydrateNoCreate === true) {
64
+ componentDef.C_ |= FLAG_OLD_HYDRATE_NO_CREATE;
65
+ }
66
+
57
67
  if ((ownerIsRenderBoundary || ownerWillRerender) && key != null) {
58
68
  out.w(
59
69
  "<!--" +
@@ -0,0 +1,331 @@
1
+ "use strict";
2
+ /* jshint newcap:false */
3
+
4
+ var BaseState;
5
+ var BaseComponent;
6
+ var inherit;
7
+ var loader = require("@internal/loader");
8
+ var registry = require("@internal/components-registry");
9
+ var jQuery = require("../../../runtime/components/legacy/jquery");
10
+ var ready = require("../../../runtime/components/legacy/ready");
11
+
12
+
13
+ var stateToJSONDef = {
14
+ enumerable: false,
15
+ value: function returnSelf() {
16
+ return this;
17
+ }
18
+ };
19
+ function noop() {}
20
+
21
+ module.exports = function defineWidget(def, renderer) {
22
+ def = def.Widget || def;
23
+
24
+ if (def.E_) {
25
+ return def;
26
+ }
27
+
28
+ var ComponentClass = function () {};
29
+ var proto;
30
+ var legacyInit;
31
+
32
+ if (typeof def === "function") {
33
+ proto = def.prototype;
34
+ legacyInit = def;
35
+ } else if (typeof def === "object") {
36
+ proto = def;
37
+ legacyInit = def.init;
38
+ } else {
39
+ throw TypeError();
40
+ }
41
+
42
+ ComponentClass.prototype = proto;
43
+
44
+ // We don't use the constructor provided by the user
45
+ // since we don't invoke their constructor until
46
+ // we have had a chance to do our own initialization.
47
+ // Instead, we store their constructor in the "initComponent"
48
+ // property and that method gets called later inside
49
+ // init-components-browser.js
50
+ function Component(id, doc) {
51
+ BaseComponent.call(this, id, doc);
52
+ }
53
+
54
+ if (!proto.E_) {
55
+ // Inherit from Component if they didn't already
56
+ ComponentClass.prototype = Object.create(BaseComponent.prototype);
57
+ for (var propName in proto) {
58
+ if (proto.hasOwnProperty(propName)) {
59
+ ComponentClass.prototype[propName] = proto[propName];
60
+ }
61
+ }
62
+ }
63
+
64
+ // The same prototype will be used by our constructor after
65
+ // we he have set up the prototype chain using the inherit function
66
+ proto = Component.prototype = ComponentClass.prototype;
67
+ proto.F_ = true;
68
+
69
+ proto.constructor = def.constructor = Component;
70
+
71
+ Object.defineProperty(proto, "state", {
72
+ get: function () {
73
+ var raw = this.G_ && this.G_.H_;
74
+
75
+ if (raw && !raw.toJSON) {
76
+ Object.defineProperty(this.G_.H_, "toJSON", stateToJSONDef);
77
+ }
78
+
79
+ return raw;
80
+ },
81
+ set: function (newState) {
82
+ newState = newState || {};
83
+ // eslint-disable-next-line no-constant-condition
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ this.setState(newState);
97
+ }
98
+ });
99
+
100
+ Object.defineProperty(proto, "__document", {
101
+ get: function () {
102
+ // eslint-disable-next-line no-constant-condition
103
+
104
+
105
+
106
+ return this.I_;
107
+ }
108
+ });
109
+
110
+ Object.defineProperty(proto, "el", {
111
+ get: function () {
112
+ // eslint-disable-next-line no-constant-condition
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+ return this.J_;
125
+ }
126
+ });
127
+
128
+ // get legacy methods
129
+
130
+ proto.K_ = proto.onRender;
131
+ Object.defineProperty(proto, "onRender", {
132
+ get: noop,
133
+ set: function (v) {
134
+ proto.K_ = v;
135
+ }
136
+ });
137
+
138
+ proto.L_ = proto.onUpdate;
139
+ Object.defineProperty(proto, "onUpdate", {
140
+ get: function () {
141
+ return modernMountOrUpdate;
142
+ },
143
+ set: function (v) {
144
+ proto.L_ = v;
145
+ }
146
+ });
147
+
148
+ proto.M_ = proto.onDestroy;
149
+ Object.defineProperty(proto, "onDestroy", {
150
+ get: function () {
151
+ return modernOnDestory;
152
+ },
153
+ set: function (v) {
154
+ proto.M_ = v;
155
+ }
156
+ });
157
+
158
+ proto.getWidget = proto.getComponent;
159
+ proto.getWidgets = proto.getComponents;
160
+ proto.onMount = modernMountOrUpdate;
161
+
162
+ if (legacyInit) {
163
+ proto.N_ = legacyInit;
164
+ }
165
+
166
+ // convert legacy to modern
167
+ proto.O_ = proto.update;
168
+ proto.update = function () {
169
+ if (this.P_) {
170
+ // eslint-disable-next-line no-constant-condition
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+ this.destroy = modernOnDestory;
181
+ this.P_ = false;
182
+ }
183
+ this.Q_ = true;
184
+ if (this.J_) {
185
+ this.onBeforeUpdate && this.onBeforeUpdate();
186
+ }
187
+
188
+ this.O_();
189
+ this.Q_ = false;
190
+ };
191
+
192
+ function modernMountOrUpdate() {
193
+ var self = this;
194
+ var el = this.l_["@_wbind"];
195
+ var prevEl = this.J_;
196
+
197
+ if (prevEl !== el) {
198
+ this.J_ = el;
199
+
200
+ if (prevEl) {
201
+ this.onBeforeDestroy && this.onBeforeDestroy();
202
+ this.M_ && this.M_();
203
+ this.R_ = undefined;
204
+ this.removeAllListeners();
205
+ }
206
+
207
+ if (el) {
208
+ this.N_ && this.N_(this.widgetConfig || {});
209
+ this.K_ && this.K_({ firstRender: true });
210
+ this.R_ = legacyRender;
211
+
212
+ // eslint-disable-next-line no-constant-condition
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+ el.__widget = this;
223
+
224
+ }
225
+ } else if (el) {
226
+ if (prevEl) {
227
+ this.L_ && this.L_();
228
+ }
229
+
230
+ if (this.S_) {
231
+ this.K_ &&
232
+ this.K_({ firstRender: false });
233
+ }
234
+ }
235
+
236
+ this.T_ = this.U_;
237
+ this.U_ = null;
238
+ this.S_ = false;
239
+ }
240
+
241
+ function legacyRender() {
242
+ if (!this.Q_) {
243
+ this.onBeforeUpdate && this.onBeforeUpdate();
244
+ }
245
+
246
+ this.S_ = true;
247
+ }
248
+
249
+ function modernOnDestory() {
250
+ if (this.J_) {
251
+ this.onBeforeDestroy && this.onBeforeDestroy();
252
+ this.M_ && this.M_();
253
+ this.J_ = null;
254
+ }
255
+ }
256
+
257
+ // Set a flag on the constructor function to make it clear this is
258
+ // a component so that we can short-circuit this work later
259
+ Component.E_ = true;
260
+
261
+ function State() {
262
+ BaseState.apply(this, arguments);
263
+ }
264
+ inherit(State, BaseState);
265
+ proto.V_ = State;
266
+
267
+ jQuery.patchComponent(
268
+ window.$,
269
+ proto,
270
+ true /* don't throw error until used if `$` is missing*/);
271
+
272
+
273
+ ready.patchComponent(proto);
274
+
275
+ if (!renderer) {
276
+ renderer = ComponentClass.renderer || ComponentClass.prototype.renderer;
277
+ if (renderer) {
278
+ // Legacy support
279
+ var createOut = renderer.createOut;
280
+ if (typeof renderer !== "function") {
281
+ var rendererObject = renderer;
282
+ renderer = function (input, out) {
283
+ var rendererFunc = rendererObject.renderer || rendererObject.render;
284
+ rendererFunc(input, out);
285
+ };
286
+ renderer.createOut = createOut;
287
+ }
288
+
289
+ renderer.render = function (input) {
290
+ var out = createOut();
291
+ renderer(input, out);
292
+ return out.end();
293
+ };
294
+ }
295
+ }
296
+
297
+ if (renderer) {
298
+ // Add the rendering related methods as statics on the
299
+ // new component constructor function
300
+ Component.renderer = proto.W_ = renderer;
301
+ Component.render = renderer.render;
302
+ Component.renderSync = renderer.renderSync;
303
+ }
304
+
305
+ // eslint-disable-next-line no-constant-condition
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+ Component._isWidget = true;
315
+
316
+
317
+ var template = def.template;
318
+ if (template) {
319
+ if (typeof template === "string") {
320
+ template = loader(template);
321
+ }
322
+
323
+ registry.r(template.X_, function () {return Component;});
324
+ }
325
+
326
+ return Component;
327
+ };
328
+
329
+ BaseState = require("../../../runtime/components/State");
330
+ BaseComponent = require("../../../runtime/components/Component");
331
+ inherit = require("raptor-util/inherit");
@@ -0,0 +1,18 @@
1
+ "use strict";module.exports = function defineWidget(def, renderer) {
2
+ if (def.E_) {
3
+ return def;
4
+ }
5
+
6
+ if (renderer) {
7
+ return {
8
+ E_: true,
9
+ _isWidget: true,
10
+ renderer: renderer,
11
+ render: renderer.render,
12
+ renderSync: renderer.renderSync,
13
+ template: renderer.template
14
+ };
15
+ } else {
16
+ return { E_: true, _isWidget: true };
17
+ }
18
+ };
@@ -0,0 +1,11 @@
1
+ {
2
+ "main": "./index.js",
3
+ "browser": "./index-browser.js",
4
+ "exports": {
5
+ ".": {
6
+ "worker": "./index.js",
7
+ "browser": "./index-browser.js",
8
+ "default": "./index.js"
9
+ }
10
+ }
11
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";var registry = require("@internal/components-registry");
2
2
 
3
- exports.getComponentForEl = require("@internal/components-util").E_;
4
- exports.init = registry.F_;
3
+ exports.getComponentForEl = require("@internal/components-util").Y_;
4
+ exports.init = registry.Z_;
5
5
  exports.register = function (id, component) {
6
6
  registry.r(id, function () {
7
7
  return component;