marko 5.37.1 → 6.0.0-3.4

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 (638) 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 +2112 -0
  8. package/dist/debug/dom.mjs +2089 -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 +9143 -489
  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 +32 -74
  124. package/README.md +0 -161
  125. package/bin/markoc +0 -2
  126. package/bin/markoc.js +0 -441
  127. package/browser-refresh.js +0 -5
  128. package/compiler-browser.marko +0 -15
  129. package/compiler.js +0 -7
  130. package/components-browser.marko +0 -15
  131. package/components.js +0 -7
  132. package/dist/build.json +0 -3
  133. package/dist/compiler/config.js +0 -45
  134. package/dist/compiler/index.js +0 -164
  135. package/dist/compiler/modules.js +0 -5
  136. package/dist/core-tags/components/init-components-tag.js +0 -54
  137. package/dist/core-tags/components/preferred-script-location-tag.js +0 -25
  138. package/dist/core-tags/components/preserve-tag.js +0 -1
  139. package/dist/core-tags/core/__flush_here_and_after__.js +0 -44
  140. package/dist/core-tags/core/await/AsyncValue.js +0 -121
  141. package/dist/core-tags/core/await/client-reorder-runtime.js +0 -51
  142. package/dist/core-tags/core/await/index.d.marko +0 -10
  143. package/dist/core-tags/core/await/renderer.js +0 -249
  144. package/dist/core-tags/core/await/reorderer-renderer.js +0 -156
  145. package/dist/index.js +0 -4
  146. package/dist/node-require/browser-refresh.js +0 -18
  147. package/dist/node-require/hot-reload.js +0 -45
  148. package/dist/node-require/index.js +0 -103
  149. package/dist/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
  150. package/dist/node_modules/@internal/components-beginComponent/index.js +0 -84
  151. package/dist/node_modules/@internal/components-beginComponent/package.json +0 -11
  152. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
  153. package/dist/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
  154. package/dist/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
  155. package/dist/node_modules/@internal/components-endComponent/index-browser.js +0 -5
  156. package/dist/node_modules/@internal/components-endComponent/index.js +0 -11
  157. package/dist/node_modules/@internal/components-endComponent/package.json +0 -11
  158. package/dist/node_modules/@internal/components-entry/index-browser.js +0 -11
  159. package/dist/node_modules/@internal/components-entry/index.js +0 -301
  160. package/dist/node_modules/@internal/components-entry/package.json +0 -11
  161. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
  162. package/dist/node_modules/@internal/components-entry-legacy/index.js +0 -16
  163. package/dist/node_modules/@internal/components-entry-legacy/package.json +0 -11
  164. package/dist/node_modules/@internal/components-registry/index-browser.js +0 -586
  165. package/dist/node_modules/@internal/components-registry/index.js +0 -44
  166. package/dist/node_modules/@internal/components-registry/package.json +0 -11
  167. package/dist/node_modules/@internal/components-util/index-browser.js +0 -152
  168. package/dist/node_modules/@internal/components-util/index.js +0 -75
  169. package/dist/node_modules/@internal/components-util/package.json +0 -11
  170. package/dist/node_modules/@internal/create-readable/index-browser.js +0 -30
  171. package/dist/node_modules/@internal/create-readable/index.js +0 -57
  172. package/dist/node_modules/@internal/create-readable/package.json +0 -11
  173. package/dist/node_modules/@internal/loader/fallback-node.js +0 -89
  174. package/dist/node_modules/@internal/loader/index-browser.js +0 -2
  175. package/dist/node_modules/@internal/loader/index.js +0 -23
  176. package/dist/node_modules/@internal/loader/package.json +0 -10
  177. package/dist/node_modules/@internal/preserve-tag/index-browser.js +0 -46
  178. package/dist/node_modules/@internal/preserve-tag/index.js +0 -34
  179. package/dist/node_modules/@internal/preserve-tag/package.json +0 -11
  180. package/dist/node_modules/@internal/require/index-browser.js +0 -15
  181. package/dist/node_modules/@internal/require/index-legacy-browser.js +0 -20
  182. package/dist/node_modules/@internal/require/index-webpack.js +0 -16
  183. package/dist/node_modules/@internal/require/index.js +0 -15
  184. package/dist/node_modules/@internal/require/package.json +0 -11
  185. package/dist/node_modules/@internal/set-immediate/index-browser.js +0 -19
  186. package/dist/node_modules/@internal/set-immediate/index-worker.js +0 -31
  187. package/dist/node_modules/@internal/set-immediate/index.js +0 -3
  188. package/dist/node_modules/@internal/set-immediate/package.json +0 -11
  189. package/dist/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
  190. package/dist/runtime/RenderResult.js +0 -112
  191. package/dist/runtime/components/Component.js +0 -663
  192. package/dist/runtime/components/ComponentDef.js +0 -169
  193. package/dist/runtime/components/ComponentsContext.js +0 -59
  194. package/dist/runtime/components/GlobalComponentsContext.js +0 -10
  195. package/dist/runtime/components/KeySequence.js +0 -16
  196. package/dist/runtime/components/ServerComponent.js +0 -73
  197. package/dist/runtime/components/State.js +0 -101
  198. package/dist/runtime/components/attach-detach.js +0 -60
  199. package/dist/runtime/components/defineComponent.js +0 -60
  200. package/dist/runtime/components/dom-data.js +0 -8
  201. package/dist/runtime/components/event-delegation.js +0 -144
  202. package/dist/runtime/components/index.js +0 -1
  203. package/dist/runtime/components/legacy/browser.json +0 -9
  204. package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -27
  205. package/dist/runtime/components/legacy/defineRenderer-legacy.js +0 -171
  206. package/dist/runtime/components/legacy/defineWidget-legacy.js +0 -1
  207. package/dist/runtime/components/legacy/dependencies/html.js +0 -3
  208. package/dist/runtime/components/legacy/dependencies/index.js +0 -177
  209. package/dist/runtime/components/legacy/dependencies/vdom.js +0 -3
  210. package/dist/runtime/components/legacy/index.js +0 -1
  211. package/dist/runtime/components/legacy/jquery.js +0 -52
  212. package/dist/runtime/components/legacy/ready.js +0 -152
  213. package/dist/runtime/components/legacy/renderer-legacy.js +0 -231
  214. package/dist/runtime/components/registry.js +0 -1
  215. package/dist/runtime/components/renderer.js +0 -236
  216. package/dist/runtime/components/update-manager.js +0 -94
  217. package/dist/runtime/createOut.js +0 -13
  218. package/dist/runtime/dom-insert.js +0 -77
  219. package/dist/runtime/events.js +0 -2
  220. package/dist/runtime/helpers/_change-case.js +0 -45
  221. package/dist/runtime/helpers/assign.js +0 -21
  222. package/dist/runtime/helpers/attr-tag.js +0 -43
  223. package/dist/runtime/helpers/class-value.js +0 -30
  224. package/dist/runtime/helpers/dynamic-tag.js +0 -181
  225. package/dist/runtime/helpers/empty-component.js +0 -1
  226. package/dist/runtime/helpers/merge.js +0 -13
  227. package/dist/runtime/helpers/of-fallback.js +0 -4
  228. package/dist/runtime/helpers/render-tag.js +0 -20
  229. package/dist/runtime/helpers/serialize-noop.js +0 -5
  230. package/dist/runtime/helpers/style-value.js +0 -45
  231. package/dist/runtime/helpers/tags-compat/dom-debug.js +0 -1
  232. package/dist/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
  233. package/dist/runtime/helpers/tags-compat/dom.js +0 -1
  234. package/dist/runtime/helpers/tags-compat/dom.mjs +0 -4
  235. package/dist/runtime/helpers/tags-compat/html-debug.js +0 -3
  236. package/dist/runtime/helpers/tags-compat/html-debug.mjs +0 -4
  237. package/dist/runtime/helpers/tags-compat/html.js +0 -3
  238. package/dist/runtime/helpers/tags-compat/html.mjs +0 -4
  239. package/dist/runtime/helpers/tags-compat/runtime-dom.js +0 -239
  240. package/dist/runtime/helpers/tags-compat/runtime-html.js +0 -136
  241. package/dist/runtime/helpers/to-string.js +0 -5
  242. package/dist/runtime/html/AsyncStream.js +0 -805
  243. package/dist/runtime/html/BufferedWriter.js +0 -52
  244. package/dist/runtime/html/StringWriter.js +0 -73
  245. package/dist/runtime/html/helpers/_dynamic-attr.js +0 -35
  246. package/dist/runtime/html/helpers/attr.js +0 -80
  247. package/dist/runtime/html/helpers/attrs.js +0 -26
  248. package/dist/runtime/html/helpers/class-attr.js +0 -8
  249. package/dist/runtime/html/helpers/data-marko.js +0 -36
  250. package/dist/runtime/html/helpers/escape-quotes.js +0 -35
  251. package/dist/runtime/html/helpers/escape-script-placeholder.js +0 -24
  252. package/dist/runtime/html/helpers/escape-style-placeholder.js +0 -22
  253. package/dist/runtime/html/helpers/escape-xml.js +0 -21
  254. package/dist/runtime/html/helpers/merge-attrs.js +0 -55
  255. package/dist/runtime/html/helpers/props-script.js +0 -32
  256. package/dist/runtime/html/helpers/style-attr.js +0 -8
  257. package/dist/runtime/html/hot-reload.js +0 -26
  258. package/dist/runtime/html/index.js +0 -33
  259. package/dist/runtime/html/marko-namespace.js +0 -3
  260. package/dist/runtime/renderable.js +0 -194
  261. package/dist/runtime/vdom/AsyncVDOMBuilder.js +0 -456
  262. package/dist/runtime/vdom/VComment.js +0 -24
  263. package/dist/runtime/vdom/VComponent.js +0 -17
  264. package/dist/runtime/vdom/VDocumentFragment.js +0 -34
  265. package/dist/runtime/vdom/VElement.js +0 -375
  266. package/dist/runtime/vdom/VFragment.js +0 -26
  267. package/dist/runtime/vdom/VNode.js +0 -100
  268. package/dist/runtime/vdom/VText.js +0 -25
  269. package/dist/runtime/vdom/helpers/attrs.js +0 -62
  270. package/dist/runtime/vdom/helpers/const-element.js +0 -25
  271. package/dist/runtime/vdom/helpers/merge-attrs.js +0 -16
  272. package/dist/runtime/vdom/hot-reload.js +0 -115
  273. package/dist/runtime/vdom/index.js +0 -30
  274. package/dist/runtime/vdom/is-text-only.js +0 -10
  275. package/dist/runtime/vdom/marko-namespace.js +0 -3
  276. package/dist/runtime/vdom/morphdom/fragment.js +0 -95
  277. package/dist/runtime/vdom/morphdom/helpers.js +0 -42
  278. package/dist/runtime/vdom/morphdom/index.js +0 -741
  279. package/dist/runtime/vdom/parse-html.js +0 -18
  280. package/dist/runtime/vdom/vdom.js +0 -88
  281. package/dist/taglib/index.js +0 -51
  282. package/dist/translator/cdata/index.js +0 -15
  283. package/dist/translator/cdata/index[html].js +0 -15
  284. package/dist/translator/cdata/index[vdom].js +0 -12
  285. package/dist/translator/class.js +0 -65
  286. package/dist/translator/comment/index.js +0 -15
  287. package/dist/translator/comment/index[html].js +0 -17
  288. package/dist/translator/comment/index[vdom].js +0 -3
  289. package/dist/translator/declaration/index.js +0 -15
  290. package/dist/translator/declaration/index[html].js +0 -12
  291. package/dist/translator/declaration/index[vdom].js +0 -3
  292. package/dist/translator/document-type/index.js +0 -15
  293. package/dist/translator/document-type/index[html].js +0 -12
  294. package/dist/translator/document-type/index[vdom].js +0 -3
  295. package/dist/translator/placeholder/index.js +0 -15
  296. package/dist/translator/placeholder/index[html].js +0 -93
  297. package/dist/translator/placeholder/index[vdom].js +0 -22
  298. package/dist/translator/scriptlet.js +0 -4
  299. package/dist/translator/tag/attribute/directives/class.js +0 -42
  300. package/dist/translator/tag/attribute/directives/index.js +0 -15
  301. package/dist/translator/tag/attribute/directives/no-update-body-if.js +0 -15
  302. package/dist/translator/tag/attribute/directives/no-update-body.js +0 -10
  303. package/dist/translator/tag/attribute/directives/no-update-if.js +0 -12
  304. package/dist/translator/tag/attribute/directives/no-update.js +0 -48
  305. package/dist/translator/tag/attribute/directives/style.js +0 -42
  306. package/dist/translator/tag/attribute/index.js +0 -150
  307. package/dist/translator/tag/attribute/modifiers/index.js +0 -7
  308. package/dist/translator/tag/attribute/modifiers/no-update.js +0 -14
  309. package/dist/translator/tag/attribute/modifiers/scoped.js +0 -23
  310. package/dist/translator/tag/attribute-tag.js +0 -149
  311. package/dist/translator/tag/custom-tag.js +0 -146
  312. package/dist/translator/tag/dynamic-tag.js +0 -74
  313. package/dist/translator/tag/index.js +0 -287
  314. package/dist/translator/tag/macro-tag.js +0 -7
  315. package/dist/translator/tag/native-tag.js +0 -27
  316. package/dist/translator/tag/native-tag[html]/attributes.js +0 -151
  317. package/dist/translator/tag/native-tag[html]/index.js +0 -221
  318. package/dist/translator/tag/native-tag[vdom]/attributes.js +0 -105
  319. package/dist/translator/tag/native-tag[vdom]/index.js +0 -189
  320. package/dist/translator/tag/util.js +0 -246
  321. package/dist/translator/taglib/core/conditional/translate-else-if.js +0 -20
  322. package/dist/translator/taglib/core/conditional/translate-else.js +0 -20
  323. package/dist/translator/taglib/core/conditional/translate-if.js +0 -8
  324. package/dist/translator/taglib/core/conditional/util.js +0 -41
  325. package/dist/translator/taglib/core/index.js +0 -474
  326. package/dist/translator/taglib/core/macro/parse.js +0 -17
  327. package/dist/translator/taglib/core/macro/translate.js +0 -48
  328. package/dist/translator/taglib/core/parse-class.js +0 -79
  329. package/dist/translator/taglib/core/parse-export.js +0 -14
  330. package/dist/translator/taglib/core/parse-import.js +0 -14
  331. package/dist/translator/taglib/core/parse-module-code.js +0 -18
  332. package/dist/translator/taglib/core/parse-static.js +0 -18
  333. package/dist/translator/taglib/core/transform-style.js +0 -66
  334. package/dist/translator/taglib/core/translate-await.js +0 -41
  335. package/dist/translator/taglib/core/translate-body.js +0 -17
  336. package/dist/translator/taglib/core/translate-for.js +0 -156
  337. package/dist/translator/taglib/core/translate-html-comment.js +0 -52
  338. package/dist/translator/taglib/core/translate-include-content.js +0 -53
  339. package/dist/translator/taglib/core/translate-server-only.js +0 -5
  340. package/dist/translator/taglib/core/translate-while.js +0 -32
  341. package/dist/translator/taglib/index.js +0 -6
  342. package/dist/translator/taglib/migrate/all-templates.js +0 -46
  343. package/dist/translator/taglib/migrate/index.js +0 -5
  344. package/dist/translator/text/index.js +0 -10
  345. package/dist/translator/text/index[html].js +0 -12
  346. package/dist/translator/text/index[vdom].js +0 -20
  347. package/dist/translator/util/add-dependencies.js +0 -329
  348. package/dist/translator/util/escape-regexp.js +0 -4
  349. package/dist/translator/util/get-component-files.js +0 -86
  350. package/dist/translator/util/html-out-write.js +0 -15
  351. package/dist/translator/util/key-manager.js +0 -176
  352. package/dist/translator/util/optimize-html-writes.js +0 -52
  353. package/dist/translator/util/optimize-vdom-create.js +0 -164
  354. package/dist/translator/util/plugin-hooks.js +0 -22
  355. package/dist/translator/util/runtime-flags.js +0 -3
  356. package/dist/translator/util/vdom-out-write.js +0 -10
  357. package/dist/translator/util/with-previous-location.js +0 -6
  358. package/docs/10-awesome-marko-features.md +0 -291
  359. package/docs/body-content.md +0 -355
  360. package/docs/class-components.md +0 -1001
  361. package/docs/cloudflare-workers.md +0 -32
  362. package/docs/compiler-hooks.png +0 -0
  363. package/docs/compiler.md +0 -473
  364. package/docs/component-diagram.afdesign +0 -0
  365. package/docs/component-diagram.svg +0 -87
  366. package/docs/concise.md +0 -141
  367. package/docs/conditionals-and-lists.md +0 -72
  368. package/docs/core-tags.md +0 -325
  369. package/docs/custom-tags.md +0 -201
  370. package/docs/editor-plugins.md +0 -45
  371. package/docs/events.md +0 -131
  372. package/docs/express.md +0 -66
  373. package/docs/fastify.md +0 -65
  374. package/docs/getting-started.md +0 -95
  375. package/docs/http.md +0 -34
  376. package/docs/icons/js.svg +0 -4
  377. package/docs/icons/marko.svg +0 -1
  378. package/docs/icons/ts.svg +0 -1
  379. package/docs/installing.md +0 -51
  380. package/docs/koa.md +0 -35
  381. package/docs/lasso.md +0 -196
  382. package/docs/marko-5-upgrade.md +0 -59
  383. package/docs/marko-json.md +0 -248
  384. package/docs/marko-vs-react.md +0 -854
  385. package/docs/redux.md +0 -61
  386. package/docs/rendering.md +0 -268
  387. package/docs/rollup.md +0 -352
  388. package/docs/state.md +0 -105
  389. package/docs/structure.json +0 -49
  390. package/docs/styles.md +0 -29
  391. package/docs/syntax.md +0 -601
  392. package/docs/troubleshooting-streaming.md +0 -68
  393. package/docs/typescript.md +0 -406
  394. package/docs/vite.md +0 -86
  395. package/docs/webpack.md +0 -205
  396. package/docs/why-is-marko-fast.md +0 -239
  397. package/env.js +0 -7
  398. package/helpers/README.md +0 -3
  399. package/helpers/empty.js +0 -4
  400. package/helpers/notEmpty.js +0 -11
  401. package/index-browser.marko +0 -15
  402. package/index.d.ts +0 -375
  403. package/index.js +0 -7
  404. package/legacy-components-browser.marko +0 -15
  405. package/legacy-components.js +0 -7
  406. package/node-require.js +0 -8
  407. package/src/build.json +0 -3
  408. package/src/compiler/config.js +0 -45
  409. package/src/compiler/index.js +0 -164
  410. package/src/compiler/modules.js +0 -5
  411. package/src/core-tags/.eslintrc +0 -5
  412. package/src/core-tags/components/init-components-tag.js +0 -54
  413. package/src/core-tags/components/preferred-script-location-tag.js +0 -25
  414. package/src/core-tags/components/preserve-tag.js +0 -1
  415. package/src/core-tags/core/__flush_here_and_after__.js +0 -44
  416. package/src/core-tags/core/await/AsyncValue.js +0 -121
  417. package/src/core-tags/core/await/client-reorder-runtime.js +0 -51
  418. package/src/core-tags/core/await/index.d.marko +0 -10
  419. package/src/core-tags/core/await/renderer.js +0 -249
  420. package/src/core-tags/core/await/reorderer-renderer.js +0 -156
  421. package/src/index.js +0 -4
  422. package/src/node-require/browser-refresh.js +0 -18
  423. package/src/node-require/hot-reload.js +0 -45
  424. package/src/node-require/index.js +0 -103
  425. package/src/node_modules/@internal/components-beginComponent/index-browser.js +0 -23
  426. package/src/node_modules/@internal/components-beginComponent/index.js +0 -84
  427. package/src/node_modules/@internal/components-beginComponent/package.json +0 -11
  428. package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -335
  429. package/src/node_modules/@internal/components-define-widget-legacy/index.js +0 -18
  430. package/src/node_modules/@internal/components-define-widget-legacy/package.json +0 -11
  431. package/src/node_modules/@internal/components-endComponent/index-browser.js +0 -5
  432. package/src/node_modules/@internal/components-endComponent/index.js +0 -11
  433. package/src/node_modules/@internal/components-endComponent/package.json +0 -11
  434. package/src/node_modules/@internal/components-entry/index-browser.js +0 -11
  435. package/src/node_modules/@internal/components-entry/index.js +0 -301
  436. package/src/node_modules/@internal/components-entry/package.json +0 -11
  437. package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -76
  438. package/src/node_modules/@internal/components-entry-legacy/index.js +0 -16
  439. package/src/node_modules/@internal/components-entry-legacy/package.json +0 -11
  440. package/src/node_modules/@internal/components-registry/index-browser.js +0 -586
  441. package/src/node_modules/@internal/components-registry/index.js +0 -44
  442. package/src/node_modules/@internal/components-registry/package.json +0 -11
  443. package/src/node_modules/@internal/components-util/index-browser.js +0 -152
  444. package/src/node_modules/@internal/components-util/index.js +0 -75
  445. package/src/node_modules/@internal/components-util/package.json +0 -11
  446. package/src/node_modules/@internal/create-readable/index-browser.js +0 -30
  447. package/src/node_modules/@internal/create-readable/index.js +0 -57
  448. package/src/node_modules/@internal/create-readable/package.json +0 -11
  449. package/src/node_modules/@internal/loader/fallback-node.js +0 -89
  450. package/src/node_modules/@internal/loader/index-browser.js +0 -2
  451. package/src/node_modules/@internal/loader/index.js +0 -23
  452. package/src/node_modules/@internal/loader/package.json +0 -10
  453. package/src/node_modules/@internal/preserve-tag/index-browser.js +0 -46
  454. package/src/node_modules/@internal/preserve-tag/index.js +0 -34
  455. package/src/node_modules/@internal/preserve-tag/package.json +0 -11
  456. package/src/node_modules/@internal/require/index-browser.js +0 -15
  457. package/src/node_modules/@internal/require/index-legacy-browser.js +0 -20
  458. package/src/node_modules/@internal/require/index-webpack.js +0 -16
  459. package/src/node_modules/@internal/require/index.js +0 -15
  460. package/src/node_modules/@internal/require/package.json +0 -11
  461. package/src/node_modules/@internal/set-immediate/index-browser.js +0 -19
  462. package/src/node_modules/@internal/set-immediate/index-worker.js +0 -31
  463. package/src/node_modules/@internal/set-immediate/index.js +0 -3
  464. package/src/node_modules/@internal/set-immediate/package.json +0 -11
  465. package/src/node_modules/@internal/set-immediate/queueMicrotask.js +0 -8
  466. package/src/runtime/.eslintrc +0 -5
  467. package/src/runtime/RenderResult.js +0 -112
  468. package/src/runtime/components/Component.js +0 -663
  469. package/src/runtime/components/ComponentDef.js +0 -169
  470. package/src/runtime/components/ComponentsContext.js +0 -59
  471. package/src/runtime/components/GlobalComponentsContext.js +0 -10
  472. package/src/runtime/components/KeySequence.js +0 -16
  473. package/src/runtime/components/ServerComponent.js +0 -73
  474. package/src/runtime/components/State.js +0 -101
  475. package/src/runtime/components/attach-detach.js +0 -60
  476. package/src/runtime/components/defineComponent.js +0 -60
  477. package/src/runtime/components/dom-data.js +0 -8
  478. package/src/runtime/components/event-delegation.js +0 -144
  479. package/src/runtime/components/index.js +0 -1
  480. package/src/runtime/components/legacy/browser.json +0 -9
  481. package/src/runtime/components/legacy/defineComponent-legacy.js +0 -27
  482. package/src/runtime/components/legacy/defineRenderer-legacy.js +0 -171
  483. package/src/runtime/components/legacy/defineWidget-legacy.js +0 -1
  484. package/src/runtime/components/legacy/dependencies/html.js +0 -3
  485. package/src/runtime/components/legacy/dependencies/index.js +0 -177
  486. package/src/runtime/components/legacy/dependencies/vdom.js +0 -3
  487. package/src/runtime/components/legacy/index.js +0 -1
  488. package/src/runtime/components/legacy/jquery.js +0 -52
  489. package/src/runtime/components/legacy/ready.js +0 -152
  490. package/src/runtime/components/legacy/renderer-legacy.js +0 -231
  491. package/src/runtime/components/registry.js +0 -1
  492. package/src/runtime/components/renderer.js +0 -236
  493. package/src/runtime/components/update-manager.js +0 -94
  494. package/src/runtime/createOut.js +0 -13
  495. package/src/runtime/dom-insert.js +0 -77
  496. package/src/runtime/events.js +0 -2
  497. package/src/runtime/helpers/_change-case.js +0 -45
  498. package/src/runtime/helpers/assign.js +0 -21
  499. package/src/runtime/helpers/attr-tag.js +0 -43
  500. package/src/runtime/helpers/class-value.js +0 -30
  501. package/src/runtime/helpers/dynamic-tag.js +0 -181
  502. package/src/runtime/helpers/empty-component.js +0 -1
  503. package/src/runtime/helpers/merge.js +0 -13
  504. package/src/runtime/helpers/of-fallback.js +0 -4
  505. package/src/runtime/helpers/render-tag.js +0 -20
  506. package/src/runtime/helpers/serialize-noop.js +0 -5
  507. package/src/runtime/helpers/style-value.js +0 -45
  508. package/src/runtime/helpers/tags-compat/dom-debug.js +0 -1
  509. package/src/runtime/helpers/tags-compat/dom-debug.mjs +0 -4
  510. package/src/runtime/helpers/tags-compat/dom.js +0 -1
  511. package/src/runtime/helpers/tags-compat/dom.mjs +0 -4
  512. package/src/runtime/helpers/tags-compat/html-debug.js +0 -3
  513. package/src/runtime/helpers/tags-compat/html-debug.mjs +0 -4
  514. package/src/runtime/helpers/tags-compat/html.js +0 -3
  515. package/src/runtime/helpers/tags-compat/html.mjs +0 -4
  516. package/src/runtime/helpers/tags-compat/runtime-dom.js +0 -239
  517. package/src/runtime/helpers/tags-compat/runtime-html.js +0 -136
  518. package/src/runtime/helpers/to-string.js +0 -5
  519. package/src/runtime/html/AsyncStream.js +0 -805
  520. package/src/runtime/html/BufferedWriter.js +0 -52
  521. package/src/runtime/html/StringWriter.js +0 -73
  522. package/src/runtime/html/helpers/_dynamic-attr.js +0 -35
  523. package/src/runtime/html/helpers/attr.js +0 -80
  524. package/src/runtime/html/helpers/attrs.js +0 -26
  525. package/src/runtime/html/helpers/class-attr.js +0 -8
  526. package/src/runtime/html/helpers/data-marko.js +0 -36
  527. package/src/runtime/html/helpers/escape-quotes.js +0 -35
  528. package/src/runtime/html/helpers/escape-script-placeholder.js +0 -24
  529. package/src/runtime/html/helpers/escape-style-placeholder.js +0 -22
  530. package/src/runtime/html/helpers/escape-xml.js +0 -21
  531. package/src/runtime/html/helpers/merge-attrs.js +0 -55
  532. package/src/runtime/html/helpers/props-script.js +0 -32
  533. package/src/runtime/html/helpers/style-attr.js +0 -8
  534. package/src/runtime/html/hot-reload.js +0 -26
  535. package/src/runtime/html/index.js +0 -33
  536. package/src/runtime/html/marko-namespace.js +0 -3
  537. package/src/runtime/renderable.js +0 -194
  538. package/src/runtime/vdom/AsyncVDOMBuilder.js +0 -456
  539. package/src/runtime/vdom/VComment.js +0 -24
  540. package/src/runtime/vdom/VComponent.js +0 -17
  541. package/src/runtime/vdom/VDocumentFragment.js +0 -34
  542. package/src/runtime/vdom/VElement.js +0 -375
  543. package/src/runtime/vdom/VFragment.js +0 -26
  544. package/src/runtime/vdom/VNode.js +0 -100
  545. package/src/runtime/vdom/VText.js +0 -25
  546. package/src/runtime/vdom/helpers/attrs.js +0 -62
  547. package/src/runtime/vdom/helpers/const-element.js +0 -25
  548. package/src/runtime/vdom/helpers/merge-attrs.js +0 -16
  549. package/src/runtime/vdom/hot-reload.js +0 -115
  550. package/src/runtime/vdom/index.js +0 -30
  551. package/src/runtime/vdom/is-text-only.js +0 -10
  552. package/src/runtime/vdom/marko-namespace.js +0 -3
  553. package/src/runtime/vdom/morphdom/fragment.js +0 -95
  554. package/src/runtime/vdom/morphdom/helpers.js +0 -42
  555. package/src/runtime/vdom/morphdom/index.js +0 -741
  556. package/src/runtime/vdom/parse-html.js +0 -18
  557. package/src/runtime/vdom/vdom.js +0 -88
  558. package/src/taglib/index.js +0 -51
  559. package/src/translator/cdata/index.js +0 -15
  560. package/src/translator/cdata/index[html].js +0 -15
  561. package/src/translator/cdata/index[vdom].js +0 -12
  562. package/src/translator/class.js +0 -65
  563. package/src/translator/comment/index.js +0 -15
  564. package/src/translator/comment/index[html].js +0 -17
  565. package/src/translator/comment/index[vdom].js +0 -3
  566. package/src/translator/declaration/index.js +0 -15
  567. package/src/translator/declaration/index[html].js +0 -12
  568. package/src/translator/declaration/index[vdom].js +0 -3
  569. package/src/translator/document-type/index.js +0 -15
  570. package/src/translator/document-type/index[html].js +0 -12
  571. package/src/translator/document-type/index[vdom].js +0 -3
  572. package/src/translator/index.js +0 -551
  573. package/src/translator/placeholder/index.js +0 -15
  574. package/src/translator/placeholder/index[html].js +0 -93
  575. package/src/translator/placeholder/index[vdom].js +0 -22
  576. package/src/translator/scriptlet.js +0 -4
  577. package/src/translator/tag/attribute/directives/class.js +0 -42
  578. package/src/translator/tag/attribute/directives/index.js +0 -15
  579. package/src/translator/tag/attribute/directives/no-update-body-if.js +0 -15
  580. package/src/translator/tag/attribute/directives/no-update-body.js +0 -10
  581. package/src/translator/tag/attribute/directives/no-update-if.js +0 -12
  582. package/src/translator/tag/attribute/directives/no-update.js +0 -48
  583. package/src/translator/tag/attribute/directives/style.js +0 -42
  584. package/src/translator/tag/attribute/index.js +0 -150
  585. package/src/translator/tag/attribute/modifiers/index.js +0 -7
  586. package/src/translator/tag/attribute/modifiers/no-update.js +0 -14
  587. package/src/translator/tag/attribute/modifiers/scoped.js +0 -23
  588. package/src/translator/tag/attribute-tag.js +0 -149
  589. package/src/translator/tag/custom-tag.js +0 -146
  590. package/src/translator/tag/dynamic-tag.js +0 -74
  591. package/src/translator/tag/index.js +0 -287
  592. package/src/translator/tag/macro-tag.js +0 -7
  593. package/src/translator/tag/native-tag.js +0 -27
  594. package/src/translator/tag/native-tag[html]/attributes.js +0 -151
  595. package/src/translator/tag/native-tag[html]/index.js +0 -221
  596. package/src/translator/tag/native-tag[vdom]/attributes.js +0 -105
  597. package/src/translator/tag/native-tag[vdom]/index.js +0 -189
  598. package/src/translator/tag/util.js +0 -246
  599. package/src/translator/taglib/core/conditional/translate-else-if.js +0 -20
  600. package/src/translator/taglib/core/conditional/translate-else.js +0 -20
  601. package/src/translator/taglib/core/conditional/translate-if.js +0 -8
  602. package/src/translator/taglib/core/conditional/util.js +0 -41
  603. package/src/translator/taglib/core/index.js +0 -474
  604. package/src/translator/taglib/core/macro/parse.js +0 -17
  605. package/src/translator/taglib/core/macro/translate.js +0 -48
  606. package/src/translator/taglib/core/parse-class.js +0 -79
  607. package/src/translator/taglib/core/parse-export.js +0 -14
  608. package/src/translator/taglib/core/parse-import.js +0 -14
  609. package/src/translator/taglib/core/parse-module-code.js +0 -18
  610. package/src/translator/taglib/core/parse-static.js +0 -18
  611. package/src/translator/taglib/core/transform-style.js +0 -66
  612. package/src/translator/taglib/core/translate-await.js +0 -41
  613. package/src/translator/taglib/core/translate-body.js +0 -17
  614. package/src/translator/taglib/core/translate-for.js +0 -156
  615. package/src/translator/taglib/core/translate-html-comment.js +0 -52
  616. package/src/translator/taglib/core/translate-include-content.js +0 -53
  617. package/src/translator/taglib/core/translate-server-only.js +0 -5
  618. package/src/translator/taglib/core/translate-while.js +0 -32
  619. package/src/translator/taglib/index.js +0 -7
  620. package/src/translator/taglib/migrate/all-templates.js +0 -46
  621. package/src/translator/taglib/migrate/index.js +0 -5
  622. package/src/translator/text/index.js +0 -10
  623. package/src/translator/text/index[html].js +0 -12
  624. package/src/translator/text/index[vdom].js +0 -20
  625. package/src/translator/util/add-dependencies.js +0 -329
  626. package/src/translator/util/escape-regexp.js +0 -4
  627. package/src/translator/util/get-component-files.js +0 -86
  628. package/src/translator/util/html-out-write.js +0 -15
  629. package/src/translator/util/key-manager.js +0 -176
  630. package/src/translator/util/optimize-html-writes.js +0 -52
  631. package/src/translator/util/optimize-vdom-create.js +0 -164
  632. package/src/translator/util/plugin-hooks.js +0 -22
  633. package/src/translator/util/runtime-flags.js +0 -3
  634. package/src/translator/util/vdom-out-write.js +0 -10
  635. package/src/translator/util/with-previous-location.js +0 -6
  636. package/tags-html.d.ts +0 -3855
  637. package/translator/index.d.ts +0 -7
  638. package/translator/package.json +0 -5
