marko 5.37.6 → 6.0.0-3.11

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 (648) hide show
  1. package/dist/common/attr-tag.d.ts +8 -0
  2. package/dist/common/compat-meta.d.ts +2 -0
  3. package/dist/common/for.d.ts +5 -0
  4. package/dist/common/helpers.d.ts +7 -0
  5. package/dist/common/meta.d.ts +2 -0
  6. package/dist/common/types.d.ts +105 -0
  7. package/dist/debug/dom.js +2111 -0
  8. package/dist/debug/dom.mjs +2088 -0
  9. package/dist/debug/html.js +2740 -0
  10. package/dist/debug/html.mjs +2663 -0
  11. package/dist/dom/abort-signal.d.ts +3 -0
  12. package/dist/dom/compat.d.ts +20 -0
  13. package/dist/dom/control-flow.d.ts +14 -0
  14. package/dist/dom/controllable.d.ts +12 -0
  15. package/dist/dom/dom.d.ts +19 -0
  16. package/dist/dom/event.d.ts +4 -0
  17. package/dist/dom/parse-html.d.ts +5 -0
  18. package/dist/dom/queue.d.ts +10 -0
  19. package/dist/dom/reconcile.d.ts +2 -0
  20. package/dist/dom/renderer.d.ts +21 -0
  21. package/dist/dom/resolve-cursor-position.d.ts +1 -0
  22. package/dist/dom/resume.d.ts +9 -0
  23. package/dist/dom/schedule.d.ts +2 -0
  24. package/dist/dom/scope.d.ts +7 -0
  25. package/dist/dom/signals.d.ts +39 -0
  26. package/dist/dom/template.d.ts +3 -0
  27. package/dist/dom/walker.d.ts +4 -0
  28. package/dist/dom.d.ts +15 -0
  29. package/dist/dom.js +1370 -0
  30. package/dist/dom.mjs +1350 -0
  31. package/dist/html/attrs.d.ts +14 -0
  32. package/dist/html/compat.d.ts +14 -0
  33. package/dist/html/content.d.ts +5 -0
  34. package/dist/html/dynamic-tag.d.ts +12 -0
  35. package/dist/html/for.d.ts +4 -0
  36. package/dist/html/inlined-runtimes.d.ts +2 -0
  37. package/dist/html/serializer.d.ts +14 -0
  38. package/dist/html/template.d.ts +3 -0
  39. package/dist/html/writer.d.ts +114 -0
  40. package/dist/html.d.ts +9 -0
  41. package/dist/html.js +1818 -0
  42. package/dist/html.mjs +1744 -0
  43. package/dist/translator/core/attrs.d.ts +3 -0
  44. package/dist/translator/core/client.d.ts +14 -0
  45. package/dist/translator/core/const.d.ts +3 -0
  46. package/dist/translator/core/debug.d.ts +3 -0
  47. package/dist/translator/core/define.d.ts +3 -0
  48. package/dist/translator/core/effect.d.ts +3 -0
  49. package/dist/translator/core/export.d.ts +3 -0
  50. package/dist/translator/core/for.d.ts +67 -0
  51. package/dist/translator/core/html-comment.d.ts +12 -0
  52. package/dist/translator/core/html-script.d.ts +9 -0
  53. package/dist/translator/core/html-style.d.ts +9 -0
  54. package/dist/translator/core/id.d.ts +3 -0
  55. package/dist/translator/core/if.d.ts +53 -0
  56. package/dist/translator/core/import.d.ts +3 -0
  57. package/dist/translator/core/index.d.ts +152 -0
  58. package/dist/translator/core/let.d.ts +8 -0
  59. package/dist/translator/core/lifecycle.d.ts +10 -0
  60. package/dist/translator/core/log.d.ts +3 -0
  61. package/dist/translator/core/return.d.ts +6 -0
  62. package/dist/translator/core/script.d.ts +3 -0
  63. package/dist/translator/core/server.d.ts +14 -0
  64. package/dist/translator/core/static.d.ts +14 -0
  65. package/dist/translator/core/style.d.ts +3 -0
  66. package/dist/translator/index.d.ts +201 -0
  67. package/dist/translator/index.js +9134 -490
  68. package/dist/translator/util/assert.d.ts +3 -0
  69. package/dist/translator/util/binding-has-downstream-expressions.d.ts +2 -0
  70. package/dist/translator/util/entry-builder.d.ts +19 -0
  71. package/dist/translator/util/evaluate.d.ts +11 -0
  72. package/dist/translator/util/for-each-identifier.d.ts +2 -0
  73. package/dist/translator/util/get-defined-binding-expression.d.ts +3 -0
  74. package/dist/translator/util/get-known-attr-values.d.ts +2 -0
  75. package/dist/translator/util/get-parent-tag.d.ts +2 -0
  76. package/dist/translator/util/get-root.d.ts +7 -0
  77. package/dist/translator/util/get-tag-name.d.ts +2 -0
  78. package/dist/translator/util/is-core-tag.d.ts +10 -0
  79. package/dist/translator/util/is-stateful.d.ts +3 -0
  80. package/dist/translator/util/is-static.d.ts +2 -0
  81. package/dist/translator/util/marko-config.d.ts +4 -0
  82. package/dist/translator/util/nested-attribute-tags.d.ts +17 -0
  83. package/dist/translator/util/normalize-string-expression.d.ts +3 -0
  84. package/dist/translator/util/optional.d.ts +20 -0
  85. package/dist/translator/util/plugin-hooks.d.ts +4 -0
  86. package/dist/translator/util/references.d.ts +84 -0
  87. package/dist/translator/util/runtime-info.d.ts +5 -0
  88. package/dist/translator/util/runtime.d.ts +15 -0
  89. package/dist/translator/util/scope-read.d.ts +6 -0
  90. package/dist/translator/util/sections.d.ts +51 -0
  91. package/dist/translator/util/signals.d.ts +61 -0
  92. package/dist/translator/util/simplify-fn.d.ts +5 -0
  93. package/dist/translator/util/state.d.ts +3 -0
  94. package/dist/translator/util/tag-name-type.d.ts +16 -0
  95. package/dist/translator/util/to-first-expression-or-block.d.ts +3 -0
  96. package/dist/translator/util/to-first-statement-or-block.d.ts +2 -0
  97. package/dist/translator/util/to-property-name.d.ts +7 -0
  98. package/dist/translator/util/translate-attrs.d.ts +12 -0
  99. package/dist/translator/util/translate-var.d.ts +2 -0
  100. package/dist/translator/util/traverse.d.ts +9 -0
  101. package/dist/translator/util/visitors.d.ts +11 -0
  102. package/dist/translator/util/walks.d.ts +15 -0
  103. package/dist/translator/util/with-previous-location.d.ts +2 -0
  104. package/dist/translator/util/writer.d.ts +13 -0
  105. package/dist/translator/visitors/cdata.d.ts +7 -0
  106. package/dist/translator/visitors/comment.d.ts +7 -0
  107. package/dist/translator/visitors/declaration.d.ts +7 -0
  108. package/dist/translator/visitors/document-type.d.ts +7 -0
  109. package/dist/translator/visitors/function.d.ts +19 -0
  110. package/dist/translator/visitors/import-declaration.d.ts +8 -0
  111. package/dist/translator/visitors/placeholder.d.ts +22 -0
  112. package/dist/translator/visitors/program/dom.d.ts +7 -0
  113. package/dist/translator/visitors/program/html.d.ts +8 -0
  114. package/dist/translator/visitors/program/index.d.ts +39 -0
  115. package/dist/translator/visitors/referenced-identifier.d.ts +7 -0
  116. package/dist/translator/visitors/scriptlet.d.ts +8 -0
  117. package/dist/translator/visitors/tag/attribute-tag.d.ts +11 -0
  118. package/dist/translator/visitors/tag/custom-tag.d.ts +19 -0
  119. package/dist/translator/visitors/tag/dynamic-tag.d.ts +18 -0
  120. package/dist/translator/visitors/tag/index.d.ts +15 -0
  121. package/dist/translator/visitors/tag/native-tag.d.ts +25 -0
  122. package/dist/translator/visitors/text.d.ts +7 -0
  123. package/package.json +34 -70
  124. package/tag-types/const.d.marko +7 -0
  125. package/tag-types/debug.d.marko +5 -0
  126. package/tag-types/define.d.marko +5 -0
  127. package/tag-types/do.d.marko +5 -0
  128. package/tag-types/effect.d.marko +5 -0
  129. package/tag-types/id.d.marko +3 -0
  130. package/tag-types/let.d.marko +8 -0
  131. package/tag-types/lifecycle.d.marko +7 -0
  132. package/tag-types/log.d.marko +5 -0
  133. package/tag-types/script.d.marko +5 -0
  134. package/README.md +0 -161
  135. package/bin/markoc +0 -2
  136. package/bin/markoc.js +0 -441
  137. package/browser-refresh.js +0 -5
  138. package/compiler-browser.marko +0 -15
  139. package/compiler.js +0 -7
  140. package/components-browser.marko +0 -15
  141. package/components.js +0 -7
  142. package/dist/build.json +0 -3
  143. package/dist/compiler/config.js +0 -45
  144. package/dist/compiler/index.js +0 -164
  145. package/dist/compiler/modules.js +0 -5
  146. package/dist/core-tags/components/init-components-tag.js +0 -54
  147. package/dist/core-tags/components/preferred-script-location-tag.js +0 -25
  148. package/dist/core-tags/components/preserve-tag.js +0 -1
  149. package/dist/core-tags/core/__flush_here_and_after__.js +0 -44
  150. package/dist/core-tags/core/await/AsyncValue.js +0 -121
  151. package/dist/core-tags/core/await/client-reorder-runtime.js +0 -51
  152. package/dist/core-tags/core/await/index.d.marko +0 -10
  153. package/dist/core-tags/core/await/renderer.js +0 -249
  154. package/dist/core-tags/core/await/reorderer-renderer.js +0 -156
  155. package/dist/index.js +0 -4
  156. package/dist/node-require/browser-refresh.js +0 -1
  157. package/dist/node-require/hot-reload.js +0 -45
  158. package/dist/node-require/index.js +0 -103
  159. package/dist/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
  160. package/dist/node_modules/@internal/components-beginComponent/index.js +0 -84
  161. package/dist/node_modules/@internal/components-beginComponent/package.json +0 -11
  162. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
  163. package/dist/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
  164. package/dist/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
  165. package/dist/node_modules/@internal/components-endComponent/index-browser.js +0 -5
  166. package/dist/node_modules/@internal/components-endComponent/index.js +0 -11
  167. package/dist/node_modules/@internal/components-endComponent/package.json +0 -11
  168. package/dist/node_modules/@internal/components-entry/index-browser.js +0 -11
  169. package/dist/node_modules/@internal/components-entry/index.js +0 -301
  170. package/dist/node_modules/@internal/components-entry/package.json +0 -11
  171. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
  172. package/dist/node_modules/@internal/components-entry-legacy/index.js +0 -16
  173. package/dist/node_modules/@internal/components-entry-legacy/package.json +0 -11
  174. package/dist/node_modules/@internal/components-registry/index-browser.js +0 -586
  175. package/dist/node_modules/@internal/components-registry/index.js +0 -44
  176. package/dist/node_modules/@internal/components-registry/package.json +0 -11
  177. package/dist/node_modules/@internal/components-util/index-browser.js +0 -152
  178. package/dist/node_modules/@internal/components-util/index.js +0 -71
  179. package/dist/node_modules/@internal/components-util/package.json +0 -11
  180. package/dist/node_modules/@internal/create-readable/index-browser.js +0 -30
  181. package/dist/node_modules/@internal/create-readable/index.js +0 -57
  182. package/dist/node_modules/@internal/create-readable/package.json +0 -11
  183. package/dist/node_modules/@internal/loader/fallback-node.js +0 -89
  184. package/dist/node_modules/@internal/loader/index-browser.js +0 -2
  185. package/dist/node_modules/@internal/loader/index.js +0 -23
  186. package/dist/node_modules/@internal/loader/package.json +0 -10
  187. package/dist/node_modules/@internal/preserve-tag/index-browser.js +0 -46
  188. package/dist/node_modules/@internal/preserve-tag/index.js +0 -34
  189. package/dist/node_modules/@internal/preserve-tag/package.json +0 -11
  190. package/dist/node_modules/@internal/require/index-browser.js +0 -15
  191. package/dist/node_modules/@internal/require/index-legacy-browser.js +0 -20
  192. package/dist/node_modules/@internal/require/index-webpack.js +0 -16
  193. package/dist/node_modules/@internal/require/index.js +0 -15
  194. package/dist/node_modules/@internal/require/package.json +0 -11
  195. package/dist/node_modules/@internal/set-immediate/index-browser.js +0 -19
  196. package/dist/node_modules/@internal/set-immediate/index-worker.js +0 -31
  197. package/dist/node_modules/@internal/set-immediate/index.js +0 -3
  198. package/dist/node_modules/@internal/set-immediate/package.json +0 -11
  199. package/dist/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
  200. package/dist/runtime/RenderResult.js +0 -112
  201. package/dist/runtime/components/Component.js +0 -663
  202. package/dist/runtime/components/ComponentDef.js +0 -169
  203. package/dist/runtime/components/ComponentsContext.js +0 -59
  204. package/dist/runtime/components/GlobalComponentsContext.js +0 -10
  205. package/dist/runtime/components/KeySequence.js +0 -16
  206. package/dist/runtime/components/ServerComponent.js +0 -73
  207. package/dist/runtime/components/State.js +0 -101
  208. package/dist/runtime/components/attach-detach.js +0 -60
  209. package/dist/runtime/components/defineComponent.js +0 -60
  210. package/dist/runtime/components/dom-data.js +0 -8
  211. package/dist/runtime/components/event-delegation.js +0 -144
  212. package/dist/runtime/components/index.js +0 -1
  213. package/dist/runtime/components/legacy/browser.json +0 -9
  214. package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -27
  215. package/dist/runtime/components/legacy/defineRenderer-legacy.js +0 -171
  216. package/dist/runtime/components/legacy/defineWidget-legacy.js +0 -1
  217. package/dist/runtime/components/legacy/dependencies/html.js +0 -3
  218. package/dist/runtime/components/legacy/dependencies/index.js +0 -177
  219. package/dist/runtime/components/legacy/dependencies/vdom.js +0 -3
  220. package/dist/runtime/components/legacy/index.js +0 -1
  221. package/dist/runtime/components/legacy/jquery.js +0 -52
  222. package/dist/runtime/components/legacy/ready.js +0 -152
  223. package/dist/runtime/components/legacy/renderer-legacy.js +0 -231
  224. package/dist/runtime/components/registry.js +0 -1
  225. package/dist/runtime/components/renderer.js +0 -236
  226. package/dist/runtime/components/update-manager.js +0 -94
  227. package/dist/runtime/createOut.js +0 -13
  228. package/dist/runtime/dom-insert.js +0 -77
  229. package/dist/runtime/events.js +0 -2
  230. package/dist/runtime/helpers/_change-case.js +0 -45
  231. package/dist/runtime/helpers/assign.js +0 -21
  232. package/dist/runtime/helpers/attr-tag.js +0 -43
  233. package/dist/runtime/helpers/class-value.js +0 -30
  234. package/dist/runtime/helpers/dynamic-tag.js +0 -181
  235. package/dist/runtime/helpers/empty-component.js +0 -1
  236. package/dist/runtime/helpers/merge.js +0 -13
  237. package/dist/runtime/helpers/of-fallback.js +0 -4
  238. package/dist/runtime/helpers/render-tag.js +0 -20
  239. package/dist/runtime/helpers/serialize-noop.js +0 -5
  240. package/dist/runtime/helpers/style-value.js +0 -45
  241. package/dist/runtime/helpers/tags-compat/dom-debug.js +0 -1
  242. package/dist/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
  243. package/dist/runtime/helpers/tags-compat/dom.js +0 -1
  244. package/dist/runtime/helpers/tags-compat/dom.mjs +0 -4
  245. package/dist/runtime/helpers/tags-compat/html-debug.js +0 -3
  246. package/dist/runtime/helpers/tags-compat/html-debug.mjs +0 -4
  247. package/dist/runtime/helpers/tags-compat/html.js +0 -3
  248. package/dist/runtime/helpers/tags-compat/html.mjs +0 -4
  249. package/dist/runtime/helpers/tags-compat/runtime-dom.js +0 -239
  250. package/dist/runtime/helpers/tags-compat/runtime-html.js +0 -136
  251. package/dist/runtime/helpers/to-string.js +0 -5
  252. package/dist/runtime/html/AsyncStream.js +0 -805
  253. package/dist/runtime/html/BufferedWriter.js +0 -52
  254. package/dist/runtime/html/StringWriter.js +0 -73
  255. package/dist/runtime/html/helpers/_dynamic-attr.js +0 -35
  256. package/dist/runtime/html/helpers/attr.js +0 -80
  257. package/dist/runtime/html/helpers/attrs.js +0 -26
  258. package/dist/runtime/html/helpers/class-attr.js +0 -8
  259. package/dist/runtime/html/helpers/data-marko.js +0 -36
  260. package/dist/runtime/html/helpers/escape-quotes.js +0 -35
  261. package/dist/runtime/html/helpers/escape-script-placeholder.js +0 -24
  262. package/dist/runtime/html/helpers/escape-style-placeholder.js +0 -22
  263. package/dist/runtime/html/helpers/escape-xml.js +0 -21
  264. package/dist/runtime/html/helpers/merge-attrs.js +0 -55
  265. package/dist/runtime/html/helpers/props-script.js +0 -32
  266. package/dist/runtime/html/helpers/style-attr.js +0 -8
  267. package/dist/runtime/html/hot-reload.js +0 -26
  268. package/dist/runtime/html/index.js +0 -33
  269. package/dist/runtime/html/marko-namespace.js +0 -3
  270. package/dist/runtime/renderable.js +0 -194
  271. package/dist/runtime/vdom/AsyncVDOMBuilder.js +0 -456
  272. package/dist/runtime/vdom/VComment.js +0 -24
  273. package/dist/runtime/vdom/VComponent.js +0 -17
  274. package/dist/runtime/vdom/VDocumentFragment.js +0 -34
  275. package/dist/runtime/vdom/VElement.js +0 -375
  276. package/dist/runtime/vdom/VFragment.js +0 -26
  277. package/dist/runtime/vdom/VNode.js +0 -100
  278. package/dist/runtime/vdom/VText.js +0 -25
  279. package/dist/runtime/vdom/helpers/attrs.js +0 -62
  280. package/dist/runtime/vdom/helpers/const-element.js +0 -25
  281. package/dist/runtime/vdom/helpers/merge-attrs.js +0 -16
  282. package/dist/runtime/vdom/hot-reload.js +0 -115
  283. package/dist/runtime/vdom/index.js +0 -30
  284. package/dist/runtime/vdom/is-text-only.js +0 -10
  285. package/dist/runtime/vdom/marko-namespace.js +0 -3
  286. package/dist/runtime/vdom/morphdom/fragment.js +0 -95
  287. package/dist/runtime/vdom/morphdom/helpers.js +0 -42
  288. package/dist/runtime/vdom/morphdom/index.js +0 -741
  289. package/dist/runtime/vdom/parse-html.js +0 -18
  290. package/dist/runtime/vdom/vdom.js +0 -88
  291. package/dist/taglib/index.js +0 -51
  292. package/dist/translator/cdata/index.js +0 -15
  293. package/dist/translator/cdata/index[html].js +0 -15
  294. package/dist/translator/cdata/index[vdom].js +0 -12
  295. package/dist/translator/class.js +0 -65
  296. package/dist/translator/comment/index.js +0 -15
  297. package/dist/translator/comment/index[html].js +0 -17
  298. package/dist/translator/comment/index[vdom].js +0 -3
  299. package/dist/translator/declaration/index.js +0 -15
  300. package/dist/translator/declaration/index[html].js +0 -12
  301. package/dist/translator/declaration/index[vdom].js +0 -3
  302. package/dist/translator/document-type/index.js +0 -15
  303. package/dist/translator/document-type/index[html].js +0 -12
  304. package/dist/translator/document-type/index[vdom].js +0 -3
  305. package/dist/translator/placeholder/index.js +0 -15
  306. package/dist/translator/placeholder/index[html].js +0 -93
  307. package/dist/translator/placeholder/index[vdom].js +0 -22
  308. package/dist/translator/scriptlet.js +0 -4
  309. package/dist/translator/tag/attribute/directives/class.js +0 -42
  310. package/dist/translator/tag/attribute/directives/index.js +0 -15
  311. package/dist/translator/tag/attribute/directives/no-update-body-if.js +0 -15
  312. package/dist/translator/tag/attribute/directives/no-update-body.js +0 -10
  313. package/dist/translator/tag/attribute/directives/no-update-if.js +0 -12
  314. package/dist/translator/tag/attribute/directives/no-update.js +0 -48
  315. package/dist/translator/tag/attribute/directives/style.js +0 -42
  316. package/dist/translator/tag/attribute/index.js +0 -150
  317. package/dist/translator/tag/attribute/modifiers/index.js +0 -7
  318. package/dist/translator/tag/attribute/modifiers/no-update.js +0 -14
  319. package/dist/translator/tag/attribute/modifiers/scoped.js +0 -23
  320. package/dist/translator/tag/attribute-tag.js +0 -149
  321. package/dist/translator/tag/custom-tag.js +0 -146
  322. package/dist/translator/tag/dynamic-tag.js +0 -74
  323. package/dist/translator/tag/index.js +0 -287
  324. package/dist/translator/tag/macro-tag.js +0 -7
  325. package/dist/translator/tag/native-tag.js +0 -27
  326. package/dist/translator/tag/native-tag[html]/attributes.js +0 -151
  327. package/dist/translator/tag/native-tag[html]/index.js +0 -221
  328. package/dist/translator/tag/native-tag[vdom]/attributes.js +0 -105
  329. package/dist/translator/tag/native-tag[vdom]/index.js +0 -189
  330. package/dist/translator/tag/util.js +0 -246
  331. package/dist/translator/taglib/core/conditional/translate-else-if.js +0 -20
  332. package/dist/translator/taglib/core/conditional/translate-else.js +0 -20
  333. package/dist/translator/taglib/core/conditional/translate-if.js +0 -8
  334. package/dist/translator/taglib/core/conditional/util.js +0 -41
  335. package/dist/translator/taglib/core/index.js +0 -474
  336. package/dist/translator/taglib/core/macro/parse.js +0 -17
  337. package/dist/translator/taglib/core/macro/translate.js +0 -48
  338. package/dist/translator/taglib/core/parse-class.js +0 -79
  339. package/dist/translator/taglib/core/parse-export.js +0 -14
  340. package/dist/translator/taglib/core/parse-import.js +0 -14
  341. package/dist/translator/taglib/core/parse-module-code.js +0 -18
  342. package/dist/translator/taglib/core/parse-static.js +0 -18
  343. package/dist/translator/taglib/core/transform-style.js +0 -66
  344. package/dist/translator/taglib/core/translate-await.js +0 -41
  345. package/dist/translator/taglib/core/translate-body.js +0 -17
  346. package/dist/translator/taglib/core/translate-for.js +0 -156
  347. package/dist/translator/taglib/core/translate-html-comment.js +0 -52
  348. package/dist/translator/taglib/core/translate-include-content.js +0 -53
  349. package/dist/translator/taglib/core/translate-server-only.js +0 -5
  350. package/dist/translator/taglib/core/translate-while.js +0 -32
  351. package/dist/translator/taglib/index.js +0 -6
  352. package/dist/translator/taglib/migrate/all-templates.js +0 -46
  353. package/dist/translator/taglib/migrate/index.js +0 -5
  354. package/dist/translator/text/index.js +0 -10
  355. package/dist/translator/text/index[html].js +0 -12
  356. package/dist/translator/text/index[vdom].js +0 -20
  357. package/dist/translator/util/add-dependencies.js +0 -329
  358. package/dist/translator/util/escape-regexp.js +0 -4
  359. package/dist/translator/util/get-component-files.js +0 -86
  360. package/dist/translator/util/html-out-write.js +0 -15
  361. package/dist/translator/util/key-manager.js +0 -176
  362. package/dist/translator/util/optimize-html-writes.js +0 -52
  363. package/dist/translator/util/optimize-vdom-create.js +0 -164
  364. package/dist/translator/util/plugin-hooks.js +0 -22
  365. package/dist/translator/util/runtime-flags.js +0 -3
  366. package/dist/translator/util/vdom-out-write.js +0 -10
  367. package/dist/translator/util/with-previous-location.js +0 -6
  368. package/docs/10-awesome-marko-features.md +0 -291
  369. package/docs/body-content.md +0 -355
  370. package/docs/class-components.md +0 -1001
  371. package/docs/cloudflare-workers.md +0 -32
  372. package/docs/compiler-hooks.png +0 -0
  373. package/docs/compiler.md +0 -473
  374. package/docs/component-diagram.afdesign +0 -0
  375. package/docs/component-diagram.svg +0 -87
  376. package/docs/concise.md +0 -141
  377. package/docs/conditionals-and-lists.md +0 -72
  378. package/docs/core-tags.md +0 -325
  379. package/docs/custom-tags.md +0 -201
  380. package/docs/editor-plugins.md +0 -45
  381. package/docs/events.md +0 -131
  382. package/docs/express.md +0 -66
  383. package/docs/fastify.md +0 -65
  384. package/docs/getting-started.md +0 -95
  385. package/docs/http.md +0 -34
  386. package/docs/icons/js.svg +0 -4
  387. package/docs/icons/marko.svg +0 -1
  388. package/docs/icons/ts.svg +0 -1
  389. package/docs/installing.md +0 -51
  390. package/docs/koa.md +0 -35
  391. package/docs/lasso.md +0 -196
  392. package/docs/marko-5-upgrade.md +0 -59
  393. package/docs/marko-json.md +0 -248
  394. package/docs/marko-vs-react.md +0 -854
  395. package/docs/redux.md +0 -61
  396. package/docs/rendering.md +0 -268
  397. package/docs/rollup.md +0 -352
  398. package/docs/state.md +0 -105
  399. package/docs/structure.json +0 -49
  400. package/docs/styles.md +0 -29
  401. package/docs/syntax.md +0 -601
  402. package/docs/troubleshooting-streaming.md +0 -68
  403. package/docs/typescript.md +0 -406
  404. package/docs/vite.md +0 -86
  405. package/docs/webpack.md +0 -205
  406. package/docs/why-is-marko-fast.md +0 -239
  407. package/env.js +0 -7
  408. package/helpers/README.md +0 -3
  409. package/helpers/empty.js +0 -4
  410. package/helpers/notEmpty.js +0 -11
  411. package/index-browser.marko +0 -15
  412. package/index.d.ts +0 -375
  413. package/index.js +0 -7
  414. package/legacy-components-browser.marko +0 -15
  415. package/legacy-components.js +0 -7
  416. package/node-require.js +0 -8
  417. package/src/build.json +0 -3
  418. package/src/compiler/config.js +0 -45
  419. package/src/compiler/index.js +0 -164
  420. package/src/compiler/modules.js +0 -5
  421. package/src/core-tags/.eslintrc +0 -5
  422. package/src/core-tags/components/init-components-tag.js +0 -54
  423. package/src/core-tags/components/preferred-script-location-tag.js +0 -25
  424. package/src/core-tags/components/preserve-tag.js +0 -1
  425. package/src/core-tags/core/__flush_here_and_after__.js +0 -44
  426. package/src/core-tags/core/await/AsyncValue.js +0 -121
  427. package/src/core-tags/core/await/client-reorder-runtime.js +0 -51
  428. package/src/core-tags/core/await/index.d.marko +0 -10
  429. package/src/core-tags/core/await/renderer.js +0 -249
  430. package/src/core-tags/core/await/reorderer-renderer.js +0 -156
  431. package/src/index.js +0 -4
  432. package/src/node-require/browser-refresh.js +0 -18
  433. package/src/node-require/hot-reload.js +0 -45
  434. package/src/node-require/index.js +0 -103
  435. package/src/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
  436. package/src/node_modules/@internal/components-beginComponent/index.js +0 -84
  437. package/src/node_modules/@internal/components-beginComponent/package.json +0 -11
  438. package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
  439. package/src/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
  440. package/src/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
  441. package/src/node_modules/@internal/components-endComponent/index-browser.js +0 -5
  442. package/src/node_modules/@internal/components-endComponent/index.js +0 -11
  443. package/src/node_modules/@internal/components-endComponent/package.json +0 -11
  444. package/src/node_modules/@internal/components-entry/index-browser.js +0 -11
  445. package/src/node_modules/@internal/components-entry/index.js +0 -301
  446. package/src/node_modules/@internal/components-entry/package.json +0 -11
  447. package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
  448. package/src/node_modules/@internal/components-entry-legacy/index.js +0 -16
  449. package/src/node_modules/@internal/components-entry-legacy/package.json +0 -11
  450. package/src/node_modules/@internal/components-registry/index-browser.js +0 -586
  451. package/src/node_modules/@internal/components-registry/index.js +0 -44
  452. package/src/node_modules/@internal/components-registry/package.json +0 -11
  453. package/src/node_modules/@internal/components-util/index-browser.js +0 -152
  454. package/src/node_modules/@internal/components-util/index.js +0 -75
  455. package/src/node_modules/@internal/components-util/package.json +0 -11
  456. package/src/node_modules/@internal/create-readable/index-browser.js +0 -30
  457. package/src/node_modules/@internal/create-readable/index.js +0 -57
  458. package/src/node_modules/@internal/create-readable/package.json +0 -11
  459. package/src/node_modules/@internal/loader/fallback-node.js +0 -89
  460. package/src/node_modules/@internal/loader/index-browser.js +0 -2
  461. package/src/node_modules/@internal/loader/index.js +0 -23
  462. package/src/node_modules/@internal/loader/package.json +0 -10
  463. package/src/node_modules/@internal/preserve-tag/index-browser.js +0 -46
  464. package/src/node_modules/@internal/preserve-tag/index.js +0 -34
  465. package/src/node_modules/@internal/preserve-tag/package.json +0 -11
  466. package/src/node_modules/@internal/require/index-browser.js +0 -15
  467. package/src/node_modules/@internal/require/index-legacy-browser.js +0 -20
  468. package/src/node_modules/@internal/require/index-webpack.js +0 -16
  469. package/src/node_modules/@internal/require/index.js +0 -15
  470. package/src/node_modules/@internal/require/package.json +0 -11
  471. package/src/node_modules/@internal/set-immediate/index-browser.js +0 -19
  472. package/src/node_modules/@internal/set-immediate/index-worker.js +0 -31
  473. package/src/node_modules/@internal/set-immediate/index.js +0 -3
  474. package/src/node_modules/@internal/set-immediate/package.json +0 -11
  475. package/src/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
  476. package/src/runtime/.eslintrc +0 -5
  477. package/src/runtime/RenderResult.js +0 -112
  478. package/src/runtime/components/Component.js +0 -663
  479. package/src/runtime/components/ComponentDef.js +0 -169
  480. package/src/runtime/components/ComponentsContext.js +0 -59
  481. package/src/runtime/components/GlobalComponentsContext.js +0 -10
  482. package/src/runtime/components/KeySequence.js +0 -16
  483. package/src/runtime/components/ServerComponent.js +0 -73
  484. package/src/runtime/components/State.js +0 -101
  485. package/src/runtime/components/attach-detach.js +0 -60
  486. package/src/runtime/components/defineComponent.js +0 -60
  487. package/src/runtime/components/dom-data.js +0 -8
  488. package/src/runtime/components/event-delegation.js +0 -144
  489. package/src/runtime/components/index.js +0 -1
  490. package/src/runtime/components/legacy/browser.json +0 -9
  491. package/src/runtime/components/legacy/defineComponent-legacy.js +0 -27
  492. package/src/runtime/components/legacy/defineRenderer-legacy.js +0 -171
  493. package/src/runtime/components/legacy/defineWidget-legacy.js +0 -1
  494. package/src/runtime/components/legacy/dependencies/html.js +0 -3
  495. package/src/runtime/components/legacy/dependencies/index.js +0 -177
  496. package/src/runtime/components/legacy/dependencies/vdom.js +0 -3
  497. package/src/runtime/components/legacy/index.js +0 -1
  498. package/src/runtime/components/legacy/jquery.js +0 -52
  499. package/src/runtime/components/legacy/ready.js +0 -152
  500. package/src/runtime/components/legacy/renderer-legacy.js +0 -231
  501. package/src/runtime/components/registry.js +0 -1
  502. package/src/runtime/components/renderer.js +0 -236
  503. package/src/runtime/components/update-manager.js +0 -94
  504. package/src/runtime/createOut.js +0 -13
  505. package/src/runtime/dom-insert.js +0 -77
  506. package/src/runtime/events.js +0 -2
  507. package/src/runtime/helpers/_change-case.js +0 -45
  508. package/src/runtime/helpers/assign.js +0 -21
  509. package/src/runtime/helpers/attr-tag.js +0 -43
  510. package/src/runtime/helpers/class-value.js +0 -30
  511. package/src/runtime/helpers/dynamic-tag.js +0 -181
  512. package/src/runtime/helpers/empty-component.js +0 -1
  513. package/src/runtime/helpers/merge.js +0 -13
  514. package/src/runtime/helpers/of-fallback.js +0 -4
  515. package/src/runtime/helpers/render-tag.js +0 -20
  516. package/src/runtime/helpers/serialize-noop.js +0 -5
  517. package/src/runtime/helpers/style-value.js +0 -45
  518. package/src/runtime/helpers/tags-compat/dom-debug.js +0 -1
  519. package/src/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
  520. package/src/runtime/helpers/tags-compat/dom.js +0 -1
  521. package/src/runtime/helpers/tags-compat/dom.mjs +0 -4
  522. package/src/runtime/helpers/tags-compat/html-debug.js +0 -3
  523. package/src/runtime/helpers/tags-compat/html-debug.mjs +0 -4
  524. package/src/runtime/helpers/tags-compat/html.js +0 -3
  525. package/src/runtime/helpers/tags-compat/html.mjs +0 -4
  526. package/src/runtime/helpers/tags-compat/runtime-dom.js +0 -239
  527. package/src/runtime/helpers/tags-compat/runtime-html.js +0 -136
  528. package/src/runtime/helpers/to-string.js +0 -5
  529. package/src/runtime/html/AsyncStream.js +0 -805
  530. package/src/runtime/html/BufferedWriter.js +0 -52
  531. package/src/runtime/html/StringWriter.js +0 -73
  532. package/src/runtime/html/helpers/_dynamic-attr.js +0 -35
  533. package/src/runtime/html/helpers/attr.js +0 -80
  534. package/src/runtime/html/helpers/attrs.js +0 -26
  535. package/src/runtime/html/helpers/class-attr.js +0 -8
  536. package/src/runtime/html/helpers/data-marko.js +0 -36
  537. package/src/runtime/html/helpers/escape-quotes.js +0 -35
  538. package/src/runtime/html/helpers/escape-script-placeholder.js +0 -24
  539. package/src/runtime/html/helpers/escape-style-placeholder.js +0 -22
  540. package/src/runtime/html/helpers/escape-xml.js +0 -21
  541. package/src/runtime/html/helpers/merge-attrs.js +0 -55
  542. package/src/runtime/html/helpers/props-script.js +0 -32
  543. package/src/runtime/html/helpers/style-attr.js +0 -8
  544. package/src/runtime/html/hot-reload.js +0 -26
  545. package/src/runtime/html/index.js +0 -33
  546. package/src/runtime/html/marko-namespace.js +0 -3
  547. package/src/runtime/renderable.js +0 -194
  548. package/src/runtime/vdom/AsyncVDOMBuilder.js +0 -456
  549. package/src/runtime/vdom/VComment.js +0 -24
  550. package/src/runtime/vdom/VComponent.js +0 -17
  551. package/src/runtime/vdom/VDocumentFragment.js +0 -34
  552. package/src/runtime/vdom/VElement.js +0 -375
  553. package/src/runtime/vdom/VFragment.js +0 -26
  554. package/src/runtime/vdom/VNode.js +0 -100
  555. package/src/runtime/vdom/VText.js +0 -25
  556. package/src/runtime/vdom/helpers/attrs.js +0 -62
  557. package/src/runtime/vdom/helpers/const-element.js +0 -25
  558. package/src/runtime/vdom/helpers/merge-attrs.js +0 -16
  559. package/src/runtime/vdom/hot-reload.js +0 -115
  560. package/src/runtime/vdom/index.js +0 -30
  561. package/src/runtime/vdom/is-text-only.js +0 -10
  562. package/src/runtime/vdom/marko-namespace.js +0 -3
  563. package/src/runtime/vdom/morphdom/fragment.js +0 -95
  564. package/src/runtime/vdom/morphdom/helpers.js +0 -42
  565. package/src/runtime/vdom/morphdom/index.js +0 -741
  566. package/src/runtime/vdom/parse-html.js +0 -18
  567. package/src/runtime/vdom/vdom.js +0 -88
  568. package/src/taglib/index.js +0 -51
  569. package/src/translator/cdata/index.js +0 -15
  570. package/src/translator/cdata/index[html].js +0 -15
  571. package/src/translator/cdata/index[vdom].js +0 -12
  572. package/src/translator/class.js +0 -65
  573. package/src/translator/comment/index.js +0 -15
  574. package/src/translator/comment/index[html].js +0 -17
  575. package/src/translator/comment/index[vdom].js +0 -3
  576. package/src/translator/declaration/index.js +0 -15
  577. package/src/translator/declaration/index[html].js +0 -12
  578. package/src/translator/declaration/index[vdom].js +0 -3
  579. package/src/translator/document-type/index.js +0 -15
  580. package/src/translator/document-type/index[html].js +0 -12
  581. package/src/translator/document-type/index[vdom].js +0 -3
  582. package/src/translator/index.js +0 -552
  583. package/src/translator/placeholder/index.js +0 -15
  584. package/src/translator/placeholder/index[html].js +0 -93
  585. package/src/translator/placeholder/index[vdom].js +0 -22
  586. package/src/translator/scriptlet.js +0 -4
  587. package/src/translator/tag/attribute/directives/class.js +0 -42
  588. package/src/translator/tag/attribute/directives/index.js +0 -15
  589. package/src/translator/tag/attribute/directives/no-update-body-if.js +0 -15
  590. package/src/translator/tag/attribute/directives/no-update-body.js +0 -10
  591. package/src/translator/tag/attribute/directives/no-update-if.js +0 -12
  592. package/src/translator/tag/attribute/directives/no-update.js +0 -48
  593. package/src/translator/tag/attribute/directives/style.js +0 -42
  594. package/src/translator/tag/attribute/index.js +0 -150
  595. package/src/translator/tag/attribute/modifiers/index.js +0 -7
  596. package/src/translator/tag/attribute/modifiers/no-update.js +0 -14
  597. package/src/translator/tag/attribute/modifiers/scoped.js +0 -23
  598. package/src/translator/tag/attribute-tag.js +0 -149
  599. package/src/translator/tag/custom-tag.js +0 -146
  600. package/src/translator/tag/dynamic-tag.js +0 -74
  601. package/src/translator/tag/index.js +0 -287
  602. package/src/translator/tag/macro-tag.js +0 -7
  603. package/src/translator/tag/native-tag.js +0 -27
  604. package/src/translator/tag/native-tag[html]/attributes.js +0 -151
  605. package/src/translator/tag/native-tag[html]/index.js +0 -221
  606. package/src/translator/tag/native-tag[vdom]/attributes.js +0 -105
  607. package/src/translator/tag/native-tag[vdom]/index.js +0 -189
  608. package/src/translator/tag/util.js +0 -246
  609. package/src/translator/taglib/core/conditional/translate-else-if.js +0 -20
  610. package/src/translator/taglib/core/conditional/translate-else.js +0 -20
  611. package/src/translator/taglib/core/conditional/translate-if.js +0 -8
  612. package/src/translator/taglib/core/conditional/util.js +0 -41
  613. package/src/translator/taglib/core/index.js +0 -474
  614. package/src/translator/taglib/core/macro/parse.js +0 -17
  615. package/src/translator/taglib/core/macro/translate.js +0 -48
  616. package/src/translator/taglib/core/parse-class.js +0 -79
  617. package/src/translator/taglib/core/parse-export.js +0 -14
  618. package/src/translator/taglib/core/parse-import.js +0 -14
  619. package/src/translator/taglib/core/parse-module-code.js +0 -18
  620. package/src/translator/taglib/core/parse-static.js +0 -18
  621. package/src/translator/taglib/core/transform-style.js +0 -66
  622. package/src/translator/taglib/core/translate-await.js +0 -41
  623. package/src/translator/taglib/core/translate-body.js +0 -17
  624. package/src/translator/taglib/core/translate-for.js +0 -156
  625. package/src/translator/taglib/core/translate-html-comment.js +0 -52
  626. package/src/translator/taglib/core/translate-include-content.js +0 -53
  627. package/src/translator/taglib/core/translate-server-only.js +0 -5
  628. package/src/translator/taglib/core/translate-while.js +0 -32
  629. package/src/translator/taglib/index.js +0 -7
  630. package/src/translator/taglib/migrate/all-templates.js +0 -46
  631. package/src/translator/taglib/migrate/index.js +0 -5
  632. package/src/translator/text/index.js +0 -10
  633. package/src/translator/text/index[html].js +0 -12
  634. package/src/translator/text/index[vdom].js +0 -20
  635. package/src/translator/util/add-dependencies.js +0 -329
  636. package/src/translator/util/escape-regexp.js +0 -4
  637. package/src/translator/util/get-component-files.js +0 -86
  638. package/src/translator/util/html-out-write.js +0 -15
  639. package/src/translator/util/key-manager.js +0 -176
  640. package/src/translator/util/optimize-html-writes.js +0 -52
  641. package/src/translator/util/optimize-vdom-create.js +0 -164
  642. package/src/translator/util/plugin-hooks.js +0 -22
  643. package/src/translator/util/runtime-flags.js +0 -3
  644. package/src/translator/util/vdom-out-write.js +0 -10
  645. package/src/translator/util/with-previous-location.js +0 -6
  646. package/tags-html.d.ts +0 -3855
  647. package/translator/index.d.ts +0 -7
  648. package/translator/package.json +0 -5
@@ -1,741 +0,0 @@
1
- "use strict";
2
- var componentsUtil = require("@internal/components-util");
3
- var existingComponentLookup = componentsUtil._m_;
4
- var destroyNodeRecursive = componentsUtil._S_;
5
- var addComponentRootToKeyedElements =
6
- componentsUtil._n_;
7
- var normalizeComponentKey = componentsUtil._V_;
8
- var domData = require("../../components/dom-data");
9
- var eventDelegation = require("../../components/event-delegation");
10
- var KeySequence = require("../../components/KeySequence");
11
- var VElement = require("../vdom").bz_;
12
- var fragment = require("./fragment");
13
- var helpers = require("./helpers");
14
- var isTextOnly = require("../is-text-only");
15
- var virtualizeElement = VElement.ck_;
16
- var morphAttrs = VElement.cl_;
17
- var keysByDOMNode = domData._o_;
18
- var componentByDOMNode = domData._q_;
19
- var vElementByDOMNode = domData._L_;
20
- var detachedByDOMNode = domData.aX_;
21
-
22
- var insertBefore = helpers.bg_;
23
- var insertAfter = helpers.bh_;
24
- var nextSibling = helpers.cp_;
25
- var firstChild = helpers.aB_;
26
- var removeChild = helpers.bi_;
27
- var createFragmentNode = fragment._l_;
28
- var beginFragmentNode = fragment.ct_;
29
-
30
- var ELEMENT_NODE = 1;
31
- var TEXT_NODE = 3;
32
- var COMMENT_NODE = 8;
33
- var COMPONENT_NODE = 2;
34
- var FRAGMENT_NODE = 12;
35
- var DOCTYPE_NODE = 10;
36
-
37
- // var FLAG_SIMPLE_ATTRS = 1;
38
- // var FLAG_CUSTOM_ELEMENT = 2;
39
- // var FLAG_SPREAD_ATTRS = 4;
40
-
41
- function isAutoKey(key) {
42
- return key[0] !== "@";
43
- }
44
-
45
- function compareNodeNames(fromEl, toEl) {
46
- return fromEl.cg_ === toEl.cg_;
47
- }
48
-
49
- function caseInsensitiveCompare(a, b) {
50
- return a.toLowerCase() === b.toLowerCase();
51
- }
52
-
53
- function onNodeAdded(node, componentsContext) {
54
- if (node.nodeType === ELEMENT_NODE) {
55
- eventDelegation.aW_(node, componentsContext);
56
- }
57
- }
58
-
59
- function morphdom(fromNode, toNode, host, componentsContext) {
60
- var globalComponentsContext;
61
- var isHydrate = false;
62
- var keySequences = Object.create(null);
63
-
64
- if (componentsContext) {
65
- globalComponentsContext = componentsContext.q_;
66
- isHydrate = globalComponentsContext.a__;
67
- }
68
-
69
- function insertVirtualNodeBefore(
70
- vNode,
71
- key,
72
- referenceEl,
73
- parentEl,
74
- ownerComponent,
75
- parentComponent)
76
- {
77
- var realNode = vNode.bp_(host, parentEl.namespaceURI);
78
- insertBefore(realNode, referenceEl, parentEl);
79
-
80
- if (
81
- vNode.c__ === ELEMENT_NODE ||
82
- vNode.c__ === FRAGMENT_NODE)
83
- {
84
- if (key) {
85
- keysByDOMNode.set(realNode, key);
86
- (isAutoKey(key) ? parentComponent : ownerComponent).L_[
87
- key] =
88
- realNode;
89
- }
90
-
91
- if (!isTextOnly(vNode.cg_)) {
92
- morphChildren(realNode, vNode, parentComponent);
93
- }
94
-
95
- onNodeAdded(realNode, componentsContext);
96
- }
97
- }
98
-
99
- function insertVirtualComponentBefore(
100
- vComponent,
101
- referenceNode,
102
- referenceNodeParentEl,
103
- component,
104
- key,
105
- ownerComponent,
106
- parentComponent)
107
- {
108
- var rootNode = component._F_ = insertBefore(
109
- createFragmentNode(),
110
- referenceNode,
111
- referenceNodeParentEl
112
- );
113
- componentByDOMNode.set(rootNode, component);
114
-
115
- if (key && ownerComponent) {
116
- key = normalizeComponentKey(key, parentComponent.id);
117
- addComponentRootToKeyedElements(
118
- ownerComponent.L_,
119
- key,
120
- rootNode,
121
- component.id
122
- );
123
- keysByDOMNode.set(rootNode, key);
124
- }
125
-
126
- morphComponent(component, vComponent);
127
- }
128
-
129
- function morphComponent(component, vComponent) {
130
- morphChildren(component._F_, vComponent, component);
131
- }
132
-
133
- var detachedNodes = [];
134
-
135
- function detachNode(node, parentNode, ownerComponent) {
136
- if (node.nodeType === ELEMENT_NODE || node.nodeType === FRAGMENT_NODE) {
137
- detachedNodes.push(node);
138
- detachedByDOMNode.set(node, ownerComponent || true);
139
- } else {
140
- destroyNodeRecursive(node);
141
- removeChild(node);
142
- }
143
- }
144
-
145
- function destroyComponent(component) {
146
- component.destroy();
147
- }
148
-
149
- function morphChildren(fromNode, toNode, parentComponent) {
150
- var curFromNodeChild = firstChild(fromNode);
151
- var curToNodeChild = toNode.aB_;
152
-
153
- var curToNodeKey;
154
- var curFromNodeKey;
155
- var curToNodeType;
156
-
157
- var fromNextSibling;
158
- var toNextSibling;
159
- var matchingFromEl;
160
- var matchingFromComponent;
161
- var curVFromNodeChild;
162
- var fromComponent;
163
-
164
- outer: while (curToNodeChild) {
165
- toNextSibling = curToNodeChild.cp_;
166
- curToNodeType = curToNodeChild.c__;
167
- curToNodeKey = curToNodeChild.ca_;
168
-
169
- // Skip <!doctype>
170
- if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) {
171
- curFromNodeChild = nextSibling(curFromNodeChild);
172
- }
173
-
174
- var ownerComponent = curToNodeChild._N_ || parentComponent;
175
- var referenceComponent;
176
-
177
- if (curToNodeType === COMPONENT_NODE) {
178
- var component = curToNodeChild.t_;
179
- if (
180
- (matchingFromComponent = existingComponentLookup[component.id]) ===
181
- undefined)
182
- {
183
- if (isHydrate) {
184
- var rootNode = beginFragmentNode(curFromNodeChild, fromNode);
185
- component._F_ = rootNode;
186
- componentByDOMNode.set(rootNode, component);
187
-
188
- if (ownerComponent && curToNodeKey) {
189
- curToNodeKey = normalizeComponentKey(
190
- curToNodeKey,
191
- parentComponent.id
192
- );
193
- addComponentRootToKeyedElements(
194
- ownerComponent.L_,
195
- curToNodeKey,
196
- rootNode,
197
- component.id
198
- );
199
-
200
- keysByDOMNode.set(rootNode, curToNodeKey);
201
- }
202
-
203
- morphComponent(component, curToNodeChild);
204
-
205
- curFromNodeChild = nextSibling(rootNode);
206
- } else {
207
- insertVirtualComponentBefore(
208
- curToNodeChild,
209
- curFromNodeChild,
210
- fromNode,
211
- component,
212
- curToNodeKey,
213
- ownerComponent,
214
- parentComponent
215
- );
216
- }
217
- } else {
218
- if (matchingFromComponent._F_ !== curFromNodeChild) {
219
- if (
220
- curFromNodeChild && (
221
- fromComponent = componentByDOMNode.get(curFromNodeChild)) &&
222
- globalComponentsContext.r_[
223
- fromComponent.id] ===
224
- undefined)
225
- {
226
- // The component associated with the current real DOM node was not rendered
227
- // so we should just remove it out of the real DOM by destroying it
228
- curFromNodeChild = nextSibling(fromComponent._F_);
229
- destroyComponent(fromComponent);
230
- continue;
231
- }
232
-
233
- // We need to move the existing component into
234
- // the correct location
235
- insertBefore(
236
- matchingFromComponent._F_,
237
- curFromNodeChild,
238
- fromNode
239
- );
240
- } else {
241
- curFromNodeChild =
242
- curFromNodeChild && nextSibling(curFromNodeChild);
243
- }
244
-
245
- if (!curToNodeChild.ae_) {
246
- morphComponent(component, curToNodeChild);
247
- }
248
- }
249
-
250
- curToNodeChild = toNextSibling;
251
- continue;
252
- } else if (curToNodeKey) {
253
- curVFromNodeChild = undefined;
254
- curFromNodeKey = undefined;
255
- var curToNodeKeyOriginal = curToNodeKey;
256
-
257
- if (isAutoKey(curToNodeKey)) {
258
- if (ownerComponent !== parentComponent) {
259
- curToNodeKey += ":" + ownerComponent.id;
260
- }
261
- referenceComponent = parentComponent;
262
- } else {
263
- referenceComponent = ownerComponent;
264
- }
265
-
266
- // We have a keyed element. This is the fast path for matching
267
- // up elements
268
- curToNodeKey = (
269
- keySequences[referenceComponent.id] || (
270
- keySequences[referenceComponent.id] = new KeySequence())).aO_(
271
- curToNodeKey);
272
-
273
- if (curFromNodeChild) {
274
- curFromNodeKey = keysByDOMNode.get(curFromNodeChild);
275
- curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild);
276
- fromNextSibling = nextSibling(curFromNodeChild);
277
- }
278
-
279
- if (curFromNodeKey === curToNodeKey) {
280
- // Elements line up. Now we just have to make sure they are compatible
281
- if (!curToNodeChild.ae_) {
282
- // We just skip over the fromNode if it is preserved
283
-
284
- if (
285
- curVFromNodeChild &&
286
- curToNodeType === curVFromNodeChild.c__ && (
287
- curToNodeType !== ELEMENT_NODE ||
288
- compareNodeNames(curToNodeChild, curVFromNodeChild)))
289
- {
290
- if (curToNodeType === ELEMENT_NODE) {
291
- morphEl(
292
- curFromNodeChild,
293
- curVFromNodeChild,
294
- curToNodeChild,
295
- parentComponent
296
- );
297
- } else {
298
- morphChildren(
299
- curFromNodeChild,
300
- curToNodeChild,
301
- parentComponent
302
- );
303
- }
304
- } else {
305
- // Remove the old node
306
- detachNode(curFromNodeChild, fromNode, ownerComponent);
307
-
308
- // Incompatible nodes. Just move the target VNode into the DOM at this position
309
- insertVirtualNodeBefore(
310
- curToNodeChild,
311
- curToNodeKey,
312
- curFromNodeChild,
313
- fromNode,
314
- ownerComponent,
315
- parentComponent
316
- );
317
- }
318
- }
319
- } else {
320
- matchingFromEl = referenceComponent.L_[curToNodeKey];
321
- if (
322
- matchingFromEl === undefined ||
323
- matchingFromEl === curFromNodeChild)
324
- {
325
- if (isHydrate && curFromNodeChild) {
326
- if (
327
- curFromNodeChild.nodeType === ELEMENT_NODE && (
328
- curToNodeChild.ae_ ||
329
- caseInsensitiveCompare(
330
- curFromNodeChild.nodeName,
331
- curToNodeChild.cg_ || ""
332
- )))
333
- {
334
- curVFromNodeChild = virtualizeElement(curFromNodeChild);
335
- curVFromNodeChild.cg_ = curToNodeChild.cg_;
336
- keysByDOMNode.set(curFromNodeChild, curToNodeKey);
337
- referenceComponent.L_[curToNodeKey] =
338
- curFromNodeChild;
339
-
340
- if (curToNodeChild.ae_) {
341
- vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild);
342
- } else {
343
- morphEl(
344
- curFromNodeChild,
345
- curVFromNodeChild,
346
- curToNodeChild,
347
- parentComponent
348
- );
349
- }
350
-
351
- curToNodeChild = toNextSibling;
352
- curFromNodeChild = fromNextSibling;
353
- continue;
354
- } else if (
355
- curToNodeChild.c__ === FRAGMENT_NODE &&
356
- curFromNodeChild.nodeType === COMMENT_NODE)
357
- {
358
- var content = curFromNodeChild.nodeValue;
359
- if (content == "F#" + curToNodeKeyOriginal) {
360
- var endNode = curFromNodeChild.nextSibling;
361
- var depth = 0;
362
- var nodeValue;
363
-
364
- while (true) {
365
- if (endNode.nodeType === COMMENT_NODE) {
366
- nodeValue = endNode.nodeValue;
367
- if (nodeValue === "F/") {
368
- if (depth === 0) {
369
- break;
370
- } else {
371
- depth--;
372
- }
373
- } else if (nodeValue.indexOf("F#") === 0) {
374
- depth++;
375
- }
376
- }
377
- endNode = endNode.nextSibling;
378
- }
379
-
380
- var fragment = createFragmentNode(
381
- curFromNodeChild,
382
- endNode.nextSibling,
383
- fromNode
384
- );
385
- keysByDOMNode.set(fragment, curToNodeKey);
386
- vElementByDOMNode.set(fragment, curToNodeChild);
387
- referenceComponent.L_[curToNodeKey] = fragment;
388
- removeChild(curFromNodeChild);
389
- removeChild(endNode);
390
-
391
- if (!curToNodeChild.ae_) {
392
- morphChildren(fragment, curToNodeChild, parentComponent);
393
- }
394
-
395
- curToNodeChild = toNextSibling;
396
- curFromNodeChild = fragment.nextSibling;
397
- continue;
398
- }
399
- }
400
- }
401
-
402
- insertVirtualNodeBefore(
403
- curToNodeChild,
404
- curToNodeKey,
405
- curFromNodeChild,
406
- fromNode,
407
- ownerComponent,
408
- parentComponent
409
- );
410
- fromNextSibling = curFromNodeChild;
411
- } else {
412
- if (detachedByDOMNode.get(matchingFromEl) !== undefined) {
413
- detachedByDOMNode.set(matchingFromEl, undefined);
414
- }
415
-
416
- if (!curToNodeChild.ae_) {
417
- curVFromNodeChild = vElementByDOMNode.get(matchingFromEl);
418
-
419
- if (
420
- curVFromNodeChild &&
421
- curToNodeType === curVFromNodeChild.c__ && (
422
- curToNodeType !== ELEMENT_NODE ||
423
- compareNodeNames(curVFromNodeChild, curToNodeChild)))
424
- {
425
- if (fromNextSibling === matchingFromEl) {
426
- // Single element removal:
427
- // A <-> A
428
- // B <-> C <-- We are here
429
- // C D
430
- // D
431
- //
432
- // Single element swap:
433
- // A <-> A
434
- // B <-> C <-- We are here
435
- // C B
436
-
437
- if (
438
- toNextSibling &&
439
- toNextSibling.ca_ === curFromNodeKey)
440
- {
441
- // Single element swap
442
-
443
- // We want to stay on the current real DOM node
444
- fromNextSibling = curFromNodeChild;
445
-
446
- // But move the matching element into place
447
- insertBefore(matchingFromEl, curFromNodeChild, fromNode);
448
- } else {
449
- // Single element removal
450
-
451
- // We need to remove the current real DOM node
452
- // and the matching real DOM node will fall into
453
- // place. We will continue diffing with next sibling
454
- // after the real DOM node that just fell into place
455
- fromNextSibling = nextSibling(fromNextSibling);
456
-
457
- if (curFromNodeChild) {
458
- detachNode(curFromNodeChild, fromNode, ownerComponent);
459
- }
460
- }
461
- } else {
462
- // A <-> A
463
- // B <-> D <-- We are here
464
- // C
465
- // D
466
-
467
- // We need to move the matching node into place
468
- insertAfter(matchingFromEl, curFromNodeChild, fromNode);
469
-
470
- if (curFromNodeChild) {
471
- detachNode(curFromNodeChild, fromNode, ownerComponent);
472
- }
473
- }
474
-
475
- if (curToNodeType === ELEMENT_NODE) {
476
- morphEl(
477
- matchingFromEl,
478
- curVFromNodeChild,
479
- curToNodeChild,
480
- parentComponent
481
- );
482
- } else {
483
- morphChildren(
484
- matchingFromEl,
485
- curToNodeChild,
486
- parentComponent
487
- );
488
- }
489
- } else {
490
- insertVirtualNodeBefore(
491
- curToNodeChild,
492
- curToNodeKey,
493
- curFromNodeChild,
494
- fromNode,
495
- ownerComponent,
496
- parentComponent
497
- );
498
- detachNode(matchingFromEl, fromNode, ownerComponent);
499
- }
500
- } else {
501
- // preserve the node
502
- // but still we need to diff the current from node
503
- insertBefore(matchingFromEl, curFromNodeChild, fromNode);
504
- fromNextSibling = curFromNodeChild;
505
- }
506
- }
507
- }
508
-
509
- curToNodeChild = toNextSibling;
510
- curFromNodeChild = fromNextSibling;
511
- continue;
512
- }
513
-
514
- // The know the target node is not a VComponent node and we know
515
- // it is also not a preserve node. Let's now match up the HTML
516
- // element, text node, comment, etc.
517
- while (curFromNodeChild) {
518
- fromNextSibling = nextSibling(curFromNodeChild);
519
-
520
- if (fromComponent = componentByDOMNode.get(curFromNodeChild)) {
521
- // The current "to" element is not associated with a component,
522
- // but the current "from" element is associated with a component
523
-
524
- // Even if we destroy the current component in the original
525
- // DOM or not, we still need to skip over it since it is
526
- // not compatible with the current "to" node
527
- curFromNodeChild = fromNextSibling;
528
-
529
- if (
530
- !globalComponentsContext.r_[fromComponent.id])
531
- {
532
- destroyComponent(fromComponent);
533
- }
534
-
535
- continue; // Move to the next "from" node
536
- }
537
-
538
- var curFromNodeType = curFromNodeChild.nodeType;
539
-
540
- var isCompatible = undefined;
541
-
542
- if (curFromNodeType === curToNodeType) {
543
- if (curFromNodeType === ELEMENT_NODE) {
544
- // Both nodes being compared are Element nodes
545
- curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild);
546
- if (curVFromNodeChild === undefined) {
547
- if (isHydrate) {
548
- curVFromNodeChild = virtualizeElement(curFromNodeChild);
549
-
550
- if (
551
- caseInsensitiveCompare(
552
- curVFromNodeChild.cg_,
553
- curToNodeChild.cg_
554
- ))
555
- {
556
- curVFromNodeChild.cg_ = curToNodeChild.cg_;
557
- }
558
- } else {
559
- // Skip over nodes that don't look like ours...
560
- curFromNodeChild = fromNextSibling;
561
- continue;
562
- }
563
- } else if (curFromNodeKey = curVFromNodeChild.ca_) {
564
- // We have a keyed element here but our target VDOM node
565
- // is not keyed so this not doesn't belong
566
- isCompatible = false;
567
- }
568
-
569
- isCompatible =
570
- isCompatible !== false &&
571
- compareNodeNames(curVFromNodeChild, curToNodeChild) === true;
572
-
573
- if (isCompatible === true) {
574
- // We found compatible DOM elements so transform
575
- // the current "from" node to match the current
576
- // target DOM node.
577
- morphEl(
578
- curFromNodeChild,
579
- curVFromNodeChild,
580
- curToNodeChild,
581
- parentComponent
582
- );
583
- }
584
- } else if (
585
- curFromNodeType === TEXT_NODE ||
586
- curFromNodeType === COMMENT_NODE)
587
- {
588
- // Both nodes being compared are Text or Comment nodes
589
- isCompatible = true;
590
- var curToNodeValue = curToNodeChild.bZ_;
591
- var curFromNodeValue = curFromNodeChild.nodeValue;
592
- if (curFromNodeValue !== curToNodeValue) {
593
- if (
594
- isHydrate &&
595
- toNextSibling &&
596
- curFromNodeType === TEXT_NODE &&
597
- toNextSibling.c__ === TEXT_NODE &&
598
- curFromNodeValue.startsWith(curToNodeValue) &&
599
- curFromNodeValue.
600
- slice(curToNodeValue.length).
601
- startsWith(toNextSibling.bZ_))
602
- {
603
- // In hydrate mode we can use splitText to more efficiently handle
604
- // adjacent text vdom nodes that were merged.
605
- fromNextSibling = curFromNodeChild.splitText(
606
- curToNodeValue.length
607
- );
608
- } else {
609
- // Simply update nodeValue on the original node to
610
- // change the text value
611
- curFromNodeChild.nodeValue = curToNodeValue;
612
- }
613
- }
614
- }
615
- }
616
-
617
- if (isCompatible === true) {
618
- // Advance both the "to" child and the "from" child since we found a match
619
- curToNodeChild = toNextSibling;
620
- curFromNodeChild = fromNextSibling;
621
- continue outer;
622
- }
623
-
624
- detachNode(curFromNodeChild, fromNode, ownerComponent);
625
- curFromNodeChild = fromNextSibling;
626
- } // END: while (curFromNodeChild)
627
-
628
- // If we got this far then we did not find a candidate match for
629
- // our "to node" and we exhausted all of the children "from"
630
- // nodes. Therefore, we will just append the current "to" node
631
- // to the end
632
- insertVirtualNodeBefore(
633
- curToNodeChild,
634
- curToNodeKey,
635
- curFromNodeChild,
636
- fromNode,
637
- ownerComponent,
638
- parentComponent
639
- );
640
-
641
- curToNodeChild = toNextSibling;
642
- curFromNodeChild = fromNextSibling;
643
- }
644
-
645
- // We have processed all of the "to nodes".
646
- if (fromNode.cs_) {
647
- // If we are in an unfinished fragment, we have reached the end of the nodes
648
- // we were matching up and need to end the fragment
649
- fromNode.cs_(curFromNodeChild);
650
- } else {
651
- // If curFromNodeChild is non-null then we still have some from nodes
652
- // left over that need to be removed
653
- var fragmentBoundary =
654
- fromNode.nodeType === FRAGMENT_NODE ? fromNode.endNode : null;
655
-
656
- while (curFromNodeChild && curFromNodeChild !== fragmentBoundary) {
657
- fromNextSibling = nextSibling(curFromNodeChild);
658
-
659
- if (fromComponent = componentByDOMNode.get(curFromNodeChild)) {
660
- curFromNodeChild = fromNextSibling;
661
- if (
662
- !globalComponentsContext.r_[fromComponent.id])
663
- {
664
- destroyComponent(fromComponent);
665
- }
666
- continue;
667
- }
668
-
669
- curVFromNodeChild = vElementByDOMNode.get(curFromNodeChild);
670
- curFromNodeKey = keysByDOMNode.get(fromNode);
671
-
672
- // For transcluded content, we need to check if the element belongs to a different component
673
- // context than the current component and ensure it gets removed from its key index.
674
- if (!curFromNodeKey || isAutoKey(curFromNodeKey)) {
675
- referenceComponent = parentComponent;
676
- } else {
677
- referenceComponent =
678
- curVFromNodeChild && curVFromNodeChild._N_;
679
- }
680
-
681
- detachNode(curFromNodeChild, fromNode, referenceComponent);
682
-
683
- curFromNodeChild = fromNextSibling;
684
- }
685
- }
686
- }
687
-
688
- function morphEl(fromEl, vFromEl, toEl, parentComponent) {
689
- var nodeName = toEl.cg_;
690
- var constId = toEl.ci_;
691
- vElementByDOMNode.set(fromEl, toEl);
692
-
693
- if (constId !== undefined && vFromEl.ci_ === constId) {
694
- return;
695
- }
696
-
697
- morphAttrs(fromEl, vFromEl, toEl);
698
-
699
- if (toEl.ad_) {
700
- return;
701
- }
702
-
703
- if (isTextOnly(nodeName)) {
704
- if (toEl.ch_ !== vFromEl.ch_) {
705
- if (nodeName === "textarea") {
706
- fromEl.value = toEl.ch_;
707
- } else {
708
- fromEl.textContent = toEl.ch_;
709
- }
710
- }
711
- } else {
712
- morphChildren(fromEl, toEl, parentComponent);
713
- }
714
- } // END: morphEl(...)
715
-
716
- morphChildren(fromNode, toNode, toNode.t_);
717
-
718
- detachedNodes.forEach(function (node) {
719
- var detachedFromComponent = detachedByDOMNode.get(node);
720
-
721
- if (detachedFromComponent !== undefined) {
722
- detachedByDOMNode.set(node, undefined);
723
-
724
- var componentToDestroy = componentByDOMNode.get(node);
725
- if (componentToDestroy) {
726
- componentToDestroy.destroy();
727
- } else if (node.parentNode) {
728
- destroyNodeRecursive(
729
- node,
730
- detachedFromComponent !== true && detachedFromComponent
731
- );
732
-
733
- if (eventDelegation.ao_(node) != false) {
734
- removeChild(node);
735
- }
736
- }
737
- }
738
- });
739
- }
740
-
741
- module.exports = morphdom;