@@ -1,663 +0,0 @@
1
- "use strict";
2
-
3
- // eslint-disable-next-line no-constant-binary-expression
4
- var complain = "MARKO_DEBUG" && require("complain");
5
- var EventEmitter = require("events-light");
6
- var SubscriptionTracker = require("listener-tracker");
7
- var inherit = require("raptor-util/inherit");
8
- var componentsUtil = require("@internal/components-util");
9
- var componentLookup = componentsUtil.___componentLookup;
10
- var destroyNodeRecursive = componentsUtil.___destroyNodeRecursive;
11
- var defaultCreateOut = require("../createOut");
12
- var domInsert = require("../dom-insert");
13
- var RenderResult = require("../RenderResult");
14
- var morphdom = require("../vdom/morphdom");
15
- var getComponentsContext =
16
- require("./ComponentsContext").___getComponentsContext;
17
- var domData = require("./dom-data");
18
- var eventDelegation = require("./event-delegation");
19
- var updateManager = require("./update-manager");
20
- var componentsByDOMNode = domData.___componentByDOMNode;
21
- var keyedElementsByComponentId = domData.___ssrKeyedElementsByComponentId;
22
- var CONTEXT_KEY = "__subtree_context__";
23
-
24
- var hasOwnProperty = Object.prototype.hasOwnProperty;
25
- var slice = Array.prototype.slice;
26
-
27
- var COMPONENT_SUBSCRIBE_TO_OPTIONS;
28
- var NON_COMPONENT_SUBSCRIBE_TO_OPTIONS = {
29
- addDestroyListener: false,
30
- };
31
-
32
- var emit = EventEmitter.prototype.emit;
33
- var ELEMENT_NODE = 1;
34
-
35
- function removeListener(removeEventListenerHandle) {
36
- removeEventListenerHandle();
37
- }
38
-
39
- function walkFragments(fragment) {
40
- var node;
41
-
42
- while (fragment) {
43
- node = fragment.firstChild;
44
-
45
- if (!node) {
46
- break;
47
- }
48
-
49
- fragment = node.fragment;
50
- }
51
-
52
- return node;
53
- }
54
-
55
- function handleCustomEventWithMethodListener(
56
- component,
57
- targetMethodName,
58
- args,
59
- extraArgs,
60
- ) {
61
- // Remove the "eventType" argument
62
- args.push(component);
63
-
64
- if (extraArgs) {
65
- args = extraArgs.concat(args);
66
- }
67
-
68
- var targetComponent = componentLookup[component.___scope];
69
- var targetMethod =
70
- typeof targetMethodName === "function"
71
- ? targetMethodName
72
- : targetComponent[targetMethodName];
73
- if (!targetMethod) {
74
- throw Error("Method not found: " + targetMethodName);
75
- }
76
-
77
- targetMethod.apply(targetComponent, args);
78
- }
79
-
80
- function resolveKeyHelper(key, index) {
81
- return index ? key + "_" + index : key;
82
- }
83
-
84
- function resolveComponentIdHelper(component, key, index) {
85
- return component.id + "-" + resolveKeyHelper(key, index);
86
- }
87
-
88
- /**
89
- * This method is used to process "update_<stateName>" handler functions.
90
- * If all of the modified state properties have a user provided update handler
91
- * then a rerender will be bypassed and, instead, the DOM will be updated
92
- * looping over and invoking the custom update handlers.
93
- * @return {boolean} Returns true if if the DOM was updated. False, otherwise.
94
- */
95
- function processUpdateHandlers(component, stateChanges, oldState) {
96
- var handlerMethod;
97
- var handlers;
98
-
99
- for (var propName in stateChanges) {
100
- if (hasOwnProperty.call(stateChanges, propName)) {
101
- var handlerMethodName = "update_" + propName;
102
-
103
- handlerMethod = component[handlerMethodName];
104
- if (handlerMethod) {
105
- (handlers || (handlers = [])).push([propName, handlerMethod]);
106
- } else {
107
- // This state change does not have a state handler so return false
108
- // to force a rerender
109
- return;
110
- }
111
- }
112
- }
113
-
114
- // If we got here then all of the changed state properties have
115
- // an update handler or there are no state properties that actually
116
- // changed.
117
- if (handlers) {
118
- // Otherwise, there are handlers for all of the changed properties
119
- // so apply the updates using those handlers
120
-
121
- handlers.forEach(function (handler) {
122
- var propertyName = handler[0];
123
- handlerMethod = handler[1];
124
-
125
- var newValue = stateChanges[propertyName];
126
- var oldValue = oldState[propertyName];
127
- handlerMethod.call(component, newValue, oldValue);
128
- });
129
-
130
- component.___emitUpdate();
131
- component.___reset();
132
- }
133
-
134
- return true;
135
- }
136
-
137
- function checkInputChanged(existingComponent, oldInput, newInput) {
138
- if (oldInput != newInput) {
139
- if (oldInput == null || newInput == null) {
140
- return true;
141
- }
142
-
143
- var oldKeys = Object.keys(oldInput);
144
- var newKeys = Object.keys(newInput);
145
- var len = oldKeys.length;
146
- if (len !== newKeys.length) {
147
- return true;
148
- }
149
-
150
- for (var i = len; i--; ) {
151
- var key = oldKeys[i];
152
- if (!(key in newInput && oldInput[key] === newInput[key])) {
153
- return true;
154
- }
155
- }
156
- }
157
-
158
- return false;
159
- }
160
-
161
- var componentProto;
162
-
163
- /**
164
- * Base component type.
165
- *
166
- * NOTE: Any methods that are prefixed with an underscore should be considered private!
167
- */
168
- function Component(id) {
169
- EventEmitter.call(this);
170
- this.id = id;
171
- this.___state = null;
172
- this.___rootNode = null;
173
- this.___subscriptions = null;
174
- this.___domEventListenerHandles = null;
175
- this.___bubblingDomEvents = null; // Used to keep track of bubbling DOM events for components rendered on the server
176
- this.___customEvents = null;
177
- this.___scope = null;
178
- this.___renderInput = null;
179
- this.___input = undefined;
180
- this.___mounted = false;
181
- this.___global = undefined;
182
- this.___destroyed = false;
183
- this.___updateQueued = false;
184
- this.___dirty = false;
185
- this.___settingInput = false;
186
- this.___host = undefined;
187
-
188
- var ssrKeyedElements = keyedElementsByComponentId[id];
189
-
190
- if (ssrKeyedElements) {
191
- this.___keyedElements = ssrKeyedElements;
192
- delete keyedElementsByComponentId[id];
193
- } else {
194
- this.___keyedElements = {};
195
- }
196
- }
197
-
198
- Component.prototype = componentProto = {
199
- ___isComponent: true,
200
-
201
- subscribeTo: function (target) {
202
- if (!target) {
203
- throw TypeError();
204
- }
205
-
206
- var subscriptions =
207
- this.___subscriptions ||
208
- (this.___subscriptions = new SubscriptionTracker());
209
-
210
- var subscribeToOptions = target.___isComponent
211
- ? COMPONENT_SUBSCRIBE_TO_OPTIONS
212
- : NON_COMPONENT_SUBSCRIBE_TO_OPTIONS;
213
-
214
- return subscriptions.subscribeTo(target, subscribeToOptions);
215
- },
216
-
217
- emit: function (eventType) {
218
- var customEvents = this.___customEvents;
219
- var target;
220
-
221
- if (customEvents && (target = customEvents[eventType])) {
222
- var targetMethodName = target[0];
223
- var isOnce = target[1];
224
- var extraArgs = target[2];
225
- var args = slice.call(arguments, 1);
226
-
227
- handleCustomEventWithMethodListener(
228
- this,
229
- targetMethodName,
230
- args,
231
- extraArgs,
232
- );
233
-
234
- if (isOnce) {
235
- delete customEvents[eventType];
236
- }
237
- }
238
-
239
- return emit.apply(this, arguments);
240
- },
241
- getElId: function (key, index) {
242
- if (!key) {
243
- return this.id;
244
- }
245
- return resolveComponentIdHelper(this, key, index);
246
- },
247
- getEl: function (key, index) {
248
- if (key) {
249
- var resolvedKey = resolveKeyHelper(key, index);
250
- var keyedElement = this.___keyedElements["@" + resolvedKey];
251
- if (keyedElement && keyedElement.nodeType === 12 /** FRAGMENT_NODE */) {
252
- // eslint-disable-next-line no-constant-condition
253
- if ("MARKO_DEBUG") {
254
- complain(
255
- "Accessing the elements of a child component using 'component.getEl' is deprecated.",
256
- );
257
- }
258
-
259
- return walkFragments(keyedElement);
260
- }
261
-
262
- return keyedElement;
263
- } else {
264
- return this.el;
265
- }
266
- },
267
- getEls: function (key) {
268
- key = key + "[]";
269
-
270
- var els = [];
271
- var i = 0;
272
- var el;
273
- while ((el = this.getEl(key, i))) {
274
- els.push(el);
275
- i++;
276
- }
277
- return els;
278
- },
279
- getComponent: function (key, index) {
280
- var rootNode = this.___keyedElements["@" + resolveKeyHelper(key, index)];
281
- if (/\[\]$/.test(key)) {
282
- // eslint-disable-next-line no-constant-condition
283
- if ("MARKO_DEBUG") {
284
- complain(
285
- "A repeated key[] was passed to getComponent. Use a non-repeating key if there is only one of these components.",
286
- );
287
- }
288
- rootNode = rootNode && rootNode[Object.keys(rootNode)[0]];
289
- }
290
- return rootNode && componentsByDOMNode.get(rootNode);
291
- },
292
- getComponents: function (key) {
293
- var lookup = this.___keyedElements["@" + key + "[]"];
294
- return lookup
295
- ? Object.keys(lookup)
296
- .map(function (key) {
297
- return componentsByDOMNode.get(lookup[key]);
298
- })
299
- .filter(Boolean)
300
- : [];
301
- },
302
- destroy: function () {
303
- if (this.___destroyed) {
304
- return;
305
- }
306
-
307
- var root = this.___rootNode;
308
-
309
- this.___destroyShallow();
310
-
311
- var nodes = root.nodes;
312
-
313
- nodes.forEach(function (node) {
314
- destroyNodeRecursive(node);
315
-
316
- if (eventDelegation.___handleNodeDetach(node) !== false) {
317
- node.parentNode.removeChild(node);
318
- }
319
- });
320
-
321
- root.detached = true;
322
-
323
- delete componentLookup[this.id];
324
- this.___keyedElements = {};
325
- },
326
-
327
- ___destroyShallow: function () {
328
- if (this.___destroyed) {
329
- return;
330
- }
331
-
332
- this.___emitDestroy();
333
- this.___destroyed = true;
334
-
335
- componentsByDOMNode.set(this.___rootNode, undefined);
336
-
337
- this.___rootNode = null;
338
-
339
- // Unsubscribe from all DOM events
340
- this.___removeDOMEventListeners();
341
-
342
- var subscriptions = this.___subscriptions;
343
- if (subscriptions) {
344
- subscriptions.removeAllListeners();
345
- this.___subscriptions = null;
346
- }
347
- },
348
-
349
- isDestroyed: function () {
350
- return this.___destroyed;
351
- },
352
- get state() {
353
- return this.___state;
354
- },
355
- set state(newState) {
356
- var state = this.___state;
357
- if (!state && !newState) {
358
- return;
359
- }
360
-
361
- if (!state) {
362
- state = this.___state = new this.___State(this);
363
- }
364
-
365
- state.___replace(newState || {});
366
-
367
- if (state.___dirty) {
368
- this.___queueUpdate();
369
- }
370
-
371
- if (!newState) {
372
- this.___state = null;
373
- }
374
- },
375
- setState: function (name, value) {
376
- var state = this.___state;
377
-
378
- if (!state) {
379
- state = this.___state = new this.___State(this);
380
- }
381
- if (typeof name == "object") {
382
- // Merge in the new state with the old state
383
- var newState = name;
384
- for (var k in newState) {
385
- if (hasOwnProperty.call(newState, k)) {
386
- state.___set(k, newState[k], true /* ensure:true */);
387
- }
388
- }
389
- } else {
390
- state.___set(name, value, true /* ensure:true */);
391
- }
392
- },
393
-
394
- setStateDirty: function (name, value) {
395
- var state = this.___state;
396
-
397
- if (arguments.length == 1) {
398
- value = state[name];
399
- }
400
-
401
- state.___set(
402
- name,
403
- value,
404
- true /* ensure:true */,
405
- true /* forceDirty:true */,
406
- );
407
- },
408
-
409
- replaceState: function (newState) {
410
- this.___state.___replace(newState);
411
- },
412
-
413
- get input() {
414
- return this.___input;
415
- },
416
- set input(newInput) {
417
- if (this.___settingInput) {
418
- this.___input = newInput;
419
- } else {
420
- this.___setInput(newInput);
421
- }
422
- },
423
-
424
- ___setInput: function (newInput, onInput, out) {
425
- onInput = onInput || this.onInput;
426
- var updatedInput;
427
-
428
- var oldInput = this.___input;
429
- this.___input = undefined;
430
- this.___context = (out && out[CONTEXT_KEY]) || this.___context;
431
-
432
- if (onInput) {
433
- // We need to set a flag to preview `this.input = foo` inside
434
- // onInput causing infinite recursion
435
- this.___settingInput = true;
436
- updatedInput = onInput.call(this, newInput || {}, out);
437
- this.___settingInput = false;
438
- }
439
-
440
- newInput = this.___renderInput = updatedInput || newInput;
441
-
442
- if ((this.___dirty = checkInputChanged(this, oldInput, newInput))) {
443
- this.___queueUpdate();
444
- }
445
-
446
- if (this.___input === undefined) {
447
- this.___input = newInput;
448
- if (newInput && newInput.$global) {
449
- this.___global = newInput.$global;
450
- }
451
- }
452
-
453
- return newInput;
454
- },
455
-
456
- forceUpdate: function () {
457
- this.___dirty = true;
458
- this.___queueUpdate();
459
- },
460
-
461
- ___queueUpdate: function () {
462
- if (!this.___updateQueued) {
463
- this.___updateQueued = true;
464
- updateManager.___queueComponentUpdate(this);
465
- }
466
- },
467
-
468
- update: function () {
469
- if (this.___destroyed === true || this.___isDirty === false) {
470
- return;
471
- }
472
-
473
- var input = this.___input;
474
- var state = this.___state;
475
-
476
- if (this.___dirty === false && state !== null && state.___dirty === true) {
477
- if (processUpdateHandlers(this, state.___changes, state.___old, state)) {
478
- state.___dirty = false;
479
- }
480
- }
481
-
482
- if (this.___isDirty === true) {
483
- // The UI component is still dirty after process state handlers
484
- // then we should rerender
485
-
486
- if (this.shouldUpdate(input, state) !== false) {
487
- this.___scheduleRerender();
488
- }
489
- }
490
-
491
- this.___reset();
492
- },
493
-
494
- get ___isDirty() {
495
- return (
496
- this.___dirty === true ||
497
- (this.___state !== null && this.___state.___dirty === true)
498
- );
499
- },
500
-
501
- ___reset: function () {
502
- this.___dirty = false;
503
- this.___updateQueued = false;
504
- this.___renderInput = null;
505
- var state = this.___state;
506
- if (state) {
507
- state.___reset();
508
- }
509
- },
510
-
511
- shouldUpdate: function () {
512
- return true;
513
- },
514
-
515
- ___scheduleRerender: function () {
516
- // eslint-disable-next-line @typescript-eslint/no-this-alias
517
- var self = this;
518
- var renderer = self.___renderer;
519
-
520
- if (!renderer) {
521
- throw TypeError();
522
- }
523
-
524
- var input = this.___renderInput || this.___input;
525
-
526
- updateManager.___batchUpdate(function () {
527
- self.___rerender(input, false).afterInsert(self.___host);
528
- });
529
-
530
- this.___reset();
531
- },
532
-
533
- ___rerender: function (input, isHydrate) {
534
- var host = this.___host;
535
- var globalData = this.___global;
536
- var rootNode = this.___rootNode;
537
- var renderer = this.___renderer;
538
- var createOut = renderer.createOut || defaultCreateOut;
539
- var out = createOut(globalData);
540
- out.sync();
541
- out.___host = this.___host;
542
- out[CONTEXT_KEY] = this.___context;
543
-
544
- var componentsContext = getComponentsContext(out);
545
- var globalComponentsContext = componentsContext.___globalContext;
546
- globalComponentsContext.___rerenderComponent = this;
547
- globalComponentsContext.___isHydrate = isHydrate;
548
-
549
- renderer(input, out);
550
-
551
- var result = new RenderResult(out);
552
-
553
- var targetNode = out.___getOutput().___firstChild;
554
-
555
- morphdom(rootNode, targetNode, host, componentsContext);
556
-
557
- return result;
558
- },
559
-
560
- ___detach: function () {
561
- var root = this.___rootNode;
562
- root.remove();
563
- return root;
564
- },
565
-
566
- ___removeDOMEventListeners: function () {
567
- var eventListenerHandles = this.___domEventListenerHandles;
568
- if (eventListenerHandles) {
569
- eventListenerHandles.forEach(removeListener);
570
- this.___domEventListenerHandles = null;
571
- }
572
- },
573
-
574
- get ___rawState() {
575
- var state = this.___state;
576
- return state && state.___raw;
577
- },
578
-
579
- ___setCustomEvents: function (customEvents, scope) {
580
- var finalCustomEvents = (this.___customEvents = {});
581
- this.___scope = scope;
582
-
583
- customEvents.forEach(function (customEvent) {
584
- var eventType = customEvent[0];
585
- var targetMethodName = customEvent[1];
586
- var isOnce = customEvent[2];
587
- var extraArgs = customEvent[3];
588
-
589
- if (targetMethodName) {
590
- finalCustomEvents[eventType] = [targetMethodName, isOnce, extraArgs];
591
- }
592
- });
593
- },
594
-
595
- get el() {
596
- return walkFragments(this.___rootNode);
597
- },
598
-
599
- get els() {
600
- // eslint-disable-next-line no-constant-condition
601
- if ("MARKO_DEBUG") {
602
- complain(
603
- 'The "this.els" attribute is deprecated. Please use "this.getEls(key)" instead.',
604
- );
605
- }
606
- return (this.___rootNode ? this.___rootNode.nodes : []).filter(
607
- function (el) {
608
- return el.nodeType === ELEMENT_NODE;
609
- },
610
- );
611
- },
612
-
613
- ___emit: emit,
614
- ___emitCreate(input, out) {
615
- this.onCreate && this.onCreate(input, out);
616
- this.___emit("create", input, out);
617
- },
618
-
619
- ___emitRender(out) {
620
- this.onRender && this.onRender(out);
621
- this.___emit("render", out);
622
- },
623
-
624
- ___emitUpdate() {
625
- this.onUpdate && this.onUpdate();
626
- this.___emit("update");
627
- },
628
-
629
- ___emitMount() {
630
- this.onMount && this.onMount();
631
- this.___emit("mount");
632
- },
633
-
634
- ___emitDestroy() {
635
- this.onDestroy && this.onDestroy();
636
- this.___emit("destroy");
637
- },
638
- };
639
-
640
- componentProto.elId = componentProto.getElId;
641
- componentProto.___update = componentProto.update;
642
- componentProto.___destroy = componentProto.destroy;
643
-
644
- // Add all of the following DOM methods to Component.prototype:
645
- // - appendTo(referenceEl)
646
- // - replace(referenceEl)
647
- // - replaceChildrenOf(referenceEl)
648
- // - insertBefore(referenceEl)
649
- // - insertAfter(referenceEl)
650
- // - prependTo(referenceEl)
651
- domInsert(
652
- componentProto,
653
- function getEl(component) {
654
- return component.___detach();
655
- },
656
- function afterInsert(component) {
657
- return component;
658
- },
659
- );
660
-
661
- inherit(Component, EventEmitter);
662
-
663
- module.exports = Component;